Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/01/2008, à 10:14

Sylvain31

Configuration de proftpd

Salut à  tous,

Je souhaite mettre en place un serveur FTP sur ma machine, et pour cela j'utilise proftpd. J'ai suivi la procédure du wiki, mais j'ai quelques interrogations :

Actuellement, avec la configuration de base, je peux me connecter en tant qu'utilisateur anonyme, et en tant qu'utilisateur principal de mon ubuntu (seul utilisateur créé, que nous appelerons toto).

Si je me connecte en tant que toto, j'accède à  /home/toto, et j'ai accès partout. Si je me connecte en tant que anonymous (ou ftp), j'ai juste accès à  /home/ftp, mais je peux pas aller dans les dossiers parents.

Aussi, voici un bout de mon proftpd.conf :

<Anonymous ~ftp>
  User				ftp
  Group				nogroup
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias			anonymous ftp
  # Cosmetic changes, all files belongs to ftp user
  DirFakeUser	on ftp
  DirFakeGroup on ftp

  RequireValidShell		off

  # Limit the maximum number of anonymous logins
  MaxClients			10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin			welcome.msg
  DisplayFirstChdir		.message

  # Limit WRITE everywhere in the anonymous chroot
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>
</Anonymous>

Voici 2 questions que je me pose :

1/ les utilisateurs ftp sont ils étroitement liés avec les utilisateurs du système ? Ce qui expliquerait que je puisse me connecter en tant que toto, sans l'avoir déclaré dans le proftpd.conf. Aussi, si je créé un nouvel utilisateur systeme, je pourrai directement me connecter sur le ftp grà¢ce à  ce compte ?

