GNU/Linux >> Tutoriales Linux >  >> Arch Linux

Cómo configurar un servidor SFTP en Arch Linux

El Protocolo de transferencia de archivos es un protocolo de comunicación estándar utilizado para la transferencia de archivos informáticos desde un servidor a un cliente en una red informática.

FTP no es popular hoy en día porque carece de seguridad. Cuando se envía un archivo mediante este protocolo, los datos, el nombre de usuario y la contraseña se comparten en texto sin formato, lo que significa que un pirata informático puede acceder a esta información con poco o ningún esfuerzo. Para que los datos estén seguros, debe usar una versión actualizada de FTP como SFTP.

SFTP Secure File Transfer Protocol es un protocolo de transferencia de archivos que brinda acceso seguro a una computadora remota para brindar comunicaciones seguras. Aprovecha SSH:Secure Socket Shell y, con frecuencia, también se lo conoce como "Protocolo de transferencia de archivos de Secure Shell".

Contenido relacionado

  • Cómo trabajar con el cliente SFTP en Linux:10 comandos sftp
  • Cómo configurar un servidor SFTP en el servidor Debian 11
  • Descargar archivos desde el servidor SFTP utilizando un script de python
  • Enumere, cargue y descargue archivos desde un servidor SFTP usando golang
  • Cómo configurar un servidor SFTP en OpenSUSE Leap 15.3 Server
  • Cómo instalar y configurar el servidor sftp en Ubuntu 20.04
  • Cómo configurar un servidor SFTP en CentOS 8/RHEL 8 Server

Requisitos

Para seguir esta guía, asegúrese de tener lo siguiente:

  1. Máquina Arch Linux
  2. Acceso raíz al servidor o un usuario con acceso raíz
  3. Acceso a Internet desde el servidor

Tabla de contenido

  1. Asegurarse de que el servidor esté actualizado
  2. Asegurarse de que el servicio SSH esté instalado
  3. Crear usuarios y grupos y agregar los directorios necesarios
  4. Configuración del servicio ssh
  5. Verificar que la configuración funcione como se esperaba

1. Asegurarse de que el servidor esté actualizado

Antes de continuar, asegúrese de que su sistema esté actualizado. Use este comando para actualizar los paquetes del sistema y actualizarlos.

sudo pacman -Syyu

2. Asegurarse de que el servicio SSH esté instalado

Verifique que el ssh esté instalado:

$ sudo pacman -Qi openssh
Name            : openssh
Version         : 8.6p1-1
Description     : Premier connectivity tool for remote login with the SSH protocol
Architecture    : x86_64
URL             : https://www.openssh.com/portable.html
Licenses        : custom:BSD
Groups          : None
Provides        : None
Depends On      : glibc  krb5  openssl  libedit  ldns  libxcrypt  libcrypt.so=2-64  zlib  pam
Optional Deps   : xorg-xauth: X11 forwarding
                  x11-ssh-askpass: input passphrase in X
                  libfido2: FIDO/U2F support
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 5.79 MiB
Packager        : Giancarlo Razzolini <[email protected]>
Build Date      : Mon 19 Apr 2021 11:32:46 AM UTC
Install Date    : Thu 03 Jun 2021 03:23:32 AM UTC
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

Si ssh no está instalado, instálelo con este comando:

sudo pacman -S openssh

Ahora que está instalado, inicie el servicio

sudo systemctl start sshd

Confirmar su estado

$ sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2021-12-03 10:19:02 UTC; 17min ago
   Main PID: 467 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 5.0M
     CGroup: /system.slice/sshd.service
             └─467 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 14:53:30 ip-10-2-40-103 sshd[13109]: Unable to negotiate with 141.98.10.246 port 34078: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:42 ip-10-2-40-103 sshd[13111]: Unable to negotiate with 141.98.10.246 port 38674: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:53 ip-10-2-40-103 sshd[13115]: Unable to negotiate with 141.98.10.246 port 43268: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:05 ip-10-2-40-103 sshd[13117]: Unable to negotiate with 141.98.10.246 port 47864: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:17 ip-10-2-40-103 sshd[13119]: Unable to negotiate with 141.98.10.246 port 52460: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:41 ip-10-2-40-103 sshd[13123]: Unable to negotiate with 141.98.10.246 port 33418: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:53 ip-10-2-40-103 sshd[13127]: Unable to negotiate with 141.98.10.246 port 38014: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:55:05 ip-10-2-40-103 sshd[13129]: Unable to negotiate with 141.98.10.246 port 42614: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Received disconnect from 61.177.173.21 port 60983:11:  [preauth]
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Disconnected from authenticating user root 61.177.173.21 port 60983 [preauth]

