Serwer JABBERD + transporty GG, TLEN + komponent JMC

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Awatar użytkownika
Skyscraper
Administrator
Posty: 753
Rejestracja: 2004-05-22, 10:46
Lokalizacja: Wrocław
Kontakt:

Serwer JABBERD + transporty GG, TLEN + komponent JMC

Post autor: Skyscraper »

Serwer JABBERD + transporty GG, TLEN + komponent JMC

Spis treści:

Kod: Zaznacz cały

1. Wstęp, założenia
2. Instalacja oprogramowania
        a. Jabber
        b. Gadu-Gadu
        c. Tlen
        d. Jabber Mail Component 
3. Konfiguracja systemu operacyjnego
        a. Użytkownik serwera
        b. Katalogi serwera, uprawnienia 
4. Konfiguracja oprogramowania
        a. Certyfikaty, klucze
        b. Serwer Jabberd
        c. Transport Tlen
        d. Transport Gadu-Gadu
        e. Komponent JMC 
5. Konfiguracja firewalla
6. Uruchomienie usługi
7. Porady
        a. Uniemożliwienie rejestracji na serwerze
        b. Pozwolenie tylko na połączenia szyfrowane
        c. Obsługa RSS w kliencie jabbera na stacji roboczej 
8. Odsyłacze pomocnicze


<b>1. Wstęp, założenia</b>
Opis instalacji serwera Jabberd wraz z dodatkowymi usługami tj. transporty do sieci Gadu-Gadu, Tlen.pl oraz komponent Jabber Mail Component dający możliwość powiadamiania o przychodzącej poczcie elektronicznej. Serwer będzie pozwalał rejestrować i komunikować się użytkownikom domeny domena.pl z innymi rozmówcami wcześniej wymienionych sieci. Klienty jabbera będą nawiązywały szyfrowane połączenie z serwerem. Usługa JMC będzie umożliwiała nawiązywanie szyfrowanego połączenia z serwerami pocztowymi.


2. Instalacja oprogramowania
a. Jabber
- Biblioteka pth
Ściągamy źródła ze strony ftp://ftp.ossp.org/pkg/lib/pth/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr --enable-optimize
# make && checkinstall && installpkg


- Serwer jabberd
Ściągamy źródła ze strony http://download.jabberd.org/jabberd14/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr/ --sysconfdir=/etc/jabberd --enable-ssl
# make && checkinstall && installpkg


b. Gadu-Gadu
- Transport Gadu-Gadu
Ściągamy źródła ze strony http://jggtrans.jajcus.net/trac/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr/ --sysconfdir=/etc/jabberd --disable-debug
# make && checkinstall && installpkg


c. Tlen
- Biblioteka libxode
Ściągamy źródła ze strony http://sourceforge.net/projects/libxode, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr
# make && checkinstall && installpkg


- Biblioteka libidn
Ściągamy źródła ze strony ftp://alpha.gnu.org/pub/gnu/libidn/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr
# make && checkinstall && installpkg


- Biblioteka libtlen
Ściągamy źródła ze strony http://sourceforge.net/projects/libtlen/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr
# make && checkinstall && installpkg


- Transport Tlen
Ściągamy źródła ze strony http://sourceforge.net/projects/jtlentrans/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr --sysconfdir=/etc/jabberd
# make && checkinstall && installpkg


d. Jabber Mail Component
- Język Python 2.4
Uaktualniamy wersję języka Python w naszym systemie do serii 2.4.x. Ma to znaczenie dla wykonywania połączeń szyfrowanych. Nie są one możliwe w przypadku Pythona 2.3.x.

- Biblioteka libxml2
Ściągamy źródła ze strony ftp://xmlsoft.org/libxml2/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr --sysconfdir=/etc
# make && checkinstall && installpkg


- Toolkit dnspython
Ściągamy źródła ze strony http://www.dnspython.org/kits/stable/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# python setup.py install --root="/katalog/paczki"
# makepkg -l y -c n paczka.tgz && installpkg


- Integrator Swig
Ściągamy źródła ze strony http://heanet.dl.sourceforge.net/sourceforge/swig/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# ./configure --prefix=/usr --sysconfdir=/etc/swig
# make && checkinstall && installpkg


- Toolkit m2crypto
Ściągamy źródła ze strony http://wiki.osafoundation.org/pub/Projects/MeTooCrypto/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# python setup.py build
# python setup.py install --root="/katalog/paczki"
# makepkg -l y -c n paczka.tgz && installpkg


- Pythonowska implementacja jabbera PyXMPP
Ściągamy źródła ze strony http://jabberstudio.rediris.es/pyxmpp/, rozpakowujemy, kompilujemy, robimy paczkę i instalujemy:
# python setup.py build
# python setup.py install --root="/katalog/paczki"
# makepkg -l y -c n paczka.tgz && installpkg


- Komponent Jabber Mail Component
Ściągamy oprogramowanie ze strony http://people.happycoders.org/dax/jabber/jmc.html i rozpakowujemy do dowolnego katalogu w systemie.


3. Konfiguracja systemu operacyjnego
a. Użytkownik serwera
Tworzymy w systemie dedykowanego użytkownika, który będzie uruchamiał serwer jabbera:
# groupadd jabber
# useradd -g jabber -s /dev/null -d /dev/null jabber


b. Katalogi serwera, uprawnienia
Tworzymy odpowiednie katalogi i pliki dla naszego serwera, w jednym usystematyzowanym miejscu. W nich będą przechowywane dane serwera i użytkowników.
# mkdir /sciezka/do/katalogu/jabber
# mkdir /sciezka/do/katalogu/jabber/log
# mkdir /sciezka/do/katalogu/jabber/pid
# mkdir /sciezka/do/katalogu/jabber/spool
# touch /sciezka/do/katalogu/jabber/pid/jmc.pid


Ustawiamy właściciela katalogów/plików i nadajemy im odpowiednie uprawniania poleceniami:
# chown -R jabber:jabber /sciezka/do/katalogu/jabber
# chmod -R 750 /sciezka/do/katalogu/jabber



4. Konfiguracja oprogramowania
a. Certyfikaty, klucze
W katalogu /etc/jabberd wykonujemy poniższy skrypt, który wygeneruje nam certyfikat i klucz potrzebne do nawiązywania szyfrowanego połączenia klienta z serwerem:

Kod: Zaznacz cały

#!/bin/sh 
# Zmienne 
   OPENSSL=/usr/bin/openssl 
# Generuje certyfikat i klucz 
# Klucz ważny przez 3650. 
# Upewnić się, że wprowadza się nazwę serwera jako FQDN 
# zamiast "Common Name". 
   $OPENSSL req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out key.pem 
# Usunie hasło 
   $OPENSSL rsa -in privkey.pem -out privkey.pem 
# Połączy dane 
   cat privkey.pem > > key.pem 
# Wyczyści 
   rm privkey.pem
Następnie edytujemy plik /etc/jabberd/jabber.xml i wpisujemy:

Kod: Zaznacz cały

<pthcsock>
...
   <ip port="5222"/>
   <ssl port="5223">publiczny.adres.ip</ssl>
   <ssl port="5223">lokalny.adres.ip</ssl>
...
</pthcsock>
oraz

Kod: Zaznacz cały

<io>
...
<ssl>
   <key ip="publiczny.adres.ip">/etc/jabberd/key.pem</key>
   <key ip="lokalny.adres.ip">/etc/jabberd/key.pem</key>
</ssl>
...
</io>
b. Serwer Jabberd
Edytujemy plik /etc/jabberd/jabber.xml i wpisujemy odpowiednie wartości dla konkretnych opcji. Podstawowa konfiguracja prezentuje się następująco:

Kod: Zaznacz cały

