MAIL : 5ème Etape - Quotas, Sécurisation

DEBIANLINUXMAILDROPQUOTASSECURITE

OPTIMISATION ET SECURISATION DU SERVEUR DE MAIL

MAILDROP - Gestion des Quotas

Nous les avons paramétrés à l’installation de maildrop (Create tables SQL avec colonnes).

Nous allons maintenant utiliser ces tables et créer un message d’alerte générique pour un dépassement de quotas.

cd /etc/

wget http://www.starbridge.org/spip/doc/Procmail/usr/local/courier/etc/quotawarnmsg

chown -R vmail : /etc/quotawarnmsg

chmod 644 /etc/quotawarnmsg

Il faut personnaliser les messages de quotawarnmsg en éditant le fichier.

C’est tout ce que nous avons à faire en plus, d’une manière générale, pour Maildrop, Postfix et Courrier-IMAP.

Pour les petits réglages de quota par utilisateur et autres, pensez à Postfix admin.

Mais, le serveur ne filtre pas encore les virus ou les spams...

Installation d’un Antispam / Antivirus

Un morceau de choix, accrochons-nous !

La technicité de la majorité des spams de nos jours ne respectent pas les règles d’envoi de mail conventionnels et utilisent un HELO incorrect, et souvent un MAILFROM d’un domaine inconnu.

Pour plus d’informations veuillez lire les RFC.

SECURITE ANTISPAM : Blacklist Postfix

Renforçons d’abord Postfix avec des règles pour qu’il soit beaucoup plus restrictif.

Pour cela utilisons les smtpd_recipient_restrictions (Nous ne détaillerons pas les actions précises de chaque règle car la documentation de Postfix est déja très précise sur ce sujet) mais éditons le fichier /etc/postfix/main.cf et remplaçons tout le smtpd_recipient_restrictions par celui ci :

nano /etc/posfix/main.cf
ou winscp v4 ou ultérieure (c’est mieux !)

Dans ce fichier, nous avons paramétré des RBL (Blacklists) qui vont filtrer efficacement les mails.

Il existe énormément de RBL qui peuvent rendre le filtrage encore plus restrictif, mais nous nous limiterons qu’aux (RBL) officielles et professionnelles. L’ajout sauvage de blacklist non-officielles peut amener à supprimer des mails sains.

Il vaut mieux gérer les RBL supplémentaires au travers d’une Policy Service de Postfix qui permettra plus de souplesse. (voir doc Postfix).

Spam ASSASSIN, dont nous allons décrire l’installation ultérieurement, gère lui aussi des RBL propres.

Ne fermez pas main.cf, il y a encore des modifications...!

SECURITE ANTISPAM : Vérification des mails

Il nous faut limiter les possibilités de forging des expéditeurs en vérifiant les MAIL FROM (adresses expéditrices).

Nous sommes toujours dans le fichier main.cf et nous nous plaçons au dessus du bloc smtpd_recipient_restrictions = , pour insérer :

Cela nous permettra d’empêcher les utilisateurs de mettre une autre adresse dans le MAIL FROM et seront ainsi obliger de passer par le domaine @mondomaine.com.(toutes les adresses d’expéditeurs devront appartenir au(x) domaine(s)).

Quittez et sauvegardez le main.cf. Mais nous y reviendrons plus tard..

Il s’agit ensuite de dire au serveur de vérifier que les mails envoyés appartiennent bien au réseau :

  • Il faut maintenant créer les fichiers suivants :
    • /etc/postfix/internal_networks

en faisant ainsi :

cd /etc/postfix/

wget http://www.starbridge.org/spip/doc/Procmail/postfix/internal_networks

Editons le fichier et spécifions y notre réseau local et son adresse publique :

nano /etc/postfix/internal_networks

Le contenu du fichier doit ressembler à celà, au final :

Ces lignes permettent de spécifier les plages IP de votre réseau, ainsi que l’ip publique (exemple) qui seront autorisées à envoyer un mail avec votre (vos) domaines dans le MAIL FROM.

Cela permet également de préciser les IP autorisées à envoyer un mail en se présentant avec notre HELO.

