Kaip apriboti SFTP vartotojus namų katalogams naudojant chroot kalėjimą


Šioje pamokoje aptarsime, kaip apriboti SFTP vartotojus tik jų namų ar konkrečių katalogų vartotojams. Tai reiškia, kad vartotojas gali pasiekti tik savo/savo namų katalogą, o ne visą failų sistemą.

Gyventojų namų katalogų apribojimas yra gyvybiškai svarbus, ypač bendro serverio aplinkoje, kad neįgaliotas vartotojas negalėtų žvilgtelėti į kito vartotojo failus ir aplankus.

Svarbu: taip pat atkreipkite dėmesį, kad šio straipsnio tikslas yra suteikti tik SFTP prieigą, o ne SSH prisijungimus. Vadovaujantis šiuo straipsniu, jums bus suteikta teisė perduoti failus, tačiau neleidžiama atlikti nuotolinio SSH seanso.

Paprasčiausias būdas tai padaryti yra sukurti chronuotą kalėjimo aplinką SFTP prieigai. Šis metodas yra tas pats visose „Unix“/„Linux“ operacinėse sistemose. Naudodamiesi chrooted aplinka, mes galime apriboti vartotojus tik jų namų kataloge arba konkrečiame kataloge.

Apribokite vartotojus tik namų kataloguose

Šiame skyriuje sukursime naują grupę, vadinamą „sftpgroup“, ir priskirsime teisingas nuosavybės teises ir teises vartotojo abonementams. Yra du pasirinkimai apriboti vartotojus namuose ar konkrečiuose kataloguose, šiame straipsnyje pamatysime abi puses.

Apribokime esamą vartotoją, pvz., tecmint , iki jo namų katalogo pavadinimu /home/tecmint . Norėdami tai padaryti, naudodami komandą groupadd turite sukurti naują sftpgroup grupę, kaip parodyta:

# groupadd sftpgroup

Tada priskirkite vartotojui „tecmint“ sftpgroup grupei.

# usermod -G sftpgroup tecmint

Taip pat galite sukurti naują vartotoją naudodami komandą useradd, pvz., senthil ir priskirti vartotoją grupei „sftpusers“.

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

Atidarykite ir pridėkite šias eilutes prie konfigūracijos failo /etc/ssh/sshd_config .

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

Išsaugokite ir išeikite iš failo, iš naujo paleiskite „sshd“ tarnybą, kad įsigaliotų nauji pakeitimai.

# systemctl restart sshd
OR
# service sshd restart

Jei į tą patį katalogą įtraukiate kelis vartotojus, turėtumėte pakeisti kiekvieno vartotojo namų katalogo teises, kad visi vartotojai negalėtų naršyti vieni kitų vartotojų namų katalogų.

# chmod 700 /home/tecmint

Dabar atėjo laikas patikrinti prisijungimą iš vietinės sistemos. Pabandykite susieti savo nuotolinę sistemą iš vietinės sistemos.

# ssh [email 

Čia

  1. tecmint - nuotolinės sistemos vartotojo vardas.
  2. 192.168.1.150 - nuotolinės sistemos IP adresas.

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

Tada prieikite prie nuotolinės sistemos naudodami SFTP.

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

Patikrinkime dabartinį darbo katalogą:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Čia tecmint yra namų katalogas. CD į „tecmint“ katalogą ir sukurkite pasirinktus failus ar aplankus.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Apribokite vartotojus tam tikru katalogu

Ankstesniame pavyzdyje esamus vartotojus apribojame tik namų katalogu. Dabar pamatysime, kaip apriboti naują vartotoją pagal pasirinktinį katalogą.

Sukurkite naują grupę sftpgroup .

# groupadd sftpgroup

Tada sukurkite SFTP grupės katalogą ir priskirkite pagrindinio vartotojo teises.

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

Tada kiekvienam vartotojui sukurkite naujus katalogus, prie kurių jie turės pilną prieigą. Pvz., Sukursime vartotoją tecmint ir tai bus naujas namų katalogas su teisingu grupės leidimu, naudodami šias komandų serijas.

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

Pakeiskite arba pridėkite šias eilutes failo pabaigoje:

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

Išsaugokite ir išeikite iš failo. Iš naujo paleiskite „sshd“ paslaugą, kad įsigaliotų išsaugoti pakeitimai.

# systemctl restart sshd
OR
# service sshd restart

Tai viskas, jūs galite patikrinti prisijungdami prie savo nuotolinio SSH ir SFTP serverio, atlikdami aukščiau pateiktą veiksmą, esantį Patikrinti SSH ir SFTP prisijungimą.

Atminkite, kad šis metodas išjungs prieigą prie apvalkalo, t. Y. Jūs negalite pasiekti nuotolinės sistemos korpuso sesijos naudodami SSH. Prie nuotolinių sistemų galite prisijungti tik per SFTP ir perduoti failus į vietinę ir nuotolinę sistemą ir iš jos.

Išvada

Dabar jūs žinote, kaip apriboti vartotojų namų katalogus naudojant „Chroot“ aplinką sistemoje „Linux“. Jei jums tai naudinga, pasidalykite šiuo straipsniu savo socialiniuose tinkluose ir praneškite mums toliau pateiktoje komentarų skiltyje, jei yra kokių nors kitų būdų apriboti vartotojų namų katalogus.