doc:appunti:linux:sa:postfix
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:sa:postfix [2021/11/12 10:53] – [Relay domains] niccolo | doc:appunti:linux:sa:postfix [2024/02/26 10:18] (current) – [Socket in /var/run/ e nel chroot di Postfix: problema con tmpfs] niccolo | ||
---|---|---|---|
Line 130: | Line 130: | ||
< | < | ||
- | warning: do not list domain | + | warning: do not list domain |
</ | </ | ||
Line 137: | Line 137: | ||
< | < | ||
#myorigin = / | #myorigin = / | ||
- | myorigin = myserver | + | myorigin = mail.mydomain.org |
- | mydestination = myserver | + | mydestination = mail.mydomain.org |
</ | </ | ||
+ | |||
+ | :!: **ATTENZIONE 1**: Il contenuto di **myorigin** viene usato anche per qualificare l'// | ||
+ | |||
+ | :!: **ATTENZIONE 2**: Il contenuto di **myorigin** viene usato anche per qualificare i messaggi di errore **MAILER-DAEMON@**, | ||
+ | |||
+ | |||
===== Crittografia TLS ===== | ===== Crittografia TLS ===== | ||
Line 254: | Line 260: | ||
systemctl stop saslauthd.service | systemctl stop saslauthd.service | ||
rmdir / | rmdir / | ||
+ | mkdir -p / | ||
+ | chown root:sasl / | ||
+ | chmod 0710 / | ||
ln -s / | ln -s / | ||
systemctl start saslauthd.service | systemctl start saslauthd.service | ||
Line 263: | Line 272: | ||
< | < | ||
- | dpkg-statoverride --add root sasl 750 / | + | dpkg-statoverride --add root sasl 710 / |
</ | </ | ||
Line 383: | Line 392: | ||
==== Socket in /var/run/ e nel chroot di Postfix: problema con tmpfs ==== | ==== Socket in /var/run/ e nel chroot di Postfix: problema con tmpfs ==== | ||
+ | |||
+ | Per **Debian 12 Bookworm** vedere la pagina dedicata **[[postfix_courier_authdaemon_debian_12]]**. | ||
Nelle moderne distribuzioni Debian (da 7 Wheezy in poi) la directory **''/ | Nelle moderne distribuzioni Debian (da 7 Wheezy in poi) la directory **''/ | ||
- | Quindi la **soluzione ottimale** è utilizzare un **mount bind** della directory che contiene il socket e **incaricare systemd** di effettuare il mount prima di avviare Postfix. Il punto di montaggio deve essere creato come visto nel paragrafo precedente, la //mount unit// va creata in **/ | + | La **soluzione ottimale** è utilizzare un **mount bind** della directory che contiene il socket e **incaricare systemd** di effettuare il mount prima di avviare Postfix. Il punto di montaggio deve essere creato come visto nel paragrafo precedente, la //mount unit// va creata in **/ |
< | < | ||
[Unit] | [Unit] | ||
Description=Mount Courier Authdaemon into Postfix chroot | Description=Mount Courier Authdaemon into Postfix chroot | ||
- | Requires=courier-authdaemon.service | + | Wants=courier-authdaemon.service |
- | After=courier-authdaemon.service | + | # A stronger dependency may cause a Systemd ordering cycle problem. |
+ | #Requires=courier-authdaemon.service | ||
+ | #After=courier-authdaemon.service | ||
[Mount] | [Mount] | ||
Line 422: | Line 435: | ||
Nell' | Nell' | ||
- | **ATTENZIONE**: | + | **ATTENZIONE**: |
- | Se lo smarthost | + | Lo smarthost |
< | < | ||
relayhost = smtp.example.org | relayhost = smtp.example.org | ||
+ | </ | ||
+ | |||
+ | Se lo smarthost richiede autenticazione con login e password, questi sono i parametri necessari a configurare Postfix come client. Gli stessi parametri sono necessari ogni qual volta Postfix deve agire come client autenticato, | ||
+ | |||
+ | < | ||
+ | # Enable SASL authentication in the Postfix SMTP client. | ||
smtp_sasl_auth_enable = yes | smtp_sasl_auth_enable = yes | ||
+ | # Credentials for SASL authentication to remote hosts. | ||
smtp_sasl_password_maps = hash:/ | smtp_sasl_password_maps = hash:/ | ||
+ | # Filter the remote SMTP server' | ||
smtp_sasl_mechanism_filter = plain, login | smtp_sasl_mechanism_filter = plain, login | ||
- | smtp_sasl_security_options = | + | # We use (encrypted) plaintext passwords; the default is noplaintext, |
+ | smtp_sasl_security_options = noanonymous | ||
+ | # The default SMTP TLS security level for the Postfix SMTP client: may or encrypt. | ||
smtp_tls_security_level = may | smtp_tls_security_level = may | ||
</ | </ | ||
- | L' | + | L' |
+ | |||
+ | Ricordarsi che per utilizzare SSL si deve installare il pacchetto **libsasl2-modules**. | ||
+ | |||
+ | L' | ||
+ | |||
+ | L' | ||
Le credenziali per l' | Le credenziali per l' | ||
Line 441: | Line 470: | ||
< | < | ||
smtp.example.org login_name: | smtp.example.org login_name: | ||
+ | </ | ||
+ | |||
+ | Se non si installa il pacchetto **libsasl2-modules** l' | ||
+ | |||
+ | < | ||
+ | warning: SASL authentication failure: No worthy mechs found | ||
+ | SASL authentication failed; cannot authenticate to server smtp.example.org[10.11.12.13]: | ||
</ | </ | ||
Line 615: | Line 651: | ||
- | ===== Relay to network ===== | + | ===== Relay from network ===== |
Per accettare la posta e farne il relay da un particolare indirizzo IP o network si usa la direttiva **mynetworks** di **''/ | Per accettare la posta e farne il relay da un particolare indirizzo IP o network si usa la direttiva **mynetworks** di **''/ | ||
Line 642: | Line 678: | ||
===== Sender rewrite ===== | ===== Sender rewrite ===== | ||
- | È possibile riscrivere l' | + | È possibile riscrivere l' |
Postfix dispone della direttiva **'' | Postfix dispone della direttiva **'' | ||
Line 654: | Line 690: | ||
< | < | ||
- | root user@domain.tld | + | root user@domain.tld |
- | root@host.domain.tld | + | root@mail.mydomain.org |
</ | </ | ||
Line 690: | Line 726: | ||
</ | </ | ||
- | ===== Relay domains | + | ===== Relay by recipient or domain |
To relay mail for non-local domains (domains not in '' | To relay mail for non-local domains (domains not in '' | ||
Line 719: | Line 755: | ||
user@local.domain | user@local.domain | ||
</ | </ | ||
+ | |||
+ | If the relay host requires authentication, | ||
+ | |||
+ | |||
+ | ===== Relay by sender address ===== | ||
+ | |||
+ | It is possibile to select a different relay path for messages based on sender address. Add the directive **sender_dependent_relayhost_maps** to **main.cf**: | ||
+ | |||
+ | < | ||
+ | sender_dependent_relayhost_maps = hash:/ | ||
+ | </ | ||
+ | |||
+ | Each line of the file must contain an expression matching the full sender address or the entire domain (preceeded by the **@**), and the name or address of the relay host: | ||
+ | |||
+ | < | ||
+ | username@rigacci.org | ||
+ | @domain2.org | ||
+ | </ | ||
+ | |||
+ | Remember to recompile the file whenever you change it using **postmap** (no need to reload Postfix). | ||
+ | |||
+ | All the standard requirements for a relay host are necessary: the relay host must be listed into the **SPF record** of the mail domain and the relay host should accept the original sender (e.g. via the **mynetworks** Postfix directive). | ||
+ | |||
+ | If the relay host requires authentication, | ||
===== HELO hostname ===== | ===== HELO hostname ===== | ||
Line 739: | Line 799: | ||
I messaggi di errore hanno un lifetime a parte, definito dal parametro **bounce_queue_lifetime**. Anche in questo caso il valore predefinito di 5 giorni potrebbe essere eccessivo. | I messaggi di errore hanno un lifetime a parte, definito dal parametro **bounce_queue_lifetime**. Anche in questo caso il valore predefinito di 5 giorni potrebbe essere eccessivo. | ||
+ | |||
+ | < | ||
+ | # The message is considered undeliverable if a temporary error | ||
+ | # persists for more than " | ||
+ | maximal_queue_lifetime = 1d | ||
+ | |||
+ | # A bounce message becomes undeliverable if queued for more | ||
+ | # than " | ||
+ | bounce_queue_lifetime = 6h | ||
+ | </ | ||
===== Delay Warning ===== | ===== Delay Warning ===== | ||
Line 883: | Line 953: | ||
debug_peer_level = 2 | debug_peer_level = 2 | ||
</ | </ | ||
+ | |||
+ | |||
+ | ====== Problemi SSL ====== | ||
+ | |||
+ | Se un server remoto tenta di stabilire una connessione cifrata, ma incontra qualche problema, si può riscontrare questo errore nel log: | ||
+ | |||
+ | < | ||
+ | postfix/ | ||
+ | </ | ||
+ | |||
+ | Se si ha l' | ||
+ | |||
+ | Una soluzione temporanea può essere quella di inibire il flag STARTTLS in risposta al comando EHLO, cioè non annunciare SSL a quel particolare host. Questo comportamento si ottiene con una riga in main.cf: | ||
+ | |||
+ | < | ||
+ | # Discard some EHLO features for specific servers. | ||
+ | # E.g. disable starttls with broken servers. | ||
+ | smtpd_discard_ehlo_keyword_address_maps = hash:/ | ||
+ | </ | ||
+ | |||
+ | E il relativo file **smtpd_discard_ehlo_keywords** che contiene effettivamente l' | ||
+ | |||
+ | < | ||
+ | 124.132.32.203 starttls | ||
+ | </ | ||
+ | |||
+ | Il file va compilato con postmap, ecc. | ||
doc/appunti/linux/sa/postfix.1636710833.txt.gz · Last modified: 2021/11/12 10:53 by niccolo