web-dev-qa-db-fra.com

Méthode pour les utilisateurs de changer de mot de passe Samba

J'ai un serveur Samba pour environ 5 utilisateurs (Security = utilisateur) et je souhaite que ces utilisateurs changent de mots de passe sans ma participation, donc j'ai l'idée suivante. Est-ce sécurisé? Y a-t-il une approche meilleure (comme dans plus simple). Nous avions l'habitude d'avoir swat pour cela, mais pas plus.


Sur le serveur: créer un utilisateur restreint (/ bin/rbash + chemin à un répertoire unique)

$ Sudo adduser --Shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ Sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ Sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

Cette idée est que seule la commande sambasswd peut être exécutée par l'utilisateur PWChange. Les comptes UNIX des utilisateurs de samba n'ont pas de mots de passe (c'est-à-dire connectez-vous via ces comptes non autorisés). Les utilisateurs de Samba ne seraient en mesure d'utiliser ce compte restreint pour les modifications de mot de passe Samba en libre service ... aucune exploration du serveur!


Client: Modifier le mot de passe Samba via Terminal ou PuTTY (Windows)

user1@A3700:~$ ssh [email protected]

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
10
brucehohl

Donner tout accès au même compte factice ne semble pas intelligent. Même si vous le verrouillez pour avoir accès à rien, mais smbpasswd ils pourraient toujours changer les mots de passe de l'autre. Et il y a toujours la possibilité d'une attaque d'escalade de privilège malveillante.

Essentiellement ce qu'il semble que vous souhaitiez, c'est de ne pas exécuter que la commande smbpasswd de leur propre compte utilisateur tout en ayant l'équivalent à un compte nologin.

Cela peut être accompli avec l'utilisation de l'option "ForceCommand" dans votre SSHD_CONFIG.

Essaye ça:

  1. Accordez chaque utilisateur avec une adhésion à un compte Samba au même groupe. Pour notre exemple, disons "sambaonly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Ensuite, nous voulons changer notre fichier sshd_config pour avoir ce qui suit:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Presto. De ma compréhension (et de brefs tests), cela signifie que lorsqu'ils se connectent via SSH, ils auront automatiquement la commande smbpasswd et ils seront invités en conséquence. Ils n'auront jamais la chance d'avoir accès à Shell. Une fois la commande terminée, elles sont automatiquement déconnectées, encore une fois, ne jamais avoir une chance d'avoir accès à Shell.

Je ne suis pas sûr à 100% que cela supprime tout accès à la machine à distance. Par exemple, si vous exécutez un autre serveur SSH différent sur la même machine qui ne fonctionne pas ForceCommand eux, ils pourraient ensuite se connecter via cela en fonction de sa configuration de contrôle d'accès.

En outre, s'ils ont la possibilité d'un accès physique à un terminal, ils peuvent se connecter.

Cependant, je pense que pour la plupart des situations, c'est un contrôle d'accès assez fort.

1
Geraden