Nous bloquerons ainsi les clients SMTP extérieurs qui pourraient se présenter avec un HELO qui est le notre (HAM) (spoofing).

Il faut, dans cette même étape, créer les fichiers qui vont appeler les tables SQL :

cd /etc/postfix/

wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-hello.cf

wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-
sender.cf

wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-client.cf

wget http://www.starbridge.org/spip/doc/Procmail/postfix/our_domain_as_sender

wget http://www.starbridge.org/spip/doc/Procmail/postfix/not_our_domain_as_sender

Pour les deux commandes suivantes, attention à remplacer le mot de passe avant de valider..

sed -i ’s/toto/Mot_De_Passe_Postfix/g’ mysql-hello.cf mysql-sender.cf mysql-client.cf

sed -i ’s/starbridge.org/MonDomaine.com/g’ our_domain_as_sender not_our_domain_as_sender

Pour info voici les fonctions de ces derniers téléchargements :

  • /etc/postfix/mysql-hello.cf : Cette table SQL listera les HELO de nos domaines email.
  • /etc/postfix/mysql-sender.cf : Il sert à blacklister ou whitelister les MAILFROM, c’est à dire les expéditeurs, selon leur adresse email externe ou limitées au domaine précisé.
  • /etc/postfix/mysql-client.cf : Il sert à blacklister ou whitelister les clients par leur connection (ip/domaine).
  • /etc/postfix/our_domain_as_sender : Il sert à spécifier les domaines autorisés comme MAIL FROM pour les users internes authentifiés par leur IP (les clients en local peuvent envoyer un email local sans s’authentifier dans notre configuration)
  • /etc/postfix/not_our_domain_as_sender : Il sert à spécifier les domaines refusés comme MAIL FROM pour les users externes non authentifiés (c’est à dire une personne extérieure qui nous envoit un mail). Si cette personne spécifie un de nos domaines en MAIL FROM, le message sera refusé (antispoofing)

Nous" postmappons" (déclarons à Postfix d’utiliser..) les fichiers suivants que nous venons de créer :

postmap /etc/postfix/internal_networks

postmap /etc/postfix/our_domain_as_sender

postmap /etc/postfix/not_our_domain_as_sender

Nous sécurisons les fichiers de lookup :

chown -R root:postfix /etc/postfix/mysql-*

chmod 640 /etc/postfix/mysql-*

Créons les tables (pour importer les fichiers ci-dessus) :

cd 

wget http://www.starbridge.org/spip/doc/Procmail/postfix/postfix_access.sql

Puis la commande sed (avec changement de domaine manuel)

sed -i ’s/starbridge.org/MonDomaine.com/g’ postfix_access.sql

mysql -u root -p < postfix_access.sql

... avec le mot de passe de root de mysql....

Et enfin, relançons postfix :

postfix reload


Vérification de la validité des mails

Postfix peut vérifier les mails entrants très simplement en analysant le header, le body et le type mime des pièces jointes.

Ce type de blocage est très efficace, plus rapide que de laisser faire Amavisd ou SA, mais manque de souplesse.

Il s’avère cependant très efficace pour bloquer par types de fichiers sans que le mail ne soit envoyé au serveur, puis traité (économie de bande passante et de CPU).

Cependant une trop grande quantité de règles et un fort trafic aurait l’effet inverse sur les performances.

Nous allons créer les fichiers nécessaires pour activer cette fonction.

cd /etc/postfix/

wget http://www.starbridge.org/spip/doc/Procmail/postfix/body_checks.cf

wget http://www.starbridge.org/spip/doc/Procmail/postfix/header_checks.cf

wget http://www.starbridge.org/spip/doc/Procmail/postfix/mime_headers_checks.cf

Editons ensuite le fichier /etc/postfix/main.cf et ajoutons ces lignes :

Il suffit maintenant de relancer postfix :

postfix reload

Voila maintenant notre serveur mail est prêt à accueillir un Antispam et un Antivirus efficace.

Cool, vous pouvez bien prendre un café, car vous l’avez bien mérité !