Método para que los usuarios cambien la contraseña de Samba

10

Tengo un servidor Samba para aproximadamente 5 usuarios (seguridad = usuario) y quiero una forma para que estos usuarios cambien sus contraseñas sin mi participación, así que tengo la siguiente idea. ¿Es esto seguro? ¿Existe un enfoque mejor (como en más simple)? Solíamos tener SWAT para esto pero no más.


En el servidor: cree un usuario restringido (/ bin / rbash + PATH en un solo directorio)

$ 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

Esta idea aquí es que solo el comando sambpasswd puede ser ejecutado por el usuario pwchange. Las cuentas de Unix para los usuarios de Samba no tienen contraseñas (es decir, no se permite iniciar sesión a través de estas cuentas). Los usuarios de samba solo podrían usar esta cuenta restringida para los cambios de contraseña de Samba de autoservicio ... ¡sin explorar el servidor!


Cliente: cambie la contraseña de Samba a través de Terminal o 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
fuente
Pero pensé que smbpasswdestaba destinado a usuarios y administradores por igual para cambiar sus contraseñas ... ¿Es eso lo que quieres?
George Udosen
En este caso, las cuentas Unix de los usuarios no tienen contraseñas, por lo tanto, el usuario1 no puede iniciar sesión como [email protected]. El servidor Samba se configuró como "seguridad = usuario" y las restricciones de archivo se establecieron en smb.conf. Los usuarios no se les permitió un inicio de sesión Unix como los subyacentes permisos de archivo Unix eran más permisiva que la combinación de Samba y Unix permisos de archivo (Unix extendió ACL no se utilizaron.)
brucehohl
En mi universidad teníamos un portal de autoservicio que los usuarios pueden autenticar usando la verificación de id y sms, y en el fondo emitimos el comando smbpasswd
Rabin

Respuestas:

1

Darles acceso a todos a la misma cuenta ficticia no parece inteligente. Incluso si lo bloquea para tener acceso a nada, PERO smbpasswdaún podrían cambiar las contraseñas de los demás. Y siempre existe la posibilidad de un ataque malicioso de escalada de privilegios.

Esencialmente, lo que parece que quiere es permitirles ejecutar SOLAMENTE el smbpasswdcomando desde su propia cuenta de usuario sin dejar de tener un equivalente a una nologincuenta.

Esto se puede lograr con el uso de la opción "ForceCommand" en su sshd_config.

Prueba esto:

  1. Otorgue a cada usuario una cuenta de Samba al mismo grupo. Para nuestro ejemplo, digamos "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. A continuación, queremos cambiar nuestro archivo sshd_config para que tenga lo siguiente:

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

Presto. Según tengo entendido (y pruebas breves), esto significa que cuando inicien sesión a través de SSH, se smbpasswdejecutará automáticamente el comando y se les indicará en consecuencia. Nunca tendrán la oportunidad de tener acceso a shell. Una vez que se completa el comando, se desconectan automáticamente y nunca más tienen la oportunidad de tener acceso a shell.

No estoy 100% seguro de que esto elimine todo el acceso a la máquina de forma remota. Por ejemplo, si está ejecutando un servidor SSH diferente en la misma máquina que no lo hace ForceCommand, entonces podrían iniciar sesión a través de eso dependiendo de su configuración de control de acceso.

Además, si tienen la oportunidad de acceder físicamente a un terminal, pueden iniciar sesión.

Sin embargo, creo que para la mayoría de las situaciones este es un control de acceso bastante fuerte.

Geraden
fuente