SSH ulanyjysynyň belli bir kataloga girmegini çäklendiriň
SSH ulanyjy sessiýasyny belli bir katalogda, esasanam web serwerlerinde çäklendirmegiň birnäçe sebäbi bar, ýöne aç-açan ulgam howpsuzlygy. SSH ulanyjylaryny belli bir katalogda gulplamak üçin, hroot mehanizmini ulanyp bileris.
Linux ýaly Unix ýaly ulgamlarda kök (chroot) üýtgetmek, belli ulanyjy amallaryny Linux ulgamynyň galan böleklerinden aýyrmagyň serişdesidir; Häzirki işleýän ulanyjy prosesi we çaga prosesi üçin görnüp duran kök katalogyny üýtgedilen türme diýilýän täze kök katalogy bilen üýtgedýär.
Bu gollanmada, SSH ulanyjysynyň Linux-da berlen kataloga girmegini nädip çäklendirmelidigini görkezeris. Commandshli buýruklary kök hökmünde ýerine ýetirjekdigimize üns beriň, adaty ulanyjy hökmünde serwere giren bolsaňyz, sudo buýrugyny ulanyň.
1-nji ädim: SSH Chroot türmesini dörediň
1. Aşakdaky mkdir buýrugyny ulanyp, gysga türmäni döretmekden başlaň:
# mkdir -p /home/test
2. Ondan soň, sshd_config adam sahypasyna laýyklykda zerur faýllary kesgitläň, ChrootDirectory
opsiýasy tassyklanylandan soň gözlemek üçin katalogyň adyny kesgitleýär. Katalogda ulanyjynyň sessiýasyny goldamak üçin zerur faýllar we kataloglar bolmaly.
Interaktiw sessiýa üçin munuň üçin iň bolmanda bir gabyk, köplenç sh
we null, nol, stdin, stdout, stderr we tty enjamlary ýaly esasy /dev
düwünleri gerek:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
3. Indi, mknod buýrugyny ulanyp, aşakdaky ýaly /dev
faýllaryny dörediň. Aşakdaky buýrukda, faýl rugsatlarynyň bitlerini kesgitlemek üçin -m
baýdagy ulanylýar, c
nyşan faýlyny aňladýar we iki san faýllaryň görkezýän esasy we kiçi sanlarydyr. .
# 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. Ondan soň, türmede degişli rugsady goýuň. Esasy türme we onuň gollanmalary we kiçi faýllary kök ulanyja degişli bolmalydygyny, adaty ulanyjy ýa-da topar tarapyndan ýazylmajakdygyny unutmaň:
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
2-nji ädim: SSH Chroot türmesi üçin interaktiw gabyny guruň
5. Ilki bilen bin
katalogyny dörediň we soňra /bin/bash
faýllaryny aşakdaky ýaly bin
katalogyna göçüriň:
# mkdir -p /home/test/bin # cp -v /bin/bash /home/test/bin/
6. Indi, aşakdaky ýaly zerur paýlaşylan libs
kesgitläň we olary lib
katalogyna göçüriň:
# 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-nji ädim: SSH ulanyjysyny dörediň we sazlaň
7. Indi, useradd buýrugy bilen SSH ulanyjysyny dörediň we ulanyjy üçin ygtybarly parol belläň:
# useradd tecmint # passwd tecmint
8. Türme türmesiniň umumy konfigurasiýa katalogyny dörediň, /home/test/etc
we täzelenen hasap faýllaryny (/ etc/passwd we/etc/group) şu kataloga aşakdaky ýaly göçüriň:
# mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/
Bellik: Her gezek ulgama has köp SSH ulanyjy goşsaňyz, täzelenen hasap faýllaryny /home/test/etc
katalogyna göçürmeli bolarsyňyz.
4-nji ädim: Chroot türmesini ulanmak üçin SSH-i sazlaň
9. Indi sshd_config
faýly açyň.
# vi /etc/ssh/sshd_config
we faýlda aşakdaky setirleri goşuň/üýtgediň.
#define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test
Faýly ýazdyryň we çykyň we SSHD hyzmatlaryny täzeden açyň:
# systemctl restart sshd OR # service sshd restart
5-nji ädim: Chroot türmesi bilen SSH-ni barlamak
10. Bu pursatda, türmede oturmagyň garaşylşy ýaly işleýändigini barlaň:
# ssh [email -bash-4.1$ ls -bash-4.1$ date -bash-4.1$ uname
Aboveokardaky skrinshotdan, SSH ulanyjysynyň tussag edilen türmede gulplanandygyny we daşarky buýruklary (ls, senesi, ady we ş.m.) işledip bilmeýändigini görüp bileris.
Ulanyjy diňe aşakda görkezilişi ýaly (pwd, taryh, echo we ş.m.) ýaly baş we gurlan buýruklary ýerine ýetirip biler:
# ssh [email -bash-4.1$ pwd -bash-4.1$ echo "Tecmint - Fastest Growing Linux Site" -bash-4.1$ history
Stepdim 6. SSH Ulanyjynyň öý katalogyny dörediň we Linux buýruklaryny goşuň
11. Öňki ädimden, ulanyjynyň kök katalogynda gulplandygyny görüp bileris, SSH ulanyjysy ýaly öý katalogyny döredip bileris (geljekki ulanyjylar üçin muny ediň):
# mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint
12. Ondan soň, bin
katalogyna ls, sene, mkdir ýaly birnäçe ulanyjy buýruklaryny guruň:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/date /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
13. Ondan soň ýokardaky buýruklar üçin umumy kitaphanalary barlaň we olary türme kitaphanalarynyň katalogyna geçiriň:
# 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-nji ädim. SFTP-ni Chroot türmesi bilen barlamak
14. sftp ulanyp gutarnykly synag geçiriň; ýaňy gurnan buýruklaryňyzyň işleýändigini ýa-da ýokdugyny barlaň.
Aşakdaky setiri /etc/ssh/sshd_config
faýlyna goşuň:
#Enable sftp to chrooted jail ForceCommand internal-sftp
Faýly ýazdyryň we çykyň. Soňra SSHD hyzmatlaryny täzeden açyň:
# systemctl restart sshd OR # service sshd restart
15. Indi SSH ulanyp synap görüň, aşakdaky ýalňyşlygy alarsyňyz:
# ssh [email
SFTP-i aşakdaky ýaly ulanyp görüň:
# sftp [email
Häzirlikçe! Bu makalada, Linux-da berlen katalogda (tertipli türme) SSH ulanyjysyny nädip çäklendirmelidigini görkezdik. Bu gollanma baradaky pikirleriňizi bize hödürlemek üçin aşakdaky düşündiriş bölümini ulanyň.