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.