Category Archives: Tech

Technische dingetjes op allerlei gebied.

Debian Jessie update

Debian Jessie is paar weken geleden Debian Jessie, maar was nog niet aan updaten toegekomen.

Heb het vrij simpel aangepakt. Eerst zorgen dat Wheezy helemaal geupgrade is:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# vi /etc/apt/sources.list
--> change wheezy in jessie

Daarna nogmaals voor de echte upgrade:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Tijdens upgrade een flink aantal configuratiefiles waarvoor ik de vraag kreeg of mijn versie overschreven mocht worden. Hier heb ik altijd nee op geantwoord, dit zorgt ervoor dat ik mijn wijzigingen niet kwijt ben en dat de nieuwe default configuratiefiles apart worden weggeschreven.

Heb eigenlijk geen echt grote problemen ondervonden. Alleen de upgrade van Debian bracht ook een upgrade van Apache 2.2 naar Apache 2.4 met zich mee. Dat zorgde ervoor dat Apache niet direct wou starten omdat een aantal parameters gewijzigd waren. Dat was simpel op te lossen door de aanwijzingen in de Apache logs en de output van apachectl configtest te volgen.

Debian upgrade naar Wheezy

Vandaag de upgrade naar Wheezy gemaakt, met vrij simpel stappenplannetje:

Eerst zorgen dat alles bijgewerkt is:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# vi /etc/apt/sources.list
--> change squeeze to wheezy

Daarna nogmaals voor de echte upgrade:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Enkele configuratiefiles moesten worden nagelopen, maar dat was binnen 10 minuten klaar.

Eigen ca

Al een tijdje loop ik met het idee om een eigen ca te gaan gebruiken. Voor mijn eigen sites vind ik het zonde van het geld om een duur certificaat van een officiele provider aan te schaffen. Mijn eigen ca zit weliswaar niet in elke browser, maar elke bezoeker kan wat mij betreft prima voor zichzelf uitmaken of hij mij vertrouwt ja of nee. Enige dat ik nodig heb is standaard aanwezig op bijna elke unix c.q. linux machine, namelijk Openssl.

Opzetten basisstructuur

Allereerst de opzet van de directory structuur en het aanmaken van de benodigde bestanden. Op zich maakt het niet uit waar het staat. Ik heb er voor nu voor gekozen om het in een subdirectory van de home van root te doen.

# mkdir /root/ssl/ca
# mkdir /root/ssl/ca/certs
# mkdir /root/ssl/ca/private
# mkdir /root/ssl/ca/requests
# touch certindex.txt
# echo '100001' > /root/ssl/ca/serial
# cp /etc/ssl/openssl.cnf /root/ssl/ca/openssl.cnf
# chmod -R 0700 /root/ssl/ca/

Wijzig hierin in ieder geval de volgende variabelen naar de voor u correcte waarden:

dir = /root/ssl/ca
database = $dir/certindex.txt
new_certs_dir = $dir/certs
certificate = $dir/certs/ca.crt
serial = $dir/serial
private_key = $dir/private/ca.key
default_days = 730
default_bits = 2048

Bij [ req_distinguished_name ] Vul de gewenste standaardwaarden in

Aanmaken ca private key en ca root certificaat

Nu we de basis hebben opgezet, kunnen we ons eigen root certificaat aanmaken.

/root/ssl/ca# openssl req -new -x509 -extensions v3_ca \
-keyout private/ca.key -out certs/ca.crt -days 3650 -config ./openssl.cnf

Belangrijk is om bij de common name een herkenbare tekst in te vullen, bijvoorbeeld de eigen naam. Het hoeft geen url te zijn. De naam die we hier invullen, is zichtbaar in de browser als we de lijst met gecertificeerde organisaties bekijken.

Daarnaast is het van belang om een goede passphrase te kiezen als beveiliging voor de private key.

We hebben nu twee bestanden:

  • /root/ssl/ca/private/ca.key: de private key van het root certificaat dat niet in verkeerde handen mag vallen
  • /root/ssl/ca/certs/ca.crt: het root certificaat dat aan de browser wordt aangeboden

Aanmaken certificate request en private key

We hebben nu ons eigen root certificaat dat we kunnen gebruiken om de requests te ondertekenen. Dat doen we met de volgende opdracht:

/root/ssl/ca# openssl req -new -nodes -out requests/www.zomaarr.nl.csr \
-keyout private/www.zomaarr.nl.key -config ./openssl.cnf

Als alles goed gaat, hebben we twee bestanden:

  • /root/ssl/ca/requests/www.zomaarr.nl.csr: het request voor onze site
  • /root/ssl/ca/private/www.zomaarr.nl/key: de private key voor onze site

Ondertekenen certificate request

Nu zijn we zover dat we het request kunnen gaan ondertekenen:

/root/ssl/ca# openssl ca -out certs/www.zomaarr.nl.crt -config ./openssl.cnf \
-infiles requests/www.zomaarr.nl.csr

Omdat we nu de private key van ons root certificaat benaderen, wordt gevraagd om de passphrase die we hebben ingevuld.

We hebben nu een aantal nieuwe bestanden:

  • /root/ssl/ca/certs/www.zomaarr.nl.crt: het certificaat dat op de webserver geplaatst kan worden
  • /root/ssl/ca/certindex.txt: overzicht van de ondertekende requests
  • /root/ssl/ca/serial: dit bestand bevat het serienummer dat de eerstvolgende keer gebruikt gaat worden
  • /root/ssl/ca/100001.pem: voor elk ondertekende request wordt naast het bestand in de -out parameter, ook een certificaat aangemaakt met het serienummer in de naam

Al met al niet heel ingewikkeld, maar het is wel zaak om helder te hebben welk bestand waarvoor dient en een naamgeving te gebruiken die precies aangeeft waar elk bestand voor gebruikt wordt.

Natuurlijk kan het verder uitgebreid worden door een shell scriptje te maken dat als parameter de domeinnaam nodig heeft, zodat via een paar simpele Openssl opdrachten alles automatisch verloopt. Maar dat is voor een volgende keer.

Moeilijke mail termen

Om nu voor eens en voor altijd voor mezelf helder te krijgen wat nu al die verschillende afkortingen betekenen, een overzichtje van de belangrijkste termen die je tegen komt als je zelf een mailserver gaat beheren.

  • MUA Maul User Agent
    Oftewel het programma waarmee je mail kunt ophalen en versturen, bijvoorbeeld Outlook.
  • MTA Mail Transport Agent
    De naam zegt het eigenlijk al, de MTA zorgt voor het transport van de mail, dus van bijvoorbeeld Outlook naar de verzendende en de ontvangende mailserver.
  • MDA Mail Delivery Agent
    De MDA neemt de mail in ontvangst van de MTA en levert het af in de juiste postbus. Hierna kan het dus met een MUA weer opgehaald worden.
  • MSA Mail Sending Agent
    Een MSA is in feite niets meer of minder dan het versturen van mail, bijvoorbeeld providers maken hier gebruik van om voor al hun gebruikers de mail te kunnen versturen. Anders gezegd, het is een MTA met daarbij de taak om voor geauthenticeerde gebruikers mail te versturen.
  • MRA Mail Retrievel Agent
    De MRA is verantwoordelijk voor het ophalen van mail van een externe mailbox, zodat het lokaal gebruikt kan worden. Dit gaat in samenwerking met de MDA.

Verwijderen trojan

Verwijderen van XP Antivirus 2011 van een besmette pc:

Kopieer de volgende regels in een tekstbestand en sla het op als fix.reg

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Classes\.exe]
[-HKEY_CURRENT_USER\Software\Classes\pezfile]
[-HKEY_CLASSES_ROOT\.exe\shell\open\command]

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"

Dan fix.reg uitvoeren door te dubbelklikken, hierdoor wordt het register hersteld en is het weer mogelijk om bestanden op een normale manier te starten.

Nu moeten we zorgen dat we met een goede malware scanner alles volledige te verwijderen, bijv. met Malwarebytes . Doe een volledige scan en laat alle gevonden zaken verwijderen. Daarna is het aan te raden een volledige scan met een goede virusscanner te doen.

Meerdere tabellen verwijderen

Soms is het nodig om een heleboel tabellen in de database te verwijderen. Zo had ik bijvoorbeeld op een oud domein nog de tabellen van phpBB3 staan, een overblijfsel van een testforum dat al lang en breed weg is.

Nu heeft Mysql helaas geen optie om met een wildcard meerdere tabellen te selecteren. Er is dus een omweg nodig. Eerste stap is om een bestandje te maken met sql opdrachten:

for counter in `mysql -u root -p -e "show tables like 'phpbb3_%'" dbname | awk '{print $1}' | grep -v Tables`
do
echo 'drop table '$counter';' >> remove.sql
done

Tweede en laatste stap is om het sql-bestandje uit te voeren:

mysql -u root -p dbname < remove.sql

En met deze twee opdrachten heb ik alle tabellen met prefix phpbb3 verwijderd.

Heet

Het zal vast door het weer komen, maar mijn pc begint steeds meer kuren te vertonen. Vooral als het warm is, dan wordt de pc gevaarlijk heet. Bij het aanzetten begint het al met 60%, zodra ik een aantal programma’s openzet gaat het al naar de 70%. En als ik bijvoorbeeld een film kijk, dan kan het zomaar gebeuren dat het bios ingrijpt en de boel afsluit omdat de 80% grens bereikt is.

Hier moet dus wel iets aan gedaan worden, want werken met een open pc kast met daarop een ventilator gericht is ook niet alles. Aangezien de pc nu al weer 6 jaar oud is, is een nieuwe pc het beste. Gelukkig is mijn huidige monitor nog prima, dus die hoeft niet vervangen te worden. Daarom ben ik afgelopen weekend maar eens de stad in gegaan en mezelf getrakteerd op een spliksplinternieuwe pc. Wel nog met Vista, maar ook met een coupon voor een gratis upgrade naar Windows 7.

Eerder schreef ik al dat ik genoeg had van Ubuntu en op zoek zou gaan naar een andere distributie. Nu heb ik er voor gekozen om gewoon Windows te blijven gebruiken. Spelen met Linux doe ik dan via virtuele machines :).

Resetten Office key

Onlangs moest ik in Windows voor een Office installatie de licentie key wijzigen. Nu had ik alles kunnen verwijderen en opnieuw installeren, maar gelukkig is er een makkelijkere manier:

  1. open regedit (via Start > Uitvoeren > regedit)
  2. navigeer naar de volgende registersleutel:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration\{90110407-6000-11D3-8CFE-0150048383C9}
  3. verwijder de volgende twee waarden:
    – ProductID
    – DigitalProductID
  4. start een onderdeel van Office en vul het juiste serienummer in

Backups van server

Iedereen is zich er denk ik wel van bewust dat het maken van backups erg belangrijk is. Maar het is ook iets dat er vaak bij inschiet. Belangrijkste in mijn geval zijn de websites en de achterliggende databases.

Voor de websites ga ik een keer per week een kopie maken en deze downloaden naar mijn eigen pc. De sites wijzigen qua structuur niet dagelijks, dus vaker dan eenmaal per week is niet nodig. Voor het maken van de archieven heb ik onderstaande scriptje in elkaar geknutseld.

#!/bin/sh
#
# Author:  Roland van der Veen
# Created: 14-07-2009 
#
# Variables
backupdir=/home/roland/backup/sites
date=`date +%Y%m%d`

# Make array for sites to backup
site=( site1.nl site2.nl site3.nl )
sitenum=${#site[@]}

# Make backups
for ((i=0;i<$sitenum;i++));
do
	 tar czf $backupdir/${site[${i}]}_$date.tar.gz -C /var/www/ ${site[${i}]}/
	 chmod 644 $backupdir/${site[${i}]}_$date.tar.gz
	 chown roland.roland $backupdir/${site[${i}]}_$date.tar.gz
done

Voor de databases is het een ander verhaal, hiervan moet elke dag een backup gemaakt worden die automatisch naar een andere server gestuurd wordt. Daar moet nog wat aan gesleuteld worden.