Methode für Benutzer zum Ändern des Samba-Passworts

10

Ich habe einen Samba-Server für ungefähr 5 Benutzer (Sicherheit = Benutzer) und möchte, dass diese Benutzer ihre Passwörter ohne meine Beteiligung ändern können, sodass ich die folgende Idee habe. Ist das sicher? Gibt es einen besseren (wie bei einem einfacheren) Ansatz? Wir hatten SWAT dafür, aber nicht mehr.


Auf dem Server: Erstellen Sie einen eingeschränkten Benutzer (/ bin / rbash + PATH in ein einzelnes Verzeichnis).

$ 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

Diese Idee hier ist, dass nur der Befehl sambpasswd vom Benutzer pwchange ausgeführt werden kann. Die Unix-Konten für die Samba-Benutzer haben keine Passwörter (dh Anmeldung über diese Konten nicht erlaubt). Die Samba-Benutzer können dieses eingeschränkte Konto nur für Änderungen des Self-Service-Samba-Passworts verwenden ... ohne den Server zu erkunden!


Client: Ändern Sie das Samba-Passwort über Terminal oder 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
quelle
Aber ich dachte, smbpasswdes war für Benutzer und Administratoren gleichermaßen gedacht , ihre Passwörter zu ändern ... Ist es das, was Sie wollen?
George Udosen
In diesem Fall haben die Unix-Konten der Benutzer keine Kennwörter, daher kann sich Benutzer1 nicht als [email protected] anmelden. Der Samba-Server wurde als "security = user" eingerichtet und Dateibeschränkungen wurden in smb.conf festgelegt. Benutzern wurde keine Unix-Anmeldung gestattet, da die zugrunde liegenden Unix-Dateiberechtigungen zulässiger waren als die Kombination von Samba- und Unix-Dateiberechtigungen (erweiterte Unix-ACLs wurden nicht verwendet.)
Brucehohl
An meinem College hatten wir ein eigenständiges Portal, das Benutzer mithilfe der ID- und SMS-Überprüfung authentifizieren können, und im Hintergrund haben wir den Befehl smbpasswd ausgegeben
Rabin,

Antworten:

1

Es klingt nicht klug, allen Zugriff auf dasselbe Dummy-Konto zu gewähren. Selbst wenn Sie es sperren, um Zugriff auf nichts zu haben, smbpasswdkönnten sie dennoch die Passwörter des anderen ändern. Und es besteht immer die Möglichkeit eines böswilligen Eskalationsangriffs auf Privilegien.

Im Wesentlichen klingt es so, als ob Sie möchten, dass sie NUR den smbpasswdBefehl von ihrem eigenen Benutzerkonto aus ausführen können, während sie immer noch ein Äquivalent zu einem nologinKonto haben.

Dies kann mit der Option "ForceCommand" in Ihrer sshd_config erreicht werden.

Versuche dies:

  1. Gewähren Sie jedem Benutzer mit einer Samba-Kontomitgliedschaft dieselbe Gruppe. Für unser Beispiel sagen wir "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Als Nächstes möchten wir unsere Datei sshd_config folgendermaßen ändern:

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

Presto. smbpasswdNach meinem Verständnis (und kurzen Tests) bedeutet dies, dass bei der Anmeldung über SSH der Befehl automatisch ausgeführt wird und sie entsprechend aufgefordert werden. Sie werden niemals die Chance bekommen, Shell-Zugriff zu haben. Nachdem der Befehl ausgeführt wurde, werden sie automatisch getrennt und erhalten erneut keine Chance auf Shell-Zugriff.

Ich bin nicht 100% sicher, dass dadurch jeglicher Fernzugriff auf die Maschine entfernt wird. Wenn Sie beispielsweise einen anderen SSH-Server auf demselben Computer ausführen, auf dem dies nicht der Fall ist ForceCommand, können sie sich abhängig von der Konfiguration der Zugriffssteuerung über diesen Server anmelden.

Wenn sie die Möglichkeit haben, physisch auf ein Terminal zuzugreifen, können sie sich anmelden.

Ich denke jedoch, dass dies für die meisten Situationen eine ziemlich starke Zugangskontrolle ist.

Geraden
quelle