Nastavení Postfix
Postfix je Mail Transfer Agent (MTA) neboli obecně aplikace používaná k odesílání a přijímání emailů. Může být nakonfigurován tak, aby jej bylo možné použít k odesílání emailů pouze z lokální aplikace (např. ISPadmin). Toto použití je výhodné v situacích, kdy potřebujete pravidelně odesílat emailové zprávy a upozornění ze svých aplikací nebo máte velký odchozí provoz, který poskytovatel emailových služeb třetí strany nedovoluje. Jedná se o jednodušší alternativu k provozování plnohodnotného SMTP serveru při zachování požadované funkcionality (tj. prostého zasílání emailů).
Podrobnější informace pro konfiguraci v dokumentaci Postfix.
Send-Only SMTP server
Postfix a nastavení v systému pro použití k přímému odesílání emailů.
- Zjištění hostname (jméno serveru) v systému:
hostname -f
- Pro změnu hostname (příklad server.domena.com):
hostname server.domena.com
- Nastavit parametr myhostname (jméno serveru, kde postfix běží a doménu) v /etc/postfix/main.cf (např. text. editorem nano)
myhostname = server.domena.com
- Restartovat Postfix pro aplikování konfigurace:
sudo service postfix restart
- zkontrolovat/nastavit PTR (Pointer – reverzní záznam) poskytovatelem IP adresy (v zóně odpovídající IP)
- nastavit SPF (Sender Policy Framework) pomocí TXT záznamu v nastavení DNS doménového jména
Relay server
Postfix je možné nastavit i jako tzv. Relay server (předávací). To znamená, aby doručoval poštu nepřímo (přes relay host) použitím externího SMTP serveru.
Využívá se z důvodu snížení latence (odpovědi) v aplikaci (oproti přímému spojení s mailovým serverem) a zvyšuje se spolehlivost doručení (postfix se pokusí zprávu odeslat několikrát). Je možné využít např. Gmailu nebo podobných emailových služeb.
Konfigurace autentizace
- Ze startu je potřeba Postfix ověřit se SMTP serverem. Pokud chcete předávat skrze váš vlastní SMTP server, alternativou může být upravit nastavení na cílovém SMTP serveru pro příjem emailů bez autentizace (např. autorizací přes IP adresu). Zde si ukážeme nastavení při použití autentizace jménem/heslem.
- Textový editorem (např. nano) editovat konfigurační soubor /etc/postfix/main.cf. Pokud parametr níže nevidíte, bude potřeba jej přidat. Hranaté závorky musí zůstat zachovány, jinak by Postfix hledal v MX záznamu na DNS (kde by se mohlo jednat o server příchozí pošty).
relayhost = [smtp.domena.com]:465
- Přidat (případně odkomentovat) dodatečné nastavení pro autentizaci. Nastavíme SASL autentizaci, povolíme TLS pro zabezpečenou komunikaci a přidáme cestu, kde se nachází přihlašovací údaje.
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_use_tls = yes
- Vytvořit soubor /etc/postfix/sasl_passwd, který bude obsahovat přihlašovací údaje. Údaj smtp.domena.com je potřeba nahradit hostname (bez závorek) cílem použitým pro předání (relay host) a zároveň vložit platné přihl. jméno a heslo (username:password).
[smtp.domena.com]:465 username:password
- Upravit práva k souboru pro čtení pouze uživatelem root:
sudo chmod 600 /etc/postfix/sasl_passwd
- A vytvoříme hash databázový soubor pro Postfix (vytvoří se soubor sasl_passwd.db v /etc/postfix/):
sudo postmap /etc/postfix/sasl_passwd
- Restartovat Postfix pro aplikování konfigurace:
sudo service postfix restart
- Vyzkoušet poslat e-mail:
echo 'Body mail' | mail -s 'Subject' -a "From:my@domena.com" recipient@gmail.com
Problémy a konfigurace
Problém s TLS
Ve výchozím stavu je úroveň zabezpečení protokolu TLS nenakonfigurována (výchozí hodnota prázdná = TLS nebude použit).
V případě, že se vrací chybová zpráva (např. centrum.cz, centrum.sk aj.) o nedoručitelných zprávách ve znění:
host XXX.YYY.ZZZ [1.2.3.4] said: 530
#5.7.0 Must issue a STARTTLS command first (in reply to MAIL FROM command)
Je potřeba přidat, do nastavení Postfix (/etc/postfix/main.cf), konfiguraci pro možnost použít TLS, pokud tento protokol vzdálený server podporuje a vyžaduje:
smtp_tls_security_level = may
A tuto upravenou konfiguraci Postfixu aplikovat:
postfix reload