Serveur Mail · 6 min read · Nov 13, 2025
Filtre anti-spam Postfix utilisant Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC et ClamAV
Introduction
Ceci est une version similaire du HOWTO que l’on peut trouver ici : http://www200.pair.com/mecham/spam/spamfilter20050628.html. Si vous consultez ce howto, il est supposé que vous avez un certain niveau d’expérience avec les serveurs de messagerie, DNS, TCP/IP, pare-feux et Linux en général.
1 Configuration du serveur Ubuntu
Veuillez consulter la documentation déjà en ligne pour des détails sur la configuration d’un serveur Ubuntu. HowToForge a quelques HowTo qui sont très détaillés. Cependant, il y a quelques configurations d’installation décrites ici qui doivent être prises en compte lors de la configuration du serveur et qui pourraient différer d’autres howto.
NOTE : Ubuntu est installé par défaut en tant que système setuid. Ce que cela signifie, c'est que le compte root est désactivé et que vous devez exécuter tout avec un 'sudo' devant pour l'exécuter en tant que root. La solution consiste à exécuter 'sudo su -' et vous n'aurez plus à taper 'sudo' devant la commande car vous êtes dans une session bash en tant que root. Pour le reste de ce document, il est supposé que vous avez fait cela et que vous exécutez une session bash en tant que root, donc aucune commande sudo ne sera donnée. La morale de l'histoire est que, lorsque vous vous connectez à Ubuntu via SSH ou console, n'oubliez pas d'exécuter 'sudo su -' avant de commencer à modifier des fichiers système, déplacer/créer des répertoires ou installer/désinstaller des logiciels et des services.1.1 Partitions
Le partitionnement du disque de cette manière n’est pas une exigence, mais cela empêchera votre serveur de manquer complètement d’espace si quelque chose ne va pas dans le répertoire /var. De plus, le partitionnement du disque de cette manière vous permettra de créer des graphiques supplémentaires avec MailScannerMRTG qui peuvent examiner /var, /var/log et /var/spool séparément. MailScannerMRTG ne vérifiera pas l’espace disque sur les répertoires, il peut seulement calculer la taille par partitions.
Exemple de ma table de partition :
/boot 50MB Partition de démarrage EXT3 (PRIMAIRE)
Swap 2GB Partition d'échange (la taille dépend de votre mémoire, le double de votre mémoire devrait suffire) (PRIMAIRE)
/ 2GB Partition racine EXT3 (LOGIQUE)
/var 1GB Partition de données variables EXT3 (LOGIQUE)
/var/log 3GB Partition de données variables EXT3 (LOGIQUE)
/var/spool 2GB Partition de données variables Spool EXT3 (LOGIQUE)
/usr 4GB Programmes installés par l'utilisateur EXT3 (LOGIQUE)
/usr/local 2GB Programmes installés par l'utilisateur EXT3 (LOGIQUE)
/home ANY Répertoires personnels (bon endroit pour mettre de l'espace supplémentaire, vous pouvez repartitionner si vous manquez d'espace et utiliser cela.) EXT3 (LOGIQUE)1.2 Vérifier les paramètres réseau
Nous devons nous assurer que le système est configuré avec une adresse IP statique valide, que les serveurs DNS corrects sont dans /etc/resolv.conf et que votre serveur est identifié dans le fichier /etc/hosts.
vi /etc/network/interfacesLe fichier des interfaces réseau devrait ressembler à ceci :
auto lo eth0
iface lo inet loopback
# L'interface réseau principale
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1Redémarrez le service réseau pour que ces changements prennent effet :
/etc/init.d/networking restartÉditez le fichier resolv.conf pour ajouter des serveurs DNS :
vi /etc/resolv.confAssurez-vous que votre nom de domaine est en haut du resolv.conf, cela devrait ressembler à ceci :
search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2vi /etc/hostsLe début du fichier devrait ressembler à ceci :
127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfpPuisque nous y sommes, vous pourriez aussi bien ajouter d’autres hôtes que vous aimeriez que notre filtre anti-spam connaisse. Ajoutez ici tout serveur de messagerie interne. Il suffit d’ajouter d’autres entrées en bas de la liste.
1.3 APT et autres ajustements
Apt doit être configuré pour rechercher dans les dépôts universe et multiverse. Sauvegardez votre fichier actuel /etc/apt/sources.list :
cp /etc/apt/sources.list /etc/apt/sources.list.defaultRemplacez-le par le fichier sources.list suivant :
vi /etc/apt/sources.listdeb http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverseNous devons mettre à jour/rafraîchir le cache apt et installer quelques logiciels. Pour mettre à jour le cache, exécutez :
apt-get updateRemarque : C’est un bon moment pour changer votre image de noyau pour la bonne, vous aurez probablement besoin de ‘linux-image-i686’. Si vous ne savez pas ce que cela signifie, renseignez-vous. Exécutez un apt-get upgrade et prenez un moment pour résoudre les erreurs et/ou problèmes que vous pourriez rencontrer. Nous voulons éliminer tout ce qui pourrait causer des problèmes à l’avenir. N’oubliez pas de redémarrer une fois que tout est prêt et exécutez un dmesg | less, cela peut être très utile.
apt-get install sshUne fois ssh installé, vous devriez vous connecter au serveur via ssh en utilisant PuTTY depuis votre bureau linux ou windows. Cela faciliterait l’achèvement du reste de ce howto car vous pourrez copier/coller dans le terminal depuis le bureau. Alors allez-y, ssh ce petit.
Je règle généralement l’horloge du BIOS sur l’heure locale puis exécute ce qui suit pour synchroniser l’horloge.
apt-get install ntpdate
hwclock --systohcMaintenant, nous installons la plupart des choses dont nous aurons besoin. J’ai divisé la liste en 4 exécutions d’installation APT. 5-15 installations à la fois semblent prudentes, à vous de voir :
apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassinSélectionnez AUCUNE CONFIGURATION lorsque Debconf pour Postfix apparaît.
Installez unarj :
wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb
dpkg -i unarj_3.10.21-2_all.debMaintenant, nous devons également supprimer certains programmes, espérons que vous n’avez pas besoin de support PCMCIA ou d’imprimante. Ce serveur n’aura pas besoin de support de connexion à distance non plus. Vous n’aurez pas nécessairement tous ces programmes installés.
Désinstallez le logiciel suivant (tout en une ligne) :
apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent1.6 Nettoyage des services
Certains services peuvent encore persister même après la désinstallation des démons. Tout d’abord, nous devons sauvegarder inet.d :
cp -R /etc/init.d /etc/init.d.backupMaintenant, nous pouvons arrêter tous les services qui pourraient être en cours d’exécution et dont nous n’avons pas besoin :
/etc/init.d/lpd stop
update-rc.d -f lpd remove
/etc/init.d/nfs-common stop
update-rc.d -f nfs-common remove
/etc/init.d/portmap stop
update-rc.d -f portmap remove
/etc/init.d/pcmcia stop
update-rc.d -f pcmcia remove
/etc/init.d/pcmciautils stop
update-rc.d -f pcmciautils remove
/etc/init.d/ppp stop
update-rc.d -f ppp remove
/etc/init.d/exim4 stop
update-rc.d -f exim4 remove
update-rc.d -f ntpdate removeDésactivez tous les services que nous avons arrêtés :
update-inetd --disable time
update-inetd --disable daytime
update-inetd --disable echo
update-inetd --disable chargen
update-inetd --disable ident
update-inetd --disable discardLe dernier peut vous poser une question concernant “des entrées multiples”, répondez oui (y).
Vérifiez que nous avons tout obtenu :
lsof -i | grep LISTENLe seul démon que vous devriez voir à ce stade est *:ssh. Vous devrez peut-être exécuter cela à nouveau :
update-inetd --disable discardS’il y a d’autres programmes affichés, essayez de redémarrer et testez à nouveau.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.