Debian server beheer

Webalizer: analysetool voor bezoek aan je websites

Webalizer is een programma om de log files van je website mee te analyseren. Je krijgt dan informatie over hits en page views, maar ook over de landen waar je bezoekers vandaan komen en de browsers die ze gebruiken. Om Webalizer te installeren:

apt-get install webalizer

Nu gaan we het configuratiebestand bewerken

cp /etc/webalizer/webalizer.conf /etc/webalizer/webalizer.conf.backup nano /etc/webalizer/webalizer.conf

Zoek de volgende regels in het bestand of pas die aan:

LogFile /var/log/apache2/access.log OutputDir /var/www/webalizer Incremental yes

Nu herstarten we Apache met:

/etc/init.d/apache2 restart

En nu testen...

Nu is het tijd om Webalizer voor de eerste keer handmatig te testen:

cd /etc/webalizer /usr/bin/webalizer

Je krijgt dan een output die er ongeveer zo uit ziet (omdat dit een net geïnstalleerde server is, zie je niet veel verkeer):

Webalizer V2.01-10 (Linux 2.6.32-5-amd64) locale: en_US.UTF-8 Using logfile /var/log/apache2/access.log (clf) Using default GeoIP database Creating output in /var/www/webalizer Hostname for reports is 'versio1' History file not found... Previous run data not found... Saving current run data... [05/30/2013 14:30:15] Generating report for May 2013 Generating summary report Saving history information... 12 records in 0.00 seconds

Vervolgens bezoek je in je browser de link http://[jouwhostnaam]/webalizer en zie je daar een overzicht van de data.

Virtuele hosts

De configuratie zoals we die hierboven ingesteld hebben maakt alleen de webalizer-pagina's voor de default server. Als je ook virtuele hosts gemaakt hebt moet je voor elke website een configuratiebestand voor Webalizer maken. Bijvoorbeeld:

cp /etc/webalizer/webalizer.conf /etc/webalizer/net.weijers.debian.conf nano /etc/webalizer/net.weijers.debian.conf

In dit voorbeeld ga ik uit van de mappen zoals ik die in de pagina over virtuele hosts aangemaakt heb. Als jij je mappen op andere plekken zet, moet je die uiteraard hier invullen. Zoek de volgende regels en pas die aan:

LogFile /var/log/apache2/net.weijers.debian/access.log OutputDir /srv/www/net.weijers.debian/public_html/webalizer HostName debian.weijers.net

Sla het bestand op met control-o en sluit nano af met control-x. De map waarin Webalizer de bestanden voor deze site moet je nog wel zelf maken:

mkdir /srv/www/net.weijers.debian/public_html/webalizer

Nu gaan we weer testen door de crontab van webalizer handmatig te draaien:

/etc/cron.daily/webalizer

Je kunt kijken of het werkt door te controleren of er bestanden aangemaakt zijn in de map die je net maakte:

ls /srv/www/net.weijers.debian/public_html/webalizer

Als die map leeg is, is er iets mis gegaan. Uiteraard kun je ook testen door in je webbrowser naar http://[jouwdomein]/webalizer te gaan.

Als het werkt moet je nu voor alle je websites deze stappen doorlopen, dus voor ieder site een eigen configuratiebestand maken. De Webalizer crontab verwerkt alle configuratiebestanden die in /etc/webalizer staan.

Statistieken beveiligen

Met de bovenstaande methode zijn je Webalizer documenten voor iedereen toegankelijk. Dat hoeft geen probleem te zijn maar je kunt ook goede redenen hebben om dat af te sluiten. Of je kunt gewoon vinden dat het niemand een snars aan gaat. Om de map van webalizer op ip-adres te beveiligen maak je een .htaccess bestand:

nano /srv/www/net.weijers.debian/public_html/webalizer/.htaccess

In dat bestand zet je de volgende regels, waarin je uiteraard jouw ip-adressen opneemt (in dit voorbeeld gebruik ik 10.11.12.13 en 10.11.12.14):

Order Deny,Allow Deny from all Allow from 10.11.12.13 10.11.12.14

Het is ook mogelijk de map met een wachtwoord te beveiligen. Je maakt een .htaccess bestand zoals hierboven beschreven maar daarin zet je dan:

AuthUserFile /srv/www/net.weijers.debian/public_html/webalizer/.htpasswd AuthType Basic AuthName "Webalizer" Require valid-user

sla het bestand op met control+o en sluit nano af met control+x. Je maakt nu een nieuw .htpassword bestand aan en zet daar de gebruiker jan in met deze opdracht:

htpasswd -c /srv/www/net.weijers.debian/public_html/webalizer/.htpasswd jan

-c betekent 'create' dus maak een nieuw bestand. Daarna volgt de locatie van het bestand en vervolgens de gebruikersnaam. htpasswd antwoord met:

New password: Re-type new password: Adding password for user jan

Je voert twee maal het wachtwoord voor de nieuwe gebruiker in. Als je vervolgens naar http://[jouwdomein]/webalizer kun je de gekozen gebruikersnaam en het gekozen wachtwoord gebruiken om de statistieken te bekijken.

Met de -c optie maakte je een nieuw bestand aan. Als je nog een gebruiker toe wilt voegen herhaal je de htpasswd opdracht maar dan zonder -c:

htpasswd /srv/www/net.weijers.debian/public_html/webalizer/.htpasswd piet

Overigens kun je bovenstaande methodes gebruiken om elke willekeurige map op je webserver te beveiligen.