Archive for the ‘Apparatuur’ Category

Presentatie op T-DOSE 2010

Monday, November 8th, 2010

Dit weekeinde heb ik een presentatie op T-DOSE gehouden over onder andere LUKS met Ubuntu. Was leuk! Ontstond ook een interessante discussie, met name over het beleid van de Verenigde Staten van Amerika en China aangaande het beveiligen van je gegevens.

Two-factor LUKS met Ubuntu 10.10

Tuesday, October 19th, 2010

De post van laatst over two-factor LUKS met Ubuntu blijkt ook prima te werken met Ubuntu 10.10 “Maverick Meerkat”.

Intel Poulsbo

Friday, October 8th, 2010

Enige tijd geleden heb ik wat geschreven over een Asus EeePC 1101HA “Seashell” en het configureren van de videokaart van het apparaat onder Ubuntu Linux. Helaas blijkt er nog meer nodig als je óók nog eens met LUKS aan de slag gaat…

Ga even uit van het stappenplan Installing Debian Squeeze on 1101H zoals genoemd op de Debian Wiki. Maak echter een wat uitgebreidere versie van /etc/grub.d/01_915resolution:

echo insmod 915resolution
echo 915resolution 58 1366 768 32
echo insmod gfxterm
echo insmod vbe
echo terminal_output gfxterm

Start eens opnieuw op en sluit X.org af. Genereer vervolgens een nieuwe configuratie:

$ sudo X -configure && sudo mv xorg.conf.new /etc/X11/xorg.conf

Je kunt nu X.org weer opstarten en gebruik maken van de 1366×768 resolutie. OpenGL werkt niet super, maar de nu gebruikte framebuffer is wat sneller dan VESA.

Nieuwe PGP- en SSH-sleutel

Thursday, July 29th, 2010

Zojuist heb ik een nieuwe PGP- en SSH-sleutel in gebruik genomen. Ziehier de vingerafdruk van de nieuwe PGP-sleutel:

$ gpg --fingerprint 0xF21901EE
pub   3072R/F21901EE 2010-07-29 [expires: 2015-07-28]
 Key fingerprint = D67C 1746 9547 95E8 9BC8  573E 8329 D25F F219 01EE
uid                  Kornelis (Kees) Hendricus Franciscus Meijs <kees@kumina.nl>
uid                  Kornelis (Kees) Hendricus Franciscus Meijs <post@keesmeijs.nl>
uid                  Kornelis (Kees) Hendricus Franciscus Meijs <kees@bommelnetworks.nl>
sub   3072R/0FB8D05C 2010-07-29 [expires: 2015-07-28]
sub   3072R/B4F99451 2010-07-29 [expires: 2015-07-28]

En van de SSH-sleutel:

$ ssh-add -l
3072 8c:36:b2:e0:4f:9c:b3:aa:bf:3f:31:cc:24:19:ed:e7 cardno:00050000057D (RSA)

Two-factor LUKS met Ubuntu

Wednesday, July 28th, 2010

In Ubuntu 10.04 LTS “Lucid Lynx” wordt LUKS standaard prima ondersteund. Dit is een erg handige functionaliteit, zeker als je naar wat extra beveiliging op zoek bent. Maar wat als je nu naar een oplossing met two-factor op zoek bent?

We gebruiken op de zaak al een hele tijd OpenPGP-kaarten om gegevens van met name onze klanten te beveiligen. Het leek me wel wat om de onlangs beschikbaar gekomen USB-versie van de OpenPGP-kaart te gebruiken in combinatie met LUKS. Enerzijds erg practisch omdat je alleen een PIN-code nodig hebt om je systeem te starten en anderzijds érg veilig (zeker met een 2048- of 3072-bits sleutel).

Gemakshalve doe ik even de aanname dat je al een OpenPGP-kaart hebt (al dan niet een USB-versie) en weet hoe je met bijvoorbeeld GnuPG om moet gaan. Mooi, maar hoe gaat de rest?

Ubuntu 10.04 Live DVD

Start je systeem op van een Ubuntu Live CD of Live DVD en kies voor Try Ubuntu without installing. Open als het systeem is opgestart een nieuwe Terminal en maak nieuwe partities op je vaste schijf (of SSD…) aan.

$ sudo cfdisk -z

Zelf heb ik een partitie van 250 MiB gemaakt voor /boot en de rest vrijgehouden om met LUKS te beveiligen:

