Jinsi ya Kulinda Saraka za Wavuti katika Nginx


Wasimamizi wa miradi ya wavuti mara nyingi wanahitaji kulinda kazi zao kwa njia moja au nyingine. Mara nyingi watu huuliza jinsi ya kuweka nenosiri kulinda tovuti yao ikiwa ingali inatengenezwa.

Katika somo hili, tutakuonyesha mbinu rahisi, lakini faafu jinsi ya saraka ya wavuti iliyolindwa na nenosiri unapoendesha Nginx kama seva ya wavuti.

Iwapo unatumia seva ya wavuti ya Apache, unaweza kuangalia mwongozo wetu kwa nenosiri linalolinda saraka ya wavuti:

  1. Nenosiri Linda Saraka za Wavuti katika Apache

Ili kukamilisha hatua katika somo hili, utahitaji kuwa na:

  • Seva ya wavuti ya Nginx imesakinishwa
  • Ufikiaji wa mizizi kwa seva

Hatua ya 1: Unda Mtumiaji na Nenosiri

1. Ili kulinda saraka yetu ya wavuti, tutahitaji kuunda faili ambayo itakuwa na jina letu la mtumiaji na nenosiri lililosimbwa kwa njia fiche.

Unapotumia Apache, unaweza kutumia matumizi ya htpasswd. Ikiwa una matumizi hayo yaliyosakinishwa kwenye mfumo wako, unaweza kutumia amri hii kutengeneza faili ya nenosiri:

# htpasswd -c /path/to/file/.htpasswd username

Unapoendesha amri hii, utaulizwa kuweka nenosiri kwa mtumiaji hapo juu na baada ya hapo faili ya .htpasswd itaundwa kwenye saraka maalum.

2. Ikiwa huna chombo hicho kilichosakinishwa, unaweza kuunda faili ya .htpasswd kwa manually. Faili inapaswa kuwa na syntax ifuatayo:

username:encrypted-password:comment

Jina la mtumiaji ambalo utatumia linategemea wewe, chagua chochote unachopenda.

Sehemu muhimu zaidi ni njia ambayo utazalisha nenosiri kwa mtumiaji huyo.

Hatua ya 2: Tengeneza Nenosiri Lililosimbwa

3. Ili kuunda nenosiri, tumia chaguo la kukokotoa la “crypt” lililounganishwa la Perl.

Hapa kuna mfano wa amri hiyo:

# perl -le 'print crypt("your-password", "salt-hash")'

Mfano wa maisha halisi:

# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Sasa fungua faili na uweke jina lako la mtumiaji na lililotolewa kwa kamba, likitenganishwa na semicolon.

Hivi ndivyo jinsi:

# vi /home/tecmint/.htpasswd

Weka jina lako la mtumiaji na nenosiri. Katika kesi yangu inaonekana kama hii:

tecmint:1xV2Rdw7Q6MK.

Hifadhi faili kwa kugonga Esc ikifuatiwa na :wq.

Hatua ya 3: Sasisha Usanidi wa Nginx

4. Sasa fungua na uhariri faili ya usanidi ya Nginx inayohusishwa na tovuti unayofanyia kazi. Kwa upande wetu tutatumia faili chaguo-msingi kwa:

# vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
# vi /etc/nginx/nginx.conf                [For CentOS based systems]


# vi /etc/nginx/sites-enabled/default     [For Debian based systems]

Katika mfano wetu, tutalinda nenosiri la saraka ya nginx, ambayo ni: /usr/share/nginx/html.

5. Sasa ongeza sehemu ya mistari miwili ifuatayo chini ya njia unayotaka kulinda.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Sasa hifadhi faili na uanze tena Nginx na:

# systemctl restart nginx
OR
# service nginx restart

6. Sasa nakili/ubandike anwani hiyo ya IP kwenye kivinjari chako na unapaswa kuulizwa nenosiri:

Ni hayo tu! Saraka yako kuu ya wavuti sasa imelindwa. Unapotaka kuondoa ulinzi wa nenosiri kwenye tovuti, ondoa tu mistari miwili ambayo umeongeza kwenye faili ya .htpasswd au tumia amri ifuatayo ili kuondoa mtumiaji aliyeongezwa kwenye faili ya nenosiri.

# htpasswd -D /path/to/file/.htpasswd username