Permitir acceso a un sistema Linux mediante scp/sftp denegando acceso mediante ssh

En sistemas Linux es habitual disponer de usuarios que permiten el acceso y el intercambio de ficheros mediante FTP.

La norma habitual es que estos usuarios FTP no nos interesa que puedan abrir una shell en el sistema, y por tanto acceder via SSH.

Es para ello que al crear usuarios FTP habitualmente se crean con la shell /sbin/nologin:

testftp:x:501:48::/var/ftp/testftp:/sbin/nologin

El tema se complica cuando es necesario que el intercambio de ficheros sea de forma segura mediante scp/sftp, ya que no se permite que un usuario con la shell /sbin/nologin conecte via scp/scp.

Es por ello que existe el paquete  rssh. Para ello procedemos a descargarlo e instalarlo en nuestro O.S., un Oracle Enterprise Linux Server release 5.6:

wget http://pkgs.repoforge.org/rssh/rssh-2.3.3-1.el5.rf.x86_64.rpm
Saving to: 'rssh-2.3.3-1.el5.rf.x86_64.rpm'
100%[================================================>] 61,019 281K/s in 0.2s

Y procedemos a instalar el paquete:

[root@server1~]# rpm -iv rssh-2.3.3-1.el5.rf.x86_64.rpm

Una vez instalado procedemos a configurar la nueva shell editando el fichero /etc/rssh.conf, en nuestro caso solamente habilitamos los accesos via sftp y scp:

[root@server1~]# cat /etc/rssh.conf
# This is the default rssh config file
# set the log facility. "LOG_USER" and "user" are equivalent.
logfacility = LOG_USER
# Leave these all commented out to make the default action for rssh to lock
# users out completely...
allowscp
allowsftp
#allowcvs
#allowrdist
#allowrsync
...

Finalmente se modifica el usuario:

usermod -s /usr/bin/rssh testftp

A partir de este momento el usuario testftp solamente podrá acceder al sistema mediante sftp y scp, impidiendo el acceso via ssh, ftp, etc.

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día