Montag Okt 05, 2009

Ich musste gerade einen NFS share von meinem Laptop (Ubuntu 9.04) auf meinem Desktop (Opensolaris 2009.06) mounten. Der erste Versuch sah ungefähr so aus:

Linux

#/etc/exports
/share *(rw,insecure,no_root_squash,no_subtree_check)

Opensolaris

root@desktop:~# mount -F nfs -o vers=3 laptop:/share /mnt/share
nfs mount: security mode does not match the server exporting laptop:/share

Schade eigentlich. Nach etwas Recherche war es aber gar nicht so schwer, das Problem zu lösen.

Linux

#/etc/exports
/share *(rw,insecure,sec=sys,no_root_squash,no_subtree_check)

Danach funktioniert der obige mount Befehl.




Samstag Okt 03, 2009

Unter dem Titel "Linux vs. Solaris als Fileserver" habe ich auf dem SourceTalk einen Vortrag gehalten, in dem ich meine Erfahrungen mit der Einrichtung und dem Betrieb von Linux und Opensolaris als Fileserver vorstelle. Die meisten Dinge sind hier auf dem Blog im Dezember schonmal kurz angesprochen worden. Aber hier nochmal die Folien.

Ich suche schon seit längerem nach einer Möglichkeit, ZFS zu verschlüsseln. Es ist angekündigt, dass ZFS noch in diesem Jahr mit einer Verschlüsselungsoption ausgestattet wird, aber ich will nicht noch länger warten. Infos zu dem Projekt gibt es hier http://opensolaris.org/os/project/zfs-crypto.

Nun aber zu dem Workaround, anders kann man das wirklich nicht nennen (auch weil die Performance nicht so der Hit ist). Es gibt ein Tool namens lofi, mit dem man Dateien loopback mounten kann und eben auch Support für Verschlüsselung und Kompression mitbringt. Also können wir eine Platte auf Blockebene verschlüsseln, und darauf einen zpool installieren. Dadurch haben wir einen verschlüsselten zpool.

Aber der Reihe nach. Ich habe mich entschieden, Keyfiles zu benutzen. Ich will diese dann auf einem verschlüsselten USB-Stick speichern. Zuerst erzeugen wir die Schlüssel, die wir für die Verschlüsselung benutzen:

root@opensolaris:~# pktool genkey keystore=file outkey=/lofi.key keytype=aes keylen=256 print=y
    Key Value ="bedb8b90dfe20307a9169fd0016cbe6317fbb3b2e3fa6e82ff9a6413c10f35d5"
root@opensolaris:~# pktool genkey keystore=file outkey=/lofi2.key keytype=aes keylen=256 print=y
    Key Value ="d8a0bea56fe3c07c707bec18068320515b82b1dca891c532a8c7df4ad917e6d4"

Das hat komischerweise nur funktioniert, wenn man den Key direkt in / ablegt, danach kann der Key aber an eine beliebige andere Stelle verschoben werden. Ich habe sie nach /root/ verschoben. Nun benutzen wir diese Keys um die Festplatten zu verschlüsseln:

root@opensolaris:~# lofiadm -a /dev/dsk/c7d1p0 -c aes-256-cbc -k /root/lofi.key
/dev/lofi/1
root@opensolaris:~# lofiadm -a /dev/dsk/c8d1p0 -c aes-256-cbc -k /root/lofi2.key
/dev/lofi/2

Dadurch werden Devices in /dev/lofi/ erzeugt, normalerweise /dev/lofi/1 und /dev/lofi/2. Der gleiche Befehl wird im nachhinein auch benutzt, um die Platte zu entschlüsseln. Leider gibt es keine Überprüfung, ob der Key stimmt, die Entschlüsselung funktioniert dann einfach nicht. Als nächstes erzeugen wir einen zpool auf diesen verschlüsselten Devices:

root@opensolaris:~# zpool create crypt mirror /dev/lofi/1 /dev/lofi/2

root@opensolaris:~# zpool status crypt
  pool: crypt
 state: ONLINE
 scrub: none requested
config:

    NAME             STATE     READ WRITE CKSUM
    crypt       ONLINE       0     0     0
      mirror         ONLINE       0     0     0
        /dev/lofi/2  ONLINE       0     0     0
        /dev/lofi/1  ONLINE       0     0     0

