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.