<jabber>
   <service id="sessions">
      <host><jabberd:cmdline flag="h">domena.pl</jabberd:cmdline></host>
      <jsm xmlns="jabber:config:jsm">
         <vCard>
            <FN>Jabber Server</FN>
            <DESC>A Jabber Server!</DESC>
            <URL>http://domena.pl/</URL>
         </vCard>
         <welcome xml:lang='en'>
            <subject>Welcome!</subject>
            <body>Welcome to the Jabber server at domena.pl -- we hope you enjoy this service!
            For information about how to use Jabber, visit the Jabber User's Guide at
            http://jabbermanual.jabberstudio.org/</body>
         </welcome>
         <vcard2jud/>
         <browse>
            <service type="jud" jid="users.jabber.org" name="Jabber User Directory">
               <ns>jabber:iq:search</ns>
               <ns>jabber:iq:register</ns>
         </service>
         </browse>
         <disco>
            <identity category='services' type='jabber' name='Jabber 1.4 Server'/>
            <feature var='jabber:iq:browse'/>
            <feature var='jabber:iq:agents'/>
            <feature var='jabber:iq:register'/>
            <feature var='jabber:iq:time'/>
            <feature var='jabber:iq:last'/>
            <feature var='jabber:iq:version'/>
         </disco>
         <mod_auth_crypt>
            <hash>SHA1</hash>
         </mod_auth_crypt>
         <presence></presence>
      </jsm>
      <load main="jsm">
         <jsm>/usr/lib/libjabberdsm.so</jsm>
         <mod_stat>/usr/lib/libjabberdsm.so</mod_stat>
         <mod_echo>/usr/lib/libjabberdsm.so</mod_echo>
         <mod_roster>/usr/lib/libjabberdsm.so</mod_roster>
         <mod_time>/usr/lib/libjabberdsm.so</mod_time>
         <mod_vcard>/usr/lib/libjabberdsm.so</mod_vcard>
         <mod_last>/usr/lib/libjabberdsm.so</mod_last>
         <mod_version>/usr/lib/libjabberdsm.so</mod_version>
         <mod_announce>/usr/lib/libjabberdsm.so</mod_announce>
         <mod_agents>/usr/lib/libjabberdsm.so</mod_agents>
         <mod_browse>/usr/lib/libjabberdsm.so</mod_browse>
         <mod_disco>/usr/lib/libjabberdsm.so</mod_disco>
         <mod_admin>/usr/lib/libjabberdsm.so</mod_admin>
         <mod_offline>/usr/lib/libjabberdsm.so</mod_offline>
         <mod_presence>/usr/lib/libjabberdsm.so</mod_presence>
         <mod_auth_digest>/usr/lib/libjabberdsm.so</mod_auth_digest>
         <mod_auth_plain>/usr/lib/libjabberdsm.so</mod_auth_plain>
         <mod_log>/usr/lib/libjabberdsm.so</mod_log>
         <mod_register>/usr/lib/libjabberdsm.so</mod_register>
         <mod_xml>/usr/lib/libjabberdsm.so</mod_xml>
      </load>
   </service>
   <xdb id="xdb">
      <host/>
      <ns/>
      <load>
         <xdb_file>/usr/lib/libjabberdxdbfile.so</xdb_file>
      </load>
      <xdb_file xmlns="jabber:config:xdb_file">
         <spool><jabberd:cmdline flag='s'>/sciezka/do/katalogu/jabber/spool/</jabberd:cmdline></spool>
         <timeout>3600</timeout>
         <sizelimit>500000</sizelimit>
      </xdb_file>
   </xdb>
   <service id="c2s">
      <load>
         <pthsock_client>/usr/lib/libjabberdpthsock.so</pthsock_client>
      </load>
      <pthcsock xmlns='jabber:config:pth-csock'>
         <authtime/>
         <heartbeat>60</heartbeat>
         <karma/>
         <ip port="5222"/>
         <ssl port="5223">publiczny.adres.ip</ssl>
         <ssl port="5223">lokalny.adres.ip</ssl>
      </pthcsock>
   </service>
   <log id='elogger'>
      <host/>
      <logtype/>
      <format>%d: [%t] (%h): %s</format>
      <file>/sciezka/do/katalogu/jabber/log/error.log</file>
      <stderr/>
   </log>
   <log id='rlogger'>
      <host/>
      <logtype>record</logtype>
      <format>%d %h %s</format>
      <file>/sciezka/do/katalogu/jabber/log/record.log</file>
   </log>
   <service id="dnsrv">
      <host/>
      <load>
         <dnsrv>/usr/lib/libjabberddnsrv.so</dnsrv>
      </load>
      <dnsrv xmlns="jabber:config:dnsrv">
         <resend service="_xmpp-server._tcp">s2s</resend>
         <resend service="_jabber._tcp">s2s</resend>
         <resend>s2s</resend>
      </dnsrv>
   </service>
   <service id="s2s">
      <load>
         <dialback>/usr/lib/libjabberddialback.so</dialback>
      </load>
      <dialback xmlns='jabber:config:dialback'>
         <ip port="5269"/>
         <karma>
            <init>50</init>
            <max>50</max>
            <inc>4</inc>
            <dec>1</dec>
            <penalty>-5</penalty>
            <restore>50</restore>
         </karma>
      </dialback>
   </service>
   <service id="update.jabber.org">
      <host>update.jabber.org</host>
      <null/>
   </service>
   <io>
      <rate points="5" time="25"/>
      <ssl>
         <key id="publiczny.adres.ip">/etc/jabberd/key.pem</key>
         <key id="lokalny.adres.ip">/etc/jabberd/key.pem</key>
      </ssl>
      <streamconf>
         <default type='s2s'>
            <stream-from/>
         </default>
      </streamconf>
      <bounce>http://www.example.com/</bounce>
   </io>
   <debug>
      <mask>0</mask>
  </debug>
</jabber>
c. Transport Tlen
Plik tt.example.xml.Pl należy skopiować do katalogu /etc/jabberd/ jako plik tt.xml. Edytujemy plik tt.xml oraz jabber.xml wg instrukcji z pliku README. Podstawowe ustawienia pliku tt.xml powinny wyglądać mniej więcej tak:

Kod: Zaznacz cały

<tt>
   <service jid="tlen.domena.pl"/>
   <connect id="tlenlinker">
      <ip>publiczny.adres.ip</ip>
      <port>7005</port>
      <secret>hasło</secret>
   </connect>
   <register>
      <instructions>Choose a tlen username and password to register with Tlen Transport.
      Send blank form to unregister from transport.</instructions>
   </register>
   <search>
      <instructions>
         Aby wyszukać ludzi:
         Wprowadz imię lub nazwisko, nick, miasto
         rok urodzenia lub zakres (np. 1950-1960)
         oraz płeć (mozesz wypelnic jedno lub więcej pol).
         lub
         Wprowadz numer telefonu.
      </instructions>
   </search>
   <gateway>
      <desc>Wprowadz login Tlen osoby z ktora chcesz sie skontaktować.</desc>
      <prompt>Login Tlen</prompt>
   </gateway>
   <vCard>
      <FN>Tlen Transport</FN>
      <DESC>To jest Tlen Transport - bramka miedzy Jabberem, a Tlenem </DESC>
      <URL>http://sourceforge.net/projects/jtlentrans/</URL>
   </vCard>
   <debug loglevel="4"/>
   <log type="file">/sciezka/do/katalogu/jabber/log/tlentrans.log</log>
   <log type="syslog" facility="local0"/>
   <spool type="dir">/sciezka/do/katalogu/jabber/spool/tlen.domena.pl</spool>
</tt>
Natomiast do pliku jabber.xml, w sekcji BROWSE należy dodać wpis:

Kod: Zaznacz cały

<service type="tlen" jid="tlen.domena.pl" name="Tlen Transport">
   <ns>jabber:iq:register</ns>
   <ns>jabber:iq:gateway</ns>
   <ns>jabber:iq:search</ns>
   <ns>jabber:iq:agent</ns>
   <ns>jabber:iq:browse</ns>
</service>
A pod koniec pliku wpis:

Kod: Zaznacz cały

<service id="tlenlinker">
   <host>tlen.domena.pl</host>
   <accept>
      <ip>publiczny.adres.ip</ip>
      <port>7005</port>
      <secret>hasło</secret>
   </accept>
</service>
d. Transport Gadu-Gadu
Plik jggtrans.xml.Pl należy skopiować do katalogu /etc/jabberd/ jako plik ggtrans.xml. Edytujemy plik ggtrans.xml oraz jabber.xml wg instrukcji z pliku ggtrans.xml. Podstawowe ustawienia pliku ggtrans.xml powinny wyglądać mniej więcej tak:

Kod: Zaznacz cały

