Question Autoriser SFTP mais interdire SSH?


Je commence une très petite société d'hébergement pour quelques amis et petits clients, rien de grand.

Je veux donner à mes "clients" le droit de gérer leurs fichiers sur le serveur. Je déteste le FTP car il n’est pas sécurisé et à mon avis, il est obsolète.

J'aimerais donc permettre à mes utilisateurs de se connecter via SFTP, mais pas de SSH. (Je sais, je sais, SFTP utilise SSH). Mais je me demandais, est-ce possible?

Donc, je n'aurais pas besoin d'installer un service FTP sur le serveur et tout serait génial!


87
2018-01-28 20:40


origine




Réponses:


À partir de la version 4.9, OpenSSH (non disponible dans centos 5.x mais la fonctionnalité ChrootDirectory était rétroportée) a une internal-sftp sous-système:

Subsystem sftp internal-sftp

Et puis bloquer d'autres utilisations:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Ajoutez vos utilisateurs au sftponly groupe. Vous devez modifier le répertoire utilisateur de l'utilisateur en / à cause du chroot et /home/user devrait appartenir à root. Je mettrais aussi /bin/false en tant que shell de l'utilisateur.


113
2018-01-28 20:46



Hou la la! Super génial! Je vais tester cela et revenir ici pour valider. Merci beaucoup! - TomShreds
+1 pour la chose ChrootDirectory! - Kyle Hodgson
Après cela, mon utilisateur sftponly ne peut accéder par ssh et peut se connecter par sftp. Cependant, il ne peut voir aucun fichier du tout! Malgré ces fichiers ont la permission pour cet utilisateur. :-( - Emilio Nicolás
Si vous voulez faire cela et trouver une entrée dans votre sshd_config avec "/ usr / lib / openssh / sftp-server" déjà existante, vérifiez ici: serverfault.com/questions/660160/…  - internal-sftp est "plus récent, meilleur et plus facile" - Xosofox


Il y a une coquille scponly qu'est-ce que cela Ça peut chroot aussi.


19
2018-01-28 21:11



Cela serait très utile si vous avez besoin à la fois d'utilisateurs SFTP et d'utilisateurs SSH. Vous venez de remplacer le shell dans / etc / passwd pour ceux restreints uniquement à SFTP. - Dragos


Checkout rssh qui est un faux shell qui autorise sftp mais nie ssh

En savoir plus sur RSSH

http://www.pizzashack.org/rssh/

RPM

http://pkgs.repoforge.org/rssh/

Vous pouvez configurer rssh pour autoriser / refuser différents comportements tels que sft, scp, etc.


4
2018-02-02 13:15



Agréable. C'est le moyen le plus simple de configurer sans toucher à sshd_config. Il suffit de changer le shell dans le fichier passwd et c'est fait. - Tomofumi


Vous pouvez modifier / etc / passwd et donner à cet utilisateur un faux shell afin qu’il ne puisse pas utiliser ssh.


2
2018-01-28 20:46



Avez-vous testé cela? - splattne
Quand j'essaie de régler le shell sur /bin/false ni ssh ou sftp fonctionne - Brad Mace
/ bin / false consiste à interdire toute connexion, ce n'est pas la bonne approche ici. La réponse acceptée par Rob Wouters est la suivante: vous devriez limiter les utilisateurs à SFTP uniquement, pas en changeant le shell. Si vous voulez changer la coquille, la réponse de Stone devrait être une bonne idée. - jwbensley
alors QUEL shell devrait être utilisé en supposant que / bin / bash n’est pas acceptable et que / bin / false ou / sbin / nologin refusent l’accès? - Putnik


J'utilise la méthode de spécification du shell utilisateur comme / bin / false comme mentionné. Cependant, vous devez vous assurer que / bin / shell est dans / etc / shells. Ensuite, ça marche ssh = pas de ftp = ok.

J'utilise aussi vsftpd et ajoute ceci
chroot_local_user = OUI à /etc/vsftpd/vsftpd.conf de sorte que les ftp-ers ne peuvent pas voir la date autre que la leur.

L'avantage de ces modifications simples est qu'il n'y a pas de configuration gênante en configuration ssh pour chaque utilisateur.


1
2017-09-23 17:09





N'oubliez pas de trouver la ligne UsePAM yes et le commenter:

#UsePAM yes

Sans cette désactivation, votre serveur SSH se bloquerait lors du rechargement / du redémarrage. Puisque vous n’avez pas besoin des fonctions sophistiquées de PAM, c’est très bien.


1
2018-01-25 22:02





Configurer ssh pour n’activer que sftp pour certains utilisateurs sélectionnés est une bonne idée et cela fonctionne correctement, à condition d’installer aussi bien scponly ou rssh.

rssh fonctionne correctement, sauf si vous devez configurer la prison, dans ce cas, essayez de suivre les instructions fournies dans les manuels de CHROOT, c'est fou, conduisant à la "copie" de grandes parties des exécutables système et de la bibliothèque juste en dessous de "chaque prison de l'utilisateur", y compris rssh shell lui-même. C'est une méthode qui gaspille de l'espace.

scponly nécessite une compréhension approfondie de la configuration, ce qui entraîne un problème permanent de rejet de connexion en cas de configuration de la prison.

Le moyen le plus simple d’autoriser les fonctionnalités "ftp" avec le jail fonctionnant correctement, la prise en charge de SSL / TLS pour des transactions et des connexions sécurisées consiste à utiliser un VSFTPD "ancien mais fonctionnel", qui s’installe rapidement et proprement et qui offre toute la possibilité de configuration mais pas des moindres: ça marche!

Maurizio.


0
2018-04-23 12:47