Serveur ftp sous linux et blocage des comptes - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 05-12-2003 à 17:34:23
google est ton copain  
 
 
sinon voici la réponse : http://archives.neohapsis.com/arch [...] /0367.html 
 
edit : mots clés : chroot vsftp
Marsh Posté le 05-12-2003 à 20:38:26
yes ca m'interesse trop mais ca ne fonctionne toujours pas : 
je me suis aussi aidé de cette page : 
http://www.tjw.org/chroot-login-HOWTO/ 
mais rien à faire , lorsque j'essai de me logger sur le ftp avec un user crée avec cette methode : il me dit password incorrect. 
(je ne peux meme pas me logger sous linux avec cette methode)
Marsh Posté le 05-12-2003 à 23:00:39
tu as un problème là... tu as bien donné les bons droits aux fichiers nécessaires au chroot (bash/sh, ...) ? parce que tu dois pouvoir le faire en local sur le système (après pour le ftp ça coulera tout seul)
Marsh Posté le 05-12-2003 à 23:10:22
j'ai suivi la methode de l'adresse que j'ai file , c a d que je fous les bash et autres su dans le /home/usr/bin ; 
si je regarde les droits sur ces fichiers , c'est le root qui est tj proprietaire. 
une idée??
Marsh Posté le 05-12-2003 à 23:26:06
passe les bons droits à l'utilisateur en question, par exemple : 
 
chown root:ton_user les_éxécutables 
chmod 550 les_éxécutables 
 
enfin bref, avec chown tu attribues le propriétaire et le groupe de l'utilisateur (chown propriétaire:groupe_utilisateur), ensuite avec chmod, tu restreints les droits, chmod 550 veut dire ici : 
 
propriétaire : lecture/éxécution (5) 
groupe : idem (5) 
autres utilisateurs : aucun droit (0) 
 
pour les droits, ça se compte en binaire : rwx = 7 et --- = 0 
 
je te conseille de lire les man de chmod et chown, ça devrait te servir  
 
Marsh Posté le 05-12-2003 à 23:32:51
en fait je connais dejà un peu ces histoires de droits pour le chmod ou le chown seulement là , meme en faisant la manip , ca ne fonctionne pas ; 
lorsque j'essaie de me loguer sous linux avec mon user , il me renvoie no such file or directory et je reviens a l ecran de login
Marsh Posté le 05-12-2003 à 23:35:30
et quand j essaie de me connecter par ftp , il me renvoie un login incorrect 
(mon client c gftp)
Marsh Posté le 05-12-2003 à 23:40:46
donc à mon avis il doit rechercher un fichier de conf 
 
regarde dans /var/log/secure et /var/log/messages au cas où
Marsh Posté le 05-12-2003 à 23:43:06
je vais regarder ca mais si je me logge sous linux avec le compte , voila ce que j'ai : 
no shell , permission denied  
je sais pas si ca peut aider....
Marsh Posté le 05-12-2003 à 23:46:28
j'ai ca dans les logs : 
Dec  5 23:48:17 Nemo proftpd[2900]: Nemo (Nemo[192.168.0.3]) - FTP session opened.  
Dec  5 23:48:17 Nemo PAM_pwdb[2900]: (ftp) session opened for user toto by (uid=0) 
Dec  5 23:48:17 Nemo proftpd[2900]: Nemo (Nemo[192.168.0.3]) - FTP session closed. 
Dec  5 23:48:17 Nemo PAM_pwdb[2900]: (ftp) session closed for user toto
Marsh Posté le 05-12-2003 à 23:47:35
j'ai vu qu'il ne fallait pas de pam d'apres ce que j'ai lu ici 
ttp://www.tjw.org/chroot-login-HOWTO/
Marsh Posté le 05-12-2003 à 23:48:49
| cyberfred a écrit : je vais regarder ca mais si je me logge sous linux avec le compte , voila ce que j'ai :  | 
 
 
ça c'est un problème de shell mal configuré dans passwd, si tu as spécifié un certain shell dedans, il faut utiliser celui-ci et pas un autre, donc indiquer le bon chemin aussi 
 
edited
Marsh Posté le 05-12-2003 à 23:50:35
| cyberfred a écrit : j'ai ca dans les logs :  | 
 
et ca dans secure : 
Dec  5 23:47:17 Nemo proftpd[2893]: Nemo (Nemo[192.168.0.3]) - USER toto (Login failed): Invalid shell: /bin/chroot_shell 
Dec  5 23:47:47 Nemo proftpd[2895]: Nemo (Nemo[192.168.0.3]) - USER toto (Login failed): Invalid shell: /bin/chroot_shell 
Dec  5 23:48:17 Nemo proftpd[2900]: Nemo (Nemo[192.168.0.3]) - USER toto (Login failed): Invalid shell: /bin/chroot_shell
Marsh Posté le 05-12-2003 à 23:53:09
| BMOTheKiller a écrit :   | 
 
 j ai ca pour le user toto ds /etc/passwd : 
toto:x:504:504: home/toto
home/toto bin/chroot_shell  (mince ,  a la place du smiley y a ca attaché bien sur :  /)
bin/chroot_shell  (mince ,  a la place du smiley y a ca attaché bien sur :  /)
Marsh Posté le 05-12-2003 à 23:58:29
fais un : ls -al /bin/chroot_shell 
 
sinon pour quel script as-tu opté ? la 1ère ou la 2ème solution ? 
car justement, comme c'est mis il y a des chances que tu ais un problème de libs, il ne trouve pas une lib, donc ne peut éxécuter le chroot
Marsh Posté le 06-12-2003 à 00:02:54
si je fais un  ls -al /bin/chroot_shell , il me renvoie ca : 
-rw-r--r--  1 root   root    379 dec 5  22:09 /bin/chroot_shell 
 et voici le script chroot_shell , que j'ai crée avec kedit tout simplement : 
#!/bin/bash 
if [ "$1" = "-c" ]; then 
        i=0; 
        PARAMS=""; 
        for param in $*; do 
                if [ $i -gt 0 ]; then 
                        PARAMS="$PARAMS $param"; 
                fi 
                let i++; 
        done; 
        sudo /usr/sbin/chroot /home/$USER /bin/su - $USER -c "$PARAMS" 
else 
        sudo /usr/sbin/chroot /home/$USER /bin/su - $USER 
fi;
Marsh Posté le 06-12-2003 à 00:11:34
oki, donc /bin/chroot_shell n'est pas éxécutable 
 
chmod +x /bin/chroot_shell 
 
CQFD
Marsh Posté le 06-12-2003 à 00:26:29
ca marche presque :  
this user is not alloawed to execute : 
sudo /usr/sbin/chroot /home/$USER /bin/su - $USER  
pourtant j'ai fait un visudo et j'ai ca dedans : 
root	ALL=(ALL) ALL 
toto  ALL= NOPASSWD: /usr/sbin/chroot /home/toto /bin/su - toto* 
 
Marsh Posté le 06-12-2003 à 00:37:16
cré plutôt un Cmnd_Alias : 
 
|   | 
 
 
ça devrait pas poser de problème comme ça, ton utilisateur pourra éxécuter chroot, par contre il y a peut-être un p'tit hic niveau sécu là, enfin c'est pas trop méchant 
Marsh Posté le 06-12-2003 à 00:43:14
bon y a du mieux mais bon maintenant j'ai ca : 
/usr/sbin/chroot  /bin/su  no such file or directory
Marsh Posté le 06-12-2003 à 00:45:08
| cyberfred a écrit : bon y a du mieux mais bon maintenant j'ai ca :  | 
 
mais je crois savoir :  
 sudo /usr/sbin/chroot /home/$USER /bin/su - $USER -c "$PARAMS" 
else 
        sudo /usr/sbin/chroot /home/$USER /bin/su - $USER 
il ne faut peut etre pas d espace entre $USER et/bin
Marsh Posté le 06-12-2003 à 00:49:12
si si, l'espace est important, en fait la commande "sudo /usr/sbin/chroot /home/$USER /bin/su - $USER" veut dire : 
 
on se cage dans /home/$USER, une fois que c'est on éxécute /bin/su dans la cage du user
Marsh Posté le 06-12-2003 à 00:56:03
ls -al /home/toto/bin/sh :  
no such file or directory  
par contre j'ai fait ca: 
   
