Archive

Posts Tagged ‘mcabber’

Переходим на Jabber

February 6th, 2009 No comments

Устанавливаем erlang-lite (без Java, X11, ODBC):

1
2
3
4
5
6
# cd /usr/ports/lang/erlang-lite/
# grep WITH Makefile 
WITHOUT_JAVA=   yes
WITHOUT_X11=    yes
WITHOUT_ODBC=   yes
# make install clean

Устанавливаем ejabberd (без ODBC):

1
2
3
4
# cd /usr/ports/net-im/ejabberd
# grep WITH Makefile 
.if defined(WITH_ODBC)
# make install clean

Устанавливаем pyicqt (с поддержкой ejabberd – WITH_EJABBERD):

1
2
3
# cd /usr/ports/net-im/jabber-pyicq
# make config
# make install clean

Добавляем в DNS следующие записи:

1
2
3
4
_xmpp-client._tcp.case.net.ru.  IN SRV 5 0 5222 case.net.ru.
_xmpp-server._tcp.case.net.ru.  IN SRV 5 0 5269 case.net.ru.
_jabber._tcp.case.net.ru.       IN SRV 5 0 5269 case.net.ru.
icq                             A 213.79.110.123

Настраиваем ejabberd – /usr/local/etc/ejabberd/ejabberd.cfg:

{acl, admin, {user, "case"}}.
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{welcome_message, {"Welcome!", "Welcome to Jabber Service.  " "For information about Jabber visit http://jabber.org"}}.
{access, announce, [{allow, admin}]}.
{access, c2s, [{deny, blocked}, {allow, all}]}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{access, c2s_shaper, [{none, admin}, {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{auth_method, internal}.
{hosts, ["case.net.ru"]}.
{max_user_sessions, 10}.
{language, "en"}.
{listen,
 [{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]},
  {5223, ejabberd_c2s,     [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper}, {max_stanza_size, 131072} ]},
  {5247, ejabberd_service, [{access, all}, {hosts, ["icq.case.net.ru"], [{password, "secret"}]}]}
 ]}.
{s2s_use_starttls, true}.
{s2s_certfile, "/usr/local/etc/ejabberd/ssl.pem"}.
{outgoing_s2s_port, 5269}.
{modules,
 [
  {mod_register,   [{access, register}]},
  {mod_roster,     []},
  {mod_privacy,    []},
  {mod_adhoc,      []},
  {mod_configure2, []},
  {mod_disco,      []},
  {mod_stats,      []},
  {mod_vcard,      []},
  {mod_offline,    []},
  {mod_private,    []},
  {mod_irc,        []},
  {mod_muc,        [{access, muc},
                    {access_create, muc},
                    {access_admin, muc_admin}]},
  {mod_pubsub,     [{access_createnode, pubsub_createnode}]},
  {mod_time,       []},
  {mod_last,       []},
  {mod_version,    []}
 ]}.

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

1
2
3
4
5
6
7
# cd /usr/local/etc/ejabberd/
# openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 
-keyout privkey.pem -out server.pem -subj 
"/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=case.net.ru/emailAddress=case@case.net.ru"
# cat privkey.pem >> server.pem  
# rm privkey.pem 
# mv server.pem ssl.pem

Настраиваем pyicqt (приведены только изменения) – /usr/local/etc/jabber-pyicq.xml:

1
2
3
4
5
6
7
8
9
10
11
12
<jid>icq.case.net.ru</jid>
<spooldir>/var/spool/jabber</spooldir>
<pid>/var/jabberd/pid/PyICQt.pid</pid>
<mainServer>127.0.0.1</mainServer>
<mainServerJID>case.net.ru</mainServerJID>
<website>http://case.net.ru/</website>
<port>5247</port>
<secret>secret</secret>
<lang>en</lang>
<encoding>windows-1251</encoding>
<icqServer>login.icq.com</icqServer>
<icqPort>5190</icqPort>

Создаем необходимые каталоги:

1
2
3
# mkdir /var/spool/jabber
# mkdir -p /var/jabberd/pid
# chown ejabberd:ejabberd /var/spool/jabber /var/jabberd /var/jabberd/pid

Включаем демонов в /etc/rc.conf:

1
2
ejabberd_enable="YES"
jabber_pyicq_enable="YES"

Запускаем демонов:

1
2
# /usr/local/etc/rc.d/ejabberd start
# /usr/local/etc/rc.d/jabber-pyicq-transport start

Из под пользователя ejabberd проверяем статус и регистрируем пользователя:

1
2
3
4
[ejabberd@case.net.ru]$ ejabberdctl ejabberd@case status 
Node ejabberd@case is started. Status: started
ejabberd is running
[ejabberd@case.net.ru]$ ejabberdctl ejabberd@case register case case.net.ru password

Подключаемся к учетной записи через kopete и регистрируемся в службе ICQ Transport.

Устанавливаем mcabber:

1
2
3
4
5
6
# cd /usr/ports/net-im/mcabber
# grep WITH Makefile 
.if defined(WITH_GPGME)
.if defined(WITH_ASPELL)
.if defined(WITH_OTR)
# make install clean

Подключаемся через mcabber – ~/.mcabber/mcabberrc:

1
2
3
4
5
set username = case
set server = case.net.ru
set port = 5223
set ssl = 1
set ssl_verify = 0

Возникли проблемы с контактами на gmail.com – решилось отключением службы google talk для домена. )

Ссылки:
http://www.opennet.ru/base/net/jabber_icq_gate.txt.html