errors: No known data errors

Nun kann man beginnen, mit dem zpool zu arbeiten. Nach einem Neustart kann dieser Pool natürlich nicht benutzt werden, weil die Festplatten unter dem Dateisystem ja nicht entschlüsselt sind.

root@opensolaris:~# zpool status crypt
  pool: crypt
 state: UNAVAIL
status: One or more devices could not be used because the label is missing
    or invalid.  There are insufficient replicas for the pool to continue
    functioning.
action: Destroy and re-create the pool from a backup source.
   see: http://www.sun.com/msg/ZFS-8000-5E
 scrub: none requested
config:

    NAME             STATE     READ WRITE CKSUM
    crypt             UNAVAIL      0     0     0  insufficient replicas
      mirror         UNAVAIL      0     0     0  insufficient replicas
        /dev/lofi/1  FAULTED      0     0     0  corrupted data
        /dev/lofi/2  FAULTED      0     0     0  corrupted data

Man muss also die Platten entschlüsseln und danach den zpool neu initialisieren:

root@opensolaris:~# lofiadm -a /dev/dsk/c7d1p0 -c aes-256-cbc -k /root/lofi.key
/dev/lofi/1
root@opensolaris:~# lofiadm -a /dev/dsk/c8d1p0 -c aes-256-cbc -k /root/lofi2.key
/dev/lofi/2
root@opensolaris:~# zpool export crypt
root@opensolaris:~# zpool import -d /dev/lofi crypt

root@opensolaris:~# zpool status crypt
  pool: crypt
 state: ONLINE
 scrub: none requested
config:

    NAME             STATE     READ WRITE CKSUM
    crypt       ONLINE       0     0     0
      mirror         ONLINE       0     0     0
        /dev/lofi/2  ONLINE       0     0     0
        /dev/lofi/1  ONLINE       0     0     0

errors: No known data errors

Jetzt ist der Pool wieder verfügbar. Es gibt sicherlich auch noch eine andere Möglichkeit, export und import scheint mir da irgendwie übertrieben, aber anders hab ich es nicht hingekriegt. Jetzt muss man sich nur noch überlegen, wo man den Key abspeichert um seine Daten vor unbefugtem Zugriff zu schützen. Ich werde wohl einen USB-Stick benutzen, auf dem die Keys liegen und der ebenfalls mit lofi verschlüßelt ist. Allerdings nicht mit einem Keyfile, sondern mit einem Passwort. Das ganze packt man in ein Skript und dann sind die Daten auf der relativ sicheren Seite und einigermaßen stressfrei verwalten. Wenn dazu noch jemand Infos haben will, dann meldet euch in den Kommentaren.

Mittwoch Jul 08, 2009

Einer der Hauptpunkte, die mich davon abhalten, Opensolaris als Produktivsystem einzusetzen ist das fehlende Truecrypt, weil alle meine externen Platten verschlüsselt sind um Daten bei Verlust der Datenträger zu schützen. Hier gibts einen Blogpost, dass es rudimentär lauffähig sei. Das ist ein sehr interessantes Projekt, und ich hoffe, dass daraus eine stabile Version werden wird. Dann bleiben für mich nicht mehr viele Gründe übrig, Opensolaris auf dem Desktop zu installieren.

Mittwoch Jun 10, 2009

So, nun nach längerer Zeit mal wieder ein Post von mir. Für alle, die keine Zeit hatten, persönlich zu den studentischen Informatik Tagen zu kommen, habe wir nun von den meisten Vorträgen Aufzeichnungen als Video hochgeladen. Die könnt ihr unter http://sit.projectai.org/programm.php finden. Viel Spaß damit.

Freitag Mai 08, 2009

Nach längerer Abstinenz endlich mal wieder was Neues, und zwar eine etwas knappe Ankündigung. Freitag und Samstag (8./9. Mai) finden hier in Göttingen die studentischen Informatik Tage, oder kurz sIT, statt. Das ist eine Veranstaltung bei der es eine Menge Vorträge und Workshops gibt, die sich mit Themen rund um die Informatik befassen. Unter anderem geht es um Robotik, Software Engineering, ... Ist zuviel, um es hier aufzuzählen. Ich selbst werde einen Vortrag über das Dateisystem ZFS halten und bin gerade dabei, die Folien zu erstellen ;)

