Hvordan passordbeskytte nettkataloger i Apache ved å bruke .htaccess-fil


Når du administrerer nettbaserte prosjekter, må du ofte begrense tilgangen til det prosjektet for å beskytte det mot omverdenen. Det kan være forskjellige årsaker til det – for eksempel vil du hindre søkemotorsøkeprogrammer fra å få tilgang til nettstedet ditt mens det fortsatt er i utviklingsfasen.

I denne opplæringen skal jeg vise deg hvordan du passordbeskytter forskjellige nettstedkataloger i Apache-nettserveren. Det er mange måter du kan oppnå dette på, men vi skal gjennomgå to av dem som er mest brukt.

Den første metoden konfigurerer passordbeskyttelse direkte i Apaches konfigurasjonsfil, mens den andre bruker .htaccess-filen.

Krav

For å sette opp passordbeskyttelse for nettkatalogene dine, må du ha:

  • En fungerende Apache-webserver
  • AllowOverride AuthConfig-direktivet må være aktivert i Apache-konfigurasjonsfilen.

Sett opp Apache passordbeskyttet katalog

1. For denne opplæringen vil vi beskytte hovednettrotkatalogen /var/www/html. For å beskytte den katalogen, åpne Apache-konfigurasjonen:

---------------- 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. Finn Apache Document-katalogroten for /var/www/html og legg til følgende ting som foreslått:

På Apache 2.2 versjon

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

På Apache 2.4 versjon

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Lagre filen og start Apache på nytt ved å bruke 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. Nå skal vi bruke htpasswd-kommandoen til å generere brukernavn og passord for vår beskyttede katalog. Denne kommandoen brukes til å administrere brukerfiler for grunnleggende autentisering.

Den generelle syntaksen til kommandoen er:

htpasswd -c filename username

Alternativet -c spesifiserer filen som skal beholde det krypterte passordet, og brukernavn spesifiserer brukeren for autentiseringen.

5. Passordfilen vår må være plassert utenfor Apaches netttilgjengelige katalog slik at den er godt beskyttet. For det formålet vil vi opprette en ny katalog:

mkdir /home/tecmint

6. Etter det vil vi generere brukernavnet og passordet vårt som vil bli lagret i den katalogen:

htpasswd -c /home/tecmint/webpass tecmint

Når du har utført denne kommandoen, må du skrive inn et passord for vår nye bruker "tecmint" to ganger:

Etter det må vi sørge for at Apache er i stand til å lese «webpass»-filen. For det formålet må du endre eierskapet til den filen 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 tidspunktet er vår nye bruker og passord klar. Nå må vi fortelle Apache å be om passord når vi får tilgang til vår målrettede katalog. For det formålet, opprett en fil kalt .htaccess i /var/www/html:

vi /var/www/html/.htaccess

Legg til følgende kode i den:

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

8. Lagre nå filen og test oppsettet ditt. Åpne nettleseren din og skriv inn din IP-adresse eller domenenavn i nettleseren, for eksempel:

http://ip-address

Du bør bli bedt om brukernavn og passord:

Skriv inn brukernavnet og passordet du har angitt for å fortsette til siden din.

Ytterligere merknader

Hvis du bruker delt hosting, vil du sannsynligvis ikke ha tilgang til Apache-konfigurasjonsfilen. De fleste vertsselskaper har imidlertid aktivert «AllowOverride All»-alternativet som standard. Dette betyr at du bare trenger å generere brukernavn og passord og deretter velge katalogen du ønsker å beskytte. Dette letter oppgaven din betydelig.

Konklusjon

Jeg håper at du fant denne opplæringen nyttig og hjelper deg å nå målet ditt. Hvis du har spørsmål eller kommentarer, ikke nøl med å legge dem inn i delen nedenfor.