Restringeix l'accés dels usuaris SSH a determinats directoris mitjançant Chrooted Jail


Hi ha diverses raons per restringir una sessió d'usuari SSH a un directori determinat, especialment als servidors web, però l'òbvia és la seguretat del sistema. Per bloquejar els usuaris SSH en un directori determinat, podem utilitzar el mecanisme chroot.

canviar l'arrel (chroot) en sistemes semblants a Unix com Linux, és un mitjà per separar les operacions d'usuari específiques de la resta del sistema Linux; canvia el directori arrel aparent per al procés d'usuari en execució actual i el seu procés fill amb un directori arrel nou anomenat presó chrooted.

En aquest tutorial, us mostrarem com restringir l'accés d'un usuari SSH a un directori determinat a Linux. Tingueu en compte que executarem totes les ordres com a root, utilitzeu l'ordre sudo si heu iniciat sessió al servidor com a usuari normal.

Pas 1: creeu SSH Chroot Jail

1. Comenceu creant la presó chroot amb l'ordre mkdir següent:

# mkdir -p /home/test

2. A continuació, identifiqueu els fitxers necessaris, d'acord amb la pàgina de manual sshd_config, l'opció ChrootDirectory especifica el nom d'accés del directori al qual fer el chroot després de l'autenticació. El directori ha de contenir els fitxers i directoris necessaris per donar suport a la sessió d'un usuari.

Per a una sessió interactiva, això requereix almenys un shell, normalment sh, i nodes bàsics /dev com ara dispositius null, zero, stdin, stdout, stderr i tty:

# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

3. Ara, creeu els fitxers /dev de la manera següent amb l'ordre mknod. A l'ordre següent, el senyalador -m s'utilitza per especificar els bits de permisos del fitxer, c significa fitxer de caràcters i els dos números són números majors i menors als quals apunten els fitxers. .

# mkdir -p /home/test/dev/		
# cd /home/test/dev/
# mknod -m 666 null c 1 3
# mknod -m 666 tty c 5 0
# mknod -m 666 zero c 1 5
# mknod -m 666 random c 1 8

4. Després, establiu el permís adequat a la presó chroot. Tingueu en compte que la presó chroot i els seus subdirectoris i subfitxers han de ser propietat de l'usuari root i no poden escriure cap usuari o grup normal:

# chown root:root /home/test
# chmod 0755 /home/test
# ls -ld /home/test

Pas 2: configureu l'intèrpret d'ordres interactiu per a la presó SSH Chroot

5. Primer, creeu el directori bin i després copieu els fitxers /bin/bash al directori bin de la manera següent:

# mkdir -p /home/test/bin
# cp -v /bin/bash /home/test/bin/

6. Ara, identifiqueu les libs compartides necessàries per bash, com a continuació i copieu-les al directori lib:

# ldd /bin/bash
# mkdir -p /home/test/lib64
# cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/

Pas 3: creeu i configureu l'usuari SSH

7. Ara, creeu l'usuari SSH amb l'ordre useradd i configureu una contrasenya segura per a l'usuari:

# useradd tecmint
# passwd tecmint

8. Creeu el directori de configuracions generals de chroot jail, /home/test/etc i copieu els fitxers de compte actualitzats (/etc/passwd i /etc/group) a aquest directori de la manera següent:

# mkdir /home/test/etc
# cp -vf /etc/{passwd,group} /home/test/etc/

Nota: Cada vegada que afegiu més usuaris SSH al sistema, haureu de copiar els fitxers del compte actualitzats al directori /home/test/etc.

Pas 4: configureu SSH per utilitzar Chroot Jail

9. Ara, obriu el fitxer sshd_config.

# vi /etc/ssh/sshd_config

i afegiu/modifiqueu les línies de sota al fitxer.

#define username to apply chroot jail to
Match User tecmint
#specify chroot jail
ChrootDirectory /home/test

Deseu el fitxer i sortiu i reinicieu els serveis SSHD:

# systemctl restart sshd
OR
# service sshd restart

Pas 5: prova SSH amb Chroot Jail

10. En aquest punt, comproveu si la configuració de la presó chroot funciona com s'esperava:

# ssh [email 
-bash-4.1$ ls
-bash-4.1$ date
-bash-4.1$ uname

A la captura de pantalla anterior, podem veure que l'usuari SSH està bloquejat a la presó chrooted i no pot executar cap ordre externa (ls, date, uname, etc.).

L'usuari només pot executar bash i les seves ordres integrades com (pwd, history, echo, etc.) com es veu a continuació:

# ssh [email 
-bash-4.1$ pwd
-bash-4.1$ echo "Tecmint - Fastest Growing Linux Site"
-bash-4.1$ history

Pas 6. Creeu el directori d'inici de l'usuari SSH i afegiu ordres de Linux

11. Des del pas anterior, podem notar que l'usuari està bloquejat al directori arrel, podem crear un directori d'inici per a l'usuari SSH així (fes això per a tots els futurs usuaris):

# mkdir -p /home/test/home/tecmint
# chown -R tecmint:tecmint /home/test/home/tecmint
# chmod -R 0700 /home/test/home/tecmint

12. A continuació, instal·leu algunes ordres d'usuari com ara ls, date, mkdir al directori bin:

# cp -v /bin/ls /home/test/bin/
# cp -v /bin/date /home/test/bin/
# cp -v /bin/mkdir /home/test/bin/

13. A continuació, comproveu les biblioteques compartides per trobar les ordres anteriors i moveu-les al directori de biblioteques de la presó chrooted:

# ldd /bin/ls
# cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/

Pas 7. Prova SFTP amb Chroot Jail

14. Fes una prova final amb sftp; comproveu si les ordres que acabeu d'instal·lar funcionen.

Afegiu la línia següent al fitxer /etc/ssh/sshd_config:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Desa el fitxer i surt. A continuació, reinicieu els serveis SSHD:

# systemctl restart sshd
OR
# service sshd restart

15. Ara, proveu amb SSH, obtindreu el següent error:

# ssh [email 

Proveu d'utilitzar SFTP de la següent manera:

# sftp [email 

Això és tot de moment!. En aquest article, us vam mostrar com restringir un usuari SSH en un directori determinat (presó chrooted) a Linux. Utilitzeu la secció de comentaris a continuació per oferir-nos els vostres pensaments sobre aquesta guia.