Postfix je predvoleným agentom na prenos emailov - Mail Transfer Agent (MTA) v Ubuntu. Pokúša sa byť rýchly, ľahko konfigurovateľný a bezpečný. Je kompatibilný s MTA agentom sendmail. V tejto časti si povieme ako postfix nainštalovať a nakonfigurovať. Vysvetlíme tiež, ako ho nastaviť tak, aby bol SMTP serverom, ktorý používa zabezpečené pripojenie (na bezpečný prenos emailov).
Tento návod neobsahuje nastavenie Virtualnych domén pre Postfix. Zdroje informácií o Virtualnych doménach a ďalšej pokročilej konfigurácii nájdeme v časti Zdroje.
Systém postfix nainštalujeme pomocou nasledujúceho príkazu:
sudo apt-get install postfix
Všetky otázky, ktoré bude klásť inštalátor, potvrdíme klávesou Enter, pretože konfiguráciu budeme meniť neskôr.
Ak chceme zmeniť konfiguráciu systému postfix, spustíme nasledujúci príkaz:
sudo dpkg-reconfigure postfix
Zobrazí sa používateľské rozhranie. Na každej z obrazoviek vyberieme nasledujúce hodnoty:
Internet Site
mail.nieco.sk
stefan
mail.nieco.sk, localhost.localdomain, localhost
Nie
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0/24
0
+
all
![]() |
Adresu mail.nieco.sk nahraďte názvom stanice, masku siete 192.168.0/24 nahraďte aktuálnym rozsahom adries vašej siete a meno stefan nahraďte príslušným menom používateľa. |
---|---|
Teraz je potrebné rozhodnúť sa, ktorý formát mailových schránok budeme používať. V predvolenom stave bude
Postfix používať formát mbox.
Miesto priamej úpravy konfiguračného súboru môžeme použiť príkaz postconf, ktorý slúži na nastavovanie všetkých parametrov systému postfix. Konfiguračné parametre sú uložené v súbore
/etc/postfix/main.cf
. Neskôr ak budeme chcieť zmeniť konkrétny parameter, môžeme buď znova spustiť spomínaný príkaz alebo ho ručne zmeniť v súbore.
Keď chcem zmeniť formát schránok na Maildir, zadáme:
sudo postconf -e 'home_mailbox = Maildir/'
![]() |
Nové maily sa budú odteraz nachádzať v priečinku /home/meno_pouzivatela/Maildir, preto je tiež potrebné zmeniť nastavenie v Doručovacom agentovi (MDA), aby používal rovnakú cestu. |
---|---|
SMTP-AUTH umožňuje klientovi identifikovať seba samého prostredníctvom autentifikačného mechanizmu (SASL). Na zašifrovanie autentifikačného procesu by mal byť použitý protokol Transport Layer Security (TLS). Po autentifikácii SMTP server umožní klientovi odosielať maily.
Nastavíme Postfix tak, aby pre SMTP-AUTH používal SASL (Dovecot SASL):
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'
![]() |
Do nastavenia smtpd_sasl_path je potrebné zadať cestu, ktorá je relatívna od priečinka s radom (queue) systému Postfix. |
---|---|
Teraz získame digitálny certifikát pre TLS. Viac informácii nájdeme v časti "Certifikáty". V tomto príklade je tiež použitá Certifikačná autorita (CA). Viac informácií o generovaní certifikátu CA nájdeme v časti "Certivfikačná autorita".
![]() |
Digitálny certifikát môžeme získať od certifikačnej autority. Na rozdiel od webových klientov, sa SMTP klienti len zriedka sťažujú na "sebou podpísané certifikáty", preto môžeme vytvoriť certifikát, ktorý si sami podpíšeme. Viac podrobností nájdeme v časti “Vytvorenie sebou podpísaného certifikátu”. |
---|---|
Keď už máme certifikát, nakonfigurujeme Postfix aby poskytoval TLS šifrovanie pre prichádzajúce aj odchádzajúce správy:
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_CAfile = /etc/ssl/certs/cacert.pem'
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.example.com'
Ak sme použili vlastnú Certifikačnú autoritu na podpísanie certifikátu, zadáme:
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
Viac informácií sa môžeme opäť dozvedieť v časti Certifikáty.
![]() |
Po spustení všetkých príkazov je Postfix nastavený tak aby používal SMTP-AUTH a kvôli TLS šifrovaniu bol vytvorený sebou podpísaný certifikát. |
---|---|
Teraz by mal súbor /etc/postfix/main.cf
vyzerať takto.
Počiatočná konfigurácia systému postfix je hotový. Nasledujúcim príkazom reštartujeme démon:
sudo /etc/init.d/postfix restart
Postfix podporuje SMTP-AUTH tak, ako je definovaná v RFC2554. Je založená na SASL. Pred tým ako SMTP-AUTH použijeme, je potrebné atentifikáciu SASL nastaviť.
Postfix podporuje dve implementácie SASL - Cyrus SASL a Dovecot SASL. Keď chceme zapnúť Dovecot SASL, je potrebné nainštalovať balík dovecot-common. V príkazovom riadku zadáme:
sudo apt-get install dovecot-common
Teraz je potrebné upraviť súbor /etc/dovecot/dovecot.conf
. V časti auth default odpoznámkujeme voľbu socket listen a urobíme nasledujúce zmeny:
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
}
}
Aby sme umožnili Outlook klientom použiť SMTPAUTH, v časti auth default súboru /etc/dovecot/dovecot.conf pridáme "login":
mechanisms = plain login
Po dokončení konfigurácie reštartujeme systém Dovecot:
sudo /etc/init.d/dovecot restart
Ďalšia možnosť nastavenia systému Postfix tak, aby používal SMTP-AUTH sa robí pomocou balíka dovecot-postfix. Tento balík nainštaluje Dovecot a nastaví Postfix tak, aby používal SASL autentifikáciu a aby fungoval ako agent na doručovanie správ - Mail Delivery Agent (MDA). Balík nainštaluje a nakonfiguruje aj systém Dovecot, aby bolo možné použiť IMAP, IMAPS, POP3 a POP3S.
![]() |
Na vašom poštovom serveri služby IMAP, IMAPS, POP3 a POP3S môžete ale nemusíte využívať. Ak napríklad chcete nastaviť server tak aby bol mailovou bránou, filtrom spamu a vírusov atď. Ak je to tak, je jednoduchšie použiť predchádzajúci príkaz na nastavenie SMTPAUTH v systéme Postfix. |
---|---|
Ak chceme tento balík nainštalovať, zadáme:
sudo apt-get install dovecot-postfix
Teraz by sme mali mať funkčný server, ale ešte môžeme niekoľko nastavení prispôsobiť. Napríklad balík používa certifikát a kľúč vytvorený balíkom ssl-cert a my by sme v ostrej prevádzke mali používať certifikát a kľúč vygenerovaný pre náš server. Viac informácii sa nachádza v časti "Certifikáty".
Ak už máme náš vlastný certifikát a kľúč, zmeníme nasledujúce nastavenia v súbore /etc/postfix/main.cf
:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
Potom reštartujeme Postfix:
sudo /etc/init.d/postfix restart
Konfigurácia SMTP-AUTH je hotová. Teraz je čas nastavenie otestovať.
Ak chceme vidieť či SMTP-AUTH a TLS pracujú správne, spustíme nasledujúci príkaz:
telnet mail.nieco.sk 25
Po nadviazaní spojenia s mailovým serverom postfix, zadáme:
ehlo mail.nieco.sk
Ak medzi vypísanými riadkami uvidíme aj nasledujúce, všetko pracuje správne. Spojenie ukončíme príkazom quit.
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
Táto časť hovorí o niekoľkých spôsoboch, ktorými sa dajú odhaliť príčiny vzniknutých problémov.
Balík postfix systému Ubuntu je kvôli bezpečnosti nainštalovaný do prostredia chroot. Kvôli tomu sa problém ťažšie hľadá.
Ak chceme vypnúť prevádzku chroot, v súbore
/etc/postfix/master.cf
nájdeme nasledujúci riadok:
smtp inet n - - - - smtpd
a takto ho zmeníme:
smtp inet n - n - - smtpd
Aby sa nová konfigurácia prejavila, je potrebné reštartovať Postfix. Do príkazového riadka zadáme:
sudo /etc/init.d/postfix restart
Postfix odosiela všetky hlásenia do súboru so záznamom /var/log/mail.log
. Chybové hlásenia a varovania však môžeme medzi ostatnými hláseniami prehliadnuť, preto sú odosielané do samostatných súborov
/var/log/mail.err
a /var/log/mail.warn
.
Ak chceme v reálnom čase čítať prichádzajúce chybové hlásenia, môžeme použiť príkaz tail -f:
tail -f /var/log/mail.err
Podrobnosť zaznamenávaných záznamov sa dá zvýšiť. Nižšie je niekoľko konfiguračných možností na zvýšenie podrobnosti záznamov pre rôzne vyššie popísané oblasti.
Podrobnosť záznamov o TLS aktivitách nastavíme pomocou nastavenia smtpd_tls_loglevel, ktoré môže byť v rozsahu 1 až 4.
sudo postconf -e 'smtpd_tls_loglevel = 4'
Ak máme problém s prijímaním alebo odosielaním mailov na konkrétnu doménu, môžeme meno domény pridať ako parameter do nastavenia debug_peer_list.
sudo postconf -e 'debug_peer_list = problemova.domena'
Výrečnosť ktoréhokoľvek démona systému Postfix zvýšime pridaním -v za riadok v súbore /etc/postfix/master.cf
. Napríklad pre smtp to urobíme takto:
smtp unix - - - - - smtp -v
![]() |
Po vykonaní zmien v nastavení zaznamenávania procesov systému Postfix je potrebné ho znova načítať, aby sa nová konfigurácia prejavila: sudo /etc/init.d/postfix reload |
---|---|
Ak chceme zvýšiť počet záznamov pri problémoch so SASL, môžeme nastaviť nasledujúce nastavenia v súbore
/etc/dovecot/dovecot.conf
auth_debug=yes
auth_debug_passwords=yes
![]() |
Rovnako, ako pri systéme Postfix, ak zmeníte konfiguráciu, ktorá sa týka aj procesov systému Dovecot, je potrebné ho znova načítať: sudo /etc/init.d/dovecot reload. |
---|---|
![]() |
Niektoré možnosti výrazne zvýšia počet informácií, ktoré sa odosielajú do súborov so záznamami. Po vyriešení problému preto nezabudnite vrátiť pôvodné nastavenie a znova načítať príslušný démon, aby sa nová konfigurácia prejavila. |
---|---|
Administrácia servera Postfix je veľmi zložitá úloha. V niektorých prípadoch bude potrebné sa kvôli pomoci obrátiť na komunitu Ubuntu.
Skvelým miestom, kde môžete požiadať o pomoc so systémom Postfix a spojiť sa s komunitou Ubuntu Servera , je IRC kanál #ubuntu-server na freenode. Je tiež možné poslať otázku do jedného z webových fór.
Detailné informácie o systéme Postfix pre vývojárov Ubuntu sa nachádzajú v knihe: The Book of Postfix.
Dokumentácia k rôznym spôsobom konfigurácie sa nachádza na domovskej stránke systému Postfix.
Viac informácií sa dá nájsť aj na stránke Ubuntu Wiki Postifx.