Kako z geslom zaščititi spletne imenike v Apacheju z datoteko .htaccess


Ko upravljate spletne projekte, morate pogosto omejiti dostop do tega projekta, da ga zaščitite pred zunanjim svetom. Razlogi za to so lahko različni - na primer želite pajkom iskalnikov preprečiti dostop do vašega spletnega mesta, medtem ko je to še v fazi razvoja.

V tej vadnici vam bom pokazal, kako zaščititi z geslom imenike različnih spletnih mest v spletnem strežniku Apache. To lahko dosežete na veliko načinov, vendar bomo pregledali dva najpogosteje uporabljena.

Prva metoda konfigurira zaščito z geslom neposredno v Apachejevi konfiguracijski datoteki, druga pa datoteko .htaccess.

Zahteve

Če želite nastaviti zaščito z geslom za svoje spletne imenike, morate imeti:

  • Delujoči spletni strežnik Apache
  • V konfiguracijski datoteki Apache mora biti omogočena direktiva AllowOverride AuthConfig.

Nastavite imenik z zaščitenim geslom Apache

1. V tej vadnici bomo zaščitili glavni spletni korenski imenik /var/www/html . Če želite zaščititi ta imenik, odprite konfiguracijo Apacheja:

---------------- 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. Poiščite korenski imenik dokumenta Apache za/var/www/html in dodajte naslednje stvari, kot je predlagano:

<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. Shranite datoteko in znova zaženite Apache z naslednjim ukazom:

--------------- 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. Zdaj bomo z ukazom htpasswd ustvarili uporabniško ime in geslo za naš zaščiteni imenik. Ta ukaz se uporablja za upravljanje uporabniških datotek za osnovno preverjanje pristnosti.

Splošna sintaksa ukaza je:

# htpasswd -c filename username

Možnost -c določa datoteko, ki bo obdržala šifrirano geslo, uporabniško ime pa uporabnika za preverjanje pristnosti.

5. Naša datoteka z geslom mora biti nameščena iz Apachejevega spletnega imenika, da bo dobro zaščitena. V ta namen bomo ustvarili nov imenik:

# mkdir /home/tecmint

6. Po tem bomo ustvarili svoje uporabniško ime in geslo, ki bosta shranjeni v tem imeniku:

# htpasswd -c /home/tecmint/webpass tecmint

Ko izvedete ta ukaz, boste morali dvakrat vnesti geslo za našega novega uporabnika \"tecmint \" :

Po tem bomo morali zagotoviti, da bo Apache lahko prebral datoteko "webpass". V ta namen boste morali spremeniti lastništvo te datoteke z naslednjim ukazom:

---------------- 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. Na tem mestu sta naš novi uporabnik in geslo pripravljena. Zdaj moramo Apacheju naročiti, naj zahteva geslo pri dostopu do ciljanega imenika. V ta namen v/var/www/html ustvarite datoteko .htaccess:

# vi /var/www/html/.htaccess

Vanjo dodajte naslednjo kodo:

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

8. Zdaj shranite datoteko in preizkusite svojo nastavitev. Odprite brskalnik in v spletni brskalnik vnesite naslov IP ali ime domene, na primer:

http://ip-address

Pozvani boste k vnosu uporabniškega imena in gesla:

Vnesite uporabniško ime in geslo, ki ste ju nastavili za nadaljevanje na svojo stran.

Dodatne opombe

Če uporabljate skupno gostovanje, najverjetneje ne boste imeli dostopa do konfiguracijske datoteke Apache. Vendar je večina družb za gostovanje privzeto omogočila možnost »AllowOverride All«. To pomeni, da boste morali ustvariti samo uporabniško ime in geslo ter nato izbrati imenik, ki ga želite zaščititi. To vam znatno olajša nalogo.

Zaključek

Upam, da se vam je ta vadnica zdela koristna in vam pomagala doseči svoj cilj. Če imate kakršna koli vprašanja ali komentarje, jih ne oklevajte objaviti v spodnjem oddelku.