Služby poskytované mailovými branami

Petr Vokáč

$Id: mailgw.xml,v 1.1 2005/04/10 20:59:47 vokac Exp$


1. TODO
2. Instalace/konfigurace
2.1. Distribuce
2.2. Mailová brána
2.3. Eduroam
3. Aplikace
3.1. Postfix
3.1.1. Konfigurační soubory
3.1.2. SMTP AUTH
3.1.3. Performance
3.2. Amavis
3.2.1. Úpravy po instalaci (amavis-new 2.3.2)
3.2.2. Pravidla pro konfiguraci
3.3. OpenLDAP
3.3.1. Instalace s podporou multimaster replikací
3.3.2. Konfigurace
3.3.3. Synchronizace
3.3.4. Globální autentizační služba
3.4. Značkování spamu
3.4.1. Spamassassin
3.4.2. DSpam - FIXME: dočasně vyřazen z provozu
3.5. Antivirus
3.6. Apache
3.7. Webmail (horde)
3.8. FreeRADIUS
3.9. OpenSSL
3.10. OpenSSH
3.11. IPSec pro RADIUS
3.12. SNMP daemon
4. Monitoring, testování, backup
4.1. Logování
4.2. Nagios & OpenNMS
4.3. MRTG
4.4. Mail
4.5. Backup (bacula)
5. Správa/Troubleshooting
5.1. Přehození aliasu při výpadku primární mailové brány
5.2. Rozdíly v konfiguracích mailgw1 a mailgw2
5.3. Problém při startu OpenLDAP
6. Další odkazy
6.1. Mailová brána na FJFI
6.2. Použitý software a konfigurace

1. TODO

  • dc.fjfi.cvut.cz

  • definovat platnost emailové adresy (zatím, když se někdo dostane do o=Odpad, tak se mu tím zruší i email na mailgw)

  • Synchronizace - periodicky + na vyžádání

  • amavis

    • exe & spol - doručit jako příponu s upozorněním

    • dspam

      • vyhodnotit výsledky ze 14 denního testování (korelace s výsledky spamassassinu)

      • otestovat s MySQL databázovým backendem

2. Instalace/konfigurace

2.1. Distribuce

CentOS4 (klon RHEL4), aby bylo možno v případě nutnosti odmigrovat přímo na RHEL. Balíky jsou pokud možno přímo z distribuce případně překompolované src.rpm z externích repozitářů (amavis, ....). Preferovány jsou "oficiání" zdroje pro pro Fedoru Core 3 a Fedora Extra pro FC3, které by měli být bez problemů kompatibilní s RHEL4.

Po instalaci bylo nutné provést ještě následující upravy:

2.2. Mailová brána

Potřebné komponenty pro chod mailové brány:

  • Postfix

  • Amavis

    • kav

    • spamassassin

    • dspam

  • OpenLDAP

  • IMP Horde

  • Apache

  • certifikáty

2.3. Eduroam

  • OpenLDAP (authentizace)

  • VPN

  • RADIUS

  • certifikáty

  • eduroam-simple

    • VLAN

    • iptables - NAT, firewall

    • web - autentizace

    • db - autentizovani klienti

3. Aplikace

3.1. Postfix

3.1.1. Konfigurační soubory

Umístění /etc/postfix, upraveny následující soubory:

  • main.cf - hlavní konfigurační soubor s hromadou nastavení (komentované)

  • master.cf - konfigurace amavis content-filtru, počtu běžících daemonů, spam a nospam adresy k učení

  • canonical-ldap.cf - pro přepisování @fjfi, @br, @kmat, @km1, @troja na oficiální adresy

  • helo_access - odmítnutí strojů, které zdraví "mým" jménem (fjfi.cvut.cz, IP, localhost)

  • recipient_access - nastavena verifikace příjemců z .fjfi.cvut.cz

  • transport - pro přeposílání na cílové mailservery za mailovou branou na FJFI

  • aliases - přidány aliasy spam a nospam (nebo je potreba jinak zajistit, aby verifikace těchto adres prošla)

  • mx_access - odmítání MXek z privátních a podobných sítí

  • vygenerovat klíče

    openssl gendh -out /etc/postfix/dh_1024.pem -2 -rand /dev/random 1024
    openssl gendh -out /etc/postfix/dh_512.pem -2 -rand /dev/random 512
  • konfigurace pro učení spamových filtrů

