Facebookfacebook Twitter Emailmail Imprimirprint
Viernes 29 de marzo de 2024
Santoral:
Gladys
Otros:
Semana:
13
Día año:
89/366 (24%)
U.F.:
Sin información
IPC:
Sin información
Dolar:
Sin información
Euro:
Sin información
Bitcoin:
U$ {bitcoin}
mindicador.cl

Restringir acceso solo a SFTP

Transferencia de archivo sin acceso a un shell

Introducción

Contamos con un gran problema a la hora de crear un usuario de acceso en nuestro servidor, con el objeto de transferir archivos, y que de forma natural cuenta con un acceso shell al mismo, pudiendo el usuario ejecutar comando y hacer uso no autorizado de nuestro hardware.

Lo que se busca es poder limitar el acceso exclusivamente a la transferencia de archivos, para lo cual ssh con su sub-sistema (subsystem) sftp nos puede resolver el problema.

Por simplicidad de la configuración no consideramos "enjaular" (chroot) al usuario en el directorio de trabajo, por lo que se debe tener en cuenta que se le permite al usuario descargar o subir todos los archivos del sistema según los permisos que tengan.

Configuración

Consideraremos un caso más general, donde podremos tener un grupo de usuarios que nos interesa dar solo acceso sftp. No está de más aclarar que los pasos indicados requieren permiso "root" de administrador del sistema y se basan en CentOS 6, aunque es válido para la gran mayoría de las distribuciones Linux probablemente con algunos ajustes menores (rutas de archivos por ejemplo)

Crear grupo "sftpuser"

groupadd sftpuser

Crear (o modificar) usuario asignando grupo sftpuser

En este caso se considerará un usuario para actilización de páginas web, por lo que se dejará como grupo principál "apache", y se agregará el grupo sftpuser, el usuario a crear será webusr1:

useradd -c "Carga de contenidos WWW" -g apache -G sftpuser -M -d /var/www/html webusr1

Limitar el acceso en /etc/ssh/sshd_config

Debemos editar el archivo /etc/ssh/sshd_config y agregar (generalmente al final) lo siguiente:

...
Match Group sftpuser
        AllowTCPForwarding      no
        X11Forwarding           no
        ForceCommand            internal-sftp

Con ello se fuerza la ejecución de internal-sftp que corresponde al interprete interno de sshd para el protocolo sftp, evitando la ejecución de una shell o cualquier comando dado como parámetro. Igualmente "AllowTCPForwarding no" evita la definición de un tunel que pudiere saltar nuestras reglas de firewall.

Reiniciar sshd

Como último paso nos queda reiniciar sshd con objeto que tome los cambios realizados:

service sshd restart

Escrito por: Luis Hernán de la Barra, 16/09/2016
Si tiene interés por alguno de éstos servicios u otro similar, por favor llene el formulario de contacto

Generado por Sistema y almacenado en cache

Wyzer
Luis Hernán de la Barra
Teléfono:   +56995451689
WhatsApp:   +56995451689
E-Mail:info@wyzer.cl
Web:www.wyzer.cl