[email protected]
Dit proces vereist de kernel bron code, kennis van over hoe je deze code moet compileren, en veel geduld. Ik raad je aan om een bootdisk klaar te hebben liggen. Wees ook zeker dat je een backup hebt voordat je permanent je belangrijke data bewaard in het versleutelde filesysteem - het kan aangestast worden als elk ander filesysteem.
Als een minimum, moet je de laatste versie 2.2.9 van de linux kernel patchen voordat je door kan gaan. Er is een verdere instructie over het patchen in de Details sectie later in dit document.
De source code van de kernel kan gevonden worden op:
ftp://ftp.kerneli.org/
Er is een HOWTO over het proces van een kernel hercompileren op:
http://metalab.unc.edu/LDP/HOWTO/
Dit document mag worden gereproduceerd en gedistributeerd in zijn geheel of in delen, zonder betaling, overgegeven aan de volgende voorwaarden:
ftp://prep.ai.mit.edu/pub/gnu/COPYING/
Het proces gebruikt het device '/dev/loop*' (waar * 0-7 kan zijn bij de meeste installaties) om een loopback filesysteem te mounten. Het zelfde proces kan worden gebruikt om een linux filesysteem te bewaren op een niet-linux partitie. Er is een HOWTO over dit op de LDP site eerder aangegeven.
Er kunnen verschillende types van encryptie gebruikt worden, zoals XOR, DES, twofish, blowfish, cast128, serpent, MARS, RC6, DFC en IDEA. Het programma 'losetup' (loopback setup) is wat je versleutelde file systeem associeert met een filesysteem en zijn versleutel type. Overeenkomstig met Alexander Kjeldaas, die de kerneli.org site onderhoud en de internationale crypto patches, DES en losetup zijn momenteel niet samengaand. Dit is door het verschil van het hanteren van parity bits. Er zijn geen plannen om DES te ondersteunen omdat het veel minder veilig is dan de andere methoden.
Twofish, blowfish, cast128 en serpent zijn vrij te gebruiken. De anderen hebben of hebben geen licentie beperkingen. Vele van deze zijn kandidaten voor de AES standaard. De finalisten zullen vrij gebruik van hun versleutelaars wereldwijd verstrekken.
Dit document gebruik het serpent algoritme omdat het erg sterk is en ongelooflijk snel, en het is vrij distributeerbaar onder de GPL. Overeenkomstig aan de documentatie gebruik serpent 128-bit blok versleuteling gemaakt door Ross Anderson, Eli Biham en Lars Knudsen. Het geeft gebruikers het hoogste practische niveau van beveiliging dat er geen korte aanvallen worden gevonden. De documentatie over serpent en ook de source code kan gevonden worden op:
http://www.cl.cam.ac.uk/~rja14/serpent.html
Dit document neemt ook aan dat de algoritmes direct in de kernel zijn gecompileerd. Je mag ze installeren als een module, maar de techniek wordt niet besproken in dit document. Je moet de file `/etc/conf.module' editten; het proces wordt in detail beschreven in de Kernel compilatie HOWTO erdeer angegeven.
Er zijn veel stappen betrokken in het proces. Ik geef Details voor deze stappen in de volgende sectie. Ik dacht dat het wel leuk zou zijn om eerst een referentie te geven (als je ervaren bent met unix/linux heb je de details niet nodig). Hier zijn ze beknopt:
http://ftp.kerneli.org/pub/kerneli/
ftp://ftp.kernel.org/pub/linux/utils/util-linux/
/dev/loop0 /mnt/crypt ext2 user,noauto,rw,loop 0 0
dd if=/dev/urandom of=/etc/cryptfile bs=1M count=10
losetup -e serpent /dev/loop0 /etc/cryptfile
Je hebt maar een kans om het paswoord in te vullen, dus wees voorzichtig.
als je je paswoord twee keer wilt laten controleren, kun je het volgende
commando gebruiken:
losetup -d /dev/loop0
Dit deactiveert je loop device. Daarna draai je losetup opnieuw om
je paswoord te testen, als volgt:
losetup -e serpent /dev/loop0 /etc/cryptfile
mkfs -t ext2 /dev/loop0
mount -t ext2 /dev/loop0 /mnt/crypt
umount /dev/loop0
losetup -d /dev/loop0
Kernel Patches:
Je kan upgraden van `2.2.x' uitgaven met een patch. Elke patch die voor `2.2.x' is uitgebracht bevat bug verbetering. Nieuwe kenmerken worden toegevoegd aan de Linux `2.3.x' ontwikkelings kernel. Om te installeren door een patch, haal de nieuwste patch files en doe het volgende:
cd /usr/src
gzip -cd patchXX.gz | patch -p0
verander de xx voor alle versies groter dan de versie van je momentele bron boom, IN VOLGORDE.
De standaard directory voor de kernel source is `/usr/src/linux'. Als je source ergens anders staat raad ik een symbolische link aan van `/usr/src/linux'.
De `MCONFIG' file vervanderen voor de `util-linux' package compilatie:
De volgende zijn uittreksels van de 'MCONFIG' file die ik heb gebruik om het `util-linux' pakket te compileren. Dit is bijna identiek aan mijn setup, welke losjes is gebaseerd op RedHat 5.2. Het punt is dat je geen belangrijke systeem tools gaat overschrijven zoals `login', `getty', of `passwd'. Hoe dan ook, hier zijn de belangrijke regels als volgt:
CPU=$(shell uname -m | sed s/I.86/intel/)
LOCALEDIR=/usr/share/locale
HAVE_PAM=no
HAVE_SHADOW=yes
HAVE_PASSWD=yes
REQUIRE_PASSWORD=yes
ONLY_LISTED_SHELLS=yes
HAVE_SYSVINIT=yes
HAVE_SYSVINIT_UTILS=yes
HAVE_GETTY=yes
USE_TTY_GROUP=yes
HAVE_RESET=yes
HAVE_SLN=yes
CC=gcc
Suggesties:
Onthoud dat je elke van de acht loopback devices kunt gebruiken, van `/dev/loop0' tot `/dev/loop7'. Gebruik een onopvallende directory voor het mount punt. Ik raad aan een directory te maken met 700 permissies in je home directory. Het zelfde geld voor de file waar de data in staat. Ik gebruik een filenaam als `sysfile' of `config.data' in de `/etc/' directory. Deze worden meestal over het hoofd gezien.
Ik heb erg simpele Perl scripts gemaakt om het filesysteem te mounten en weer te unmounten met een commando. Schrijf deze, maak ze uitvoorbaar (chmod u+x), en zet ze in je path.
#!/usr/bin/perl -w
#
#minimaal programma om een loopback encrypted filesysteem in te stellen.
#Copyright 1999 door Ryan T. Rhea
`losetup -e serpent /dev/loop0 /etc/cryptfile`;
`mount /mnt/crypt`;
Noem het bovenstaande script `loop' en dan kun je starten met een commando (`loop') en een paswoord.
#!/usr/bin/perl -w
#
#minimaal utility om een loopback encrypted filesysteem te deactiveren.
#Copyright 1999 door Ryan T. Rhea
`umount /mount/crypt`;
`losetup -d /dev/loop0`;
Noem de tweede `unloop' en als je dan `unloop' typt wordt je filesysteem snel gedeactiveerd.