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ä,
- tecmint – etäjärjestelmän käyttäjätunnus.
- 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> pwd
Remote working directory: /
sftp> ls
tecmint
Tässä tecmint
on kotihakemisto. CD-levy tecmint-hakemistoon ja luo haluamasi tiedostot tai kansiot.
sftp> cd tecmint
Remote working directory: /
sftp> 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.