Takmarka aðgang SSH notenda að ákveðnum möppu með því að nota rótað fangelsi
Það eru nokkrar ástæður fyrir því að takmarka SSH notendalotu við tiltekna skrá, sérstaklega á vefþjónum, en sú augljósa er kerfisöryggi. Til þess að læsa SSH notendum í ákveðinni möppu getum við notað chroot vélbúnað.
breyta rót (chroot) í Unix-líkum kerfum eins og Linux, er leið til að aðgreina sérstakar notendaaðgerðir frá restinni af Linux kerfinu; breytir augljósri rótarskrá fyrir núverandi notendaferli sem er í gangi og undirferli þess með nýrri rótarskrá sem kallast chrooted jail.
Í þessari kennslu munum við sýna þér hvernig á að takmarka aðgang SSH notanda að tiltekinni möppu í Linux. Athugaðu að við munum keyra allar skipanirnar sem rót, notaðu sudo skipunina ef þú ert skráður inn á netþjóninn sem venjulegur notandi.
Skref 1: Búðu til SSH Chroot fangelsi
1. Byrjaðu á því að búa til chroot fangelsið með því að nota mkdir skipunina hér að neðan:
# mkdir -p /home/test
2. Næst skaltu auðkenna nauðsynlegar skrár, samkvæmt sshd_config man síðunni, ChrootDirectory
valmöguleikinn tilgreinir slóðina á möppunni sem á að chroot í eftir auðkenningu. Skráin verður að innihalda nauðsynlegar skrár og möppur til að styðja við setu notanda.
Fyrir gagnvirka lotu þarf að minnsta kosti skel, venjulega sh
, og grunn /dev
hnúta eins og núll, núll, stdin, stdout, stderr og tty tæki:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
3. Búðu til /dev
skrárnar á eftirfarandi hátt með því að nota mknod skipunina. Í skipuninni hér að neðan er -m
fáninn notaður til að tilgreina skráarheimildir, c
þýðir stafaskrá og tölurnar tvær eru stórar og minni tölur sem skrárnar benda á .
# 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. Eftir það skaltu setja viðeigandi leyfi á chroot fangelsinu. Athugaðu að chroot fangelsið og undirskrár þess og undirskrár verða að vera í eigu rótarnotanda og ekki hægt að skrifa af neinum venjulegum notanda eða hópi:
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
Skref 2: Settu upp gagnvirka skel fyrir SSH Chroot fangelsið
5. Búðu fyrst til bin
möppuna og afritaðu síðan /bin/bash
skrárnar í bin
möppuna sem hér segir:
# mkdir -p /home/test/bin # cp -v /bin/bash /home/test/bin/
6. Nú, auðkenndu bash nauðsynleg samnýtt libs
, eins og hér að neðan og afritaðu þau í lib
möppuna:
# 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/
Skref 3: Búðu til og stilltu SSH notanda
7. Búðu til SSH notandann með useradd skipuninni og stilltu öruggt lykilorð fyrir notandann:
# useradd tecmint # passwd tecmint
8. Búðu til almennar stillingarskrá fyrir chroot jail, /home/test/etc
og afritaðu uppfærðu reikningsskrárnar (/etc/passwd og /etc/group) inn í þessa möppu eins og hér segir:
# mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/
Athugið: Í hvert sinn sem þú bætir fleiri SSH notendum við kerfið þarftu að afrita uppfærðu reikningsskrárnar í /home/test/etc
möppuna.
Skref 4: Stilltu SSH til að nota Chroot fangelsi
9. Opnaðu nú sshd_config
skrána.
# vi /etc/ssh/sshd_config
og bæta við/breyta línunum fyrir neðan í skránni.
#define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test
Vistaðu skrána og farðu úr og endurræstu SSHD þjónustuna:
# systemctl restart sshd OR # service sshd restart
Skref 5: Prófaðu SSH með Chroot fangelsi
10. Á þessum tímapunkti skaltu prófa hvort uppsetning chroot fangelsisins virkar eins og búist var við:
# ssh [email -bash-4.1$ ls -bash-4.1$ date -bash-4.1$ uname
Af skjámyndinni hér að ofan getum við séð að SSH notandinn er læstur í chrooted fangelsinu og getur ekki keyrt neinar utanaðkomandi skipanir (ls, date, unname osfrv.).
Notandinn getur aðeins framkvæmt bash og innbyggðar skipanir þess eins og (pwd, saga, echo etc) eins og sést hér að neðan:
# ssh [email -bash-4.1$ pwd -bash-4.1$ echo "Tecmint - Fastest Growing Linux Site" -bash-4.1$ history
Skref 6. Búðu til heimaskrá SSH notanda og bættu við Linux skipunum
11. Frá fyrra skrefi getum við tekið eftir því að notandinn er læstur í rótarskránni, við getum búið til heimamöppu fyrir SSH notandann eins og svo (gerið þetta fyrir alla framtíðarnotendur):
# mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint
12. Næst skaltu setja upp nokkrar notendaskipanir eins og ls, date, mkdir í bin
möppunni:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/date /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
13. Athugaðu næst í samnýttu bókasöfnunum fyrir skipanirnar hér að ofan og færðu þær inn í möppuna með chrooted jail libraries:
# 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/
Skref 7. Prófa SFTP með Chroot Jail
14. Gerðu lokapróf með sftp; athugaðu hvort skipanirnar sem þú varst að setja upp virki.
Bættu við línunni fyrir neðan í /etc/ssh/sshd_config
skránni:
#Enable sftp to chrooted jail ForceCommand internal-sftp
Vistaðu skrána og hættu. Endurræstu síðan SSHD þjónustuna:
# systemctl restart sshd OR # service sshd restart
15. Prófaðu núna með SSH, þú munt fá eftirfarandi villu:
# ssh [email
Prófaðu að nota SFTP sem hér segir:
# sftp [email
Það er það í bili!. Í þessari grein sýndum við þér hvernig á að takmarka SSH notanda í tiltekinni möppu (rófað fangelsi) í Linux. Notaðu athugasemdahlutann hér að neðan til að gefa okkur hugmyndir þínar um þessa handbók.