3. Crear usuarios y grupos y agregar los directorios necesarios

A continuación, nos aseguraremos de que los usuarios necesarios estén presentes en el sistema. En mi caso, me gustaría tener a los usuarios de sftp en casa como /srv/sftp

Vamos a crear la casa /srv/sftp con este comando:

sudo mkdir /srv/sftp

Entonces, creemos un grupo paraguas solo para SFTP

sudo groupadd sftpusers

A continuación, cree un usuario exclusivo de sftp llamado citizix:

sudo useradd -G sftpusers -d /srv/sftp/citizix -s /sbin/nologin citizix

Las opciones anteriores hacen lo siguiente:

  • -G sftpusers :Crear usuario, agregar a sftpusers grupo
  • -d /srv/sftp/citizix :establecer el directorio de inicio como /srv/sftp/citizix
  • -s /sbin/nologin :No queremos que el usuario inicie sesión, por lo que no hay shell de inicio de sesión ssh
  • Finalmente, nombre de usuario como citizix

Luego agregue la contraseña al usuario creado usando este comando:

$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. Configurando el servicio ssh

Ahora que hemos instalado el software necesario y creado los usuarios y grupos, configuremos ssh.

Asegúrese de que la autenticación de contraseña esté habilitada para ssh. Edite el archivo de configuración aquí /etc/ssh/sshd_config :

sudo vim /etc/ssh/sshd_config

Luego asegúrese de que esta línea no esté comentada:

PasswordAuthentication yes

A continuación, debemos agregar reglas para los usuarios en sftpusers grupo para ser considerado como sftp. Edite el archivo de configuración:

sudo vim /etc/ssh/sshd_config

Agregue este contenido al final del archivo:

Match Group sftpusers  
    X11Forwarding no  
    AllowTcpForwarding no  
    ChrootDirectory /srv/sftp
    ForceCommand internal-sftp

Luego reinicie sshd para recargar la configuración:

sudo systemctl restart sshd

Verifica que sshd se está ejecutando como se esperaba:

$ sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2021-12-04 15:48:19 UTC; 18s ago
   Main PID: 14269 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 892.0K
     CGroup: /system.slice/sshd.service
             └─14269 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 15:48:19 ip-10-2-40-103 systemd[1]: Started OpenSSH Daemon.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on 0.0.0.0 port 22.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on :: port 22.

4. Verificar que la configuración funcione como se esperaba

Después de crear correctamente el usuario y agregar configuraciones de sftp, probemos la configuración con el comando:

❯ sftp [email protected]
[email protected]10.2.11.8's password:
Connected to 10.2.11.8.
sftp>

¡Ahora tenemos un servidor sftp funcionando con un usuario configurado!

Los usuarios podrán iniciar sesión en el servidor y acceder a los archivos y directorios ubicados en su directorio de inicio. Si desea otorgar al usuario otros directorios fuera de su propio directorio, solo asegúrese de que el usuario tenga suficientes derechos de acceso. Estos directorios y archivos deben estar dentro del directorio sftp: /srv/sftp .

Ejemplo:si quiero que el usuario acceda al directorio /srv/sftp/paymentfiles , haga lo siguiente:

Crear el directorio

sudo mkdir /srv/sftp/paymentfiles

Luego asigne el usuario (citizix ) accede haciéndolos dueños del directorio:

sudo chown citizix:sftpusers /srv/sftp/paymentfiles

Eso es. Los usuarios ahora deberían tener acceso.

Conclusión

Logramos configurar el servidor sftp en un servidor Archlinux en esta guía.


Arch Linux
  1. Cómo configurar las cárceles chroot de Linux

  2. Cómo configurar un servidor SFTP en Rocky Linux/CentOS 8 Server

  3. Cómo configurar un servidor SFTP en Debian 11 Server

  4. Cómo configurar un servidor SFTP en OpenSUSE Leap 15.3 Server

  5. Cómo configurar un servidor Wekan Kanban en Linux

Cómo conectar iPhone a Arch Linux

Cómo instalar Skype en Arch Linux

Cómo instalar Nginx en un servidor en la nube Arch Linux

Cómo instalar Apache en Arch Linux

Cómo configurar un demonio Rsync en su servidor Linux

Cómo configurar un cortafuegos en su servidor Linux