19 febrero 2012

Restingir el acceso a la shell SSH manteniendo SFTP

En algunos casos nos conviene dejar habilitado el acceso SFTP para los usuarios pero deshabilitando el acceso a una shell. Vamos a ver como hacerlo mediante rssh.

Bajamos el SlackBuilds

http://slackbuilds.org/repository/13.37/network/rssh/

Descargamos la última versión de rssh y la descomprimimos:
 
cd /usr/local/src
wget 'http://sourceforge.net/projects/rssh/files/rssh/2.3.3/rssh-2.3.3.tar.gz'
tar xzf rssh-2.3.3.tar.gz
cd rssh-2.3.3

A continuación lo compilamos e instalamos:
 
./rssh.SlackBuild
 installpkg rssh-2.3.3-i486-1_SBo.txz


Para poder ser utilizado deberemos añadirlo a la lista de shells del sistema:
 
echo "/usr/bin/rssh" >> /etc/shells

A continuación mediante el fichero /etc/rssh.conf podemos configurar que permitimos de forma general:
 
#allowscp
allowsftp
#allowcvs
#allowrdist
#allowrsync

O bien podemos definir mediante una mascara de bits configuración específica por usuario:
 
user=tunelssh:011:00010  # sftp

Para restringir un usuario deberemos crearlo, o modificar uno existente, definiendo la shell del usuario a /usr/bin/rssh:
 
useradd -s /usr/bin/rssh usuario

Al acceder por ssh veremos un mensaje que nos advierte de los métodos permitidos:
 
$ ssh -l tunelssh localhost
test.vampii.com.ar@localhost's password:
Last login: Wed Feb  9 22:49:47 2011 from vampii.com.ar
This account is restricted by rssh.
Allowed commands: sftp

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

Connection to localhost closed. 
 

Basado, entre otros, en: http://systemadmin.es/2011/02/restingir-el-acceso-a-la-shell-ssh-manteniendo-sftp

No hay comentarios: