Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Debian GNU/Linux
  3. Sécurisation de la messagerie
Extrait - Debian GNU/Linux Maîtrisez la sécurité des applications
Extraits du livre
Debian GNU/Linux Maîtrisez la sécurité des applications Revenir à la page d'achat du livre

Sécurisation de la messagerie

Les différentes fonctions

1. La messagerie électronique

Les entreprises s’appuient de plus en plus sur le service de messagerie. Quel administrateur n’a pas été confronté une fois dans sa vie de salarié (ou même d’administrateur, d’ailleurs) à un problème de boîtes de messagerie corrompue, ou pire, à un blocage total du service de messagerie ? Par ailleurs, à cause de la grande mobilité des utilisateurs et du niveau de ce service très élevé, les concepteurs de clients et de serveurs de messageries ont dû diviser ceux-ci en plusieurs fonctions. Dans la suite de cet exposé, nous étudierons tout particulièrement le service postfix et ses dépendances en essayant de balayer l’ensemble des fonctionnalités proposées par une messagerie d’entreprise.

À l’origine du projet postfix, il y avait l’outil universellement employé : sendmail. Mais celui-ci devenait trop lourd à administrer et surtout à maintenir. Le nouveau projet a ainsi vu le jour et permet une très grande souplesse d’utilisation et une grande facilité d’administration.

Avant de passer à la partie sécurisation, il faut bien comprendre comment fonctionne un service de messagerie. La distribution du courrier électronique transite via trois fonctions distinctes, selon l’emplacement dans la chaîne de distribution :

  • Le MTA (Mail Transfer Agent) : il s’agit du serveur assurant l’envoi et la réception des messages électroniques, au travers du réseau IP. Il gère directement les messages électroniques (aussi appelés mails), au sein du domaine de messagerie concerné. Un serveur MTA communique avec ses homologues via le protocole SMTP (Simple Mail Transfer Protocol). Parmi les services les plus connus, nous pouvons citer postfix, sendmail, exim.

  • Le MDA (Mail Delivery Agent) : comme son nom l’indique, cet agent permet de distribuer le courrier (une sorte de facteur électronique, en quelque sorte). Parmi les agents les plus connus, citons dovecot, cyrus ou procmail.

  • Le MUA (Mail User Agent) : il s’agit du client de messagerie à proprement parler, tel que l’utilisateur final l’emploie pour lire ses messages....

Configuration avancée

1. Le mécanisme anti-relayage

Afin d’éviter que le serveur SMTP de messagerie ne puisse être utilisé comme relais de messagerie, il faut le configurer en initialisant l’option smtp_recipient_restriction, au niveau du fichier de configuration /etc/postfix/main.cf. Cette option s’intéresse tout particulièrement au champ "RCPT TO", constituant tout message correctement formé :


...  
smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains
 

Ainsi, nous limitons le périmètre à des valeurs précédemment définies. La valeur permit_mynetworks, autorise le daemon postfix à relayer les messages, en provenance d’adresses IP contenues dans le paramètre $mynetworks. La seconde valeur, quant à elle, permet soit de relayer les messages venant d’adresses IP contenues dans la variable $relay_domains, soit à destination d’adresses IP, elles aussi contenues dans $relay_domains. Lorsque la destination est inet_interfaces, cela favorisera alors les adresses IP contenues dans la variable $mydestination ou $virtual_maps. Il existe également d’autres valeurs, comme par exemple reject_unknown_recipient_domain afin de rejeter les messages, lorsque le domaine de messagerie du destinataire n’est pas connu (ou non résolu). Nous détaillerons dans la section Passerelle complète anti-spam sécurisée - Description du modèle et installation de ce chapitre les aspects de filtrage.

2. Daemon chrooté

Nous pouvons, comme nous avons pu le pratiquer avec des serveurs de transfert de fichiers FTP, emprisonner le daemon postfix. Cette stratégie a pour but de leurrer un programme pour que les utilisateurs malintentionnés ne puissent s’aventurer dans la véritable arborescence, où se trouve la racine réelle du service. Ceci ne rend évidemment pas le serveur postfix inaccessible, mais limite tout de même les possibilités d’effraction ou d’intrusion. Sous une distribution Debian, cette protection est activée par défaut. Quoi qu’il en soit, le répertoire de chroot se situe dans le répertoire /var/spool/postfix et son utilisation, nécessite quelques modifications de configuration, notamment au niveau de l’authentification...

Intégration en base de données

1. Initialisation

Le fait de mettre en œuvre une plateforme de messagerie est une bonne chose. Mais faut-il encore protéger au maximum les messages, les boîtes aux lettres et l’intégrité des informations qui s’y trouvent. Afin de les protéger au mieux contre des actes malveillants pourquoi ne pas les intégrer directement au sein d’une base de données telle que MariaDB ? Étant donné que postfix supporte aussi les bases de données MySQL/MariaDB, et que nous avons effectué son installation avec le package postfix-mysql, intégrant l’extension pour l’agent de messagerie, nous allons pouvoir générer une base de stockage pour les boîtes de messagerie, les domaines ainsi que les alias du serveur maître de messagerie.

Dans l’ouvrage Debian GNU/Linux - Maîtrisez la sécurité des infrastructures au chapitre Services système et administration, section Outils d’administration, nous avons décrit un outil d’administration : phpMyAdmin, permettant justement de fournir une interface graphique aux administrateurs souhaitant pouvoir facilement administrer leurs applications et leurs serveurs AMP en base de données. Nous pourrions effectivement tout faire manuellement, mais il est quand même plus simple d’utiliser ce genre d’outil. Celui-ci permet de piloter les instances Web, Wiki et autres plateformes adossées à un serveur Apache/MariaDB ou MySQL/PHP, utilisant le langage PHP, pour présenter les pages, avec leur contenu dynamique.

Nous pouvons alors installer le logiciel PhpMyAdmin, afin de nous faciliter la tâche et pouvoir visualiser plus rapidement les différents éléments en base de données, en exécutant la commande suivante :


# apt-get install phpmyadmin -y
 

Il ne reste plus alors qu’à configurer le nouveau programme en vue de son utilisation. Il faut, pour cela, modifier le fichier de configuration /etc/httpd/conf.d/phpMyAdmin.conf et ajouter la ligne ci-dessous, pour autoriser les machines du LAN à accéder à l’interface PhpMyAdmin :


...  
Allow from 192.168.0.0/24
 

Nous pouvons alors accéder, depuis un navigateur d’un poste de travail, à l’interface graphique...

Sécurisation des clients de messagerie

La dernière brique d’une plateforme de messagerie concerne bien évidemment la partie cliente : ce que nous avons appelé, en introduction de ce chapitre, les Mail User Agent ou MUA. Parmi les nombreux outils du marché, nous favoriserons, autant que faire se peut, Thunderbird, qui présente l’avantage d’être à la fois multiplateforme (Unix/Linux, Microsoft Windows, macOS), mais également d’être modulaire. Or, parmi les plugins à ajouter, on trouve Enigmail.

1. Installation d’Enigmail

Comme beaucoup d’autres clients adossés à l’agent principal postfix, Thunderbird est un client très répandu dans le monde de la messagerie. Comme tous les clients, l’utilisateur a la possibilité de le sécuriser, en installant un plugin (il s’agit d’un module supplémentaire), sur l’outil de messagerie : Enigmail. Cet utilitaire va permettre d’utiliser GPG par la suite, et de chiffrer les messages.

Pour l’installer, il faut ouvrir le menu en haut à droite de la fenêtre principale du client de messagerie et sélectionner l’option Modules complémentaires :

images/C17EP06.png

Parmi la liste de modules proposés, il suffit de sélectionner celui appelé Enigmail et de cliquer sur le bouton d’installation :

images/C17EP07.png

À la fin de cette installation, vous êtes invité à redémarrer l’outil de messagerie. À sa réouverture, l’assistant de configuration d’OpenGPG s’ouvrira et vous pourrez alors paramétrer l’utilitaire de chiffrement.

2. Configuration d’Enigmail

Au redémarrage de Thunderbird, l’assistant de configuration de l’outil de chiffrement OpenPGP démarre automatiquement. Il est préférable de le paramétrer maintenant de façon assistée, plutôt que plus tard, manuellement. Vous pouvez donc valider le choix par défaut et passer à l’écran suivant :

images/C17EP08.png

Comme le montre la capture ci-dessous, GnuPG est une dépendance de OpenPGP. Il est donc nécessaire de laisser l’assistant poursuivre son installation en cliquant sur le bouton Installer :

images/C17EP09.png

Le programme démarre le téléchargement de l’outil...

Passerelle complète anti-spam sécurisée

1. Description du modèle et installation

Une passerelle de messagerie anti-spam se compose principalement du MTA postfix, qui servira à gérer l’interfaçage de la messagerie avec le système et le réseau. À cela s’ajoutent d’autres logiciels selon les tâches supplémentaires à intégrer. Selon le degré de sensibilisation à la sécurité, nous pouvons représenter les différentes couches de cette passerelle anti-spam avec le diagramme suivant :

images/I17EP03.png

Sur une distribution Debian (qu’il s’agisse de Debian Jessie ou Debian Stretch), il faut prévoir un système de fichiers principal d’au moins 30 Gio avec un répertoire /var d’une taille d’au moins 20 Gio séparé de la racine. Cette partition devra contenir les traces, les files d’attente, les fichiers mis en quarantaine et/ou les signatures virales (dans le cas de MailScanner).

Il faut prévoir un mécanisme d’extension facile à réaliser. Pour cela, on s’appuiera sur LVM. On peut éventuellement envisager de créer un miroir RAID.

Une fois la plateforme système initialisée, il ne reste plus qu’à installer les utilitaires mentionnés sur le schéma précédent ainsi que le serveur SSH. Comme il s’agit uniquement d’une passerelle de messagerie, nous installerons uniquement les packages propres à la gestion des mails et au filtrage, et rien d’autre pouvant être consommateur de disque et de ressources nécessaires aux services à initialiser. Il faut alors se connecter au compte super-utilisateur, afin de mettre à jour le système et le cache :


# apt-get update  
# apt-get upgrade  
# apt-get dist-upgrade
 

Nous pouvons alors passer à l’installation de MailScanner, le logiciel permettant de vérifier la conformité des messages et surtout la non-présence de virus dans leur contenu. Il faut se connecter à l’adresse https://www.mailscanner.info/downloads/ et sélectionner la distribution Debian stable.

images/C17EP28.png

Une fois le logiciel téléchargé, vous pouvez décompresser le fichier tarball à l’aide de la commande...