OVH Cloud OVH Cloud

limiter porté accès FTP

7 réponses
Avatar
Sylvain
le problème est surement basic mais je ne trouve pas la procédure dans
les docs à ma disposition ni via des recherches.

sous Fedora (OS: Linux 2.6.9-1.667smp, Version: 7.5.4_build75050824.12
os_FedoraCore 3), j'ai créé un compte utilisateur comme: (extrait de
/etc/passwd)

ftpUser:x:10002:10002::/var/www/pict:/bin/false

le but est ici de permettre à ce compte d'accéder par FTP au répertoire
"pict" et ses sous-répertoires pour y lire/écrire des fichiers.

ce qui me gène est 1) que le client FTP "voit" la hiérarchie réelle
"/var/www/pict" et non ""sa"" racine "/" (mappée sur /var/www/pict) et
2) qu'il peut remonter dans l'arborescense (donc dans /var/www, /var,
etc) ce que je cherche à empêcher.

le répertoire "pict" est protégé en 0755, group & user: ftpUser
le répertoire "www" est protégé en 0755, group & user: root

si je configure "www" en 0750 (ou 0754) le client FTP ne peut plus se
connecter.
il suffit surement de mettre un quelque chose dans le bon fichier de
config. ou les bons droits mais quoi et où ??

merci d'avance,
Sylvain.

7 réponses

Avatar
Pascal Bourguignon
Sylvain writes:
ce qui me gène est 1) que le client FTP "voit" la hiérarchie réelle
"/var/www/pict" et non ""sa"" racine "/" (mappée sur /var/www/pict) et
2) qu'il peut remonter dans l'arborescense (donc dans /var/www, /var,
etc) ce que je cherche à empêcher.


Il faut configurer le serveur ftp que tu utilises et lui indiquer
d'utiliser chroot pour limiter l'accès à un seul répèrtoire.


--
__Pascal Bourguignon__ http://www.informatimago.com/
Until real software engineering is developed, the next best practice
is to develop with a dynamic system that has extreme late binding in
all aspects. The first system to really do this in an important way
is Lisp. -- Alan Kay

Avatar
Bruno Bonfils
Pascal Bourguignon writes:

Sylvain writes:
ce qui me gène est 1) que le client FTP "voit" la hiérarchie réelle
"/var/www/pict" et non ""sa"" racine "/" (mappée sur /var/www/pict) et
2) qu'il peut remonter dans l'arborescense (donc dans /var/www, /var,
etc) ce que je cherche à empêcher.


Il faut configurer le serveur ftp que tu utilises et lui indiquer
d'utiliser chroot pour limiter l'accès à un seul répèrtoire.


DefaultRoot ~/

