Postfix: installazione, configurazione, trucchi

Introduzione

Postfix è l'MTA (agente di trasferimento della posta) di Wietse Venema, che è nato come alternativa al programma Sendmail, fino ad allora largamente usato. Postfix cerca di essere veloce, facile da amministrare e sicuro pur essendo, allo stesso tempo, compatibile con sendmail abbastanza da non confondere gli utenti. Perciò all'esterno è simile a sendmail, ma all'interno è completamente differente.
(Fonte: Postfix Debian Package)

In questa guida vedremo come configurarlo al meglio, tenendo in considerazione alcuni aspetti legati alle prestazioni e alla sicurezza.

Installazione

Per installare postfix basta il comando:

# apt-get install postfix

che in automatico rimuoverà il pacchetto exim4.
Alla fine dell'installazione partirà un semplice wizard di configurazione. Rispondete così alle domande:

  • General Type of Configuration? => Internet Site
  • Where should mail for root go? =>[Default]
  • Mail name? => L'hostname del server (FQDN)
  • Other destinations to accept mail for? =>localhost

Il server Postfix è installato e già pronto per funzionare!

Configurazione

Il file principale di configurazione di postfix è /etc/postfix/main.cf: è in questo file che vanno inserite le modifiche alla configurazione di Postfix.
Un file di base funzionante per un servizio di posta elettronica locale può essere questo:

# Impostazioni di sistema
############################

# Impostazioni sulle directory del programma
command_directory = /usr/sbin

# Utente proprietario delle mail
mail_owner = postfix

# Gruppo proprietario
setgid_group = postdrop

# Il mio host
myhostname = mailserver.dominio.local

# Il mio dominio
mydomain = dominio.local
myorigin = $mydomain

# Domini che postfix considererà locali, per i quali smisterà
# la posta localmente
mydestination = $myhostname, localhost.$mydomain $mydomain, localhost

# Maschero la visualizzazione dei nomi host per la rete interna
masquerade_domains = $mydomain

# Banner per la connessione telenet (piccolo vezzo grafico)
smtpd_banner = $myhostname ESMTP $mail_name (Debian GNU/Linux)


# Configurazione di rete
##########################

# Networks abilitati. Impostate gli IP della vostra rete
mynetworks_style = host
mynetworks = 127.0.0.0/8


# Configurazione email
#######################

# Coda e deposito email
queue_directory = /var/spool/postfix
mail_spool_directory = /var/spool/mail

# Configuro le mailbox
mailbox_command = 
mailbox_size_limit = 0

# Definisco gli alias
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# Interfacce abilitate
inet_interfaces = all
inet_protocols = ipv4

# Disabilitiamo il comando verify per la verifica dell’esistenza degli utenti
disable_vrfy_command = yes

# Dimensione massima dei messaggi da accettare (in byte)
message_size_limit = 20480000

# Tempo di attesa in caso di errore
smtp_error_sleep_time = 1s


# Alcune regole antispam
##########################
smtpd_recipient_restrictions =
            reject_invalid_hostname,
            reject_non_fqdn_hostname,
            reject_non_fqdn_sender,
            reject_non_fqdn_recipient,
            reject_unknown_sender_domain,
            reject_unknown_recipient_domain,
            reject_unauth_pipelining,
            permit_mynetworks,
            reject_unauth_destination,
            reject_rbl_client zombie.dnsbl.sorbs.net,
            reject_rbl_client relays.ordb.org,
            reject_rbl_client opm.blitzed.org,
            reject_rbl_client list.dsbl.org,
            reject_rbl_client sbl.spamhaus.org,
            reject_rbl_client blackholes.easynet.nl,
            permit

Con questa configurazione abbiamo già un server funzionante che smista localmente la posta per la rete interna e che invia direttamente la posta verso i domini esterni.