Last Updated on 16/04/2024 by administrator
Konfigurace Postfix Gmail App Password na Ubuntu
Konfigurace Postfix Gmail App Password na Ubuntu
Motivace:
Tento článek popisuje jak nakonfigurovat službu Postfix, což je Mail Transfer Agent (MTA), který slouží k přenosu a doručování e-mailových zpráv. Postfix je oblíbený pro svou snadnou konfigurovatelnost, vysokou výkonnost a bezpečnost. Součástí toho bude nastavení dvoufaktorovou autentizaci přes Gmail a vytvoření jedinečného heslo v App Passwords.
Pozn. Tento článek mi také pomohl s odstraněním problemu na Proxmox na kterém jel wordpress, který měl problém se zasíláním emailu (Undelivered Mail Returned to Sender).
.
OS:
Implementace byla prováděna na Ubuntu 22.04 LTS. Nicméně návod bude pravděpodobně aplikovatelný na nižší verze Ubuntu.
Implementace[1,2]:
1. Google – nastavení dvoufaktorové autentizace:
Postup k nastavení dvoufaktorové autentizace lze vidět v tomto článku, kde je nutné následně vygenerovat jedinečné heslo v App Passwords pro Postfix.
2. Konfigurace Postfix:
Níže uvedený příkaz nainstaluje Postfix, což je MTA (Mail Transfer Agent), který slouží k odesílání a přijímání e-mailů. Balíček libsasl2-2 obsahuje knihovnu pro Simple Authentication and Security Layer (SASL), která může být použita pro zabezpečení komunikace včetně autentizace. Balíček ca-certificates obsahující certifikáty certifikačních autorit. Je důležitý pro zajištění bezpečné komunikace přes SSL/TLS. Balíček libsasl2-modules obsahuje další moduly pro SASL.
apt install postfix libsasl2-2 ca-certificates libsasl2-modules
Otevřít konfigurační soubor main.cf pro Postfix:
vi /etc/postfix/main.cf
v main.cf zakomentovat řádky níže:
#mydestination = $myhostname, localhost.$mydomain, localhost #relayhost =
a zkopírovat do main.cf tyto řádky níže, současně ověřit že tyto řádky v konfiguraci main.cf neexistují:
relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
vi /etc/postfix/sasl_passwd
a zkopírovat řádek níže, kde používaný emailový účet pro odesílání emailu je vaslogin@gmail.com a qcsn sxsk xmte mcas je heslo vygenerované přes App Passwords. Emailová adresa a heslo jsou oddělené dvojtečkou:
[smtp.gmail.com]:587 vaslogin@gmail.com:qcsn sxsk xmte mcas
Pro soubor sasl_passwd přidat oprávnění čtení a zápis
sudo chmod 600 /etc/postfix/sasl_passwd
Příkaz vytvoří ze souboru sasl_passwd databázi sasl_passwd.db (případně příkaz provede refresh DB souboru):
sudo postmap /etc/postfix/sasl_passwd
Zkontrolování konfigurace Postfix:
postfix check
Provést restart služby Postfix:
service postfix restart
Kontrola, zda služba Postfix běží:
service postfix status
Výstup příkazu service postfix status ukazuje, že služba Postfix je aktivní:
* postfix.service - Postfix Mail Transport Agent Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2023-12-04 22:05:36 UTC; 1min ago Docs: man:postfix(1) Process: 2467 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2467 (code=exited, status=0/SUCCESS) CPU: 2ms Dec 04 22:05:36 postfix-clanek systemd[1]: Starting Postfix Mail Transport Agent... Dec 04 22:05:36 postfix-clanek systemd[1]: Finished Postfix Mail Transport Agent.
Zaslání testovacího emailu:
Nainstalovat balíček mailutils, který obsahuje různé užitečné utility pro práci s e-mailovými zprávami, včetně odesílání a přijímání e-mailů:
apt install mailutils
Pro zaslání odeslání jednoduchého testovacího e-mailu lze využít příkaz níže, kde řetězec echo definuje obsah zprávy a mail -s zase předmět emailové zprávy:
echo "Test mail from postfix" | mail -s "Test Postfix" prijemce@seznam.cz
V případě problému se zasláním emailu, je možné kouknout do obsahu fronty odesílaných e-mailů, které jsou momentálně uloženy na serveru a čekají na doručení:
postqueue -p
Ukázka přijetí emailové zprávy:
Logy:
Při řešení troubleshootingu lze využít logovací soubor mail.log ve složce /var/log/, kde postfix standardně loguje:
cat /var/log/mail.log
Částečný výstup příkazu ukazuje, že testovací email byl správně odeslán:
Dec 4 22:12:55 postfix-clanek postfix/pickup[2468]: 84A3C589: uid=0 from=<root@postfix-clanek.lan> Dec 4 22:12:55 postfix-clanek postfix/cleanup[2709]: 84A3C589: message-id=<20231204221255.84A3C589@postfix-clanek.localdomain> Dec 4 22:12:55 postfix-clanek postfix/qmgr[2469]: 84A3C589: from=<root@postfix-clanek.lan>, size=376, nrcpt=1 (queue active) Dec 4 22:12:57 postfix-clanek postfix/smtp[2711]: 84A3C589: to=<prijemce@seznam.cz>, relay=smtp.gmail.com[74.125.133.109]:587, delay=1.8, delays=0.03/0.13/0.51/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1701727977 o14-20020a056000010e00b00333359b522dsm8520400wrx.77 - gsmtp) Dec 4 22:12:57 postfix-clanek postfix/qmgr[2469]: 84A3C589: removed
Zdroj:
[1] https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/
[2] https://kifarunix.com/configure-postfix-to-use-gmail-app-passwords