Ierobežojiet SSH lietotāja piekļuvi noteiktam direktorijam, izmantojot ieslodzījuma vietu
Pastāv vairāki iemesli, kā ierobežot SSH lietotāja sesiju līdz noteiktam direktorijam, it īpaši tīmekļa serveros, taču acīmredzams ir sistēmas drošība. Lai bloķētu SSH lietotājus noteiktā direktorijā, mēs varam izmantot chroot mehānismu.
mainīt sakni (chroot) Unix līdzīgās sistēmās, piemēram, Linux, ir līdzeklis atsevišķu lietotāja darbību atdalīšanai no pārējās Linux sistēmas; maina šķietamo pašreizējā lietotāja procesa saknes direktoriju un tā pakārtoto procesu ar jaunu saknes direktoriju, ko sauc par ieslodzīto cietumu.
Šajā apmācībā mēs parādīsim, kā ierobežot SSH lietotāja piekļuvi noteiktam direktorijam Linux. Ņemiet vērā, ka visas komandas mēs palaidīsim kā saknes, izmantojiet komandu sudo, ja esat pieteicies serverī kā parasts lietotājs.
1. darbība: izveidojiet SSH Chroot Jail
1. Sāciet ar chroot cietuma izveidošanu, izmantojot zemāk esošo komandu mkdir:
# mkdir -p /home/test
2. Pēc tam identificējiet nepieciešamos failus saskaņā ar manas lapu sshd_config, opcija ChrootDirectory
norāda direktorijas ceļa nosaukumu, uz kuru pēc autentifikācijas ir jākrustojas. Katalogā jābūt nepieciešamajiem failiem un direktorijiem, kas atbalsta lietotāja sesiju.
Interaktīvai sesijai tam ir nepieciešama vismaz čaula, parasti sh
un pamata /dev
mezgli, piemēram, null, zero, stdin, stdout, stderr un tty ierīces:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
3. Tagad izveidojiet failus /dev
šādi, izmantojot komandu mknod. Zemāk esošajā komandā -m
karodziņš tiek izmantots, lai norādītu faila atļauju bitus, c
nozīmē rakstzīmju failu, un abi skaitļi ir galvenie un mazie skaitļi, uz kuriem faili norāda .
# 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. Pēc tam ielieciet atbilstošu atļauju chroot cietumā. Ņemiet vērā, ka chroot cietumam, tā apakšdirektorijiem un apakšfailiem jābūt root lietotāja īpašumā, un tos nevar rakstīt neviens parasts lietotājs vai grupa:
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
2. darbība. Iestatiet SSH Chroot Jail interaktīvo čaulu
5. Vispirms izveidojiet direktoriju bin
un pēc tam nokopējiet failus /bin/bash
direktorijā bin
šādi:
# mkdir -p /home/test/bin # cp -v /bin/bash /home/test/bin/
6. Tagad atrodiet bash nepieciešamos koplietojamos libs
, kā norādīts zemāk, un kopējiet tos direktorijā 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/
3. darbība: izveidojiet un konfigurējiet SSH lietotāju
7. Tagad izveidojiet SSH lietotāju ar komandu useradd un iestatiet lietotājam drošu paroli:
# useradd tecmint # passwd tecmint
8. Izveidojiet chroot jail vispārīgo konfigurāciju direktoriju, /home/test/etc
un kopējiet atjauninātos konta failus (/ etc/passwd un/etc/group) šajā direktorijā šādi:
# mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/
Piezīme. Katru reizi, kad sistēmai pievienojat vairāk SSH lietotāju, atjauninātie konta faili būs jākopē direktorijā /home/test/etc
.
4. darbība. Konfigurējiet SSH, lai izmantotu Chroot Jail
9. Tagad atveriet failu sshd_config
.
# vi /etc/ssh/sshd_config
un pievienojiet/modificējiet zemāk esošās rindas failā.
#define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test
Saglabājiet failu, izejiet un restartējiet SSHD pakalpojumus:
# systemctl restart sshd OR # service sshd restart
5. solis: SSH pārbaude ar Chroot Jail
10. Šajā brīdī pārbaudiet, vai chroot cietuma iestatīšana darbojas kā paredzēts:
# ssh [email -bash-4.1$ ls -bash-4.1$ date -bash-4.1$ uname
No iepriekš redzamā ekrānuzņēmuma mēs varam redzēt, ka SSH lietotājs ir bloķēts ieslodzījuma vietā un nevar izpildīt nekādas ārējas komandas (ls, date, uname utt.).
Lietotājs var izpildīt tikai bash un tā iebūvētās komandas, piemēram, (pwd, history, echo uc), kā redzams zemāk:
# ssh [email -bash-4.1$ pwd -bash-4.1$ echo "Tecmint - Fastest Growing Linux Site" -bash-4.1$ history
6. solis. Izveidojiet SSH lietotāja mājas direktoriju un pievienojiet Linux komandas
11. No iepriekšējā soļa mēs varam pamanīt, ka lietotājs ir bloķēts saknes direktorijā, mēs varam izveidot mājas direktoriju SSH lietotājam tāpat (dariet to visiem nākamajiem lietotājiem):
# mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint
12. Pēc tam direktorijā bin
instalējiet dažas lietotāja komandas, piemēram, ls, date, mkdir:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/date /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
13. Pēc tam pārbaudiet koplietojamās bibliotēkas iepriekš norādītajām komandām un pārvietojiet tās iesakņoto ieslodzījuma bibliotēku direktorijā:
# 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/
7. solis. SFTP pārbaude ar Chroot Jail
14. Veiciet pēdējo pārbaudi, izmantojot sftp; pārbaudiet, vai tikko instalētās komandas darbojas.
Pievienojiet zemāk esošo rindiņu failā /etc/ssh/sshd_config
:
#Enable sftp to chrooted jail ForceCommand internal-sftp
Saglabājiet failu un izejiet. Pēc tam restartējiet SSHD pakalpojumus:
# systemctl restart sshd OR # service sshd restart
15. Tagad, pārbaudot, izmantojot SSH, tiks parādīta šāda kļūda:
# ssh [email
Mēģiniet izmantot SFTP šādi:
# sftp [email
Pagaidām tas ir viss !. Šajā rakstā mēs parādījām, kā ierobežot SSH lietotāju noteiktā direktorijā (ieslodzītais cietums) Linux. Izmantojiet zemāk esošo komentāru sadaļu, lai piedāvātu mums savas domas par šo ceļvedi.