Art. 122-5

Sommaire

[modifier] QMail Patch Art122-5

L'objet de ce patch est de résoudre les problèmes de communication avec des plateformes comme neuf.fr : Utilisez la passerelle messagerie de votre fournisseur Internet (smtp.xxx) en donnant les moyens à QMail de ce présenter sous le bon nom.

L'idée est tout en respectant les différentes RFC, d'essayer de passer les barrages anti-spam des FAI qui eux ne sont pas toujours full compliant RFC.

Donc par défaut, nous remplaçons le nom de la machine dans me par [ip] ce qui en soit est suffisant pour passer le barrage de neuf et est compliant RFC 2821. Modification de QMail pour se présenter avec son IP

Mais il semblerait que certain FAI souhaitent bloquer les machines se présentant avec leur adresse IP (bien que ça soit autorisé par la RFC 2821). L'idée de ce patch est de s'appuyer sur la configuration particulière de notre serveur (qui doit se retrouver chez beaucoup de serveurs mutualisés), nous sommes à la fois la passerelle de messagerie pour nos clients, le MX des domaines hébergés, et le DNS principal de ces domaines.

En considérant que le MX principal est notre serveur, on interroge le DNS (notre serveur) pour obtenir la liste des MX, et si l'un à la bonne adresse ip, on se présente sous ce nom après avoir contrôlé que ce nom est bien un FQDN du domaine considéré. Sinon, on se présente avec le helohost par défaut, la modification de QMail pour se présenter avec son IP est donc toujours d'actualité.

[modifier] Recuperation des sources

La licence de QMail ne permet pas de distribuer de version modifiée de QMail, binaire ou source. Par contre rien n'interdit la distribution de patch. Ainsi, pour recompiler QMail il nous faut récupérer :

[modifier] Préparation des sources

Quelques pistes :

Données utiles :

  • les logs se trouvent dans /usr/local/psa/var/log/maillog
tail -f /usr/local/psa/var/log/maillog

[modifier] Prérequis

  • libssl-dev (debian)
  • openssl-devel (fedora)

[modifier] Les patchs Plesk 8

Après avoir décompresser les source de QMail et les Patch, on applique les patchs en se plaçant dans le répertoire contenant les sources de QMail. (qmail_patches est le répertoire contenant les pach de plesk)


for i in ../qmail_patches/patch-* ; do patch < $i ; done
patch < ../qmail_patches/fr49-quota-patch

[modifier] Configuration des sources

Histoire de palier à un problème avec la partie SSL, dans le répertoire qmail-1.03 :

echo "-lssl -lcrypto" > ssl.lib

Ensuite on va éditer les fichiers de configuration des users et groupes, QMail est déjà présent sur la machine, on va donc récupérer les users existant :

  • conf-users : on ajoute après les noms, leur userid. On peu les sortir du fichier /etc/passwd avec ce script :
cat conf-users |xargs -n1 -iuser grep user /etc/passwd
  • conf-groups : on ajoute après les noms, leur groupid. On peu les sortir du fichier /etc/group avec ce script :
cat conf-groups |xargs -n1 -igroup grep group /etc/group


A ce stade il est bon de compiler une première fois QMail avant de procéder aux modifications, histoire de s'assurer que tout est en ordre

[modifier] Le Patch Art122-5

Téléchargez le fichier patch-qmail-art122-5.tgz

Décompressez le dans le répertoire contenant qmail-1.03, vous obtenez l'arborescence :

/patch-art122-5
     /patch-art122-5.diff
     /README.art122-5
/qmail-1.03
     /...

Puis, depuis le répertoire qmail-1.03 tappez :

patch -p 1 < ../patch-art122-5/patch-art122-5.diff

[modifier] Compilation

make

bon la première fois ça plante avec comme message :

Oops. Your system's FD_SET() has a hidden limit of 1024 descriptors.
This means that the qmail daemons could crash if you set the run-time
concurrency higher than 509. So I'm going to insist that the concurrency
limit in conf-spawn be at most 509. Right now it's 1000.

Du coup, édition du fichier conf-spawn et on change 1000 en 255 (enfin pas plus de 509), et on relance la compilation

[modifier] Installation

Dans mon cas je n'ai pas à tout réinstaller, puisque tout est identique aux sources, à l'exception de qmote-remote. Je vais donc uniquement modifier ce programme sans toucher au reste de la configuration.

  • Arrêt de qmail
/etc/init.d/qmail stop
  • Backup de l'ancien qmail-remote
cp /var/qmail/bin/qmail-remote /var/qmail/bin/qmail-remote.backup
  • Remplacement par le nouveau
cp qmail-1.03/qmail-remote /var/qmail/bin/qmail-remote
  • Redémarrage de qmail
/etc/init.d/qmail start

Il n'y a plus qu'à tester

Note: pour plus de sureté vous pouvez faire le choix d'une réinstallation complète de QMail

Anglais
L'article que vous demandez n'existe pas en Anglais.
Un peu de musique ?


A propos