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
