GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo configurar el servidor SFTP con Chroot en Debian 10

SFTP significa Protocolo seguro de transferencia de archivos / Protocolo de transferencia de archivos SSH, es uno de los métodos más comunes que se utiliza para transferir archivos de forma segura a través de ssh desde nuestro sistema local al servidor remoto y viceversa. La principal ventaja de sftp es que no necesitamos instalar ningún paquete adicional excepto 'openssh-server ', en la mayoría de las distribuciones de Linux, el paquete 'openssh-server' es parte de la instalación predeterminada. Otro beneficio de sftp es que podemos permitir que el usuario use sftp solo, no ssh.

Recientemente se ha lanzado Debian 10, con el nombre de código 'Buster', en este artículo demostraremos cómo configurar sftp con un entorno similar a Chroot 'Jail' en el sistema Debian 10. Aquí, el entorno similar a Chroot Jail significa que los usuarios no pueden ir más allá de sus respectivos directorios de inicio o los usuarios no pueden cambiar los directorios de sus directorios de inicio. Los siguientes son los detalles del laboratorio:

  • SO =Debian 10
  • Dirección IP =192.168.56.151

Pasemos a los pasos de configuración de SFTP,

Paso:1) Crear un grupo para sftp usando el comando groupadd

Abra la terminal, cree un grupo con el nombre "sftp_users ” usando el siguiente comando groupadd,

[email protected]:~# groupadd sftp_users

Paso:2) Agregar usuarios al grupo 'sftp_users' y establecer permisos

En caso de que desee crear un nuevo usuario y desee agregar ese usuario al grupo 'sftp_users', ejecute el siguiente comando,

Sintaxis: #  useradd -m -G sftp_users

Supongamos que el nombre de usuario es 'Jonathan'

[email protected]:~# useradd -m -G sftp_users jonathan

establezca la contraseña usando el siguiente comando chpasswd,

[email protected]:~# echo "jonathan:<enter_password>" | chpasswd

En caso de que desee agregar usuarios existentes al grupo 'sftp_users', ejecute el comando usermod, supongamos que el nombre de usuario ya existente es 'chris'

[email protected]:~# usermod -G sftp_users chris

Ahora configure los permisos requeridos en Usuarios,

[email protected]:~# chown root /home/jonathan /home/chris/

Cree una carpeta de carga en el directorio de inicio del usuario y configure la propiedad correcta,

[email protected]:~# mkdir /home/jonathan/upload
[email protected]:~# mkdir /home/chris/upload
[email protected]:~# chown jonathan /home/jonathan/upload
[email protected]:~# chown chris /home/chris/upload

Nota: Usuarios como Jonathan y Chris pueden cargar archivos y directorios para cargar carpetas desde sus sistemas locales.

Paso:3) Edite el archivo de configuración de sftp (/etc/ssh/sshd_config)

Como ya dijimos, las operaciones de sftp se realizan a través de ssh, por lo que su archivo de configuración es "/etc/ssh/sshd_config “, Antes de realizar cualquier cambio, sugeriría primero hacer una copia de seguridad y luego editar este archivo y agregar el siguiente contenido,

[email protected]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
[email protected]:~# vim /etc/ssh/sshd_config
………
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
…………

Guarde y salga del archivo.

Para realizar los cambios anteriores en el efecto, reinicie el servicio ssh usando el siguiente comando systemctl

[email protected]:~# systemctl restart sshd

En el archivo 'sshd_config' anterior, hemos comentado la línea que comienza con "Subsistema" y hemos agregado una nueva entrada "Subsistema       sftp    internal-sftp" y nuevas líneas como,

Grupo de coincidencias sftp_users” -> Significa que si un usuario es parte del grupo 'sftp_users', aplique las reglas que se mencionan a continuación a esta entrada.

ChrootDierctory %h ” -> Significa que los usuarios solo pueden cambiar directorios dentro de sus respectivos directorios de inicio, no pueden ir más allá de sus directorios de inicio, o en otras palabras, podemos decir que los usuarios no pueden cambiar directorios, obtendrán un entorno similar a jai dentro de sus directorios y pueden No acceder a los directorios de ningún otro usuario o sistema.

ForceCommand interno-sftp ” –> Significa que los usuarios están limitados solo al comando sftp.

Paso:4) Probar y verificar sftp

Inicie sesión en cualquier otro sistema Linux que esté en la misma red de su servidor sftp y luego intente acceder al servidor sftp a través de los usuarios que hemos asignado en el grupo 'sftp_users'.

[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]#

Arriba confirma que los usuarios no pueden usar SSH, ahora intente sftp usando los siguientes comandos,

[[email protected] ~]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

Intentemos descargar un archivo usando sftp 'get ‘comando

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

El resultado anterior confirma que podemos descargar el archivo desde nuestro servidor sftp a la máquina local y, aparte de esto, también hemos probado que los usuarios no pueden cambiar de directorio.

Intentemos cargar un archivo en "cargar ” carpeta,

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

Esto confirma que hemos subido con éxito un archivo desde nuestro sistema local al servidor sftp.

Ahora pruebe el servidor SFTP con la herramienta winscp, ingrese la dirección IP del servidor sftp junto con las credenciales del usuario,

Haga clic en Iniciar sesión y luego intente descargar y cargar archivos

Ahora intente cargar archivos en la carpeta de carga,

La ventana anterior confirma que la carga también funciona bien, eso es todo de este artículo. Si estos pasos lo ayudan a configurar el servidor SFTP con el entorno chroot en Debian 10, comparta sus comentarios y sugerencias.


Debian
  1. Cómo instalar y configurar VNC en Debian 9

  2. Cómo configurar un servidor FTP con VSFTPD en Debian 9

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

  4. Cómo configurar un cortafuegos con CSF en Debian 9

  5. Cómo configurar un cortafuegos con UFW en Debian 9

Cómo configurar el servidor y el cliente NTP en Debian 10

Cómo instalar y configurar el servidor web Apache con host virtual en Debian 10

Cómo configurar LAMP con Debian 11

Cómo configurar bind con Debian 11

Cómo configurar el servidor Samba con Debian 11

Cómo instalar Nginx con PHP-FPM en Debian 11