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


Tässä opetusohjelmassa keskustelemme siitä, kuinka SFTP-käyttäjät rajoitetaan kotihakemistoihinsa tai tiettyihin hakemistoihin. Se tarkoittaa, että käyttäjä voi käyttää vain omaa kotihakemistoaan, ei koko tiedostojärjestelmää.

Käyttäjien kotihakemistojen rajoittaminen on elintärkeää, etenkin jaetussa palvelinympäristössä, jotta luvaton käyttäjä ei pääse kurkistamaan 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ö, ei SSH-kirjautumisia. Kun seuraat tätä artikkelia, sinulla on oikeudet tiedostojen siirtoon, mutta ei saa tehdä SSH-etäistuntoa.

Suositeltu luku: Rajoita SSH-käyttäjien pääsyä tiettyihin hakemistoihin käyttämällä Chrooted Jail -palvelua

Yksinkertaisin tapa tehdä tämä on luoda chrooted vankilaympäristö SFTP-käyttöä varten. Tämä menetelmä on sama kaikissa Unix/Linux-käyttöjärjestelmissä. Chroot-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 käyttäjätileille oikean omistajuuden ja käyttöoikeudet. On kaksi vaihtoehtoa rajoittaa käyttäjät koti- tai tiettyihin hakemistoihin. Näemme molemmat tavat tässä artikkelissa.

Luo tai muokkaa käyttäjiä ja ryhmiä

Rajataan olemassa oleva käyttäjä, esimerkiksi tecmint, hänen kotihakemistoonsa nimeltä /home/tecmint. Tätä varten sinun on luotava uusi sftpgroup-ryhmä groupadd-komennolla 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 useradd-komennolla, esimerkiksi senthil ja liittää käyttäjän sftpusers-ryhmään.

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

Muokkaa SSH-määritystiedostoa

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

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

Tallenna ja sulje tiedosto, käynnistä sshd-palvelu uudelleen, jotta uudet muutokset tulevat voimaan.

systemctl restart sshd
OR
service sshd restart

Jos chrootit useita käyttäjiä samaan hakemistoon, sinun tulee muuttaa kunkin käyttäjän kotihakemiston käyttöoikeuksia, jotta kaikki käyttäjät eivät voi selata toistensa käyttäjien kotihakemistoja.

chmod 700 /home/tecmint

Tarkista SSH- ja SFTP-käyttäjien kirjautuminen

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

ssh [email 

Tässä,

  1. tecmint – etäjärjestelmän käyttäjätunnus.
  2. 192.168.1.150 – Etäjärjestelmän IP-osoite.
Näytetulostus:
[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.

Siirry sitten etäjärjestelmään SFTP:n avulla.

sftp [email 
Näytetulostus:
[email 's password: 
Connected to 192.168.1.150.
sftp>

Tarkastetaan nykyinen työhakemisto:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Tässä tecmint on kotihakemisto. CD-levy 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 olemassa olevat käyttäjät kotihakemistoon. Nyt näemme kuinka rajata uusi käyttäjä mukautettuun hakemistoon.

Luo ryhmä ja uusia käyttäjiä

Luo uusi ryhmä sftpgroup.

groupadd sftpgroup

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

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

Luo seuraavaksi jokaiselle käyttäjälle uudet hakemistot, joihin heillä on täysi käyttöoikeus. Luomme esimerkiksi tecmint-käyttäjän ja sen uuden kotihakemiston oikealla ryhmäluvalla käyttämällä seuraavia komentoja.

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

Määritä SSH SFTP-käyttöä varten

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 ja poistu tiedostosta. Käynnistä sshd-palvelu uudelleen, jotta tallennetut muutokset tulevat voimaan.

systemctl restart sshd
OR
service sshd restart

Siinä kaikki, voit tarkistaa kirjautumalla SSH- ja SFTP-etäpalvelimeesi käyttämällä yllä olevaa vaihetta kohdassa Tarkista SSH- ja SFTP-kirjautuminen.

Muista, että tämä menetelmä estää komentotulkin käytön, eli et voi käyttää etäjärjestelmän shell-istuntoa SSH:n avulla. Voit käyttää etäjärjestelmiä vain SFTP:n kautta ja siirtää tiedostoja paikallisiin ja etäjärjestelmiin ja niistä.

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 kerro meille alla olevassa kommenttiosiossa, jos on olemassa muita tapoja rajoittaa käyttäjien kotihakemistoja.