Navíc upraven startovací skript /etc/init.d/postfix, aby při startu, restartu a reloadu automaticky přegeneroval "db" soubory pomocí Makefile umístěného v /etc/postfix.

3.1.2. SMTP AUTH

  • nastavit ověřování v main.cf a rozběhnout SSL daemony v master.cf

  • ověřování hesel

    • /etc/pam.d/smtp - nastavení ověřování proti LDAP

    • /etc/ldap.conf - nastavení ověřovacího zdroje (Usermap)

    • certifikáty - viz. kapitola OpenSSL

    • autentizační daemon saslauthd

      • /etc/sysconfig/saslauthd - nastavit ověřování proti pam modulům

      • /usr/lib/sasl2/smtpd.conf - podporované mechanizmy nastavit na

        pwcheck_method: saslauthd
        mech_list: plain login

        (je to nutné/vhodné?)

3.1.3. Performance

  • /etc/fstab - mountovat /var/spool s parametrem noatime

3.2. Amavis

3.2.1. Úpravy po instalaci (amavis-new 2.3.2)

  • upravit konfigurační soubor /etc/amavisd.conf

  • úpravy provedené při kompilaci ze src.rpm balíku

    • amavis-new 2.3.2 vyžaduje novější verzi některých perl modulů: Net::LDAP + závislosti (IO::Socket::SSL, Net::SSLeay, Authen::SASL) - vesměs převzaty/překompilovány z Fedora Core/Extra

    • nahrazení X-Spam resp. X-Amavis hlaviček v amavisd za X-CTU-FNSPE-Spam resp. X-CTU-FNSPE-Amavis

      perl -p -i -e 's/append_header\((.)X-(Spam|Amavis)/append_header($1X-CTU-FNSPE-$2/g' /usr/sbin/amavisd
    • ošetření situace, kdy dojde ke ztrátě spojení s OpenLDAP (amavisd-new-2.3.2-ldap_reconnect.patch)

    • přidání bodů do Subject, odstranění vícenásobného výskytu ***SPAM*** (amavisd-new-2.3.2-subject_hits.patch)

    • úprava X-DSPAM hlaviček a přidání výsledků dspam ke globálnímu obodování (amavisd-new-2.3.2-dspam_hits.patch)

    • přidání hlavičky duplicitní X-Spam-Status hlavičky, která je využívána novellem v Trojance (amavisd-new-2.3.2-all_header.patch)

3.2.2. Pravidla pro konfiguraci

  • spamy

  • viry

    • KAV daemon použit jako primární nástroj pro kontrolu virů, pokud daemon umře, je spuštěn pro každý mail nový proces. V případě nefunkčnosti se maily hromadí ve frontě nezkontrolovaných mailů (dalo by se vyřešit druhým záložním antivirem - např. clamav).

    • zahazovat, neinformovat

  • filtrování (přípony, `file`, MIME)

    • TODO: spustitelné doručit jako přílohu s varováním

  • bad headers

    • nepoužívá se

3.3. OpenLDAP

3.3.1. Instalace s podporou multimaster replikací

  • standardní OpenLDAP z distribuce nepodporuje multimaster replikaci

  • pro zakompilovaní příslušné podpory je potřeba:

    • nainstalovat zdrojový balík z distribuce přípdaně updatů

      rpm -Uvh openldap-2.2.x-x.src.rpm
    • zkopírovat openldap-2.2.13-multimaster.patch do /usr/src/redhat/SOURCES

    • aplikovat openldap.spec.patch na /usr/src/redhat/SPECS/openldap.spec, který upraví kompilační skript tak, aby aplikoval multimaster patch

      patch < opeldap.spec.patch
  • je nutné zakázat automatické updaty OpenLDAP např. přidáním následujícího řádku do /etc/yum.conf

    exclude=openldap*

