Proxmox – Konfigurace Postfix email pro zasílání přes Gmail App

By | 17/04/2024

Last Updated on 03/05/2024 by administrator

Proxmox – Konfigurace Postfix email pro zasílání přes Gmail App

Proxmox – Konfigurace Postfix email pro zasílání přes Gmail App

Motivace:

Tento článek popisuje jak nakonfigurovat službu Postfix, což využívá Proxmox k odesílání emailu. Postfix 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 byl vytvořen, jelikož jsem měl u Proxmox verze 8.1.5 problém se zasíláním email a objevila se  hláška níže, za použítí postqueue -p příkaz:

45A28C0F11     2529 Mon Apr 15 03:31:47  root@pve.lan
(host mx2.seznam.cz[77.75.77.42] said: 451 4.7.27 mail from does not accept emails (in reply to MAIL FROM command))
                                         prijemce@seznam.cz

OS:

Implementace byla prakticky prováděna na open-source platformě Proxmox verze 8.1.5 (jedoucí nad Debian 12.2).

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.

Gmail – nastavení dvoufaktorové autentizace a App Passwords

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.

Pozn. Všechny uvedené balíčky kromě libsasl2-modules by již měly být nainstalované na Proxmox defaultně.

apt install postfix libsasl2-2 ca-certificates libsasl2-modules

Provést zálohu souboru main.cf:

cp /etc/postfix/main.cf /etc/postfix/main.cf.zaloha

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

Vytvořit soubor sasl_passwd, který bude obsahovat informace potřebné k autentizaci na externím serveru:

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:

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):

postmap /etc/postfix/sasl_passwd

Zkontrolování konfigurace Postfix:

postfix check

Výstup příkazu postfix check muže vypadat takto:

postfix: Postfix is using backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"

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; preset: enabled)
     Active: active (exited) since Tue 2024-04-16 22:25:13 CEST; 4min 5s ago
       Docs: man:postfix(1)
    Process: 2018599 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 2018599 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Apr 16 22:25:13 pve systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Apr 16 22:25:13 pve systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.

Zaslání testovacího emailu:

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:

Konfigurace Postfix Gmail App Password

Příkazem echo “Test mail from postfix” | mail -s “Test Postfix” prijemce@seznam.cz se zašle email z nastavené emailové adresy v /etc/postfix/sasl_passwd, což byla vaslogin@gmail.com.

Nicméně samotný Proxmox zasílá email z nastaveného řetežce root@$hostname, což je v tomto případě root@pve.lan. V tomto případě se emailovému serveru na seznam.cz nelíbí, že přichází emailová zpráva od odesílatele root@pve.lan:

Proto je nutné dokonfigurovat odesílatele a v tomto případě využijeme vaslogin@gmail.com která byla nastavena v /etc/postfix/sasl_passwd

Pro nastavené odesílatele emailové adresy přejít do Datacenter > Options > Email from address:

Proxmox - Konfigurace Postfix email

Logy:

Při řešení troubleshootingu lze využít logovací příkaz:

journalctl -xe | grep postfix

Částečný výstup příkazu ukazuje, že testovací email byl správně odeslán:

Apr 16 23:48:33 pve postfix/pickup[2018600]: DA580C0EC7: uid=0 from=<vaslogin@gmail.com>
Apr 16 23:48:33 pve postfix/cleanup[2106854]: DA580C0EC7: message-id=<20240416214833.DA580C0EC7@pve.lan>
Apr 16 23:48:33 pve postfix/qmgr[2018601]: DA580C0EC7: from=<vaslogin@gmail.com>, size=4191, nrcpt=1 (queue active)
Apr 16 23:48:35 pve postfix/smtp[2105643]: DA580C0EC7: to=<prijemce@seznam.cz>, relay=smtp.gmail.com[108.177.127.108]:587, delay=1.5, delays=0.02/0/0.48/0.99, dsn=2.0.0, status=sent (250 2.0.0 OK  1713304115 js7-20020a17090797c700b00a51db8c559csm7333788ejc.178 - gsmtp)
Apr 16 23:48:35 pve postfix/qmgr[2018601]: DA580C0EC7: removed

Zdroj:

[1] https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/

[2] https://kifarunix.com/configure-postfix-to-use-gmail-app-passwords

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *