Postfix

A Postfix az Ubuntu alapértelmezett levéltovábbító ügynöke (MTA). Célja, hogy gyors, egyszerűen adminisztrálható és biztonságos legyen. Kompatibilis a sendmail MTA-val. Ez a szakasz ismerteti a postfix telepítését és konfigurálását. Ismerteti még a(z e-mailek biztonságos küldéséhez) biztonságos kapcsolatot használó SMTP-kiszolgálóként való beállításának módját.

[Megjegyzés]

Ez a leírás nem ismerteti a Postfix virtuális tartományok beállítását, a virtuális tartományokkal és egyéb speciális lehetőségekkel kapcsolatban lásd a „Hivatkozások” szakaszt.

Telepítés

A postfix telepítéséhez adja ki a következő parancsot:

sudo apt-get install postfix

Nyomja meg az Entert, ha a telepítő kérdéseket tesz fel, a beállításokat a következő lépésben, részletesebben végezzük el.

Alapszintű konfiguráció

A postfix konfigurálásához adja ki a következő parancsot:

sudo dpkg-reconfigure postfix

Megjelenik a felhasználói felület. Az egyes képernyőkön válassza az alábbi értékeket:

  • Internetes hely

  • mail.példa.hu

  • geza

  • mail.példa.hu, localhost.localdomain, localhost

  • Nem

  • 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24

  • 0

  • +

  • mind

[Megjegyzés]

A mail.példa.hu helyére azt a tartományt írja, amelynek leveleit fogadja, a 192.168.0.0/24 helyére a levelezőkiszolgáló tényleges IP-címét és címosztályát, a geza helyére pedig a megfelelő felhasználónevet írja.

Ezután ki kell választani a használandó postafiók-formátumot. A Postfix alapértelmezésben az mbox formátumot használja. A konfigurációs fájl közvetlen szerkesztése helyett használhatja a postconf parancsot a postfix minden paraméterének beállítására. A konfigurációs paramétereket az /etc/postfix/main.cf fájl tárolja. Ha később egy adott paramétert újra szeretne konfigurálni, akkor futtathatja a parancsot, vagy saját kezűleg is módosíthatja a fájlban.

A postafiók-formátum átállításához Maildir formátummá:

sudo postconf -e 'home_mailbox = Maildir/'
[Megjegyzés]

Ez az új leveleket a /home/felhasználónév/Maildir könyvtárba fogja helyezni, ezért a levélkézbesítő ügynököt (MDA) ugyanezen útvonal használatára kell beállítani.

SMTP hitelesítés

Az SMTP-AUTH lehetővé teszi a kliensek számára egy hitelesítési mechanizmus (SASL) segítségével történő azonosítást. A hitelesítési folyamat titkosítására a TLS-t kell használni. A hitelesítés után az SMTP-kiszolgáló engedélyezi a kliensnek a levelek továbbítását.

  1. Állítsa be a Postfixet SMTP-AUTH-ra SASL (Dovecot SASL) használatával:

    sudo postconf -e 'smtpd_sasl_type = dovecot'
    sudo postconf -e 'smtpd_sasl_path = private/auth-client'
    sudo postconf -e 'smtpd_sasl_local_domain ='
    sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
    sudo postconf -e 'broken_sasl_auth_clients = yes'
    sudo postconf -e 'smtpd_sasl_auth_enable = yes'
    sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    sudo postconf -e 'inet_interfaces = all'
    
    [Megjegyzés]

    Az smtpd_sasl_path beállításba lévő útvonal a Postfix sorkönyvtárához képest értendő.

  2. Ezután szerezzen be egy digitális tanúsítványt a TLS-hez. Részletekért lásd: „Tanúsítványok”. Ez a példa is egy hitelesítésszolgáltatót (CA) használ. A CA-tanúsítvány előállításával kapcsolatos információkért lásd: „Hitelesítésszolgáltató”.

    [Megjegyzés]

    A digitális tanúsítványt beszerezheti egy hitelesítésszolgáltatótól. A webes kliensekkel ellentétben az SMTP-kliensek ritkán panaszkodnak az „önaláírt tanúsítványok” miatt, ezért saját kezűleg is létrehozhatja a tanúsítványt. További részletekért lásd: „Önaláírású tanúsítvány létrehozása”.

  3. Ha megvan a tanúsítvány, állítsa be a Postfixet a TLS titkosítás biztosítására a bejövő és kimenő levelekhez:

    sudo postconf -e 'smtpd_tls_auth_only = no'
    sudo postconf -e 'smtp_use_tls = yes'
    sudo postconf -e 'smtpd_use_tls = yes'
    sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
    sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
    sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
    sudo postconf -e 'smtpd_tls_loglevel = 1'
    sudo postconf -e 'smtpd_tls_received_header = yes'
    sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    sudo postconf -e 'tls_random_source = dev:/dev/urandom'
    sudo postconf -e 'myhostname = mail.példa.hu'
    
  4. Ha saját hitelesítésszolgáltatót használ a tanúsítvány aláírására, akkor adja ki a következőt:

    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    

    A tanúsítványokkal kapcsolatos további részletekért lásd: „Tanúsítványok”.