par exemple pour proftpd (ce qui chrootera l'utilisateur dans son homedir)

--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking Solaris User Group


Avatar
Sylvain
Pascal Bourguignon wrote on 05/03/2006 08:30:

Il faut configurer le serveur ftp que tu utilises et lui indiquer
d'utiliser chroot pour limiter l'accès à un seul répèrtoire.

merci Pascal.


le serveur ftp utilise bien le fichier de conf. /etc/ftpchroot car
celui-ci contient l'entrée "@psacln" et tous les utilisateurs du groupe
psacln ont bien un accès restreint via FTP

Rem 1: les comptes du group psacln sont ici créés par l'interface web
plesk - dont je n'ai pas encore épluché tous les scripts php, ma réponse
doit s'y trouver.
Rem 2: la machine est ici (principalement) un serveur web Apache et les
comptes distants (autre que le mien) ne servent qu'à faire du FTP simple
(upload de pages ou images).

si j'ajoute mon utilisateur à ce /etc/ftpchroot (entrée "ftpUser") ou
son groupe (entrée "@ftpUser"); ce compte n'est pas chrooté lors du
login ftp.

si par contre je change le groupe de ftpUser pour "psacln", ce compte
est (enfin) correctement chrooté (sans que le réperoire
/var/www/pict (nouvelle root) ne contienne de copie complète ou
partielle du système (je n'y ai pas dupliqué les /bin, /usr, etc).

dans l'état de ma compréhension, je ne peux que créer des comptes bidons
via Plesk pour ensuite virer le répertoire du site créé, re-restaurer
mon /etc/httpd/conf/httpd.include (Plesk ne recréant que sa propre
purée) ...

je préférerai mieux comprendre pourquoi le groupe psacln est chrooté et
aps les autres ... (help again).

Sylvain.

Avatar
R12y
On Sun, 05 Mar 2006 20:18:42 +0100, Sylvain wrote:

je préférerai mieux comprendre pourquoi le groupe psacln est chrooté et
aps les autres


Quel est le serveur FTP? Fais voir son fichier de configuration.
qu'est ce qui différencie le groupe qui peut se chrooter des autres
groupes (quel est son GID)?
Question idiote, mais bon... tu reload bien la conf à chaque
modification? (es-tu sur?)
Dans quel répertoire se font chrooter les utilisateurs membres du groupe
psacln? Ou, sur le système, est-il fait mention de ce répertoire (grep -r
blabla /xxx)?

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Sylvain
R12y wrote on 06/03/2006 01:02:
On Sun, 05 Mar 2006 20:18:42 +0100, Sylvain wrote:

je préférerai mieux comprendre pourquoi le groupe psacln est chrooté et
aps les autres


Quel est le serveur FTP? Fais voir son fichier de configuration.


"ProFTPD" v.1.2.10

le fichier de config. "/etc/proftpd.conf" contient (or commentaire):

ServerName "ProFTPD"
ServerType inetd
ServerType inetd
DefaultServer on
<Global>
DefaultRoot ~ psacln
AllowOverwrite on
</Global>
DefaultTransferMode binary
UseFtpUsers on

Port 21
Umask 022
MaxInstances 30
AuthPAM off
IdentLookups off
UseReverseDNS off

ScoreboardFile /var/run/proftpd/scoreboard
TransferLog /usr/local/psa/var/log/xferlog

<Directory /var/www/vhosts>
GroupOwner psacln
</Directory>

Include /etc/proftpd.include

(le fichier /etc/proftpd.include est vide, de longueur nulle).

par ailleurs, le fichier /etc/ftpchroot contient:

@psacln
@ftpUser

qu'est ce qui différencie le groupe qui peut se chrooter des autres
groupes (quel est son GID)?


les users correctement chrooté appartiennent au groupe "psacln", d'id
10001, ceux non chrooté appartiennent au groupe 10002.

concrétement, les comptes suivants existent dans /etc/passwd:

ftpUser:x:10002:10002::/var/www/pict:/bin/false
net:x:10004:10001::/var/www/pict:/bin/false

avec les groupes ("/etc/group")

psacln:x:10001:
ftpUser:x:10002:

l'utilisateur "" est chrooté, l'utilisateur ""
ne l'est pas.

Question idiote, mais bon... tu reload bien la conf à chaque
modification? (es-tu sur?)


là c'est moins clair!

le man proftpd ne donne aucune indication d'un "restart", sur le site
proftpd.org je n'ai rien trouvé non plus d'explicit et finalement un "ps
-A" n'indique aucun proftpd quand aucun client n'est connecté, et un
"in.proftpd" lorsqu'une session est ouverte.

"/usr/sbin/in.proftpd" est un alias sur "/usr/sbin/proftd"

j'en ai déduit sans certitude que la config. était relu à chaque
démarrage d'une instance du serveur ftp (le process in.proftd)

Dans quel répertoire se font chrooter les utilisateurs membres du groupe
psacln? Ou, sur le système, est-il fait mention de ce répertoire (grep -r
blabla /xxx)?


les utilisateurs chrooté voit comme root le répertoire défini dans
/etc/passwd ("/var/www/pict" pour l'user "net"; j'ai vérifié avec
d'autres comptes créés par Plesk, ils atterissent tous dans leur propre
répertoire, qui est bien le "home" dir définit dans /etc/passwd

et avec tout ça Docteur ? ;)

Sylvain.


Avatar
Sylvain
Sylvain wrote on 06/03/2006 02:02:

le fichier de config. "/etc/proftpd.conf" contient (or commentaire):

<Global>
DefaultRoot ~ psacln
AllowOverwrite on
</Global>



ok, seuls les users du groupe psacln sont chrooté à cause de la syntaxe
de DefaultRoot, il faut faire:

DefaultRoot ~
ou
DefaultRoot ~ psacln,ftpUser

(ici, /etc/ftpchroot n'est pas utilisé).

après tests, la première forme (sans groupe énuméré) fonctionne, alors
que la seconde ne change rien (?); ça ira quand même pour mon besoin.

merci de m'avoir aidé à chercher au bon endroit.

Sylvain.

Avatar
R12y
On Mon, 06 Mar 2006 02:36:48 +0100, Sylvain wrote:

merci de m'avoir aidé à chercher au bon endroit.


Je t'en prie.

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum