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.