Hoe beveilig ik mijn website?

door op 02 sep 2009, in Helpdesk, Hosting, Programmeren, Tips & trucs

iStock_000007793442XSmallDe overheid is begonnen met een grote campagne: veilig internetten. Zij willen elke Nederlander met een website er op attent maken dat je niet zomaar al je gegevens op een website moet plaatsen, en dat is een goede zaak.

U moet natuurlijk altijd goed oppassen wat  u op internet zet, maar soms wilt u gewoon dat familie en vrienden wel op uw website kunnen komen, en Google en de rest van de wereld niet. Hoe regelt u dat? Dit artikel legt het voor u uit.

Er zijn meerdere mogelijkheden om uw website te beveiligen, en zoals het ook met huizen en kluizen werkt: een combinatie van mogelijkheden is meestal het veiligst. Maar niet altijd het handigst. Allereerst behandel ik voor u:

Het beveiligen van uw website met een wachtwoord

Om uw website met een wachtwoord te beveiligen is een speciaal tekstbestandje nodig dat wordt gelezen en begrepen door de webservers van Mijndomein: een .htaccess bestand. Die punt aan het begin van de bestandsnaam staat er niet voor niets: deze punt verbergt het bestand voor de meeste FTP programma’s, zonder die punt wordt het bestand ook niet gevonden door de webserver. Om dit bestand te kunnen maken en bewerken moet u dan ook eerst uw FTP programma vertellen dat het de ‘verborgen bestanden’ moet tonen. Dit is verschillend voor elk FTP programma, maar in bijvoorbeeld FileZilla gaat dat zo:

fig1klein

Wanneer uw FTP programma de verborgen bestanden goed toont, kunt u beginnen met het maken van het .htaccess bestand. U plaatst dit bestand in de map op uw website die u wilt beveiligen. Dat kan dus de startmap van uw site zijn, maar dan beveiligt u meteen uw hele website, en kunt u ook geen startpagina maken van uw site die openbaar is. Het is dus vaak aan te raden om het bestand in een van de sub-mappen van uw site te plaatsen, die map die u wilt beveiligen. (tip: heeft u meerdere websites bij Mijndomein, en plaatst u het bestand in de map /public/sites, dan beveiligt u meteen alle websites in één keer)

De inhoud van het .htaccess bestand wordt gelezen door de webserver, en moet dus heel exact bepaald zijn – anders zal de computer niet snappen wat er moet gebeuren. Plaats de volgende tekst in het .htaccess bestand:

AuthUserFile /storage/mijndomein/users/xxxxxx/public/sites/.htpasswd
AuthGroupFile /dev/null
AuthName "Login"
AuthType Basic
require valid-user

Met de regels hierboven vertelt u de webserver dat de map waar dit bestand in staat moet worden beveiligt. De eerste regel vertelt de server waar het wachtwoord bestand staat, waarin u de wachtwoorden opslaat voor de verschillende gebruikers van uw site. Hoe dit wachtwoordbestand moet worden gemaakt vertel ik zo, maar eerst dit: om het wachtwoordbestand te kunnen vinden moet de webserver exact weten waar het staat. Daarom moet u de eerste regel nog even aanpassen: waar nu xxxxxxx staat, moet u uw inlognaam zonder de letters ‘md’ neerzetten. Dus is uw FTP inlognaam bij Mijndomein bijvoorbeeld : md003676, dan wordt de eerste regel:

AuthUserFile /storage/mijndomein/users/003676/public/sites/.htpasswd

Voor de rest hoeft er niets aan dit bestand te gebeuren, en kunt u het .htaccess bestandje opslaan.

Nu is het zaak om het wachtwoordbestand te maken. Dit bestand zet u neer op een plek waar de bezoekers van uw website er nooit bij kunnen, de makkelijkste plaats daarvoor is de map /public/sites. De wachtwoorden in dit bestand zijn versleuteld, en om zo’n versleuteld wachtwoord te kunnen maken, heeft u de hulp van een speciale website nodig. Bijvoorbeeld deze website. Als u op die website een wachtwoord invoert, geeft de site een versleutelde tekst terug, die u kunt gebruiken in het wachtwoordbestand.

passwdgen

Het wachtwoordbestand dat u maakt heet .htpasswd (ook alweer met die punt er in) en u plaatst het in de map /public/sites. Voor elke gebruiker die u wilt maken voor uw site, maakt u één regel in dit bestand, en wel als volgt: gebruikernaam dubbele-punt wachtwoord. Dus voor twee gebruikers: admin en ewout ziet het bestandje er als volgt uit:

admin:RwWQ/GHMjQHAk
ewout:zPj7ZjnSgGv5k

Er mogen verder geen spaties bij de dubbele punt, bij de namen of achter de wachtwoorden staan. Bewaar het bestand met de naam .htpasswd, en u bent klaar! De map waarin u eerder het bestand .htaccess heeft geplaatst is beveiligd, en u kunt daarop inloggen met de namen die u in het .htpasswd bestand heeft aangegeven. Nieuwe inlognaam nodig? Gewoon alleen het .htpasswd bestand aanpassen en er kan worden ingelogd.

Nog snel even een tip

Het bestand .htaccess is niet alleen geschikt voor het beveiligen van een map met een wachtwoord, u kunt zelfs een beveiliging maken zodat alleen mensen die uw website bezoeken vanaf een bepaald IP adres op deze site kunnen komen. Zo kunt u bijvoorbeeld de beheer-interface van uw website zo afsluiten dat u er alleen op kunt komen vanaf uw thuis adres, en niemand anders. Dat maakt de beveiliging nog effectiever.

Voor het beveiligen middels een IP adres maakt u de volgende regels in het .htaccess bestand:

Order deny,allow
Deny from all
Allow from 15.3.36.7     # Het ip adres van peter thuis
Allow from 215.35.192.7  # Het ip adres van karel op zijn werk

Het IP adres dat hierboven als voorbeeld wordt genoemd, moet wel worden vervangen door het echte IP adres van peter thuis. Dit IP adres kunt u vinden als peter vanaf thuis de volgende website bezoekt: checkip.dyndns.org

Vul de correcte IP adressen in, sla het bestand op, en uw website of de map op uw website is alleen te bezoeken vanaf bepaalde IP adressen.

En nog een woord van waarschuwing

De bestanden .htaccess en .htpasswd worden gelezen door de webserver van Mijndomein. Dat betekent, dat wanneer er een typefout zit in een van die bestanden, de computer zal laten weten dat hij niet snapt wat er bedoeld wordt. Dat gebeurt door onderstaande pagina:

internal server error

Met deze pagina laat de server weten dat er een fout was in het lezen van het .htaccess of het .htpasswd bestand, en dat hij er niets mee kan. Wilt u de fout weg hebben, geef dan het bestand een andere naam (bijvoorbeeld htaccess.txt) en de computer zal het bestand niet meer lezen. Corrigeer de fouten in het bestand, en geef het weer de naam .htaccess en de computer gaat er weer mee aan de slag.

:, , , , , , ,