Ejabberd — это высокопроизводительный, широко распространенный и надежный jabber-сервер

Для начала рекомендую установить erlang-lite,чтоб не было в дальнейшем гемороев


cd /usr/ports/lang/erlang-lite
make install clean

Теперь ставим сам сервер,Enable ODBC support не включаем, ждем пока соберется.


cd /usr/ports/net-im/ejabberd
make install clean

Пока собирается ejabberd, настраиваем DNS Создаем следующие записи в зоне, указывающие на наш сервер (deathstar.name)

icq IN A 46.47.18.39
_jabber._tcp.deathstar.name. 86400 IN SRV 5 0 5269 46.47.18.39
_xmpp-server._tcp.deathstar.name. 86400 IN SRV 5 0 5269 46.47.18.39
_xmpp-client._tcp.deathstar.name. 86400 IN SRV 5 0 5222 46.47.18.39

Настраиваем ejabberd

cp /usr/local/etc/ejabberd/ejabberd.cfg.example /usr/local/etc/ejabberd/ejabberd.cfg
cp /usr/local/etc/ejabberd/ejabberd.defaults.example /usr/local/etc/ejabberd/ejabberd.defaults

Редактируем

ee /usr/local/etc/ejabberd/ejabberd.cfg

Трогаем только это ))

{hosts, ["deathstar.name"]}.

{listen,
[

{5222, ejabberd_c2s, [

%%
%% If TLS is compiled and you installed a SSL
%% certificate, put the correct path to the
%% file and uncomment this line:
%%
%%{certfile, "/usr/local/etc/ejabberd/ssl.pem"}, starttls,

{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},

%%
%% To enable the old SSL connection method in port 5223:
%%
{5223, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
{certfile, "/usr/local/etc/ejabberd/ssl.pem"}, tls,
{max_stanza_size, 65536}
]},

{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},

%%
%% ejabberd_service: Interact with external components (transports...)
%%
{5248, ejabberd_service, [
{access, all},
{hosts,["pyvk-t.deathstar.name"],
[{password,"password"
]},
{5280, ejabberd_http, [
http_poll,
web_admin
]}

]}.

%%% ====================
%%% ACCESS CONTROL LISTS

%%
%% The 'admin' ACL grants administrative privileges to Jabber accounts.
%% You can put as many accounts as you want.
%%
{acl, admin, {user, "deathstar", "deathstar.name"}}.


В принципе больше ничего не трогал ))

Затем создадим сертификат

cd /usr/local/etc/ejabberd/

openssl req -new -x509 -nodes -newkey rsa:4096 -days 3650 \
-keyout privkey.pem -out server.pem -subj \
"/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=deathstar.name/emailAddress=deathstar@deathstar.name"

cat privkey.pem >> server.pem
rm privkey.pem
mv server.pem ssl.pem

Добавим в запуск и запустим

# ejabberd_enable="YES"" >> /etc/rc.conf
# /usr/local/etc/rc.d/ejabberd start