GNU/Linux >> Tutoriales Linux >  >> Linux

Guía para configurar el servidor SFTP en Linux

¿Qué es SFTP?

SFTP significa Protocolo de transferencia de archivos SSH. Lo has adivinado correctamente. Es una versión de FTP que usa SSH en la parte superior. Permite a los usuarios cargar y descargar archivos hacia y desde un servidor Linux a través de una conexión cifrada. FTP hace lo mismo sin encriptación y es por eso que se prefiere SFTP a FTP en estos días.

Veamos cómo puede configurar un servidor SFTP en un sistema Linux.

Configuración del servidor SFTP en Linux

He usado Ubuntu en este tutorial. Los comandos de instalación son específicos para Ubuntu y Debian, pero el resto de los pasos se pueden seguir en cualquier otra distribución de Linux.

Para realizar los pasos, debe tener derechos de sudoer. Entonces, si no tiene derechos sudo, comuníquese con el administrador del sistema. Si usted es el indicado, lea acerca de cómo crear un usuario sudo en Ubuntu.

Configurar SFTP es muy fácil. Antes de continuar, debe tener instalado OpenSSH en el lado del servidor y el paquete SSH en el lado del cliente.

He discutido la configuración de SSH en Ubuntu en detalle en un artículo separado, solo mencionaré los pasos importantes aquí.

Para instalar OpenSSH en el servidor, puede usar el siguiente comando:

sudo apt install openssh-server

También necesita SSH en el sistema desde donde accederá al servidor SFTP.

sudo apt install ssh

Una vez hecho esto, tendrá todo listo para configurar SFTP. Se hace en tres pasos y te lo mostraré uno por uno.

Paso 1:Crear grupos, usuarios, directorios

Para usar SFTP (o cualquier otro servicio en general) de forma segura, lo mejor es crear grupos y usuarios para usar ese servicio y solo ese servicio. “Es mejor otorgar un derecho específico a una entidad específica” .

En caso de que desee otorgar acceso SFTP y también acceso normal al sistema, cree usuarios de manera que sea fácil identificarlos según el servicio. Por ejemplo, si seeni se utiliza para el acceso normal al sistema, entonces seenisftp se puede utilizar para el acceso SFTP. Usar este método será más fácil en el lado de la administración.

Vamos a crear un grupo llamado "sftpg ” usando el comando groupadd:

sudo groupadd sftpg

Vamos a crear un usuario llamado “seenisftp” y añádelo al grupo anterior y dale una contraseña.

sudo useradd -g sftpg seenisftp 
sudo passwd seenisftp

En el comando useradd, -g La opción le dice al grupo a qué usuario se debe agregar. Puede enumerar todos los usuarios en Linux y verificar que se haya agregado el nuevo usuario.

Supongamos que desea utilizar el directorio /data/ como raíz para sftp y /datos/NOMBRE DE USUARIO para cada usuario. Entonces, cuando los usuarios inician sesión a través de sftp, deben estar en /data/USERNAME como su directorio predeterminado (como si estuviera en /home/USERNAME directorio cuando inicia sesión en el sistema Linux a través de SSH). Además, asuma la restricción de que pueden leer archivos de ese directorio pero solo pueden cargarlos en cargas directorio.

Vamos a crear los directorios y cambiar su acceso y propiedad de la siguiente manera (lea sobre los permisos de archivo en Linux para saber más al respecto).

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Una cosa que podría confundir es dar la propiedad del directorio del usuario a la propia raíz. Esto es obligatorio para hacer chroot en SFTP. Así que asegúrese de que el propietario de /data/USERNAME es raíz .

A partir de ahora, tenemos un usuario llamado seenisftp con grupo sftpg y con permisos de acceso configurados para /data/seenisftp .

Paso 2:Configurar sshd_config

A continuación, debe configurar el servidor ssh para que cada vez que un usuario que pertenece al grupo sftpg inicie sesión, ingrese a sftp en lugar del shell normal, obtienes a través de ssh. Agregue el siguiente fragmento a /etc/ssh/sshd_config si aún no está presente.

Match Group sftpg
        ChrootDirectory /data/%u
        ForceCommand internal-sftp

En el fragmento anterior, ChrootDirectory permite que el directorio especificado se convierta en el nodo raíz ("/" directorio) en el árbol de directorios. El usuario que ha iniciado sesión no puede ver nada por encima de ese directorio. Por lo tanto, evitará que el usuario actual acceda a los archivos de otros usuarios a través de sftp . %u es el código de escape para completarlo con el nombre de usuario actual en el momento del inicio de sesión. Cuando visto ftp inicios de sesión a través de sftp , estará en /data/seenisftp como su directorio raíz. No podrá ver nada por encima.

Paso 3:reiniciar el servicio

Para realizar los cambios que hicimos en sshd_config live, reinicie el servicio de la siguiente manera.

sudo systemctl restart sshd

Acceder a SFTP a través de la línea de comandos de Linux

Puede iniciar sesión en SFTP como lo haría normalmente con SSH.

sftp [email protected]

Comandos SFTP de muestra

Los comandos SFTP suelen tener el siguiente formato.

COMMAND [SOURCE] [DESTINATION]

Para cualquier comando, los argumentos pueden ser rutas del sistema local o rutas del sistema remoto. No hay una distinción visible específica entre ellos. Puede especificar la ruta como de costumbre después de considerar si el argumento es local o remoto.

OBTENER – descargar contenidos del servidor remoto al sistema local. El siguiente comando descarga el archivo remoto poster.img al ~/Pictures del sistema local directorio.

GET poster.img ~/Pictures

PONER – Subir contenidos desde el sistema local al sistema remoto. El siguiente comando carga el ~/Pictures/poster2.jpg en mis cargas directorio.

PUT ~/Pictures/poster2.jpg uploads/

RM – Para eliminar los archivos en el sistema remoto. Esto es muy similar a rm dominio. Puede ver el siguiente comando que elimina una imagen en uploads/poster3.jpg

RM uploads/poster3.jpg

Los comandos anteriores son muy básicos y suficientes para explorar el servidor FTP/SFTP. Si desea obtener más información, utilice help ordena o usa este recurso.

Espero que este artículo le haya ayudado a configurar el servidor SFTP en Linux.

Cuéntanos en los comentarios cuál es la configuración de tu sistema de archivos SFTP. ¿Es como se menciona en este artículo o un directorio agrupado o algo más?

Si te ha resultado útil este artículo, compártelo con tus amigos. Si tiene sugerencias, no dude en dejarlas a continuación.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. ¿Qué es Linux? Una guía para usuarios no técnicos

  3. Cómo instalar el servidor web Nginx en Linux

  4. Instalación y configuración de Grafana en Linux

  5. ¿Configurando el servidor web de Ubuntu?

10 configuraciones útiles de Sudoers para configurar 'sudo' en Linux

Cómo configurar el servidor Chroot SFTP en Linux

Configuración de la partición LVM en el servidor Linux

Guía de inicio rápido de Ansible para administradores de sistemas Linux

Servidor de monitoreo Graylog en Ubuntu Linux para servidores/servicios de monitoreo

Configuración de la zona horaria en Linux