Postfix Config · 6 min read · Sep 22, 2025
Rinforzare Postfix per ISPConfig 3
Rinforzare Postfix per ISPConfig 3
Autore: Jesús Córdoba
Email: j.cordoba [at] gmx [dot] net
Utente del forum: pititis
Versione: 1.2
L’obiettivo di questo tutorial è rinforzare il server di posta postfix utilizzato da ISPConfig per i server di posta internet dove gli utenti autenticati sono considerati attendibili. Con questa configurazione rifiuterai una grande quantità di spam prima che passi nella tua coda di posta, risparmiando molte risorse di sistema e rendendo il tuo server di posta forte contro gli spammer e le botnet di spam. Iniziamo.
Reverse DNS, (Record DNS PTR)
Per impostare rdns troverai due situazioni:
Il tuo ISP ti consente di cambiarlo tu stesso. Dai un’occhiata nel tuo pannello di controllo.
Il tuo ISP non ti consente di cambiarlo. Invia semplicemente un’email con la tua richiesta.
Chiedi o punta il tuo record rdns al tuo server. i.e
server.example.com
Puoi controllare il tuo rdns con il comando host:
root@server / # host 149.20.4.69 69.64-27.4.20.149.in-addr.arpa domain name pointer pub2.kernel.org.Ricorda che il dns deve propagare le modifiche.
SPF Per Il Tuo Dominio (Record DNS TXT)
SPF è un sistema di validazione delle email progettato per prevenire lo spam via email rilevando la falsificazione delle email, una vulnerabilità comune, verificando gli indirizzi IP dei mittenti.
Per impostare spf dovrai aggiungere un record TXT alla tua zona dns, ma prima puoi generare il tuo record qui: http://www.mailradar.com/spf/
Copia il risultato spf, poi vai su ISPConfig -> dns -> zone -> clicca sul tuo nome di dominio -> clicca sulla scheda record -> e clicca su TXT
Hostname -> example.com. (con punto alla fine!)
Testo -> Incolla qui il risultato spf (senza “ “).
Esempio: v=spf1 a mx ptr ip4:11.222.333.444 -all …e clicca su Salva.
Ricorda che il dns deve propagare le modifiche.
Postfix main.cf
Aggiungiamo/cambiamo qualcosa in /etc/postfix/main.cf
Restrizioni Helo:
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostnameRestrizioni Helo in azione:
Jan 12 01:57:08 server postfix/smtpd[4687]: NOQUEUE: reject: RCPT from unknown[186.43.77.153]: 450 4.7.1 Client host rejected: cannot find your hostname, [186.43.77.153]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[186.43.77.153]>
Jan 8 00:32:22 server postfix/smtpd[17504]: NOQUEUE: reject: RCPT from 201-93-87-2.dial-up.telesp.net.br[201.93.87.2]: 504 5.5.2 : Helo command rejected: need fully-qualified hostname; from=<[email protected]> to=<[email protected]> proto=ESMTP helo= Strict rfc:
strict_rfc821_envelopes = yesRestrizioni Client:
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cfRestrizioni Destinatario:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unknown_recipient_domainRestrizioni Dati:
smtpd_data_restrictions = reject_unauth_pipeliningRitardo Smtpd:
smtpd_delay_reject = yesNon dimenticare di ricaricare postfix:
/etc/init.d/postfix reloadControllo SPF Per Postfix (Debian E Ubuntu)
Installa il pacchetto spf:
apt-get install postfix-policyd-spf-pythonoppure
apt-get install postfix-policyd-spf-perlAggiungi questo a /etc/postfix/main.cf:
policy-spf_time_limit = 3600se aggiungi check_policy_service unix:private/policy-spf alla fine di smtpd_recipient_restrictions:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination, reject_unknown_recipient_domain, check_policy_service unix:private/policy-spfOra modifica master.cf e aggiungi alla fine questo (per la versione python):
policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/policyd-spf oppure questo per la versione perl:
policy-spf unix - n n - - spawn
user=nobody argv=/usr/sbin/postfix-policyd-spf-perl…ricarica postfix.
/etc/init.d/postfix reloadControllo spf in azione:
Jan 4 15:50:11 server postfix/smtpd[19096]: NOQUEUE: reject: RCPT from g230068165.adsl.alicedsl.de[92.230.68.165]: 550 5.7.1 <[email protected]>: Recipient address rejected: Message rejected due to: SPF fail - not authorized. Please see http://www.openspf.org/Why?s=helo;id=paxxxxxn.com;ip=92.230.68.165;[email protected]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=Greylist
Il greylisting è un metodo di difesa degli utenti di posta elettronica contro lo spam. Un agente di trasferimento di posta (MTA) che utilizza il greylisting “rifiuterà temporaneamente” qualsiasi email da un mittente che non riconosce. Se la posta è legittima, il server di origine, dopo un ritardo, riproverà e, se è trascorso un tempo sufficiente, l’email sarà accettata.
Installazione di postgrey (Debian, Ubuntu):
apt-get install postgreyLe opzioni di configurazione si trovano in /etc/default/postgrey (il ritardo predefinito è di 5 min).
Modifica main.cf e aggiungi check_policy_service inet:127.0.0.1:10023 alla fine di smtpd_recipient_restrictions:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination, reject_unknown_recipient_domain, check_policy_service unix:private/policy-spf,check_policy_service inet:127.0.0.1:10023…ricarica postfix:
/etc/init.d/postfix reloadGreylist in azione:
Jan 10 17:38:57 server postfix/smtpd[21302]: NOQUEUE: reject: RCPT from mailout-de.gmx.net[213.165.64.22]: 451 4.7.1 <[email protected]>: Recipient address rejected: Greylisting in effect, please come back later; from=<[email protected]> to=<[email protected]> proto=SMTP helo=DNSBL (Blacklist/Blocklist Basata Su DNS)
Una DNSBL è un elenco di indirizzi IP pubblicati tramite il servizio di nomi di dominio di Internet (DNS) sia come file di zona che può essere utilizzato da software di server DNS, sia come zona DNS live che può essere interrogata in tempo reale. Le DNSBL sono più comunemente utilizzate per pubblicare gli indirizzi di computer o reti collegati allo spam; la maggior parte dei software di server di posta può essere configurata per rifiutare o contrassegnare i messaggi inviati da un sito elencato in uno o più di tali elenchi. Questi possono includere l’elenco degli indirizzi di computer zombie o di altre macchine utilizzate per inviare spam, l’elenco degli indirizzi di ISP che ospitano volontariamente spammer, o l’elenco degli indirizzi che hanno inviato spam a un sistema honeypot. Per utilizzare dnsbl con postix utilizziamo reject_rbl_client. Aggiungi semplicemente alcune zone dns live per le query nel file main.cf.
Nel mio esempio utilizzerò due elenchi con una reputazione molto buona (aggiunti alla fine di smtpd_client_restrictions):
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf, reject_rbl_client cbl.abuseat.org, reject_rbl_client b.barracudacentral.orgrbl in azione:
Jan 12 01:52:42 server postfix/smtpd[4616]: NOQUEUE: reject: RCPT from 89.pool85-49-26.dynamic.orange.es[85.49.26.89]: 554 5.7.1 Service unavailable; Client host [85.49.26.89] blocked using cbl.abuseat.org; Blocked - see http://cbl.abuseat.org/lookup.cgi?ip=85.49.26.89; from=<[email protected]> to=<[email protected]> proto=SMTP helo=
Jan 11 20:13:58 server postfix/smtpd[29591]: NOQUEUE: reject: RCPT from 93-87-122-56.dynamic.isp.telekom.rs[93.87.122.56]: 554 5.7.1 Service unavailable; Client host [93.87.122.56] blocked using b.barracudacentral.org; http://www.barracudanetworks.com/reputation/?pr=1&ip=93.87.122.56; from=<[email protected]> to=<[email protected]> proto=ESMTP helo= Postscreen
Nota: Questa funzione è disponibile in Postfix 2.8 e versioni successive.
Il demone postscreen di Postfix fornisce ulteriore protezione contro il sovraccarico del server di posta. Un processo postscreen gestisce più connessioni SMTP in entrata e decide quali client possono comunicare con un processo del server SMTP di Postfix. Tenendo lontani gli spambots, postscreen lascia più processi del server SMTP disponibili per i client legittimi e ritarda l’insorgere di condizioni di sovraccarico del server.
La principale sfida per postscreen è prendere una decisione se è uno zombie basata su una singola misurazione. Questo è necessario perché molti zombie cercano di rimanere sotto il radar ed evitare di inviare spam allo stesso sito ripetutamente. Una volta che postscreen decide che un client non è uno zombie, lo inserisce temporaneamente nella lista bianca per evitare ulteriori ritardi per la posta legittima.
Utilizzeremo per questo tutorial le impostazioni predefinite con un’eccezione. Queste impostazioni sono adatte per la maggior parte delle situazioni.
Per prima cosa, aggiungiamo una riga a main.cf con il comando:
postscreen_greet_action = enforceIn secondo luogo, aggiungiamo postscreen e alcuni nuovi servizi a master.cf Nota: Queste impostazioni possono già esistere, basta decommentare. Assicurati anche che la riga “smtp inet … smtpd”, inclusi eventuali parametri, sia commentata (se ci sono, i parametri devono essere spostati nel nuovo servizio smtpd).
# File di configurazione del processo master di Postfix. Per dettagli sul formato
# del file, vedere la pagina man master(5) (comando: "man 5 master").
#
# Non dimenticare di eseguire "postfix reload" dopo aver modificato questo file.
#
# ==========================================================================
# tipo di servizio privato non privilegiato chroot risveglio maxproc comando + args
# (sì) (sì) (sì) (mai) (100)
# ==========================================================================
#smtp inet n - - - - smtpd
# -o ...
smtpd pass - - n - - smtpd
-o ... # Parametri spostati dal servizio smtp al nuovo servizio smtpd.(se ci sono)
smtp inet n - n - 1 postscreen
tlsproxy unix - - n - 0 tlsproxy
dnsblog unix - - n - 0 dnsblogOra, ricarichiamo postfix:
/etc/init.d/postfix reloadRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.