GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear un usuario SFTP para una raíz de documentos del servidor web

SFTP (SSH/Secure File Transfer Protocol) es un estándar de transmisión de red que se utiliza para transferir, acceder y administrar archivos a través de una red remota. Contiene SSH (Secure Shell), lo que lo hace mucho más seguro que el protocolo FTP.

Los archivos se transfieren a través de un único canal de control en SFTP. Requiere autenticación y se ejecuta en el puerto 22. En SFTP, el shell SSH proporciona cifrado que ayuda a proteger los nombres de usuario, las contraseñas y otros datos personales transferidos a través de SFTP.

En esta guía práctica, aprenderemos a crear usuarios SFTP para la raíz del documento del servidor web.

Paso 1:Instalación de SSH (Secure Shell)

SFTP es un protocolo de transferencia de archivos muy seguro debido al cifrado que proporciona SSH para los datos a medida que se transfieren a través de la red. SSH se instala principalmente en las distribuciones de Linux de forma predeterminada, pero si no está preinstalado en su sistema, puede usar el siguiente comando para instalarlo:

sudo apt install ssh 

Si ya está instalado, el comando actualizará los paquetes de OpenSSH.

Paso 2:configurar SSH para usar el código de servidor SFTP

Ahora abra el archivo de configuración de SSH en un editor de texto para modificarlo para el código del servidor SFTP. Aquí usaremos el editor nano para editar el archivo de configuración.

sudo nano /etc/ssh/sshd_config 

Busque la línea que comienza en "Subsistema sftp".

Comente la línea agregando # al comienzo de la línea y escriba la siguiente línea después de esta línea como se muestra en la captura de pantalla que se muestra a continuación:

Subsystem sftp internal-sftp

El SSHD utilizará el código del servidor SFTP en lugar de ejecutar el servidor SFTP cambiando la línea anterior.

Una vez que haya cambiado el archivo de configuración, guarde el archivo y salga de él usando las teclas de método abreviado de teclado CTRL+S y CTRL+X.

Después de los cambios, debemos reiniciar el demonio SSHD para que los cambios funcionen.

sudo systemctl restart sshd 

Paso 3:creación de un usuario (usuario SFTP)

Es una práctica excelente crear un nuevo usuario que solo tenga acceso SFTP a la raíz del documento. No se recomienda agregar un usuario con privilegios Sudo a la raíz del documento del servidor web. Cree un nuevo usuario usando el comando adduser:

sudo adduser sftpuser 

El terminal le pedirá un par de cosas como establecer la contraseña y la información del usuario. También le pedirá algunos otros detalles, así que déjelos en blanco o proporcione la información adecuada.

Un nuevo usuario con el nombre de sftpuser se ha creado correctamente.

Paso 4:creación de directivas de coincidencia de usuarios en el archivo de configuración de SSH

Ahora restringiremos a este usuario a la raíz del documento y también deshabilitaremos el acceso del usuario a SSH para que el usuario inicie sesión a través de SFTP.

Para restringir el acceso del usuario, abra el archivo de configuración de SSH en cualquier editor de texto:

sudo nano /etc/ssh/sshd_config 

Ahora vaya al final del archivo y agregue el siguiente contenido en el archivo de configuración "sshd_config":

Match User sftpuser
        ForceCommand internal-sftp 
        ChrootDirectory /var/www/
        PasswordAuthentication yes
        X11Forwarding no 
        AllowTcpForwarding no 

Asegúrese de reemplazar el nombre de usuario "sftpuser" con el nombre de usuario que configuró.

Una vez que el contenido anterior se agregue al archivo de configuración de SSH, guarde y salga usando las teclas de método abreviado CTRL+S y CTRL+X.

Para revisar la sintaxis y verificar si todo salió bien, puedes ejecutar el comando:

sudo sshd -t 

Si no ocurriera ningún error, podríamos recargar el servicio SSH para que los cambios funcionen.

sudo systemctl restart sshd 

Paso 5:agregar un usuario de SFTP al grupo www-data

Ahora agregaremos al usuario al grupo www-data ejecutando el siguiente comando:

sudo usermod -a -G www-data sftpuser 

En una ejecución exitosa, no se mostrará ningún resultado.

Paso 6:configuración del permiso del directorio raíz del documento

Siga las instrucciones posteriores con mucho cuidado, ya que SFTP es muy estricto con respecto a los permisos del directorio chroot.

  1. Comenzaremos comprobando los permisos actuales y la propiedad de var:
    sudo ls -ld /var/ 
    
  2. Los permisos deben ser 755 y el propietario debe ser root de forma predeterminada. De lo contrario, ejecute el comando que se indica a continuación para establecer los permisos adecuados:
    sudo chmod 755 /var/ 
    
  3. Ahora use este comando para establecer la propiedad correcta:
    sudo chown root:root /var/ 
    
  4. Del mismo modo, aplique los mismos permisos al chroot:

    sudo chmod 755 /var/www/ 
    
  5. Ya que hemos establecido "/var/www/" en el directorio chroot. Ahora establezca la propiedad correcta del directorio chroot:
    sudo chown root:root /var/www/ 
    
  6. Para permitir que un grupo escriba en el directorio raíz del documento, establezca su permiso en 755:
    sudo chmod 755 /var/www/html/ 
    
  7. Para otorgar la propiedad de la raíz del documento "/var/www/html" y sus directorios y archivos adicionales al grupo www-data, use el siguiente comando:
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. Ahora otorgue permisos 755 al contenido ubicado en la raíz del documento "/var/www/html" usando el comando:
    sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
    
  9. El comando anterior otorgará al usuario SFTP permisos de lectura, escritura y ejecución de los directorios.

    También debemos otorgar permisos 664 a todos los archivos que están presentes en la raíz del documento para permitir que el propietario y el grupo de usuarios de SFTP lean y escriban los archivos:

    sudo find /var/www/html/ -type f -exec chmod 664 {} \; 
    
  10. Ahora, para el último paso, asegúrese de que todos los archivos y directorios nuevos adquieran el grupo de datos www creado por el usuario SFTP recién creado:
    sudo find /var/www/html -type d -exec chmod g+s {} \; 
    

¡Felicidades! su nuevo usuario SFTP ha sido creado y agregado a la raíz del documento del servidor web. Ahora puede iniciar sesión en SFTP.

Conclusión

En esta guía práctica, hemos aprendido cómo instalar y configurar SSH para usar el código del servidor SFTP. Después de eso, creamos un nuevo usuario, lo restringimos a la raíz del documento y deshabilitamos su acceso SSH. Luego agregamos al usuario a la raíz del documento del servidor web para permitirle leer, escribir y ejecutar archivos en la raíz del documento.


Linux
  1. Ssh:¿restringir un usuario de Ssh/scp/sftp a un directorio?

  2. Centos:¿cómo crear un usuario Sftp en Centos?

  3. ¿Cómo crear un nuevo usuario con acceso Ssh?

  4. Deshabilite el inicio de sesión raíz directo en su servidor

  5. Cómo crear un usuario SFTP sin acceso Shell en CentOS 8

Cómo crear un servidor de archivos personal con SSH en Linux

Cómo restablecer la contraseña de usuario raíz de MySQL en Linux

¿Cómo deshabilitar el inicio de sesión SSH para el usuario raíz en Linux?

¿Cómo habilitar el usuario raíz en Ubuntu Server?

Cómo crear un controlador de dominio en Linux para AD

¿Cómo se crea una clave ssh para otro usuario?