Weboldal keresés

Korlátozza az SSH-felhasználók hozzáférését a saját címtárhoz a Chrooted Jail használatával


Számos oka van annak, hogy az SSH-felhasználói munkamenetet egy adott könyvtárra korlátozzák, különösen a webszervereken, de az egyik nyilvánvaló a rendszerbiztonság. Annak érdekében, hogy az SSH-felhasználókat egy bizonyos könyvtárba zárjuk, használhatjuk a chroot mechanizmust.

a gyökér megváltoztatása (chroot) a Unix-szerű rendszerekben, például a Linuxban, az adott felhasználói műveletek elkülönítésének eszköze a Linux rendszer többi részétől; megváltoztatja az éppen futó felhasználói folyamat látszólagos gyökérkönyvtárát és annak alárendelt (szülő) folyamatát egy új gyökérkönyvtárral, amelyet chrootolt börtönnek neveznek.

Ebben az oktatóanyagban megmutatjuk, hogyan korlátozhatja az SSH-felhasználók hozzáférését egy adott könyvtárhoz Linuxon. Vegye figyelembe, hogy az összes parancsot root felhasználóként fogjuk futtatni, használja a sudo parancsot, ha normál felhasználóként jelentkezett be a szerverre.

1. lépés: SSH Chroot Jail létrehozása

1. Kezdje a chroot jail létrehozásával az alábbi mkdir paranccsal:

mkdir -p /home/test

2. Ezután azonosítsa a szükséges fájlokat, az sshd_config kézikönyvnek megfelelően, a ChrootDirectory opció megadja annak a könyvtárnak az elérési útját, amelybe a hitelesítés után chrootolni kell. . A könyvtárnak tartalmaznia kell a szükséges fájlokat és könyvtárakat a felhasználói munkamenet támogatásához.

Egy interaktív munkamenethez ehhez legalább egy shell, általában sh és alapvető /dev csomópontok szükségesek, például null, zero, stdin, stdout, stderr és tty eszközök:

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

3. Most hozza létre a /dev fájlokat az alábbiak szerint az mknod paranccsal. Az alábbi parancsban a -m jelző a fájlengedély bitek megadására szolgál, a c karakterfájlt jelent, a két szám pedig fő és mellék szám, amelyre a fájlok mutatnak. .

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. Ezt követően állítsa be a megfelelő engedélyt a chroot börtönben. Ne feledje, hogy a chroot jailnek, valamint annak alkönyvtárainak és alfájljainak a root felhasználó tulajdonában kell lenniük, és nem írható normál felhasználó vagy csoport:

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

2. lépés: Állítsa be az SSH Chroot Jail interaktív shelljét

5. Először hozza létre a bin könyvtárat, majd másolja a /bin/bash fájlokat a bin könyvtárba a használatával cp parancsot a következőképpen:

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

6. Most azonosítsa a megosztott lib fájlokhoz szükséges bash-t az alábbiak szerint, és másolja be őket a lib könyvtárba:

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/

3. lépés: SSH-felhasználó létrehozása és konfigurálása

7. Most hozza létre az SSH-felhasználót a useradd paranccsal, és állítson be egy biztonságos jelszót a felhasználó számára:

useradd tecmint
passwd tecmint

8. Hozza létre a chroot jail általános konfigurációs könyvtárát, /home/test/etc, és másolja ki a frissített fiókfájlokat (/etc/passwd és /etc/group) ebbe a könyvtárba az alábbiak szerint:

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

4. lépés: Állítsa be az SSH-t a Chroot Jail használatára

9. Most nyissa meg az sshd_config fájlt.

vi /etc/ssh/sshd_config

és adja hozzá/módosítsa az alábbi sorokat a fájlban.

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

Mentse el a fájlt, lépjen ki, és indítsa újra az SSHD szolgáltatásokat:

systemctl restart sshd
OR
service sshd restart

5. lépés: Az SSH tesztelése a Chroot Jail segítségével

10. Ezen a ponton tesztelje, hogy a chroot jail beállítása a várt módon működik-e:

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

A fenti képernyőképen láthatjuk, hogy az SSH-felhasználó be van zárva a chrootolt börtönbe, és nem tud semmilyen külső parancsot futtatni (ls, dátum, uname stb.).

A felhasználó csak a bash-t és annak beépített parancsait tudja végrehajtani, például (pwd, history, echo stb.), az alábbiak szerint:

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

6. lépés: Hozzon létre SSH-felhasználói kezdőkönyvtárat, és adjon hozzá Linux-parancsokat

11. Az előző lépésből észrevehetjük, hogy a felhasználó zárolva van a gyökérkönyvtárban, így létrehozhatunk egy saját könyvtárat az SSH-felhasználó számára (minden jövőbeli felhasználónál ezt kell tenni):

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

12. Ezután telepítsen néhány felhasználói parancsot, például ls, date és mkdir a bin könyvtárba:

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

13. Ezután ellenőrizze a fenti parancsokat a megosztott könyvtárakban, és helyezze át őket a chrootolt börtönkönyvtárak könyvtárába:

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/

7. lépés: Az SFTP tesztelése a Chroot Jail segítségével

14. Végezzen egy utolsó tesztet az sftp használatával; ellenőrizze, hogy az imént telepített parancsok működnek-e.

Adja hozzá az alábbi sort az /etc/ssh/sshd_config fájlhoz:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Mentse el a fájlt és lépjen ki. Ezután indítsa újra az SSHD szolgáltatásokat:

systemctl restart sshd
OR
service sshd restart

15. Most teszteljen SSH-val, és a következő hibaüzenet jelenik meg:

ssh [email 

Próbálja meg az SFTP-t a következőképpen használni:

sftp [email 

Egyelőre ennyi! Ebben a cikkben megmutattuk, hogyan korlátozható egy SSH-felhasználó egy adott könyvtárban (chrootolt börtön) Linux alatt. Használja az alábbi megjegyzés részt, hogy elmondja nekünk az útmutatóval kapcsolatos gondolatait.