Installation d'un serveur de courrier basique
Debian installe par défaut exim4. Nous allons le remplacer par postix (que nous étendrons ensuite pour avoir un serveur de courrier complet.
Pensez à ouvrir les ports 25 du firewall.
apt install postfix
On supprime complètement exim4 (fichiers de configuration):
apt remove --purge exim4*
On teste l'envoi de messages entrants et sortants après avoir chargé les programmes de mail utilitaires (sur le serveur et sur un autre poste):
Chargement des utilitaires sur un poste extérieur. Exécutez la même commande sur le poste serveur en cours de configuration.
root@adara:~# apt install mailutils
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
guile-2.0-libs libfribidi0 libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libmariadbclient18 libntlm0 libpython2.7 libpython2.7-minimal
libpython2.7-stdlib mailutils-common mysql-common
Paquets suggérés :
mailutils-mh mailutils-doc
Les NOUVEAUX paquets suivants seront installés :
guile-2.0-libs libfribidi0 libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libmariadbclient18 libntlm0 libpython2.7 libpython2.7-minimal
libpython2.7-stdlib mailutils mailutils-common mysql-common
0 mis à jour, 15 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 9 575 ko dans les archives.
Après cette opération, 39,0 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de:1 http://debian.mirrors.ovh.net/debian stretch/main amd64 libgc1c2 amd64 1:7.4.2-8 [208 kB]
Réception de:2 http://debian.mirrors.ovh.net/debian stretch/main amd64 libltdl7 amd64 2.4.6-2 [389 kB]
Réception de:3 http://debian.mirrors.ovh.net/debian stretch/main amd64 guile-2.0-libs amd64 2.0.13+1-4 [2 232 kB]
Réception de:4 http://debian.mirrors.ovh.net/debian stretch/main amd64 libfribidi0 amd64 0.19.7-1+b1 [45,7 kB]
Réception de:5 http://debian.mirrors.ovh.net/debian stretch/main amd64 libntlm0 amd64 1.4-8 [20,9 kB]
Réception de:6 http://debian.mirrors.ovh.net/debian stretch/main amd64 libgsasl7 amd64 1.8.0-8+b2 [207 kB]
Réception de:7 http://debian.mirrors.ovh.net/debian stretch/main amd64 libkyotocabinet16v5 amd64 1.2.76-4.2+b1 [298 kB]
Réception de:8 http://debian.mirrors.ovh.net/debian stretch/main amd64 mailutils-common all 1:3.1.1-1 [642 kB]
Réception de:9 http://debian.mirrors.ovh.net/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5 608 B]
Réception de:10 http://debian.mirrors.ovh.net/debian stretch/main amd64 libmariadbclient18 amd64 10.1.26-0+deb9u1 [779 kB]
Réception de:11 http://debian.mirrors.ovh.net/debian stretch/main amd64 libpython2.7-minimal amd64 2.7.13-2+deb9u2 [389 kB]
Réception de:12 http://debian.mirrors.ovh.net/debian stretch/main amd64 libpython2.7-stdlib amd64 2.7.13-2+deb9u2 [1 896 kB]
Réception de:13 http://debian.mirrors.ovh.net/debian stretch/main amd64 libpython2.7 amd64 2.7.13-2+deb9u2 [1 072 kB]
Réception de:14 http://debian.mirrors.ovh.net/debian stretch/main amd64 libmailutils5 amd64 1:3.1.1-1 [817 kB]
Réception de:15 http://debian.mirrors.ovh.net/debian stretch/main amd64 mailutils amd64 1:3.1.1-1 [573 kB]
9 575 ko réceptionnés en 0s (11,2 Mo/s)
Sélection du paquet libgc1c2:amd64 précédemment désélectionné.
(Lecture de la base de données... 22737 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../00-libgc1c2_1%3a7.4.2-8_amd64.deb ...
Dépaquetage de libgc1c2:amd64 (1:7.4.2-8) ...
Sélection du paquet libltdl7:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../01-libltdl7_2.4.6-2_amd64.deb ...
Dépaquetage de libltdl7:amd64 (2.4.6-2) ...
Sélection du paquet guile-2.0-libs:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../02-guile-2.0-libs_2.0.13+1-4_amd64.deb ...
Dépaquetage de guile-2.0-libs:amd64 (2.0.13+1-4) ...
Sélection du paquet libfribidi0:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../03-libfribidi0_0.19.7-1+b1_amd64.deb ...
Dépaquetage de libfribidi0:amd64 (0.19.7-1+b1) ...
Sélection du paquet libntlm0:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../04-libntlm0_1.4-8_amd64.deb ...
Dépaquetage de libntlm0:amd64 (1.4-8) ...
Sélection du paquet libgsasl7 précédemment désélectionné.
Préparation du dépaquetage de .../05-libgsasl7_1.8.0-8+b2_amd64.deb ...
Dépaquetage de libgsasl7 (1.8.0-8+b2) ...
Sélection du paquet libkyotocabinet16v5:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../06-libkyotocabinet16v5_1.2.76-4.2+b1_amd64.deb ...
Dépaquetage de libkyotocabinet16v5:amd64 (1.2.76-4.2+b1) ...
Sélection du paquet mailutils-common précédemment désélectionné.
Préparation du dépaquetage de .../07-mailutils-common_1%3a3.1.1-1_all.deb ...
Dépaquetage de mailutils-common (1:3.1.1-1) ...
Sélection du paquet mysql-common précédemment désélectionné.
Préparation du dépaquetage de .../08-mysql-common_5.8+1.0.2_all.deb ...
Dépaquetage de mysql-common (5.8+1.0.2) ...
Sélection du paquet libmariadbclient18:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../09-libmariadbclient18_10.1.26-0+deb9u1_amd64.deb ...
Dépaquetage de libmariadbclient18:amd64 (10.1.26-0+deb9u1) ...
Sélection du paquet libpython2.7-minimal:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../10-libpython2.7-minimal_2.7.13-2+deb9u2_amd64.deb ...
Dépaquetage de libpython2.7-minimal:amd64 (2.7.13-2+deb9u2) ...
Sélection du paquet libpython2.7-stdlib:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../11-libpython2.7-stdlib_2.7.13-2+deb9u2_amd64.deb ...
Dépaquetage de libpython2.7-stdlib:amd64 (2.7.13-2+deb9u2) ...
Sélection du paquet libpython2.7:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../12-libpython2.7_2.7.13-2+deb9u2_amd64.deb ...
Dépaquetage de libpython2.7:amd64 (2.7.13-2+deb9u2) ...
Sélection du paquet libmailutils5:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../13-libmailutils5_1%3a3.1.1-1_amd64.deb ...
Dépaquetage de libmailutils5:amd64 (1:3.1.1-1) ...
Sélection du paquet mailutils précédemment désélectionné.
Préparation du dépaquetage de .../14-mailutils_1%3a3.1.1-1_amd64.deb ...
Dépaquetage de mailutils (1:3.1.1-1) ...
Paramétrage de mysql-common (5.8+1.0.2) ...
update-alternatives: utilisation de « /etc/mysql/my.cnf.fallback » pour fournir « /etc/mysql/my.cnf » (my.cnf) en mode automatique
Paramétrage de libgc1c2:amd64 (1:7.4.2-8) ...
Paramétrage de libmariadbclient18:amd64 (10.1.26-0+deb9u1) ...
Paramétrage de libntlm0:amd64 (1.4-8) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
Paramétrage de libltdl7:amd64 (2.4.6-2) ...
Paramétrage de libfribidi0:amd64 (0.19.7-1+b1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
Paramétrage de libpython2.7-minimal:amd64 (2.7.13-2+deb9u2) ...
Paramétrage de libkyotocabinet16v5:amd64 (1.2.76-4.2+b1) ...
Paramétrage de libpython2.7-stdlib:amd64 (2.7.13-2+deb9u2) ...
Paramétrage de mailutils-common (1:3.1.1-1) ...
Paramétrage de libgsasl7 (1.8.0-8+b2) ...
Paramétrage de guile-2.0-libs:amd64 (2.0.13+1-4) ...
Paramétrage de libpython2.7:amd64 (2.7.13-2+deb9u2) ...
Paramétrage de libmailutils5:amd64 (1:3.1.1-1) ...
Paramétrage de mailutils (1:3.1.1-1) ...
update-alternatives: utilisation de « /usr/bin/frm.mailutils » pour fournir « /usr/bin/frm » (frm) en mode automatique
update-alternatives: utilisation de « /usr/bin/from.mailutils » pour fournir « /usr/bin/from » (from) en mode automatique
update-alternatives: utilisation de « /usr/bin/messages.mailutils » pour fournir « /usr/bin/messages » (messages) en mode automatique
update-alternatives: utilisation de « /usr/bin/movemail.mailutils » pour fournir « /usr/bin/movemail » (movemail) en mode automatique
update-alternatives: utilisation de « /usr/bin/readmsg.mailutils » pour fournir « /usr/bin/readmsg » (readmsg) en mode automatique
update-alternatives: utilisation de « /usr/bin/dotlock.mailutils » pour fournir « /usr/bin/dotlock » (dotlock) en mode automatique
update-alternatives: utilisation de « /usr/bin/mail.mailutils » pour fournir « /usr/bin/mailx » (mailx) en mode automatique
Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
root@adara:~#
Test d'envoi d'un utilisateur du serveur à l'autre
- Root -> ericadmin
root@atom:/etc/fail2ban# mail ericadmin
Cc:
Subject: Essai 1
Essai 1
.
ericadmin@atom:~/bin$ mailx
"/var/mail/ericadmin": 1 message 1 nouveau
>N 1 root lun. nov. 26 09: 14/451 Essai 1
? 1
Return-Path: <root@atom.yojik.net>
X-Original-To: ericadmin@atom.yojik.net
Delivered-To: ericadmin@atom.yojik.net
Received: by atom.yojik.net (Postfix, from userid 0)
id 3AE0F460033; Mon, 26 Nov 2018 09:26:26 +0100 (CET)
To: <ericadmin@atom.yojik.net>
Subject: Essai 1
X-Mailer: mail (GNU Mailutils 3.1.1)
Message-Id: <20181126082626.3AE0F460033@atom.yojik.net>
Date: Mon, 26 Nov 2018 09:26:26 +0100 (CET)
From: root@atom.yojik.net (root)
Essai 1
.
? q
1 message sauvegardé dans /home/ericadmin/mbox
0 message conservé dans /var/mail/ericadmin
- ericadmin -> root
ericadmin@atom:~/bin$ mail root
Cc:
Subject: Essai 2
Essai 2
.
root@atom:/etc/fail2ban# mailx
"/var/mail/root": 1 message 1 nouveau
>N 1 Eric Streit lun. nov. 26 09: 14/456 Essai 2
? 1
Return-Path: <ericadmin@atom.yojik.net>
X-Original-To: root@atom.yojik.net
Delivered-To: root@atom.yojik.net
Received: by atom.yojik.net (Postfix, from userid 1000)
id 46220460036; Mon, 26 Nov 2018 09:27:04 +0100 (CET)
To: <root@atom.yojik.net>
Subject: Essai 2
X-Mailer: mail (GNU Mailutils 3.1.1)
Message-Id: <20181126082704.46220460036@atom.yojik.net>
Date: Mon, 26 Nov 2018 09:27:04 +0100 (CET)
From: ericadmin@atom.yojik.net (Eric Streit)
Essai 2
.
L'envoi des messages entre utilisateurs du serveur serveur marche comme il faut.
Première étape de configuration de postfix
Modifiez la ligne suivante dans /etc/postfix/main.cf:
mydestination = $myhostname, yojik.net, atom.yojik.net, localhost.yojik.net, localhost
et relancez postfix avec:
service postfix restart
Test d'envoi de messages à partir de ce serveur sur mon serveur principal
Envoi d'un message sur mon compte de messagerie en .eu:
ericadmin@atom:~$ echo "Et voilà un petit message" | mail -s "test du courrier sortant" ericadmin@yojik.eu
Le message est bien reçu.
Vérifiez dans le dossier spam: comme il n'y a aucune sécurisation du serveur de courrier (pour l'instant), gmail ou autre, soit refuse de courrier, soit le met dans les spams.
Test d'envoi de messages à partir d'un poste extérieur
Envoi d'un message à partir du poste extérieur aldebaran (n'oubliez pas d'ouvrir le port 25 dans les règles iptables ...):
eric@aldebaran:~$ echo "Et voilà un petit message" | mail -s "test du courrier 1" ericadmin@atom.yojik.net
Test de réception sur le serveur:
ericadmin@atom:~$ mailx
"/var/mail/ericadmin": 1 message 1 nouveau
>N 1 Eric Streit dim. nov. 11 13: 16/724 test du courrier 1
? 1
Return-Path: <eric@aldebaran.yojik.net>
X-Original-To: ericadmin@atom.yojik.net
Delivered-To: ericadmin@atom.yojik.net
Received: from aldebaran.yojik.net (unknown [IPv6:2a01:e0a:54:c220:e5c4:aee0:d068:64f6])
by atom.yojik.net (Postfix) with ESMTP id 0B3CF12085A
for <ericadmin@atom.yojik.net>; Sun, 11 Nov 2018 13:09:08 +0100 (CET)
Received: by aldebaran.yojik.net (Postfix, from userid 1000)
id 40DF310CAC3; Sun, 11 Nov 2018 13:09:07 +0100 (CET)
Subject: test du courrier 1
To: <ericadmin@atom.yojik.net>
X-Mailer: mail (GNU Mailutils 3.1.1)
Message-Id: <20181111120907.40DF310CAC3@aldebaran.yojik.net>
Date: Sun, 11 Nov 2018 13:09:07 +0100 (CET)
From: eric@aldebaran.yojik.net (Eric Streit)
Et voilà un petit message
? q
1 message sauvegardé dans /home/ericadmin/mbox
0 message conservé dans /var/mail/ericadmin
Le message est bien reçu par le serveur de mail de yojik.net. Vous pouvez essayer aussi sur une adresse gmail par exemple.
Mise à jour du fichier /etc/aliases
Ce fichier sert à rediriger toutes les adresses émail comme abuse, webmaster, root vers un utilisateur administrateur de la machine, root puis vers moi ericadmin
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: ericadmin
Il faut lancer la commande newaliases pour générer le fichier.db utile à Postfix et on demande à Postfix de recharger ses fichiers.
root@adara:~# newaliases
oot@adara:~# service postfix reload
root@adara:~#
Test de l'envoi à root pour vérifier la redirection
ericadmin@atom:~/bin$ mail root
Cc:
Subject: Essai 5
Essai 5
.
ericadmin@atom:~/bin$ mailx
"/var/mail/ericadmin": 4 messages 1 nouveau 3 non lus
U 1 Eric Streit lun. nov. 26 09: 19/768 test du courrier 1
U 2 Eric Streit lun. nov. 26 09: 18/743 test du courrier 4
U 3 Eric Streit lun. nov. 26 09: 18/743 test du courrier 4
>N 4 Eric Streit lun. nov. 26 09: 14/456 Essai 5
?
Tout fonctionne: le message a bien été redirigé vers ericadmin comme spécifié dans /etc/aliases.
Le fichier /etc/mailname
Il contient le nom du serveur de courrier pour la machine, ici, c'est elle-même:
root@aijan:/home/ericadmin# cat /etc/mailname
aijan.yojik.net
Le serveur de courrier n'autorise que les utilisateurs (users) de la machine, ici, ericadmin et root (ainsi que les alias enregistrés précédemment).
ericadmin@aijan:~$ mailx
"/var/mail/ericadmin": 2 messages 2 nouveaux
>N 1 Eric Streit dim. mai 20 08:4 17/698 essai d'envoi à root
N 2 Eric Streit dim. mai 20 08:5 17/717 un autre essai
?
Pour l'envoi à partir d'un poste extérieur, pensez à utiliser l'adresse mail qui contient le nom complet de votre machine:
toto@atom.yojik.net
et non
toto.yojik.net
Les domaines ne sont pas encore configurés dans postfix.
L'envoi à root et à ericadmin à partir d'un autre poste du réseau fonctionne parfaitement: le mail à destination de root est redirigé vers ericadmin comme stipulé dans /etc/aliases.
Les messages sortants sont parfaitement gérés et reçus par les serveurs de courrier extérieurs.