2 votes

CopSSH SFTP -- limiter l'accès des utilisateurs à leur répertoire personnel uniquement

Permettez-moi de commencer en disant que j'ai lu et suivi ces instructions dans la FAQ à de nombreuses reprises : http://www.itefix.no/i2/node/37

Cela ne fait pas ce que le titre prétend... Cela permet à chaque utilisateur d'accéder au répertoire personnel de chaque autre utilisateur, ainsi qu'à tous les sous-dossiers sous le chemin d'installation de copssh.

Je n'utilise cela que pour l'accès SFTP et j'ai besoin que mes utilisateurs soient isolés dans leur répertoire personnel.

Si vous connaissez un moyen infaillible de verrouiller les utilisateurs pour qu'ils ne puissent voir que leur répertoire personnel et ses sous-dossiers, arrêtez de lire maintenant et répondez avec la solution.

Les détails :

Voici exactement ce que j'ai essayé en suivant la FAQ. Mon répertoire d'installation de copSSH est : C:\Program Files\CopSSH

net localgroup sftp_users /ADD      **Créer un groupe d'utilisateurs pour contenir tous mes utilisateurs SFTP

cacls c:\ /c /e /t /d sftp_users    **Pour ce groupe, refuser l'accès au niveau supérieur et à tous les niveaux en dessous

cacls "C:\Program Files\CopSSH" /c /e /t /r sftp_users    **Autoriser mon groupe d'utilisateurs à accéder au répertoire d'installation de copSSH et à ses sous-répertoires

Pour chaque utilisateur sftp, je crée un nouveau compte utilisateur Windows, puis je :

net localgroup sftp_users sftp_user_1 /add    **Ajouter mon utilisateur au groupe que j'ai créé

Ouvrir l'assistant de l'utilisateur actif pour CopSSH, en choisissant l'utilisateur, "/bin/sftponly" et

  • Supprimer le répertoire personnel de copssh s'il existe **Rester coché
  • Créer des clés pour l'authentification par clé publique **Rester coché
  • Créer un lien vers le répertoire personnel réel de l'utilisateur **Rester coché

Cela fonctionne, cependant, chaque utilisateur a accès au répertoire personnel de chaque autre utilisateur ainsi qu'au répertoire racine de CopSSH...

J'ai donc essayé de refuser l'accès à tous les utilisateurs au répertoire personnel de l'utilisateur :

cacls "C:\Program Files\CopSSH\home" /c /e /t /d sftp_users **Refuser l'accès aux utilisateurs au répertoire personnel de l'utilisateur

Ensuite, j'ai essayé d'ajouter des autorisations utilisateur par utilisateur pour chaque dossier home\username. Cependant, ces autorisations n'étaient pas autorisées par Windows en raison de la règle de refus que j'avais créée au répertoire personnel et qui annulait ma règle d'acceptation.

La prochaine étape pour moi serait de supprimer la règle de refus au répertoire personnel et pour chaque dossier utilisateur, ajouter une règle de refus pour tous les utilisateurs auxquels il n'appartient pas, et ajouter une règle d'acceptation pour l'utilisateur auquel il appartient.

Cependant, à mesure que ma liste d'utilisateurs s'allonge, cela deviendra très fastidieux.

Merci pour l'aide !

1voto

atreat Points 113
  1. créez le groupe 'Utilisateurs SSH' dans la gestion de l'ordinateur

  2. Ajoutez le groupe à gpedit -> Configuration de l'ordinateur -> Paramètres Windows -> Paramètres de sécurité -> Stratégies locales -> Droits des utilisateurs -> Autoriser la connexion en direct (voir Impossible de se connecter au serveur Cygwin sshd avec un compte utilisateur non administrateur)

  3. exécuter gpupdate

  4. Ajoutez ftpuser au groupe SSH Users

  5. Ajoutez les détails dans /etc/sshd_config:

    Sous-système sftp interne-sftp
    
    Correspondance utilisateur ftpuser
        ChrootDirectory /home/ftpuser
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

    (les mots-clés sur les lignes suivant la directive Match s'appliquent uniquement à l'utilisateur ftpuser et remplacent ceux définis dans la section globale du fichier de configuration, jusqu'à ce qu'une autre ligne Match apparaisse ou que la fin du fichier soit atteinte.)

  6. Activer l'utilisateur ftpuser via l'assistant copSSH

  7. Supprimez tous les fichiers/dossiers .ssh .bashprofile sous le dossier ftpuser

  8. Définissez l'utilisateur SvcCOPSSH avec l'ID root 0

    SvcCOPSSH:unused_by_nt/2000/xp:**0**:545:U...

    (voir http://www.itefix.no/i2/node/11956)

  9. Pourrait également être nécessaire de faire ce qui suit dans le 'Shell BASH UNIX' de copSSH

    cd /
    chown SvcCOPSSH /
    chmod 0755 /
  10. redémarrez le service openssh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X