#1 Le 01/02/2011, à 15:54
- lawr
PROFTPD - Isolation des clients dans leurs repertoires
Bonjour,
Depuis quelque jour, je me tire les cheveux afin de pouvoir isoler mes clients dans leurs répertoires respectifs...
J'aimerai qu'ils ne puissent pas remonter l'arborescence.
mon fichier proftpd.conf
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin xx@xxx.com
DefaultServer on
ServerType standalone
DefaultRoot /media/DATA
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
MultilineRFC2228 on
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_sql.c
LoadModule mod_ctrls_admin.c
LoadModule mod_exec.c
LoadModule mod_geoip.c
AuthPAM off
timesGMT off
AllowStoreRestart on
AllowRetrieveRestart on
CreateHome on
AuthOrder mod_sql.c
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
SQLConnectInfo proftpd@localhost root ****
SQLUserInfo users userid passwd uid gid homedir shell
SQLGroupInfo groups groupid gid members
SQLLog PASS logincount
SQLNamedQuery logincount UPDATE "login_count=login_count+1 WHERE userid='%u'" users
SQLLog PASS lastlogin
SQLNamedQuery lastlogin UPDATE "last_login=now() WHERE userid='%u'" users
SQLLog RETR dlbytescount
SQLNamedQuery dlbytescount UPDATE "dl_bytes=dl_bytes+%b WHERE userid='%u'" users
SQLLog RETR dlcount
SQLNamedQuery dlcount UPDATE "dl_count=dl_count+1 WHERE userid='%u'" users
SQLLog STOR ulbytescount
SQLNamedQuery ulbytescount UPDATE "ul_bytes=ul_bytes+%b WHERE userid='%u'" users
SQLLog STOR ulcount
SQLNamedQuery ulcount UPDATE "ul_count=ul_count+1 WHERE userid='%u'" users
SQLUserWhereClause "disabled!=1"
RootLogin off
RequireValidShell off
SQLLogFile /var/log/proftpd/mysql.log
LogFormat auth "%v [%P] %h %t \"%r\" %s"
ExtendedLog /var/log/proftpd/auth.log AUTH auth
LogFormat write "%h %l %u %t \"%r\" %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write
IdentLookups off
Umask 022
AllowOverwrite yes
#<Directory ~>
#<Limit WRITE DIRS READ>
#DenyAll
#</Limit>
#</Directory>
vous voyez mon code commenté à la fin, si je le dé-commente, je n'est plus accès a mon home de mes utilisateurs.
Effectivement avec cette config je tombe direct dans /home/DATA/nom_du_client // mais il peut remonter...
Du coup je ne sais plus trop comment faire...
puis un Defaultroot ~
me ramène à la racine de mes users = /user/DATA
et dans ma config, j'utilise mysql via une interface d'admin php...
si vous avez des idées...
Dernière modification par lawr (Le 01/02/2011, à 17:21)
Hors ligne
#2 Le 01/02/2011, à 19:36
- demonipuch
Re : PROFTPD - Isolation des clients dans leurs repertoires
Bonsoir
DefaultRoot /path/to/dir group1,group2
will chroot() users who are members of both group1 and group2 into /path/to/dir.
Hors ligne
#3 Le 02/02/2011, à 09:53
- lawr
Re : PROFTPD - Isolation des clients dans leurs repertoires
merci pour le lien de la doc officiel, que j'avais déjà survolé...
dans mon cas, le propriétaire des dossiers sont " root " du groupe " root " donc pour bloquer mes utilisateurs dans leurs dossiers sans qu'ils puissent remonter d"un cran :
DefaultRoot ~ !root
merci.
Hors ligne
#4 Le 02/02/2011, à 10:05
- demonipuch
Re : PROFTPD - Isolation des clients dans leurs repertoires
Bonjour
Non vous n'avez pas bien compris le lien.
DefaultRoot ~ !root
chrootera dans ~ tous les utilisateurs qui ne sont pas membre du groupe root (à cause du !).
Si vous voulez chrooter tous les utilisateurs du groupe root, il faudrait plutôt utiliser :
DefaultRoot ~ root
Par contre une question : pourquoi vous connectez en root sur votre serveur FTP.
Vous n'avez pas crée un groupe d'utilisateurs FTP? Ça me parait plus sur.
Hors ligne
#5 Le 02/02/2011, à 15:57
- Guillaume69
Re : PROFTPD - Isolation des clients dans leurs repertoires
J'imagine déjà les dégats que pourrais faire les clients si ils disposent des droits "root"
Hors ligne