mise en place d’une solution de messagerie securisee … · démarrer ensuite amavis. faire...
TRANSCRIPT
SARIE Yohan BTS SIO
MISE EN PLACE D’UNE SOLUTION DE
MESSAGERIE SECURISEE ET LIBRE
MISE EN PLACE D’UNE SOLUTION DE
MESSAGERIE SECURISEE ET LIBRE
POSTFIX / FETCHMAIL / AMAVIS / CLAMAV / SPAMASSASSIN
Epreuve E4 : projet n°1
Sommaire :
I- Présentation
a. Objectifs
b. Contexte
II- Mise en œuvre de la solution
a. Installation et configuration Postfix :
b. Configuration des réceptions de mails sur le
serveur :
c. Configuration d’un serveur DNS :
d. Configuration d’un client de messagerie :
Thunderbird
i. Configuration de Fetchmail :
ii. Configuration de Postfix et du Sasl :
1. Postfix
2. SASL
iii. Correspondance Domaine /Relais :
e. Sécurisation du serveur de mails :
i. Installation et Configuration d’Amavis :
ii. Installation d’un anti-virus Clamav :
iii. Installation et configuration d’un
antispam SpamAssassin :
1- Présentation : a. Objectifs :
- Mettre en place un serveur de messagerie à moindre coût.
- Sécuriser l’envoi et la réception de mails en les centralisant sur un serveur.
- Sauvegarder les mails.
- Analyser les mails avant de les distribuer.
b. Contexte :
Une entreprise souhaite mettre en place un serveur de messagerie interne pour pouvoir
conserver les mails et de pouvoir les analyser et les sécuriser. Nous utiliserons un serveur
Linux avec Postfix et Fetchmail pour des raisons financières. Le serveur aura les
fonctionnalités suivantes : Anti-spam, Antivirus, récupération des mails hébergés en externe.
2- Mise en œuvre de la solution : Remarque :
Le service Mail et le serveur DNS seront installés sur un poste LINUX sous Debian et seront
configurés en ligne de commande sous l’utilisateur Root.
Requis :
Pour le serveur Mails :
- Postfix : #apt-get install postfix
- Fetchmail : #apt-get install fetchmail
- Courrier-pop : #apt-get install courier-pop
Pour le client:
- Thunderbird : à télécharger sur internet.
a. Installation et configuration Postfix : Toutes les configurations de Postfix se feront dans le fichier qui se nomme main.cf. Dans un
premier temps nous allons configurer Postfix pour une utilisation en local seulement.
Installer Postfix : apt –get install postfix
Suivre les étapes d’installation de Postfix :
Expliquons quelques points:
Myhostname : c’est le nom du serveur de courriel (hostname), par défaut
mail.domaine.net soit « YS-Debian »
Mydestination : ce sont les domaines de messageries pour lesquels le serveur est
capable de distribuer les mails, remplacez par votre nom de machine soit « YS-
Debian »
Myorigin : c’est le domaine par défaut utilisé pour les messages postés localement.
Mynetworks : les réseaux autorisés à communiquer avec le serveur de messagerie
Home_mailbox = Maildir/ : permet de recevoir les mails dans le dossier personnel des
utilisateurs sous un dossier Maildir
b. Configuration des réceptions de mails sur le serveur :
Nous allons au préalable créer un utilisateur nommé yoyo.
#Adduser yoyo
Test envoi d’un mail à l’utilisateur Isabelle.
#mail yoyo
Subjet : test yoyo
Appuyer sur Ctrl+D
Cc : appuyer sur entrée
On souhaite que le message arrive dans le dossier personnel d’isabelle et non dans /var/mail.
Retourner dans le Main.cf de Postfix et dé-commenter la ligne suivante :
#mailbox_command
Et ajouter celle-ci :
Home_mailbox=Maildir/
Refaire le test d’envoi de mail à Isabelle. On remarque que le dossier Maildir a bien été créé
dans le dossier personnel, le mail est dans ce dossier.
c. Configuration d’un serveur DNS :
Avant de configurer le serveur DNS, assurez-vous qu’il soit déjà installé et qu’il fonctionne,
que vous ayez bien un domaine DNS, ici c’est Ys.fr
La configuration du serveur DNS a été faite sur un serveur Windows 2008.
Pour une configuration sur Debian : Apt-get install bind9
Nous allons ensuite créer un fichier de zone qui sera db.yoh.local.
Il faut installer les services POP et SMTP.
Apt-get install courier-pop
Ouvrir le fichier de zone :
Exemple d’un fichier de zone :
Faire de même avec la résolution inverse : db.yoh.local.inv
Redémarrer le serveur DNS :
Pour vous assurer que tout fonctionne, sur le poste client, mettre en DNS préféré l’adresse
IP du serveur DNS (172.24.190.50) et de ping le smtp et le pop :
Ping smtp.ys.fr / ping pop.ys.fr
d. Configuration d’un client de messagerie : Thunderbird
i. Configuration de Fetchmail :
Une fois Thunderbird installé, on va configurer l’adresse mail de yoyo.
L’adresse mail est : [email protected]
Une fois que l’envoi de mail en local fonctionne, on va configurer Postfix et fetchmail pour
que Yoyo puissent avoir un compte pop sur OVH par exemple (fetchmail). On veut que yoyo
puisse récupérer des mails sur des comptes mails à l’extérieur, par exemple, un compte
google (@gmail.com).
Commençons par fetchmail, Nous avons créé un compte OVH qui est
[email protected]. Nous allons créer le fichier de configuration de fetchmail.
#gedit /etc/fetchmailrc
La dernière ligne :
Poll pop3.oasysconsulting.fr protocol POP3 user « [email protected] » there
with password « Esicad031 » is yoyo here
Cette configuration sert à fetchmail de récupérer des mails pour un seul utilisateur sur des
serveurs POP distants. Ici, il va lui demander de se connecter à oasysconsulting.fr en utilisant
le compte OVH : [email protected] comme mot de passe Esicad031
ii. Configuration de Postfix et du Sasl :
L’utilisateur yoyo souhaite aussi envoyer des mails sur des comptes Google.
1. Postfix :
Nous allons indiquer à Postfix d’utiliser comme relais smtp les serveurs de Google
(smtp.gmail.com). Le relayhost va effectuer les livraisons de courrier via ce relais smtp.
Retournons dans notre fichier de configuration de Postfix (main.cf) :
relayhost = [smtp.gmail.com] : 587
« 587 » : le port d’écoute pour communiquer avec les serveurs de Google.
2. SASL :
Ce service SASL (Simple Authentication and Security Layer). C’est un outil qui va utiliser le
protocole de sécurisation d’échange TLS (transport Layer Security) qui fonctionne en mode
client-serveur.
- Commençons par l’installation du package :
#apt-get install sasl2-bin
Le service ne s’active pas seul. L’authentification SASL est gérée par un daemon saslauthd
avec une base d’identifiants sasldb. Pour cela, éditer le fichier /etc/default/saslauthd et
modifier la ligne suivante en YES.
# should saslauthd run automatically on startup? (Default: no)
START=yes »
- Relancer le daemon saslauthd :
Il faut maintenant rajouter l’utilisateur Postfix dans le groupe SASL pour que postfix
interagisse avec le daemon de saslauthd :
#adduser postfix sasl
Modifier main.cf :
“smtp_sasl_auth_enable = yes” Active l'authentification SASL
“smtp_sasl_security_options = noanonymous » permet le contrôle des mots de passe
plusieurs options existent pour bloquer/ limiter les mécanismes de mots de passe
« smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd » liste des mots de passe
pour s'authentifier sur le serveur Google
« smtp_tls_CAfile= /etc/postfix/cacert.pem » « smtp_use_tls = yes » sert à activer le protocole TLS
« smtp_sender_dependent_authentication = yes » Autorise le relais des utilisateurs
authentifier
« relay_recipient_maps = » Indique les adresses du domaine (gmail.com)
« local_recipient_maps = » Indique celles du domaine local (ys.local)
Editer le fichier qui va contenir l’authentification au serveur smtp.gmail.com :
#nano /etc/postfix/sasl_passwd
Chemin qu’on a renseigné auparavant à la ligne smtp_sasl_password_maps = …
[Serveur smtp de Google] : port d’écoute exemple.com : password
Ensuite il faut donner les droits d’accès à ce fichier et formater la base SASL.
iii. Correspondance Domaine /Relais :
Il faut éditer le fichier de définition des correspondances Domaines/Relais dans
/etc/postfix/transport et ajouter ces lignes :
Une fois ce fichier modifié il faut indiquer à Postfix (dans le main.cf) où il va récupérer les
informations.
Redémarrer Postfix :
Test :
Nous allons tester la réception des mails hébergés sur le serveur externe vers la messagerie
e. Sécurisation du serveur de mails :
Nous voulons maintenant sécuriser ce serveur de mail, nous allons donc installer un anti-
virus un anti-spam et un outil d’analyse des mails.
i. Installation et Configuration d’Amavis :
#apt-get install amavisd-new
Il faut ensuite ensuite renseigner le nom FQDN du serveur, hostname.monDomaine, dans le
fichier de configuration d’amavis :
#nano /etc/amavis/conf.d/05-node-id
Modifier les deux lignes : Chomp et $Myhostname en ajoutant le nom FQDN du serveur soit,
YS-Debian.ys.fr
Démarrer ensuite Amavis.
Faire communiquer Amavis avec Postfix :
Deux façons sont possibles ici, soit modifier directement le fichier main.cf de Postfix ou bien
taper directement en ligne de commande :
#postconf –e content_filter=smtp-amavis :[127.0.0.1] :10024
#postconf –e receive_overrid_options=no_adresse_mappings
En tapant cela, les informations sont directement renseignées dans le fichier main.cf
La commande postconf –e permet d’intégrer directement les lignes de configuration dans le
fichier main.cf de postfix.
Editer et modifier le fichier master.cf de postfix tel quel :
Vous pouvez renseigner ces informations au début du fichier.
Redémarrer Postfix et Amavis :
Tests :
Afin de vérifier le bon fonctionnement d’Amavis nous allons envoyer un mail et regarder
dans les logs du serveur si Amavis filtre le contenu des mails.
Depuis le serveur :
Vérifier les logs :
Nous pouvons constater que le mail a bien été analysé, sécurisé et distribué.
ii. Installation d’un anti-virus Clamav :
Nous avons choisi comme antivirus CLAMAV. Sa principale qualité est qu’il permet de
scanner les mails reçus et envoyés avec un logiciel de messagerie classique. Son paquet
inclut un daemon et un scanner.
#apt-get install clamav
#apt-get install clamav-daemon
Faire mise à jour des signatures de virus :
#freshclam
La première mise à jour peut prendre un certain temps. Il est important de mettre à jour
régulièrement les bases de données des signatures de virus.
Ajouter l’utilisateur Clamav au groupe Amavis :
Pour qu’Amavis puisse utiliser Clamav, il faut ajouter l’utilisateur Clamav au groupe Amavis :
#gpasswd –a clamav amavis
La commande Gpasswd permet d’ajouter un utilisateur dans un groupe, le –a permet de
l’ajouter dans un nouveau groupe sans le supprimer de l’ancien.
Il faut également modifier le fichier /etc/amavis/conf.d/15-content_filter_mode
Editer ce fichier :
#nano /etc/amavis/conf.d/15-content_filter_mode
Dé commentez les deux lignes de la partie virus :
Sauvegarder le fichier et Redémarrer Clamav et Amavis :
Test :
Pour test l’antivirus, il existe un fichier de test anti-malware. Il simule la signature d’un virus
EICAR afin de déclencher la mise en quarantaine du message :
La Chaîne de caractère est la suivante :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Envoyer un mail avec le contenu ci-dessous dans l’objet du message :
Vérifier les logs :
Lorsqu’un virus est détecté, celui-ci est placé dans un répertoire de quarantaine
« virusmails » dont le chemin est : /var/lib/amavis/virusmails.
Ils sont triés par ordre alphabétique. Si nous regardons les logs on lit :
« Quarantine : 0/virus-0qxsAJ_AKlUG » Le virus se situe donc dans le dossier « 0 »
Clamav offre la possibilité de scanner le répertoire de quarantaine.
iii. Installation et configuration d’un
antispam SpamAssassin :
Cet anti spam repère puis éradique tout ce qui, dans le trafic de courriers électroniques, est
reconnu comme spam.
Le programme les teste et leur attribue un score. Si le score dépasse une certaine limite, le
mail est déclaré en tant que SPAM.
#apt-get install spamassassin
Lier Spamassassin à Amavis :
Pour permettre à Amavis d’utiliser Spamassassin, il faut dé commenter les deux lignes
suivantes dans le fichier 15-content_filter_mode :
Mise en place d’un tag de spam :
Spamassassin met de base tous les mails détectés en quarantaine, mais il se peut que ce soit
une erreur et que le message est important. On peut donc placer un tag dans l’entête du
spam « ***SPAM*** » et laisser passer le message.
Pour ajouter ces paramètres, il nous faut ajouter ces lignes dans le fichier « 50-user »
d’Amavis :
#nano /etc/amavis/conf.d/50-user
Enregistrer le fichier et redémarrer Amavis.
Tests :
Envoyer un mail avec : KJS*CAJDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-USE-
TEST-EMAIL*C.34X
Vérifier ensuite les logs :
Spam Assassin a bien détecté le mail comme étant un spam mais il l’a quand même transmis
comme désiré.
C’est ensuite à l’utilisateur de choisit de l’ouvrir s’il le juge de confiance.