Metodo per gli utenti di modificare la password di Samba


10

Ho un server Samba per circa 5 utenti (security = user) e voglio un modo per questi utenti di cambiare le loro password senza il mio coinvolgimento, quindi ho la seguente idea. È sicuro? Esiste un approccio migliore (come in più semplice). Avevamo SWAT per questo, ma non di più.


Sul server: crea un utente con restrizioni (/ bin / rbash + PATH nella singola directory)

$ 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

Questa idea qui è che solo il comando sambpasswd può essere eseguito dall'utente pwchange. Gli account unix per gli utenti di Samba non dispongono di password (non è possibile accedere tramite questi account). Gli utenti di samba sarebbero in grado di utilizzare questo account limitato solo per le modifiche della password di Samba self service ... nessuna esplorazione del server!


Client: modifica password Samba tramite Terminal o Putty (Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

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

Ma pensavo smbpasswdche gli utenti e l'amministratore avrebbero dovuto cambiare le loro password ... È quello che vuoi?
George Udosen il

In questo caso, gli account Unix degli utenti non dispongono di password, pertanto l'utente1 non può accedere come utente1@192.168.1.14. Il server Samba è stato impostato come "security = user" e le restrizioni sui file sono state impostate in smb.conf. Agli utenti non è stato consentito l'accesso a Unix poiché le autorizzazioni dei file Unix sottostanti erano più permissive della combinazione di autorizzazioni per file Samba e Unix (non sono stati utilizzati ACL estesi Unix.)
brucehohl

Nel mio college avevamo un portale self-service che gli utenti possono autenticare usando la verifica id e sms, e in background abbiamo emesso il comando smbpasswd
Rabin

Risposte:


1

Dare a tutti l'accesso allo stesso account fittizio non sembra intelligente. Anche se lo blocchi per non avere accesso a nulla, ma smbpasswdpotrebbero comunque cambiare le password di ciascuno. E c'è sempre la possibilità di un attacco di escalation di privilegi dannosi.

In sostanza, ciò che sembra che tu voglia è consentire loro di eseguire SOLO il smbpasswdcomando dal proprio account utente pur avendo un equivalente a un nologinaccount.

Questo può essere realizzato con l'uso dell'opzione "ForceCommand" in sshd_config.

Prova questo:

  1. Concedi a ciascun utente un abbonamento all'account Samba allo stesso gruppo. Per il nostro esempio diciamo "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Successivamente, vogliamo modificare il nostro file sshd_config per avere quanto segue:

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

Presto. Secondo la mia comprensione (e brevi test) questo significa che quando accedono tramite SSH avranno automaticamente il smbpasswdcomando eseguito e verranno richiesti di conseguenza. Non avranno mai la possibilità di avere accesso alla shell. Una volta completato il comando, vengono automaticamente disconnessi, senza mai avere la possibilità di avere accesso alla shell.

Non sono sicuro al 100% che questo rimuova tutti gli accessi alla macchina da remoto. Ad esempio, se si esegue un server SSH diverso sullo stesso computer che non ForceCommandli utilizza, è possibile che accedano tramite quello in base alla configurazione del controllo di accesso.

Inoltre, se hanno l'opportunità di accedere fisicamente a un terminale, possono effettuare il login.

Tuttavia, penso che per la maggior parte delle situazioni si tratti di un controllo di accesso abbastanza forte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.