Instalacja serwera - PLD

Transkrypt

Instalacja serwera - PLD
2016/01/17 08:12
1/6
Instalacja serwera
Instalacja serwera
# poldek -uvh ejabberd
Konfiguracja
Edytujemy naszym ulubionym edytorem plik /etc/jabber/ejabberd.cfg
{acl, admin, {user, "admin"}}.
% user z prawami administratora, dowolny login
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{welcome_message,
{"Welcome!",
"Welcome to Jabber.",
"For information about Jabber visit http://jabber.org"}}.
{registration_watchers, ["user@localhost"]}.
% user, który będzie powiadamiany o rejestracjach do serwera jabbera
{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}]}.
{access, local, [{allow, local}]}.
PLD-users.org - http://www.pld-users.org/
Last update: 2009/04/12 18:11
pl:przewodniki:ejabberd http://www.pld-users.org/pl/przewodniki/ejabberd
{auth_method, internal}.
{hosts, ["localhost", "jabber.nasza_domena.pl"]}.
% nasze hosty, które będziemy używać (zewnętrzne domeny muszą istnieć)
{max_user_sessions, 10}.
{language, "en"}.
{listen,
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
{max_stanza_size, 65536},
starttls, {certfile, "/etc/jabber/jabber.pem"}
]},
{5223, ejabberd_c2s, [{access, c2s},
{max_stanza_size, 65536},
tls, {certfile, "/etc/jabber/jabber.pem"}]},
{5269, ejabberd_s2s_in, [{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
{5348, ejabberd_service, [{access, all},
{host, "msn.jabber.nasza_domena.pl",
[{password, "hasło z /etc/jabber/secret"}]}]},
{5349, ejabberd_service, [{access, all},
{host, "gg.jabber.nasza_domena.pl",
[{password, "hasło z /etc/jabber/secret"}]}]},
{5347, ejabberd_service, [{access, all},
{hosts, ["ircnet.jabber.nasza_domena.pl",
"freenode.jabber.nasza_domena.pl"],
[{password, "hasło z /etc/jabber/secret"}]}]},
{5280, ejabberd_http, [http_poll, web_admin]}
]}.
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/jabber/jabber.pem"}.
{domain_certfile, "jabber.nasza_domena.pl", "/etc/jabber/jabber.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_echo, [{host, "echo.nasza_domena.pl"}]},
http://www.pld-users.org/
Printed on 2016/01/17 08:12
2016/01/17 08:12
3/6
Instalacja serwera
{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, []}
]}.
Certyfikaty dla połączeń SSL/TLS
# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out
/etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt
Transport Gadu-Gadu
# poldek -uvh jggtrans
Ustawiamy najważniejsze opcje w /etc/jabber/jggtrans.xml
<service jid="gg.jabber.nasza_domena.pl"/>
<connect id="gglinker">
<ip>127.0.0.1</ip>
<port>5349</port>
<secret>hasło z /etc/jabber/secret</secret>
</connect>
<spool>/var/spool/jabber/gg.jabber.atwa.us/</spool>
<admin>[email protected]_domena.pl</admin>
<acl>
<allow who="[email protected]_domena.pl"
what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
<deny who="*" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
<allow who="*"/>
<deny what="iq/query?xmlns=jabber:x:register"/>
<allow what="presence"/>
<deny/>
</acl>
Następnie tworzymy katalog, w którym będą trzymane dane userów używających transportu
PLD-users.org - http://www.pld-users.org/
Last update: 2009/04/12 18:11
pl:przewodniki:ejabberd http://www.pld-users.org/pl/przewodniki/ejabberd
# mkdir -p /var/spool/jabber/gg.jabber.nasza_domena.pl
# chown -R root:jabber /var/spool/jabber/
# chmod -R g+w /var/spool/jabber/
Transport MSN
Instalujemy najważniejsze rzeczy:
# poldek -uvh python-Twisted python-Twisted-ssl python-TwistedWords pythonTwistedWeb python-TwistedXish python-Imaging python-pyOpenSSL
Teraz trzeba już ręcznie ściągnąć transport stąd. Wypakowujemy go i ustawiamy config. W
src/config.py:
jid = "msn.jabber.nasza_domena.pl"
host = "127.0.0.1"
compjid = ""
spooldir = "/var/lib/ejabberd/"
discoName = "MSN Transport"
mainServer = "127.0.0.1"
website = ""
port = "5348"
secret = "hasło z /etc/jabber/secret"
Natomiast w config.xml (jeśli nie ma to tworzymy z templatu) ustawiamy te same opcje tylko w
formacie XMLowym. Musimy niestety utworzyć jeszcze 2 symlinki bo PyMSNt źle szuka naszych
zainstalowanych rozszerzeń pythona:
# ln -s /usr/share/python2.4/site-packages/twisted/words
/usr/lib[64]/python2.4/site-packages/twisted/words
# ln -s /usr/share/python2.4/site-packages/twisted/xish
/usr/lib[64]/python2.4/site-packages/twisted/xish
Odpalamy PyMSNt:
# ./PyMSNt &
Konfiguracja domeny
W domenach które ma obsługiwać nasz jabber dopisujemy odpowiednie rekordy SRV. Dzięki temu
adres jabbera może być inny od adresu rekordu A danej domeny:
jabber.example.net.
_jabber._tcp.example.net.
http://www.pld-users.org/
A
SRV
1.2.3.4
20 0 5269
Printed on 2016/01/17 08:12
2016/01/17 08:12
jabber.example.net.
_xmpp-server._tcp.example.net.
jabber.example.net.
_xmpp-client._tcp.example.net.
jabber.example.net.
5/6
Instalacja serwera
SRV
20 0 5269
SRV
20 0 5222
Uruchamiamy eJabberda i tworzymy konto
administratora
# service ejabberd start
# ejabberdctl ejabberd@localhost register admin jabber.nasza_domena.pl
hasło_do_konta_admina
# service jggtrans start
I to praktycznie cała filozofia. Pod adresem http://server:5280/admin/ zastaniemy ładnego web
admina dzięki któremu możemy trochę monitorować nasz serwer, dodawać i usuwać userów,
zmieniać im hasła itd. Sam user ma oczywiście możliwość zmiany hasła przez swojego klienta jabbera.
Czy ja czasem nie zapomniałem o transporcie ircowym? Nie, eJabberd ma wbudowany transport IRCa i
stąd wystarczyło tylko odblokować odpowiedni port i usługę w ejabberd.cfg i transport od razu działa.
Podziękowanie
Powyższe howto jest w dużywm stopniu przepisane z blogu shadzika. Oryginał można obejrzeć pod
tym adresem:
http://shadzik.jogger.pl/2007/08/09/ejabberd-on-pld-msn-irc-gg-transports/
Polecam również drugi artykuł shadzika dotyczący konfiguracji ejabberd:
http://shadzik.jogger.pl/2007/09/26/ejabberd-migrating-from-mnesia-to-mysql-native-driver/
TODO
* Zaktualizować powyższe howto do configów aktualnych wersji ejabberd i jggtrans. * pymsnt
podobno już działa z paczki PLD
PLD-users.org - http://www.pld-users.org/
Last update: 2009/04/12 18:11
pl:przewodniki:ejabberd http://www.pld-users.org/pl/przewodniki/ejabberd
From:
http://www.pld-users.org/ - PLD-users.org
Permanent link:
http://www.pld-users.org/pl/przewodniki/ejabberd
Last update: 2009/04/12 18:11
http://www.pld-users.org/
Printed on 2016/01/17 08:12

Podobne dokumenty