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.