2/ ou est il indiqué, dans le proftpd.conf, que toto a le droit d'aller partout, et que ftp (ou anonymous) a juste le droit d'aller dans /home/ftp (d'ailleurs, je vois ce repertoire comme étant /, c'est ca qu'on appelle "chrooté" ?)

Merci pour vos lumières !

#2 Le 08/01/2008, à 10:32

dexinou

Re : Configuration de proftpd

1/ les utilisateurs ftp sont ils étroitement liés avec les utilisateurs du système ? Ce qui expliquerait que je puisse me connecter en tant que toto, sans l'avoir déclaré dans le proftpd.conf. Aussi, si je créé un nouvel utilisateur systeme, je pourrai directement me connecter sur le ftp grà¢ce à  ce compte ?

Oui

2/ ou est il indiqué, dans le proftpd.conf, que toto a le droit d'aller partout, et que ftp (ou anonymous) a juste le droit d'aller dans /home/ftp (d'ailleurs, je vois ce repertoire comme étant /, c'est ca qu'on appelle "chrooté" ?)

Oui
Configue par défaut pour les utilisateurs enregistrés et la utilisateur anonymes.
<Anonymous ~ftp> ça c le chroot

Pour aussi chrooté (emprisonner les utilisateurs enregistrés), ajouter :
DefaultRoot ~

Dernière modification par dexinou (Le 08/01/2008, à 10:34)


Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...

Hors ligne

#3 Le 08/01/2008, à 10:43

Sylvain31

Re : Configuration de proftpd

Merci pour cette réponse rapide.

Donc, d'apres ce que tu me dis, <Anonymous ~ftp> ca a pour effet de chrooter ftp. Pour le rendre comme l'utilisateur toto, il faudrait que je fasse <Anonymous ftp>, j'ai bon ?

Sinon, imaginons que je veuille créer un nouvel utilisateur, mais je n'ai pas envie qu'il accède au FTP, comment faire ?

Merci !

#4 Le 08/01/2008, à 10:43

Moridin

Re : Configuration de proftpd

Bonjour Sylvain,

Alors pour répondre à  tes questions :

1/ oui, c'est la configuration de base de proftpd, on peut néanmoins changer pour faire en sorte qu'il regarde une base donnée spécifique (ça peut devenir très compliqué, on peut prendre une base dédié, une base SQL, etc)

2/ yep, tu chroot anonymous. cependant tu ne le fait pas pour toto, donc il a le droit de tout voir.

Bon après, vu la doc de proftpd (franchement elle est horrible tongue), je peux p-e t'aider un peu.

Alors déjà  si tu veux pas trop de prendre la tête, je te conseil d'utiliser la méthode d'authentification de base de proftpd (donc via /etc/passwd = les utilisateurs unix) sauf si tu as d'autres impératifs. Je te conseil également de créer des utilisateurs spécifiques pour proftpd, et de les créer avec un shell invalide (ils ne pourront jamais se log sur le serveur) pour une question de sécurité. L'idéal c'est aussi de les créer avec comme répertoire "home" le répertoire FTP que tu veux qu'ils utilisent (ça simplifie encore plus).

Grosso modo, tu veux que tata ait accès via proftp au repertoire "/testproftpd" uniquement, tu le crée ainsi : adduser tata --home /testproftpd --shell /bin/false

Ensuite le reste de la configue est à  faire dans /etc/proftpd/proftpd.conf.

Bon perso j'utilise proftpd pour héberger plusieurs serveurs ftp différents via des virtual host, si tu as des connaissances sous apache, c'est le même principe, ici on va estimer que tu n'as qu'un seul host à  configurer (un seul ftp, une seule adresse IP, un seul port), donc pour que ça marche, voici une config possible (j'ai pas mis tout ce qui est avant global) :

<Global>
        RequireValidShell off
        DefaultRoot ~ #tu chroot tous les utilisateurs vers leurs répertoires home respectifs
        AllowOverwrite yes
        MaxClients 300
        MaxClientsPerHost 10
        UseFtpUsers on
        AllowForeignAddress on
</Global>

<VirtualHost [adresse IP]>
        ServerName "je suis un serveur test !"
        AccessGrantMsg "%u, tu es maintenant connecté sur un serveur test !!!"
        Port 21
        <Limit LOGIN>
                AllowUser tata #ici, tu met les utilisateurs qui pourront se log sur le serveur
                Deny All
        </Limit>
        <Limit WRITE>
                AllowUser tata #ici, tu met les utilisateurs qui pourront ecrire sur le serveur
                Deny ALL
        </Limit>
</VirtualHost>

Bon, c'est un exemple très basique, mais qui, je l'espère, te permettra d'y voir plus clair.

Si tu as d'autres question ,n'hésite pas.


Tia mi aven Moridin isainde vadin.

Hors ligne

#5 Le 08/01/2008, à 10:48

Moridin

Re : Configuration de proftpd

Sylvain31 a écrit :

Merci pour cette réponse rapide.

Donc, d'apres ce que tu me dis, <Anonymous ~ftp> ca a pour effet de chrooter ftp. Pour le rendre comme l'utilisateur toto, il faudrait que je fasse <Anonymous ftp>, j'ai bon ?

Sinon, imaginons que je veuille créer un nouvel utilisateur, mais je n'ai pas envie qu'il accède au FTP, comment faire ?

Merci !

Le temps que je réponde, tu as déjà  posé une autre question wink

Bon déjà , si tu crée des virtual host comme dans mon post précédent, seul les utilisateurs dans la balise limit login pourront d'y connecté, les autres seront rejetés.

Actuellement, ton proftpd réagi comme ça car il n'y-a pas de virtual host : tu es dans une config ultra basique et son comportement est assez naze tongue

Sinon tu peux banir manuellement des utilisateurs de proftpd : il te suffit d'éditer le fichier "/etc/ftpusers" : celui-ci référence les utilisateurs qui ne pourront pas se log sur le serveur FTP.


Tia mi aven Moridin isainde vadin.

Hors ligne

#6 Le 08/01/2008, à 10:49

dexinou

Re : Configuration de proftpd

Sinon, imaginons que je veuille créer un nouvel utilisateur, mais je n'ai pas envie qu'il accède au FTP, comment faire ?

Merci !

Tu le place dans le fichier /etc/ftpusers
Tous les noms inscrits dans ce fichier serons interdits.

Dernière modification par dexinou (Le 08/01/2008, à 16:20)


Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...

Hors ligne

#7 Le 08/01/2008, à 11:10

Sylvain31

Re : Configuration de proftpd

Merci pour toutes ces infos !

Autre petite question, qui n'a pas grand chose à  voir avec la conf proftpd, mais qui peut être utile :
je suis derrière une freebox en mode routeur, j'ai donc redirigé le port 21 vers mon serveur. Mais je sais que le port 21 ne sert qu'à  établir la connexion, ensuite le port 20 est utilisé. Actuellement tout marche bien, sans que j'ai eu à  rediriger le port 20, ce qui finalement me parait bizarre. Faut il normalement rediriger également le port 20 ?

Aussi, j'ai un seul host à  configurer, dois je définir un virtual host comme dans l'exemple de Moridin ? Est ce la méthode préconisée ?

Merci pour votre réactivité.

#8 Le 08/01/2008, à 11:55

Moridin

Re : Configuration de proftpd

Normalement tu n'as pas besoin de forward le port 20 car la connexion est déjà  établie entre toi et le serveur, comme quand tu initie une connexion vers un serveur http par ex : au départ tu commence par le port 80 mais après tu en utilise une multitude de ports pour communiquer avec lui wink

Pour un seul host, si tu veux éviter de faire un virtual host, tu peux sans doute te contenter de mettre "DefaultRoot ~" dans le fichier de config et de bien faire attention à  ta liste d'exclusion.


Tia mi aven Moridin isainde vadin.

Hors ligne

#9 Le 08/01/2008, à 14:15

Sylvain31

Re : Configuration de proftpd

Bon, je pense avoir eu toutes mes réponses. Encore merci !