$ sudo fdisk -l

Disk /dev/sda: 251.0 GB, 250999144448 bytes
64 heads, 32 sectors/track, 239371 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00092b99

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         238      243696   83  Linux
/dev/sda2             239      239371   244872192   da  Non-FS data

Installeer vervolgens de benodigde pakketten voor LUKS en LVM:

$ sudo apt-get --force-yes --yes install cryptsetup lvm2
Reading package lists... Done
Building dependency tree
Reading state information... Done
cryptsetup is already the newest version.
The following extra packages will be installed:
  libdevmapper-event1.02.1 watershed
The following NEW packages will be installed:
  libdevmapper-event1.02.1 lvm2 watershed
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/463kB of archives.
After this operation, 1,266kB of additional disk space will be used.
Selecting previously deselected package libdevmapper-event1.02.1.
(Reading database ... 165628 files and directories currently installed.)
Unpacking libdevmapper-event1.02.1 (from .../libdevmapper-event1.02.1_1.02.39-1ubuntu4_amd64.deb) ...
Selecting previously deselected package watershed.
Unpacking watershed (from .../watershed_5_amd64.deb) ...
Selecting previously deselected package lvm2.
Unpacking lvm2 (from .../lvm2_2.02.54-1ubuntu4_amd64.deb) ...
Processing triggers for man-db ...
Setting up libdevmapper-event1.02.1 (2:1.02.39-1ubuntu4) ...

Setting up watershed (5) ...
update-initramfs is disabled since running on read-only media

Setting up lvm2 (2.02.54-1ubuntu4) ...
update-initramfs is disabled since running on read-only media

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

Laad nu de benodigde modules in voor LUKS, AES en XTS:

$ sudo modprobe dm-crypt aes xts

Genereer een sleutel om het LUKS-volume straks mee te beveiligen:

$ dd if=/dev/urandom | tr -d '\n' | dd bs=1 count=64 of=/dev/shm/luks-key.txt
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000253039 s, 253 kB/s

Maak een nieuw LUKS-volume:

$ sudo cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda2 /dev/shm/luks-key.txt

WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.

Are you sure? (Type uppercase yes): YES

Start vervolgens het LUKS-volume:

$ sudo cryptsetup luksOpen -d /dev/shm/luks-key.txt /dev/sda2 crypto
Key slot 0 unlocked.

De flexibiliteit van LVM is wenselijk. Dit kan bijvoorbeeld zo:

$ sudo pvcreate /dev/mapper/crypto
  Physical volume "/dev/mapper/crypto" successfully created

$ sudo vgcreate vg /dev/mapper/crypto
  Volume group "vg" successfully created

$ sudo lvcreate -L 4G -n vg/swap
  Logical volume "swap" created

$ sudo lvcreate -L 40G -n vg/root
  Logical volume "root" created

$ sudo lvs
  LV   VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  root vg   -wi-a- 40.00g
  swap vg   -wi-a-  4.00g

De installatieprogrammatuur raakt enigszins in de war door bovengenoemde voorbeeld, dus is het noodzakelijk om alvast te formatteren:

$ sudo mkswap -f /dev/vg/swap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=ac1c5001-428b-49d3-9c1e-ce213a4b8b9e

$ sudo mkfs.ext3 /dev/vg/root
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Start nu het installatieprogramma op:

Pictogram installatie Ubuntu

Het installatieproces verloopt zoals je gewend bent:

Installatie Ubuntu

Kies een taal, en vervolgens je tijdzone:

Installatie Ubuntu

Kies de juiste instellingen voor je toetsenbord:

Installatie Ubuntu

Kies vervolgens voor handmatig partitioneren:

Installatie Ubuntu

Let vervolgens goed op dat je de juiste logische volumes en /boot gebruikt:

Installatie Ubuntu

Geef je persoonlijke gegevens in:

Installatie Ubuntu

Klik nog even op Advanced… om te controleren of alles goed gaat:

Installatie Ubuntu

LET OP! Als de installatie is voltooid, sluit het scherm dan niet af:

Installatie Ubuntu

Open een nieuwe Terminal en voer het volgende uit:

$ sudo mount -o bind /proc /target/proc
$ sudo mount -o bind /dev /target/dev
$ sudo mount -o bind /dev/pts /target/dev/pts
$ sudo mount -o bind /sys /target/sys

