Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Configurar servidor SFTP enjaulado con permisos de escritura en el grupo GNU/Linux

Configurar servidor SFTP enjaulado con permisos de escritura en el grupo GNU/Linux

Tabla de contenidos

En esta entrada realizaremos una configuración de SFTP  enjaulado en el cual tanto el propietario como el grupo podrán realizar modificaciones en el directorio enjaulado.

Realizamos dicha modificación dado que en mi casó un usuario que gestiona un aplicativo necesita poder procesar los ficheros alojados en el sftp.

Configuración usuario y directorios

Creamos el grupo

text
groupadd sftp

Creamos el usuario y lo añadimos al grupo sftp

text
useradd -g sftp -s /bin/false -d /home/usersftp/ usersftp

Asignamos una contraseña al usuario

text
passwd usersftp

Creamos la estructura de carpetas y asignamos los permisos correspondientes

bash
mkdir -p /home/usersftp/public/response
mkdir -p /home/usersftp/public/request
mkdir -p /home/usersftp/public/.processed
chmod 755 /home/usersftp/public/.processed
chown root:root /home/usersftp/
chown usersftp:sftp /home/usersftp/public/*

Accedemos al directorio donde van a transferir los ficheros

text
cd /home/usersftp/public

Asignamos los siguientes permisos y ACL  para que el grupo tenga permisos:

bash
chmod -R g+srwX response/

chmod -R g+rwX request/

chmod -R g+rwX .processed/
chown -R :sftp response/

chmod -R g+s response/

setfacl -d -m g::rwx response
chown -R :sftp request/

chmod -R g+s request/

setfacl -d -m g::rwx request
chown -R :sftp .processed/

chmod -R g+s .processed/

setfacl -d -m g::rwx .processed

Añadimos al final del fichero .bashrc del usuario que queremos que acceda la siguiente linea:

cat /home/rokitoh/.bashrc

umask 002

Añadimos al usuario al grupo correspondiente

text
usermod -a -G sftp rokitoh

Configuración SSH

Añadimos en el fichero /etc/pam.d/sshd la siguiente linea al final:

text
session optional pam_umask.so umask=0002

Accedemos al /etc/ssh/sshd_config y debemos modificar la siguiente linea:

text
Subsystem sftp /usr/lib/openssh/sftp-server

Por esta:

text
Subsystem sftp /bin/sh -c ‘umask 0002; /usr/lib/openssh/sftp-server’

También tenemos que añadir la siguiente configuración al final del fichero:

Match user usersftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 2
KbdInteractiveAuthentication yes

Reiniciamos el servicio ssh

bash
service sshd restart

Probamos acceder mediante nuestro cliente ftp al servidor y crear un fichero.

También mediante el usuario que hemos configurado en el grupo sftp (en mi caso rokitoh) ya podría crear o modificar un archivo en el servidor sftp mediante una shell.

Un saludo

:wq!

Comentarios