GNU/Linux >> Tutoriales Linux >  >> AlmaLinux

Cómo configurar el servidor y el cliente FTP/SFTP en AlmaLinux

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

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

  1. 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
    
  2. Cree un nuevo archivo de configuración de VSFTPD usando nano o el editor de texto que prefiera:
    $ sudo nano /etc/vsftpd/vsftpd.conf
    
  3. 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.

  4. 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
    
  5. 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.

  1. 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
    
  2. 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.

  1. Abra el administrador de archivos desde el menú Actividades.
  2. 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.
  3. Conéctese al servidor FTP con el administrador de archivos GNOME
  4. Ingrese las credenciales de la cuenta FTP que configuramos anteriormente y haga clic en conectar.
  5. Introduzca el nombre de usuario y la contraseña de FTP
  6. Después de una conexión exitosa, verá el archivo de prueba que creó anteriormente.
  7. 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

  1. Si aún no está instalado, use el siguiente comando para instalar OpenSSH.
    $ sudo dnf install openssh-server openssh-clients
    
  2. 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
    
  3. 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.

  4. Reinicie el servicio SSH para que estos nuevos cambios surtan efecto:
    $ sudo systemctl restart sshd
    
  5. 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.

  1. Cree un nuevo grupo de usuarios llamado sftp . Todos nuestros usuarios de SFTP deberán pertenecer a este grupo.
    $ sudo groupadd sftp
    
  2. 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
    
  3. Establezca una contraseña para el sftpuser recién creado:
    $ sudo passwd sftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  4. 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.

  1. 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>
    
  2. 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.

  1. Abra el administrador de archivos desde el menú Actividades.
  2. 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.
  3. Conéctese al servidor SFTP con el administrador de archivos GNOME
  4. Ingrese las credenciales de la cuenta SFTP que configuramos anteriormente y haga clic en conectar.
  5. Ingrese el nombre de usuario y la contraseña de SFTP
  6. Después de una conexión exitosa, podrá abrir su directorio de inicio, donde puede cargar y descargar archivos.
  7. 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.


AlmaLinux
  1. Cómo configurar el servidor y el cliente NTP en Debian 9 Stretch Linux

  2. Cómo configurar el servidor y el cliente Samba en AlmaLinux

  3. Cómo configurar servidor y cliente NTP en AlmaLinux

  4. Cómo configurar un servidor SFTP en CentOS

  5. Cómo instalar y configurar el servidor y cliente YPServ Linux NIS

Cómo instalar Apache, MySQL y PHP en AlmaLinux 8

Cómo instalar y configurar Docker Container en AlmaLinux 8

Cómo instalar un servidor FTP en AlmaLinux 8

Cómo instalar el servidor OpenVPN en AlmaLinux 8

Cómo configurar el servidor y el cliente NTP en Ubuntu 20.04 LTS

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN

    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