Serveur ftp sous linux et blocage des comptes

Serveur ftp sous linux et blocage des comptes - réseaux et sécurité - Linux et OS Alternatifs

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.

Reply

Marsh Posté le 05-12-2003 à 17:27:40   

Reply

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


Message édité par BMOTheKiller le 05-12-2003 à 17:35:32
Reply

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)


Message édité par cyberfred le 05-12-2003 à 22:23:08
Reply

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)

Reply

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??

Reply

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 :)

Reply

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

Reply

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)

Reply

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ù

Reply

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....

Reply

Marsh Posté le 05-12-2003 à 23:43:06   

Reply

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

Reply

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/

Reply

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 :
no shell , permission denied  
je sais pas si ca peut aider....


 
ç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


Message édité par BMOTheKiller le 05-12-2003 à 23:50:28
Reply

Marsh Posté le 05-12-2003 à 23:50:35    

cyberfred a écrit :

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


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

Reply

Marsh Posté le 05-12-2003 à 23:53:09    

BMOTheKiller a écrit :


 
ç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


 j ai ca pour le user toto ds /etc/passwd :
toto:x:504:504::/home/toto:/bin/chroot_shell  (mince ,  a la place du smiley y a ca attaché bien sur :  /)


Message édité par cyberfred le 05-12-2003 à 23:54:07
Reply

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

Reply

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;

Reply

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

Reply

Marsh Posté le 06-12-2003 à 00:13:20    

ok je te dis ca tout de suite

Reply

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*
 

Reply

Marsh Posté le 06-12-2003 à 00:37:16    

cré plutôt un Cmnd_Alias :
 


# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
 
# Host alias specification
 
# User alias specification
 
# Cmnd alias specification
Cmnd_Alias   SUFTP=/usr/sbin/chroot
 
# Defaults specification
 
# User privilege specification
root    ALL=(ALL) ALL
 
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
 
# Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
 
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
 
toto ALL=NOPASSWD:SUFTP


 
ç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

Reply

Marsh Posté le 06-12-2003 à 00:38:44    

ok je regarde ca tout de suite et je te tiens au courant

Reply

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

Reply

Marsh Posté le 06-12-2003 à 00:45:08    

cyberfred a écrit :

bon y a du mieux mais bon maintenant j'ai ca :
/usr/sbin/chroot  /bin/su  no such file or directory


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

Reply

Marsh Posté le 06-12-2003 à 00:46:38    

ls -al /home/toto/bin/sh
 
tu as un problème de droits

Reply

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

Reply

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*


Message édité par cyberfred le 06-12-2003 à 00:58:12
Reply

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???

Reply

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

Reply

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?????

Reply

Marsh Posté le 06-12-2003 à 01:39:03    

si tu fais en root : USER=toto;/bin/chroot_shell
 
ça passe bien ?

Reply

Marsh Posté le 06-12-2003 à 01:49:37    

la ca passe
j ai directement le bash , je comprends plus là?????

Reply

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.

Reply

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 :/

Reply

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

Reply

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 ;)


---------------
Intermittent du GNU
Reply

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à :/

Reply

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

Reply

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!!

Reply

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


Message édité par cyberfred le 06-12-2003 à 02:26:08
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed