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ä,
- tecmint - etäjärjestelmän käyttäjänimi.
- 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> pwd Remote working directory: / sftp> ls tecmint
Tässä tecmint
on kotihakemisto. CD 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 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.