Limitahi ang SSH User Access sa Piho nga Direktoryo Gamit ang Chrooted Jail


Adunay ubay-ubay nga mga rason nga higpitan ang usa ka sesyon sa gumagamit sa SSH sa usa ka partikular nga direktoryo, labi na sa mga web server, apan ang klaro usa ka seguridad sa sistema. Aron ma-lock ang mga tiggamit sa SSH sa usa ka direktoryo, magamit namon ang mekanismo sa chroot.

pagbag-o sa gamut (chroot) sa mga sistema nga sama sa Unix sama sa Linux, usa ka paagi sa pagbulag sa piho nga mga operasyon sa tiggamit gikan sa nahabilin nga sistema sa Linux; giusab ang dayag nga root directory alang sa kasamtangan nga proseso sa user ug ang proseso sa bata niini nga adunay bag-ong root directory nga gitawag og chrooted jail.

Sa kini nga panudlo, ipakita namon kanimo kung giunsa ang pagpugong sa usa ka SSH nga pag-access sa gumagamit sa usa ka gihatag nga direktoryo sa Linux. Timan-i nga among ipadagan ang tanan nga mga mando ingon gamut, gamita ang sudo nga mando kung naka-log in ka sa server ingon usa ka normal nga tiggamit.

Lakang 1: Paghimo SSH Chroot Jail

1. Sugdi pinaagi sa paghimo sa chroot jail gamit ang mkdir command sa ubos:

# mkdir -p /home/test

2. Sunod, ilha ang gikinahanglan nga mga file, sumala sa sshd_config man page, ang ChrootDirectory nga opsyon nagtino sa pathname sa direktoryo nga chroot human sa authentication. Ang direktoryo kinahanglan adunay mga gikinahanglan nga mga file ug mga direktoryo aron suportahan ang sesyon sa usa ka user.

Alang sa interactive nga sesyon, nagkinahanglan kini og bisan usa ka shell, kasagaran sh, ug basic /dev nodes sama sa null, zero, stdin, stdout, stderr, ug tty device:

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

3. Karon, buhata ang /dev files sama sa mosunod gamit ang mknod command. Sa sugo sa ubos, ang -m nga bandera gigamit sa pagtino sa mga permiso sa file bits, c nagpasabot sa karakter file ug ang duha ka numero mao ang mayor ug menor de edad nga mga numero nga ang mga file nagpunting sa .

# 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. Pagkahuman, ibutang ang angay nga pagtugot sa chroot jail. Timan-i nga ang chroot jail ug ang mga subdirectory ug subfile niini kinahanglan nga gipanag-iya sa root user, ug dili masulat sa bisan unsang normal nga user o grupo:

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

Lakang 2: I-setup ang Interactive Shell para sa SSH Chroot Jail

5. Una, buhata ang bin directory ug dayon kopyaha ang /bin/bash files ngadto sa bin directory sama sa mosunod:

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

6. Karon, ilha ang gikinahanglan nga bash nga gipaambit nga libs, sama sa ubos ug kopyaha kini sa lib nga direktoryo:

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

Lakang 3: Paghimo ug I-configure ang SSH User

7. Karon, paghimo sa SSH user gamit ang useradd command ug pagtakda og luwas nga password para sa user:

# useradd tecmint
# passwd tecmint

8. Paghimo sa chroot jail general configurations directory, /home/test/etc ug kopyaha ang updated nga mga file sa account (/etc/passwd ug /etc/group) ngadto niini nga direktoryo sama sa mosunod:

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

Mubo nga sulat: Matag higayon nga magdugang ka ug daghang SSH user sa sistema, kinahanglan nimong kopyahon ang updated nga mga file sa account ngadto sa /home/test/etc directory.

Lakang 4: I-configure ang SSH aron magamit ang Chroot Jail

9. Karon, ablihi ang sshd_config file.

# vi /etc/ssh/sshd_config

ug idugang/bag-ohon ang mga linya sa ubos sa file.

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

I-save ang file ug paggawas, ug i-restart ang mga serbisyo sa SSHD:

# systemctl restart sshd
OR
# service sshd restart

Lakang 5: Pagsulay sa SSH gamit ang Chroot Jail

10. Niini nga punto, sulayi kung ang chroot jail setup nagtrabaho sama sa gipaabut:

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

Gikan sa screenshot sa ibabaw, atong makita nga ang SSH user kay naka-lock sa chrooted jail, ug dili makadagan sa bisan unsa nga external commands (ls, date, uname etc).

Ang user makahimo lamang sa pag-execute sa bash ug sa mga builtin command sama sa(pwd, history, echo etc) nga makita sa ubos:

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

Lakang 6. Paghimo og SSH User's Home Directory ug Add Linux Commands

11. Gikan sa miaging lakang, atong mamatikdan nga ang user kay naka-lock sa root directory, makahimo kita og home directory para sa SSH user nga sama niini (buhata kini para sa tanang umaabot nga tiggamit):

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

12. Sunod, i-install ang pipila ka mga command sa user sama sa ls, date, mkdir sa bin directory:

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

13. Sunod, susiha ang gipaambit nga mga librarya alang sa mga sugo sa ibabaw ug ibalhin kini ngadto sa chrooted jail libraries directory:

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

Lakang 7. Pagsulay sa SFTP gamit ang Chroot Jail

14. Paghimo ug kataposang pagsulay gamit ang sftp; susiha kung ang mga sugo nga imong gi-install nagtrabaho.

Idugang ang linya sa ubos sa /etc/ssh/sshd_config file:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

I-save ang file ug paggawas. Dayon i-restart ang mga serbisyo sa SSHD:

# systemctl restart sshd
OR
# service sshd restart

15. Karon, pagsulay gamit ang SSH, imong makuha ang mosunod nga sayop:

# ssh [email 

Sulayi gamit ang SFTP sama sa mosunod:

# sftp [email 

Mao na sa karon!. Sa kini nga artikulo, gipakita namon kanimo kung giunsa ang pagpugong sa usa ka gumagamit sa SSH sa usa ka gihatag nga direktoryo (chrooted jail) sa Linux. Gamita ang seksyon sa komento sa ubos aron itanyag kanamo ang imong mga hunahuna bahin sa kini nga giya.