[Megjegyzés]

A parancsok futtatása után a Postfix beállítása az SMTP-AUTH használatára kész, és létrejött egy önaláírt tanúsítvány a TLS titkosításhoz.

Ezután az /etc/postfix/main.cf fájlnak valahogy így kell kinéznie.

A Postfix kiinduló beállítása kész. Futtassa a következő parancsot a postfix démon újraindításához:

sudo /etc/init.d/postfix restart

A Postfix támogatja az RFC2554 által meghatározott SMTP-AUTH-ot. Ennek alapja a SASL. Az SMTP-AUTH használatához ennek ellenére szükség van a SASL hitelesítés beállítására.

SASL beállítása

A Postfix két SASL-megvalósítást támogat, ezek a Cyrus SASL és Dovecot SASL. A Dovecot SASL engedélyezéséhez telepíteni kell a dovecot-common csomagot. Adja ki a következő parancsot:

sudo apt-get install dovecot-common

Az /etc/dovecot/dovecot.conf fájlt kell szerkesztenie. Az auth default szakaszban vegye ki megjegyzésből a socket listen beállítást, és módosítsa a következőt:

  socket listen {
    #master {
      # Master socket provides access to userdb information. It's typically
      # used to give Dovecot's local delivery agent access to userdb so it
      # can find mailbox locations.
      #path = /var/run/dovecot/auth-master
      #mode = 0600
      # Default user/group is the one who started dovecot-auth (root)
      #user = 
      #group = 
    #}
    client {
      # The client socket is generally safe to export to everyone. Typical use
      # is to export it to your SMTP server so it can do SMTP AUTH lookups
      # using it.
      path = /var/spool/postfix/private/auth-client
      mode = 0660
      user = postfix
      group = postfix
    }
  }

Ahhoz hogy az Outlook kliensek SMTPAUTH-ot használhassanak, az /etc/dovecot/dovecot.conf auth default szakaszához adja hozzá a „login” lehetőséget:

  mechanisms = plain login

A Dovecot beállítása után indítsa újra azt:

sudo /etc/init.d/dovecot restart

Postfix-Dovecot

A másik lehetőség a Postfix SMTP-AUTH használatára való beállításának a dovecot-postfix csomag. Ez a csomag telepíti a Dovecotot, és beállítja a Postfixet ennek használatára a SASL-hitelesítésre és levélkézbesítő ügynökként (MDA) is. A csomag beállítja a Dovecotot IMAP, IMAPS, POP3 és POP3S használatához is.

[Megjegyzés]

Az IMAP, IMAPS, POP3 vagy POP3S futtatása a felhasználási módtól függően lehet szükséges vagy fölösleges a levelezőkiszolgálón. Levélátjáró, spam/vírusszűrő stb. esetén egyszerűbb lehet a fenti parancsok használata a Postfix beállítására SMTPAUTH használatához.

A csomag telepítéséhez adja ki a következő parancsot:

sudo apt-get install dovecot-postfix

Ezzel rendelkezésére áll egy működő levelezőkiszolgáló, de még van néhány beállítás, amelyek módosítása szükséges lehet. A csomag például az ssl-cert csomag tanúsítványát és kulcsát használja. Éles környezetben az adott géphez generált tanúsítványt és kulcsot kell használni. További részletekért lásd: „Tanúsítványok”.

Miután előállította a tanúsítványt és kulcsot a géphez, módosítsa a következő beállításokat az /etc/postfix/main.cf fájlban:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Majd indítsa újra a Postfixet:

sudo /etc/init.d/postfix restart

