Algemeen

Deze FAQ legt uit hoe je de Joomla! /administrator/ directory op Apache servers met de htpasswd utility met een wachtwoord kunt beveiligen. Je kunt deze instructie eenvoudig aanpassen om andere directories te beveiligen. Als je hulp nodig hebt om je .htaccess-bestand te vinden of te maken, begin dan hier.

 

Valkuil (van Apache.org)

Basis authenticatie moet niet worden beschouwd als veilig in de zin van serieuze beveiliging. Hoewel het wachtwoord op de server in een versleiuteld formaat wordt opgeslagen, wordt het in normale tekstvorm van de client naar de server over het netwerk getransporteerd. Iemand die het netwerkverkeer afluistert met bijv. een packet sniffer kan de loginnaam en het wachtwoord lezen tijdens dat het transport.

Niet alleen dat, maar onthoudt dat loginnaam en wachtwoord met elk verzoek worden verzonden, dus niet alleen op het moment als de gebruiker ze voor het eerst heeft ingetypt.  Dus de packet sniffer hoeft niet per se op bepaalde momenten te luisteren, alleen maar lang genoeg om een enkel verzoek over het netwerk te volgen.

Daarbij komt dat ook de content zelf in onversleutelde vorm over het netwerk gaat en dus, als de website gevoelige informatie bevat, zal de packet sniffer toegang tot deze informatie hebben als deze voorbij komt, zelfs als gebruikersnaam en wachtwoord niet zijn gebruikt om toegang tot de website te verkrijgen.

Gebruik basisauthenticatie niet voor iets wat serieuze beveiliging behoeft. Dat is een nadeel voor veel gebruikers, omdat maar weinig mensen de moeite zullen nemen, of de nodige software en/of apparatuur hebben, om wachtwoorden te achterhalen. Niettemin, als iemand naar binnen wil, kost het heel weinig moeite om dat te doen.

Basisauthenticatie over een SSL-verbinding (Secure Socket Layer) echter is veilig, omdat alles dan wordt versleuteld, inclusief gebruikersnaam en wachtwoord.

 

Aanwijzingen

1. Als je onbekend bent met het Apache-hulpprogramma htpasswd wil je wellicht eerst dit lezen. Apache Authentication, Authorization, and Access Control

2. Controleer of je wsebsite is ingericht op het gebruik van .htaccess-bestanden of vraag dit na bij je hosting provider.

3. Bepaal waar je je .htaccess-bestand wilt plaatsen. Omdat Apache alle directories in een bepaald pad recursief (doorwerkend naar beneden) afzoekt naar .htaccess-bestanden, betekent dat hoe hoger in de directorystructuur je het bestand neer zet, hoe meer directories het zal controleren. Als er al een .htaccess-bestand in de betreffende directory staat is het het beste om de nieuwe code daar aan toe te voegen.

4. Bepaal waar je de .htpasswd en .htgroups-bestanden wilt opslaan. Deze bestanden moeten NOOIT openbaar toegankelijk zijn via het internet. Hieronder een voorbeeld directorystructuur met goede locaties voor elke bestand. Merk op dat de /auth/ directory in dit voorbeeld NIET toegankelijk is via het internet.

/home/mysite/public_html/.htaccess 
/home/mysite/auth/.htpasswd/
/home/mysite/auth/.htgroups/


5. Maak de .htpasswd en .htgroups-bestanden aan zoals uitgelegd in de officiële Apache HowTo zoals hiervoor aangegeven.

6. Als er al een .htaccess-bestand bestaat in de gekozen directory maak dan eerst een backupkopie. Als het bestand nog niet bestaat, maak dan een bestand met die naam aan. (Vergeet de . (punt) niet aan het begin van de bestandsnaam).

7. Voeg de volgende code toe aan het .htaccess-bestand. Pas de voorbeeldpaden aan de configuratie van je server aan. Pas de groepsnaam aan met degene die je in stap 5 hebt aangemaakt, als deze afwijkt van het voorbeeld.

AuthUserFile /home/auth/.htpasswd
AuthGroupFile /home/auth/.htgroups
AuthType Basic AuthName \"LWS\"
require group admins


8. Test dit zorgvuldig.

9. Verwijder alle backup .htaccess-bestanbden uit public_html directories.

10. Als je het Apache htpasswd-hulpprogramma niet kunt gebruiken, staat hieronder een gratis online script dat de benodigde bestanden voor je aanmaakt. Je hebt wel de gebruikersnaam, wachtwoord en het pad nodig. Vervlgens doet het script de rest. NB. Voor meer geavanceerde instellingen, zoals het gebruik van groepen, zul je de gegenereerde bestanden moeten aanpassen.

 .htaccess Generator: http://www.webmaster-toolkit.com/htaccess-generator.shtml