Denne artikkelen er en del av Apache Server Guide-serien:

  • Sikre Apache på Ubuntu - Del 1
  • Sikre Apache på Ubuntu - Del 2
  • Optimalisering av Apache Performance - Del 1
  • Optimalisering av Apache Performance - Del 2
  • Sette opp navnbasert Virtualhost Apache
  • Sette opp IP og portbasert Virtualhost i Apache
  • Hvordan sette opp passordbeskytt webkatalogen i Apache
  • Sette opp Apache Server med SSL-støtte på Ubuntu
  • Konfigurere Fail2ban for å beskytte Apache fra et DDOS-angrep
  • Hvordan sette opp Webdav med Apache på Ubuntu
  • Overvåk Apache Web Server ved hjelp av Mod_status
  • Slik beskytter du mot DDoS med Mod_evasive på Apache Server

Apache er en av de mest brukte og populære webserverne i verden, så det er viktig å holde nettsteder private fra uautoriserte brukere. Apache-autentisering kan konfigureres for å kreve at besøkende på nettstedet logger på med brukernavn og passord. Det er mange måter du kan passordbeskytte kataloger under en Apache webserver.

Denne artikkelen beskriver en enkel måte å passordbeskytte et webkatalog i Apache ved hjelp av en .htaccess fil.

Merk : denne opplæringen er utført på en Ubuntu-server med Apache installert.

Installere Apache Utilities Package

Først må du installere apache2-utils pakken som inneholder et verktøy kalt htpasswd å opprette en passordfil.

Du kan installere den ved å kjøre følgende kommando:

 sudo apt-get install apache2-utils 

Konfigurer Apache til å tillate .htaccess-godkjenning

Apache tillater ikke bruk av en .htaccess-fil i Ubuntu 14.04. Du må konfigurere Apache config-filen for å tillate .htacces-basert autentisering.

Du kan gjøre dette ved å redigere Apache-konfigurasjonsfilen:

 sudo nano /etc/apache2/apache2.conf 

Finn delen som begynner med Directory "/var/www/html" og endre linjen fra AllowOverride none to AllowOverride AuthConfig

 Alternativer Indekser FølgSymLinks TillatOverride AuthConfig Krev all gitt 

Lagre og lukk filen.

Opprett passordfilen

Du kan bruke htpasswd til å opprette en passordfil som Apache kan bruke til å autentisere brukere. Opprett nå en skjult .htpasswd-fil i konfigurasjonsmappen "/ etc / apache2".

 sudo htpasswd -c /etc/apache2/.htpasswd authuser1 

Dette vil be deg om å levere og bekrefte et passord for authuser1.

Hvis du vil legge til en annen bruker, legger du ut argumentet -c med htpasswd kommandoen.

Nå, for å opprette en annen autentisering for en annen bruker, authuser2:

 sudo htpasswd /etc/apache2/.htpasswd authuser2 

Du kan se brukernavnet og kryptert passord for hver post ved å kjøre:

 sudo cat /etc/apache2/.htpasswd 

Du må gi tillatelse til "www-data" -brukeren for å kunne lese .htpasswd-filen.

 sudo chown www-data: www-data /etc/httpd/.htpasswd sudo chmod 0660 /etc/httpd/.htpasswd 

Konfigurer Apache Password Authentication

Du må opprette en ".htaccess" -fil i webkatalogen du ønsker å begrense. I dette eksemplet vil jeg opprette en ".htaccess" -fil i katalogen "/ var / www / html /" for å begrense hele dokumentrotten.

 sudo nano /var/www/html/.htaccess 

Legg til følgende innhold:

 AuthType Basic AuthName "Begrenset innhold" AuthUserFile /etc/apache2/.htpasswd Krev gyldig bruker 

Her er hva koden ovenfor betyr:

  • AuthType : Dette alternativet definerer typen autentisering.
  • AuthName : Dette er innhold som vises på nettsiden når du blir bedt om brukernavn og passord.
  • AuthUserFile : Dette alternativet angir plasseringen av brukerens legitimasjon.
  • krever gyldig bruker : Dette indikerer at bare vellykkede autentiserte forespørsler kan laste siden.

Lagre og lukk filen, og start Apache igjen for å gjøre disse endringene i kraft.

 sudo /etc/init.d/apache2 restart 

Testing av passordautentisering

Nå på en ekstern maskin, få tilgang til nettstedet ditt i en nettleser. Du blir bedt om å oppgi et brukernavn og passord for å få tilgang til nettsiden.

Hvis du oppgir de riktige brukeropplysningene, får du tilgang til innholdet. Hvis du oppgir feil brukeropplysningene eller klikker "Avbryt", vil du se den uautoriserte feilsiden.

Konklusjon

Du bør nå ha nok kunnskap til å sette opp grunnleggende godkjenning for Apache webserveren din. Husk også at passordbeskyttelse bør kombineres med SSL-kryptering, slik at legitimasjonene dine ikke sendes til serveren i vanlig tekst.