 |
Forum technique developpement, GNU Linux et logiciels, de l'ours Forum d'echange et d'entre aide sur le developpement, GNU Linux
|
| Forum developpement logiciel et Internet - Support informatique |
| |
Bienvenue sur le forum informatique et internet. N'hésitez pas à poser vos questions, à vous inscrire pour participer. Ce forum a pour but de partager une base de connaissance ouverte à tous couvrant l'informatique et les réseaux, antivirus et anti spywares. On a pas de pognon, de moins en moins même, mais on a des idées ! Dans l'esprit du logiciel libre, et de l'accès pour tous à la connaissance, vous pouvez copier les informations présentes dans ce forum. Il sera cool de votre part de placer un lien en retour vers ce forum, mais ça n'est pas obligatoire. |
|
|
| |
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
ronours Site Admin
Inscrit le: 25 Fév 2007 Messages: 670
|
Posté le: Mer Nov 28, 2007 10:12 am Sujet du message: Patcher qmail avec chkuser ovh release 1 |
|
|
Lire en entier avant de tenter quoi que ça soit !
Installer le patch chkuser sur qmail serveur dedié ovh release 1
ATTENTION, vous engagez votre propre responsabilité en suivant ce tuto. ça a fonctionné sur mon serveur sur lequel j'avais deja patché avec qmailqueue pour faire fonctionner spamassassin et clamd (clamav) antivirus.
Ca devrait fonctionner sur une fresh install aussi.
Ne vous lancez pas dedans si vous ne savez pas, par exemple, decompresser un tar ou autre. C'est destiné a un admin avec un peu d'experience
Pour installer le patch chkuser, qui permet de controler les emails dès l'arrivée sur le serveur afin de limiter le remplissage de la mailqueue, nous allons installer le patch chkuser. Compatible avec le patch qmailqueue, il faut juste repartir du source patché si c'est le cas.
Chkuser permet egalement de ne pas analyser par antivirus et antispam les emails erronés, ce qui fait gagner une ressource considérable en terme de CPU ! On diminue le load facilement par 3 pour une machine avec qmail qui heberge des domaines un peu agés, et donc, spammés.
Pour installer chkuser, nous avons besoin de la derniere version de vpopmail, aucun soucis, ça va s'installer presque tout seul. Tout le travail qui suit est a executer qmail stoppé, nous travaillons en console en ssh!
Donc, vpopmail installé par defaut sur la release 1 d'ovh n'est pas suffisament recent, il faut donc mettre a jour. On va se positionner dans /home/ovh/src/ et on va telecharger la toute derniere version au moment ou j'ecris cet article:
| Code: | | wget http://ovh.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.25.tar.gz |
On decompresse, et on va dans le dossier.
| Code: | | tar -xvzf vpopmail-5.4.25.tar.gz |
Faites une sauvegarde de votre vpopmail actuel au cas ou :
| Code: | | tar -cvzf /home/vpopmail_backup.tgz /home/vpopmail/ |
Comme l'annonce la "FAQ" copiée ci dessous, aucun parametre ne sera modifié lors de la mise a jour! cool!
| Citation: | 16. I want to upgrade vpopmail, what do I need to worry about?
Two things happen on an upgrade. The programs, library and
include files get over written and the permissions get fixed.
None of the users or domain get touched. So to upgrade:
1) download new vpopmail software
2) ./configure with your options
3) make
4) make install-strip
5) upgrade completed. |
Comme l'annonce la faq, vous allez dans le dossier fraichement decompressé, et vous tapez
| Code: | | ./configure --enable-roaming-users=y --enable-qmail-ext=y |
qui devrait bien se passer (roaming user c'est pop before smtp en fait, pour autoriser ceux qui pop a envoyer des mails)
puis nous tapons
pour compiler. Et là, paf! erreur, autoconf n'est pas assez récent ! la saleté!
Donc, nous devons le mettre a jour, comme la redhat 7.2 est vieille, on ne trouve pas de rpm suffisement a jour pour pouvoir compiler .Il faut installer autoconf depuis la sources.
Etape pour Autoconf install : download, configure, make, make install (ce qui se fait tout seul)
1 Download : (on va dans /root et on tape )
| Code: | | wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz |
=>c'est pas la toute derniere, mais c'est la derniere source complete et ça suffit pour compiler vpopmail.
On decompresse :
| Code: | | tar -xvzf autoconf-2.61.tar.gz |
et on entre dans le dossier decompressé
2 Configure : on tape
et ça doit aller tout seul
3 Make, on tape :
(puis entrée!)
4 install, on tape :
(et voila, vous devez avoir le tout dernier autoconf)
On retourne dans /home/ovh/src/vpopmail-5.4.25,
| Code: | | cd /home/ovh/src/vpopmail-5.4.25 |
et on refait un
Tout doit bien se passer. Je rappelle que qmail doit etre arreté !
On peut maintenant installer ! on tape :
et voila tout est mis a jour.
Si vous relancez qmail
| Code: | | service qmail start |
ça doit tourner normalement. Reste plus qu'a "patcher" qmail pour chkuser.
On arrete qmail! (c'est pas grave si ça reste arreté, c'est pour le bien de tous lol)
Je vous conseille d'archiver les sources d'origine, si vous avez deja installé antispam antivirus, sauvez la version des sources que vous avez patché avec qmailqueue en cas de soucis, on pourra revenir en arriere !
| Code: | | tar -cvzf /home/ovh/src/qmail-1.03_qmail_orig.tgz /home/ovh/src/qmail-1.03 |
Puis on va dans /root, on telecharge le patch et les fichiers de chkuser.
Je ne sais pas si les deux sont necessaire, mais dans le doute, on les prends, le patch et la release!
| Code: | | wget http://www.interazioni.it/opensource/chkuser/download/archives/chkuser-2.0.9-release.tar.gz |
| Code: | | wget http://www.interazioni.it/opensource/chkuser/download/archives/chkuser-2.0.9-update.tar.gz |
On decompresse les deux :
| Code: | tar -xvzf chkuser-2.0.9-release.tar.gz
tar -xvzf chkuser-2.0.9-update.tar.gz
|
on doit se retrouver avec un dossier et un fichier "patch" comme ça : chkuser-2.0.9-release.patch
On retourne dans le dossier source de qmail,
| Code: | | cd /home/ovh/src/qmail-1.03 |
et on tape :
| Code: | | patch </root/chkuser-2.0.9-release.patch |
Ceci va modifier les sources comme il faut, et ajouter les fichiers manquants. Normalement aucune erreur ne se produit. S'il y a une erreur, essayez de comprendre d'où ça vient, et de toute façon(si il y a erreur), effacez ce dossier source de qmail,
| Code: | | rm -rf ./qmail-1.03 |
et redecompressez votre sauvegarde pour repartir sur une base saine pour des essais.
| Code: | | tar -xvzf /home/ovh/src/qmail-1.03_qmail_orig.tgz |
Si vous avez l'install par defaut, il faut decommenter, avec l'editeur de fichier de votre choix, dans le fichier chkuser_settings.h la ligne suivante :
#define CHKUSER_ENABLE_UIDGID
(on enleve le /* avant et le */ apres. Ceci car qmail, vpopmail et l'antivirus et antispam ne tournent pas sous les memes comptes. ça permet a chkuser de basculer sur le compte voulu.
Comme tout s'est bien passé, on va compiler, en faisant un :
(on efface les restes )
(ça doit compiler sans erreur)
Si vous etes arrivé au bout, vous avez une version compilée pret à etre installée.
//################### URGENT - INDISPENSABLE ########################
Avant d'aller plus loin, sauvegardez les anciens binaires :
| Code: | | tar -cvzf /var/qmail.tgz /var/qmail |
C'est cette sauvegarde qui vous permet de relancer qmail si vous merdez votre truc, plus principalement le dossier "bin" dans /var/qmail a restaurer si rien ne va.
//################### URGENT - INDISPENSABLE ########################
puis assurez vous que qmail est bien arreté !
Renommez le fichier /var/qmail/bin en /var/qmail/bin_orig :
| Code: | | mv /var/qmail/bin /var/qmail/bin_orig |
ensuite taper
qui devrait recreer ce dossier.
Afin d'etre sûr que rien n'ai bougé, on va copier l'ancien contenu de bin dans celui qui est créé. (Par ex si vous aviez antispam, le filtre perl etait là dedans et n'est pas recréé automatiquement).
Donc on copie le contenu du vieux dossier bin (bin_orig) sauvé précedement, en repondant non (taper N) a toute demande d'écrasement.
| Code: | | cp -R /var/qmail/bin_orig/* /var/qmail/bin/ |
Ainsi seuls les scripts hors qmail seront récupérés !
Le reste a du etre copié à sa place.
Maintenant, reste plus que deux parametres, en effet, pour que chkuser puisse verifier que le user existe, il doit pouvoir lire la liste des users dans vpopmail !
Pour ça on va donc changer l'uid avec lequel est lancé qmail, on va le lancer avec l'id de vpopmail !
pour ça, on va changer le parametre dans le fichier init.
Il faut ouvrir /etc/rc.d/init.d/qmail (avec l'editeur de votre choix) et modifier le paragraphe suivant :
| Code: | env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
;;
stop) |
En ceci :
| Code: | env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
;; |
Vous notez, c'est le uid qui est passé de 503 a 508, l'id de vpopmail.
Pour verifier l'id sur votre machine tapez :
| Code: | | cat /etc/passwd|grep vpopmail |
ça vous donne ça :
vpopmail:x:508:503::/home/vpopmail:/bin/bash
C'est le premier chiffre qui est uid (ici 508).
Vous sauvez votre fichier /etc/rc.d/init.d/qmail. De cette façon qmail sera lancé sous l'uid de vpopmail.
Ensuite, il faut autoriser le binaire qmail-smtpd a etre lancé par un autre uid!
Par defaut, il appartient a root apres install. On va dans /var/qmail/bin
et on va changer ça. Comme nous devons donner les droit d'execution en suid, on doit changer le proprietaire !
on fait ça (chaque ligne est une commande à saisir et à valider avec entrée):
| Code: |
chown qmaill qmail-smtpd
chgrp qmail qmail-smtpd
chmod 6555 qmail-smtpd
|
Chez moi j'ai un user "qmaill" dedié a qmail-smtpd. Sans droits speciaux, donc moins de risques. Choisissez votre user qmail d'origine mais pas root!.
Le groupe qmail existait deja. Ensuite on donne les droits en 655 (comme indiqué au dessus) pour que qmail-smtpd puisse etre appelé par chkuser et l'antispam au besoin.
Et voila, relançage de qmail, et c'est tout bon
| Code: | | service qmail restart |
Du coup, vous devez virer les "catch all" si vous en aviez. Vos fichier ".qmail-default" dans /home/vpopmail/domain/ton_domaine/.qmail-default doivent ressembler a ça :
| Code: | | | /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox |
Voila en esperant que ça depanne !
Relancer qmail.
Testez en envoyant des mails de votre compte fai vers votre serveur et vice verça, essayez d'envoyer un mail vers un compte qui n'existe pas, et voyez.
Si tout est ok, votre serveur doit instantanement repondre que le compte n'existe pas et refuser aussi sec le message en renvoyant l'erreur au smtp qui essaie d'envoyer.
Les logs doivent afficher des choses du genre :
| Citation: | CHKUSER rejected rcpt: from <Contact@giglizard.com::> remote <mail.carhuewifi.com.ar:unknown:200.0.236.115> rcpt <undhenk@mypseudo.com> : not existing recipient
|
(Affichage en console, là ou vous avez relancé qmail, car nous n'avons pas spécifié de sortie pour les logs, qui s'affichent donc en 'stdout', soit, la console.
Si il y a des erreurs, ça ne marche pas, ou autre, restaurez les fichiers d'origine en stoppant qmail, puis re decompressez votre sauvegarde avec les binaires :
puis
puis
| Code: | | tar -xvzf qmail.tgz |
et relancez qmail, la situation devrait etre retablie.
References :
http://www.inter7.com/vpopmail/
http://www.interazioni.it/opensource/chkuser/
Le tutoriel comporte des détails parfois évidents pour moi mais que j'ai rajouté suite à des questions d'utilisateurs qui avaient du mal a suivre. |
|
| Revenir en haut de page |
|
 |
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|