Kaip apsaugoti žiniatinklio katalogus „Apache“ slaptažodžiu naudojant .htaccess failą


Kai tvarkote internetinius projektus, dažnai turite apriboti prieigą prie to projekto, kad apsaugotumėte jį nuo išorinio pasaulio. Tam gali būti įvairių priežasčių - pavyzdžiui, norite užkirsti kelią paieškos variklių tikrintuvams pasiekti jūsų svetainę, kol ji vis dar yra kūrimo stadijoje.

Šioje pamokoje aš jums parodysiu, kaip slaptažodžiu apsaugoti skirtingus tinklalapių katalogus „Apache“ interneto serveryje. Yra daug būdų, kaip tai pasiekti, tačiau apžvelgsime du iš jų, kurie dažniausiai naudojami.

Pirmasis metodas konfigūruoja apsaugą slaptažodžiu tiesiogiai „Apache“ konfigūracijos faile, o antrasis naudoja .htaccess failą.

Reikalavimai

Norėdami nustatyti žiniatinklio katalogų apsaugą slaptažodžiu, jums reikės:

  • Veikiantis „Apache“ tinklo serveris
  • „Apache“ konfigūracijos faile turi būti įgalinta „AllowOverride AuthConfig“ direktyva.

Nustatykite „Apache“ apsaugotą slaptažodžiu katalogą

1. Šioje pamokoje saugosime pagrindinį žiniatinklio šakninį katalogą /var/www/html . Norėdami apsaugoti tą katalogą, atidarykite „Apache“ konfigūraciją:

---------------- 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. Suraskite „Apache“ dokumento katalogo šaknį/var/www/html ir pridėkite šiuos dalykus, kaip siūloma:

<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. Išsaugokite failą ir iš naujo paleiskite „Apache“ naudodami šią komandą:

--------------- 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. Dabar naudosime komandą htpasswd, kad sugeneruotume saugomo katalogo vartotojo vardą ir slaptažodį. Ši komanda naudojama tvarkyti vartotojo failus pagrindiniam autentifikavimui.

Bendroji komandos sintaksė yra:

# htpasswd -c filename username

Parinktis -c nurodo failą, kuriame bus užšifruotas slaptažodis, o naudotojo vardas nurodo autentifikavimo vartotoją.

5. Mūsų slaptažodžio failas turi būti ne „Apache“ žiniatinklyje pasiekiamame kataloge, kad jis būtų gerai apsaugotas. Tuo tikslu sukursime naują katalogą:

# mkdir /home/tecmint

6. Po to sugeneruosime savo vartotojo vardą ir slaptažodį, kurie bus saugomi tame kataloge:

# htpasswd -c /home/tecmint/webpass tecmint

Vykdę šią komandą, turėsite du kartus įvesti naujo vartotojo slaptažodį "tecmint" :

Po to turėsime įsitikinti, kad „Apache“ gali skaityti „webpass“ failą. Tuo tikslu turėsite pakeisti to failo nuosavybės teisę naudodami šią komandą:

---------------- 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. Šiuo metu mūsų naujas vartotojas ir slaptažodis yra paruošti. Dabar turime pasakyti „Apache“, kad paprašytų slaptažodžio, kai pasiekiame tikslinį katalogą. Tuo tikslu sukurkite failą .htaccess aplanke/var/www/html:

# vi /var/www/html/.htaccess

Pridėkite šį kodą:

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

8. Dabar išsaugokite failą ir išbandykite sąranką. Atidarykite savo naršyklę ir žiniatinklio naršyklėje įveskite savo IP adresą arba domeno pavadinimą, pavyzdžiui:

http://ip-address

Turėtumėte paprašyti įvesti vartotojo vardą ir slaptažodį:

Įveskite vartotojo vardą ir slaptažodį, kuriuos nustatėte, kad pereitumėte į savo puslapį.

papildomi užrašai

Jei naudojate bendrą prieglobą, greičiausiai neturėsite prieigos prie „Apache“ konfigūracijos failo. Tačiau dauguma prieglobos bendrovių pagal numatytuosius nustatymus įgalino parinktį „AllowOverride All“. Tai reiškia, kad jums tereikės sugeneruoti vartotojo vardą ir slaptažodį, tada pasirinkti katalogą, kurį norite apsaugoti. Tai žymiai palengvina jūsų užduotį.

Išvada

Tikiuosi, kad ši pamoka jums buvo naudinga ir padės jums pasiekti tikslą. Jei turite klausimų ar komentarų, nedvejodami paskelbkite juos toliau pateiktame skyriuje.