Com restringir els usuaris SFTP als directoris d'inici mitjançant chroot Jail


En aquest tutorial, parlarem de com restringir els usuaris SFTP als seus directoris d'inici o directoris específics. Significa que l'usuari només pot accedir al seu directori d'inici respectiu, no a tot el sistema de fitxers.

Restringir els directoris d'inici dels usuaris és vital, especialment en un entorn de servidor compartit, de manera que un usuari no autoritzat no s'ocupi dels fitxers i carpetes de l'altre usuari.

Important: Tingueu en compte també que l'objectiu d'aquest article és proporcionar només accés SFTP, no inicis de sessió SSH, seguint aquest article tindreu els permisos per fer la transferència de fitxers, però no es permetrà fer una sessió SSH remota.

La manera més senzilla de fer-ho és crear un entorn de presó chrooted per a l'accés SFTP. Aquest mètode és el mateix per a tots els sistemes operatius Unix/Linux. Utilitzant un entorn chrooted, podem restringir els usuaris al seu directori d'inici o a un directori específic.

Restringeix els usuaris als directoris d'inici

En aquesta secció, crearem un grup nou anomenat sftpgroup i assignarem la propietat i els permisos correctes als comptes d'usuari. Hi ha dues opcions per restringir els usuaris a directoris d'inici o específics, veurem ambdós sentits en aquest article.

Restringim l'usuari existent, per exemple tecmint, al seu directori inicial anomenat /home/tecmint. Per a això, heu de crear un nou grup sftpgroup utilitzant l'ordre groupadd tal com es mostra:

# groupadd sftpgroup

A continuació, assigneu l'usuari tecmint al grup sftpgroup.

# usermod -G sftpgroup tecmint

També podeu crear un usuari nou mitjançant l'ordre useradd, per exemple senthil i assignar l'usuari al grup sftpusers.

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

Obriu i afegiu les línies següents al fitxer de configuració /etc/ssh/sshd_config.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Deseu i sortiu del fitxer, reinicieu el servei sshd per fer efectius els nous canvis.

# systemctl restart sshd
OR
# service sshd restart

Si feu el chroot de diversos usuaris al mateix directori, hauríeu de canviar els permisos del directori inicial de cada usuari per evitar que tots els usuaris naveguin pels directoris d'inici dels altres usuaris.

# chmod 700 /home/tecmint

Ara és el moment de comprovar l'inici de sessió des d'un sistema local. Intenta fer ssh el teu sistema remot des del teu sistema local.

# ssh [email 

Aquí,

  1. tecmint: nom d'usuari del sistema remot.
  2. 192.168.1.150: adreça IP del sistema remot.

[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

A continuació, accediu al sistema remot mitjançant SFTP.

# sftp [email 
[email 's password: 
Connected to 192.168.1.150.
sftp>

Comprovem el directori de treball actual:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Aquí, tecmint és el directori inicial. Cd al directori tecmint i creeu els fitxers o carpetes que vulgueu.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Restringir els usuaris a un directori específic

En el nostre exemple anterior, restringim els usuaris existents al directori d'inici. Ara, veurem com restringir un nou usuari a un directori personalitzat.

Creeu un grup nou sftpgroup.

# groupadd sftpgroup

A continuació, creeu un directori per al grup SFTP i assigneu permisos per a l'usuari root.

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

A continuació, creeu nous directoris per a cada usuari, als quals tindran accés complet. Per exemple, crearem l'usuari tecmint i el seu directori d'inici nou amb el permís de grup correcte mitjançant la següent sèrie d'ordres.

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

Modifiqueu o afegiu les línies següents al final del fitxer:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Desa i surt del fitxer. Reinicieu el servei sshd per fer efectius els canvis desats.

# systemctl restart sshd
OR
# service sshd restart

Això és tot, podeu comprovar-ho iniciant la sessió al vostre servidor remot SSH i SFTP mitjançant el pas que s'indica anteriorment a Verificar l'inici de sessió SSH i SFTP.

Tingueu en compte que aquest mètode desactivarà l'accés a l'intèrpret d'ordres, és a dir, no podreu accedir a la sessió d'intèrpret d'ordres del sistema remot mitjançant SSH. Només podeu accedir als sistemes remots mitjançant SFTP i fer la transferència de fitxers cap i des dels sistemes locals i remots.

Conclusió

Ara ja sabeu com restringir els directoris d'inici dels usuaris mitjançant un entorn Chroot a Linux. Si ho trobeu útil, compartiu aquest article a les vostres xarxes socials i feu-nos saber a la secció de comentaris a continuació si hi ha altres mètodes per restringir els directoris d'inici dels usuaris.