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/interfaces

Le 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.1

Redé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.conf

Assurez-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.2
vi /etc/hosts

Le début du fichier devrait ressembler à ceci :

127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfp

Puisque 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.default

Remplacez-le par le fichier sources.list suivant :

vi /etc/apt/sources.list
deb 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 multiverse

Nous devons mettre à jour/rafraîchir le cache apt et installer quelques logiciels. Pour mettre à jour le cache, exécutez :

apt-get update

Remarque : 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 ssh

Une 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 --systohc

Maintenant, 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 spamassassin

Sé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.deb

Maintenant, 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 mailagent

1.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.backup

Maintenant, 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 remove

Dé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 discard

Le 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 LISTEN

Le seul démon que vous devriez voir à ce stade est *:ssh. Vous devrez peut-être exécuter cela à nouveau :

update-inetd --disable discard

S’il y a d’autres programmes affichés, essayez de redémarrer et testez à nouveau.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.