Sådan beskyttes webmapper med adgangskode i Apache ved hjælp af .htaccess-filen
Når du administrerer online-projekter, er du ofte nødt til at begrænse adgangen til dette projekt for at beskytte det mod omverdenen. Der kan være forskellige årsager til det - for eksempel vil du forhindre søgemaskine-crawlere i at få adgang til dit websted, mens det stadig er i udviklingsfasen.
I denne vejledning vil jeg vise dig, hvordan du adgangskodebeskyttet forskellige webstedsmapper i Apache-webserveren. Der er mange måder, du kan opnå dette på, men vi gennemgår to af dem, der oftest bruges.
Den første metode konfigurerer adgangskodebeskyttelse direkte i Apache's konfigurationsfil, mens den anden bruger .htaccess-fil.
Krav
For at konfigurere adgangskodebeskyttelse til dine webmapper skal du have:
- En fungerende Apache-webserver
- AllowOverride AuthConfig-direktivet skal være aktiveret i Apache-konfigurationsfilen.
Opsæt Apache adgangskodebeskyttet mappe
1. I denne vejledning beskytter vi den primære webrodkatalog /var/www/html
. For at beskytte den mappe skal du åbne din Apache-konfiguration:
---------------- 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. Find Apache-dokumentmappens rod til/var/www/html, og tilføj følgende ting som foreslået:
<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. Gem filen, og genstart Apache ved hjælp af følgende kommando:
--------------- 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. Nu bruger vi kommandoen htpasswd til at generere brugernavn og adgangskode til vores beskyttede bibliotek. Denne kommando bruges til at administrere brugerfiler til grundlæggende godkendelse.
Den generelle syntaks for kommandoen er:
# htpasswd -c filename username
Indstillingen -c
angiver den fil, der bevarer den krypterede adgangskode, og brugernavn angiver brugeren til godkendelse.
5. Vores adgangskodefil skal placeres ude af Apache's webtilgængelige bibliotek, så den er godt beskyttet. Til dette formål opretter vi en ny mappe:
# mkdir /home/tecmint
6. Derefter genererer vi vores brugernavn og adgangskode, der gemmes i den mappe:
# htpasswd -c /home/tecmint/webpass tecmint
Når du har udført denne kommando, skal du indtaste en adgangskode til vores nye bruger "tecmint"
to gange:
Derefter bliver vi nødt til at sikre os, at Apache er i stand til at læse "webpass" -filen. Til dette formål skal du ændre ejerskabet af den fil med følgende kommando:
---------------- 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. På dette tidspunkt er vores nye bruger og adgangskode klar. Nu skal vi bede Apache om at anmode om adgangskode, når vi får adgang til vores målrettede bibliotek. Til dette formål skal du oprette en fil med navnet .htaccess i/var/www/html:
# vi /var/www/html/.htaccess
Tilføj følgende kode i den:
AuthType Basic AuthName "Restricted Access" AuthUserFile /home/tecmint/webpass Require user tecmint
8. Gem nu filen, og sæt din opsætning på prøve. Åbn din browser, og indtast din IP-adresse eller domænenavn i webbrowseren, for eksempel:
http://ip-address
Du skal blive bedt om at angive brugernavn og adgangskode:
Indtast det brugernavn og den adgangskode, du har angivet for at gå videre til din side.
Ekstra Noter
Hvis du bruger delt hosting, har du sandsynligvis ikke adgang til Apache-konfigurationsfilen. De fleste hostingfirmaer har dog som standard aktiveret indstillingen "AllowOverride All". Dette betyder, at du kun skal generere brugernavnet og adgangskoden og derefter vælge det bibliotek, du vil beskytte. Dette letter din opgave betydeligt.
Konklusion
Jeg håber, at du fandt denne tutorial nyttig og hjælpe dig med at nå dit mål. Hvis du har spørgsmål eller kommentarer, så tøv ikke med at sende dem i afsnittet nedenfor.