<jggtrans>
   <service jid="gg.domena.pl"/>
   <bare_domain/> 
   <connect>
      <ip>publiczny.adres.ip</ip>
      <port>5353</port>
      <secret>hasło</secret>
   </connect>
   <register>
      <instructions>
         Aby się zarejestrować proszę wpisać
         swój numerek GG (UIN) w polu "username".<p/>
         Aby się wyrejestrować należy zostawić formularz pusty.<p/>
         Aby zmienić swoje dane w bazie GaduGadu należy wypełnić
         pole "nickname" oraz w razie potrzeby pozostałe.<p/>
         Wypełniając ten formularz zgadzasz się na wysłanie zamieszczonych
         tutaj danych do sms-express.com Sp. z o.o. i ich przetwarzanie
         przez tą spółkę. <p/>
         Na serwerze realizującym transport zachowane będzie jedynie hasło,
         jabberid oraz numer GG użytkownika a także numery osób w liście kontaktów.
      </instructions>
   </register>
   <search>
      <instructions>
         Proszę podać imię (first) i/lub nazwisko (last)
         i/lub ksywę (nick) i/lub miasto (city) szukanej osoby.<p/>
         Można także wyszukiwać według numeru UIN.
      </instructions>
   </search>
   <gateway>
      <desc>
         Proszę podać numerek GaduGadu użytkownika z którym chcesz się
         skontaktować.
      </desc>
      <prompt>
         Numerek GG
      </prompt>
   </gateway>
   <vCard>
      <FN>GaduGadu Transport</FN>
      <DESC>To jest bramka pomiędzy Jabberem a GaduGadu.</DESC>
      <URL>http://jggtrans.jajcus.net/</URL>
   </vCard>
   <default_locale>pl_PL</default_locale>
   <log type="syslog" facility="local0"/>
   <log type="file">/sciezka/do/katalogu/jabber/log/ggtrans.log</log>
   <conn_timeout>60</conn_timeout>
   <ping_interval>10</ping_interval>
   <pong_timeout>31536000</pong_timeout>
   <reconnect>10</reconnect>
   <disconnect_delay>5</disconnect_delay>
   <spool>/sciezka/do/katalogu/jabber/spool/gg.domena.pl/</spool>
   <restart_timeout>5</restart_timeout>
   <servers>
      <hub tls="no"/>
      <server tls="no" port="8074">217.17.41.92</server>
      <server tls="no" port="8074">217.17.41.88</server>
      <server tls="no" port="8074">217.17.41.85</server>
      <server tls="no" port="8074">217.17.41.93</server>
      <server tls="no" port="8074">217.17.41.133</server>
      <server tls="no" port="8074">217.17.41.143</server>
      <server tls="no" port="8074">217.17.41.144</server>
   </servers>
   <admin>administrator@domena.pl</admin>
   <acl></acl>
</jggtrans>
Natomiast do pliku jabber.xml, w sekcji BROWSE należy dodać wpis:

Kod: Zaznacz cały

<service category="service" type="x-gadugadu" jid="gg.domena.pl" name="GaduGadu Transport">
   <ns>jabber:iq:gateway</ns>
   <ns>jabber:iq:register</ns>
   <ns>jabber:iq:search</ns>
   <ns>jabber:iq:agent</ns>
   <ns>jabber:iq:browse</ns>
</service>
A pod koniec pliku wpis:

Kod: Zaznacz cały

<service id="gglinker">
   <host>gg.domena.pl</host>
   <accept>
      <ip>publiczny.adres.ip</ip>
      <port>5353</port>
      <secret>hasło</secret>
   </accept>
</service>
e. Komponent JMC
Plik jmc.xml kopiujemy do katalogu /etc/jabberd/, a następnie edytujemy go wpisując następujące wiersze (odpowiednio dostosowując je do własnych potrzeb):

Kod: Zaznacz cały

<config>
   <jabber>
      <server>publiczny.adres.ip</server>
      <port>5347</port>
      <secret>hasło</secret>
      <service>jmc.domena.pl</service>
      <connectsleep>5</connectsleep>
      <language>pl</language>
      <vCard>
         <FN>Jabber Mail Component</FN>
         <DESC>A Jabber mail server component</DESC>
         <URL>http://people.happycoders.org/dax/jabber/jmc/</URL>
      </vCard>
   </jabber>
   <storage>DBM</storage>
   <spooldir>/sciezka/do/katalogu/jabber/spool/</spooldir>
   <pidfile>/sciezka/do/katalogu/pid/jmc.pid</pidfile>
   <!-- default check interval in minutes -->
   <check_interval>5</check_interval>
   <mail_default_encoding>iso-8859-2</mail_default_encoding>
