Hvernig á að takmarka SFTP notendur við heimaskrár með chroot fangelsi
Í þessari kennslu munum við ræða hvernig á að takmarka SFTP notendur við heimaskrár sínar eða sérstakar möppur. Það þýðir að notandinn hefur aðeins aðgang að heimamöppunni sinni, ekki öllu skráarkerfinu.
Það er mikilvægt að takmarka heimaskrár notenda, sérstaklega í samnýttu netþjónsumhverfi, svo að óviðkomandi notandi laumist ekki inn í skrár og möppur hins notandans.
Mikilvægt: Vinsamlegast athugaðu líka að tilgangur þessarar greinar er að veita aðeins SFTP aðgang, ekki SSH innskráningu, með því að fylgja þessari grein mun hafa heimildir til að flytja skrár, en ekki heimilt að gera ytri SSH lotu.
Einfaldasta leiðin til að gera þetta er að búa til rótað fangelsisumhverfi fyrir SFTP aðgang. Þessi aðferð er sú sama fyrir öll Unix/Linux stýrikerfi. Með því að nota chrooted umhverfi getum við takmarkað notendur annað hvort við heimaskrána sína eða við ákveðna möppu.
Takmarka notendur við heimaskrár
Í þessum hluta munum við búa til nýjan hóp sem kallast sftpgroup og úthluta réttum eignarhaldi og heimildum til notendareikninga. Það eru tveir kostir til að takmarka notendur við heima- eða sérstakar möppur, við munum sjá báðar leiðir í þessari grein.
Leyfðu okkur að takmarka núverandi notanda, til dæmis tecmint
, við heimaskrána hans/hennar sem heitir /home/tecmint
. Til þess þarftu að búa til nýjan sftpgroup hóp með groupadd skipuninni eins og sýnt er:
# groupadd sftpgroup
Næst skaltu tengja notandann „tecmint“ í sftpgroup hóp.
# usermod -G sftpgroup tecmint
Þú getur líka búið til nýjan notanda með useradd skipuninni, til dæmis senthil
og úthlutað notandanum í sftpusers hóp.
# adduser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint
Opnaðu og bættu eftirfarandi línum við /etc/ssh/sshd_config
stillingarskrá.
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Vistaðu og lokaðu skránni, endurræstu sshd þjónustuna til að taka nýjar breytingar í gildi.
# systemctl restart sshd OR # service sshd restart
Ef þú tengir marga notendur í sömu möppuna, ættir þú að breyta heimildum heimamöppu hvers notanda til að koma í veg fyrir að allir notendur fletti heimamöppum hvers annars notenda.
# chmod 700 /home/tecmint
Nú er kominn tími til að athuga innskráninguna frá staðbundnu kerfi. Reyndu að ssh ytra kerfið þitt úr staðbundnu kerfinu þínu.
# ssh [email
Hér,
- tecmint – notendanafn ytra kerfisins.
- 192.168.1.150 – IP-tala fjarkerfis.
[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.
Fáðu síðan aðgang að ytra kerfi með SFTP.
# sftp [email
[email 's password: Connected to 192.168.1.150. sftp>
Leyfðu okkur að athuga núverandi vinnuskrá:
sftp> pwd Remote working directory: / sftp> ls tecmint
Hér er tecmint
heimaskráin. CD í tecmint möppuna og búðu til skrár eða möppur að eigin vali.
sftp> cd tecmint Remote working directory: / sftp> mkdir test tecmint
Takmarka notendur við ákveðna skrá
Í fyrra dæminu okkar takmörkum við núverandi notendur við heimaskrána. Nú munum við sjá hvernig á að takmarka nýjan notanda við sérsniðna skrá.
Búðu til nýjan hóp sftpgroup
.
# groupadd sftpgroup
Næst skaltu búa til möppu fyrir SFTP hóp og úthluta heimildum fyrir rótarnotandann.
# mkdir -p /sftpusers/chroot # chown root:root /sftpusers/chroot/
Næst skaltu búa til nýjar möppur fyrir hvern notanda, sem þeir munu hafa fullan aðgang að. Til dæmis munum við búa til tecmint
notanda og það er ný heimaskrá með réttri hópheimild með því að nota eftirfarandi röð skipana.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
Breyttu eða bættu við eftirfarandi línum í lok skráarinnar:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /sftpusers/chroot/ ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Vistaðu og lokaðu skránni. Endurræstu sshd þjónustu til að taka gildi vistaðar breytingar.
# systemctl restart sshd OR # service sshd restart
Það er það, þú getur athugað með því að skrá þig inn á ytri SSH og SFTP netþjóninn þinn með því að nota skrefið sem gefið er upp hér að ofan við Staðfestu SSH og SFTP innskráningu.
Hafðu í huga að þessi aðferð mun slökkva á skeljaaðganginum, þ.e. þú getur ekki fengið aðgang að skeljalotu ytra kerfisins með því að nota SSH. Þú getur aðeins fengið aðgang að ytri kerfum í gegnum SFTP og framkvæmt skráaflutning til og frá staðbundnu og ytra kerfum.
Niðurstaða
Nú veistu hvernig á að takmarka heimaskrár notenda með því að nota Chroot umhverfi í Linux. Ef þér finnst þetta gagnlegt, deildu þessari grein á samfélagsnetunum þínum og láttu okkur vita í athugasemdahlutanum hér að neðan ef það eru einhverjar aðrar aðferðir til að takmarka heimaskrár notenda.