WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un système de messagerie sécurisée pour une PME/PMI

( Télécharger le fichier original )
par Papa Cheikh Cisse - Mactar Ndiaga Seck
Université Gaston Berger, Saint-Louis, Sénégal - Maitrise Informatique 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Partie 3: Sécuriser le système de

messagerie

La sécurité du serveur de mails se situe à plusieurs niveaux. Elle réside sur la sécurisation des communications, l'authentification des utilisateurs et l'intégrité des données.

Les communications sont généralement sécurisées en utilisant un chiffrage avec OpenSSL, l'authentification est assurée a l'aide de SASL et les données sont analysées par un antivirus et un anti-spam.

Ainsi, pour apporter de la sécurité en matière de courrier électronique, on peut agir sur deux éléments : les MTA et les MUA ou autrement dit coté serveur et coté client. Il est d'abord primordial de ne plus transmettre de mots de passe en clair ensuite on pourra se concentrer sur la validité des données.

3.1 Authentification SMTP avec SASL

3.1.1 Principes et objectifs de SASL

SASL pour Simple Authentication and Security Layer est une méthode qui offre un support d'authentification a des protocoles orientés connexion. SASL inclut des commandes pour identifier et authentifier un utilisateur sur un serveur et pour éventuellement négocier la protection des interactions du protocole. Si son utilisation aboutit, une couche de sécurité est insérée entre le protocole et la connexion.

Si l'on utilise Dovecot comme serveur IMAP, il est maintenant possible d'utiliser son démon d'authentification pour réaliser l'authentification SMTP via SASL. Nous allons passer a la configuration des serveurs SMTP et IMAP/POP3 dans la section qui suit.

3.1.2 Configurer Postfix et Dovecot pour SASL

La première étape dans la configuration de SASL est l'édition des fichiers /etc/postfix/ main.cf et de /etc/postfix/ master.cf.

A travers ces fichiers nous indiquerons a Postfix qu'il faut utiliser l'authentification SMTP pour tous les utilisateurs qui désirent envoyer un mail, sauf s'ils font partie de mynetworks. Avec la configuration suivante, on interdit également les connexions anonymes :

# Active l'authentification SASL dans le serveur SMTP de Postfix smtpd_sasl_auth_enable = yes

#Type de plug-in SASL que le serveur SMTP doit utiliser pour l'authentification

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

# Active l'interopérabilité avec des clients de Microsoft qui implémentent AUTH de manière obsolète

broken_sasl_auth_clients = yes

# Interdit les méthodes qui autorisent l'authentification anonyme smtpd_sasl_security_options = noanonymous

# Par défaut cette valeur est vide smtpd_sasl_local_domain =

Nous allons maintenant modifier le fichier /etc/postfix/ master.cf en éditant l'option smtpd_sasl_auth_enable pour activer l'authentification avec SASL pour Postfix :

smtps inet n - - - - smtpd

-o smtpd_tls_wrappermode =yes

-o smtpd_sasl_auth_enable =yes

Après cela, il nous reste a configurer Dovecot pour qu'il réponde aux requêtes d'authentification de Postfix. Ceci se fait dans le ficher /etc/dovecot/dovecot.conf, il suffit de rajouter les lignes suivantes dans la section socket listen :

