Table of Contents
Rappel: chemin des mails MUA: mail user agent: client email (ex: mutt, thunderbird, evolution) MTA: mail transfer agent (serveur mail) MDA: procmail: mail delivery agent SMTP: simple mail transfer protocol
Aujourd'hui: MTA: postfix
Installation
Il y a déjà un MTA installé par défaut: exim4
Choix postfix: simplicité du fichier de configuration et sécurité
sudo apt-get --purge remove exim4 sudo aptitude install postfix
Il installe des packages dont un résolver dynamique, du coup, le fichier /etc/resolv.conf change à:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1
Configuration
DNS
Pour que le MTA puisse faire son job, il doit interroger le DNS pour résoudre le nom du serveur mail (MX), donc, il faut configurer bind:
vi /var/cache/bind/truc3.be.zone
Ajouter un record A:
mail IN A 192.168.2.118
et un record MX:
truc3.be. IN MX 10 mail
où 192.168.2.118 est l'adresse IP du serveur mail.
Redémarrer le service DNS:
sudo /etc/init.d/bind9 restart
Vérifier que c'est bien configuré:
dig mx truc3.be ; <<>> DiG 9.2.4 <<>> mx truc3.be ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61331 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;truc3.be. IN MX ;; ANSWER SECTION: truc3.be. 86400 IN MX 10 mail.truc3.be. ;; AUTHORITY SECTION: truc3.be. 86400 IN NS dns.truc3.be. truc3.be. 86400 IN NS dns2.truc3.be. ;; ADDITIONAL SECTION: mail.truc3.be. 86400 IN A 192.168.2.154 dns.truc3.be. 86400 IN A 192.168.2.158 ;; Query time: 16 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Oct 28 14:30:26 2005 ;; MSG SIZE rcvd: 116
Ensuite, on peut tester en envoyant un email:
mail -s test linux@truc3.be test de mail... .
Ça ne fonctionne pas.
Configuration de postfix
Sauf qu'il faut configurer /etc/postfix/main.cf
Documentation: http://people.via.ecp.fr/~alexis/formation-linux/serveur-mail.html
myhostname: nom de la machine: mail.domain.com mydestination: accepte de délivrer les messages pour les domaines suivants mynetworks: réseau pour lequel le serveur accepte de relayer les mails (pas mettre n'importe quoi, sinon relais ouvert → porte ouverte aux spammeurs) mydomain: nom du domaine du serveur mail
Remarques
Dans /etc/hosts, il faut pour la ligne 127.0.0.1 comme premier nom le nom canonique (ex: narsil.zongo.be). Vérification:
hostname -f
Dans le champ mydestination, le premier terme à mettre est le nom du domaine de la machine (ex: truc.be).