Recherche de site Web

Installer un serveur de messagerie complet avec Postfix et Webmail dans Debian 9


Ce didacticiel vous guidera sur la façon d'installer et de configurer un serveur de messagerie complet avec Postfix dans la version Debian 9. Il expliquera également comment configurer les boîtes aux lettres des comptes à l'aide de Dovecot afin de récupérer et de composer des courriers via le protocole IMAP. Les utilisateurs utiliseront l'interface Rainloop Webmail comme agent utilisateur de messagerie pour gérer le courrier.

Exigences

  1. Installation minimale de Debian 9
  2. Une adresse IP statique configurée pour l'interface réseau
  3. Un nom de domaine local ou public enregistré.

Dans ce didacticiel, nous utiliserons un compte de domaine privé pour la configuration du serveur de messagerie configuré uniquement via le fichier /etc/hosts, sans qu'aucun serveur DNS ne soit impliqué dans la gestion de la résolution DNS.

Étape 1 : configurations initiales pour le serveur de messagerie Postfix sur Debian

1. Dans la première étape, connectez-vous à votre machine avec un compte avec les privilèges root ou directement avec l'utilisateur root et assurez-vous que votre système Debian est à jour avec les derniers correctifs de sécurité et versions de logiciels et de packages. , en exécutant la commande suivante.

apt-get update 
apt-get upgrade 

2. À l'étape suivante, installez les packages logiciels suivants qui seront utilisés pour l'administration du système, en exécutant la commande suivante.

apt-get install curl net-tools bash-completion wget lsof nano

3. Ensuite, ouvrez le fichier /etc/host.conf pour le modifier avec votre éditeur de texte préféré et ajoutez la ligne suivante au début du fichier pour que la résolution DNS lisez d'abord le fichier hosts.

order hosts,bind
multi on

4. Ensuite, configurez le FQDN de votre machine et ajoutez votre nom de domaine et votre FQDN système au fichier /etc/hosts. Utilisez l'adresse IP de votre système pour résoudre le nom du domaine et le nom de domaine complet, comme illustré dans la capture d'écran ci-dessous.

Remplacez l'adresse IP et le domaine en conséquence. Ensuite, redémarrez la machine afin d'appliquer correctement le nom d'hôte.

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Après le redémarrage, vérifiez si le nom d'hôte a été correctement configuré en exécutant la série de commandes suivante. Le nom de domaine, le FQDN, le nom d'hôte et l'adresse IP du système doivent être renvoyés par la commande hostname.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Testez également si le domaine répond correctement aux requêtes locales en exécutant les commandes ci-dessous. Sachez que le domaine ne sera pas réexécuté aux requêtes distantes émises par d'autres systèmes de votre réseau, car nous n'utilisons pas de serveur DNS.

Cependant, le domaine devrait répondre depuis d'autres systèmes si vous ajoutez manuellement le nom de domaine à chacun de leur fichier /etc/hosts. Sachez également que la résolution DNS d'un domaine ajouté au fichier /etc/hosts ne fonctionnera pas via les commandes host, nslookup ou dig.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Étape 2 : Installer le serveur de messagerie Postfix sur Debian

7. L'élément logiciel le plus important requis pour le bon fonctionnement d'un serveur de messagerie est l'agent MTA. Le MTA est un logiciel construit dans une architecture serveur-client, qui est responsable du transfert de courrier entre les serveurs de messagerie.

Dans ce guide, nous utiliserons Postfix comme agent de transfert de courrier. Pour installer postfix dans Debian à partir des référentiels officiels, exécutez la commande suivante.

apt-get install postfix

8. Pendant le processus d'installation de Postfix, une série de questions vous sera posée. À la première invite, sélectionnez l'option Site Internet comme type général de configuration de Postfix et appuyez sur la touche [Entrée] pour continuer, puis ajoutez votre nom de domaine au nom de messagerie du système, comme illustré dans les captures d’écran suivantes.

Étape 3 : configurer le serveur de messagerie Postfix sur Debian

9. Ensuite, sauvegardez le fichier de configuration principal de Postfix et configurez Postfix pour votre domaine à l'aide des commandes suivantes.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Configurez maintenant la configuration de Postfix dans le fichier main.cf comme indiqué.

See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Remplacez les variables myhostname, mydomain et mynetworks pour qu'elles correspondent à vos propres configurations.

Vous pouvez exécuter la commande postconf -n afin de vider le fichier de configuration principal de Postfix et vérifier les éventuelles erreurs, comme indiqué dans la capture d'écran ci-dessous.

postconf -n

10. Une fois toutes les configurations en place, redémarrez le démon Postfix pour appliquer les modifications et vérifiez si le service est en cours d'exécution en inspectant si le service maître de Postfix est lié au port 25 en exécutant netstat. commande.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Étape 3 : tester le serveur de messagerie Postfix sur Debian

11. Afin de tester si postfix peut gérer le transfert de courrier, installez d'abord le package mailutils en exécutant la commande suivante.

apt-get install mailutils

12. Ensuite, à l'aide de l'utilitaire de ligne de commande mail, envoyez un courrier au compte racine et vérifiez si le courrier a été transmis avec succès en exécutant la commande ci-dessous afin de vérifier la file d'attente des courriers et de répertorier le contenu du compte racine. répertoire personnel Maildir.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Vous pouvez également vérifier de quelle manière le courrier a été traité par le service Postfix en inspectant le contenu du fichier journal de courrier en exécutant la commande suivante.

tailf /var/log/mail.log

Étape 4 : Installer et configurer Dovecot IMAP sur Debian

14. L'agent de distribution du courrier que nous utiliserons dans ce guide pour distribuer les messages électroniques dans les boîtes aux lettres d'un destinataire local est Dovecot IMAP. IMAP est un protocole qui s'exécute sur les ports 143 et 993 (SSL), qui se charge de lire, supprimer ou déplacer des e-mails sur plusieurs clients de messagerie.

Le protocole IMAP utilise également la synchronisation afin de garantir qu'une copie de chaque message est enregistrée sur le serveur et permet aux utilisateurs de créer plusieurs répertoires sur le serveur et de déplacer les courriers vers ces répertoires afin de trier les e-mails.

Ce n'est pas le cas du protocole POP3. Le protocole POP3 ne permettra pas aux utilisateurs de créer plusieurs répertoires sur le serveur pour trier votre courrier. Vous disposez uniquement du dossier de la boîte de réception pour gérer le courrier.

Pour installer le serveur principal Dovecot et le package Dovecot IMAP sur Debian, exécutez la commande suivante.

apt install dovecot-core dovecot-imapd

15. Une fois Dovecot installé sur votre système, ouvrez les fichiers Dovecot ci-dessous pour les modifier et apportez les modifications suivantes. Tout d’abord, ouvrez le fichier /etc/dovecot/dovecot.conf, recherchez et décommentez la ligne suivante :

listen = *, ::

16. Ensuite, ouvrez /etc/dovecot/conf.d/10-auth.conf pour modifier, localisez et modifiez les lignes ci-dessous pour qu'elles ressemblent à l'extrait ci-dessous.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Ouvrez le fichier /etc/dovecot/conf.d/10-mail.conf et ajoutez la ligne suivante pour utiliser l'emplacement Maildir au lieu de Format Mbox pour stocker les emails.

mail_location = maildir:~/Maildir

18. Le dernier fichier à modifier est /etc/dovecot/conf.d/10-master.conf. Recherchez ici le bloc Postfix smtp-auth et apportez la modification suivante :

Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Après avoir effectué toutes les modifications ci-dessus, redémarrez le démon Dovecot pour refléter les modifications, vérifiez son état et vérifiez si Dovecot est lié au port 143., en exécutant les commandes ci-dessous.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Testez si le serveur de messagerie fonctionne correctement en ajoutant un nouveau compte utilisateur au système et utilisez la commande telnet ou netcat pour vous connecter au Serveur SMTP et envoyez un nouveau courrier au nouvel utilisateur ajouté, comme illustré dans les extraits ci-dessous.

adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Vérifiez si le courrier est arrivé dans la boîte aux lettres du nouvel utilisateur en répertoriant le contenu du répertoire personnel de l'utilisateur, comme indiqué dans la capture d'écran ci-dessous.

ls /home/test_mail/Maildir/new/

22. Vous pouvez également vous connecter à la boîte aux lettres de l'utilisateur à partir de la ligne de commande via le protocole IMAP, comme indiqué dans l'extrait ci-dessous. Le nouveau courrier doit être répertorié dans la boîte de réception de l'utilisateur.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Étape 5 : Installer et configurer le Webmail dans Debian

23. Les utilisateurs géreront leurs e-mails via le client Rainloop Webmail. Avant d'installer l'agent utilisateur de messagerie Rainloop, installez d'abord le serveur Apache HTTP et les modules PHP suivants requis par Rainloop, en exécutant la commande suivante.

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Une fois le serveur Web Apache installé, remplacez le chemin du répertoire par le répertoire /var/www/html/, supprimez le fichier index.html et exécutez la commande suivante afin d'installer Rainloop Webmail.

cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Une fois le client Rainloop Webmail installé dans le système, accédez à l'adresse IP de votre domaine et connectez-vous à l'interface Web d'administration Rainloop avec les informations d'identification par défaut suivantes :

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Accédez au menu Domaines, cliquez sur le bouton Ajouter un domaine et ajoutez les paramètres de votre nom de domaine comme indiqué dans la capture d'écran ci-dessous.

27. Une fois que vous avez terminé d'ajouter les paramètres de votre domaine, déconnectez-vous de l'interface d'administration de Ranloop et pointez le navigateur vers votre adresse IP afin de vous connecter au client de messagerie Web avec un compte de messagerie.

Une fois que vous vous êtes connecté avec succès à la messagerie Web Rainloop, vous devriez voir l'e-mail envoyé précédemment depuis la ligne de commande dans votre dossier Boîte de réception.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Pour ajouter un nouvel utilisateur, émettez la commande useradd avec l'indicateur -m afin de créer le répertoire personnel de l'utilisateur. Mais assurez-vous d’abord de configurer la variable de chemin Maildir pour chaque utilisateur avec la commande suivante.

echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Si vous souhaitez rediriger tous les e-mails de la racine vers un compte de messagerie local spécifique à partir du système, exécutez les commandes ci-dessous. Tous les e-mails redirigés ou destinés au compte root seront transférés à votre utilisateur de messagerie comme indiqué dans l'image ci-dessous.

echo "root: test_mail" >> /etc/aliases
newaliases

C'est tout! Vous avez installé et configuré avec succès un serveur de messagerie dans vos locaux afin que les utilisateurs locaux puissent communiquer par e-mail. Cependant, ce type de configuration de messagerie n’est en aucun cas sécurisé et il est conseillé de le déployer uniquement pour de petites configurations dans des systèmes et des réseaux sous votre contrôle total.