Tesztelés

Az SMTP-AUTH beállítása kész, ideje kipróbálni a működését.

Az SMTP-AUTH és a TLS megfelelő működésének ellenőrzéséhez adja ki a következő parancsot:

telnet mail.példa.hu 25

Miután létrejött a kapcsolat a postfix levelezőkiszolgálóhoz, írja be a következőt:

ehlo mail.példa.hu

Ha egyebek mellett az alábbi sorokat látja, akkor minden megfelelően működik. A kilépéshez írja be a quit parancsot.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Hibaelhárítás

Ez a szakasz néhány általános módszert ismertet a hibák okainak meghatározására.

Menekülés a chrootból

Az Ubuntu postfix csomagja biztonsági okból alapértelmezésben egy chroot környezetbe települ. Ez hibaelhárításkor növeli az összetettséget.

A chroot-beli működés kikapcsolásához keresse meg a következő sort az /etc/postfix/master.cf konfigurációs fájlban:

smtp      inet  n       -       -       -       -       smtpd

és módosítsa a következőképpen:

smtp      inet  n       -       n       -       -       smtpd

Az új beállítások használatához újra kell indítani a Postfixet. Adja ki a következő parancsot:

sudo /etc/init.d/postfix restart

Naplófájlok

A Postfix minden naplóüzenetet a /var/log/mail.log fájlba küld. Azonban a hiba- és figyelmeztető üzenetek néha elveszhetnek a normál naplókimenetben, ezért a /var/log/mail.err és /var/log/mail.warn fájlokba is naplózásra kerülnek.

A naplókba bevitt üzenetek valós idejű megjelenítéséhez használhatja a tail -f parancsot:

tail -f /var/log/mail.err

A naplóban rögzített részletek mennyisége növelhető. Alább látható néhány beállítás a fent ismertetett területek naplózási szintjének növeléséhez.

  • A TLS aktivitás naplózásának növeléséhez állítsa az smtpd_tls_loglevel beállítást 1 és 4 közötti értékre.

    sudo postconf -e 'smtpd_tls_loglevel = 4'
    
  • Ha nem tud egy adott tartományba levelet küldeni, vagy onnan fogadni, akkor felveheti a tartományt a debug_peer_list paraméterbe.

    sudo postconf -e 'debug_peer_list = problem.domain'
    
  • Bármely Postfix démon folyamat részletességét növelheti az /etc/postfix/master.cf szerkesztésével, és a -v bejegyzéshez fűzésével. Szerkessze például az smtp bejegyzést:

    smtp      unix  -       -       -       -       -       smtp -v
    
[Megjegyzés]

Fontos megjegyezni, hogy a fenti naplózási módosítások végrehajtása után azok életbe léptetéséhez újra kell indítani a Postfix folyamatot: sudo /etc/init.d/postfix reload

  • A SASL-problémák elhárításakor naplózott információk mennyiségének növeléséhez megadhatja a következő beállításokat az /etc/dovecot/dovecot.conf fájlban:

    auth_debug=yes
    auth_debug_passwords=yes
    
[Megjegyzés]

A Postfixhoz hasonlóan a Dovecot beállításainak módosításakor azt is újra kell indítani: sudo /etc/init.d/dovecot reload.

[Megjegyzés]

A fenti beállítások némelyike jelentősen növeli a naplófájlokba küldött információk mennyiségét. Ne feledje el a hiba megszüntetése után visszaállítani a naplózási szintet a normálisra, illetve az új beállítások életbe léptetéséhez újraindítani a démont.

Hivatkozások

Egy Postfix kiszolgáló adminisztrálása nagyon bonyolult feladat lehet. Előbb-utóbb eljuthat arra a pontra, amikor az Ubuntu közösség segítségét kell kérnie.

A Postfix problémák felvetésére, és az Ubuntu kiszolgáló közösség életébe való bekapcsolódásra remek hely a freenode #ubuntu-server IRC-csatornája. A webes fórumok egyikén is felteheti kérdéseit.

A Postfix mélyebb megismeréséhez az Ubuntu fejlesztői a The Book of Postfix című könyvet ajánlják.

Végül a Postfix weboldala is remek dokumentációkkal rendelkezik a rendelkezésre álló konfigurációs lehetőségekkel kapcsolatban.

Az Ubuntu wiki Postifx oldala is tartalmaz további információkat.