Installation-Serveur-Courrier-Basique.md 15 KB



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 (IPV4 et IPV6) 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@atom:~# 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@atom:~#

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 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@atom:~# newaliases
oot@atom:~# service postfix reload
root@atom:~#

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.