Ads 468x60px

domingo, 3 de marzo de 2013

Enjaular Usuario En Linux Con Rbash

enjaulado rbash

Si tienes un portatil o PC personal donde remotamente o localmente acceden varios usuarios y deseas restringuir a cuales comandos este usuario puede o no tener acceso, es bastante probable que te interese leer sobre RBASH (Restricted Bash Shell).

Rbash es una terminal restringuida, y es muy beneficiosa en cuanto restringuir usuarios. Puede ser utilizada para por ejemplo, permitir acceso limitado remoto por SSH, restringuir que el usuario pueda ejecutar un comando del sistema especifico o salirse de su carpeta HOME.


PASO 1
- Rbash no es una aplicacion que descargas y se instala, al contrario si ya tienes disponible la terminal bourne /bin/bash despreocupate, ya que Rbash es un link simbolico a bash. Por lo que acorde a esta informacion crearas el respectivo link simbolico:

ln -s  /bin/bash    /bin/rbash

Lo segundo que haras es agregar un usuario nuevo al sistema, digamos que el usuario se llama ¨ruser¨ y una vez agregado edita el archivo /etc/passwd y especifica alli que el usuario "ruser" utilizara por defecto la terminal nueva rbash, quedando mas o menos asi:

ruser:x:2:2:daemon:/HOME:/bin/rbash

PASO 2
Ahora necesitas fortalezer la seguridad rbash. Lo primero es cambiar los permisos en el directorio HOME del usuario ruser.

 chmod  750  /home/ruser

Luego enjaulamos que aplicaciones podra ejecutar la terminal rbash. Los archivos criticos en linux son las variables de entorno PATH, .bash_login, .bashrc, .profile, .bash_profile, .bashrc, and .bash_logout.

for i in .bash_login .bash_profile .bash_logout .profile; do echo “. .bashrc” > $i; done

 Dependiendo sus necesidades , puede que necesite agregar mas comandos a bloquear a la lista, lo cual podra hacer sin ningun problema. Ahora, abre otra terminal y logueate con el usuario ruser, y verifica los siguientes cambios:

ls -la ~ruser  (Para revisar el contenido del directorio HOME del usuario)

Ahora veras, que con el usuario ruser no puedes ejecutar si o si cualquier comando del sistema base como generalmente lo harias, cada vez que quieras ejecutar un comando te dira comando no encontrado. Al menos que, tu como administrador agregues enlaces directos a ciertos comandos para que ese usuario pueda ejecutarlos:

ln -s /usr/bin/vim /home/ruser/usr/bin/vim

Con lo anterior, el usuario ruser tendra capacidad de ejecutar vim sin ningun problema. Los mismos comandos aplican en caso de querer agregar acceso a mas comandos en el enjaulamiento.






No hay comentarios:

Publicar un comentario