Sécurisation du système de fichiers pour un serveur SFTP sécurisé

12

Cela peut ne pas sembler être une question de développement, mais c'est essentiellement le cas. Laissez-moi vous expliquer comment. Notre principal objectif de développement est les pages de contenu dynamique. Certains de nos clients nous ont demandé de leur laisser de l'espace sur nos serveurs (qu'ils paient) pour leur ancien contenu statique. Nous utilisons pour accomplir cela en donnant au client un compte ftp vers un domaine différent. (par exemple, le domaine du client est customer.com mais ils accédaient à leur contenu statique via otherdomain.com/customerstatic).

Maintenant, nous voulons augmenter la sécurité en offrant aux clients des comptes sftp dans leurs serveurs linux. J'utilise openssh / sftp-server dans leur environnement shell afin qu'ils ne puissent pas se connecter ou exécuter des commandes.

Le problème est que, par nature, de nombreux fichiers du système de fichiers sont par défaut (drwxr-xr-x), ce qui signifie que tout utilisateur pourra lire le contenu du répertoire et éventuellement certains fichiers. Je ne pense pas que changer tout le système de fichiers en -rwxr-x - x soit une sage décision car je ne sais pas combien de fichiers système auront besoin de cette autorisation de lecture.

Demandez à quelqu'un de faire face à ce problème dans le passé. Si oui, pourriez-vous éclairer le chemin?

Merci

anon
la source
Bonne question et réponse complète concise - un modérateur devrait probablement changer le titre et le transformer en une question non wiki.
MikeyB
il n'est pas possible de dé-wiki une question; désolé
Jeff Atwood

Réponses:

22

SFTP par nature n'est pas précaire; les laisser dans tout votre système de fichiers est. Vérifiez cela pour voir comment vous pouvez activer l'accès SFTP sur une base chroot , qui verrouillera les répertoires auxquels ils peuvent accéder, par exemple, leurs répertoires personnels, ou partout où vous souhaitez qu'ils téléchargent.

Sous Linux, je ferais attention à cette partie (configuration de / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Cela signifie que toute personne appartenant au groupe d'utilisateurs «sftponly» serait limitée à ses répertoires personnels.

Consultez le lien pour en savoir plus et lisez également la page de manuel sshd_config. J'espère que cela pourra aider.

Josh K
la source
De plus, vous devrez peut-être dire à OpenSSH d'utiliser son internal-sftplorsque le client demande le sous-système sftp - il peut avoir été configuré pour utiliser le sftp-serverprogramme externe . Pour ce faire, ajoutez ou modifiez la ligne Subsystem sftp internal-sftpdans la section principale du fichier de configuration (pas sous la Matchsection).
Nate
Josh, avez-vous déjà trouvé un moyen pour que cela ne nécessite pas la propriété root des répertoires personnels des utilisateurs?
Matt Simmons
1

Lorsque vous dites que "de nombreux systèmes de fichiers sont par défaut des autorisations 755", cela signifie en fait que l' umask par défaut est défini sur 022. Vous pouvez modifier cette valeur par défaut (pour les nouveaux fichiers) en définissant l'umask sur 027, ce qui rendrait les autorisations par défaut 750, ou définissez le umask sur 007, ce qui rendrait les autorisations par défaut 770.

Brent
la source
0

Vous pouvez envisager de configurer un serveur OpenVZ, puis de créer un petit «conteneur» ftp / sftp VM distinct pour chaque entreprise. Cela les garde tous séparés, et une fois que vous maîtrisez OpenVZ, il est vraiment pratique pour ce genre de petites choses.

Kyle Brandt
la source