Introducción
SFTP es un protocolo que permite la transferencia segura de archivos a través de una red. A menudo, las empresas y los individuos lo utilizan para transferir datos confidenciales. SFTP es similar a FTP pero utiliza un protocolo diferente para la comunicación. SFTP es más seguro que FTP y, a menudo, se usa junto con SSH (Secure Shell) para proporcionar un nivel de seguridad aún mayor.
En este tutorial, lo ayudaremos a configurar un servidor SFTP y crear un usuario solo de SFTP en sistemas Ubuntu 22.04. Esa cuenta puede conectarse a través de SFTP pero no puede conectarse a través de SSH. Además, esto hará chroot al usuario SFTP solo en un directorio específico.
requisitos previos
- Un sistema Ubuntu 22.04 LTS que se ejecuta con acceso de shell
- Requiere una cuenta con privilegios sudo
Crear un usuario SFTP
En primer lugar, cree una nueva cuenta en su sistema para usarla como usuario de sftp.
El siguiente comando creará una nueva cuenta llamada sftpuser sin acceso de shell. Puede cambiar el nombre de usuario de su elección:
sudo adduser --shell /bin/false sftpuser
Configurar el directorio SFTP
Ahora, cree la estructura de directorios para que el usuario de sftp pueda acceder a ella:
sudo mkdir -p /var/sftp/files
Aquí permitiremos que los usuarios accedan solo al directorio " archivo ".
Ahora, cambie la propiedad del directorio de archivos a sftpuser. Para que sftpuser solo pueda leer y escribir en este directorio:
sudo chown sftpuser:sftpuser /var/sftp/files
Y configure el propietario y el propietario del grupo de / var / sftp como root. El usuario root tiene acceso de lectura/escritura en este acceso. Los miembros del grupo y otras cuentas solo tienen permisos de lectura y ejecución:
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
Actualizar el archivo de configuración de SSH
Ahora edite el archivo de configuración de SSH en un editor de texto:
sudo vim /etc/ssh/sshd_config
Agregue la siguiente configuración al final del archivo:
Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Asegúrese de agregar la configuración después de la línea Subsystem .
Guarde el archivo de configuración y ciérrelo.
Ahora valide el archivo de configuración:
sudo sshd -t
Si la validación es exitosa, no se mostrará ningún resultado. En caso de que obtenga un error en la salida, asegúrese de corregirlo antes de ejecutar los siguientes comandos.
Reinicie el servicio SSH para aplicar los cambios.
sudo systemctl restart ssh
Todo listo. El usuario exclusivo de SFTP se creó con éxito en su sistema Ubuntu. Ahora intente iniciar sesión en el sistema remoto con las credenciales del nuevo usuario y verifique si todo funciona bien.
Conéctese al usuario SFTP
Puede conectarse a un servidor SFTP remoto mediante una línea de comandos o aplicaciones gráficas como Filezilla o WinSCP. En este tutorial, le mostraré las dos formas de conectar sftp a una sola cuenta en el sistema Ubuntu.
Los usuarios de Linux pueden usar la utilidad de línea de comandos sftp para conectarse a una instancia remota de sftp:
sftp [email protected]
También puede conectarse a un servidor SFTP remoto utilizando aplicaciones GUI como FileZilla. Está disponible para usuarios de Linux y Windows. Abra la aplicación Filezilla e ingrese los detalles de sftp:
- Servidor: sftp: // sistema-ip-host
- Nombre de usuario : use el usuario SFTP creado en el paso 1.
- Contraseña: utilice la contraseña de usuario de SFTP creada en el paso 1.
- Puerto : use el puerto del servidor SSH o manténgalo en blanco para el puerto predeterminado.
Haga clic en el botón Conexión rápida.
Verifique que no haya acceso al shell.
Como esta cuenta está configurada solo para conexión SFTP. Por lo tanto, si un usuario intentó conectarse a través de SSH, se cerrará la sesión inmediatamente después de la autenticación exitosa. El usuario recibirá el siguiente mensaje:
ssh [email protected]
[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.noviello.it closed.
Conclusión
En pocas palabras, configurar un servidor SFTP es una excelente manera de transferir archivos de forma segura entre computadoras. Siguiendo los pasos de este artículo, puede configurar su servidor SFTP en poco tiempo en los sistemas Ubuntu. Si tiene alguna pregunta, no dude en dejar un comentario a continuación y estaremos encantados de ayudarle.