3.3.2. Konfigurace

  • konfigurační soubory uloženy v /etc/openldap

    • slapd.conf - hlavní konfigurace OpenLDAP serveru

    • slapd.access.conf - přístupová práva (includován do slapd.conf)

    • slapd.auth.conf - globální autentizační služba (ověřování proti NDS, ADS, Usermap, ...)

    • ldap.conf - konfigurační parametry pro OpenLDAP klientské API

  • schemata v /etc/openldap/shema

    • fjfi.schema - schema obsahující atributy specifické pro FJFI

3.3.3. Synchronizace

  • viz. prezentace o mailové bráně

  • komentáře ve zdrojových souborech

    • SyncLdap.py - vlastní synchronizační skript (více lze najít ve zdrojácích a příslušných komentářích), cli a web interface

    • SearchLdap.py - skript pro vyhledávání v ČVUT LDAP adresářích, generování formátovaných výstupů, cli a web interface

    • CvutLdap.py - obalení standardních LDAP funkcí pro jednodušší přístup k LDAP adresářům na ČVUT

    • Config.py - všeobecné konfigurační parametry (např. jména LDAP strojů, parametry pro připojení, konstanty - CvutConst.py, CvutConstPhones.py, CvutConstRooms.py)

    • GAN.py - ručně zadaná rodná čísla pro položky, u nichž je nelze zadat přímo do LDAPu (NDS, AD)