</config>
Do pliku jabber.xml, w sekcji BROWSE dopisujemy następujące wiersze:

Kod: Zaznacz cały

<service type="jmc" jid="jmc.domena.pl" name="Jabber Mail Component">
   <ns>jabber:iq:register</ns>
   <ns>jabber:iq:gateway</ns>
</service>
a pod koniec pliku:

Kod: Zaznacz cały

<service id="jmc.domena.pl">
   <host>jmc.domena.pl</host>
   <accept>
      <ip>publiczny.adres.ip</ip>
      <port>5347</port>
      <secret>hasło</secret>
   </accept>
</service>
5. Konfiguracja firewalla
Reguły jakie należy dodać, aby możliwe było nawiązywanie komunikacji i połączeń z zewnątrz do naszego serwera. Zakładamy, że polityka łańcucha OUTPUT ma wartość ACCEPT.

Wpuszczaj polaczenia przychodzace JABBER nieszyfrowane

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 5222 -j ACCEPT 
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 5269 -j ACCEPT
Wpuszczaj polaczenia przychodzace JABBER szyfrowane

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 5223 -j ACCEPT
Wpuszczaj polaczenia przychodzace JABBER/GG nieszyfrowane

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 5353 -j ACCEPT
iptables -A INPUT -p udp -s 0.0.0.0/0 --dport 5353 -j ACCEPT
Wpuszczaj polaczenia przychodzace JABBER/TLEN nieszyfrowne

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 7005 -j ACCEPT 
iptables -A INPUT -p udp -s 0.0.0.0/0 --dport 7005 -j ACCEPT
Wpuszczaj polaczenia przychodzace JABBER/JMC nieszyfrowane

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 5347 -j ACCEPT 
iptables -A INPUT -p udp -s 0.0.0.0/0 --dport 5347 -j ACCEPT
6. Uruchomienie usługi
Skrypt uruchamiający/restartujący/zatrzymujący serwer wraz z usługami. Należy dodać jego wywołanie w pliku rc.local aby serwer startował podczas uruchamiania systemu.

Kod: Zaznacz cały

#!/bin/sh 
# Zmienne 
 JABBERD=/usr/bin/jabberd 
 JABBERD_CONF=/etc/jabberd/jabber.xml 
 GG_TRANSPORT=/usr/sbin/jggtrans 
 GG_TRANSPORT_CONF=/etc/jabberd/ggtrans.xml 
 TLEN_TRANSPORT=/usr/bin/tt 
 TLEN_TRANSPORT_CONF=/etc/jabberd/tt.xml
 JMC_COMPONENT=/katalog/jmc/jmc.py
 JMC_COMPONENT_CONF=/etc/jabberd/jmc.xml

  
 # Skrypt 
 jabber_start() { 
   if [ -x $JABBERD -a -r $JABBERD_CONF ]; then 
     echo "Starting Jabber server: $JABBERD -B -U jabber -c $JABBERD_CONF" 
     $JABBERD -B -U jabber -c $JABBERD_CONF 
     sleep 2 
     if [ -x $GG_TRANSPORT -a -r $GG_TRANSPORT_CONF ]; then 
       echo "Starting GG transport: $GG_TRANSPORT -u jabber $GG_TRANSPORT_CONF" 
       $GG_TRANSPORT -u jabber $GG_TRANSPORT_CONF 
     fi 
     if [ -x $TLEN_TRANSPORT -a -r $TLEN_TRANSPORT_CONF ]; then 
       echo "Starting Tlen transport: $TLEN_TRANSPORT -u jabber -c $TLEN_TRANSPORT_CONF" 
       $TLEN_TRANSPORT -u jabber -c $TLEN_TRANSPORT_CONF 
     fi
     if [ -x $JMC_COMPONENT -a -r $JMC_COMPONENT_CONF ]; then
       echo "Starting JMC component:  /usr/bin/screen -d -m python $JMC_COMPONENT -c $JMC_COMPONENT_CONF"
       /usr/bin/screen -d -m python $JMC_COMPONENT -c $JMC_COMPONENT_CONF
     fi
 
   fi 
 } 
  
 jabber_stop() { 
   JMC_PID=`cat /sciezka/do/katalogu/jabber/pid/jmc.pid`
   echo "Stopping JMC component:  killall $JMC_PID"
   kill $JMC_PID
   echo "Stopping GG transport: killall jggtrans" 
   killall jggtrans 
   echo "Stopping Tlen transport: killall tt" 
   killall tt 
   echo "Stopping Jabber server: killall jabberd" 
   killall jabberd 
 } 
  
 jabber_restart() { 
   jabber_stop 
   sleep 2 
   jabber_start 
 } 
  
 case "$1" in 
 'start') 
   jabber_start 
   ;; 
 'stop') 
   jabber_stop 
   ;; 
 'restart') 
   jabber_restart 
   ;; 
 *) 
   echo -e "Usage: $0 {start - stop - restart}" 
   ;; 
 esac
