Přeskočit na obsah Přeskočit na hlavní navigaci Přeskočit na zápatí (patičku)

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
  • Případně může být i vyžadované jiné nastavení:
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
  • 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).
nano /etc/postfix/sasl_passwd
[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

Gmail

Pro možnost zasílání emailů přes účet Google v systému ISPadmin, je potřeba vygenerovat ve správě zabezpečení účtu heslo pro aplikaci třetí strany.

Chybová zpráva při zasílání zpráv z účtu, kde ještě nebylo dvoufázové ověření zapnuto:

deferred (delivery temporarily suspended: SASL authentication failed; server smtp.gmail.com[142.251.18.109] said: 535-5.7.8 Username and Password not accepted.
  • V nastavení Google účtu:
Správa Google účtu (Chrome)
Správa Google účtu (Chrome)
  • Vybrat v levém menu možnost Zabezpečení:
Stránka nastavení zabezpečení
Stránka nastavení zabezpečení
  • Vybrat možnost Dvoufázové ověření (ještě není zapnuto):
Dvoufázové ověření je zatím vypnuté
Dvoufázové ověření je zatím vypnuté
  • Zapnout dvoufázové ověření:
Zapnutí dvoufázového ověření pro vybraný účet
Zapnutí dvoufázového ověření pro vybraný účet
  • Přidat telefonní číslo (přijde ověřovací SMS):
Přidání telefonního čísla
Přidání telefonního čísla
  • Zadat ověřovací kód z SMS:
Ověření telefonního čísla
Ověření telefonního čísla
Zadaný kód z SMS
Zadaný kód z SMS
  • Zobrazí se potvrzení o zapnutí dvoufázového ověření:
Zapnuté dvoufázové ověření
Zapnuté dvoufázové ověření
  • Vytvoření a správa hesel aplikací:

https://myaccount.google.com/apppasswords

  • Zadat libovolný název nové aplikace (např. ISPadmin):
Zadat vlastní název aplikace
Zadat vlastní název aplikace
  • Dojde k vygenerování hesla v délce 16 znaků, které je potřeba zkopírovat pro další použití:
Vygenerované heslo pro aplikaci
Vygenerované heslo pro aplikaci

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