Hoy traigo una entrada express sobre una función muy interesante que desconocía de las conexiones mediante claves RSA, y es la posibilidad (entre otros) de restringir desde que equipos se usan dichas claves o los comandos que pueden ejecutar.

Lo veo muy útil para, por ejemplo, tareas específicas como la realización de un backup.

Podemos limitar la clave para que solo funcione desde un único equipo de nuestra red y solo tenga permitido usar el script que se encarga de hacer las copias de seguridad:

from="nas.marvel.lan", command="/usr/scripts/backup_semanal" ssh-rsa AAAA...V9S7 userbck@marvel.lan

Si intentamos usar esa clave para ejecutar cualquier otro comando comprobaremos que solo se ejecuta el permitido “backup-semanal”:

userbck@nas:~> ssh -i clave_bck webserver 'backup_semanal'
## BACKUP SEMANAL ##
¿Desea crear una nueva copia semanal? (s/n) n
Saliendo...
userbck@nas:~> ssh -i clave_bck webserver 'df'
## BACKUP SEMANAL ##
¿Desea crear una nueva copia semanal? (s/n) n
Saliendo...
userbck@nas:~> ssh -i clave_bck webserver 'w'
## BACKUP SEMANAL ##
¿Desea crear una nueva copia semanal? (s/n) n
Saliendo...

De esta forma aplicamos un par de conceptos básicos de la seguridad: el principio de menor exposición y el de mínimo privilegio.

Tenéis más información acerca del fichero authorized_keys y sus opciones aquí.

~ Saludos y que la fuerza os acompañe!