ls -al /home/toto/bin/bash: 
-rwxr-xr-x 1 toto  toto 625516 dec 6 00:14 /home/toto/bin/bash* 
 
ls -al /home/toto/bin/su: 
-rwxr-xr-x 1 toto  toto 625516 dec 6 00:14 /home/toto/bin/su*
Marsh Posté le 06-12-2003 à 01:06:40
ca marche (au login linux ps encore le ftp) mais uniquement si je remplace la variable $user par toto , ca veut dire qu'il ne recupere pas la variable???
Marsh Posté le 06-12-2003 à 01:15:58
oui pardon, je voulais dire su, pas sh.... 
 
bon, c'est un problème de lib ça : 
 
ldd /bin/bash 
ldd/bin/su 
 
tu copies toutes les libs indiquées comme ça : 
 
cd /home/toto/lib 
 
cp /lib/ld-linux.so.2 . 
cp /lib/libc.so.6 . 
cp /lib/libpam_misc.so.0 . 
cp /lib/libtermcap.so.2 . 
cp /lib/libcrypt.so.1 . 
cp /lib/libdl.so.2 . 
cp /lib/libpam.so.0 . 
 
ensuite tu rééxécutes, si ton user est bien configuré ça doit passer
Marsh Posté le 06-12-2003 à 01:36:54
aie aie , le souci c 'est que ca je l'ai dejà fait , par contre si je remplace le $USER par toto ca marche , ca veut dire quoi ca?????
Marsh Posté le 06-12-2003 à 01:39:03
si tu fais en root : USER=toto;/bin/chroot_shell 
 
ça passe bien ?
Marsh Posté le 06-12-2003 à 01:49:37
la ca passe 
j ai directement le bash , je comprends plus là?????
Marsh Posté le 06-12-2003 à 01:51:24
je precise que je suis sous mandrake 9.1 et que je demarre avec un inittab sur 3 donc en ecran texte.
Marsh Posté le 06-12-2003 à 01:58:30
bizarre ça, bon on va essayer l'export 
 
donc dans /bin/chroot_shell, juste en dessous de #!/bin/bash, tu mets cette ligne "export USER" 
 
ça ira peut-être mieux, quoique 
Marsh Posté le 06-12-2003 à 02:03:55
c'est pareil , me fait no such file or directory alors qu'avec USER=toto;/bin/chroot_shell ca passe 
Marsh Posté le 06-12-2003 à 02:08:28
la solution de facilité est a mon avis d'utiliser pure-ftpd  
 
avec l'option -A au lancement de celui ci qui va chrooter tous les utilisateurs 
Marsh Posté le 06-12-2003 à 02:11:58
pour du ftp, c'est sur que ce serait plus simple, surtout que j'ai l'impression qu'il y a qq chose qui ne passe pas sous mdk là 
Marsh Posté le 06-12-2003 à 02:18:45
j essaye a distance sur une red hat 9 pour faire du ftp 
on va bien voir 
Marsh Posté le 06-12-2003 à 02:21:10
j ai fait les memes manip^a distance sur une red hat et sur vstp , il me renvoie un login incorrect 
qu'entends tu par plus simple en ftp ,parce que c ca qui m interesse en fait!!
Marsh Posté le 06-12-2003 à 02:25:38
si je me connecte en ssh sur ma red hat 9 , j'ai ca et pourtant je viens de faire les memes manips que sur la mdk 9.1. 
/bin/su: user marc does not exist 
Connection to www.societe.com closed
Marsh Posté le 05-12-2003 à 17:27:40
Salut
Voici mon souci :
j'aimerai configurer un server ftp sous linux tel que gftpro ou vsftp mais le souci c'est que lorsque je me connecte avec mes users sur le ftp , ceux ci ont accés à leur /home bien sur mais ils peuvent aussi naviguer dans toute l'arborescence linux (sauf ceux des autres users et quelques repertoires particuliers).
Bien qu'ils ne peuvent pas ecrire dans ces repertoires , c'est un sacré pb de sécurité.
J'aimerai donc savoir comment faire pour que mes comptes n'ait accés à /home/nom_user et à rien d'autre.
(Par exemple si le mec tape /var/www , le serveur lui envoie un directory failed ou un truc dans le genre)
Merci d'avance si vous avez une réponse.