GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar usuarios de SFTP en sistemas basados ​​en Linux

Este artículo le muestra cómo crear usuarios protegidos del Protocolo de transferencia de archivos SSH (SFTP) que están restringidos o encarcelados en sus directorios de inicio.

ADVERTENCIA :No intente encarcelar al usuario root. Solo encarcele a los usuarios adicionales para que no impida que el usuario raíz realice operaciones correctamente.

Antes de comenzar, revise las siguientes prácticas recomendadas:

  • El directorio de inicio del usuario SFTP debe ser propiedad de root:root . Otros directorios pueden (y deberían) ser propiedad (y escritura) del usuario.

  • Es importante asegurarse de que el usuario chroot tenga acceso de escritura al DocumentRoot especificado.

  • Es importante iniciar sesión y comprobar que el usuario SFTP funciona correctamente.

  • Es importante asegurarse de que el usuario SFTP agregado se agregue al grupo SFTP.

  • Estas instrucciones son para agregar un solo dominio (usuario de SFTP), pero podría usarlas potencialmente para administrar varios dominios.

Importante Nota:Los pasos de este artículo no funcionan con RHEL® 7 o CentOS® 7. Al igual que con cualquier operación chroot adecuada, esta configuración no proporciona acceso de escritura al directorio chroot. Solo se pueden escribir los subdirectorios de la cárcel chroot. Esto se debe a la forma en que se interpretan los permisos raíz en los directorios de nivel superior en los que se encuentra el usuario SFTP.

Utilice los siguientes pasos para crear usuarios SFTP seguros que estén encarcelados en sus directorios de inicio:

  1. Agregue el grupo SFTP que desea usar para el acceso SFTP ejecutando el siguiente comando:

    groupadd sftponly
    
  2. Agregue el usuario SFTP ejecutando el siguiente comando, reemplazando myuser con el nombre de usuario:

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Cree una contraseña para el usuario ejecutando el siguiente comando, reemplazando myuser con el nombre de usuario:

    passwd myuser
    
  4. Abra el sshd_config archivo que contiene la configuración de SSH y SFTP ejecutando el siguiente comando:

    nano /etc/ssh/sshd_config
    
  5. Comente la siguiente línea agregando un símbolo de almohadilla (#) al principio, como se muestra en el siguiente ejemplo:

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Agregue la siguiente línea directamente debajo de la línea que acaba de comentar:

    Subsystem sftp internal-sftp
    
  7. Agregue el siguiente código al final del archivo:

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Ejecute el sshd comando para probar los cambios, luego reinicie el servicio.

    Importante :Si este paso se realiza incorrectamente, podría romper su configuración SSHD.

    sshd -t
    service sshd restart
    

Asegúrese de que los permisos de archivo en el sistema de archivos sean correctos

A continuación, debe verificar que los permisos de archivo en el sistema de archivos sean correctos para que la cárcel SFTP funcione correctamente.

  1. Verifique que SFTPROOT El directorio (el directorio de inicio que configuró cuando agregó el usuario de SSH) tiene el derecho user:root group:root permisos ejecutando el siguiente comando:

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Para verificar que el inicio de sesión de SFTP funciona, conéctese a SFTP ejecutando el siguiente comando, reemplazando myuser con el usuario que hayas elegido, como se muestra en el siguiente ejemplo:

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Pruebe la lista de directorios ejecutando el siguiente comando:

    sftp> ls -al
    

    El resultado debe ser similar al siguiente ejemplo:

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Nota :Usa el cd comando para ir al directorio HTML (que se encuentra en /var/www/vhosts/mywebsite.com/html porque el sitio web 'documentroot' está un nivel por debajo del root del usuario SSH SFTP directorio. Debería usar esta configuración porque su www-data los usuarios (los usuarios del servidor web) tienen raíz user:group permisos en sus archivos.

  4. Pruebe la capacidad de cargar archivos ejecutando los siguientes comandos:

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Pruebe la capacidad de descargar archivos ejecutando el siguiente comando:

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Muestre el directorio de trabajo actual ejecutando el siguiente comando:

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP solo ve los archivos en /var/www/vhosts/mywebsite.com/ y considera este directorio como el directorio raíz ('/') de más alto nivel.

  7. Utilice los siguientes pasos para conectarse a SFTP y configurar su cliente SFTP:

    1. Instala Cyberduck®.
    2. Abra la aplicación Cyberduck.
    3. En la parte superior de la ventana, haga clic en el icono de Abrir conexión .
    4. En el menú desplegable, seleccione SFTP (Protocolo de transferencia de archivos SSH) .
    5. En el Servidor campo, ingrese la dirección del Protocolo de Internet (IP) para el servidor.
    6. Ingrese el nombre de usuario y la contraseña que usa para conectarse a SFTP.
    7. Haga clic en Conectar .

Importante :siempre pruebe su sitio web después de cambiar los permisos de archivo.


Linux
  1. Cómo crear varias cuentas de usuario en Linux

  2. Administrar usuarios de Linux y grupos de Linux

  3. Cómo configurar las cárceles chroot de Linux

  4. Lista de usuarios en Linux:el mejor método

  5. Establecer o cambiar una contraseña de usuario en Linux

Cómo agregar usuarios a un grupo en Linux

Cómo configurar o cambiar el agente de usuario con curl

Cómo gestionar usuarios en Plesk

Cómo listar usuarios en Linux

Cómo cambiar o establecer la contraseña de usuario en Linux

Usuarios Webmin