Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Guía para Enjaular Usuarios FTP con SFTP

Loading

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:

  1. Comentar la línea predeterminada del subsistema SFTP:

    # Subsystem sftp /usr/libexec/openssh/sftp-server
  2. Habilitar el subsistema interno SFTP:

    Subsystem sftp internal-sftp
  3. Configurar la jaula para el grupo sftpusers:

    Match Group sftpusers
    ChrootDirectory /var/www/sftp/%u
    ForceCommand 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:

  1. Establecer permisos del directorio raíz:

    chown root:root /var/www/sftp/user
    chmod 755 /var/www/sftp/user
  2. Asignar permisos al subdirectorio de carga:

    chown user:sftpusers /var/www/sftp/user/uploads
    chmod 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.

  1. Crear el directorio .ssh:

    mkdir -p /var/www/sftp/user/.ssh
    chmod 700 /var/www/sftp/user/.ssh
  2. Copiar la clave pública en authorized_keys:

    echo "CONTENIDO_DE_LA_CLAVE_PUBLICA" > /var/www/sftp/user/.ssh/authorized_keys
    chmod 600 /var/www/sftp/user/.ssh/authorized_keys
    chown -R user:sftpusers /var/www/sftp/user/.ssh

Notas importantes

  • Asegúrese de que el directorio definido como ChrootDirectory sea propiedad de root y 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.

You may also like...