Bloquear acceso sftp, scp, rsync, ssh

Hace tiempo vimos una forma simple de hacer que un usuario sólo pueda acceder por sftp al sistema y que además quede "enjaulado" en su home, impidiéndole así cotillear archivos que no debe. Sin embargo esa forma quizás no es del todo flexible que nos pueda interesar. Para hacerla un poco más manejable, hoy vamos a ver cómo empleando rssh vamos a poder seleccionar las diferentes formas de acceso que se van a permitir al sistema.
rssh es una shell restrictiva, que permite elegir el método de acceso que se desea entre los disponibles: scp, sftp, cvs, svn, rsync o rdist. Para usarla primero habrá que instalarla.
shell> apt-get install rssh
Una vez instalada sólo queda configurarla y emplearla. Para empezar vamos a incluir la nueva shell instalada como una shell válida dentro del sistema. Para ello,
shell> echo "/usr/bin/rssh" >> /etc/shells
Y a continuación la configuramos (/etc/rssh.conf). Aquí es donde podemos optar por una configuración general o una particular para cada usuario.
  • General
    Establece los métodos de conexión permitidos por la shell y se aplican a todos los usuarios. Se define al principio del fichero de configuración.
    ...
    #allowsvnserve
    #allowscp
    allowsftp
    #allowcvs
    #allowrdist
    #allowrsync
    ...
    
  • Particular
    Se aplica a cada usuario y permite diferenciar usuario a usuario el método de acceso, así como la jaula chroot (si se desea) en la que éste quedará encerrado con dicha conexión. La forma de establecer a qué tendrá permisos es mediante una máscara binaria (0: no permitido, 1: sí permitido).
    user=javier:011:000010:"/home/javier chroot" # scp with chroot
    user=javier:011:000100:"/var/www chroot"     # sftp with chroot
    user=test:011:000110                         # scp & sftp
    
Una vez establecidos los permisos en el fichero de configuración tendremos que indicarle al sistema que emplee la nueva shell a aquellos usuarios que nos interese. Por lo tanto si creamos un usuario nuevo,
shell> adduser --shell /usr/bin/rssh javier
Y si modificamos uno existente,
shell> usermod -s /usr/bin/rssh test
Ahora al intentar acceder con algún sistema del que no se tenga permisos saldrá la advertencia de que no es posible acceder y los métodos para los que sí está habilitado el acceso a dicho usuario.
shell> ssh -l test 192.168.1.35
test password:
Last login: Wed Feb  9 22:49:47 2011 from 192.168.1.33

This account is restricted by rssh.
Allowed commands: sftp and sftp

If you believe this is in error, please contact your system administrator.

Connection to 192.168.1.35 closed.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios