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

10

J'ai un serveur Samba pour environ 5 utilisateurs (sécurité = utilisateur) et je veux un moyen pour ces utilisateurs de changer leurs mots de passe sans ma participation, j'ai donc l'idée suivante. Est-ce sécurisé? Existe-t-il une meilleure approche (comme dans une approche plus simple)? Nous avions l'habitude d'avoir SWAT pour cela mais pas plus.


Sur le serveur: créer un utilisateur restreint (/ bin / rbash + PATH vers 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 ici est que seule la commande sambpasswd peut être exécutée par l'utilisateur pwchange. Les comptes Unix pour les utilisateurs de Samba n'ont pas de mot de passe (c'est-à-dire que la connexion via ces comptes n'est pas autorisée). Les utilisateurs de samba ne pourraient utiliser ce compte restreint que pour les changements de mot de passe Samba en libre service ... pas d'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
brucehohl
la source
Mais je pensais que smbpasswdc'était destiné aux utilisateurs et aux administrateurs de changer leurs mots de passe ... C'est ce que vous voulez?
George Udosen
Dans ce cas, les comptes Unix des utilisateurs n'ont pas de mot de passe, par conséquent, user1 ne peut pas se connecter en tant qu'[email protected]. Le serveur Samba a été configuré comme "security = user" et les restrictions de fichiers ont été définies dans smb.conf. Les utilisateurs n'étaient pas autorisés à ouvrir une session Unix car les autorisations de fichier Unix sous-jacentes étaient plus permissives que la combinaison des autorisations de fichier Samba et Unix (les listes de contrôle d'accès étendues Unix n'étaient pas utilisées.)
brucehohl
À mon collège, nous avions un portail libre-service que les utilisateurs peuvent authentifier à l'aide de la vérification des identifiants et des SMS, et en arrière-plan, nous avons émis la commande smbpasswd
Rabin

Réponses:

1

Leur donner à tous accès au même compte factice ne semble pas intelligent. Même si vous le verrouillez pour n'avoir accès à rien MAIS smbpasswdils pourraient toujours changer les mots de passe de l'autre. Et il y a toujours la possibilité d'une attaque malveillante par élévation de privilèges.

Essentiellement, il semble que vous souhaitiez leur permettre d'exécuter UNIQUEMENT la smbpasswdcommande à partir de leur propre compte d'utilisateur tout en ayant un équivalent à un nologincompte.

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

Essaye ça:

  1. Accordez à chaque utilisateur 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. D'après ma compréhension (et de brefs tests), cela signifie que lorsqu'ils se connecteront via SSH, la smbpasswdcommande sera automatiquement exécutée et ils seront invités en conséquence. Ils n'auront jamais la chance d'avoir accès au shell. Une fois la commande terminée, ils sont automatiquement déconnectés, sans avoir à nouveau accès au shell.

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

De plus, s'ils ont la possibilité d'accéder physiquement à 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.

Geraden
la source