Den här artikeln är en del av Apache Server Guide-serien:

  • Säkra Apache på Ubuntu - Del 1
  • Säkra Apache på Ubuntu - Del 2
  • Optimera Apache Performance - Del 1
  • Optimera Apache Performance - Del 2
  • Konfigurera namnbaserad Virtualhost Apache
  • Konfigurera IP och portbaserad Virtualhost i Apache
  • Så här ställer du in lösenordskyddswebbkatalogen i Apache
  • Ställa in Apache Server med SSL-support på Ubuntu
  • Konfigurera Fail2ban för att skydda Apache från ett DDOS-attack
  • Så här ställer du upp Webdav med Apache på Ubuntu
  • Övervaka Apache webbserver med Mod_status
  • Hur man skyddar mot DDoS med Mod_evasive på Apache Server

Apache är ett av de mest använda och populära webbservrarna i världen, så det är viktigt att hålla dina webbplatser privata från obehöriga användare. Apache-autentisering kan konfigureras för att kräva att webbplats besökare loggar in med ett användarnamn och lösenord. Det finns många sätt att lösenord skydda kataloger på en Apache webbserver.

Den här artikeln beskriver ett enkelt sätt att lösenord skydda en webbkatalog i Apache med en .htaccess fil.

Obs! Denna handledning görs på en Ubuntu-server med Apache installerad.

Installera Apache Utilities Package

Först måste du installera apache2-utils paketet som tillhandahåller ett verktyg som heter htpasswd att skapa en lösenordsfil.

Du kan installera det genom att köra följande kommando:

 sudo apt-get install apache2-utils 

Konfigurera Apache för att tillåta .htaccess-autentisering

Apache tillåter som standard inte en .htaccess-fil i Ubuntu 14.04. Du måste konfigurera Apache config-filen för att tillåta .htacces-baserad autentisering.

Du kan göra detta genom att redigera Apache-konfigurationsfilen:

 sudo nano /etc/apache2/apache2.conf 

Hitta avsnittet som börjar med Directory "/var/www/html" och ändra raden från AllowOverride none to AllowOverride AuthConfig

 Alternativ Indexes FollowSymLinks TillåtOverride AuthConfig Kräver allt beviljat 

Spara och stäng filen.

Skapa lösenordsfilen

Du kan använda kommandoradsverktyget htpasswd för att skapa en lösenordsfil som Apache kan använda för att verifiera användare. Skapa nu en dold .htpasswd-fil i katalogen "/ etc / apache2".

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

Detta ber dig att ange och bekräfta ett lösenord för authuser1.

Om du vill lägga till en annan användare, lämna sedan -c argumentet med htpasswd kommandot.

Nu, för att skapa en annan autentisering för en andra användare, authuser2:

 sudo htpasswd /etc/apache2/.htpasswd authuser2 

Du kan se användarnamnet och det krypterade lösenordet för varje post genom att köra:

 sudo katt /etc/apache2/.htpasswd 

Du måste ge tillstånd till användaren "www-data" för att kunna läsa .htpasswd-filen.

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

Konfigurera Apache Password Authentication

Du måste skapa en ".htaccess" -fil i webbkatalogen du vill begränsa. I det här exemplet kommer jag att skapa en ".htaccess" -fil i katalogen "/ var / www / html /" för att begränsa hela dokumentrotten.

 sudo nano /var/www/html/.htaccess 

Lägg till följande innehåll:

 AuthType Basic AuthName "Begränsat innehåll" AuthUserFile /etc/apache2/.htpasswd Kräv giltig användare 

Här är vad ovanstående kod betyder:

  • AuthType : Det här alternativet definierar typ av autentisering.
  • AuthName : Detta är innehåll som visas på webbsidan när du uppmanas till användarnamn och lösenord.
  • AuthUserFile : Det här alternativet anger platsen för användaruppgifter.
  • kräva giltig användare : Detta indikerar att endast framgångsrika autentiserade förfrågningar kan ladda sidan.

Spara och stäng filen och starta om Apache för att få ändringarna att träda i kraft.

 sudo /etc/init.d/apache2 omstart 

Testa lösenordsautentisering

Nu på en fjärrmaskin, gå till din webbplats i en webbläsare. Du kommer att få ett användarnamn och ett lösenord för att komma åt webbsidan.

Om du anger rätt användaruppgifter, får du tillgång till innehållet. Om du anger felaktiga användaruppgifter eller träffar "Avbryt" kommer du att se sidan Uautoriserad fel.

Slutsats

Du borde nu ha tillräckligt med kunskap för att upprätta grundläggande autentisering för din Apache webbserver. Kom också ihåg att lösenordsskydd bör kombineras med SSL-kryptering så att dina uppgifter inte skickas till servern i vanlig text.