Kako omejiti uporabnike SFTP na domače imenike s pomočjo chroot Jail


V tej vadnici bomo razpravljali o tem, kako uporabnike SFTP omejiti na njihove domače ali določene imenike. To pomeni, da lahko uporabnik dostopa samo do svojega domačega imenika, ne pa tudi do celotnega datotečnega sistema.

Omejevanje domačih imenikov uporabnikov je bistvenega pomena, zlasti v skupnem strežniškem okolju, tako da nepooblaščeni uporabnik ne bo prikradel pogledov v datoteke in mape drugega uporabnika.

Pomembno: Upoštevajte tudi, da je namen tega članka zagotoviti le SFTP dostop, ne pa tudi SSH prijave, tako da bo po tem članku imel dovoljenja za prenos datotek, vendar ne sme izvajati oddaljene seje SSH.

To najpreprosteje naredimo tako, da ustvarimo chrootirano zaporniško okolje za dostop do SFTP. Ta metoda je enaka za vse operacijske sisteme Unix/Linux. Z uporabo chrootiranega okolja lahko uporabnike omejimo na njihov domači imenik ali na določen imenik.

Omejite uporabnike na domače imenike

V tem razdelku bomo ustvarili novo skupino, imenovano sftpgroup, in uporabniškim računom dodelili pravilno lastništvo in dovoljenja. Obstajata dve možnosti, kako uporabnike omejiti na domače ali določene imenike, v tem članku bomo videli oboje.

Omejimo obstoječega uporabnika, na primer tecmint , na njegov/njen domači imenik z imenom /home/tecmint . Za to morate z ukazom groupadd ustvariti novo skupino sftpgroup, kot je prikazano:

# groupadd sftpgroup

Nato uporabnika 'tecmint' dodelite skupini sftpgroup.

# usermod -G sftpgroup tecmint

Ustvarite lahko tudi novega uporabnika z ukazom useradd, na primer senthil in ga dodelite skupini sftpusers.

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

Odprite in dodajte naslednje vrstice v konfiguracijsko datoteko /etc/ssh/sshd_config .

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

Shranite in zapustite datoteko, znova zaženite storitev sshd, da začnejo veljati nove spremembe.

# systemctl restart sshd
OR
# service sshd restart

Če v isti imenik shranite več uporabnikov, spremenite dovoljenja domačega imenika vsakega uporabnika, da preprečite vsem uporabnikom brskanje po domačih imenikih drugih uporabnikov.

# chmod 700 /home/tecmint

Zdaj je čas, da preverite prijavo iz lokalnega sistema. Poskusite odstraniti oddaljeni sistem iz lokalnega sistema.

# ssh [email 

Tukaj,

  1. tecmint - uporabniško ime oddaljenega sistema.
  2. 192.168.1.150 - Naslov IP oddaljenega sistema.

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

Nato dostopite do oddaljenega sistema s pomočjo SFTP.

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

Preverimo trenutni delovni imenik:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Tu je tecmint domači imenik. Cd v imenik tecmint in ustvarite datoteke ali mape po vaši izbiri.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Omeji uporabnike na določen imenik

V prejšnjem primeru smo obstoječe uporabnike omejili na domači imenik. Zdaj bomo videli, kako novega uporabnika omejiti na imenik po meri.

Ustvarite novo skupino sftpgroup .

# groupadd sftpgroup

Nato ustvarite imenik za skupino SFTP in dodelite dovoljenja korenskemu uporabniku.

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

Nato ustvarite nove imenike za vsakega uporabnika, do katerih bo imel popoln dostop. Na primer, ustvarili bomo uporabnika tecmint in to je novi domači imenik s pravilnim dovoljenjem za skupino z uporabo naslednjih nizov ukazov.

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

Na koncu datoteke spremenite ali dodajte naslednje vrstice:

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

Shranite in zapustite datoteko. Znova zaženite storitev sshd, da uveljavite shranjene spremembe.

# systemctl restart sshd
OR
# service sshd restart

To je vse, lahko preverite tako, da se prijavite v oddaljeni strežnik SSH in SFTP, tako da uporabite zgornji korak pri preverjanju prijave SSH in SFTP.

Upoštevajte, da bo ta metoda onemogočila dostop do lupine, tj. Do seje lupine oddaljenega sistema ne morete dostopati s pomočjo SSH. Do oddaljenih sistemov lahko dostopate samo prek SFTP in prenašate datoteke v lokalne in oddaljene sisteme in iz njih.

Zaključek

Zdaj veste, kako uporabnikom omejiti domače imenike z uporabo okolja Chroot v Linuxu. Če se vam zdi to koristno, delite ta članek v svojih družabnih omrežjih in nam v spodnjem oddelku za komentar sporočite, ali obstajajo še kakšne druge metode za omejevanje domačih imenikov uporabnikov.