Wer Interesse hat: Weitere Informationen, Veranstaltungsort, das Programm und den ganzen Rest gibt es auf http://sit.projectai.org. Teilnahme ist natürlich kostenlos und an den Abenden wird gemeinsam gegrillt.

Bis morgen dann!

Freitag Mrz 27, 2009

United Domains hat momentan eine Aktion, bei der alle Blogger, die einen Link auf http://www.domain-karte.de setzen, eine Domain-Weltkarte gratis bekommen. Und da ich demnächst umziehe und etwas "Wandschmuck" gebrauchen kann, mach ich doch einfach mal mit. ;)

Infos zu dieser Aktion findet ihr hier.

Freitag Mrz 13, 2009

Ich habe hier momentan ein Laptop von der Uni, auf dem die Software für meine Bachelorarbeit installiert ist. Jetzt habe ich aber keine Lust, dieses blöde Ding die ganze Zeit mit mir herumzutragen. Noch weniger Lust habe ich dazu, diese wunderschöne Software selbst irgendwo zu installieren, weil sie leider völlig undokumentiert ist, aber das ist eine andere Geschichte und vielleicht auch nochmal einen Eintrag wert.

Naja, jedenfalls hatte ich mir vorgenommen dieses Laptop in eine VM zu transformieren, damit ich sie immer dabei habe. Dabei gabs jetzt zwei grundlegende Probleme:

  1. Die Software braucht einen USB-Kartenleser, wie kann ich den benutzen?
  2. Wie kriege ich das System von dem Laptop in einem VM?

Diese Fragen will ich hier kurz beschreiben.

USB-Kartenleser in einer VM nutzen

Ich benutze für die Desktop-Virtualisierung VirtualBox, in der closed-source Version bietet es Unterstützung für USB-Geräte. Damit funktioniert der Kartenleser absolut problemlos in der VM. Man kann über die Einstellungen Filter definieren, welche Geräte an die VM durchgereicht werden sollen. Damit wäre die erste Hürde auch schon genommen.

USB Dialog in VirtualBox

Laptop->VM

So, und nun zu dem Kernproblem, wie kriege ich das System von dem Laptop in das Festplattenimage der VM? Hier hilft das gute alte dd weiter. Ich habe auf dem Laptop über NFS ein Verzeichnis auf meinem PC gemountet und darin ein dd-Abbild der Festplatte des Laptops erstellt.

dd if=/dev/sda of=/mnt/share/laptop.img bs=$YourChoice

Leider habe ich jetzt keinen Weg gefunden, dieses Image direkt in VirtualBox zu benutzen, aber über einen kleinen Umweg kriegt man es trotzdem hin. Zuerst bereitet man die VM vor, dabei erzeugt man ein neues Festplattenimage mit einer fixen Größe, etwas größer als die Festplatte des Laptops.

Ich habe eine Linux-VM gestartet, die die GuestAdditions installiert hatten. Vor dem Start fügt man noch das soeben erzeugt VirtualBox-Image als zweite Festplatte hinzu. Dann habe ich über die "Shared Folders" das zuvor mit dd erzeugte Image importiert.

HD Dialog in VirtualBox

Und nun das dd-Image auf das VirtualBox-Image überspielen:

mount -t vboxsf $FOLDER /mnt/share
dd if=/mnt/share/laptop.img of=/dev/sdb bs=$YourChoice # sdb sollte das leere Image sein

Danach sollte man die neue VM starten können und alles ist gut. Zumindest muss ich jetzt nicht mehr dieses blöde Laptop mit mir rumtragen. ;) Ist jetzt nicht wirklich eine Schritt-für-Schritt-Anleitung, aber wenns fragen gibt, schreibt einfach einen Kommentar, helfe da gerne weiter.

Dienstag Mrz 03, 2009

Donnerstag Feb 26, 2009

Adobe hat den Flashplayer 10 für Opensolaris veröffentlicht. Wer ihr benutzen will, bekommt ihn von der Adobe Webseite. Offensichtlich wird die Unterstützung von Opensolaris von Seiten der großen Hersteller immer besser, was ich sehr gut finde. Jetzt noch ACPI-Support für mein Laptop und es kriegt eine Chance als Hauptsystem ;)

