Quelles sont les alternatives sécurisées au FTP? [fermé]

22

Cette histoire de Hacker News concerne les inconvénients du FTP. La seule raison pour laquelle je peux configurer FTP est que c'est facile.

Je connais et utilise scpdéjà, mais parfois je veux partager des fichiers avec quelqu'un sans lui donner sshaccès à mon serveur. Je veux qu'ils puissent télécharger et télécharger des fichiers, mais rien d'autre, et je veux les restreindre à un seul répertoire. Je veux aussi que leur connexion soit cryptée ssh.

Quelles sont les alternatives au FTP qui répondent à ces critères?

Nathan Long
la source
2
Vous pouvez utiliser scp sans ssh voir: serverfault.com/questions/354615/allow-sftp-but-disallow-ssh
Stone
1
Je ne vais pas prendre la peine de lire cet article, mais il convient de rappeler que le FTP a été conçu pour être utilisé dans un réseau fermé (laboratoire à l'étage vers / depuis les serveurs du sous-sol), donc la sécurité n'a jamais été prise en compte. Il est étonnant qu'il soit toujours utilisé sur les réseaux publics.
John Gardeniers
1
Certains pourraient soutenir que ftp n'a pas été conçu du tout, mais a évolué grâce à de bonnes idées imaginées par diverses personnes créant un logiciel pour le transfert de fichiers bien avant que la fermeture ne devienne une propriété observable pour les réseaux, lorsque le contrôle d'accès se faisait avec des portes verrouillées et des regards furieux.
Eroen

Réponses:

7

Proftpd possède un serveur sftp intégré qui vous permettrait de séparer complètement les utilisateurs de sshd à des fins de transfert de fichiers. Vous pouvez le configurer pour qu'il utilise un fichier passwd complètement séparé pour les isoler encore plus (il est difficile de se connecter à un système avec ssh et de traverser un chroot si vous n'avez pas réellement d'utilisateur dans / etc / passwd .. .)

proftpd vous permet également de chrooter et d'isoler assez facilement l'utilisateur sftp dans un ensemble de répertoires.

Nous faisons quelque chose comme ça:

LoadModule mod_sftp.c

<VirtualHost 10.1.1.217>

    ServerName  "ftp.example.com"

    # from http://www.proftpd.org/docs/howto/NAT.html
    MasqueradeAddress   1.2.3.4
    PassivePorts 27001 27050

    UseSendfile off

    ExtendedLog         /var/log/proftpd/access.log WRITE,READ default
    ExtendedLog         /var/log/proftpd/auth.log AUTH auth

    AuthUserFile /etc/proftpd/AuthUsersFile
    AuthOrder           mod_auth_file.c 

    <IfModule mod_sftp.c>
        Port 10022
    SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
        SFTPEngine On
        SFTPLog /var/log/proftpd/sftp.log
        SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
        SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
        MaxLoginAttempts 6
    </IfModule>
</VirtualHost>
Travis Campbell
la source
1
Pour aider le débutant, si le PO a besoin d'aide pour le configurer, j'ai un tutoriel complètement basique ici: csrdu.org/nauman/2011/02/13/…
recluze
3

J'utiliserais WebDav avec un serveur compatible https! L'authentification est alors basée sur le schéma d'autorisation http standard. Un guide pour mettre en place webdav avec apache se trouvent ici il est seulement neccessary de mettre cette ressource derrière https, et je l' ai trouvé ici une belle description comment faire cela .

joecks
la source
Étant donné la langue utilisée ici, vous pourriez au moins avoir un lien vers une version anglaise de l'article.
John Gardeniers
haha désolé n'a pas réalisé cette erreur. Merci d'avoir corrigé!
joecks
1

Vous n'avez pas spécifié "gratuit" comme exigence, donc je vais jeter le paquet Mass Transit par grouplogic. C'est probablement un peu exagéré pour la plupart des gens, et hors de leur gamme de prix, mais la suite de fonctionnalités est tout simplement fantastique. Obtenez un deuxième serveur Mass Transit et allumez l'automatisation et vous déplacez certains fichiers très rapidement.

SpacemanSpiff
la source
0

Vous pouvez configurer sftpqui utilise sshdans un mode similaire à ftp.

Vous pouvez créer des utilisateurs (un ou plusieurs, cela dépend si c'est correct ou non pour chaque utilisateur d'accéder aux fichiers les uns des autres) dans votre machine, leur donner shell / bin / false et chrootchaque utilisateur dans un répertoire où ces fichiers doivent être mis.

Luis
la source
0

Vous pouvez utiliser pure-ftpd avec le cryptage TLS activé. La configuration est très simple, pour activer l'option TLS de décommentation du cryptage dans le fichier de configuration (une seule ligne :)), configurez vos clients pour se connecter via ftps et c'est tout. (Vous devez vous rappeler que tous les clients ftp ne prennent pas en charge ftps).

B14D3
la source
-1

Vous pouvez activer les téléchargements et les téléchargements avec rsync sur ssh sans autoriser les connexions en définissant rsync comme shell de connexion pour l'utilisateur. Cela permet tous les avantages de ssh, y compris les connexions de certificats, le chiffrement et les autorisations de système de fichiers standard, tout en n'activant pas les comptes shell (car le compte n'aura pas de shell mais rsync =)).

Eroen
la source
Et comment cela serait-il plus sûr? Toujours en texte clair ...
EEAA
Cela dépend de la façon dont vous l'avez configuré. La manière courante (la seule façon dont je l'ai jamais vue) est d'utiliser ssh et de définir rsync comme shell de connexion, ou (pour l'accès root) les certificats ssh spécifiques à la commande.
Eroen
1
Rsync, lors de l'exécution d'un service (comme vous le recommandez dans votre réponse) n'a pas de cryptage. Ce n'est bien sûr pas le cas avec rsync + ssh. Vous pouvez modifier votre réponse pour rendre votre sens plus clair.
EEAA
Des changements sont survenus (au cas où quelqu'un trouverait les commentaires ci-dessus mal ajustés).
Eroen
Bien qu'il n'ait pas été demandé, il convient également de mentionner que, bien qu'il existe un certain nombre d'interfaces faciles à utiliser pour les protocoles FTP et FTP, je n'en connais pas personnellement pour rsync. Si les utilisateurs prévus ne sont pas techniques, cela peut être un problème.
John Gardeniers