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
groupadd sftpCreamos el usuario y lo añadimos al grupo sftp
useradd -g sftp -s /bin/false -d /home/usersftp/ usersftpAsignamos una contraseña al usuario
passwd usersftpCreamos la estructura de carpetas y asignamos los permisos correspondientes
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
cd /home/usersftp/publicAsignamos los siguientes permisos y ACL para que el grupo tenga permisos:
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 .processedAñ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
usermod -a -G sftp rokitohConfiguración SSH
Añadimos en el fichero /etc/pam.d/sshd la siguiente linea al final:
session optional pam_umask.so umask=0002Accedemos al /etc/ssh/sshd_config y debemos modificar la siguiente linea:
Subsystem sftp /usr/lib/openssh/sftp-serverPor esta:
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
service sshd restartProbamos 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