auth default {

[...1

socket listen {

[...1

# Client for postfix SASL

client {

path = /var/spool/postfix/private/auth

mode = 0660

user = postfix

group = postfix

}

}

[...1

}

Bien entendu, pour que les modifications soient prises en compte, il faut redémarrer les services avec les commandes suivantes :

# /etc/init.d/dovecot restart
# /etc/init.d/postfix restart

Il est maintenant possible de tester l'authentification en faisant une connexion SMTP en telnet. Il faut préalablement préparer la chaîne d'authentification encodé en base64. Pour cela nous utiliserons mimencode qui est une part des programmes metamail. Nous aurons les commandes suivantes:

# aptitude install metamail

# printf "\0user\0minfo" | mimencode AHVzZXIAbWluZm8=

La syntaxe est printf "\0<nom_utilisateur>\0<mot_de_passe>" et c'est cette
chaîne générée qui sera utilisée avec la commande SMTP AUTH PLAIN pour envoyer le

couple login/password au serveur. On peut maintenant commencer la session telnet comme indiquée ci-dessous:

(C) # telnet mail.minfo.sn 25

(S) 220 mail.minfo.sn ESMTP Postfix (Ubuntu)

(C) EHLO mail.minfo.sn (S) 250- mail.minfo.org (S) 250- PIPELINING

(S) 250- SIZE 10240000 (S) 250- VRFY

(S) 250- ETRN

(S) 250- STARTTLS (S) 250- AUTH PLAIN (S) 250- AUTH=PLAIN

(S) 250- ENHANCEDSTATUSCODES

(S) 250 -8 BITMIME (S) 250 DSN

(C) AUTH PLAIN AHVzZXIAbWluZm8=

(S) 235 2.0.0 Authentication successful

(C) quit

(S) 221 2.0.0 Bye

(C) correspond à une requête du client et (S) à une réponse du serveur.

La session ci-dessus présente une authentification réussie sur le serveur mail.minfo.sn avec le couple login/mot_de_passe <user/minfo> pour l'authentification. On remarque dans cette session que le mot de passe est encodé en base64, il n'est donc pas lisible directement, il est par contre déchiffrable (avec mimencode -u). Cette méthode n'offre donc aucune sécurité et il est ainsi de voir le mot de passe d'une personne en analysant les trames réseaux. La solution la plus répandue pour contourner ce problème est de chiffrer toutes les communications avec SSL, c'est l'objet du paragraphe suivant.

3.2 Sécurisation des communications

3.2.1 Protection contre l'Open-Relay et le spam

On parle d'Open-Relay lorsqu'on est en face d'un serveur SMTP qui autorise tous les messages électroniques entrants a transiter par lui pour atteindre d'autres domaines. Il s'agit d'un mécanisme qui consiste a accepter de transmettre un message à un destinataire quelconque. C'est le comportement par défaut de plusieurs serveurs SMTP. Cependant plusieurs spammeurs ont par la suite commencé à abuser de cette fonctionnalité pour causer des dégâts ; ce qui a poussé les administrateurs réseaux et systèmes à contrôler les flux entrants et à empêcher le relais pour leurs serveurs afin de ne pas se retrouver « blacklisté ».

Ainsi pour augmenter la sécurité de notre serveur de mail, il est important de contrôler les échanges avec les serveurs SMTP ouverts (Open Relay). Ces serveurs sont utilisés pour envoyer des messages électroniques non sollicités, connus sous le nom de spam. Pour cela, il existe des listes d'adresses IP correspondant aux machines qui fonctionnent comme des serveurs SMTP ouverts. On peut donc demander à Postfix de consulter ces listes avant d'accepter un message entrant. Ceci est réalisé grâce a la directive smtpd_client_restrictions dans le fichier /etc/postfix/ main.cf. Enfin pour éviter que notre serveur devienne lui-même ouvert, il faut limiter les accès de façon très stricte. Par exemple, on peut rejeter le mail si les en-têtes sont incomplètes, si le message est mal formé, etc. Par contre, mes messages provenant des réseaux connus (my_networks) ou des personnes authentifiées (sasl_authenticated) seront toujours acceptés.

Nous devons modifier notre fichier /etc/ main.cf de façon à avoir les lignes suivantes :

# Attend la commande RCPT TO avant d'évaluer les restrictions smtpd_delay_reject = yes

# Impose au client SMTP de démarrer la session SMTP par une commande HELO # ou EHLO

smtpd_helo_required = yes

# Requiert que les adresses reçues avec les commandes SMTP "MAIL FROM" et

# "RCPT TO" soient

# encadrées par <>. Ceci stoppe le courrier des logiciels mal écrits. strict_rfc821_envelopes = yes

# Restrictions d'accès du serveur pour les requêtes de connexion au

# service SMTP

smtpd_client_restrictions =

permit_mynetworks ,

permit_sasl_authenticated , reject_rbl_client bl.spamcop.net ,

reject_rbl_client dnsbl.njabl.org ,

reject_rbl_client cbl.abuseat.org ,

reject_rbl_client sbl -xbl.spamhaus.org ,

reject_rbl_client list.dsbl.org , permit

# Restrictions que le serveur SMTP de Postfix applique dans le contexte de # la commande HELO.

smtpd_helo_restrictions =

permit_mynetworks ,

permit_sasl_authenticated , reject_non_fqdn_hostname, reject_invalid_hostname, permit

# Restrictions que le serveur SMTP de Postfix applique dans le contexte

# des commandes MAIL FROM

smtpd_sender_restrictions =

permit_mynetworks ,

permit_sasl_authenticated , reject_non_fqdn_sender , reject_unknown_sender_domain , permit

# Restrictions que le serveur SMTP de Postfix applique dans le contexte

# d'une commande RCPT TO

smtpd_recipient_restrictions =
permit_mynetworks,

permit_sasl_authenticated,

reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination,

permit

Notons que ce type de règles permet de diminuer sensiblement la charge de la machine dans le sens ou le mail est rejeté avant d'être analysé par les outils de filtrage de contenu (Amavis, ...) qui sont souvent très consommateurs de ressources. On pourra également observer un léger gain de bande passante puisque seuls les en-têtes des messages indésirables seront échangés sur le réseau, en aucun cas les corps de message ou les pièces jointes.

La configuration ci-dessus autorise toujours le relais pour les personnes authentifiées grâce à la directive permit_sasl_authenticated.

3.2.2 Les certificats SSL

Comme nous l'avons vu plus haut, les services de messagerie (SMTP et IMAP) demandent une authentification de la part des utilisateurs. Dans ce cas, ce dernier va fournir un couple login/mot de passe qui devra transiter sur le réseau entre le client et le serveur. Pour que ces identifiants ne circulent pas en clair, la plupart des services offrent la possibilité de chiffrer les échanges a l'aide d'OpenSSL.

Pour cela, chaque service doit disposer d'un certificat SSL qui permettra de s'assurer de son authenticité et de chiffrer/déchiffrer les communications.

Le fichier de configuration ci-dessous permettra de générer le certificat du serveur SMTPS. On peut par exemple l'enregistrer dans /etc/ssl/smtpd.cnf.

[ req ]

default_bits = 2048

default_keyfile = privkey.pem

distinguished_name = req_distinguished_name prompt = no

string_mask = nombstr

x509_extensions = server_cert [ req_distinguished_name ] countryName = SN

stateOrProvinceName = Senegal organizationName = MINFO

organizationalUnitName = SMTP Server commonName = mail.minfo.sn emailAddress = root@minfo.sn

[ server_cert ]

basicConstraints = critical, CA:FALSE

subjectKeyIdentifier = hash

keyUsage = digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth, clientAuth

nsCertType = server

nsComment = "SMTP Server"

Nous allons ensuite générer le certificat et restreindre les privilèges sur la clé privée. Il nous suffira de lancer les commandes suivantes :

# openssl req -x509 -new \ -config /etc/ssl/smtpd.cnf \

-out /etc/ssl/certs/smtpd.pem \

-keyout /etc/ssl/private/smtpd.key \

-days 730 -nodes -batch

# chmod 600 /etc/ssl/private/smtpd.key

Lors de la configuration du certificat, le champ "commonName" est très important. Il doit toujours correspondre au FQDN (Fully Qualified Domain Name ; mail.minfo.sn dans notre cas) qui sera utilisé pour accéder au service. Dans le cas contraire, la plupart des clients vont générer une alerte à chaque négociation TLS avec le serveur.

Nous avons terminé la génération du certificat du serveur SMTP, nous devons faire la même
chose pour le serveur IMAP. Cependant, la génération du certificat pour ce dernier est tout à
fait similaire, il suffit de modifier légèrement le fichier de configuration en remplaçant

smtp" par "imap" et de le renommer par /etc/ssl/imapd.cnf. On appliquera ces mêmes modifications sur la commande de génération vue précédemment.

3.2.3 Chiffrement des communications IMAP et SMTP avec OpenSSL

Dovecot offre la possibilité de sécuriser les communications IMAP et SMTP avec OpenSSL : IMAPS et SMTPS. Il est souvent préférable de n'utiliser que cette déclinaison du protocole afin qu'aucun mot de passe ne passe en clair sur le réseau.

Pour activer le support de l'IMAPS dans Dovecot, il faut dans un premier temps disposer d'un certificat pour ce service, ce qui a été fait dans le paragraphe précédent. Il suffit ensuite d'éditer le fichier /etc/dovecot/dovecot.conf pour modifier les paramètres suivants :

protocols = imaps

ssl_cert_file = /etc/ssl/certs/imapd.pem ssl_key_file = /etc/ssl/private/imapd.key

Notons que le paramètre protocols ne devra contenir que la valeur imaps, les autres protocoles de relève de courrier étant bannis. Avec cette configuration, les clients peuvent maintenant se connecter au serveur IMAP uniquement sur le port 993 et toutes les communications seront chiffrées.

Il reste simplement à redémarrer le serveur avant de faire un premier test en ligne de commande:

# /etc/init.d/dovecot restart

# openssl s_client -connect mail.minfo.sn:993

---

* OK Dovecot ready. . login user minfo . OK Logged in.

. logout

* BYE Logging out

. Logout completed.

Pour le cas de SMTPS, la configuration d'OpenSSL se fera dans ses principaux fichiers de configuration. Il nous suffira d'abord de modifier les lignes suivantes dans /etc/postfix/ main.cf:

smtpd_tls_security_level = may

smtpd_tls_loglevel = 1

smtpd_tls_cert_file = /etc/ssl/certs/smtpd.pem smtpd_tls_key_file = /etc/ssl/private/smtpd.key

puis enlever le commentaire affecté à ces trois lignes dans le fichier /etc/postfix/ master.cf

smtps inet n - - - - smtpd

-o smtpd_tls_wrappermode = yes

-o smtpd_sasl_auth_enable = yes

Nous pourrons redémarrer avec un :

# etc/init.d/postfix restart

avant de vérifier le fonctionnement de SMTPS comme le montre le test ci-contre :

# openssl s_client -connect mail.minfo.sn:465

[...]

---

220 mail.minfo.sn ESMTP Postfix (Ubuntu)

EHLO minfo.sn

250 mail.minfo.sn

MAIL FROM: < user@minfo.sn>

250 2.1.0 Ok

RCPT TO: < autre_user@minfo.sn>

250 2.1.5 Ok DATA

354 End data with <CR ><LF >.<CR ><LF >

Hello !!

.

250 2.0.0 Ok: queued as 8EF8730102C3 quit

221 2.0.0 Bye

3.2.4 Configuration d'un firewall

Le but d'un firewall est d'empêcher que des programmes puissent communiquer sur le réseau sans votre accord.

Les iptables représentent le plus célèbre firewall utilisé sous Linux. Il permet d'établir un certain nombre de règles pour dire par quels ports on peut se connecter à votre ordinateur, mais aussi à quels ports vous avez le droit de vous connecter. On peut aussi filtrer par IP mais nous ne détaillerons pas cela ici.

Par exemple, si nous voulons empêcher toute connexion FTP, nous pouvons souhaiter bloquer le port 21 (utilisé par FTP). Nous utiliserons les iptables pour mettre en place notre firewall.

En général, la technique d'un pare feu ne consiste pas a bloquer certains ports, mais plutôt a bloquer par défaut tous les ports et à en autoriser seulement quelques-uns.

Pour bloquer tous les ports :

# iptables -P INPUT DROP # iptables -P OUTPUT DROP # iptables -P FORWARD DROP

Ainsi notre serveur refusera tout trafic entrant (INPUT DROP), sortant (OUTPUT DROP) ou qui doit juste passer par lui (FORWARD DROP).

Nous allons ensuite autoriser le trafic sur l'interface de loopback locale. Ceci car le serveur a quelquefois besoin de communiquer avec lui-même. Dans la configuration retenue ici, il faut ouvrir uniquement les ports suivant en entrée :

+ 25 (SMTP) : pour que le serveur puissent recevoir les mails provenant des autres serveurs de mails.

+ 465 (SMTPS) : pour que les utilisateurs authentifiés puissent envoyer des mails en mode crypté (SSL).

+ 993 (IMAPS) : pour que les utilisateurs authentifiés puissent recevoir des mails en mode crypté (SSL) en utilisant IMAP.

+ 2000 (MANAGESIEVE) : pour que les utilisateurs authentifiés puissent éditer les règles de filtrage.

Pour réaliser cela, nous exécuterons les commandes suivantes:

# iptables -A INPUT -i lo --source 127.0.0.1 --destination 127.0.0.1

-j ACCEPT

# iptables -A INPUT --dport 25 -j ACCEPT

# iptables -A INPUT --dport 465 -j ACCEPT
# iptables -A INPUT --dport 993 -j ACCEPT
# iptables -A INPUT --dport 2000 -j ACCEPT

Cela fait, nous allons autoriser les requêtes de type ICMP, ne serait-ce que pour pouvoir s'assurer que notre serveur est toujours en vie, grâce a cette commande :

# iptables -A INPUT -p icmp -j ACCEPT

Ainsi, nous venons de configurer notre pare feu avant d'éviter toute intrusion indésirable dans notre système. Ceci grâce aux iptables. Il existe en guise d'information, depuis la version 8.04 LTS d'Ubuntu, un autre outil, aux commandes assez simples, très puissant et qui permet de configurer un pare feu, constituant ainsi une alternative aux iptables : il s'agit de UFW (Uncomplicated FireWall).

Cependant, avoir un firewall ne prémunit pas contre les dangers. En revanche, cela rend la tâche particulièrement difficile aux pirates qui voudraient accéder à notre serveur.

# postfix -add -filter amavis 10025

3.3 Gérer l'intégrité des données

Ce volet de la sécurité des serveurs mails concerne le contenu des messages. En effet maintenant que les communications sont chiffrées et que les utilisateurs sont authentifiés avant toute opération, il reste a s'assurer que le contenu des messages n'est pas malveillant.

3.3.1 Filtrage de contenu avec Amavis

Afin de centraliser toutes les opérations de filtrage de contenu, il faut mettre en place un démon SMTP qui sera capable de recevoir un mail, d'en extraire le contenu pour analyse puis de le renvoyer sous certaines conditions : c'est le rôle d'Amavis. Ce n'est pas un antivirus mais un outil qui fonctionne conjointement avec Postfix pour fournir le contenu du mail à des scanners tels que ClamAV.

L'installation d'Amavis se fait a partir de la commande suivante :

# aptitude install amavisd-new

Postfix prévoit une directive spécifique pour le filtrage de contenu: content_filter. Pour analyser le contenu avant de délivrer le message, il faut donc simplement indiquer à Postfix le transport à utiliser pour faire cette analyse dans le fichier /etc/postfix/ main.cf:

content_filter = amavis:[127.0.0.1]:10024

Ainsi, Postfix transmet le message a l'outil de transport d'Amavis sur le port 10024 de la machine locale. Il faut maintenant configurer ce transport dans le fichier /etc/postfix/ master.cf. Cette modification peut-être simplement réalisée a l'aide de la commande suivante :

Cette commande a permis de modifier le fichier master.cf afin d'indiquer le routage des messages. Le message sera maintenant analysé par Amavis puis, si le contenu n'est pas indésirable, il sera retransmis à Postfix sur le port 10025.

Amavis est maintenant en place il suffit de redémarrer les services pour que les modifications soient prises en compte.

# /etc/init.d/amavis restart # /etc/init.d/postfix restart

3.3.2 Intégration d'un antivirus : ClamAV

Il existe de nombreux antivirus mais beaucoup sont distribués sous des licences propriétaires. Dans le monde de l'Open, il existe ClamAV qui fait très bien son boulot. Pour qu'Amavis puisse faire du filtrage antivirus, il faut donc installer ClamAV ainsi que quelques librairies de compression (pour analyser les archives). L'installation peut se faire a partir de la commande suivante:

# aptitude install clamav clamav-daemon gzip bzip2 unzip unrar zoo arj

ClamAV est l'antivirus qui va lire le contenu des mails puis le valider et le transmettre a Postfix ou le rejeter. Pour que tout se passe correctement, il faut maintenant s'assurer que l'utilisateur "clamav" fasse partie du groupe "amavis".

# adduser clamav amavis

Activation du support antivirus pour Amavis dans le fichier /etc/amavis/conf.d/15- content_filter_mode :

@bypass_virus_checks_maps=(\%bypass_virus_checks,\@bypass_virus_checks_acl, \$bypass_virus_checks_re);

Configuration d'Amavis dans /etc/amavis/conf.d/20-debian_defaults

$final_virus_destiny = D_BOUNCE;

Redémarrage des services

# /etc/init.d/clamav-daemon restart # /etc/init.d/amavis restart

Pour vérifier le bon fonctionnement de l'antivirus, on peut utiliser des sites prévus a cet effet comme GFI Email Security Test. Ces sites permettent d'envoyer des mails infectés avec un virus de test (non dangereux) vers votre serveur. En fonction des paramètres de notification qui ont été choisi, la réception de ce mail devrait, ou non, déclencher une alerte à l'administrateur du serveur.

3.3.3 Intégration d'un Anti Spam: Spamassassin

Le but de Spamassassin est de filtrer le trafic des courriels pour éradiquer les courriels reconnus comme pourriels ou courriels non sollicités.

Face à l'augmentation importante du spam, ce logiciel connaît un engouement important et est adaptable sur de nombreux serveurs de courriels dont Sendmail, Postfix, Exim, Qmail ; il peut être installé sur la plupart des systèmes basés sur Linux, Windows et Mac OS X. Spamassassin est un programme écrit en Perl qui fait passer un certain nombre de tests au message. En fonction du résultat de ces tests, il attribue un score au courriel.

Si le score dépasse un certain seuil, le courriel est alors considéré comme du Spam. Spamassassin modifie alors le titre du message (il l'encadre par ***** SPAM *****). De plus, Spamassassin positionne deux nouveaux en-têtes au message : X-Spam-Status et X-SpamLevel.

Ces deux en-têtes permettent alors de créer des filtres dans votre client de messagerie pour orienter le message (par exemple le mettre dans la corbeille).

Tous les messages doivent donc passer par Spamassassin pour être traités, avant d'arriver dans leur dossier définitif.

Pour installer Spamassassin et des outils anti-spam :

# aptitude install spamassassin libnet -dns -perl razor pyzor

Activation de la cron Spamassassin dans /etc/default/spamassassin. Ceci permet de mettre à jour les règles chaque nuit.

CRON =1

Mise à jour des règles Spamassassin :

# sa -update

La configuration de Spamassassin se fait dans le fichier /etc/spamassassin/ local.cf. Ce fichier doit être édité comme ceci :

report_safe 0

lock_method flock

# Bayes -related operations

use_bayes 1

use_bayes_rules 1 bayes_auto_learn 1 bayes_auto_expire 1

bayes_path /var/lib/amavis /.spamassassin /bayes

bayes_file_mode 0777

# External network tests

dns_available yes skip_rbl_checks 0 use_razor2 1

use_pyzor 1

# Use URIBL (http :// www.uribl.com/about.shtml)

urirhssub URIBL_BLACK multi.uribl.com. A 2

greylist

tflags URIBL_GREY net

score URIBL_GREY 0.25
# Use SURBL ( http:// www.surbl.org/)

urirhssub URIBL_JP_SURBL multi.surbl.org. A 64

body URIBL_JP_SURBL eval: check_uridnsbl ('URIBL_JP_SURBL ')

describe URIBL_JP_SURBL Has URI in JP at http://

body URIBL_BLACK eval: check_uridnsbl ('URIBL_BLACK ')

describe URIBL_BLACK Contains an URL listed in the URIBL

blacklist

tflags URIBL_BLACK net

score URIBL BLACK

_

urirhssub URIBL_GREY multi.uribl.com. A 4

body URIBL_GREY eval: check_uridnsbl ('URIBL_GREY ')

describe URIBL_GREY Contains an URL listed in the URIBL

3.0

www.surbl.org/lists.html

tflags URIBL_JP_SURBL net

 
 

URIBL_JP_SURBL 3.0

score

 
 
 

Configuration de razor en utilisant l'utilisateur amavis

# su - amavis

$ razor -admin -d --create $ razor -admin -register

$ razor -admin -discover

Configuration de pyzor en utilisant l'utilisateur amavis

# su - amavis

$ pyzor disposer

Il faut ensuite activer le support anti-spam pour Amavis dans le fichier /etc/amavis/conf.d/15-content_filter_mode. Il faut seulement enlever les commentaires des deux lignes suivants:

@bypass_spam_checks_maps = (\% bypass_spam_checks,\ @bypass_spam_checks_acl ,\ $bypass_spam_checks_re );

Il faut maintenant définir le comportement d'Amavis lorsque Spamassassin a terminé d'analyser le message. Comme indiqué précédemment, Spamassassin affecte un score au message. Amavis va maintenant comparer ce score au seuil défini par la variable FIXME. Si le score est supérieur à cette valeur, Amavis va appliquer les règles destinées aux messages indésirables. Le score affecté par Spamassassin n'étant jamais fiable a cent pour cent, il faire prendre beaucoup de précautions lors de la définition des règles d'Amavis. Par exemple :

> il ne vaut mieux pas modifier le sujet du message en ajoutant "***SPAM***" : si le message est marqué par erreur, l'utilisateur final aura un message désirable dont le sujet commencera par ***SPAM*** ;

> il est fortement recommandé de ne pas supprimer directement les messages marqués comme spam;

> la méthode la plus sûr, est sans doute d'inscrire le score dans les en-têtes et de ne pas toucher au reste du message. Il suffit ensuite d'utiliser les différentes méthodes de filtrage pour que les spams soient délivrés dans un dossier spécifique.

Toute cette configuration se fait dans le fichier /etc/amavis/conf.d/20- debian_defaults :

# $sa_spam_subject_tag = '*** SPAM *** ';

$sa_tag_level_deflt = undef; $sa_tag2_level_deflt = 6.00; $sa_kill_level_deflt = 6.00; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS;

Notons qu'avec la configuration ci-dessus, les en-têtes de spam seront ajoutées sur tous les messages, quel que soit le score obtenu. Par ailleurs, tous les messages atteignant un score supérieur à 6.0 seront considérés comme Spam.

Comme toujours, les modifications ne seront prises en compte qu'après un redémarrage d'Amavis :

# /etc/init.d/amavis restart

3.3.4 Tri des messages avec SIEVE

Dovecot est conçu en favorisant toujours les aspects de sécurité. Il est activement développé et implémente de nombreuses fonctionnalités. L'un des atouts intéressant de Dovecot est la gestion des filtres SIEVE. SIEVE est un langage permettant de traiter les messages à leur arrivée sur le serveur : il est par exemple possible de rediriger un message vers un dossier particulier ou de mettre en place un répondeur automatique de vacance.

SIEVE agit donc de manière comparable à Procmail mais apporte une fonctionnalité très intéressante: MANAGESIEVE. MANAGESIEVE est un protocole permettant de gérer les scripts de filtrage depuis l'application de messagerie cliente : plus besoin de se connecter en SSH pour éditer son script de filtrage !

Bien entendu, le support SIEVE est disponible uniquement si la livraison des messages est réalisée par le LDA de Dovecot.

Configuration du plugin

Pour activer le plugin SIEVE il faut éditer le fichier /etc/dovecot/dovecot.conf comme suit :

protocol lda {

[...]

# sieve_global_path =

mail_plugins = [...] cmusieve

[...]

}

Pour activer la gestion des filtres SIEVE, il ne reste plus qu'à redémarrer le service :

# /etc/init.d/dovecot restart

Édition d'un script de base dans /home/<user_name>/.dovecot.sieve:

require "fileinto ";

if address :is "from" " user@minfo.sn" { fileinto "user";

}

Exemple de script pour mettre en place un répondeur automatique de vacance :

require [" fileinto", "vacation "];

if header :contains "X-Spam -Flag" "YES" {

fileinto "Junk ";

} else { vacation # Répondre uniquement 1 fois par jour au même expéditeur

:days 1

# Sujet de la réponse automatique

:subject "Message automatique de vacance"

# Liste des adresses de destination pour lesquelles il faut envoyer le message

# de vacance automatique

:addresses [" cheikh@minfo.sn", " mactar@minfo.sn"]

"Nous insérons ici le message de vacance

Cordialement";

}

Filtres globaux

Dovecot supporte les filtres globaux pour permettre à tous les utilisateurs de partager un script de filtrage. Attention cependant, le script global défini par la variable sieve_global_path ne sera exécuté uniquement s'il n'y a aucun filtre personnel pour l'utilisateur.

Dans /etc/dovecot/dovecot.conf :

protocol lda {

[...]

sieve_global_path = /etc/dovecot/ global_script /dovecot.sieve

mail_plugins = [...] cmusieve

[...] }

Création du répertoire :

# mkdir /etc/dovecot/global_script

Exemple de script pour trier les mails marqués par Spamassassin :

require "fileinto ";

if header :contains "X-Spam -Flag" "YES" { fileinto "Junk ";

}

 
 

Modification des droits:

# chown -R vmail:mail/etc/dovecot/global_script/ # chmod -R 770 /etc/dovecot/global_script/

Pour appliquer la configuration, il ne reste plus qu'à redémarrer le service :

# /etc/init.d/dovecot restart

Edition des scripts : MANAGESIEVE

Comme indiqué précédemment, Dovecot gère maintenant le protocole MANAGESIEVE. Ce support n'est pas encore officiel mais est disponible sous forme de patch. Coté Debian, le patch est inclus dans les paquets depuis la version 1.0.12.

Pour activer le démon managesieve, il suffit simplement de l'ajouter dans la directive protocols du fichier /etc/dovecot/dovecot.conf :

protocols = imaps managesieve [...]

protocol managesieve {

sieve =~/. dovecot.sieve

sieve_storage =~/ sieve

}

Malheureusement, les clients capables de gérer correctement le protocole MANAGESIEVE sont très rares :

> Il existe un plugin pour RoundCube mais qui ne fonctionne pas sur la version stable actuelle.

> Le plugin Thunderbird fonctionne maintenant correctement depuis sa version 0.1.5. Ce plugin permet de gérer le protocole MANAGESIEVE mais malheureusement l'édition des scripts doit encore se faire manuellement.

Ainsi, notre système de messagerie est fin prêt, opérationnel avec une sécurité, nous ne dirons pas inviolable, mais que le pirate ou hacker aura beaucoup de mal à mettre hors de portée.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Soit réservé sans ostentation pour éviter de t'attirer l'incompréhension haineuse des ignorants"   Pythagore