Forum Linux.général Un serveur FTP qui fasse intermédiaire

Posté par  .
Étiquettes :
-2
14
avr.
2011

Bonjour,

Afin d'éviter que des mots de passes de serveurs FTP se retrouvent sur des postes clients (voire même que les utilisateurs en aient connaissance) je cherche à savoir s'il existe un serveur FTP (à installer sur du Debian si possible) qui fasse l'intermédiaire avec d'autres serveurs FTP selon certains critères.

Je m'explique :
Actuellement, si Alice doit se connecter sur au serveur FTP : ftp://ftp.ndd.tld_ elle utilise les accès webmestre:secret_. Et donc, ces mots de passes se retrouvent bien, d'une façon où d'une autre stockés sur son disque dur (soit dans ses fichiers pour qu'elle les retrouve, soit parce qu'elle demande à FileZilla ne les retenir, soit dans ses e-mails, etc.)

J'aimerais faire en sorte qu'Alice n'ait pas besoin de ces accès pour s'y connecter. Pour ce faire j'envisage le système suivant :
Installer, sur un serveur perso, un logiciel se comportant comme un serveur FTP mais qui initierait, à la demande, une connexion vers un autre serveur FTP dont les coordonnées seraient stockées dans la configuration du serveur.

Exemple : Alice accède à ftp://ftpproxy.societe.com/abc et le serveur ftpproxy.societe.com lance une connexion vers le serveur FTP sous le label "abc".
Dans la configuration de du serveur ftpproxy.societe.com il y a les informations d'accès au serveur FTP "abc". Du style :

"abc" {
    host: ftp.abc.net
    port: 21
    login: user42
    password: secret
    path: /storage/
}

Ainsi, le FileZilla d'Alice transférant le fichier dans ftp://ftpproxy.societe.com/abc/www/config_ les données iraient en réalité dans ftp://user42:secret@ftp.abc.net/storage/www/config_.

Pistes de solution : - Un moyen de détecter un accès à un dossier ("abc/" dans l'exemple) - Ouvrir à la volée une connexion FTP et la monter dans un dossier (avec curlftpfs)

Qu'en pensez-vous ?

  • # Intérêt ?

    Posté par  (site web personnel) . Évalué à 5.

    Je ne vois pas l'intérêt. Au lieu de stocker en clair son nom d'utilisateur et son mot de passe de connexion sur un service, à la place elle stockera en clair son nom d'utilisateur et son mode passe de connexion sur ton service, et toi tu stockeras en clair son nom d'utilisateur et son mot de passe de connexion sur le service final.

    Donc, ça me semble aussi compliqué pour elle, infiniment plus compliqué pour toi et deux fois plus dangereux de façon générale.

  • # Ou pas

    Posté par  (site web personnel) . Évalué à 3.

    Actuellement, si Alice doit se connecter sur au serveur FTP : ftp://ftp.ndd.tld_ elle utilise les accès webmestre:secret_. Et donc, ces mots de passes se retrouvent bien, d'une façon où d'une autre stockés sur son disque dur (soit dans ses fichiers pour qu'elle les retrouve, soit parce qu'elle demande à FileZilla ne les retenir, soit dans ses e-mails, etc.)

    Ou pas. Pourquoi devrait-elle les stocker ? Elle pourrait les retenir.

    • [^] # Re: Ou pas

      Posté par  . Évalué à 0.

      Parce qu'elle doit aller sur beaucoup beaucoup de serveurs FTP différents, alors retenir un simple label est plus simple qu'un triplet host/login/password.

      Autre raison : la sécurité, les mots de passes d'accès aux serveurs FTP ne sont pas sur une machine cliente (à l'OS pouvant aller de Mac à GNU/Linux en passant par Windows) et peu sécurisés vu que FileZilla ne chiffre pas ces informations dans ces fichiers XML de profil.
      Ils sont en revanche tous sur un serveur unique, à l'environnement contrôlé.

      Bonus : Alice n'ayant plus du tout connaissance de ces identifiants FTP elle ne sera pas tenté d'aller les revendre à un concurrent.

  • # y a une faille dans le raisonnement

    Posté par  . Évalué à 2.

    que se passe-t-il si BOB, le mechant, se connecte aussi à ftp://ftpproxy.societe.com/abc ?

    car Alice veut peut-etre envoyer/recevoir des fichiers importants dont Bob ne doit pas avoir connaissance ?

    et donc finalement il faut que tu identifies Alice à un moment donné donc qu'il y ait un login/pass

  • # mais c'est achement compliqué ce truc

    Posté par  . Évalué à 5.

    moi je ferai plutôt un compte dédié accessible en ssh uniquement et un shell /bin/false
    filezilla permettrai d'y accéder en sftp via les clé authorized_host, et peut être même une passphrase; ça me parait quand même plus simple.

    Mais peut être que ça ne répond pas à ta problématique.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # Petite précision

    Posté par  . Évalué à 0.

    Je précise une chose : je n'ai pas la main sur le(s) serveur(s) FTP qui seront accessible par ce système.
    Mon seul lien est la connexion FTP qu'il m'est possible d'ouvrir avec les accès qui m'ont été donnés par les administrateurs respectifs de chaque serveur.

  • # ftpfs

    Posté par  . Évalué à 1.

    pour faire cela, voilà comment je m'y prendrais:

    1/ monter les dossiers du serveur ftp distant (ftp.abc.net dans ton exemple)
    2/ installer un serveur ftp local (ftpproxy.societe.com) qui sert les dossiers montés au 1/

    Du coups tu gères les droits d'accès normalement, comme sur un simple serveur ftp local...

    Un peu de doc:
    - wiki
    - ubuntu-fr
    - le site du projet

    • [^] # Re: ftpfs

      Posté par  . Évalué à 0.

      C'est bien ce vers quoi je pensais que j'allais m'orienter.
      Mais comment ne pas monter en permanence tous les FTP distants ?
      Est-il possible d'exécuter un script (qui fera les mount ftpfs) au moment d'une tentative d'accès ? Ou alors comme hook dans le serveur FTP ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.