Kako ograničiti korisnike SFTP-a na kućne direktorije koristeći chroot Jail


U ovom vodiču ćemo razgovarati o tome kako ograničiti SFTP korisnike na njihove kućne direktorije ili određene direktorije. To znači da korisnik može pristupiti samo svom matičnom direktoriju, a ne cijelom sistemu datoteka.

Ograničavanje kućnih direktorija korisnika je od vitalnog značaja, posebno u okruženju dijeljenog servera, tako da neovlašteni korisnik ne bi šunjao zavirivao u datoteke i mape drugog korisnika.

Važno: Također imajte na umu da je svrha ovog članka pružiti samo SFTP pristup, a ne SSH prijave, slijedeći ovaj članak će imati dozvole za prijenos datoteka, ali nije dozvoljeno da radi udaljenu SSH sesiju.

Predloženo čitanje: Ograničite SSH korisnički pristup određenom direktoriju koristeći Chrooted Jail

Najjednostavniji način da to učinite je kreiranje chrooted zatvorskog okruženja za SFTP pristup. Ova metoda je ista za sve Unix/Linux operativne sisteme. Koristeći chrooted okruženje, možemo ograničiti korisnike ili na njihov kućni direktorij ili na određeni direktorij.

Ograničite korisnike na kućne imenike

U ovom dijelu ćemo kreirati novu grupu pod nazivom sftpgroup i dodijeliti ispravno vlasništvo i dozvole korisničkim nalozima. Postoje dva izbora za ograničavanje korisnika na početne ili određene direktorije, vidjet ćemo oba smjera u ovom članku.

Kreirajte ili modificirajte korisnike i grupe

Ograničimo postojećeg korisnika, na primjer tecmint, na njegov/njen početni direktorij pod nazivom /home/tecmint. Za ovo morate kreirati novu sftpgroup grupu koristeći naredbu groupadd kao što je prikazano:

groupadd sftpgroup

Zatim dodijelite korisnika ‘tecmint’ grupi sftpgroup.

usermod -G sftpgroup tecmint

Također možete kreirati novog korisnika koristeći komandu useradd, na primjer senthil i dodijeliti korisnika grupi sftpusers.

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

Izmijenite SSH konfiguracijski fajl

Otvorite i dodajte sljedeće linije u /etc/ssh/sshd_config konfiguracijski fajl.

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

Sačuvajte i izađite iz datoteke, ponovo pokrenite sshd servis da nove promjene stupe na snagu.

systemctl restart sshd
OR
service sshd restart

Ako chrootirate više korisnika u isti direktorij, trebali biste promijeniti dozvole kućnog direktorija svakog korisnika kako biste spriječili sve korisnike da pretražuju kućne direktorije drugih korisnika.

chmod 700 /home/tecmint

Provjerite prijavu korisnika na SSH i SFTP

Sada je vrijeme da provjerite prijavu s lokalnog sistema. Pokušajte ssh svoj udaljeni sistem sa vašeg lokalnog sistema.

ssh [email 

ovdje,

  1. tecmint – korisničko ime udaljenog sistema.
  2. 192.168.1.150 – IP adresa udaljenog sistema.
Uzorak izlaza:
[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.

Zatim pristupite udaljenom sistemu koristeći SFTP.

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

Provjerimo trenutni radni direktorij:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Ovdje je tecmint početni direktorij. Cd u tecmint direktorij i kreirajte datoteke ili foldere po vašem izboru.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Ograničite korisnike na određeni direktorij

U našem prethodnom primjeru ograničavamo postojeće korisnike na kućni direktorij. Sada ćemo vidjeti kako ograničiti novog korisnika na prilagođeni direktorij.

Kreirajte grupu i nove korisnike

Kreirajte novu grupu sftpgroup.

groupadd sftpgroup

Zatim kreirajte direktorij za SFTP grupu i dodijelite dozvole za root korisnika.

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

Zatim kreirajte nove direktorije za svakog korisnika, kojima će imati puni pristup. Na primjer, kreirat ćemo korisnika tecmint i to je novi početni direktorij s ispravnom dozvolom grupe koristeći sljedeći niz naredbi.

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

Konfigurirajte SSH za SFTP pristup

Izmijenite ili dodajte sljedeće redove na kraju datoteke:

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

Sačuvajte i izađite iz datoteke. Ponovo pokrenite sshd servis da biste stupili na snagu sačuvanih promjena.

systemctl restart sshd
OR
service sshd restart

To je to, možete provjeriti tako što ćete se prijaviti na svoj udaljeni SSH i SFTP server korištenjem gore navedenog koraka u Provjeri SSH i SFTP prijavu.

Imajte na umu da će ovaj metod onemogućiti pristup ljusci, tj. ne možete pristupiti sesiji ljuske udaljenog sistema koristeći SSH. Možete pristupiti udaljenim sistemima samo putem SFTP-a i vršiti prijenos datoteka na i sa lokalnih i udaljenih sistema.

Zaključak

Sada znate kako ograničiti kućne direktorije korisnika koristeći Chroot okruženje u Linuxu. Ako smatrate da je ovo korisnim, podijelite ovaj članak na svojim društvenim mrežama i javite nam u odjeljku za komentare ispod da li postoje neki drugi načini za ograničavanje kućnih imenika korisnika.