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
- tecmint - nuotolinės sistemos vartotojo vardas.
- 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> pwd Remote working directory: / sftp> ls tecmint
Čia tecmint
yra namų katalogas. CD į „tecmint“ katalogą ir sukurkite pasirinktus failus ar aplankus.
sftp> cd tecmint Remote working directory: / sftp> 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.