Az SFTP-felhasználók korlátozása a saját könyvtárakra a chroot Jail használatával
Ebben az oktatóanyagban megvitatjuk, hogyan korlátozhatjuk az SFTP-felhasználókat saját vagy meghatározott könyvtáraikra. Ez azt jelenti, hogy a felhasználó csak a saját saját könyvtárához férhet hozzá, a teljes fájlrendszerhez nem.
A felhasználók saját könyvtárainak korlátozása létfontosságú, különösen megosztott szerverkörnyezetben, hogy illetéktelen felhasználó ne tudjon bekukucskálni a másik felhasználó fájljaiba és mappáiba.
Fontos: Kérjük, vegye figyelembe, hogy ennek a cikknek az a célja, hogy csak az SFTP-hozzáférést biztosítsa, nem pedig az SSH-bejelentkezéseket. A cikk követésével jogosultak lesznek fájlátvitelre, de nem végezhet távoli SSH-munkamenetet.
Javasolt olvasmány: Korlátozza az SSH-felhasználói hozzáférést bizonyos könyvtárakhoz Chrooted Jail használatával
Ennek legegyszerűbb módja egy chrootolt börtönkörnyezet létrehozása az SFTP-hozzáféréshez. Ez a módszer minden Unix/Linux operációs rendszerre ugyanaz. A chrootolt környezet használatával korlátozhatjuk a felhasználókat a saját könyvtárukra vagy egy adott könyvtárra.
A felhasználók korlátozása a saját könyvtárakra
Ebben a részben új csoportot hozunk létre sftpgroup néven, és megfelelő tulajdonjogot és engedélyeket rendelünk a felhasználói fiókokhoz. Két lehetőség van arra, hogy a felhasználókat az otthoni vagy bizonyos könyvtárakra korlátozza, ebben a cikkben mindkét módot látni fogjuk.
Felhasználók és csoportok létrehozása vagy módosítása
Korlátozzuk a meglévő felhasználót, például a tecmint
, a /home/tecmint
nevű saját könyvtárára. Ehhez létre kell hoznia egy új sftpgroup csoportot a groupadd paranccsal az alábbi módon:
groupadd sftpgroup
Ezután rendelje hozzá a 'tecmint' felhasználót az sftpgroup csoporthoz.
usermod -G sftpgroup tecmint
Új felhasználót is létrehozhat a useradd paranccsal, például senthil
, és hozzárendelheti a felhasználót az sftpusers csoporthoz.
adduser senthil -g sftpgroup -s /sbin/nologin
passwd tecmint
Módosítsa az SSH konfigurációs fájlt
Nyissa meg és adja hozzá a következő sorokat az /etc/ssh/sshd_config
konfigurációs fájlhoz.
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /home
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Mentse el és lépjen ki a fájlból, indítsa újra az sshd szolgáltatást az új módosítások életbe lépéséhez.
systemctl restart sshd
OR
service sshd restart
Ha több felhasználót is chrootol ugyanabba a címtárba, módosítsa az egyes felhasználók saját könyvtárának jogosultságait, hogy megakadályozza, hogy minden felhasználó böngésszen a többi felhasználó saját könyvtárában.
chmod 700 /home/tecmint
Ellenőrizze az SSH- és SFTP-felhasználók bejelentkezését
Most itt az ideje, hogy ellenőrizze a bejelentkezést egy helyi rendszerből. Próbálja meg ssh-t küldeni a távoli rendszerről a helyi rendszerről.
ssh [email
Itt,
- tecmint – a távoli rendszer felhasználóneve.
- 192.168.1.150 – A távoli rendszer IP-címe.
Minta kimenet:
[email 's password:
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.
Ezután nyissa meg a távoli rendszert az SFTP használatával.
sftp [email
Minta kimenet:
[email 's password:
Connected to 192.168.1.150.
sftp>
Nézzük meg az aktuális munkakönyvtárat:
sftp> pwd
Remote working directory: /
sftp> ls
tecmint
Itt a tecmint
a kezdőkönyvtár. CD-t a tecmint könyvtárba, és hozza létre a kívánt fájlokat vagy mappákat.
sftp> cd tecmint
Remote working directory: /
sftp> mkdir test
tecmint
A felhasználók korlátozása egy adott könyvtárra
Az előző példánkban a meglévő felhasználókat a saját könyvtárra korlátozzuk. Most meglátjuk, hogyan korlátozhatunk egy új felhasználót egy egyéni könyvtárra.
Csoport létrehozása és új felhasználók
Hozzon létre egy új sftpgroup
csoportot.
groupadd sftpgroup
Ezután hozzon létre egy könyvtárat az SFTP-csoport számára, és rendeljen hozzá engedélyeket a root felhasználó számára.
mkdir -p /sftpusers/chroot
chown root:root /sftpusers/chroot/
Ezután minden felhasználó számára hozzon létre új könyvtárakat, amelyekhez teljes hozzáféréssel rendelkeznek. Például létrehozzuk a tecmint
felhasználót és az új kezdőkönyvtárat a megfelelő csoportengedéllyel a következő parancsok segítségével.
adduser tecmint -g sftpgroup -s /sbin/nologin
passwd tecmint
mkdir /sftpusers/chroot/tecmint
chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
chmod 700 /sftpusers/chroot/tecmint/
Konfigurálja az SSH-t SFTP-hozzáféréshez
Módosítsa vagy adja hozzá a következő sorokat a fájl végéhez:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /sftpusers/chroot/
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Mentse el és lépjen ki a fájlból. Indítsa újra az sshd szolgáltatást a mentett módosítások érvénybe léptetéséhez.
systemctl restart sshd
OR
service sshd restart
Ennyi, ezt úgy ellenőrizheti, hogy bejelentkezik távoli SSH- és SFTP-kiszolgálójára az SSH- és SFTP-bejelentkezés ellenőrzése részben megadott lépéssel.
Ne feledje, hogy ez a módszer letiltja a shell-hozzáférést, azaz nem férhet hozzá a távoli rendszer shell-munkamenetéhez SSH használatával. Csak SFTP-n keresztül érheti el a távoli rendszereket, és fájlátvitelt végezhet a helyi és távoli rendszerekre, illetve onnan.
Következtetés
Most már tudja, hogyan korlátozhatja a felhasználók saját könyvtárait Chroot környezet használatával Linuxban. Ha hasznosnak találja ezt a cikket, ossza meg ezt a cikket közösségi hálózatain, és tudassa velünk az alábbi megjegyzés részben, ha van más módszer a felhasználók saját könyvtárainak korlátozására.