Irrestrinġi l-Aċċess għall-Utent SSH għal Ċertu Direttorju billi tuża Chrooted Jail


Hemm diversi raġunijiet biex tirrestrinġi sessjoni ta 'utent SSH għal direttorju partikolari, speċjalment fuq servers tal-web, iżda dik ovvja hija sigurtà tas-sistema. Sabiex tissakkar l-utenti SSH f'ċertu direttorju, nistgħu nużaw mekkaniżmu chroot.

jibdlu l-għeruq (chroot) f'sistemi simili għal Unix bħal Linux, huwa mezz ta 'separazzjoni ta' operazzjonijiet speċifiċi ta 'utent mill-bqija tas-sistema Linux; jibdel id-direttorju tal-għeruq apparenti għall-proċess attwali tal-utent li qed jaħdem u l-proċess tifel tiegħu b'direttorju tal-għeruq ġdid imsejjaħ ħabs chrooted.

F'dan it-tutorja, aħna ser nuruk kif tirrestrinġi l-aċċess ta 'utent SSH għal direttorju partikolari fil-Linux. Innota li se nħaddmu l-kmandi kollha bħala root, uża l-kmand sudo jekk tkun illoggjat fis-server bħala utent normali.

Pass 1: Oħloq SSH Chroot Jail

1. Ibda billi toħloq il-ħabs chroot billi tuża l-kmand mkdir hawn taħt:

# mkdir -p /home/test

2. Sussegwentement, identifika l-fajls meħtieġa, skond il-paġna man sshd_config, l-għażla ChrootDirectory tispeċifika l-pathname tad-direttorju li fih chroot wara l-awtentikazzjoni. Id-direttorju għandu jkun fih il-fajls u direttorji meħtieġa biex jappoġġjaw is-sessjoni ta 'utent.

Għal sessjoni interattiva, dan jeħtieġ mill-inqas qoxra, komunement sh, u nodi bażiċi /dev bħal null, zero, stdin, stdout, stderr, u apparati tty:

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

3. Issa, oħloq il-fajls /dev kif ġej billi tuża l-kmand mknod. Fil-kmand hawn taħt, il-bandiera -m tintuża biex tispeċifika l-bits tal-permessi tal-fajl, c tfisser fajl tal-karattri u ż-żewġ numri huma numri maġġuri u minuri li l-fajls jindikaw lejhom .

# 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. Wara, issettja l-permess xieraq fuq il-ħabs chroot. Innota li l-ħabs chroot u s-subdirettorji u s-subfiles tagħha għandhom ikunu proprjetà ta’ utent root, u ma jistgħux jinkitbu minn kwalunkwe utent jew grupp normali:

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

Pass 2: Setup Interactive Shell għal SSH Chroot Jail

5. L-ewwel, oħloq id-direttorju bin u mbagħad ikkopja l-fajls /bin/bash fid-direttorju bin kif ġej:

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

6. Issa, identifika bash meħtieġa libs kondiviżi, kif hawn taħt u kkopjahom fid-direttorju 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/

Pass 3: Oħloq u Ikkonfigura Utent SSH

7. Issa, oħloq l-utent SSH bil-kmand useradd u waqqaf password sigura għall-utent:

# useradd tecmint
# passwd tecmint

8. Oħloq id-direttorju tal-konfigurazzjonijiet ġenerali tal-ħabs chroot, /home/test/etc u kkopja l-fajls tal-kont aġġornati (/etc/passwd u /etc/group) f'dan id-direttorju kif ġej:

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

Nota: Kull darba li żżid aktar utenti SSH mas-sistema, ikollok bżonn tikkopja l-fajls tal-kont aġġornati fid-direttorju /home/test/etc.

Pass 4: Ikkonfigura SSH biex tuża Chroot Jail

9. Issa, iftaħ il-fajl sshd_config.

# vi /etc/ssh/sshd_config

u żid/immodifika l-linji hawn taħt fil-fajl.

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

Issejvja l-fajl u oħroġ, u erġa ibda s-servizzi SSHD:

# systemctl restart sshd
OR
# service sshd restart

Pass 5: Ittestjar SSH ma Chroot Jail

10. F'dan il-punt, ittestja jekk is-setup tal-ħabs tal-chroot tkunx qed taħdem kif mistenni:

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

Mill-screenshot ta 'hawn fuq, nistgħu naraw li l-utent SSH huwa msakkar fil-ħabs chrooted, u ma jista' jmexxi l-ebda kmandi esterni (ls, data, uname eċċ).

L-utent jista 'biss jesegwixxi bash u l-kmandi integrati tiegħu bħal (pwd, storja, echo eċċ) kif jidher hawn taħt:

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

Pass 6. Oħloq id-Direttorju tad-Dar tal-Utent SSH u Żid Kmandi tal-Linux

11. Mill-pass preċedenti, nistgħu ninnutaw li l-utent huwa msakkar fid-direttorju tal-għeruq, nistgħu noħolqu direttorju tad-dar għall-utent SSH bħal dan (agħmel dan għall-utenti futuri kollha):

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

12. Sussegwentement, installa ftit kmandi tal-utent bħal ls, date, mkdir fid-direttorju bin:

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

13. Sussegwentement, iċċekkja l-libreriji kondiviżi għall-kmandi ta 'hawn fuq u ċċaqlaqhom fid-direttorju tal-libreriji tal-ħabs 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/

Pass 7. Ittestjar SFTP ma Chroot Jail

14. Agħmel test finali billi tuża sftp; iċċekkja jekk il-kmandi li għadek kif installati humiex qed jaħdmu.

Żid il-linja hawn taħt fil-fajl /etc/ssh/sshd_config:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Issejvja l-fajl u oħroġ. Imbagħad erġa ibda s-servizzi SSHD:

# systemctl restart sshd
OR
# service sshd restart

15. Issa, ittestja billi tuża SSH, ikollok l-iżball li ġej:

# ssh [email 

Ipprova uża SFTP kif ġej:

# sftp [email 

Dak għalissa!. F'dan l-artikolu, urejnek kif tirrestrinġi utent SSH f'direttorju partikolari (ħabs chrooted) fil-Linux. Uża t-taqsima tal-kummenti hawn taħt biex toffrilna l-ħsibijiet tiegħek dwar din il-gwida.