Si të konfiguroni vërtetimin bazë HTTP në Apache
Autentifikimi bazë HTTP përdor emrat e përdoruesve dhe fjalëkalimet për të siguruar rrugë të caktuara të faqes suaj të internetit. Zakonisht përdoret për të bllokuar panelet e administratorit dhe shërbimet mbështetëse, dhe - në lidhje me HTTPS - ofron siguri të mirë për burimet e bazuara në ueb.
Si funksionon vërtetimi HTTP?
Autentifikimi bazë HTTP mbron burime ose rrugë të caktuara me një emër përdoruesi dhe fjalëkalim. Kur një përdorues përpiqet të hyjë në atë burim, shfletuesi i tij hap një dialog duke kërkuar kredencialet përpara se të dërgojë ndonjë gjë. Panelet e administrimit të shumicës së ruterave të shtëpisë janë të siguruara në këtë mënyrë.
Në prapaskenë, kur një përdorues përpiqet të aksesojë një burim të mbrojtur, serveri i dërgon përdoruesit një titull WWW-Authenticate
së bashku me një 401 përgjigje të paautorizuar
. Klienti dërgon përsëri emrin e përdoruesit dhe fjalëkalimin e duhur, të ruajtura në titullin Autorizimi
. Serveri kontrollon kombinimin kundrejt një liste fjalëkalimesh të hash, dhe klienti lejohet të lidhet nëse përputhet.
Autentifikimi bazë HTTP kërkon dërgimin e fjalëkalimeve në tekst të thjeshtë, duhet të keni HTTPS/TLS të konfiguruar në serverin tuaj, ose përndryshe do të jeni të prekshëm ndaj sulmeve nga njeriu në mes. HTTPS do të kodojë lidhjen dhe do të bllokojë këdo që përpiqet të nuhasë fjalëkalimin tuaj. Mund të konfiguroni një certifikatë falas me LetsEncrypt, ose nëse po kërkoni të siguroni një server privat, krijoni dhe nënshkruani vetë një.
Krijoni një skedar fjalëkalimi
Që vërtetimi bazë HTTP të funksionojë, do t'ju duhet një skedar për të vepruar si një bazë të dhënash me emrat e përdoruesve dhe fjalëkalimet e tyre përkatëse. Mund ta krijoni këtë me mjetin htpasswd
, i cili duhet të instalohet me instalimin tuaj Apache përmes bibliotekës apache2-utils
. Nëse nuk është i instaluar, mund ta instaloni nga menaxheri i paketave të shpërndarjes suaj; për sistemet e bazuara në Debian si Ubuntu, kjo do të ishte:
sudo apt-get install apache2-utils
Më pas, mund të gjeneroni skedarin e fjalëkalimit me flamurin -c
. Kjo komandë krijon një skedar të ri fjalëkalimi dhe vendos fjalëkalimin për përdoruesin admin:
sudo htpasswd -c /etc/apache2/.htpasswd admin
Do t'ju kërkohet një fjalëkalim, i cili do të hash dhe do të ruhet në /etc/apache2/.htpasswd
. Nëse dëshironi të shtoni një përdorues tjetër, lini jashtë flamurin -c
për të shtuar një hyrje.
Përndryshe, mund të ndryshoni opsionin AuthBasicProvider
të Apache-së për të lejuar metoda të ndryshme të kontrollit të fjalëkalimeve, si p.sh. nga bazat e të dhënave. Megjithatë, opsioni i parazgjedhur i përdorimit të skedarëve htpasswd
funksionon mirë për shumicën e rasteve, veçanërisht me vetëm disa përdorues.
Konfigurimi i Apache
Ka disa mënyra për të konfiguruar vërtetimin e fjalëkalimit në Apache. Ju ende do të shtoni të njëjtat opsione të konfigurimit, por Apache ruan skedarët e konfigurimit në një sërë vendesh dhe cili prej tyre do të duhet të modifikoni do të varet nga konfigurimi juaj.
Nëse dëshironi të aktivizoni vërtetimin për gjithçka, do të dëshironi të redaktoni skedarin kryesor të konfigurimit:
/etc/apache2/apache2.conf
Nëse në vend të kësaj dëshironi të vërtetoni një dosje specifike, do të dëshironi të redaktoni skedarin e konfigurimit të asaj dosje në sajt-aktivizuar
. Për shembull, konfigurimi i paracaktuar është në:
/etc/apache2/sites-available/000-default.conf
megjithëse e juaja ka të ngjarë të emërtohet në bazë të rrugës. Nëse keni nevojë të krijoni një të re, mund ta kopjoni këtë konfigurim të paracaktuar dhe të ndryshoni DocumentRoot
.
Nëse keni menaxhuar hostimin dhe nuk keni akses në skedarët kryesorë të konfigurimit, ka të ngjarë të modifikoni një skedar .htaccess
, që zakonisht ndodhet në rrënjën e dosjes së faqes tuaj. Për shembull:
/var/www/html/.htaccess
Në çdo rast, do të dëshironi të hapni çfarëdo skedari që i përshtatet rastit tuaj të përdorimit dhe të shtoni sa vijon brenda një blloku drejtorie. Nëse po modifikoni një skedar .htaccess
, blloku
nuk është i nevojshëm, vetëm rreshtat brenda:
<Directory "/var/www/html">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
Cilësimet e vërtetimit do të zbatohen në të gjithë drejtorinë, të cilën zakonisht dëshironi ta vendosni në të gjithë rrënjën e dokumentit, megjithëse mund ta aplikoni atë vetëm në një dosje specifike duke ndryshuar shtegun:
<Directory "/var/www/html/restricted">
</Directory>
Kjo do të vendosë llojin e vërtetimit dhe do të drejtojë Apache drejt skedarit të fjalëkalimit. Nuk ka asnjë kërkesë për ta emërtuar atë ndonjë gjë specifike, kështu që mund të gjeneroni skedarë të ndryshëm fjalëkalimesh për drejtori të ndryshme.
Rinisni Apache për të aplikuar ndryshimet:
sudo service apache2 restart
Kontrolloni rrugën e mbrojtur në shfletuesin tuaj dhe duhet të ndaleni dhe t'ju kërkohet një fjalëkalim. Nëse nuk mund ta ofroni, do t'ju jepet një gabim 401 i paautorizuar
dhe do t'ju refuzohet qasja.
Mbani në mend se fjalëkalimet transmetohen ende në tekst të thjeshtë, kështu që do të dëshironi të aktivizoni HTTPS për Apache.