« Postfix » : différence entre les versions
m (restitution de la dernière modification de PingouinMigrateur) |
Aucun résumé des modifications |
||
(6 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Postfix = | = Postfix = | ||
Ligne 13 : | Ligne 12 : | ||
* [http://www.washington.edu/imap/ UW-IMAP] (serveur pop3 et imap) | * [http://www.washington.edu/imap/ UW-IMAP] (serveur pop3 et imap) | ||
Ainsi que l'ensemble des scripts et fichiers que j'ai utilisés pour cette configuration : [.. | Ainsi que l'ensemble des scripts et fichiers que j'ai utilisés pour cette configuration : [[Media:Fichiers-conf-postfix.tar|Fichiers-conf-postfix.tar]] | ||
Cette documentation a été écrite avec les versions suivantes (du 04/2004) : | Cette documentation a été écrite avec les versions suivantes (du 04/2004) : | ||
Ligne 23 : | Ligne 22 : | ||
* imap-2004.RC7.tar.Z | * imap-2004.RC7.tar.Z | ||
Copiez ces fichiers dans < | Copiez ces fichiers dans <tt>/usr/src/</tt> par exemple, vous en aurez besoins par la suite. | ||
== Postfix == | == Postfix == | ||
Ligne 30 : | Ligne 29 : | ||
=== Installation === | === Installation === | ||
{{Preferer_un_paquetage|postfix}} | |||
==== Compilation ==== | |||
Exécutez les commandes suivantes : | Exécutez les commandes suivantes : | ||
Ligne 40 : | Ligne 43 : | ||
<div class="code"><nowiki># urpmi postfix</nowiki></div> | <div class="code"><nowiki># urpmi postfix</nowiki></div> | ||
==== Configuration de base ==== | |||
Postfix est installé et les alias sont créés par défaut dans /etc/postfix/aliases. | Postfix est installé et les alias sont créés par défaut dans /etc/postfix/aliases. | ||
Éditer le fichier < | Éditer le fichier <tt>/etc/postfix/main.cf</tt> et modifier les lignes suivantes afin de mettre des paramètres adaptés : | ||
<div class="code">myhostname = mail.chezmoi.fr<br /> mydomain = chezmoi.fr<br /> myorigin = $mydomain<br /> mynetworks = 192.168.1.0/24, 127.0.0.0/8<br /> #inet_interfaces = 192.168.1.1<br /> mydestination = $myhostname, localhost.$mydomain, $mydomain</div><div class="note">''Rq: le serveur DNS de votre domaine devra contenir l'enregistrement de mail.chezmoi.fr''</div> | <div class="code">myhostname = mail.chezmoi.fr<br /> mydomain = chezmoi.fr<br /> myorigin = $mydomain<br /> mynetworks = 192.168.1.0/24, 127.0.0.0/8<br /> #inet_interfaces = 192.168.1.1<br /> mydestination = $myhostname, localhost.$mydomain, $mydomain</div><div class="note">''Rq: le serveur DNS de votre domaine devra contenir l'enregistrement de mail.chezmoi.fr''</div> | ||
Pour définir des alias, ajouter à la fin du fichier < | Pour définir des alias, ajouter à la fin du fichier <tt>/etc/aliases</tt> des lignes de la forme :<br /><tt>nom_alias: destinataire</tt> | ||
Exemple : <br />< | Exemple : <br /><tt>operateur: root</tt> | ||
N'oubliez pas de faire < | N'oubliez pas de faire <tt>postalias /etc/aliases</tt> pour mettre à jour les modifications. | ||
=== Lancement === | === Lancement === | ||
Le script de lancement est fourni par votre distribution. | |||
Lancement : < | Lancement : <tt>/etc/rc.d/init.d/postfix start</tt> | ||
Pour lancer Postfix à chaque démarrage faites : | Pour lancer Postfix à chaque démarrage faites : | ||
Ligne 85 : | Ligne 90 : | ||
Vous pouvez aussi installer SpamAssassin à partir du tarball (Mail-SpamAssassin-2.63.tar.gz) , mais les modules perl devront être installés auparavant. | Vous pouvez aussi installer SpamAssassin à partir du tarball (Mail-SpamAssassin-2.63.tar.gz) , mais les modules perl devront être installés auparavant. | ||
Ensuite, copiez ce script de démarrage (sans l'extension .txt) [postfix_spamd.txt spamd] (présent dans les sources) dans le répertoire < | Ensuite, copiez ce script de démarrage (sans l'extension .txt) [postfix_spamd.txt spamd] (présent dans les sources) dans le répertoire <tt>/etc/rc.d/init.d</tt> | ||
=== Configuration === | === Configuration === | ||
La configuration se fait dans le fichier < | La configuration se fait dans le fichier <tt>/etc/mail/spamassassin/local.cf</tt>, ajoutez-y les lignes suivantes : | ||
<div class="code"> rewrite_subject 1<br /> subject_tag [***SPAM***]<br /> </div> | <div class="code"> rewrite_subject 1<br /> subject_tag [***SPAM***]<br /> </div> | ||
Ligne 95 : | Ligne 100 : | ||
Avec cette configuration, les messages détectés comme spam (avec un score supérieur à 5) auront leur champ Subject commençant par [***SPAM***] et un tag X-Spam-Level indiquant le score du message. | Avec cette configuration, les messages détectés comme spam (avec un score supérieur à 5) auront leur champ Subject commençant par [***SPAM***] et un tag X-Spam-Level indiquant le score du message. | ||
Pour ne pas filter les messages des personnes que vous savez sûres, vous pouvez constituer une "liste blanche" en ajoutant à la fin de ce fichier (local.cf) des lignes de la forme :<br />< | Pour ne pas filter les messages des personnes que vous savez sûres, vous pouvez constituer une "liste blanche" en ajoutant à la fin de ce fichier (local.cf) des lignes de la forme :<br /><tt>whitelist_from monpote@chezlui.fr</tt> | ||
<u>Plus d'infos</u> : perldoc Mail::SpamAssassin::Conf | <u>Plus d'infos</u> : perldoc Mail::SpamAssassin::Conf | ||
Ligne 101 : | Ligne 106 : | ||
=== Lancement === | === Lancement === | ||
La commande classique : < | La commande classique : <tt>/etc/rc.d/init.d/spamd start</tt> | ||
Pour lancer spamassassin à chaque démarrage : | Pour lancer spamassassin à chaque démarrage : | ||
Ligne 111 : | Ligne 116 : | ||
Anomy Sanitizer est un filtre mail qui corrige les messages défectueux et bloque les pièces jointes suspectes. Il se charge aussi d'appeler l'antivirus. | Anomy Sanitizer est un filtre mail qui corrige les messages défectueux et bloque les pièces jointes suspectes. Il se charge aussi d'appeler l'antivirus. | ||
Copiez le tarball dans < | Copiez le tarball dans <tt>/usr/local</tt> | ||
<div class="code"><nowiki># cd /usr/local/</nowiki><br /> # tar -xzvf anomy-sanitizer-1.66.tar.gz<br /> # chown -R root:filter /usr/local/anomy<br /> # chmod 0750 /usr/local/anomy</div> | <div class="code"><nowiki># cd /usr/local/</nowiki><br /> # tar -xzvf anomy-sanitizer-1.66.tar.gz<br /> # chown -R root:filter /usr/local/anomy<br /> # chmod 0750 /usr/local/anomy</div> | ||
La configuration se fait dans le fichier < | La configuration se fait dans le fichier <tt>/etc/sanitizer.cfg</tt><br /> Voici un exemple de configuration : [postfix_sanitizer.cfg sanitizer.cfg] à copier dans <tt>/etc</tt>. | ||
Pour tester si cela fonctionne bien, faites : | Pour tester si cela fonctionne bien, faites : | ||
Ligne 135 : | Ligne 140 : | ||
Cette méthode offre aussi la possibilité de filtrer les mails en émission ( cela peut être intéressant si vous ne voulez pas qu'un de vos utilisateurs envoie des spams ou des virus ... ) | Cette méthode offre aussi la possibilité de filtrer les mails en émission ( cela peut être intéressant si vous ne voulez pas qu'un de vos utilisateurs envoie des spams ou des virus ... ) | ||
Copier le script dans < | Copier le script dans <tt>/usr/local/anomy/</tt> et ensuite : | ||
<div class="code"><nowiki># cd /usr/local/anomy/</nowiki><br /> # chown root:filter filter.sh<br /> # chmod 750 filter.sh</div> | <div class="code"><nowiki># cd /usr/local/anomy/</nowiki><br /> # chown root:filter filter.sh<br /> # chmod 750 filter.sh</div> | ||
ajoutez à la fin de < | ajoutez à la fin de <tt>/etc/postfix/master.cf</tt> : | ||
<div class="code"> filter unix - n n - - pipe<br /> flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender} -- ${recipient}<br /> </div> | <div class="code"> filter unix - n n - - pipe<br /> flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender} -- ${recipient}<br /> </div> | ||
* '''Pour un filtrage entrant et sortant''' : toujours dans < | * '''Pour un filtrage entrant et sortant''' : toujours dans <tt>master.cf</tt>, après la ligne :<br /><tt>smtp inet n - n - - smtpd</tt><br /> ajouter :<br /><tt>-o content_filter=filter:dummy</tt> | ||
* '''Pour filtrage entrant seulement''' : il faut spécifier une liste d'adresses de destination à filtrer.<br /> Créez le fichier < | * '''Pour filtrage entrant seulement''' : il faut spécifier une liste d'adresses de destination à filtrer.<br /> Créez le fichier <tt>/etc/postfix/filtered_domains</tt> contenant :<br /><tt>chezmoi.fr FILTER filter:dummy</tt><br /> (évidemment, remplacer chezmoi.fr par votre nom de domaine)<br /> Faites : <tt>postmap filtered_domains</tt> pour générer la map correspondante.<br /> Ensuite, ajoutez à la fin de <tt>/etc/postfix/main.cf</tt> : <div class="code"> smtpd_recipient_restrictions = permit_mynetworks<br /> check_recipient_access hash:/etc/postfix/filtered_domains<br /> reject_unauth_destination<br /> </div><div class="note">''Rq : remplacer hash si besoin par la valeur donnée par la commande :<br /> postconf default_database_type''</div> | ||
Pour prendre en compte les modifications : < | Pour prendre en compte les modifications : <tt>postfix reload</tt> | ||
<u>Plus d'info</u> : postfix-2.0.19/README_FILES/FILTER_README (dans les sources) | <u>Plus d'info</u> : postfix-2.0.19/README_FILES/FILTER_README (dans les sources) | ||
Ligne 160 : | Ligne 165 : | ||
<div class="code"> # tar -xzvf clamav-0.65.tar.gz<br /> # cd clamav-0.65<br /> # groupadd clamav<br /> # useradd -g clamav -s /bin/false -c "Clam AntiVirus" -d /dev/null clamav<br /> # ./configure --sysconfdir=/etc<br /> # make<br /> # make install<br /> # cp contrib/init/RedHat/clamd /etc/rc.d/init.d<br /> </div> | <div class="code"> # tar -xzvf clamav-0.65.tar.gz<br /> # cd clamav-0.65<br /> # groupadd clamav<br /> # useradd -g clamav -s /bin/false -c "Clam AntiVirus" -d /dev/null clamav<br /> # ./configure --sysconfdir=/etc<br /> # make<br /> # make install<br /> # cp contrib/init/RedHat/clamd /etc/rc.d/init.d<br /> </div> | ||
La configuration du daemon clamd se fait dans le fichier < | La configuration du daemon clamd se fait dans le fichier <tt>/etc/clamav.conf</tt><br /> Editez-le et supprimez la ligne "Example", enlevez aussi le # devant la ligne <tt>ScanMail</tt> | ||
<u>Plus d'informations</u> : man clamav.conf | <u>Plus d'informations</u> : man clamav.conf | ||
Ligne 166 : | Ligne 171 : | ||
=== Lancement === | === Lancement === | ||
Pour démarrer le daemon, faites :<br />< | Pour démarrer le daemon, faites :<br /><tt>/etc/rc.d/init.d/clamd start</tt> | ||
Et pour le lancer à chaque démarrage : | Et pour le lancer à chaque démarrage : | ||
Ligne 178 : | Ligne 183 : | ||
<div class="code"> # touch /var/log/clam-update<br /> # chmod 600 /var/log/clam-update<br /> # chown clamav /var/log/clam-update</div> | <div class="code"> # touch /var/log/clam-update<br /> # chmod 600 /var/log/clam-update<br /> # chown clamav /var/log/clam-update</div> | ||
Ajoutez la ligne suivante dans < | Ajoutez la ligne suivante dans <tt>/etc/crontab</tt> pour télécharger la mise à jour tous les jours à 12h00 :<br /><tt>00 12 * * * root /usr/local/bin/freshclam --quiet -l /var/log/clam-update</tt> | ||
<u>Plus d'informations</u> : man freshclam<br /> | <u>Plus d'informations</u> : man freshclam<br /> | ||
Ligne 184 : | Ligne 189 : | ||
=== Intégration de l'antivirus dans Anomy Sanitizer === | === Intégration de l'antivirus dans Anomy Sanitizer === | ||
Voici un patch qui permet d'intégrer ClamAV dans anomy : [postfix_anomy-clamav.patch anomy-clamav.patch]<br /> Copiez le dans < | Voici un patch qui permet d'intégrer ClamAV dans anomy : [postfix_anomy-clamav.patch anomy-clamav.patch]<br /> Copiez le dans <tt>/usr/local/anomy/contrib</tt> : | ||
<div class="code"> # cd /usr/local/anomy/contrib<br /> # patch <anomy-clamav.patch<br /> # cp check_for_virus ../chk_virus.sh<br /> # cd ..<br /> # chown root:filter chk_virus.sh<br /> # chmod 750 chk_virus.sh</div> | <div class="code"> # cd /usr/local/anomy/contrib<br /> # patch <anomy-clamav.patch<br /> # cp check_for_virus ../chk_virus.sh<br /> # cd ..<br /> # chown root:filter chk_virus.sh<br /> # chmod 750 chk_virus.sh</div> | ||
Il faut ensuite modifier la configuration dans le fichier < | Il faut ensuite modifier la configuration dans le fichier <tt>/etc/sanitizer.cfg</tt> :<br /> Modifier les lignes : | ||
<div class="code"> file_list_1_policy = drop<br /> file_list_1_scanner = 0<br /> </div> | <div class="code"> file_list_1_policy = drop<br /> file_list_1_scanner = 0<br /> </div> | ||
Ligne 198 : | Ligne 203 : | ||
Avec cette configuration, les pièces jointes susceptibles de contenir des virus seront scannées. | Avec cette configuration, les pièces jointes susceptibles de contenir des virus seront scannées. | ||
<u>Plus d'informations</u> sur les actions et les stratégies de sécurité à mener avec l'antivirus : < | <u>Plus d'informations</u> sur les actions et les stratégies de sécurité à mener avec l'antivirus : <tt>/usr/local/anomy/sanitizer.html </tt> | ||
== Optimisation des performances (facultatif) == | == Optimisation des performances (facultatif) == | ||
Les fichiers temporaires utilisés par ce filtrage sont créés dans le répertoire < | Les fichiers temporaires utilisés par ce filtrage sont créés dans le répertoire <tt>/var/spool/filter</tt>. En montant ce répertoire en mémoire vive (grâce à tmpfs), nous gagnons du temps sur les opérations de création/lecture/écriture. | ||
<div class="note">''Rq : en cas de traitement de mail très volumineux, tmpfs n'utilisera au maximum que la moitié de la ram de la machine.''</div> | <div class="note">''Rq : en cas de traitement de mail très volumineux, tmpfs n'utilisera au maximum que la moitié de la ram de la machine.''</div> | ||
Pour ceci faites :<br />< | Pour ceci faites :<br /><tt>mount -t tmpfs tmpfs /var/spool/filter/ -o mode=700,gid=filter,uid=filter,noexec</tt> | ||
Pour que le montage s'effectue à chaque démarage, ajoutez la ligne suivante dans le fichier < | Pour que le montage s'effectue à chaque démarage, ajoutez la ligne suivante dans le fichier <tt>/etc/fstab</tt> :<br /><tt>tmpfs /var/spool/filter tmpfs mode=700,gid=filter,uid=filter,noexec 0 0</tt> | ||
Les fichiers de ce répertoire étant stockés dans la ram, il sont perdus à chaque arrêt de la machine. Pour ne pas recréer les préférences utilisateurs de Spamassassin à chaque démarrage (enregistrées dans ce répertoire) , il faut modifier les paramètre du daemon spamd : | Les fichiers de ce répertoire étant stockés dans la ram, il sont perdus à chaque arrêt de la machine. Pour ne pas recréer les préférences utilisateurs de Spamassassin à chaque démarrage (enregistrées dans ce répertoire) , il faut modifier les paramètre du daemon spamd : | ||
Créez le fichier < | Créez le fichier <tt>/etc/sysconfig/spamassassin</tt> contenant : <tt>SPAMDOPTIONS="-d -m5 -H"</tt> | ||
<u>Plus d'informations</u> : man spamd | <u>Plus d'informations</u> : man spamd | ||
Faites < | Faites <tt>/etc/rc.d/init.d/spamd restart</tt> pour prendre en compte les modifications. | ||
== UW-IMAP (pop3 et imap avec ssl) == | == UW-IMAP (pop3 et imap avec ssl) == | ||
Ligne 232 : | Ligne 237 : | ||
=== Création des certificats === | === Création des certificats === | ||
Ces certificats sont | Ces certificats sont nécessaires à l'authentification SSL. | ||
<div class="code"> # cd /usr/share/ssl/certs<br /> # openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365<br /> # openssl req -new -x509 -nodes -out ipop3d.pem -keyout ipop3d.pem -days 365<br /> # chmod 600 ipop3d.pem<br /> # chmod 600 imapd.pem</div> | <div class="code"> # cd /usr/share/ssl/certs<br /> # openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365<br /> # openssl req -new -x509 -nodes -out ipop3d.pem -keyout ipop3d.pem -days 365<br /> # chmod 600 ipop3d.pem<br /> # chmod 600 imapd.pem</div> | ||
Ligne 240 : | Ligne 245 : | ||
=== Configuration === | === Configuration === | ||
UW-IMAP utilise le super-daemon xinetd, qui doit être configuré pour faire appel à ipop3d et imapd.<br /> Vérifiez que les entrées suivantes sont présentes dans < | UW-IMAP utilise le super-daemon xinetd, qui doit être configuré pour faire appel à ipop3d et imapd.<br /> Vérifiez que les entrées suivantes sont présentes dans <tt>/etc/services</tt> (si besoin est, ajoutez-les) : | ||
<div class="code"> pop3 110/tcp<br /> imap 143/tcp<br /> imaps 993/tcp<br /> pop3s 995/tcp </div> | <div class="code"> pop3 110/tcp<br /> imap 143/tcp<br /> imaps 993/tcp<br /> pop3s 995/tcp </div> | ||
Créez les 4 fichiers suivants dans < | Créez les 4 fichiers suivants dans <tt>/etc/xinetd.d</tt> (supprimez l'extension .txt) : [postfix_pop3.txt pop3], [postfix_pop3s.txt pop3s], [postfix_imap.txt imap], [postfix_imaps.txt imaps] . | ||
Ajouter ensuite dans le fichier < | Ajouter ensuite dans le fichier <tt>/etc/hosts.allow</tt> les lignes (en adaptant à votre réseau) : | ||
<div class="code"> ipop3d : 192.168.1.0/255.255.255.0<br /> imapd : 192.168.1.0/255.255.255.0 </div> | <div class="code"> ipop3d : 192.168.1.0/255.255.255.0<br /> imapd : 192.168.1.0/255.255.255.0 </div> | ||
Ligne 254 : | Ligne 259 : | ||
<u>Plus d'informations</u> : man hosts.allow | <u>Plus d'informations</u> : man hosts.allow | ||
Faites < | Faites <tt>/etc/rc.d/init.d/xinetd restart</tt> pour prendre en compte les modifications. | ||
Voila, c'est terminé. Si tout s'est bien passé, votre serveur mail fonctionne.<br /> N'oubliez pas de vérifier que votre firewall et votre service DNS sont bien configurés (notamment l'enregistrement MX de votre nom de domaine, pour que votre serveur smtp soit connu du monde extérieur) . | Voila, c'est terminé. Si tout s'est bien passé, votre serveur mail fonctionne.<br /> N'oubliez pas de vérifier que votre firewall et votre service DNS sont bien configurés (notamment l'enregistrement MX de votre nom de domaine, pour que votre serveur smtp soit connu du monde extérieur) . | ||
<br/> | |||
<br/> | |||
'''<b>[[Réseau|@ Retour à la rubrique Réseau]]</b>''' | |||
<br/> | |||
<div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Nicolas AGIUS le 10/10/2004.</div> | <div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Nicolas AGIUS le 10/10/2004.</div> | ||
Ligne 263 : | Ligne 273 : | ||
Copyright © 10/10/2004, Nicolas AGIUS | Copyright © 10/10/2004, Nicolas AGIUS | ||
{{CC-BY}} | {{CC-BY}} | ||
[[Catégorie:Réseau]] |
Dernière version du 16 décembre 2023 à 16:09
Postfix
Pour réaliser ceci, vous aurez besoin des logiciels suivants :
- Postfix (serveur smtp)
- SpamAssassin (filtrage spam)
- Anomy Sanitizer (filtrage mails erronés et douteux)
- ClamAV (antivirus)
- UW-IMAP (serveur pop3 et imap)
Ainsi que l'ensemble des scripts et fichiers que j'ai utilisés pour cette configuration : Fichiers-conf-postfix.tar
Cette documentation a été écrite avec les versions suivantes (du 04/2004) :
- postfix-2.0.19.tar.gz
- Mail-SpamAssassin-2.63.tar.gz
- anomy-sanitizer-1.66.tar.gz
- clamav-0.65.tar.gz
- imap-2004.RC7.tar.Z
Copiez ces fichiers dans /usr/src/ par exemple, vous en aurez besoins par la suite.
Postfix
Postfix est un serveur smtp performant, simple à configurer et sécurisé. C'est un équivalent à Qmail, mais il est plus facile à mettre en place.
Installation
Rappel : si votre distribution contient un paquetage pour postfix, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.
Pour vérifier que votre distribution contient un paquetage pour postfix, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :
Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information. Pour plus d'information sur ces questions, consulter cette documentation. |
Compilation
Exécutez les commandes suivantes :
# cd postfix-2.0.19/
# make
# groupadd postdrop
# useradd postfix -d /dev/null -s /bin/false -c postfix
# echo "postfix: root" >>/etc/aliases
# make install
Cette dernière commande va vous demander des informations : donnez les réponses par défaut.
Si vous utilisez Mandrake, tapez simplement :
Configuration de base
Postfix est installé et les alias sont créés par défaut dans /etc/postfix/aliases.
Éditer le fichier /etc/postfix/main.cf et modifier les lignes suivantes afin de mettre des paramètres adaptés :
mydomain = chezmoi.fr
myorigin = $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
#inet_interfaces = 192.168.1.1
mydestination = $myhostname, localhost.$mydomain, $mydomain
Pour définir des alias, ajouter à la fin du fichier /etc/aliases des lignes de la forme :
nom_alias: destinataire
Exemple :
operateur: root
N'oubliez pas de faire postalias /etc/aliases pour mettre à jour les modifications.
Lancement
Le script de lancement est fourni par votre distribution.
Lancement : /etc/rc.d/init.d/postfix start
Pour lancer Postfix à chaque démarrage faites :
# chkconfig --level 345 postfix on
Quelques commandes d'administration :
- Rechargement de la config : postfix reload
- Forcer l'envoi des messages en attente : sendmail -q
- Supprimer tous les messages en attente : postsuper -d aLL
Plus d'info : man postfix
SpamAssassin
SpamAssassin est un filtre anti-spam performant avec des fonctionnalités d'auto-apprentissage.
Installation
SpamAssassin a besoin d'un certain nombre de modules Perl (certains sont sans doute déjà installés sur votre machine) que l'on peut récupérer en utilisant la mise à jour par Internet CPAN (résolution des dépendances entre les modules).
Si vous ne disposez pas de la mise à jour par internet, vous pouvez télécharger les modules manuellement sur http://www.cpan.org/ .
o conf prerequisites_policy ask
install MIME::Base64
install MIME::QuotedPrint
install HTML::Parser
install Net::DNS
install DB_File
install Digest::SHA1
install Mail::SpamAssassin
quit
Vous pouvez aussi installer SpamAssassin à partir du tarball (Mail-SpamAssassin-2.63.tar.gz) , mais les modules perl devront être installés auparavant.
Ensuite, copiez ce script de démarrage (sans l'extension .txt) [postfix_spamd.txt spamd] (présent dans les sources) dans le répertoire /etc/rc.d/init.d
Configuration
La configuration se fait dans le fichier /etc/mail/spamassassin/local.cf, ajoutez-y les lignes suivantes :
subject_tag [***SPAM***]
Avec cette configuration, les messages détectés comme spam (avec un score supérieur à 5) auront leur champ Subject commençant par [***SPAM***] et un tag X-Spam-Level indiquant le score du message.
Pour ne pas filter les messages des personnes que vous savez sûres, vous pouvez constituer une "liste blanche" en ajoutant à la fin de ce fichier (local.cf) des lignes de la forme :
whitelist_from monpote@chezlui.fr
Plus d'infos : perldoc Mail::SpamAssassin::Conf
Lancement
La commande classique : /etc/rc.d/init.d/spamd start
Pour lancer spamassassin à chaque démarrage :
# chkconfig --level 345 spamd on
Anomy Sanitizer
Anomy Sanitizer est un filtre mail qui corrige les messages défectueux et bloque les pièces jointes suspectes. Il se charge aussi d'appeler l'antivirus.
Copiez le tarball dans /usr/local
# tar -xzvf anomy-sanitizer-1.66.tar.gz
# chown -R root:filter /usr/local/anomy
# chmod 0750 /usr/local/anomy
La configuration se fait dans le fichier /etc/sanitizer.cfg
Voici un exemple de configuration : [postfix_sanitizer.cfg sanitizer.cfg] à copier dans /etc.
Pour tester si cela fonctionne bien, faites :
# ./testall.sh
Plus d'informations : /usr/local/anomy/sanitizer.html
Filtrage avec Postfix :
La technique de filtrage utilisée ici est celle proposée par la documentation de Postfix. Nous aurions pu utiliser maildrop, qui permet de mettre des règles de filtrages différentes pour chaque utilisateur mais la "méthode postfix" est plus simple et plus flexible.
La méthode choisie ici est le filtrage par script, idéale pour les petits et moyens serveurs. Si vous avez besoin de plus de performances, vous pouvez utiliser un filtrage par daemon, avec amavisd-new (http://www.ijs.si/software/amavisd/) .
# useradd filter -s /bin/false -d /var/spool/filter -g filter
# rm -f /var/spool/filter/.*
Voici le script dont a besoin Postfix pour effectuer le filtrage : [postfix_filter.sh.txt filter.sh]
Cette méthode offre aussi la possibilité de filtrer les mails en émission ( cela peut être intéressant si vous ne voulez pas qu'un de vos utilisateurs envoie des spams ou des virus ... )
Copier le script dans /usr/local/anomy/ et ensuite :
# chown root:filter filter.sh
# chmod 750 filter.sh
ajoutez à la fin de /etc/postfix/master.cf :
flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender} -- ${recipient}
- Pour un filtrage entrant et sortant : toujours dans master.cf, après la ligne :
smtp inet n - n - - smtpd
ajouter :
-o content_filter=filter:dummy - Pour filtrage entrant seulement : il faut spécifier une liste d'adresses de destination à filtrer.
Créez le fichier /etc/postfix/filtered_domains contenant :
chezmoi.fr FILTER filter:dummy
(évidemment, remplacer chezmoi.fr par votre nom de domaine)
Faites : postmap filtered_domains pour générer la map correspondante.
Ensuite, ajoutez à la fin de /etc/postfix/main.cf :smtpd_recipient_restrictions = permit_mynetworks
check_recipient_access hash:/etc/postfix/filtered_domains
reject_unauth_destination
Rq : remplacer hash si besoin par la valeur donnée par la commande :
postconf default_database_type
Pour prendre en compte les modifications : postfix reload
Plus d'info : postfix-2.0.19/README_FILES/FILTER_README (dans les sources)
ClamAV
ClamAV est un antivirus Unix sous licence GPL basé sur le projet OpenAntivirus.
Installation
Exécutez les commandes suivantes :
# cd clamav-0.65
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" -d /dev/null clamav
# ./configure --sysconfdir=/etc
# make
# make install
# cp contrib/init/RedHat/clamd /etc/rc.d/init.d
La configuration du daemon clamd se fait dans le fichier /etc/clamav.conf
Editez-le et supprimez la ligne "Example", enlevez aussi le # devant la ligne ScanMail
Plus d'informations : man clamav.conf
Lancement
Pour démarrer le daemon, faites :
/etc/rc.d/init.d/clamd start
Et pour le lancer à chaque démarrage :
# chkconfig --level 345 clamd on
Configuration de la mise à jour automatique :
La mise à jour automatique permet de télécharger les dernières définitions de virus.
# chmod 600 /var/log/clam-update
# chown clamav /var/log/clam-update
Ajoutez la ligne suivante dans /etc/crontab pour télécharger la mise à jour tous les jours à 12h00 :
00 12 * * * root /usr/local/bin/freshclam --quiet -l /var/log/clam-update
Plus d'informations : man freshclam
Intégration de l'antivirus dans Anomy Sanitizer
Voici un patch qui permet d'intégrer ClamAV dans anomy : [postfix_anomy-clamav.patch anomy-clamav.patch]
Copiez le dans /usr/local/anomy/contrib :
# patch <anomy-clamav.patch
# cp check_for_virus ../chk_virus.sh
# cd ..
# chown root:filter chk_virus.sh
# chmod 750 chk_virus.sh
Il faut ensuite modifier la configuration dans le fichier /etc/sanitizer.cfg :
Modifier les lignes :
file_list_1_scanner = 0
en :
file_list_1_scanner = 0:1:3:/usr/local/anomy/chk_virus.sh %FILENAME %REPLY_TO
Avec cette configuration, les pièces jointes susceptibles de contenir des virus seront scannées.
Plus d'informations sur les actions et les stratégies de sécurité à mener avec l'antivirus : /usr/local/anomy/sanitizer.html
Optimisation des performances (facultatif)
Les fichiers temporaires utilisés par ce filtrage sont créés dans le répertoire /var/spool/filter. En montant ce répertoire en mémoire vive (grâce à tmpfs), nous gagnons du temps sur les opérations de création/lecture/écriture.
Pour ceci faites :
mount -t tmpfs tmpfs /var/spool/filter/ -o mode=700,gid=filter,uid=filter,noexec
Pour que le montage s'effectue à chaque démarage, ajoutez la ligne suivante dans le fichier /etc/fstab :
tmpfs /var/spool/filter tmpfs mode=700,gid=filter,uid=filter,noexec 0 0
Les fichiers de ce répertoire étant stockés dans la ram, il sont perdus à chaque arrêt de la machine. Pour ne pas recréer les préférences utilisateurs de Spamassassin à chaque démarrage (enregistrées dans ce répertoire) , il faut modifier les paramètre du daemon spamd :
Créez le fichier /etc/sysconfig/spamassassin contenant : SPAMDOPTIONS="-d -m5 -H"
Plus d'informations : man spamd
Faites /etc/rc.d/init.d/spamd restart pour prendre en compte les modifications.
UW-IMAP (pop3 et imap avec ssl)
UW-IMAP est le serveur imap/pop3 de l'Université de Washington, plus facile à mettre en place que Courrier-Imap. Il utilise le super daemon xinetd.
Installation
Pour bénéficier des fonctionnalités de chiffrement, OpenSSL doit être déjà installé. Vous pouvez modifier ci-dessous les valeurs de SSLINCLUDE, SSLLIB et SSLDIR pour correspondre à votre installation. (les chemins utilisés ici sont ceux d'une RedHat 7.3)
# cd imap-2004.RC7
# make slx SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLDIR=/usr/share/ssl EXtraDRIVERS= SSLTYPE=unix
# cp ipopd/ipop3d /usr/sbin
# cp imapd/imapd /usr/sbin
# chmod 1777 /var/spool/mail
Avec cette configuration, à la fois les connections normales (pop3) et les connecions sécurisées (pop3s) sont possibles.
Création des certificats
Ces certificats sont nécessaires à l'authentification SSL.
# openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365
# openssl req -new -x509 -nodes -out ipop3d.pem -keyout ipop3d.pem -days 365
# chmod 600 ipop3d.pem
# chmod 600 imapd.pem
Plus d'informations : man openssl
Configuration
UW-IMAP utilise le super-daemon xinetd, qui doit être configuré pour faire appel à ipop3d et imapd.
Vérifiez que les entrées suivantes sont présentes dans /etc/services (si besoin est, ajoutez-les) :
imap 143/tcp
imaps 993/tcp
pop3s 995/tcp
Créez les 4 fichiers suivants dans /etc/xinetd.d (supprimez l'extension .txt) : [postfix_pop3.txt pop3], [postfix_pop3s.txt pop3s], [postfix_imap.txt imap], [postfix_imaps.txt imaps] .
Ajouter ensuite dans le fichier /etc/hosts.allow les lignes (en adaptant à votre réseau) :
imapd : 192.168.1.0/255.255.255.0
Ces deux lignes permettent de définir les permissions d'accès réseaux aux services fournis par xinetd.
Plus d'informations : man hosts.allow
Faites /etc/rc.d/init.d/xinetd restart pour prendre en compte les modifications.
Voila, c'est terminé. Si tout s'est bien passé, votre serveur mail fonctionne.
N'oubliez pas de vérifier que votre firewall et votre service DNS sont bien configurés (notamment l'enregistrement MX de votre nom de domaine, pour que votre serveur smtp soit connu du monde extérieur) .
Copyright
Copyright © 10/10/2004, Nicolas AGIUS
Ce document est publié sous licence Creative Commons Attribution 2.0 : http://creativecommons.org/licenses/by/2.0/ |