7. Porady
a. Uniemożliwienie rejestracji na serwerze
W domyślnej konfiguracji, można bez problemu rejestrować się na serwerze jabbera. Można temu zapobiec np. w celu ograniczenia ilości użytkowników. Po zarejestrowaniu wszystkich dozwolonych użytkowników wystarczy w pliku /etc/jabberd/jabber.xml zakomentować sekcje:

Kod: Zaznacz cały

<register notify="yes">
<instructions>
   Choose a username and password
   to register with this server.
<instructions>
<name/>
<email/>
<register>
oraz

Kod: Zaznacz cały

<mod_register>./jsm/jsm.so</mod_register>
Po restarcie serwera rejestracja nie będzie możliwa, a przy konieczności dodania użytkownika trzeba będzie wykonać czynność odwrotną.

b. Pozwolenie tylko na połączenia szyfrowane
Aby zmusić Uzytkowników do nawiązywania z serwerem tylko szyfrowanego połączenia, można wyłączyć nasłuchiwanie serwera jabberd na nieszyfrowanym porcie i przez to uniemożliwić wykonywanie połączeń nieszyfrowanych. Wystarczy w pliku /etc/jabebrd/jabber.xml usunąć lub zakomentować linię:

Kod: Zaznacz cały

<ip port="5222"/>
oraz skonfigurować reguły firewalla w ten sposób, aby nie wpuszczały połączeń na ten port. Zrestartować serwer.

c. Obsługa RSS w kliencie jabbera na stacji roboczej
Klient sieci Jabber (np. PSI) może pełnić rolę scentralizowanego miejsca powiadamiania. Oprócz informowania o nowej poczcie dzięki JMC, można również korzystać z kanałów RSS. Do tego celu wykorzystana zostanie usługa JabRSS. Możliwe jest skonfigurowanie własnego serwisu powiadomień współpracującego z serwerm Jabber, a także skorzystanie z juz istniejących w sieci. Wybierzemy drugą opcję.

W tym celu, w naszym kliencie, do listy dodajemy i autoryzujemy kontakt jabrss@cmeerw.net. Następnie, aby zasubskrybować jakikolwiek kanał RSS z sieci, wystarczy wywołać okno rozmowy nowego kontaktu i wpisać polecenie subscribe adres_kanału_RSS. Od tej pory, systematycznie kanał będzie sprawdzany przez zdalny serwer i jeśli pojawią sie nowe nagłówki RSS, to zostaniemy powiadomieni przez dodany kontakt w naszym kliencie jabbera.

Więcej informacji dostępnych jest pod adresami:
- JabRSS
- Usage
- Summary of codes


8. Odsyłacze pomocnicze
- Przewodnik Administratora jabberd
- Install Jabber Mail Component
- Jabber Mail Component User's Guide



Autor: Skyscraper - skyscraper[AT]jawgroup[DOT]pl
Ostatnio zmieniony 2006-09-08, 21:14 przez Skyscraper, łącznie zmieniany 2 razy.
ODPOWIEDZ