Discuter:Netqmail/Vpopmail
Un article de Wiki SOS-ADMIN.
[modifier]
option uid/gid
Bonjour,
Lorsque j'exécute le qmail-smtpd frainchement compilé et installé, tout se passe bien, entre autre, par exemple :
srv160 bin # ./qmail-smtpd 220 srv160.sd-france.net ESMTP mail from: david@euro-web.fr 250 ok rcpt to: fake@srv160.sd-france.net CHKUSER rejected rcpt: from <david@euro-web.fr::> remote <:unknown:unknown> rcpt <fake@srv160.sd-france.net> : not existing recipient 511 sorry, no mailbox here by that name (#5.1.1 - chkuser) quit 221 srv160.sd-france.net
par contre, lorsque je passe par telnet/25, ça passe pas, en fait ça passe, aucun destinataire n'est rejeté, un strace révèle la cause :
[pid 18108] open("/var/vpopmail/domains/srv160.sd-france.net/.qmail-default", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission denied)
[pid 18108] setresgid32(-1, 200, -1) = 0
[pid 18108] setresuid32(-1, 201, -1) = 0
[pid 18108] write(2, "CHKUSER accepted rcpt: from <dav"..., 177CHKUSER accepted rcpt: from <david@euro-web.fr::> remote
:lns-bzn-22-82-249-127-181.adsl.proxad.net:82.249.127.181> rcpt <fake@srv160.sd-france.net> : found existing recipient
) = 177
ce qui est pas si mal, puisque chkuser ne refuse un mail que si il est certain qu'il doit l'être.
je suppose que l'option uid/gid est approprié pour pouvoir "obtenir" les droits nécéssaires.
seul hic, cette option est à exclure avec TLS. que faire ?
- Gcuesta:
Si je me souvient bien, le démon qmail-smtpd tourne avec un des utilisateurs qmail (qmaill) alors que les fichiers de vpopmail sont vpopmail:vchkpw et en 700;
- DaviXX:
Oui, je sais :) Ma question portait surtout sur la solution :) le problème je l'ai cerné. une idée ?
- Elgi:
Fait tourner qmail-smtpd sous le user et groupe de vpopmail.
- Gcuesta:
Ca, c'est assez chaud, au vu des droits sur les repertoires qmail; ou alors, en ajoutant vpopmail dans le groupe nofiles; et en dernier recours, recompiler vpopmail en utilisant l'utilisateur qmaill:nofiles, ce qui doit etre le plus simple.
- Elgi:
http://www.interazioni.it/opensource/chkuser/documentation/running/
- Gcuesta
#if defined CHKUSER_ENABLE_UIDGID /* qmail-smtpd is running now as (effective) qmaild:nofiles */ /* Save the effective UID & GID (qmaild:nofiles) */ eff_uid = geteuid (); eff_gid = getegid (); /* Now set new effective UID & GID, getting it from real UID & GID (vpopmail:vchkpw) */ setegid (getgid()); seteuid (getuid()); /* qmail-smtpd is running now as effective vpopmail:vchkpw */ #endif
Donc activer l'option (c'est deja fait par défault) et mettre qmail-smtpd en La procédure serait de faire chown vpopmail:vchkpw et chmod +s qmail-smtpd.
- DaviXX :
Donc pour être clair, deux options :
1) Exécuter qmail-smtpd avec uid/gid de vpopmail Pour cela il suffit simplement de modifier /service/qmail-smtpd/run Il n'y a rien d'autre à faire
2) Utiliser le bit Setuid Pour cela il faut chown l'exécutable qmail-smtpd pour qu'il appartienne a uid/gid de vpopmail activer CHKUSER_ENABLE_UIDGID dans chkuser_settings.h
J'oublie rien ? c'est ça ?
- Elgi:
Tout est là : http://www.interazioni.it/opensource/chkuser/documentation/running/switching.html http://www.interazioni.it/opensource/chkuser/documentation/running/fixed.html http://qmailwiki.inter7.com/Simscan/Related_Docs/Simscan_ClamAV_Chkuser_Installation_Guide#Applying_Chkuser
- DaviXX :
Merci Elgi. Donc, selon moi, la methode "fixed" est la "meilleure" dans le sens où elle ne casse aucune compatibilitée, telle que TLS. Ou bien y a t'il quelque chose que je rate ?
Je dirais que le seul avantage a utiliser le switching c'est qu'il n'obtient les droits vpopmail que lorsque c'est necessaire me trompes-je ?