3.3.4. Globální autentizační služba

  • /etc/sysconfig/saslauthd - nastavení autentizace proti LDAP

    MECH=ldap
  • /etc/saslauthd.conf - konfigurace LDAP pro SASL autentizaci

    ldap_servers: ldap://ldap1.fjfi.cvut.cz ldap://ldap2.fjfi.cvut.cz
    ldap_search_base: ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz
    ldap_filter: (&(uid=%u)(dc=%d))
    
  • /usr/lib/sasl2/slapd.conf - konfigurace ověřování pomocí SASL k OpenLDAP

    pwcheck_method: saslauthd
  • /etc/openldap/AuthSASL.py - přepisování LDAP filtru pocházejícího z saslauthd.conf na virtuální DN uid=username,ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz

  • /etc/openldap/slapd.auth.conf - konfigurace autentizace proti několika různým autentizačním zdrojům, nutné includovat do slapd.conf

    # OpenLDAP 2.3: authz-regexp UID=([^,]*),CN=.* uid=$1,ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz
    
    
    sasl-regexp
      "uid=(.*)@(ldap|openaldap),cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiLdapUid=$1)"
    sasl-regexp
      "uid=(.*)@(nds|novell|km1|tjn|troja|km1\\.fjfi\\.cvut\\.cz|tjn\\.fjfi\\.cvut\\.cz|troja\\.fjfi\\.cvut\\.cz),cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiNovellUid=$1)"
    sasl-regexp
      "uid=(.*)@(ad|ads|win|windows),cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiWindowsUid=$1)"
    sasl-regexp
      "uid=(.*)@(usermap|cvut|cvut\\.cz),cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiUsermapUid=$1)"
    sasl-regexp
      "uid=(.*)@fjfi.cvut.cz,cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiUsername=$1)"
    sasl-regexp
      "uid=([^,]*),cn=.*"
      "ldap:///ou=Person,dc=fjfi,dc=cvut,dc=cz??sub?(fjfiUsername=$1)"
    
    
    #database        shell
    #suffix          "ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    ##subordinate # Restrict access to this subtree otherwise all searches go here
    #bind            /etc/openldap/ShellBind.py
    #search          /etc/openldap/ShellSearch.py
    
    
    database        shell
    suffix          "ou=UnknownSASL,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate     # Restrict access to this subtree otherwise all searches go here
    search          /etc/openldap/AuthSASL.py
    
    
    # Create flat authentication namespace with support for realm suffix
    database        ldap
    suffix          "ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate
    uri             ldap:///
    suffixmassage   "ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ""
    rewriteEngine   on
    rewriteMap ldap attr2LdapDN "ldap:///ou=People,dc=fjfi,dc=cvut,dc=cz?fjfiLdapDN?sub"
    rewriteMap ldap attr2NovellDN "ldap:///ou=People,dc=fjfi,dc=cvut,dc=cz?fjfiNovellDN?sub"
    rewriteMap ldap attr2WindowsDN "ldap:///ou=People,dc=fjfi,dc=cvut,dc=cz?fjfiWindowsDN?sub"
    rewriteMap ldap attr2UsermapDN "ldap:///ou=People,dc=fjfi,dc=cvut,dc=cz?fjfiUsermapDN?sub"
    rewriteMap ldap attr2PreferedDN "ldap:///ou=People,dc=fjfi,dc=cvut,dc=cz?fjfiAuthorizationSource?sub"
    rewriteContext bindDN
    rewriteRule "^uid=(.*)@(ldap|openaldap),ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2LdapDN(fjfiLdapUid=%1)},ou=Ldap,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ":@"
    rewriteRule "^uid=(.*)@(nds|novell|km1|tjn|troja|km1\\.fjfi\\.cvut\\.cz|tjn\\.fjfi\\.cvut\\.cz|troja\\.fjfi\\.cvut\\.cz),ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2NovellDN(fjfiNovellUid=%1)},ou=Novell,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ":@"
    rewriteRule "^uid=(.*)@(ad|ads|win|windows),ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2WindowsDN(fjfiWindowsUid=%1)},ou=Windows,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ":@"
    rewriteRule "^uid=(.*)@(usermap|cvut|cvut\\.cz),ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2UsermapDN(fjfiUsermapUid=%1)},ou=Usermap,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ":@"
    rewriteRule "^uid=(.*)@fjfi\\.cvut\\.cz,ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2PreferedDN(fjfiUsername=%1)}" ":@"
    rewriteRule "^uid=([^@]*),ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%{attr2PreferedDN(fjfiUsername=%1)}" ":@"
    rewriteRule "^.*,ou=Unknown,ou=Auth,dc=fjfi,dc=cvut,dc=cz$" "%0" ":#"
    
    
    # Create agregated directory from other LDAP sources
    database        ldap
    suffix          "ou=Ldap,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate
    uri             "ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz"
    suffixmassage   "ou=Ldap,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ""
    
    
    database        ldap
    suffix          "ou=Novell,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate
    uri             "ldaps://km1.fjfi.cvut.cz ldaps://tjn.fjfi.cvut.cz ldaps://fjfi-troja.fjfi.cvut.cz"
    suffixmassage   "ou=Novell,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ""
    
    
    database        ldap
    suffix          "ou=Windows,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate
    uri             "ldap://beta.fjfi.cvut.cz"
    suffixmassage   "ou=Windows,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ""
    
    
    database        ldap
    suffix          "ou=Usermap,ou=Auth,dc=fjfi,dc=cvut,dc=cz"
    #subordinate
    uri             "ldaps://usermap.cvut.cz"
    suffixmassage   "ou=Usermap,ou=Auth,dc=fjfi,dc=cvut,dc=cz" ""

3.4. Značkování spamu

3.4.1. Spamassassin

  • potřebné perl moduly lze dohledat na wiki stránkách - překompilovat vše ze src.rpm balíků (většina je jich součástí Fedora Extra).

  • k otestování funkčnosti všech modulů spamassassinu je možné použít následující příkaz:

    spamassassin -D < sample-spam.txt
  • nastavení standardních parametrů v /etc/mail/spamassassin/local.cf

  • přidání custom pravidel

    • SARE

    • pravidla stahována automaticky pomocí RulesDuJour skriptu a rules_du_jour_my kofigurací

    • automatický update z cronu, po update se automaticky restartuje amavis, aby si spamassassin načetl nová pravidla

3.4.2. DSpam - FIXME: dočasně vyřazen z provozu

Učení probíhá automaticky a je voláno přímo z Amavisu pokud se výsledek dspam a spamassassinu neschoduje a navíc je daný mail označen spamassassinem jako "velký" spam resp. "jistý" ham.

