Add password to Apache2 directory.

Put something like this in your sitename.conf:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName muziek.wasietsmet.nl
DocumentRoot "/mnt/music"

<Directory "/mnt/music">
  Allow from all
  AuthUserFile /var/www/muziek.wasietsmet.nl/.wachtwoord
  AuthType Basic
  AuthName "muziek"
  Require valid-user
</Directory>

CustomLog "|/usr/bin/rotatelogs /var/www/muziek.wasietsmet.nl/log/access%d-%m-%Y 86400" vhost_combined env=!dontlog
ErrorLog "|/usr/bin/rotatelogs /var/www/muziek.wasietsmet.nl/log/error%d-%m-%Y 86400"

SSLCertificateFile
...

</IfModule>

Use htpasswd -c /var/www/muziek.wasietsmet.nl/.wachtwoord $USERNAME to create the .wachtwoord file.

Juiste rechten bestanden en directories Apache2.

Het volgende is schaamteloos van de site van pcextreme.nl geplukt:

  • mappen / directories: 755
  • bestanden zoals .html, .php: 600
  • uitvoerbare bestanden zoals .cgi, .pl, .sh: 700
  • .htaccess / .htpasswd: 644

Indien u beschikt over SSH toegang, dan kunt u de volgende commando’s uitvoeren om de rechten aan te passen.
Voer deze commando’s uit in uw homedirectory (cd ~)

find . -type d -uid "$UID" -exec chmod -v 755 "{}" \;
find . -type f -uid "$UID" -exec chmod -v 600 "{}" \;
find . -name '.htaccess' -uid "$UID" -exec chmod -v 644 "{}" \;
find . -name '.htpasswd' -uid "$UID" -exec chmod -v 644 "{}" \;
find . -name '*.cgi' -uid "$UID" -exec chmod -v 700 "{}" \;
find . -name '*.pl' -uid "$UID" -exec chmod -v 700 "{}" \;
find . -name '*.sh' -uid "$UID" -exec chmod -v 700 "{}" \;

Wachtwoord op een website zonder .htaccess

We hebben het in dit voorbeeld over een Virtual Host cellie.homeip.net met als root van de site /var/www/cellie.homeip.net/htdocs/ op een Ubuntu Apache2 webserver.

Om bijvoorbeeld de directory /var/www/cellie.homeip.net/htdocs/geheim met een wachtwoord te beveiligen, kopieer je het volgende naar /etc/apache2/sites-enabled/cellie.homeip.net

...
<Directory /var/www/cellie.homeip.net/htdocs/geheim>
AuthUserFile /home/cellie/.htpasswd
AuthType Basic
AuthName "Alleen toegang voor de baas."
Require valid-user
...
</Directory>
...

Maak het bijbehorende .htpasswd bestand in /home/cellie aan met:

htpasswd /home/cellie/.htpasswd cellie

Je moet nu twee keer het nieuwe wachtwoord  van de gebruiker invoeren, daarna word de gebruiker toegevoegd. Als het bestand nog niet bestaat zal htpasswd dat melden, gebruik dan de -c (create) optie:

htpasswd -c /home/cellie/.htpasswd gebruiker

Vergeet niet Apache2 opnieuw te starten.

Wachtwoord op een website

Als je Apache gebruikt als webserver kun je de website of een folder daarop alleen toegankelijk te maken voor bepaalde gebruikers met behulp van een .htaccess bestand en htpasswd.
De site of folder is dan alleen toegankelijk voor gebruikers met het juiste wachtwoord.

Voeg het volgende toe aan het .htaccess bestand in de folder die je wil beveiligen. Maak het bestand aan als het niet bestaat. Vergeet niet de punt voor de naam htaccess. Deze zorgt ervoor dat het een verborgen bestand is. Let hierop in een FTP client.

AuthUserFile /var/.wachtwoord
AuthType Basic
AuthName "My Secret Folder"
Require valid-user

Dit .htaccess bestand kijkt in het bestand /var/.wachtwoord om te bepalen wie er mag inloggen.
Let erop dat het bestand .wachtwoord boven de root van de webserver opgeslagen word!
Is de root van de webserver /var/www, sla dan het bestand niet op in /var/www of een lagere folder maar in /var of de lokale gebruiker folder.
Zo is het bestand wel te lezen door Apache maar onbereikbaar vanaf het internet.

Wil je een gebruiker toevoegen dan gebruik je htpasswd:

htpasswd /var/.wachtwoord gebruiker

Je moet nu twee keer het nieuwe wachtwoord  van de gebruiker invoeren, dan word de gebruiker toegevoegd. Als het bestand nog niet bestaat zal htpasswd dat melden, gebruik dan de -c optie:

htpasswd -c /var/.wachtwoord gebruiker

De -c optie staat voor ‘create’. Het bestand word dan automatisch aangemaakt.
Je kunt natuurlijk een andere naam dan .wachtwoord aan het bestand geven.
Pas dit dan ook aan in het .htaccess bestand.