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
smbpasswd
estaba destinado a usuarios y administradores por igual para cambiar sus contraseñas ... ¿Es eso lo que quieres?Respuestas:
Darles acceso a todos a la misma cuenta ficticia no parece inteligente. Incluso si lo bloquea para tener acceso a nada, PERO
smbpasswd
aú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
smbpasswd
comando desde su propia cuenta de usuario sin dejar de tener un equivalente a unanologin
cuenta.Esto se puede lograr con el uso de la opción "ForceCommand" en su sshd_config.
Prueba esto:
Otorgue a cada usuario una cuenta de Samba al mismo grupo. Para nuestro ejemplo, digamos "sambaOnly":
A continuación, queremos cambiar nuestro archivo sshd_config para que tenga lo siguiente:
Presto. Según tengo entendido (y pruebas breves), esto significa que cuando inicien sesión a través de SSH, se
smbpasswd
ejecutará 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.
fuente