FTP y SFTP son excelentes protocolos para descargar archivos desde un servidor remoto o local, o para cargar archivos en el servidor. FTP será suficiente para algunas situaciones, pero para conexiones a través de Internet, se recomienda SFTP. En otras palabras, el uso de FTP no es seguro a través de una conexión a Internet, ya que sus credenciales y datos se transmiten sin encriptación. La 'S' en SFTP significa 'Seguro' y canaliza el protocolo FTP a través de SSH, proporcionando el cifrado necesario para establecer una conexión segura.
En esta guía, repasaremos las instrucciones paso a paso para configurar un servidor FTP a través del software VSFTP o un servidor SFTP a través de OpenSSH en AlmaLinux. Luego, veremos cómo conectarse al servidor desde un sistema cliente AlmaLinux. Configurar FTP/SFTP es un paso común después de instalar AlmaLinux o migrar de CentOS a AlmaLinux.
En este tutorial aprenderás:
- Cómo configurar un servidor FTP a través de VSFTPD
- Cómo configurar un servidor SFTP a través de OpenSSH
- Cómo configurar cuentas de usuario FTP y SFTP
- Cómo permitir FTP y SFTP a través de firewalld
- Cómo conectarse a un servidor FTP/SFTP a través de la línea de comandos
- Cómo conectarse a un servidor FTP/SFTP a través de la GUI de GNOME
Cómo configurar un servidor FTP/SFTP en AlmaLinux
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | AlmaLinux |
Software | VSFTPD, OpenSSH |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Configurar un servidor FTP a través de VSFTPD
Hay varios paquetes de software que se pueden usar para configurar un servidor FTP, pero uno de los mejores es VSFTPD. Esta sección le mostrará cómo instalar y configurar VSFTPD para configurar un servidor FTP en AlmaLinux. Si FTP no es lo suficientemente seguro para su escenario y prefiere configurar SFTP, desplácese hacia abajo hasta la sección correspondiente a continuación.
Instalación de VSFTPD
Instale VSFTPD en su sistema escribiendo este comando en la terminal:
$ sudo dnf install vsftpd
Configurar servidor FSFTPD
- Siempre es una buena práctica mantener una copia de seguridad del archivo de configuración original, en caso de que algo salga mal más adelante. Cambiemos el nombre del archivo de configuración predeterminado:
$ sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
- Cree un nuevo archivo de configuración de VSFTPD usando nano o el editor de texto que prefiera:
$ sudo nano /etc/vsftpd/vsftpd.conf
- Copie la siguiente configuración básica en su archivo. Esta configuración será suficiente para un servidor FTP básico y luego se puede modificar para las necesidades específicas de su entorno una vez que haya verificado que funciona correctamente:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
Pegue las líneas anteriores en su /etc/vsftpd/vsftpd.conf
recién creado y luego guarde los cambios y cierre el archivo.
- El cortafuegos predeterminado de AlmaLinux (firewalld) bloqueará el tráfico FTP de forma predeterminada, pero el siguiente comando creará una excepción para permitir el tráfico:
$ sudo firewall-cmd --zone=public --add-service=ftp --permanent
$ sudo firewall-cmd --reload
- Con el archivo de configuración guardado y las reglas del cortafuegos actualizadas, reinicie VSFTPD para aplicar los nuevos cambios:
$ sudo systemctl restart vsftpd
Crear un usuario FTP
Nuestro servidor FTP está listo para recibir conexiones entrantes, así que ahora es el momento de crear una nueva cuenta de usuario que usaremos para conectarnos al servicio FTP.
- Use este primer comando para crear una nueva cuenta llamada
ftpuser
y el segundo comando para establecer una contraseña para la cuenta:$ sudo useradd -m ftpuser
$ sudo passwd ftpuser
New password:
Retype new password:
passwd: password updated successfully
- Para verificar que todo funciona correctamente, debe almacenar al menos un archivo en
ftpuser
directorio de inicio de 's. Este archivo debería estar visible cuando iniciemos sesión en FTP en los siguientes pasos.$ sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"
Conéctese al servidor FTP a través de la línea de comandos
Instale la utilidad de línea de comandos FTP con el siguiente comando:
$ sudo dnf install ftp
Ahora debería poder conectarse a su servidor FTP ya sea por dirección IP o nombre de host. Para conectarse desde la línea de comandos y verificar que todo funciona, abra una terminal y use el ftp
de AlmaLinux comando para conectarse a su dirección de loopback (127.0.0.1).
$ ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,71,72).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 12 Apr 03 01:11 FTP-TEST
226 Directory send OK.
ftp>
Su salida debe verse como el texto anterior, indicando un inicio de sesión exitoso y un ls
comando que revela nuestro archivo de prueba que creamos anteriormente.
Conéctese al servidor FTP a través de la GUI de GNOME
También puede conectarse a su servidor FTP mediante GUI, si lo prefiere. Hay muchas opciones para clientes FTP, pero la GUI predeterminada de GNOME en AlmaLinux ya viene con la capacidad de conectarse a servidores FTP desde el administrador de archivos. Aquí se explica cómo usarlo para conectarse a su servidor FTP.
- Abra el administrador de archivos desde el menú Actividades.
- Haga clic en "Otras ubicaciones" e ingrese
ftp://127.0.0.1
en el cuadro "Conectar al servidor" en la parte inferior de la ventana y haga clic en conectar.
Conéctese al servidor FTP con el administrador de archivos GNOME - Ingrese las credenciales de la cuenta FTP que configuramos anteriormente y haga clic en conectar.
Introduzca el nombre de usuario y la contraseña de FTP - Después de una conexión exitosa, verá el archivo de prueba que creó anteriormente.
Conexión exitosa al servidor FTP
Configurar un servidor SFTP a través de OpenSSH
Si ya tiene OpenSSH instalado y habilitado en AlmaLinux, entonces no necesita ningún software adicional para ejecutar un servidor SFTP. Siga las instrucciones a continuación para realizar las modificaciones de configuración adecuadas, lo que convertirá su sistema en un servidor SFTP.
Instalar y configurar OpenSSH
- Si aún no está instalado, use el siguiente comando para instalar OpenSSH.
$ sudo dnf install openssh-server openssh-clients
- Una vez que se instala SSH, debemos realizar algunos cambios en el archivo de configuración de SSHD. Use nano o su editor de texto favorito para abrirlo:
$ sudo nano /etc/ssh/sshd_config
- Desplácese hasta la parte inferior del archivo y agregue las siguientes 5 líneas al final:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Las líneas anteriores permitirán a los usuarios en el sftp
group para acceder a sus directorios de inicio a través de SFTP, pero les niega el acceso SSH normal, por lo que nunca pueden acceder a un shell. Después de pegar esas líneas, guarde y cierre el archivo de configuración.
- Reinicie el servicio SSH para que estos nuevos cambios surtan efecto:
$ sudo systemctl restart sshd
- El cortafuegos predeterminado de AlmaLinux (firewalld) bloqueará el tráfico SFTP/SSH de forma predeterminada, pero el siguiente comando creará una excepción para permitir el tráfico:
$ sudo firewall-cmd --zone=public --add-service=ssh --permanent
$ sudo firewall-cmd --reload
Crear cuenta de usuario SFTP
Ahora necesitamos crear cuentas de usuario para cualquier persona a la que deseemos otorgar acceso SFTP.
- Cree un nuevo grupo de usuarios llamado
sftp
. Todos nuestros usuarios de SFTP deberán pertenecer a este grupo.$ sudo groupadd sftp
- Luego, cree un nuevo usuario. Simplemente llamaremos al nuestro
sftpuser
en este ejemplo. También asegúrese de agregar este usuario al sftp
grupo.$ sudo useradd -m sftpuser -g sftp
- Establezca una contraseña para el sftpuser recién creado:
$ sudo passwd sftpuser
New password:
Retype new password:
passwd: password updated successfully
- Por último, concedamos acceso total al usuario en su propio directorio de inicio, pero negemos el acceso al directorio a todos los demás usuarios del sistema:
$ sudo chmod 700 /home/sftpuser/
Nuestra configuración de SFTP está completa; ahora podemos iniciar sesión para asegurarnos de que todo funciona correctamente.
Conéctese al servidor SFTP a través de la línea de comandos
Puede iniciar sesión a través de SFTP con el nombre de host o la dirección IP de su sistema. Para probar desde el mismo sistema en el que acaba de configurar SFTP, conectándose a la dirección de loopback
127.0.0.1
funcionará bien.
- Abra una terminal e inicie sesión con el comando sftp:
$ sftp [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:VI1OabYHoVZyVtKtDwX5HflcFpBW2txOpdBAqLtP1K8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connected to [email protected].
sftp>
- Vaya al directorio de inicio del usuario, ya que es el único lugar donde tiene permisos. Aquí, intente crear un nuevo directorio para confirmar que todo funciona según lo previsto:
sftp> cd sftpuser
sftp> mkdir sftp-test
sftp> ls
sftp-test
sftp>
Conéctese al servidor SFTP a través de la GUI de GNOME
También puede conectarse a su servidor SFTP mediante GUI, si lo prefiere. Hay muchas opciones para clientes SFTP, pero la GUI de GNOME predeterminada en AlmaLinux ya viene con la capacidad de conectarse a servidores SFTP desde el administrador de archivos. Aquí se explica cómo usarlo para conectarse a su servidor SFTP.
- Abra el administrador de archivos desde el menú Actividades.
- Haga clic en "Otras ubicaciones" e ingrese
sftp://127.0.0.1
en el cuadro "Conectar al servidor" en la parte inferior de la ventana y haga clic en conectar.
Conéctese al servidor SFTP con el administrador de archivos GNOME - Ingrese las credenciales de la cuenta SFTP que configuramos anteriormente y haga clic en conectar.
Ingrese el nombre de usuario y la contraseña de SFTP - Después de una conexión exitosa, podrá abrir su directorio de inicio, donde puede cargar y descargar archivos.
Conexión exitosa al servidor SFTP
Pensamientos finales
En esta guía, aprendimos cómo crear un servidor FTP o SFTP en AlmaLinux. También vimos cómo conectarse al servidor FTP/SFTP a través de la línea de comandos o la GUI de GNOME. Pudimos lograr esta funcionalidad a través de VSFTPD y OpenSSH, que nos permiten alojar FTP o SFTP, respectivamente.