Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Esta guía describe cómo configurar un entorno SFTP seguro en el que los usuarios estén "enjaulados" en directorios específicos, utilizando OpenSSH. Los pasos a continuación usarán el usuario ficticio "user" como ejemplo.
1. Crear un grupo para los usuarios SFTP
Se crea un grupo para agrupar a los usuarios SFTP:
groupadd sftpusers
2. Crear un usuario SFTP
El siguiente comando crea el usuario "user", lo asigna al grupo sftpusers, establece su directorio principal y deshabilita el acceso al shell:
useradd -g sftpusers -d /user -s /sbin/nologin user
passwd user
3. Configurar el servicio SFTP en OpenSSH
Edite el archivo de configuración de OpenSSH, normalmente ubicado en /etc/ssh/sshd_config. Cambie o añada las siguientes líneas:
- Comentar la línea predeterminada del subsistema SFTP:
# Subsystem sftp /usr/libexec/openssh/sftp-server - Habilitar el subsistema interno SFTP:
Subsystem sftp internal-sftp - Configurar la jaula para el grupo
sftpusers:Match Group sftpusersChrootDirectory /var/www/sftp/%uForceCommand internal-sftp
4. Crear el directorio para el usuario
Cree la jaula donde estará contenido el usuario y su carpeta de trabajo:
mkdir -p /var/www/sftp/user/uploads
5. Ajustar permisos
Configure los permisos de los directorios para garantizar la seguridad:
- Establecer permisos del directorio raíz:
chown root:root /var/www/sftp/userchmod 755 /var/www/sftp/user - Asignar permisos al subdirectorio de carga:
chown user:sftpusers /var/www/sftp/user/uploadschmod 755 /var/www/sftp/user/uploads
6. Reiniciar el servicio SSH
Reinicie el servicio SSH para aplicar los cambios:
service sshd restart
7. Opcional: Configurar claves SSH para el usuario
Si desea que el usuario se conecte mediante claves SSH, cree el directorio .ssh dentro del home del usuario y copie las claves públicas en un archivo llamado authorized_keys.
- Crear el directorio
.ssh:mkdir -p /var/www/sftp/user/.sshchmod 700 /var/www/sftp/user/.ssh - Copiar la clave pública en
authorized_keys:echo "CONTENIDO_DE_LA_CLAVE_PUBLICA" > /var/www/sftp/user/.ssh/authorized_keyschmod 600 /var/www/sftp/user/.ssh/authorized_keyschown -R user:sftpusers /var/www/sftp/user/.ssh
Notas importantes
- Asegúrese de que el directorio definido como
ChrootDirectorysea propiedad derooty no permita escrituras para otros usuarios. - Cada usuario tendrá un directorio de jaula único bajo
/var/www/sftp.
Este procedimiento garantizará que los usuarios solo tengan acceso a sus propios directorios, sin posibilidad de navegar fuera de su jaula.