Jinsi ya Kuzuia Watumiaji wa SFTP kwa Saraka za Nyumbani Kwa kutumia Jela ya chroot


Katika somo hili, tutakuwa tukijadili jinsi ya kuwawekea kikomo watumiaji wa SFTP kwenye saraka zao za nyumbani au saraka mahususi. Inamaanisha kuwa mtumiaji anaweza tu kufikia saraka yake ya nyumbani, sio mfumo mzima wa faili.

Kuzuia saraka za nyumbani za watumiaji ni muhimu, hasa katika mazingira ya seva iliyoshirikiwa, ili mtumiaji ambaye hajaidhinishwa asichunguze kisiri faili na folda za mtumiaji mwingine.

Muhimu: Tafadhali pia kumbuka kuwa madhumuni ya kifungu hiki ni kutoa ufikiaji wa SFTP pekee, sio kuingia kwa SSH, kwa kufuata kifungu hiki kutakuwa na ruhusa za kuhamisha faili, lakini hairuhusiwi kufanya kipindi cha mbali cha SSH.

Njia rahisi zaidi ya kufanya hivyo, ni kuunda mazingira ya jela yenye chrooted kwa ufikiaji wa SFTP. Njia hii ni sawa kwa mifumo yote ya uendeshaji ya Unix/Linux. Kwa kutumia mazingira yaliyochongwa, tunaweza kuwawekea kikomo watumiaji kwenye saraka yao ya nyumbani au saraka mahususi.

Zuia Watumiaji kwa Saraka za Nyumbani

Katika sehemu hii, tutaunda kikundi kipya kinachoitwa sftpgroup na kupeana umiliki na ruhusa sahihi kwa akaunti za watumiaji. Kuna chaguo mbili za kuwazuia watumiaji kwenye saraka za nyumbani au maalum, tutaona njia zote mbili katika nakala hii.

Hebu tuzuie mtumiaji aliyepo, kwa mfano tecmint, kwenye saraka yake ya nyumbani iitwayo /home/tecmint. Kwa hili, unahitaji kuunda kikundi kipya cha sftpgroup kwa kutumia amri ya groupadd kama inavyoonyeshwa:

# groupadd sftpgroup

Ifuatayo, mpe mtumiaji 'tecmint' kwa kikundi cha sftpgroup.

# usermod -G sftpgroup tecmint

Unaweza pia kuunda mtumiaji mpya kwa kutumia amri ya useradd, kwa mfano senthil na kumkabidhi mtumiaji kwa kikundi cha sftpusers.

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

Fungua na uongeze mistari ifuatayo kwenye /etc/ssh/sshd_config faili ya usanidi.

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

Hifadhi na uondoke faili, anza tena huduma ya sshd ili kuchukua mabadiliko mapya.

# systemctl restart sshd
OR
# service sshd restart

Ukichagua watumiaji wengi kwenye saraka sawa, unapaswa kubadilisha ruhusa za saraka ya nyumbani ya kila mtumiaji ili kuzuia watumiaji wote kuvinjari saraka za nyumbani za watumiaji wengine.

# chmod 700 /home/tecmint

Sasa, ni wakati wa kuangalia kuingia kutoka kwa mfumo wa ndani. Jaribu ssh mfumo wako wa mbali kutoka kwa mfumo wako wa karibu.

# ssh [email 

Hapa,

  1. tecmint - jina la mtumiaji la mfumo wa mbali.
  2. 192.168.1.150 - Anwani ya IP ya mfumo wa mbali.

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

Kisha, fikia mfumo wa mbali kwa kutumia SFTP.

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

Wacha tuangalie saraka ya sasa ya kufanya kazi:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Hapa, tecmint ndio saraka ya nyumbani. Cd kwenye saraka ya tecmint na uunde faili au folda utakazochagua.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Zuia Watumiaji kwenye Orodha mahususi

Katika mfano wetu uliopita, tunazuia watumiaji waliopo kwenye saraka ya nyumbani. Sasa, tutaona jinsi ya kuzuia mtumiaji mpya kwenye saraka maalum.

Unda kikundi kipya sftpgroup.

# groupadd sftpgroup

Ifuatayo, tengeneza saraka ya kikundi cha SFTP na upe ruhusa kwa mtumiaji wa mizizi.

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

Ifuatayo, tengeneza saraka mpya kwa kila mtumiaji, ambayo watapata ufikiaji kamili. Kwa mfano, tutaunda tecmint mtumiaji na saraka yake mpya ya nyumbani yenye ruhusa sahihi ya kikundi kwa kutumia mfululizo wa amri zifuatazo.

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

Rekebisha au ongeza mistari ifuatayo mwishoni mwa faili:

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

Hifadhi na uondoke faili. Anzisha tena huduma ya sshd ili kutekeleza mabadiliko yaliyohifadhiwa.

# systemctl restart sshd
OR
# service sshd restart

Ni hivyo tu, unaweza kuangalia kwa kuingia kwenye seva yako ya mbali ya SSH na SFTP kwa kutumia hatua iliyotolewa hapo juu kwenye Thibitisha kuingia kwa SSH na SFTP.

Kumbuka kuwa njia hii italemaza ufikiaji wa ganda, yaani, huwezi kufikia kipindi cha ganda la mfumo wa mbali kwa kutumia SSH. Unaweza tu kufikia mifumo ya mbali kupitia SFTP na kuhamisha faili kwenda na kutoka kwa mifumo ya ndani na ya mbali.

Hitimisho

Sasa unajua jinsi ya kuzuia saraka za nyumbani za watumiaji kwa kutumia mazingira ya Chroot katika Linux. Ikiwa unaona hii ni muhimu, shiriki makala hii kwenye mitandao yako ya kijamii na utujulishe katika sehemu ya maoni hapa chini ikiwa kuna mbinu zingine za kuzuia saraka za nyumbani za watumiaji.