| |||||
| Dernière réponse | |
|---|---|
| Sujet : chrooter proftp [RESOLU] - postfix | |
| bobor | toutes les lib pour bash sont bien dispos dans l'environnement chrooté. Postfix se lance bien, mais une fois lancé par la commande chroot /chroot/postfix `/usr/sbin/postfix start` je me retrouve sous bash en environnement chrooté. Cela ne fait pas ça avec proftpd. Et surtout je ne sais pas comment le lancé au démarrage dans ces conditions. |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| bobor | toutes les lib pour bash sont bien dispos dans l'environnement chrooté. Postfix se lance bien, mais une fois lancé par la commande chroot /chroot/postfix `/usr/sbin/postfix start` je me retrouve sous bash en environnement chrooté. Cela ne fait pas ça avec proftpd. Et surtout je ne sais pas comment le lancé au démarrage dans ces conditions. |
| asphro | alors oui en effet il faut plein d outil comme grep, chmod etc ..
solution tu chroot bash, ldd !!! et les lib qui vont avec dans ton environnment ou est postfix !! ensuite tu te chroot dans chroot/postfix et la tu auras plus d'info sur ce qui te manque !!! c 'est ce que j ai fais perso !! |
| bobor | je UP car je ne vois pas d'où viens ce problème de bash
postfix start lance postfix-script qui est un script sh, donc je comprends qu'il en ai besoin, mais je ne vois pas pourquoi après il reste en environnement chrooté. C'est assez gênant au démarrage |
| bobor | je ne dois plus être très loin pour postfix. Mais lorsque je lance
chroot /chroot/postfix `/usr/sbin/postfix start` il me lance un bash après avoir lancé postfix. Si je ne mets pas bash dans l'environnement chrooté, il lance postfix et fais une erreur car bash ne peyt ^tre trouvé. Mais postfix semble bien lancé (je n'ai pas encore fais les tests) |
| bobor | âr contre je ne trouve dans le man fstab comment monter en bind au démarrage.
Qq'un sait? |
| asphro |
|
| axey | Bein si tu fais par exemple :
mount --bind /var/spool/mail /home/toto Tout le contenu de /var/spool/mail sera aussi visible dans /home/toto . Un meme repertoire peut etre monte en 300 endroits differents si necessaire. --move ca deplace l'endroit ou un repertoire est visible. mount --move /var/spool/mail /home/toto Ca fait qu'on ne voit plus rien dans /var/spool/mail : tout son contenu devient visible dans /home/toto . C'est 100% atomique (contrairement a un 'mv' sur des partitions distinctes), et ca n'ecrit rien sur disque dur. Sous BSD c'est mount_null . |
| bobor | ça permet de monter une partition (ou un répertoire) à plusieurs endroit.
ici il suffit de faire mount --bind /var/spool/mail /chroot/postfix/var/spool/mail et le répertoire ezst monté aux 2 endroits. Donc en faisant de même avec le serveur pop, il est possible de les chrooter séparément. |
| asphro | je comprend pas les option bind et move a mount ca fais koi exactement ? |
| bobor | effectivement ça marche :D
bon je devrais pouvoir m'ensortir avec ça donc. Merci! |
| axey | /var/spool/mail n'a pas besoin d'etre sur une partition separee. mount --bind et mount --move ca marche sur n'importe quel repertoire. |
| bobor | je ne crois pas que les liens symbnoliques fonctionnent à travers un chroot. C'est bien le problème des liens symboliques sous proftpd avec defaultroot activé.
De plus, j'ai l'intention de mettre /var et /chroot sur des partitions différentes. Encore un obstacle au lien symbolique. J'ai pensé au mount -o bind mais il faudrait que je crée une partition pour /var/spool/mail, ce qui est un peu lourd. La seule solution semble effectivement de chrooter ensemble ces 2 services. |
| asphro | ln -s /chroot/postfix/var/spool/ /var/spool
pour ma par j ai prefere chrooter courrier-imap avec postfix !! |
| bobor | bon maintenat je m'attaque à postfix. Question pour démarrer: si postfix est chrooté, il va mettre les mails dans /chroot/postfix/var/spool/mail. Le serveur pop ne trouvera donc pas les mails. Dois-je chrooter le serveur pop avec postfix, ou y a-t-il une astuce? |
| asphro |
|
| bobor | bon ça y est tout marche!! (avec xinetd!):D
merci de ta collaboration. une petite question pour optimiser le tout. J'ai lu sur le net qu'il valait mieux mettre tous les fichiers qui ne changent pas en root. A priori je prèfèrerais les mettre sous un user comme ftp, même les librairies (sachant que le user ftp n'aura pas accès au ftp). Car si quelqu'un arrive à s'introduire dans l'environnement chrooté je préfère qu'il execute des commandes sous le nom ftp que root. Qu'en penses-tu? Je peux tout mettre sous ftp sauf etc que je laisserai en root. Et ne donner aucun droit à "tous" (quelque chose comme rwxr-x---) |
| asphro | tu peut po le mettre en standlone non !? |
| bobor | bon à priori c'était ça... :D merci!
ce n'est pas fini pour autant. Il est actuellement configuré en mode inetd, et donc lancé depuis xinetd. Mais là il me met connection refused d'office. Que dois-je mettre dans host.allow sachant que la commande que je lance depuis xinetd est '/usr/bin/chroot /chroot/proftpd /usr/sbin/proftpd' car je pense que le roblème vient de là |
| asphro |
|
| bobor | j'ai mis libresolv mais pas libnss. Je crois que libnss est pour nsswitch donc openldap. Moi j'utilise pam.
Ceci dity je vais quand même essayé :D Sinon j'ai fait l'essai de chrooter ma partition mandrake l'accès au serveur dns se fait bien, donc c'est juste une histoire de réolsution et de librairie... |
| asphro | moi mon serveur dns est pas chrooté dans la meme racine et ca marche !! a mon avis t as du oublié libresolv* ou libnss* |
| bobor | bon ça y est j'ai troiuvé la couille qui merdait: j'avais bien mis ld-linus* mais pas /lib/ld*!
Je ne suis plus très loin du but. Maintenant j'ai un problème avec la résolution de nom. J'ai bien mis hosts et resolv.conf dans l'environnement chrooté mais il ne parviens pas à résoudre les noms. Le serveur DNS est chrooté sur la même machine. une idée? |
| asphro | non c est que t as oublié des fichiers ou librairies !!
moi j avais oublié libber.* il ma dis qu il ne pouvait pas la charger car elle n existé pas !! stou !!! |
| bobor | j'ai à peu près la même chose en dehors des libs mysql et openldap.
j'ai essayé avec: chroot /chroot/proftpd/ /usr/sbin/in.proftpd il me dit (configuration en standalone): chroot cannot execute /usr/sbin/in.proftpd:no such file or directory et j'ai essayé la même commande dans xinetd.d (configuration type inetd) et là il me met connection refused avant que je fasse quoique ce soit. j'utilise les utilisateurs locaux. Dois-je rajouter autre chose pour pam??? |
| asphro | 17 min chrono
est voila ca marche en base po encore essayer avec ldap mais avec /etc/password ca marche listing qui se trouve dans /chroot/proftpd
|
| bobor | bon j'ai essayé plein de trucs, rien à faire, toujours le même message: no such file or directory.
Est-ce que je dois refaire un ldd dans l'environnement chrooté? Comment? Pour l'instant j'ai mis toutes les librairies liées à proftpd dans /chroot/proftpd/lib (elloes étaient dans /lib à l'origine), les programmes de proftpd dans leurs répertoires respectifs (/chroot/proftp/usr/sbin et bin), les fichiers de conf, /etcgroup et passwd ainsi que le répertoire pam.d je ne vois pas quoi mettre d'autre. HELP please... |
| bobor | bon bah pour l'instant ça ch... /usr/sbin/proftpd: no such file or directory
après un chroot /chroot/proftpd /usr/sbin/proftpd |
| asphro |
|
| bobor | il vaut mieux utiliser rsync ou ln (pas symbolique)?
|
| asphro |
|
| houplaboom42 |
|
| bobor | quelle est la commande pour connaitre les librairies dont il a besoin?
Tu arrives à chrooter mysql et apache et faire du php? si tu as un lien également pour chrooter postfix je suis interessé! :D |
| asphro | en lui chrootant aussi les librairies qu ila besoin !!
avec pour outil seul ldd cp -a et rsync -a j ai chrooté postfix courrier-imap apache + tous c modules (rnfin normale koa) mysql bind mais pas pureftpd !!! pkoi !!! parce j ai po pensé que je pouvais ne lancé 2 un en local sur un autre port, un pour l exterieur !! mais vais le faire je viens dy penser !! |
| bobor | comment? :D |
| asphro | oui !!!
|
| bobor | je suis sous gentoo et je souhaiterais chrooter proftpd, pas seulement les répertoires disponibles mais le serveur lui-même.
seulement lorsque je fais emerge proftpd --emptytree --pretend, les dépendances sont énormes: perl, groof, gettext, pam... Je me demande alors si c'est possible? :D |