Parkeer vervolgens je pubring.gpg en secring.gpg ergens en codeer /dev/shm/luks-key.txt. Het resultaat /dev/shm/luks-key.txt.gpg hebben zometeen nog nodig.

Haal decrypt_luks.sh en gpg_luks op en parkeer ook deze bestanden even. Zet vervolgens de bestanden op de juiste plek neer:

$ sudo mkdir /target/etc/gpg_luks
$ sudo cp decrypt_luks.sh /target/usr/local/sbin
$ sudo cp gpg_luks /target/etc/initramfs-tools/hooks
$ sudo cp pubring.gpg /target/etc/gpg_luks
$ sudo cp secring.gpg /target/etc/gpg_luks
$ sudo cp /dev/shm/luks-key.txt.gpg /target/etc/gpg_luks

Zet ook de permissies goed:

$ sudo chmod 700 /target/etc/gpg_luks
$ sudo chmod 700 /target/usr/local/sbin/decrypt_luks.sh
$ sudo chmod 755 /target/etc/initramfs-tools/hooks/gpg_luks
$ sudo chmod 600 /target/etc/gpg_luks/pubring.gpg
$ sudo chmod 600 /target/etc/gpg_luks/secring.gpg
$ sudo chmod 600 /target/etc/gpg_luks/luks-key.txt.gpg

En maak een crypttab zoals bijvoorbeeld:

$ cat /target/etc/crypttab
# <target name> <source device>         <key file>      <options>
crypto /dev/sda2 none luks,keyscript=/usr/local/sbin/decrypt_luks.sh

Op het nieuwe systeem ontbreken helaas een paar benodigde pakketten. Installeer deze als volgt:

$ sudo chroot /target su -
# apt-get install --force-yes --yes cryptsetup lvm2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libdevmapper-event1.02.1 watershed
The following NEW packages will be installed:
  cryptsetup libdevmapper-event1.02.1 lvm2 watershed
0 upgraded, 4 newly installed, 0 to remove and 242 not upgraded.
Need to get 606kB of archives.
After this operation, 1,831kB of additional disk space will be used.
Get:1 http://nl.archive.ubuntu.com/ubuntu/ lucid/main cryptsetup 2:1.1.0~rc2-1ubuntu13 [143kB]
Get:2 http://nl.archive.ubuntu.com/ubuntu/ lucid/main libdevmapper-event1.02.1 2:1.02.39-1ubuntu4 [28.5kB]
Get:3 http://nl.archive.ubuntu.com/ubuntu/ lucid/main watershed 5 [11.5kB]
Get:4 http://nl.archive.ubuntu.com/ubuntu/ lucid/main lvm2 2.02.54-1ubuntu4 [423kB]
Fetched 606kB in 1s (591kB/s)
Selecting previously deselected package cryptsetup.
(Reading database ... 124603 files and directories currently installed.)
Unpacking cryptsetup (from .../cryptsetup_2%3a1.1.0~rc2-1ubuntu13_amd64.deb) ...
Selecting previously deselected package libdevmapper-event1.02.1.
Unpacking libdevmapper-event1.02.1 (from .../libdevmapper-event1.02.1_2%3a1.02.39-1ubuntu4_amd64.deb) ...
Selecting previously deselected package watershed.
Unpacking watershed (from .../archives/watershed_5_amd64.deb) ...
Selecting previously deselected package lvm2.
Unpacking lvm2 (from .../lvm2_2.02.54-1ubuntu4_amd64.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up cryptsetup (2:1.1.0~rc2-1ubuntu13) ...
update-initramfs: deferring update (trigger activated)

Setting up libdevmapper-event1.02.1 (2:1.02.39-1ubuntu4) ...

Setting up watershed (5) ...
update-initramfs: deferring update (trigger activated)

Setting up lvm2 (2.02.54-1ubuntu4) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-21-generic
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

Om zeker te weten dat het systeem straks goed op kan starten:

# update-initramfs -c -k all
update-initramfs: Generating /boot/initrd.img-2.6.32-21-generic
# update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /memtest86+.bin
done

Je kunt de Terminal nu sluiten en tot slot alsnog op Restart Now klikken:

Installatie Ubuntu

Bij het opstarten van je systeem zal nu om de PIN-code van je OpenPGP-kaart worden gevraagd en heb je natuurlijk ook je OpenPGP-kaart zelf nodig. Echte two-factor beveiliging!

De oplettende lezer zal zich misschien afvragen of het wel veilig is om je secring.gpg in je /boot te verstoppen. Dit is natuurlijk geen probleem, aangezien hier alleen verwijzingen naar de OpenPGP-kaart in te vinden zijn.

Ter referentie: http://lfde.org/wiki/index.php/Ubuntu_Lucid_Lynx_10.04_Full_Disk_Encryption_with_USB_Key_Authentication

Verlangen… Naar de tijd van voor de digitale revolutie?

Thursday, June 3rd, 2010

Al sinds Kumina bestaat maken we gebruik van Google Calendar om onze agenda’s te beheren en synchroniseren. Handig, werkt eigenlijk altijd wel en alles klapper op de vuurpijl is het nog gratis ook!

Helaas is synchroniseren erg lastig. Zo heb ik een abonnement bij Toffa om synchronisatie met mijn Nokia E51 telefoon (snapt alleen SyncML) mogelijk te maken. In de praktijk werkt het synchroniseren vrij aardig dacht ik, totdat bleek dat met name wederkerende afspraken vaak foutief worden gekopieerd, ineens dubbel voor blijken te komen of spontaan gewoonweg verdwenen zijn… Toch vervelend als je nog maar net op tijd (of wellicht te laat…) ontdekt dat je een afspraak hebt!

Kortom, ik overwoog al concreet om een ouderwetse agenda aan te schaffen. In dit geval betekent synchroniseren wel (over)schrijven, maar in ieder geval hou je zelf de controle over het proces. Enfin, ik stond vanmorgen op het punt om naar een kantoorboekhandel te gaan maar werd al snel tegengehouden; er moest maar eens een apparaat met Android komen was het argument. Met alleen programmatuur van Google zou het toch wel goed moeten gaan?

Androids!

Als het goed is brengt de postbode binnenkort (morgen?) een HTC Desire. Eens zien of het goed blijft gaan en of mijn vertrouwen in de digitale revolutie weer zal herstellen…

Zo niet, tsjah eh… het apparaat kan ook muziek afspelen? 🙂

Ubuntu Linux 10.04 op een Asus EeePC 1101HA

Friday, May 14th, 2010

Het blijkt redelijk problematisch om de videokaart van een 1101HA aan te sturen vanuit Ubuntu Linux 10.04 “Lucid Lynx”. Daarnaast duurt het installeren een eeuwigheid, wat overigens eveneens aan de videokaart blijkt te liggen.

Een mogelijke oplossing is installatie vanaf een (snelle) USB-stick. Gebruik in dit geval de Startup Disk Creator (standaard in Ubuntu) met gebruik van ubuntu-10.04-alternate-i386.iso voor de installatie, en geef debian-installer/framebuffer=false als optie op.

Zie vervolgens deze oplossing voor Debian, welke ook onder Ubuntu als een zonnetje werkt!

Lancering Twenty-Five VPS

Friday, April 2nd, 2010

Al een tijdje waren we op de zaak op zoek naar een aanbieder van Virtual Private Servers (VPS) met maximale vrijheid.

Veel aanbieders werken met producten zoals OpenVZ, Virtuozzo, Linux-VServer of Xen. Op zichzelf prima, maar meestal zijn veel zaken zoals schijfpartitionering vastgelegd en is (bijvoorbeeld in het geval van Xen) het niet mogelijk om te kiezen welke versie van de Linux kernel je wil draaien.

Simpelweg: veel van onze best practices waren lastig toepasbaar op een virtualisatieplatform van derden. Daarnaast bleken veel aanbieders te duur, zeker voor tijdelijke huisvesting van pilots of om tests te kunnen doen.

Twenty-Five VPS logo

Het leek ons een goed idee om zelf een virtualisatieplatform aan te gaan bieden op basis van KVM (Kernel-based Virtual Machine). Geen poespas, eventueel geschikt voor tijdelijke huisvesting, een mooie prijs en maximale vrijheid.

Wil je Linux? Prima! Wil je FreeBSD? Prima! Wil je Windows (ehm, wie wil dat…)? Ook al prima!

Lijkt je het wat? Kijk dan maar eens op de website van Twenty-Five VPS!

Publiek IP-adres met ADSL?

Tuesday, March 2nd, 2010

Al vaker heb ik wat geschreven over het configureren van SpeedTouch ADSL-modems. Het is, ondanks de voornamelijk particuliere doelgroep, vrij aardig wat de apparatuur aan mogelijkheden biedt denk ik. Echter, in sommige gevallen wil je bewust géén gebruik maken van die mogelijkheden, bijvoorbeeld als je een serversysteem of router van het enige beschikbare publieke IP-adres van je ADSL-verbinding wil voorzien.

Er zijn verschillende oplossingen mogelijk, al dan niet met wat kunst- en vliegwerk. Helaas werken nagenoeg alle internetaanbieders in Nederland met PPP over ATM, waarmee het merendeel van de mogelijkheden wegvalt. Gelukkig blijft er een relatief eenvoudig te implementeren oplossing over! De moeite waard om over te schrijven, dacht ik zo. 😉

In mijn geval wilde ik graag het publieke IP-adres van onze ADSL-verbinding op kantoor direct kunnen toewijzen aan een serversysteem met Debian Linux.

Allereerst heb ik de instellingen van het ADSL-modem volledig gewist en vervolgens een minimaal subnet (/30) toegewezen. Binnen dit subnet bestaan maar twee IP-adressen: 172.29.98.1 voor het ADSL-modem en 172.29.98.2 voor het serversysteem.

Ter referentie, de CLI commando’s:

:system reset factory=yes proceed=yes

Het ADSL-modem zal opnieuw opstarten en is nu beschikbaar middels 10.0.0.138. Vervolgens:

:ppp relay flush
:eth flush
:atm flush
:ppp flush
:atm phonebook flush
:ip ipadd intf=LocalNetwork addr=172.29.98.1 netmask 255.255.255.252
:ip ipconfig addr=172.29.98.1 preferred=enabled primary=enabled

Maak nu opnieuw verbinding met telnet, maar nu met 172.29.98.2. Vervolgens om de oude IP-adressen te verwijderen en om DHCP uit te schakelen:

:ip ipdelete addr=192.168.1.254
:ip ipdelete addr=10.0.0.138
:service system modify name=DHCP-S state=disabled

Stel een wachtwoord in:

:user config name Administrator password VERYVERYSECRET

Maak een ADSL-verbinding aan met de juiste VPI/VCI en zet PPTP aan:

:atm phonebook add name=ADSL addr=0.35
:service system modify name=PPTP state=enabled

Sla tot slot de instellingen op:

:saveall

Het ADSL-modem is nu klaar voor gebruik! Installeer vervolgens op het serversysteem:

$ sudo apt-get install pptp-linux

De netwerkconfiguratie kan volstaan met:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 172.29.98.2
netmask 255.255.255.252

# The xDSL interface
auto dsl
iface dsl inet ppp
provider adsl

De PPP configuratie is verder erg eenvoudig:

$ sudo cat /etc/ppp/peers/adsl
noipdefault
defaultroute
replacedefaultroute
lock
user someuser
persist
holdoff 10
maxfail 0
noauth
noproxyarp
updetach
pty "pptp 172.29.98.1 --nolaunchpppd"

En tot slot de gebruikersnaam en wachtwoord:

$ sudo cat /etc/ppp/pap-secrets
someuser asdl VERYVERYSECRET

Na opnieuw laden van de netwerkinstellingen, verschijnt als resultaat ppp0 met daaraan het publieke IP-adres:

$ /sbin/ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:1.2.3.4 P-t-P:5.6.7.8 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:5067418 errors:0 dropped:0 overruns:0 frame:0
TX packets:4369810 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:4028098294 (3.7 GiB) TX bytes:1026059848 (978.5 MiB)

Bij eventueel verbreken van de verbinding zal deze automatisch opnieuw worden opgebouwd.

Asus EeePC 1101HA “Seashell”

Thursday, January 7th, 2010

Op de zaak hebben we vanochtend een Asus Eee PC 1101HA “Seashell” gekocht voor Mike. Het is een erg mooi apparaat, zeker in verhouding tot de 1000H (eigenlijk ben ik wel een beetje jaloers…) die ik zelf heb.

Asus Eee PC 1101HA "Seashell"

Het 11,6″ beeldscherm is toch wel prettiger in gebruik dan het scherm van mijn 1000H, zeker vanwege de resolutie van 1366×768 pixels tegenover 1024×600 pixels.

Het installeren van Ubuntu Linux 9.10 “Karmic Koala” ging zonder problemen, totdat… helaas de resolutie 1366×768 niet te kiezen bleek!

Zie voor een mogelijke oplossing: http://swiss.ubuntuforums.org/showthread.php?t=1253406