Jabber это открытый протокол для быстрого обмена сообщениями и информацией о присутствии между любыми двумя пользователями сети. В последне время jabber становится всё более популярным, что можно объяснить его простотой и открытостью.
Очень часто jabber используется как средство обмена сообщениями и файлами внутри компании. В этом случае можно сильно экономить на трафике, поскольку весь обмен сообщениями и файлами идёт только внутри локальной сети (в отличии от ICQ/Yahoo!/MSN, когда сообщения передаются через центральный сервер, установленный за пределами вашей локальной сети).
В этой заметке будет описан запуск простого jabber-сервера для локальной сети. В качестве сервера будет использован jabberd-1.4, который хоть и считается устаревшим, является одним из самых простых в настройке, и при этом стабильных серверов. В качестве операционной системы будет использована Gentoo Linux, однако приводимые тут инструкции в большинстве случаев будут справедливы и для других дистрибутивов.
Итак, приступаем к установке. Наверное сразу хочется выполнить команду:
emerge net-im/jabberd
Однако это не правильно, поскольку по умолчанию jabberd собирается с поддержкой ipv6, и отказывается запуска если у вас нет ipv6-адреса ни на одном из интерфейсов. Кроме того, поскольку мы собираем самый простой сервер, нам можно выключить так же поддержку различных баз данных и SSL (В локальной сети SSL не очень актуально). Для этого нужно добавить в файл /etc/portage/package.use строчку:
net-im/jabberd -ipv6 -mysql -postgres -ssl
И только после этого наконец можно выполнить команду:
emerge net-im/jabberd
После установки открываем в любом редакторе файл /etc/jabber/jabberd.xml и приступаем к настройке сервера.
Для начала находим строчку:
<host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host>
И заменяем в ней localhost, на имя нашего сервера:
<host><jabberd:cmdline flag="h">jabber.company.net</jabberd:cmdline></host>
В принципе этого достаточно. Далее вы можете поправить по своему усмотрению информационные сообщения сервера. Так же можно запретить авторизацию открытым текстом, закомментировав строку:
<mod_auth_plain>/usr/lib/libjabberdsm.so</mod_auth_plain>
Для тех кто не силён в XML, приведу пример закомментированной строки:
<!-- <mod_auth_plain>/usr/lib/libjabberdsm.so</mod_auth_plain> -->
Всё. Теперь можно запускать jabber-сервер:
rc-update add jabber default /etc/init.d/jabber start
Если на сервере настроен файрволл, то нужно разрешить доступ к порту 5222 со стороны локальной сети:
iptables -A INPUT -m tcp -p tcp --dport 5222 -s 192.168.0.0/255.255.255.0 -j ACCEPT
Кроме того, если вы хотите взаимодействовать с другими jabber-серверами, то вам нужно открыть порт 5269 для всех:
iptables -A INPUT -m tcp -p tcp --dport 5269 -j ACCEPT
После чего нужно сохранить правила iptables:
/etc/init.d/iptables save
Если вы хотите отключить публичную регистрацию, то раскомментируйте строчку:
<noregister/>
И закомментируйте строки:
<register notify="yes"> <instructions>Choose a username and password to register with this server.</instructions> <name/> <email/> </register>
И перезапустите сервис:
/etc/init.d/jabber restart
Надеюсь что эти инструкции будут для вас полезными.