Internet è il postino dei nostri tempi che nessun cane azzannerà.
Iniziamo la configurazione del nostro Mail Server. Il primo tassello è senza dubbio Postfix il nostro (mio?) MTA preferito. Forse il fatto che ci sia IBM all'origine ha per me il suo peso ? Bando alle ciance e via con i lavori ...
Postfix è un popolare, scalabile e sicuro MTA scritto da Witse Venema mentre lavorava in IBM. Postfix era originariamente noto come VMailer ed è stato anche commercializzato da IBM come Secure Mailer. Nel 1999, il suo nome è diventato Postfix, e il resto è storia.
In questa guida l'ho scelto perchè è affidabile, veloce e (relativamente) facile da gestire.
Il suo file di configurazione è facile da leggere e modificare, anche se ovviamente è utile conoscere le diverse opzioni che è possibile impostare e tutti i loro valori possibili (o almeno i principali vista la mole degli stessi...).
Sono stati scritti libri interi su Postfix, quindi inutile sottolineare che questo è solo un buon punto di partenza.
Abbiamo già installato Postfix, ora procediamo con la configurazione base che si ottiene modificando il file /etc/postfix/main.cf , iniziamo da qui :
sudo nano /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
Definiamo il nome host internet del nostro server, di default il primo è il valore ritornato da gethostbyname() , il secondo il nome del dominio :
myhostname = archi.mede.it
mydomain = mede.it
Questo identifica i nomi di dominio da cui si assume che le mail locali arrivino e sono inviate. E' più difficile da spiegare che da scrivere :). Dal momento che noi non abbiamo bisogno di domini multipli, impostiamo questo parametro uguale a mydomain.
myorigin = $mydomain
La lista dei domini verso i quali le mail sono inviate localmente. Insomma, per queste destinazioni le mail vengono considerate locali e trasferite alle caselle di posta locali.
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Questo identifica le reti (o gli specifici host), che invieranno posta da questo server. Di default Postfix riceve le mail da tutte le interfacce di rete installate, ma permette di inviare solo dalla interfaccia di loopback (127.0.0.1) che, nel nostro caso, non và ovviamente bene. Il valore del parametro mynetworks può essere un singolo host, un indirizzo IP e la maschera di rete per indicare un range di host o di una sottorete, o qualsiasi numero di host separati da virgola o indirizzo IP e associati netmasks.
Questo parametro è molto importante, deve essere presente e deve contenere SOLO la rete o gli host autorizzati, altrimenti il vostro server si trasforma in un open relay, ovvero un server attraverso cui chiunque può inviare mail. Gli open relay sono il bersaglio preferito dagli spammers, e sono, per fortuna, una razza quasi estinta (gli OpenRelay, non gli Spammers ...).
Nel nostro caso il mail server permetterà alla rete interna 192.168.20.* di inviare mail attraverso di esso:
mynetworks = 127.0.0.0/8, 192.168.20.0/24
Ora i nostri utenti di rete invieranno mail ma molti client di posta inviano la mail usando il fully qualified domain name dell'host da cui inviano la mail. Per capirci meglio: se il mio host si chiama mybox e il mio utente steno chi riceve le mail che spedisco vede il mittente nella forma steno@mybox.mede.it che non è esattamente quello che voglio. Probabilmente non ho nemmeno un utente in quell'host e non riusciranno a rispondere alle mie mail. Risolviamo questo problema con il parametro masquerade_domains. Postfix sostitusce la parte domain con quanto specificato qui.
masquerade_domains = mede.it
Generalmente coincidono e indicano l'organizzazione e il nome del file contenenti gli alias locali: un elenco di equivalenze che permettono di attribuire più indirizzi a un unico utente
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps
Massima dimensione delle mailbox. In questo caso 0 (zero) specifica nessun limite.
mailbox_size_limit = 0
Specifica dove verrà salvata la posta dell'utente relativamente alla propria home. Se non specifico nulla viene usato il formato mbox e salvato un file con il nome utente in /var/spool/mail. Io preferisco il formato Maildir, e specificando il seguente parametro ogni mail ricevuta crea un file in /home/nomeutente/Maildir
home_mailbox = Maildir/
Avviamo postfix per fare un test se tutto funziona regolarmente :
sudo /etc/rc.d/postfix start
sudo pacman -S netkit-telnet
telnet localhost 25
Trying 127.0.0.1...
Connected to archi.
Escape character is '^]'.
220 archi.mede.it ESMTP Postfix
helo 192.168.20.10
250 archi.mede.it
mail from:test@gmail.com
rcpt to: admin@mede.it
data
subject: Mail di prova
Salve, ti mando una mail di prova
.
250 2.0.0 Ok: queued as 13BF410D898D
quit
sudo nano /home/admin/Maildir/new/1198938050.V803I22110bM48209.archi
Abbiamo configurato postfix perchè usi il file /etc/postfix/aliases per gli alias, facciamo una piccola modifica al file perchè mandi le mail di sistema al nostro utente admin anzichè al predefinito (che abbiamo disabilitato) root.
sudo nano /etc/postfix/aliases
#Person who should get root's mail. Don't receive mail as root!
#root: you
root: admin
newaliases
Come al solito includiamo postfix dell'array DAEMONS in /etc/rc.conf :
DAEMONS=(... ... ... ... ... postfix ... ... ...)
Ora il nostro server può inviare mail dalla nostra rete. Tutto qua ? Eh eh, magari. Diciamo che già funziona, e in un mondo perfetto di sole persone oneste potremmo fermarci qua.
Peccato non sia così e che dobbiamo difenderci dai rompic... che popolano la rete e che vogliono magari venderci pillole blu anche a Natale...
Meglio rimboccarci le maniche e vedere come possiamo almeno rendere loro la vita un po' più difficile.
Alla prossima.
Recent comments
1 min 12 sec ago
1 week 1 day ago
3 weeks 20 hours ago
4 weeks 3 days ago
7 weeks 6 days ago
13 weeks 1 hour ago
13 weeks 3 days ago
15 weeks 5 days ago
16 weeks 3 days ago
19 weeks 22 hours ago