domingo, 3 de marzo de 2013
Enjaular Usuario En Linux Con 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.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario