# Ajout des comptes émail virtuels Nous allons ajouter maintenant des utilisateurs virtuels, comptes qui ne sont pas des utilisateurs, **users** de la machine. Ces utilisateurs n'ont pas de compte Unix sur la machine, pas de shell, pas de répertoire personnel: ils n'existent que pour les composants du serveur de messagerie. Ces comptes émail avec leurs caractéristiques peuvent être stockés de différentes manières. Il est possible d'utiliser des fichiers **plats** ou différentes bases de données comme **mysql**, **postgresql**, **sqlite** ou plus simplement encore **dbm**. Ceci se configure dans les fichier **/etc/postfix/main.cf**. Pour les systèmes de bases de données **sql**, il faudra fournir les données d'accès à la base de données dans des fichiers séparés. Les adresses émail ainsi que les mots de passe seront stockés dans une base de données. ![Notre base de données avec les utilisateurs virtuels](Images/dessin8.svg) Il est certainement possible d'ajouter la configuration des comptes mail virtuels à notre configuration actuelle. Après mûre réflexion, j'ai chois de procéder différemment: nous allons tester les différentes solutions de stockage à partir d'une installation propre de postfix/dovecot. Les solutions testées seront: *dbm*, *sqlite* et *postgresql* que nous avons déjà installée pour *gogs*. Les solutions à base de mysql sont très souvent déployées et sont donc documentées. Nous pourrons toujours rajouter cette dernière si le temps (et l'envie) le permet(tent). ### Mise à blanc de nos configurations Nous avons mis plusieurs serviecs en route pour configurer notre serveur de mails; voici la liste des services à arrêter: * postfix * dovecot * dkim * dmarc * spf ```shell root@atom:/home/ericadmin# service postfix stop root@atom:/home/ericadmin# service dovecot stop root@atom:/home/ericadmin# service opendkim stop root@atom:/home/ericadmin# service opendmarc stop root@atom:/home/ericadmin# service openspf stop Failed to stop openspf.service: Unit openspf.service not loaded. root@atom:/home/ericadmin# ``` Vérification des ports: ```shell root@atom:/home/ericadmin# netstat -tlpn Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 388/apache2 tcp 0 0 192.168.111.160:53 0.0.0.0:* LISTEN 460/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 460/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 523/sshd tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 544/postgres tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 460/named tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 388/apache2 tcp6 0 0 :::53 :::* LISTEN 460/named tcp6 0 0 :::22 :::* LISTEN 523/sshd tcp6 0 0 :::3000 :::* LISTEN 15740/gogs tcp6 0 0 ::1:5432 :::* LISTEN 544/postgres tcp6 0 0 ::1:953 :::* LISTEN 460/named root@atom:/home/ericadmin# ``` Voilà, notre serveur de messagerie est arrêté ainsi que tous les services accessoires. ### Sauvegarde de l'ancienne configuration Nous allons maintenant sauvegarder les répertoires contenant notre configuration actuelle. Nous laisserons les répertoires *opendmarc*, *opendkim*, *openspf* tels qu'ils sont; nous configurerons notre serveur d'email sans les utiliser. Il vous sera toujours possible de vous réferer à leur installation/configuration dans la partie du tutoriel correspondante. ```shell root@atom:/home/ericadmin# cd /etc root@atom:/etc# mv postfix postfix.user root@atom:/etc# mv dovecot/ dovecot.user root@atom:/etc# cd /var/lib root@atom:/var/lib# mv dovecot dovecot.user ``` ### Suppression des paquets postfix et dovecot Nous allons maintenant procéder à la suppression des paquets dovecot et postfix: Installation du paquet exim4 qui de facto va supprimer tout postfix. On va lister les paquets dovecot et les supprimer manuellement. ```shell root@atom:/etc# apt install exim4-daemon-light etc .... root@atom:/etc# dpkg -l | grep dovecot ii dovecot-core 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - core files ii dovecot-imapd 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - IMAP daemon ii dovecot-sqlite 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - SQLite support root@atom:/etc# dpkg --purge dovecot-core dovecot-imapd dovecot-sqlite (Lecture de la base de données... 40268 fichiers et répertoires déjà installés.) Suppression de dovecot-imapd (1:2.2.27-3+deb9u3) ... Suppression de dovecot-sqlite (1:2.2.27-3+deb9u3) ... Suppression de dovecot-core (1:2.2.27-3+deb9u3) ... Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ... root@atom:/etc# ``` Voilà, les paquets sont supprimés (on a aussi purgé les fichiers de configuration, ce qui permet l'installation de nouveaux fichiers; on va les réinstaller et avoir une copie propre des fichiers de configuration. Relancez votre serveur (éteindre puis rallumer ....) ```shell root@atom:/etc# apt install postfix postfix-pgsql postfix-sqlite root@atom:/etc# dpkg -l | grep postfix ii postfix 3.1.9-0+deb9u2 i386 High-performance mail transport agent ii postfix-pgsql 3.1.9-0+deb9u2 i386 PostgreSQL map support for Postfix rc postfix-policyd-spf-python 2.0.1-1 all Postfix policy server for SPF checking ri postfix-sqlite 3.1.9-0+deb9u2 i386 SQLite map support for Postfix root@atom:/etc# ``` Nous avons donc postfix d'installé avec les modules postgresql et sqlite. ```shell root@atom:/etc# apt install dovecot-core dovecot-sqlite dovecot-pgsql dovecot-imapd etc ... Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /lib/systemd/system/dovecot.service. Paramétrage de dovecot-pgsql (1:2.2.27-3+deb9u3) ... Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u9) ... Paramétrage de dovecot-imapd (1:2.2.27-3+deb9u3) ... etc ... Creating config file /etc/dovecot/conf.d/20-imap.conf with new version Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ... Paramétrage de dovecot-sqlite (1:2.2.27-3+deb9u3) ... Traitement des actions différées (« triggers ») pour dovecot-core (1:2.2.27-3+deb9u3) ... root@atom:/etc# dpkg -l | grep dovecot ii dovecot-core 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - core files ii dovecot-imapd 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - IMAP daemon ii dovecot-pgsql 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - PostgreSQL support ii dovecot-sqlite 1:2.2.27-3+deb9u3 i386 secure POP3/IMAP server - SQLite support root@atom:/etc# ``` Voilà, dovecot est ré-installé avec le support de sqlite et postgresql. ### Premières configurations Vous pouvez reprendre les étapes de configuration de postfix comme décrites dans la partie correspondante du tutoriel (Installation d'un serveur de courrier basique). Reprenez les tests pour pour assurer de son bon fonctionnement. * Test d'envoi d'un compte utilisateur à un autre - root -> ericadmin - ericadmin -> root * Test d'envoi de messages à partir de ce serveur sur mon serveur principal * Test d'envoi de messages à partir d'un poste extérieur * Test de l'envoi à root pour vérifier la redirection Une fois ces tests effectués et réussis, nous pouvons passer à l'étape suivante.