Jinsi ya Kulinda Saraka za Wavuti katika Apache Kwa Kutumia Faili ya .htaccess


Unapodhibiti miradi ya mtandaoni, mara nyingi unahitaji kudhibiti ufikiaji wa mradi huo ili kuulinda dhidi ya ulimwengu wa nje. Kunaweza kuwa na sababu tofauti za hilo - kwa mfano unataka kuzuia kutambaa kwa injini ya utafutaji kufikia tovuti yako wakati ingali katika awamu ya uundaji.

Katika mafunzo haya, nitakuonyesha jinsi ya kuweka saraka mbalimbali za tovuti zilizolindwa kwa nenosiri katika seva ya wavuti ya Apache. Kuna njia nyingi unazoweza kufanikisha hili, lakini tutakagua mbili kati yazo ambazo hutumiwa sana.

Njia ya kwanza inasanidi ulinzi wa nywila moja kwa moja kwenye faili ya usanidi wa Apache, wakati ya pili hutumia faili ya .htaccess.

Mahitaji

Ili kusanidi ulinzi wa nenosiri kwa saraka zako za wavuti, utahitaji kuwa na:

  • Seva ya wavuti ya Apache inayofanya kazi
  • Maelekezo ya AllowOverride AuthConfig lazima yawashwe katika faili ya usanidi ya Apache.

Sanidi Saraka Inayolindwa ya Nenosiri la Apache

1. Kwa somo hili, tutakuwa tunalinda saraka kuu ya msingi ya wavuti /var/www/html. Ili kulinda saraka hiyo, fungua usanidi wako wa Apache:

---------------- On RedHat/CentOS based systems ----------------
# vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
# nano /etc/apache2/sites-available/000-default.conf

2. Pata mzizi wa saraka ya Hati ya Apache ya /var/www/html na ongeza vitu vifuatavyo kama inavyopendekezwa:

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>
<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Hifadhi faili na uanze upya Apache kwa kutumia amri ifuatayo:

--------------- On Systemd -------------------
# systemctl restart httpd         [On RedHat based systems]
# systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
# service httpd restart           [On RedHat based systems]
# service apache2 restart         [On Debian based systems]

4. Sasa tutatumia amri ya htpasswd kuzalisha jina la mtumiaji na nenosiri kwa saraka yetu iliyolindwa. Amri hii inatumika kudhibiti faili za mtumiaji kwa uthibitishaji wa kimsingi.

Syntax ya jumla ya amri ni:

# htpasswd -c filename username

Chaguo la -c linabainisha faili ambayo itahifadhi nenosiri lililosimbwa na jina la mtumiaji hubainisha mtumiaji kwa uthibitishaji.

5. Faili yetu ya nenosiri inahitaji kupatikana nje ya saraka ya mtandao inayoweza kufikiwa ya Apache ili ilindwe vyema. Kwa kusudi hili, tutaunda saraka mpya:

# mkdir /home/tecmint

6. Baada ya hapo tutazalisha jina letu la mtumiaji na nenosiri ambalo litahifadhiwa katika saraka hiyo:

# htpasswd -c /home/tecmint/webpass tecmint

Mara tu unapotekeleza amri hii itabidi uweke nenosiri la mtumiaji wetu mpya \tecmint\ mara mbili:

Baada ya hapo tutahitaji kuhakikisha kwamba Apache ina uwezo wa kusoma faili ya webpass. Kwa kusudi hilo, utahitaji kubadilisha umiliki wa faili hiyo kwa amri ifuatayo:

---------------- On RedHat/CentOS based systems ----------------
# chown apache: /home/tecmint/webpass
# chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
# chown www-data /home/tecmint/webpass
# chmod 640 /home/tecmint/webpass

7. Katika hatua hii mtumiaji wetu mpya na nenosiri ziko tayari. Sasa tunahitaji kumwambia Apache kuomba nenosiri wakati wa kupata saraka yetu inayolengwa. Kwa kusudi hilo, unda faili inayoitwa .htaccess katika /var/www/html:

# vi /var/www/html/.htaccess

Ongeza nambari ifuatayo ndani yake:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Sasa hifadhi faili na uweke usanidi wako kwenye jaribio. Fungua kivinjari chako na uweke anwani yako ya IP au jina la kikoa kwenye kivinjari cha wavuti, kwa mfano:

http://ip-address

Unapaswa kuulizwa jina la mtumiaji na nywila:

Ingiza jina la mtumiaji na nenosiri uliloweka ili kuendelea na ukurasa wako.

Vidokezo vya Ziada

Ikiwa unatumia upangishaji pamoja, pengine hutaweza kufikia faili ya usanidi ya Apache. Hata hivyo kampuni nyingi zinazopangisha zimewasha chaguo la “AllowOverride All” kwa chaguomsingi. Hii ina maana kwamba utahitaji tu kuzalisha jina la mtumiaji na nenosiri na kisha kuchagua saraka ambayo ungependa kulinda. Hii hurahisisha kazi yako kwa kiasi kikubwa.

Hitimisho

Natumai kuwa umepata somo hili kuwa muhimu na kukusaidia kufikia lengo lako. Ikiwa una maswali au maoni yoyote, tafadhali usisite kuyachapisha katika sehemu iliyo hapa chini.