Kā ierobežot SFTP lietotāju mājas direktorijus, izmantojot chroot Jail


Šajā apmācībā mēs apspriedīsim, kā ierobežot SFTP lietotājus viņu mājas direktorijos vai īpašos direktorijos. Tas nozīmē, ka lietotājs var piekļūt tikai savam attiecīgajam mājas direktorijai, nevis visai failu sistēmai.

Lietotāju mājas direktoriju ierobežošana ir ļoti svarīga, it īpaši koplietojamā servera vidē, lai neautorizēts lietotājs nevarētu ielūkoties cita lietotāja failos un mapēs.

Svarīgi: Lūdzu, ņemiet vērā arī to, ka šī raksta mērķis ir nodrošināt tikai SFTP piekļuvi, nevis SSH pieteikšanās, ievērojot šo rakstu, būs atļaujas veikt failu pārsūtīšanu, bet ne atļauts veikt attālo SSH sesiju.

Vienkāršākais veids, kā to izdarīt, ir izveidot sakņotu cietuma vidi piekļuvei SFTP. Šī metode ir vienāda visām Unix/Linux operētājsistēmām. Izmantojot sakņotu vidi, mēs varam ierobežot lietotājus vai nu viņu mājas direktorijā, vai arī noteiktā direktorijā.

Ierobežojiet lietotājus tikai mājas direktorijos

Šajā sadaļā mēs izveidosim jaunu grupu ar nosaukumu sftpgroup un piešķirsim pareizu īpašumtiesības un atļaujas lietotāju kontiem. Ir divas izvēles, lai ierobežotu lietotāju mājas vai konkrētus direktorijus, mēs šajā rakstā redzēsim abus virzienus.

Ierobežosim esošo lietotāju, piemēram, tecmint , līdz viņa/viņas mājas direktorijai ar nosaukumu /home/tecmint . Lai to izdarītu, jums jāizveido jauna sftpgroup grupa, izmantojot komandu groupadd, kā parādīts:

# groupadd sftpgroup

Pēc tam piešķiriet lietotāju “tecmint” sftpgroup grupai.

# usermod -G sftpgroup tecmint

Varat arī izveidot jaunu lietotāju, izmantojot komandu useradd, piemēram, senthil un piešķirt lietotāju sftpusers grupai.

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

Atveriet konfigurācijas failā /etc/ssh/sshd_config un pievienojiet šīs rindas.

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

Saglabājiet un izejiet no faila, restartējiet sshd pakalpojumu, lai stātos spēkā jaunas izmaiņas.

# systemctl restart sshd
OR
# service sshd restart

Ja vienā un tajā pašā direktorijā esat izveidojis vairākus lietotājus, jums jāmaina katra lietotāja mājas direktorija atļaujas, lai neļautu visiem lietotājiem pārlūkot citu lietotāju mājas direktorijus.

# chmod 700 /home/tecmint

Ir pienācis laiks pārbaudīt pieteikšanos no vietējās sistēmas. Mēģiniet ssh attālo sistēmu no vietējās sistēmas.

# ssh [email 

Šeit,

  1. tecmint - attālās sistēmas lietotājvārds.
  2. 192.168.1.150 - attālās sistēmas IP adrese.

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

Pēc tam piekļūstiet attālajai sistēmai, izmantojot SFTP.

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

Pārbaudīsim pašreizējo darba direktoriju:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Šeit tecmint ir mājas direktorijs. CD direktorijā tecmint un izveidojiet izvēlētos failus vai mapes.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Ierobežojiet lietotājus tikai noteiktā direktorijā

Iepriekšējā piemērā esošos lietotājus mēs ierobežojam tikai mājas direktorijā. Tagad mēs redzēsim, kā ierobežot jaunu lietotāju ar pielāgotu direktoriju.

Izveidojiet jaunu grupu sftpgroup .

# groupadd sftpgroup

Pēc tam izveidojiet direktoriju SFTP grupai un piešķiriet atļaujas saknes lietotājam.

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

Pēc tam katram lietotājam izveidojiet jaunus direktorijus, kuriem viņiem būs pilnīga piekļuve. Piemēram, mēs izveidosim lietotāju tecmint un tas būs jauns mājas katalogs ar pareizu grupas atļauju, izmantojot šādas komandu sērijas.

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

Mainiet vai pievienojiet šādas rindas faila beigās:

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

Saglabājiet un izejiet no faila. Lai stātos spēkā saglabātās izmaiņas, restartējiet sshd pakalpojumu.

# systemctl restart sshd
OR
# service sshd restart

Tas ir viss, jūs varat pārbaudīt, piesakoties tālvadības SSH un SFTP serverī, izmantojot iepriekš sniegto darbību Verificēt SSH un SFTP pieteikšanos.

Ņemiet vērā, ka šī metode atspējos piekļuvi čaulai, t.i., jūs nevarat piekļūt attālās sistēmas čaulas sesijai, izmantojot SSH. Jūs varat piekļūt attālajām sistēmām tikai caur SFTP un veikt failu pārsūtīšanu uz un no vietējām un attālajām sistēmām.

Secinājums

Tagad jūs zināt, kā ierobežot lietotāju mājas direktorijus, izmantojot Chroot vidi Linux. Ja jums tas šķiet noderīgi, dalieties ar šo rakstu savos sociālajos tīklos un informējiet mūs zemāk esošajā komentāru sadaļā, ja ir kādas citas metodes, kā ierobežot lietotāju mājas direktorijus.