Weboldal keresés

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,

  1. tecmint – a távoli rendszer felhasználóneve.
  2. 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&gt pwd
Remote working directory: /

sftp&gt 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&gt cd tecmint
Remote working directory: /

sftp&gt 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.