Skip to content

Sécurité Mail

Gabrielle Cruz edited this page Aug 22, 2023 · 5 revisions

Identification des biens à proteger

Une fois déployé, nous devons protéger les éléments suivants de notre service mail:

  • L'intégrité et la disponibilité du service mail
  • Les comptes des utilisateurs
  • Les mails des utilisateurs dans leurs boîtes mails
  • La confidentialité du contenu des mails

Identification des menaces et risques

Notre service mail sera sujêt de différents menaces, notamment:

  • SPAM
    • Envoi des mails non-sollicités, qui peut surcharger les serveurs et les boîtes mails, et une source possible de phishing.
  • Phishing
    • Envoi d'un mail malvoyant ciblé aux utilisateurs pour récuperer leurs informations personnelles (e.g. nom, mot de passe, etc.); pourraît sembler un mail de confiance, mais aussi consiste l'envoi d'un lien cliquable malveillant ou des pièces jointes frauduleuses.
  • Spoofing
    • Une attaque où le pirate se passe pour quelqu'un d'autre en usurpant l'adresse email d'autres users.
  • DDoS
    • La perte de disponibilité de service mail à cause de la surcharge des requêtes et réponses - dans ce cas, une trop grosse quantité de mail
  • Brute Force
    • L'attaque par le recupération de mot de passe correspondant de l'adresse mail d'un user en testant tous les combinaisons possibles avec un logiciel.
  • Man in the middle
    • Positionnement entre deux communications où le pirate récupère tous les paquets échangés pour récolter tous les informations sans être détecté.

Contre-mésures des risques identifiés

  • Fail2Ban
    • outil qui bloque les utilisateurs après un certain nombre de tentatives ratés lors de la connexion, par bannir son adresse IP si le nombre de tentatives autorisées est atteint
  • SpamAssassin
    • logiciel qui supprime le spam et filtre les email entrants qui sont analysées d'être suspectes
  • SPF, DMARC, et DKIM
    • SPF (Sender Policy Framework)
      • un mécanisme qui permet les autres domaines de vérifier si un email provient bien de notre domaine
    • DKIM (DomainKeys Identified Mail)
      • un mécanisme qui permet la verification d'un email provenant de notre domaine en intégrant une signature électronique à chaque message sortant
    • DMARC (Domain-Based Mail Authentication Reporting and Conformance)
      • un mécanisme complémentaire de SPF et DKIM qui signale le reste d'Internet la politique de validation des emails d'une domaine
  • Chiffrement des emails
    • TLS est utilisé pour le chiffrement du SMTP, POP, et IMAP entre serveurs
    • S/MIME est un standard pour l'encryption à clé des données des messages emails
  • Protection des ports du serveur

Mise en place de contre-mesures

Fail2Ban

Pour éviter la surcharge de requêtes sur notre serveur mail, nous allons installer Fail2Ban avec cette commande: sudo apt-get install fail2ban.

La configuration du fichier /etc/fail2ban/jail.local:

[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps
filter = dovecot
logpath = /var/log/dovecot.log
maxretry  = 5

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/postfix.log
maxretry  = 5

SpamAssassin

Pour protéger le système mail contre le spam, nous allons installer SpamAssassin: sudo apt-get install spamassassin spamc

Le fichier /etc/default/spamassassin en-dessous, décrit à l'aide de ChatGPT, montre le configuration de base que nous pouvons utiliser:

# Change to one to enable spamd
ENABLED=1

SAHOME=\"/var/log/spamassassin/\"

# Options
# See man spamd for possible options. The -d option is automatically added.
# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.
OPTIONS=\"--create-prefs --max-children 5 --helper-home-dir --username spamd \\
-H $ {SAHOME} -s $ {SAHOME}spamd.log\"

Il faut ensuite créer un user et group pour le service spamd:

# groupadd spamd
# useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
# mkdir /var/log/spamassassin
# chown spamd:spamd /var/log/spamassassin

Après, l'option CRON dans le fichier /etc/default/spamassassin doit être changé pour la mise au jour automatique du service:

CRON=1

Pour lancer le service: sudo service spamassassin start

Pour configurer SpamAssassin comme un filtre pour Postfix, il faut ajouter la ligne suivante dans le file etc/postfix/master.cf:

spamassassin unix -     n       n       -       -       pipe
        user=spamd argv=/usr/bin/spamc -f -e  
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

et de relancer le service postfix pour appliquer les changements.

SPF

Pour SPF, il faut simplement rajouter dans notre fichier de zone un champ TXT qui précise les adresses autorisées à émettre un mail de notre domaine:

@       IN      TXT      "v=spf1 ip4:172.17.0.4 ip4:172.17.0.1 ip4:51.91.248.16 -all"

Dans ce cas, nous n'autorisons que les containers et notre VPS à envoyer des mails aux noms du domaine.

DMARC

Pour DMARC, il est similaire au SPF où nous devons mettre un champ TXT, mais c'est pour bien préciser les actions à faire en cas de problème de validation des mails.

_dmarc  IN      TXT     "v=DMARC1; p=reject; pct=100; rua=mailto:thomas@mmes-3.ephec-ti.be"
  • v=DMARC1: la version de DMARC à utiliser; ici, la version 1
  • p: les instructions pour les mails problématiques, dont il y a plusieurs options
    • reject: le rejet du mail
    • quarantine: mise en quarantine du mail
    • none: aucune mesure n'est prise en compte
  • pct: le pourcentage de filtrage des mails entrants
  • rua: le recipient du rapport d'erreur

DKIM

Pour installer DKIM, nous allons utiliser cette commande: sudo apt-get install opendkim.

Nous allons modifier le fichier de configuration d'OpenDKIM /etc/opendkim.conf en indiquant/désactivant les commentaires des lignes suivantes:

Mode sv
Keyfile
KeyTable
SigningTable
ExternalIgnoreList
InternalHosts

Domain mmes-3.ephec-ti.be
RequireSafeKeys False

Nous allons procéder à la configuration du fichier SigningTable /etc/opendkim/SigningTable en ajoutant la ligne suivante à la fin du fichier:

*mmes-3.ephec-ti.be default._domainkey. mmes-3.ephec-ti.be

Ensuite, nous allons procéder à la configuration du fichier KeyTable /etc/opendkim/KeyTable en ajoutant la ligne suivante dans le fichier. Ceci indique l'emplacement de la clé privée DKIM:

default._domainkey. mmes-3.ephec-ti.be mmes-3.ephec-ti.be:default:/etc/opendkim/keys/ mmes-3.ephec-ti.be/default.private

Ensuite, nous ouvrons le fichier de configuration TrustedHosts et nous ajoutons la ligne *.mmes-3.ephec-ti.be pour autoriser toutes les adresses email de notre domaine.

Pour générer les clés publiques et privées que nous allons utiliser dans OpenDKIM:

sudo mkdir /etc/opendkim/keys/ mmes-3.ephec-ti.be
sudo opendkim-genkey -b 1024 -d mmes-3.ephec-ti.be -D /etc/opendkim/keys/ mmes-3.ephec-ti.be -s default -v

Une fois les clés générées, il est nécessaire que OpenDKIM soit leurs propriétaires pour pouvoir les utiliser:

chown opendkim:opendkim /etc/opendkim/keys -R

La dernière étape consiste à connecter Postfix à OpenDKIM en passant vers la fichier de configuration de Postfix /etc/postfix/main.cf et ajouter ces lignes:

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Finalement, pour appliquer les changements:

sudo service opendkim restart
sudo service postfix restart

Bibliothéque

  1. Stephane. (2023, 26 juillet). Statistiques sur les spams et le phishing, les virus et ransomwares et les publicités. Altospam. https://www.altospam.com/actualites/statistiques-sur-les-spams-et-le-phishing-les-virus-et-ransomwares-et-les-publicites/#:~:text=Le%20taux%20moyen%20de%20mails,souvent%20en%20dessous%20de%200.5%25.
  2. https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=77109
  3. https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=77114
  4. Contributeurs aux projets Wikimedia. (2023). SpamAssassin. fr.wikipedia.org. https://fr.wikipedia.org/wiki/SpamAssassin
  5. Werder, E. (2023, 7 mai). Fail2Ban Email Notification - simple tool to alert you. edywerder.ch. https://edywerder.ch/fail2ban-email-notification/
  6. Kapgate, P. (2022). Mail Server configuration tutorial : How to use Postfix, Dovecot, MySQL, and SpamAssassin. CloudSigma. https://www.cloudsigma.com/mail-server-configuration-tutorial-how-to-use-postfix-dovecot-mysql-and-spamassassin/
  7. Moon, S. (2020, août 11). How to install Spamassassin with Postfix and Dovecot on Ubuntu/Debian Server - BinaryTides. BinaryTides. https://www.binarytides.com/install-spamassassin-with-postfix-dovecot/
  8. Wikipedia contributors. (2023). S/MIME. Wikipedia. https://en.wikipedia.org/wiki/S/MIME
  9. SSL Dragon. (2023, août 22). How to install an SSL certificate on Postfix - SSL Dragon. https://www.ssldragon.com/how-to/install-ssl-certificate/postfix/

Clone this wiki locally