Kuinka rajoittaa SFTP-käyttäjät kotihakemistoihin käyttämällä chroot-vankilaa


Tässä opetusohjelmassa keskustelemme siitä, miten SFTP-käyttäjät voidaan rajoittaa kotihakemistoihinsa tai tiettyihin hakemistoihinsa. Se tarkoittaa, että käyttäjä pääsee vain omaan kotihakemistoonsa, ei koko tiedostojärjestelmään.

Käyttäjien kotihakemistojen rajoittaminen on elintärkeää, etenkin jaetussa palvelinympäristössä, jotta luvaton käyttäjä ei hiipisi toisen käyttäjän tiedostoihin ja kansioihin.

Tärkeää: Huomaa myös, että tämän artikkelin tarkoituksena on tarjota vain SFTP-käyttöoikeus, ei SSH-kirjautumistunnuksia, seuraamalla tätä artikkelia, sinulla on oikeudet siirtää tiedostoja, mutta ei sallita SSH-etäistuntoa.

Yksinkertaisin tapa tehdä tämä on luoda suojattu vankilaympäristö SFTP-pääsyä varten. Tämä menetelmä on sama kaikille Unix/Linux-käyttöjärjestelmille. Käynnissä olevan ympäristön avulla voimme rajoittaa käyttäjät joko kotihakemistoonsa tai tiettyyn hakemistoon.

Rajoita käyttäjät kotihakemistoihin

Tässä osiossa luomme uuden ryhmän nimeltä sftpgroup ja määritämme oikeat omistajuudet ja käyttöoikeudet käyttäjätileille. On kaksi vaihtoehtoa rajoittaa käyttäjät kotiin tai tiettyihin hakemistoihin, näemme molemmat tapaukset tässä artikkelissa.

Rajoitetaan nykyinen käyttäjä, esimerkiksi tecmint , hänen kotihakemistoonsa nimeltä /home/tecmint . Tätä varten sinun on luotava uusi sftpgroup-ryhmä käyttämällä groupadd-komentoa kuvan mukaisesti:

# groupadd sftpgroup

Määritä seuraavaksi käyttäjä tecmint sftpgroup-ryhmään.

# usermod -G sftpgroup tecmint

Voit myös luoda uuden käyttäjän käyttämällä useradd-komentoa, esimerkiksi senthil ja liittää käyttäjän sftpusers-ryhmään.

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

Avaa ja lisää seuraavat rivit määritystiedostoon /etc/ssh/sshd_config .

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Tallenna ja poistu tiedostosta, käynnistä sshd-palvelu uudestaan, jotta uudet muutokset tulevat voimaan.

# systemctl restart sshd
OR
# service sshd restart

Jos chroot useita käyttäjiä samaan hakemistoon, sinun on muutettava kunkin käyttäjän kotihakemiston käyttöoikeuksia, jotta kaikki käyttäjät eivät voi selata toisten käyttäjien kotihakemistoja.

# chmod 700 /home/tecmint

Nyt on aika tarkistaa sisäänkirjautuminen paikallisesta järjestelmästä. Yritä ssh etäjärjestelmää paikallisesta järjestelmästä.

# ssh [email 

Tässä,

  1. tecmint - etäjärjestelmän käyttäjänimi.
  2. 192.168.1.150 - etäjärjestelmän IP-osoite.

[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.

Käytä sitten etäjärjestelmää SFTP: n avulla.

# sftp [email 
[email 's password: 
Connected to 192.168.1.150.
sftp>

Tarkistetaan nykyinen työkansio:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Tässä tecmint on kotihakemisto. CD tecmint-hakemistoon ja luo haluamasi tiedostot tai kansiot.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Rajoita käyttäjät tiettyyn hakemistoon

Edellisessä esimerkissämme rajoitamme nykyiset käyttäjät kotihakemistoon. Nyt näemme, kuinka uusi käyttäjä voidaan rajoittaa mukautettuun hakemistoon.

Luo uusi ryhmä sftpgroup .

# groupadd sftpgroup

Luo seuraavaksi hakemisto SFTP-ryhmälle ja määritä käyttöoikeudet pääkäyttäjälle.

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

Luo seuraavaksi jokaiselle käyttäjälle uudet hakemistot, joihin heillä on täysi pääsy. Esimerkiksi, luomme käyttäjän tecmint käyttäjän ja se on uusi kotihakemisto, jolla on oikea ryhmälupa seuraavien komentosarjojen avulla.

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

Muokkaa tai lisää seuraavat rivit tiedoston loppuun:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Tallenna tiedosto ja poistu siitä. Käynnistä sshd-palvelu uudelleen tallennettujen muutosten toteuttamiseksi.

# systemctl restart sshd
OR
# service sshd restart

Siinä kaikki, voit tarkistaa kirjautumalla SSH- ja SFTP-etäpalvelimellesi yllä olevan kohdan Vahvista SSH ja SFTP sisäänkirjautuminen avulla.

Ole tietoinen siitä, että tämä menetelmä poistaa komentotulkin käytön, ts. Et voi käyttää etäjärjestelmän kuori-istuntoa SSH: n avulla. Voit käyttää etäjärjestelmiä vain SFTP: n kautta ja siirtää tiedostoja paikallisiin ja etäjärjestelmiin.

Johtopäätös

Nyt tiedät kuinka rajoittaa käyttäjien kotihakemistoja käyttämällä Chroot-ympäristöä Linuxissa. Jos pidät tästä hyödyllisenä, jaa tämä artikkeli sosiaalisissa verkostoissasi ja ilmoita meille alla olevasta kommenttiosasta, jos on olemassa muita tapoja rajoittaa käyttäjien kotihakemistoja.