1. Komponenten
    1. dfsbuild
    2. cbox-build
      1. Beispiele
    3. der CryptoBox-Kernel
    4. Verwendung des Subversion-Repositories
  2. Ablauf
    1. der erste Bootvorgang
    2. per webfrontend mounten
  3. Bugs
  4. Hints
  5. andere Ansätze
    1. Knoppix
    2. Morphix / IBuild


Komponenten

Eine CryptoBox CD wird in wenigen Schritten erstellt. Die Basisarbeit erledigt 'dfsbuild' und die genaue Konfiguration macht 'cbox-build'.

dfsbuild

Das Linux Grundsystem für die CryptoBox CD wird mit [DebianPackage]dfsbuild gebaut. Das ist ein Programm, welches eine [WWW] Debian Live-CD erzeugt.
(Wir entwickeln die CryptoBox bisher auf Debian/Linux-Systemen. Prinzipiell dürfte es auch mit deiner Lieblingsdistro funktionieren, nur der anfängliche Einrichtungsaufwand wird dadurch größer.)

Für "dfsbuild" bietet sich [DebianPackage]apt-cacher an. Damit brauchst du nicht für jeden Bau des Grundsystems alle Debian-Pakete erneut herunter laden.

Installation:

  • apt-get install dfsbuild apt-cacher

Die dfsbuild-Dokumentation ist noch recht spärlich. Du kommst aber kaum in direkten Kontakt mit dfsbuild, da es durch 'cbox-build' aufgerufen wird. Die folgenden Links helfen dir vielleicht trotzdem weiter:

cbox-build

Die wichtige Kleinarbeit, damit aus dem dfsbuild-System eine CryptoBox wird, erledigt cbox-build.sh.
Das Script und die bestehenden Konfigurationsdateien liegen im [SubVersion]cryptobox-Repository.

Mit diesem Script baust du deine eigene CryptoBox-CD. Hier ein verkürzter Überblick:

Aktion

Beschreibung

dfsbuild

startet dfsbuild und legt eine Arbeitskopie an

config

konfiguriert das Basissystem

harden

entfernt das devel-feature.sh Skript und einige unnötige Pakete

iso

erstellt ein iso-image

chroot

für kleine Tests reicht auch chroot (Vorsicht: dabei riskierst du, deine reale Festplatte zu überschreiben)

qemu

startet das iso-image mit qemu (zum sicheren Testen)

revert

Wiederherstellung des dfsbuild-Endprodukts - falls mensch mit config die Arbeitskopie übertrieben verschmutzt hat

release

Abkürzung für dfsbuild config harden iso - es wird also eine Release-CD erstellt

Das kannst mehrere Aktionen nacheinander als Parameter angeben.

Weitere Aktionen, die die Entwicklung erleichtern, werden unter CryptoBoxDevFeatures beschrieben.

Das fertige iso-Image findest du unter _builddir/cd1/cryptobox.iso.

Beispiele

Die erste Erstellung des Grundsystems

./cbox-build.sh dfsbuild

Anpassungen vornehmen, ISO-Image erstellen und per ''qemu'' testen

./cbox-build.sh config iso qemu

  • Release-CD erstellen: ./cbox-build.sh release

der CryptoBox-Kernel

Der Kernel für die CryptoBox wird statisch kompiliert. Wenn du ihn selbst bauen/verändern willst, dann am einfachsten so:

  • apt-get install kernel-tree-2.6.8

  • schnapp dir /boot/config-2.6.8 von einer gebauten CryptoBox CD und verändere sie nach deinen Wünschen

  • zum Erstellen des Debian-Pakets:  make-kpkg --revision=1.dfs --rootcmd=fakeroot kernel_image

  • nun musst du eventuell in der dfsbuild.conf den Namen des vorherigen Kernel-Pakets durch deinen neuen ersetzen

Verwendung des Subversion-Repositories

Erstellung einer lokalen Arbeitskopie des Entwickler-Repositories: svn checkout https://svn.systemausfall.org/svn/cryptobox deincryptoboxverzeichnis

Deine Änderungen an der CryptoBox klannst du per svn commit in unser Repository übertragen. Dazu musst du, aber vorher Schreibrechte erhalten (die wir gerne vergeben). :)

Ablauf

Hier werden wichtige interne Abläufe der Cryptobox beschrieben.

der erste Bootvorgang

  • checken ob config partition auf der platte liegt

    • testmount der ersten partition

  • wenn ja, configs einlesen und system normal starten

  • wenn nicht:

    • webserver starten und anbieten die gefundene platte "hinzurichten"

      • nutzerdaten sammeln (ip adresse, netzwerkname usw.)

      • abfrage ob wirklich: wipe -f -k -R /dev/urandom /dev/?d? (fortschritt anzeigen)

        • wenn nicht, dann hilfeseite zeigen

      • partitionen anlegen

        • erste part. mkfs & mount (config)

        • fstab drauf schreiben

        • crypttab dito

        • interfaces dito

        • smb.conf dito

      • kennwort abfrage per cgi

      • zweite part. cryptsetup & mkfs & mount (crypto)

per webfrontend mounten

  • pw abfrage

  • checken ob mount geklappt hat

  • samba starten

  • ...

  • nach timeout oder auf wunsch samba stoppen

  • cryptodevice entfernen


Bugs

  • unter qemu trat immer wieder ein Fehler "interleaved files not (yet) supported" auf

    • willkürlich waren manche Verzeichnisse ungültig (also hatten nur das Datei-Attribut)

    • die nicht-standardkonformen mkisofs-Optionen "-U -D" haben das Problem nicht behoben

  • eventuell hängt dies mit dem vorherigen Fehler zusammen: das System verhält sich systematisch fehlerhaft (beispielsweise löst der Start von nmbd generell ein segfault aus)

Hints

  • Du brauchst etwa 1GB Plattenplatz für den Bau einer Cryptobox. Das eigentliche CD-Image wird aber nur knapp 250MB groß.

  • Für dfsbuild bietet sich [DebianPackage]apt-cacher an. Damit müssen die Debian-Pakete nicht bei jedem neuen dfsbuild-Vorgang erneut heruntergeladen werden.

  • cbox-build muss für folgende Vorgänge mit root Rechten laufen: dfsbuild, config, chroot, revert

  • cbox-build.sh verwendet relative Pfad-Angaben - du solltest es also aus dem Verzeichnis heraus starten, in dem sich beispielsweise auch cbox-build.sh befindet.

  • Netzwerk für qemu:

    • dein Systemkernel muss das tun/tap-Netzwerkgerät unterstützen

      CONFIG_TUN=m
    • eventuell musst du "misc/qemu-ifup.sh" an dein System anpassen


andere Ansätze

Hier findest du ältere Ideen, die zum Teil schon recht umfangreiche Gestalt angenommen haben aber momentan von uns nicht weiter verfolgt werden.

Knoppix

Morphix / IBuild

last edited 2005-08-08 08:33:33 by