Kurzer Nachtrag noch für alle, die nicht wissen, wie sie den Flashplayer installieren sollen: Einfach die Datei 'libflashplayer.so' nach '/usr/lib/firefox/plugins/' kopieren und den Firefox neustarten. Viel Spaß damit...

Mittwoch Feb 25, 2009

  • Don't shout at your disks
    Großartiges Video, das zeigt wie exakt man mit Hilfe von Dtrace und ZFS sein Storage überwachen kann. (Gezeigt wird Fishworks von den OpenStorage Produkten)
  • Debian Lenny released
    Schon fast zwei Wochen her, aber wers noch nicht weiß: Debian Lenny ist draußen.....
  • Lenovo Campus
    Thinkpads zu Studententarifen
  • blog.0x53a.de
    Nochmal das neue tolle Sysadmin Blog
Unter http://blog.0x53a.de/ ist ein neues Blog entstanden, auf dem ein paar Freunde und ich aus unserem Alltag als Sysadmins schreiben. Es wird aber nicht ausschließlich technischen Inhalt geben, sondern auch Gesellschaftliches und Dinge, die uns so im Alltag beschäftige. Würde mich freuen, wenn ihr mal vorbeischaut!

Donnerstag Jan 29, 2009

Ich habe vorhin ein nettes Tool gefunden: Gobby. Mit Gobby ist es möglich, mit mehreren Teilnehmer gleichzeitig an Textdateien zu arbeiten. Das Prinzip ist folgendes: Ein Nutzer öffnet eine Session und gibt dabei einen Port an, der in seiner Firewall freigeschaltet sein muss. Die anderen Nutzer können sich dann zu dieser Session verbinden und alle können gemeinsam arbeiten. Die Benutzung ist so intuitiv, dass ich darauf gar nicht weiter eingehen. Außerdem unterstützt Gobby Syntax Highlighting für eine Menge Sprachen. Nun noch ein Screenshot (Opensolaris in Virtualbox unter Ubuntu), draufklicken zum vergrößern:

Gobby Screenshot

Gobby ist Opensource und es gibt Binaries für Windows, bei vielen Linux-Distributionen ist es im Repository und bei Opensolaris ist es ebenfalls im Repository (SUNWgobby). Weitere Infos gibts auf der Projekthomepage.

Ich hatte heute endlich mal ein paar Stunden Zeit, um Opensolaris 2008.11 zu testen. Es hat einige sehr schöne Verbesserungen und neue Features, die ich aber in späteren Posts ausführlicher behandeln will. Jetzt soll es um ein einzelnes Feature gehen, das ich wirklich genial finde: Der Timeslider.

Damit ist es möglich, "in die Vergangenheit zu reisen", zumindest was das Dateisystem angeht. Ich habe einfach mal ein kleines Video aufgezeichnet, um das zu veranschaulichen.


Sobald ich ein Mikro habe, vertone ich das Video nochmal. Bis dahin hier einige textuelle Erklärungen zu dem Video:

Zu Beginn zeige ich kurz, wie man den Timeslider konfiguriert. Danach benutze ich den Dateimanager, um zu demonstrieren, wie einfach man alte Versionen des Dateisystems wiederherstellen kann und gelöschte Ordner wieder auftauchen. Am Ende zeige ich noch kurz wie viel oder besser wie wenig Speicherplatz dieses Feature in Anspruch nimmt.

Am 07.02.09 kommt David Botterill nach Göttingen. David kommt aus Colorado und ist seit ungefähr 2000 im Netbeans Projekt involviert. Er hat angeboten, einen Vortrag zu halten und wir haben uns auf "JavaServerFaces in Netbeans" als Thema geeinigt. Der Vortrag wird sicherlich sehr interessant und ich hoffe, dass sich viele Zuhörer dorthin verirren.

Der Vortrag wird auf englisch gehalten und wird vermutlich im Mathematischen Institut stattfinden. Sobald ich näheres zu Ort und Zeit weiß, werde ich hier nochmal etwas dazu schreiben und Poster drucken.

Achso, bevor ich es vergesse: Im Anschluss gibt's Pizza und Getränke umsonst...