Pro uložení natrénovaných dat lze využít různé databáze. Nyní je použita SQLite vzhledem k tomu, že krom úpravy několika parametrů v dspam.conf pro dosahnutí optimálního výkonu nebylo potřeba nic dalšího konfigurovat. Pro optimání výkon by však měla být MySQL ještě o něco lepší volba.

SQLite databáze během 14 denního nabobtnala na 0.5GB a stala se prakticky nepoužitelná.

3.5. Antivirus

KAV antivirus for linux mailservers

  • KAV antivirus for linux mailservers (kav4mailservers-linux-5.5-2)

  • konfigurace /etc/kav/5.5/kav4mailservers/kav4mailservers.conf

  • vytvořit link pro spravne fungovani amavisu

    cd /opt/kav
    ln -s 5.5/kav4mailservers/bin .
  • spustit daemona

    chkconfig aveserver on
    /etc/init.d/aveserver start
  • nastavit automatické updatování z cronu /etc/cron.d/kav

3.6. Apache

3.7. Webmail (horde)

Pro přístup k mailům přes www rozhraní je naistalován IMP Horde. Instalace byla provedena z oficiálních tar.gz balíků (jedná se jen o php skripty) a dále bylo nutné upravit pár konfiguračních souborů (např. přidat seznam IMAP serverů). Konfigurace jsou umístěny v config adresáři jednotlivých balíků.

Pro správnou funkci bylo nutné doinstalovat/nakonfigurovat:

  • PEAR moduly: Log, Mail_Mime, File, Services_Weather, Console_Table, File_Find, Date, Net_URL, Net_Socket, HTTP_Request (více se dá zjistit na testovací stránce)

  • PECL modul fileinfo, který však není dostupný, ale naštěstí není nutný

  • vytvořit databáze pomocí SQL skriptů z */scripts/sql

  • zkopírovat *.conf.dist soubory v adresářích config na *.conf, zbytek se dá s příslušnými pravy dokonfigurovat přes web

    for f in *.dist; do cp $f `basename $f .dist`; done
  • upravit konfigurace IMAP a LDAP serverů pro IMP resp. Turba

  • zabezpečit apache pomocí /etc/httpd/conf.d/horde.conf

  • TODO: replikace konfigurací v MySQL mezi mailgw1 a mailgw2

  • nutné nastavit SELinux tak, aby umožnil odesílání mailů pomocí postfixu (převzato z Fedory Core 3, kde je to již ošetřené)

    • selinux-postfix.patch - patch vytvořený na základě změn CentOS4 proti FC3

      yum install selinux-policy-targeted-sources
      cd /etc/selinux/targeted/src/policy
      patch -p2 < selinux-postfix.patch
      make load
      restorecon -R -v /usr/sbin/sendmail.postfix /var/spool
  • aby nebyla přidána hlavička odesilatele do mailu (což nemusí dělat dobře některým spam filtrům, když má odesilatel např. dynamickou adresu), je dobré aplikovat patch horde-imp-received.patch pro IMP, který zavede možnost změnit toto chování v konfiguračním souboru pro IMP.

    $conf['msg']['received_for_browser'] = false;

3.8. FreeRADIUS

  • konfigurace viz. /etc/raddb

    • konfigurace se liší na radius1 a radius2 v certifikátech a secretech k národním radius serverům

  • vytvořit SQL databázi

  • TODO: vyřešit testovacího uživatele

3.9. OpenSSL

  • /usr/share/ssl/certs/cca.pem.crt - kořenový certifikát pro Cesnet CA

  • /usr/share/ssl/certs/cca.pem.crl - revokační list od Cesnet CA (stáhne se automaticky skriptem certs.sh)

  • /usr/share/ssl/certs/ndsca.pem.crt - kořenový certifikát pro Novell NDS na FJFI (dokud tam někdo nedá certifikáty od Cesnet CA)

  • přidat podepsané certifikáty

    • mailgwX.fjfi.cvut.cz.pem - klíč + certifikát

    • mailgwX.fjfi.cvut.cz.key - link na .pem

    • mailgwX.fjfi.cvut.cz.pem.private - link na .key

    • mailgwX.fjfi.cvut.cz.crt - link na .pem

    • mailgwX.fjfi.cvut.cz.pem.public - link na .crt

  • nastavit ACL tak, aby k privátním klíčům mohli příslušné aplikace (nutné mountovat příslušný svazek s parametrem acl, viz. /etc/fstab)

    for h in mailgw1 mailgw2; do for u in ldap radiusd apache; do setfacl -m u:$u:r $h.fjfi.cvut.cz.pem; done; done
  • /root/bin/certs.sh - automatické updatování crl listů a generování linků na certifikáty dle jejich hashů

3.10. OpenSSH

  • daemon fingerprint

    6b:76:05:73:9f:15:01:93:b7:b6:f1:06:f6:9d:3c:ea
  • key fingerprint

    92:ca:f3:73:a9:21:dc:46:0e:ff:9b:58:42:56:40:57 root@mailgw1.fjfi.cvut.cz
    a4:fd:a7:6d:34:81:da:79:7b:e5:2a:84:b8:f1:a3:f7 root@mailgw2.fjfi.cvut.cz

3.11. IPSec pro RADIUS

3.12. SNMP daemon

  • upravit konfigurace v /etc/snmp/snmpd.conf

    • system description

    • povolit monitorování růných služeb

    • nastavit přístupová práva

  • využívá se pro remote monitorování zdrojů (místo na discích, load, procesy, tcp spojení, ...)

4. Monitoring, testování, backup

4.1. Logování

  • remote logování na centrální log server (nelze po IPv6, nutné zadata IP pro stroje s AAAA záznamy)

  • logovat jen informace, které mohou jít přes nezabezpečený kanál (logy mailserveru)

  • syslog.conf - konfigurace

4.2. Nagios & OpenNMS

  • /etc/nagios - konfigurační soubory

4.3. MRTG

4.4. Mail

  • amavis-stat

  • mailgraph - dost vytěžuje (ale vypadá to spíš tak, že se občas začne nějak cyklit)

  • awstat - při velkých log souborech také docela vytěžuje, protože si musí celý soubor nejdřív přeformátovat

4.5. Backup (bacula)

  • pro zálohování použita bacula

    • fd - file daemon (běží na každém stroji, který má být zálohován)

    • sd - storage daemon (stará se o ukládání backupovaných dat)

    • dir - řídí co a kdy se ma zálohovat

  • /etc/bacula - konfigurační soubory

5. Správa/Troubleshooting

5.1. Přehození aliasu při výpadku primární mailové brány

Pokud dojde k výpadku mailové brány na níž směřují aliasy smtp.fjfi.cvut.cz resp. webmail.fjfi.cvut.cz je nutné provést následující:

  • provést změny v DNS (přehození aliasů)

  • data pro horde by měla být automaticky replikována na druhý stroj

    mysqldump --extended-insert=FALSE --add-drop-table --user=root horde | ssh mailgwX.fjfi.cvut.cz 'mysql -u root horde'
  • při delším výpadku je nutné, aby byla data po nahození primáního zreplikována zpět

5.2. Rozdíly v konfiguracích mailgw1 a mailgw2

Změna standardních konfigurací pro příslušnou mailovou bránu (první, druhou, ...) se provádí skriptem change_mx_order.sh. Nedoporučuji ho však spouštět přímo (není dostatečně odladěn), ale lepší je vykopírovat si pouze potřebné části přímo na příkazovou řádku.

5.3. Problém při startu OpenLDAP

OpenLDAP má občas po nekorektním ukončení (např. při pádu celého systému) problém znovu nastartovat. Většinou se jedná o poškozenou databázi a stačí ji opravit:

cd /var/lib/ldap
slapd_db_recover

Dalším častým důvodem, který neumožní start slapd daemona jsou nesprávná práva na datových a konfiguračních souborech. Vlastníkem dat v /var/lib/ldap by měl být ldap:ldap a vlastníkem konfiguračních souborů v /etc/openldap by měl být root:ldap.

Pro detekci dalších problémů je vhodné spustit slapd v debug módu, kde číslo za parametrem -d udává debug level:

/usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// -d 1

6. Další odkazy

6.2. Použitý software a konfigurace