Zuia Ufikiaji wa Mtumiaji wa SSH kwa Saraka Fulani inayotumia Jela ya Chrooted


Kuna sababu kadhaa za kuzuia kikao cha mtumiaji wa SSH kwa saraka fulani, haswa kwenye seva za wavuti, lakini dhahiri ni usalama wa mfumo. Ili kufunga watumiaji wa SSH kwenye saraka fulani, tunaweza kutumia utaratibu wa chroot.

badilisha mzizi (chroot) katika mifumo inayofanana na Unix kama vile Linux, ni njia ya kutenganisha shughuli mahususi za mtumiaji kutoka kwa mfumo mwingine wa Linux; inabadilisha saraka ya mizizi inayoonekana kwa mchakato wa sasa wa mtumiaji na mchakato wa mtoto wake na saraka mpya ya mizizi inayoitwa jela iliyokatwa.

Katika somo hili, tutakuonyesha jinsi ya kuzuia ufikiaji wa mtumiaji wa SSH kwa saraka fulani katika Linux. Kumbuka kuwa tutaendesha amri zote kama mzizi, tumia sudo amri ikiwa umeingia kwenye seva kama mtumiaji wa kawaida.

Hatua ya 1: Unda Jela ya SSH Chroot

1. Anza kwa kuunda jela ya chroot kwa kutumia amri ya mkdir hapa chini:

# mkdir -p /home/test

2. Kisha, tambua faili zinazohitajika, kulingana na ukurasa wa mtu wa sshd_config, chaguo la ChrootDirectory hubainisha njia ya saraka ya kuchroot baada ya uthibitishaji. Saraka lazima iwe na faili na saraka zinazohitajika ili kusaidia kipindi cha mtumiaji.

Kwa kipindi shirikishi, hii inahitaji angalau ganda, kwa kawaida sh, na nodi za msingi za /dev kama vile null, zero, stdin, stdout, stderr, na tty vifaa:

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

3. Sasa, unda faili za /dev kama ifuatavyo kwa kutumia amri ya mknod. Katika amri iliyo hapa chini, bendera ya -m inatumika kubainisha biti za ruhusa za faili, c inamaanisha faili ya herufi na nambari mbili ni nambari kuu na ndogo ambazo faili huelekeza. .

# 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. Baadaye, weka ruhusa inayofaa kwenye jela ya chroot. Kumbuka kuwa jela ya chroot na saraka zake ndogo na faili ndogo lazima zimilikiwe na mtumiaji wa mizizi, na haziwezi kuandikwa na mtumiaji au kikundi chochote cha kawaida:

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

Hatua ya 2: Sanidi Shell Interactive kwa SSH Chroot Jail

5. Kwanza, unda saraka ya bin kisha unakili faili za /bin/bash kwenye bin saraka kama ifuatavyo:

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

6. Sasa, tambua bash inayohitajika kushiriki libs, kama ilivyo hapo chini na unakili kwenye saraka ya 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/

Hatua ya 3: Unda na Usanidi Mtumiaji wa SSH

7. Sasa, unda mtumiaji wa SSH kwa amri ya useradd na uweke nenosiri salama kwa mtumiaji:

# useradd tecmint
# passwd tecmint

8. Unda saraka ya jumla ya usanidi wa jela ya chroot, /home/test/etc na unakili faili za akaunti zilizosasishwa (/etc/passwd na /etc/group) kwenye saraka hii kama ifuatavyo:

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

Kumbuka: Kila wakati unapoongeza watumiaji zaidi wa SSH kwenye mfumo, utahitaji kunakili faili za akaunti zilizosasishwa kwenye saraka ya /home/test/etc.

Hatua ya 4: Sanidi SSH ili Kutumia Jela ya Chroot

9. Sasa, fungua faili ya sshd_config.

# vi /etc/ssh/sshd_config

na ongeza/rekebisha mistari iliyo hapa chini kwenye faili.

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

Hifadhi faili na uondoke, na uanze upya huduma za SSHD:

# systemctl restart sshd
OR
# service sshd restart

Hatua ya 5: Kujaribu SSH na Jela ya Chroot

10. Katika hatua hii, jaribu ikiwa usanidi wa jela ya chroot unafanya kazi inavyotarajiwa:

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

Kutoka kwenye picha ya skrini iliyo hapo juu, tunaweza kuona kwamba mtumiaji wa SSH amefungwa kwenye jela iliyofungwa, na hawezi kutekeleza amri zozote za nje (ls, tarehe, uname n.k).

Mtumiaji anaweza tu kutekeleza bash na amri zake za ujenzi kama vile(pwd, historia, echo n.k) kama inavyoonekana hapa chini:

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

Hatua ya 6. Unda Saraka ya Nyumbani ya Mtumiaji wa SSH na Ongeza Amri za Linux

11. Kutoka kwa hatua iliyotangulia, tunaweza kugundua kuwa mtumiaji amefungwa kwenye saraka ya mizizi, tunaweza kuunda saraka ya nyumbani kwa mtumiaji wa SSH kama hivyo (fanya hivi kwa watumiaji wote wa siku zijazo):

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

12. Kisha, sakinisha amri chache za watumiaji kama vile ls, tarehe, mkdir katika saraka ya bin:

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

13. Kisha, angalia maktaba zilizoshirikiwa kwa amri zilizo hapo juu na uzihamishe hadi kwenye saraka ya maktaba ya jela iliyochongwa:

# 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/

Hatua ya 7. Kujaribu SFTP na Jela ya Chroot

14. Fanya mtihani wa mwisho kwa kutumia sftp; angalia ikiwa amri ambazo umesakinisha hivi punde zinafanya kazi.

Ongeza laini iliyo hapa chini katika /etc/ssh/sshd_config faili:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Hifadhi faili na uondoke. Kisha anza tena huduma za SSHD:

# systemctl restart sshd
OR
# service sshd restart

15. Sasa, jaribu kwa kutumia SSH, utapata hitilafu ifuatayo:

# ssh [email 

Jaribu kutumia SFTP kama ifuatavyo:

# sftp [email 

Ni hayo kwa sasa!. Katika nakala hii, tulikuonyesha jinsi ya kumzuia mtumiaji wa SSH kwenye saraka fulani (jela iliyokatwa) katika Linux. Tumia sehemu ya maoni hapa chini ili kutupa maoni yako kuhusu mwongozo huu.