Beschränken SSH Benotzer Zougang zu bestëmmte Verzeechnes mat Chrooted Jail
Et gi verschidde Grënn fir eng SSH Benotzer Sessioun op e bestëmmte Verzeechnes ze beschränken, besonnesch op Webserver, awer déi offensichtlech ass eng Systemsécherheet. Fir SSH Benotzer an engem bestëmmte Verzeichnis ze spären, kënne mir Chroot Mechanismus benotzen.
root änneren (chroot) an Unix-ähnleche Systemer wéi Linux, ass e Mëttel fir spezifesch Benotzeroperatioune vum Rescht vum Linux System ze trennen; ännert de scheinbar Root Verzeechnes fir den aktuellen lafende Benotzerprozess a säi Kandprozess mat engem neie Root Verzeechnes genannt e chrooted Prisong.
An dësem Tutorial weisen mir Iech wéi Dir en SSH Benotzer Zougang zu engem bestëmmte Verzeechnes am Linux beschränkt. Notéiert datt mir all d'Befehle als Root lafen, benotzt de sudo Kommando wann Dir op de Server als normale Benotzer ageloggt sidd.
Schrëtt 1: Erstellt SSH Chroot Jail
1. Start andeems Dir de Chroot Prisong erstellt mat dem mkdir Kommando hei ënnen:
# mkdir -p /home/test
2. Als nächst identifizéieren erfuerderlech Dateien, laut der sshd_config Man-Säit, spezifizéiert d'Optioun ChrootDirectory
de Wee vum Verzeichnis fir no der Authentifikatioun ze chroot. De Verzeechnes muss déi néideg Dateien a Verzeichnisser enthalen fir d'Session vun engem Benotzer z'ënnerstëtzen.
Fir eng interaktiv Sessioun erfuerdert dëst op d'mannst eng Shell, allgemeng sh
, a Basis /dev
Noden wéi null, null, stdin, stdout, stderr, an tty Apparater:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
3. Erstellt elo d'/dev
Dateien wéi folgend mam Kommando mknod. Am Kommando hei drënner gëtt de -m
Fändel benotzt fir d'Datei Permissiounen Bits ze spezifizéieren, c
heescht Charakterdatei an déi zwou Zuelen si grouss a kleng Zuelen op déi d'Dateien weisen. .
# 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. Duerno setze déi entspriechend Erlaabnis op de Chroot Prisong. Notéiert datt de Chroot Prisong a seng Ënnerverzeechnungen an Ënnerdateien musse vum Root Benotzer gehéiert ginn, an net vun engem normale Benotzer oder Grupp schreiwen:
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
Schrëtt 2: Interaktive Shell fir SSH Chroot Jail installéieren
5. Erstellt als éischt den bin
Verzeichnis a kopéiert dann d'/bin/bash
Dateien an den bin
Verzeichnis wéi follegt:
# mkdir -p /home/test/bin # cp -v /bin/bash /home/test/bin/
6. Elo identifizéieren bash erfuerderlech gedeelt libs
, wéi hei ënnen a kopéiert se an de lib
Verzeichnis:
# 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/
Schrëtt 3: SSH Benotzer erstellen a konfiguréieren
7. Elo erstellt den SSH Benotzer mam Useradd Kommando a setzt e séchert Passwuert fir de Benotzer:
# useradd tecmint # passwd tecmint
8. Erstellt de Chroot Prisong allgemeng Konfiguratiounsverzeechnes, /home/test/etc
a kopéiert déi aktualiséiert Kontdateien (/etc/passwd an /etc/group) an dëse Verzeichnis wéi follegt:
# mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/
Bemierkung: All Kéier wann Dir méi SSH Benotzer an de System bäidréit, musst Dir déi aktualiséiert Kontdateien an de /home/test/etc
Verzeechnes kopéieren.
Schrëtt 4: SSH konfiguréieren fir Chroot Jail ze benotzen
9. Elo, öffnen d'Datei sshd_config
.
# vi /etc/ssh/sshd_config
a fügen/änneren d'Linnen hei ënnen an der Datei.
#define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test
Späichert d'Datei a gitt eraus, a start d'SSHD-Servicer nei:
# systemctl restart sshd OR # service sshd restart
Schrëtt 5: Testen SSH mat Chroot Jail
10. Op dësem Punkt, Test ob de Chroot Prisong Setup funktionnéiert wéi erwaart:
# ssh [email -bash-4.1$ ls -bash-4.1$ date -bash-4.1$ uname
Aus dem Screenshot hei uewen kënne mir gesinn datt den SSH Benotzer am chrooted Prisong gespaart ass, a kann keng extern Befehle lafen (ls, Datum, Uname etc).
De Benotzer kann nëmmen Bash a seng agebaute Kommandoen ausféieren wéi (pwd, Geschicht, Echo etc) wéi hei ënnendrënner:
# ssh [email -bash-4.1$ pwd -bash-4.1$ echo "Tecmint - Fastest Growing Linux Site" -bash-4.1$ history
Schrëtt 6. SSH User's Home Directory erstellen an Linux Kommandoen addéieren
11. Vum virege Schrëtt kënne mir bemierken datt de Benotzer am Root Verzeichnis gespaart ass, mir kënnen en Heemverzeechnes fir den SSH Benotzer erstellen wéi sou (maacht dëst fir all zukünfteg Benotzer):
# mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint
12. Installéiert dann e puer Benotzerbefehle wéi ls, date, mkdir am bin
Verzeichnis:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/date /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
13. Als nächst, kontrolléiert d'gedeelt Bibliothéike fir d'Befehle hei uewen a réckelt se an de 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/
Schrëtt 7. Testen SFTP mat Chroot Prisong
14. Maacht e finalen Test mat sftp; kontrolléiert ob d'Befehle déi Dir just installéiert hutt funktionnéieren.
Füügt d'Linn hei ënnen an der /etc/ssh/sshd_config
Datei:
#Enable sftp to chrooted jail ForceCommand internal-sftp
Späichert d'Datei a gitt eraus. Da starten d'SSHD Servicer nei:
# systemctl restart sshd OR # service sshd restart
15. Elo, Test mat SSH, Dir kritt de folgende Feeler:
# ssh [email
Probéiert SFTP wéi follegt ze benotzen:
# sftp [email
Dat ass et fir elo!. An dësem Artikel hu mir Iech gewisen wéi Dir en SSH Benotzer an engem bestëmmte Verzeechnes (chrooted Prisong) am Linux beschränkt. Benotzt de Kommentarsektioun hei drënner fir eis Är Gedanken iwwer dëse Guide ze bidden.