File: Loopback-Encrypted-Filesystem-NL.sgml

package info (click to toggle)
doc-linux-nl 20051127-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 16,408 kB
  • ctags: 94
  • sloc: xml: 47,403; makefile: 312; perl: 193; sh: 116; ansic: 12; csh: 9
file content (385 lines) | stat: -rw-r--r-- 11,806 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
<!doctype linuxdoc system>
<linuxdoc>
<!-- Loopback Encrypted Filesystem HOWTO door Ryan T. Rhea  -->

<article>

<!-- Title information -->
<titlepag>
<title>Loopback Encrypted Filesystem HOWTO</title>
<author><name>Copyright by Ryan T. Rhea,
<tt/rhear@cs.winthrop.edu/
<newline>
Vertaler: <htmlurl url="http://people.zeelandnet.nl/reggye/" name=" Reggy
Ekkebus">, <htmlurl
url="mailto:reggy@zeelandnet.nl" name="reggy@zeelandnet.nl">
</name></author>
<date>v1.1, 29 November 1999</date>

<abstract>
Dit document verteld hoe je een filesysteem moet instellen
dat, als het gemount is door een gebruiker, drastisch en transparant
zijn inhoud versleuteld. Het filesysteem wordt bewaart in een
reguliere file, welke verborgen of on opvallend genoemd kan zijn
zodat de meeste mensen er over kijken. Dit staat een hoog niveau aan
veilige data opslag toe.
</abstract>
</titlepag>
<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect><heading>Voordat je begint</heading>

<p>
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 <ref id="Details"> sectie later in dit document.

De source code van de kernel kan gevonden worden op:

<tscreen>
<url url="ftp://ftp.kerneli.org/">
</tscreen>

Er is een HOWTO over het proces van een kernel hercompileren op:

<tscreen>
<url url="http://metalab.unc.edu/LDP/HOWTO/">
</tscreen>

Dit document mag worden gereproduceerd en gedistributeerd in zijn
geheel of in delen, zonder betaling, overgegeven aan de volgende 
voorwaarden:

<itemize>
<item>De copyright notitie en de permissie notitie moet
geheel bewaard blijven op alle komplete of gedeeltelijke kopie&euml;n.
</item>

<item>Elke vertaling of afgeleide werk moet toegstaan zijn door de auteur
van het document voor distributie.
</item>

<item>Als je dit werk in een deel distributeerd, moet er een
instructie aanwezig zijn over hoe je de hele howto kunt verkrijgen.
</item>

<item>Alle source code in dit document is geplaatst onder de GNU
General Public License, verkrijgbaar via anonieme FTP van:
</item>
</itemize>

<tscreen>
<url url="ftp://prep.ai.mit.edu/pub/gnu/COPYING/">
</tscreen>
</p>
</sect>


<sect><heading>Introductie</heading>

<p>
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:
 
<tscreen>
<url url="http://www.cl.cam.ac.uk/~rja14/serpent.html">
</tscreen>

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.
</p>
</sect>


<sect><heading>Samenvatting</heading>

<p>
Er zijn veel stappen betrokken in het proces. Ik geef 
<ref id="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:

<enum>
<item>Download de nieuwste internationale crypto patch
(Ik gebruikte 'patch-int-2.2.10.4' toen ik document schreef)
van:


<tscreen>
<url url="http://ftp.kerneli.org/pub/kerneli/">
</tscreen>
</item>

<item>Patch de kernel
</item>

<item>Draai `config' (of `menuconfig' of `xconfig') om je MakeFile voor
de nieuwe kernel te configureren. De opties om versleuteling aan te zetten
zijn verspreid. Eerst, voordat je andere opties ziet
moet je eerst 'Prompt for development and/or incomplete code/drivers'
aanzetten in het `Code Maturity level options' menu. Onder `Crypto opties'
`crypto ciphers' en `serpent' aanzetten. Nog een keer, dit document neemt
aan dat je serpent gebruikt, maar probeer wat je wilt. Onthoud
dat DES bekent is als onsamengaand met 2.2.10.4 - het wordt misschien wel 
nooit ondersteund. Er zijn verschillende belangrijke opties die
je moet selecteren onder `Block Devices'. Deze zijn `Loopback
device support', `Use relative block numbers as basis for
transfer functions (RECOMMENDED)' en `General encryption support'.  
Selecteer NIET 'cast 128' of 'twofish' versleuteling hiet.  
Weet ook dat je de verschillende crypto opties onder de verschillende
netwerk catagorieen niet nodig hebt. Ik ga niet verder in het configureren
van de kernel, dat is buiten beschouwing van dit document en kan gevonden
worden op de LDP site.
</item>

<item>Compileer de nieuwe kernel.
</item>

<item>Verander `/etc/lilo.conf' om het nieuwe kernel image toe te voegen. Draai
`lilo -v' om de kernel toe te voegen aan de boot lader.
</item>

<item>Download de source van de nieuwste `util-linux' 
(Ik gebruikte `util-linux-2.9v') van:

<tscreen>
<url url="ftp://ftp.kernel.org/pub/linux/utils/util-linux/">
</tscreen>
</item>

<item>Pak de `util-linux' source uit.
</item>

<item>Pas de daarbij behorende patch in je 
`/usr/src/linux/Documentation/crypto/' directory toe.
</item>

<item>lees de `INSTALL' file ZORGVULDIG! Dit pakket
houdt de source code van veel systeem afhankelijke files in
(belangrijke tools zoals `login', `passwd' en `init'). Als je de
MCONFIG file niet zorgvuldig veranderd, voordat je deze bron code 
gaat compileren zorg dan dat je een boot diskette en/of
een shotgun bij de hand hebt, omdat je systeem erg in de war zal
zijn. Fundementeel zul je de meeste van de `HAVE_*' velden op
`yes' zetten zodat de belangrijkste authenticatie tools niet
worden gecompileerd en dus ook niet overschreven. De tools die
je moet hercompileren zijn `mount' en `losetup' om de nieuwe encryptie
schema's onder te brengen. Ik raad je aan om naar de <ref id="Details"> sectie
hieronder te gaan voor deze stap.
</item>

<item>Compileer en installeer de `util-linux' source</item>

<item>Reboot de machine met de nieuwe kernel.</item>

<item>Verander `/etc/fstab', een regel toevoegen voor je mount punt
gaat als volgt:

<tscreen><code>
/dev/loop0  /mnt/crypt  ext2  user,noauto,rw,loop 0 0
</code></tscreen>
</item>

<item>Maak de directory aan die het filesysteem gaat inhouden, zoals
in `/mnt/crypt' hierboven.
</item>

<item>Als de gebruiker, maak je versleutelde file als volgt:

<tscreen><verb>
dd if=/dev/urandom of=/etc/cryptfile bs=1M count=10
</verb></tscreen>
</item>

<item>Draai losetup als volgt:

<tscreen><verb>
losetup -e serpent /dev/loop0 /etc/cryptfile
</verb></tscreen>

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:

<tscreen><verb>
losetup -d /dev/loop0
</verb></tscreen>

Dit deactiveert je loop device. Daarna draai je losetup opnieuw om
je paswoord te testen, als volgt:

<tscreen><verb>
losetup -e serpent /dev/loop0 /etc/cryptfile
</verb></tscreen>
</item>

<item>Maak je ext2 filesysteem als volgt:

<tscreen><verb>
mkfs -t ext2 /dev/loop0
</verb></tscreen>
</item>

<item>Nu kun je je versleutelde filesysteem mounten met:

<tscreen><verb>
mount -t ext2 /dev/loop0 /mnt/crypt
</verb></tscreen>
</item>

<item>Als je klaar bent, kun je je filesysteem unmounten en beschermen als 
volgt:

<tscreen><verb>
umount /dev/loop0
losetup -d /dev/loop0
</verb></tscreen>
</item>
</enum>
</p>
</sect>


<sect><heading>Details<label id="Details"></heading>

<p><bf>Kernel Patches:</bf>

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:

<tscreen><verb>
cd /usr/src
gzip -cd patchXX.gz | patch -p0
</verb></tscreen>

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'.
</p>

<p><bf>De `MCONFIG' file vervanderen voor de `util-linux' package
compilatie:</bf>

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:

<tscreen><code>
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
</code></tscreen>
</p>
<p><bf>Suggesties:</bf></p>
<p>
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.

<tscreen><code>
#!/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`;
</code></tscreen>

Noem het bovenstaande script `loop' en dan kun je starten met
een commando (`loop') en een paswoord.

<tscreen><code>
#!/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`;
</code></tscreen>

Noem de tweede `unloop' en als je dan `unloop' typt wordt je filesysteem
snel gedeactiveerd.
</p>
</sect>
</article>
</linuxdoc>