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,

  1. tecmint – notendanafn ytra kerfisins.
  2. 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&gt pwd
Remote working directory: /

sftp&gt 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&gt cd tecmint
Remote working directory: /

sftp&gt 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.