26.02.2014 Aufrufe

Linux-Magazin Intelligenz im Haus (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

01/14<br />

DIE ZEITSCHRIFT FÜR LINUX-PROFESSIONALS<br />

Software zur Event-<br />

Organisation<br />

Konferenzen, Work shops, Refe renten und<br />

Besucher unter einen Hut bringen S. 56<br />

Qubes OS<br />

Newcomer mit Microkernel<br />

und per Xen isolierten<br />

Anwendungen S. 64<br />

Tntnet<br />

Robustes Framework, um<br />

Webanwendungen in C++<br />

zu entwickeln S. 90<br />

<strong>Intelligenz</strong> <strong>im</strong> <strong>Haus</strong><br />

Home-Automation: Sehen, fühlen,<br />

empfangen, speichern, schalten<br />

■ Gut zu wissen: Standards und Kosten S. 24<br />

■ Raspberry Pi als trällernder Türbutler S. 28<br />

■ Aufgefangen: Software Defined Radio S. 30<br />

■ Intelligente Tools für IP-Kameras S. 36<br />

■ Noch am Anfang: Smarte Stromzähler S. 42<br />

■ Kleine NAS-Kisten fürs vernetze He<strong>im</strong> S. 46<br />

■ <strong>Linux</strong>-Elektronik und Community-Karten für<br />

Hobbysegler S. 50<br />

■ Virtualisierungspraxis: Snapshots<br />

<strong>im</strong> Virt-Manager möglich S. 72<br />

■ NFtables kann IPtables entthronen S. 84<br />

Arduino statt X10-Protokoll: Wie Perlmeister Schilli seit Neuestem schaltet und waltet S. 96<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 6,40 4 7,05 sfr 12,80 4 7,50 4 8,30 4 8,30<br />

4 192587 306401 01


Pro These<br />

Login 01/2014<br />

Editorial<br />

Da das Internet (dankenswerter Weise) tief in den Alltag vieler eingedrungen<br />

und zudem ein Teil der Weltökonomie ist, lohnt seine Betrachtung als solches<br />

allemal. Der Diskurs findet offensichtlich auf zwei Ebenen statt: Einer abstrakten<br />

(nützlich, schädlich, gesellschaftsverändernd, urheberrechtlich, nationalstaatlich,<br />

…) und einer konkret-technischen Ebene. Das <strong>Linux</strong>-<strong>Magazin</strong><br />

ist zwingend der zweiten Gruppe zuzurechnen.<br />

Als sichere Teilnehmer der ersten Diskussionsebene dürfen Ossi Urchs (rauschebärtiger<br />

„Internet-Guru der ersten Stunde“ und Agenturinhaber) und<br />

T<strong>im</strong> Cole (schütterer Kolumnist, Blogger, „Internet-Experte“) gelten. Beide<br />

sind Verfasser des auf der Buchmesse vorgestellten und bei Hanser erschienenen<br />

Werks „Digitale Aufklärung – Warum uns das Internet klüger macht“.<br />

Jan Kleinert, Chefredakteur<br />

Urchs und Cole starten mit zehn Thesen, die unterfüttern, „Warum wir eine<br />

digitale Aufklärung brauchen“. Um sie an eine Kirchentür zu nageln, polarisieren<br />

die meisten davon aber zu wenig, Beispiel: „Das Leben in einer derart grundsätzlich anderen Welt<br />

wird komplexer, aber nicht komplizierter, sondern einfacher. (These 7)“ Die anderen Thesen richten sich aus<br />

an Beschleunigung, Denken in Echtzeit, Medienwandel, obsolete Begriffe aus der analogen Vergangenheit<br />

oder dem medizinisch korrekten „Digitalisierung und Vernetzung sind kein Schnupfen: Sie gehen nicht<br />

wieder weg! (These 2)“.<br />

Um das Buch als Ganzes zu würdigen: Die Autoren haben einen klaren Kopf und besitzen einen scharfen Blick<br />

auf die Folgen der Vernetzung, die 280 Seiten zwischen den Buchdeckeln sind lesenswert. Auch weist es eine<br />

für solche Sachbücher ungewöhnliche Aktualität auf. Dies erlaubt den Autoren in ihren Ausführungen zu Offenheit<br />

und Glaubwürdigkeit von Politik den Fall Edward Snowden ganz selbstverständlich einzubeziehen.<br />

Dies sind die Passagen, bei denen der Buchkritiker auch ohne Vorbehalte zust<strong>im</strong>men mag und für die eine<br />

oder andere klug herausgearbeitete Parallele dankt. Eine Menge anderer Stellen jedoch lassen den Rezensenten<br />

den Kopf schütteln, etwa be<strong>im</strong> <strong>im</strong>pliziten Dank für das iPhone, welches das mobile Internet wenigen<br />

computerverliebten Geeks entrissen habe – ganz so, als hätten in der Vor-Smartphone-Ära keine Note- und<br />

Netbooks und kein UMTS existiert.<br />

Richtig schwer zu ertragen ist jedoch der Autoren Opt<strong>im</strong>ismus in Sachen Systemsicherheit. So verspotten<br />

sie Personaler in Firmen, die Facebook am Arbeitsplatz untersagen, als „Betonköpfe“ und prognostizieren,<br />

dass in Bälde junge Menschen Bewerbungsgespräche abbrechen würden, wenn sie von solchen Verboten<br />

hörten. Dass solche Firmen „früher“ Facebook wegen der Social-Engineering-Gefahr untersagten, lassen<br />

sie heute nicht mehr gelten, da man sich „durch geeignete technische Maßnahmen“ davor schützen könne.<br />

Außerdem sei der Nutzen viel zu hoch (in Europa 15 Milliarden Euro jährlich), um es zu verbieten. Seinen<br />

konkret-technischen Blick auf solche Argumente richtend, entfährt dem Rezensenten eine elfte These:<br />

Digitalisierter Bullshit ist dem analogen gleichgestellt.<br />

www.linux-magazin.de<br />

3<br />

Ihre Meinung ist gefragt<br />

Die Redaktion, würde gerne wissen, was Sie über das<br />

<strong>Linux</strong>-<strong>Magazin</strong> denken. Denn wir wollen weiterhin gute <strong>Magazin</strong>e<br />

über eine <strong>Linux</strong>-Welt machen, die ständig <strong>im</strong> Umbruch<br />

ist. Die Umfrage läuft unter [http://www.linux-magazin.de/umfrage2013]<br />

und dauert nur ein paar Minuten. Unter<br />

allen Teilnehmern verlosen wir drei 50-Euro-Gutscheine<br />

für den Medialinx Online-Shop.


Inhalt<br />

www.linux-magazin.de 01/2014 01/2014<br />

4<br />

Home-Automation bringt geballte <strong>Intelligenz</strong> in <strong>Haus</strong>, Büro und sogar Segelyacht: Der <strong>Magazin</strong>-Schwerpunkt<br />

stellt den aktuellen Stand der vernetzten (<strong>Linux</strong>)-Technik vor. Mit dabei<br />

sind diverse Protokolle, Raspberry Pis, aufgebohrte DVB-T-Sticks, IP-Kameras, Stromzähler,<br />

Staubsauger, NAS-Systeme und ein Mesh-Rechner zum Anschrauben an den Bootsmast.<br />

Aktuell<br />

Titelthema: Home-Automation<br />

6 N ew s<br />

n Crowd-finanziertes Blogging<br />

n Kernel 3.12 verbessert Grafiksupport<br />

n Open Stack Havana mit Orchestration<br />

n Neues in Ubuntu 13.10<br />

24 Hard- und Software<br />

Titel<br />

Wer sein He<strong>im</strong> digital automatisieren<br />

will, kommt an FHEM, FS20 und<br />

Konsorten nicht vorbei.<br />

36 IP-Kamera<br />

Kommerzielle und freie Anwendungen<br />

zur Steuerung von Kameras <strong>im</strong> Netz.<br />

Die Webseite des Xen-Projekts feiert bereits:<br />

10 Jahre wird die Virtualisierung alt.<br />

12 Zahlen & Trends<br />

n Wireshark wechselt zu Qt<br />

n Cloud-Überblick der <strong>Linux</strong> Foundation<br />

n Linus sieht rosige Zukunft für <strong>Linux</strong><br />

Scherzen mit dem Publikum der <strong>Linux</strong>con Europe:<br />

Linus Torvalds und Intels Dirk Hohndel.<br />

Ein Raspberry Pi mit zwei Sende-Modulen.<br />

28 Web-Türöffner <strong>im</strong> Eigenbau<br />

Selbst ist der <strong>Linux</strong>-<strong>Haus</strong>meister:<br />

Schließ anlage mit individuellen<br />

Klingeltönen.<br />

30 Software Defined Radio<br />

Mit Hardware für 20 Euro und freier Software<br />

beginnt die Jagd auf Wetterdaten.<br />

Die kommerzielle Surveillance-Software Xeoma<br />

gibt dem Anwender vollen Überblick.<br />

42 Smart Metering<br />

Das Auswerten von intelligen ten Energiezählern<br />

<strong>im</strong> <strong>Haus</strong> steht noch am Anfang.<br />

46 NAS-Systeme für Zuhause<br />

Wer Daten <strong>im</strong><br />

eigenen He<strong>im</strong><br />

sicher zen tral<br />

able gen will,<br />

greift zum<br />

Mini-NAS mit<br />

Addons.<br />

18 Zacks Kernel-News<br />

n Fehler in GCC gefunden<br />

n Kernelinterne Dateisysteme<br />

Mit SDR wird <strong>Linux</strong> zum Funkwellenreiter.<br />

50 Hackerfleet<br />

Der Vollmatrose unter den <strong>Linux</strong>-<br />

Systemen bringt OSS und Mesh ins Boot.<br />

20 Susecon 2013<br />

In Florida traf sich Suses Enterprise-<br />

Com munity in opt<strong>im</strong>istischer St<strong>im</strong>mung.<br />

Ebenfalls Tradition: Im Anschluss an die Susecon<br />

startet der Open Suse Summit.<br />

DELUG-DVD<br />

Open Suse 13.1<br />

TOOL<br />

Bootet von DVD: 64-Bit-Version<br />

der eben erschienenen Nürn bergerin<br />

mit Btr-FS und KDE 4.11.2<br />

Qubes OS<br />

TOOL<br />

TOOL<br />

Von Joanna Rutkowska auf Sicherheit<br />

getr<strong>im</strong>mt, mit Microkernel<br />

und Xen-isolierten Anwendungen<br />

TOOL<br />

TOOL<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 55<br />

E-Book komplett<br />

„C von A bis Z“ auf 1000 Seiten<br />

Debconf 2013<br />

Videos: Prominente Debian-Freunde<br />

be<strong>im</strong> Entwicklertreffen, Teil III<br />

Soft-Appliance<br />

Open Atrium: Drupal-basierte Collaboration-Suite<br />

zum Ausprobieren


01/2014 01/2014<br />

Inhalt<br />

56 Organisationstalente<br />

Firmen und Projekte laden Entwickler,<br />

Benutzer und Fans regelmäßig zu Konferenzen<br />

ein. Den Überblick behalten<br />

sie mit vier Webanwendungen.<br />

72 Schnappschuss<br />

Nach Virsh und Libvirt lernt jetzt auch<br />

das Standard-GUI Virt-Manager, mit<br />

Momentaufnahmen von virtuellen Maschinen<br />

umzugehen. Zeit wird‘s!<br />

90 Web plus plus<br />

Angeregt durch die „Reifeprüfung fürs<br />

Web“ <strong>im</strong> <strong>Linux</strong>-<strong>Magazin</strong> 11/13 zeigen<br />

zwei Autoren, wie sich derlei mit dem<br />

C++-Framework Tntnet lösen lässt.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

55<br />

Einführung<br />

Auf der DELUG-DVD: Open Suse 13.1, ein<br />

E-Book über C, Qubes OS und eine virtuelle<br />

Maschine mit Open Atrium.<br />

71 Einführung<br />

Aus dem Alltag eines Sysadmin: Charly<br />

sichert Daten mit Backup2l.<br />

84 NFtables<br />

Titel<br />

Umbruch in der <strong>Linux</strong>-Firewall: Im<br />

Kernel 3.12 kommen die NFtables.<br />

56 Bitparade<br />

Titel<br />

Vier Event-Manager <strong>im</strong> Test: Frab, OSEM,<br />

Pycon-De-Website-System und Conftool.<br />

64 Qubes OS<br />

Titel<br />

Mit Microkernel und Virtualisierung in<br />

Richtung sicheres Betriebssystem.<br />

Hier hat Backup2l eine differenzielle Level-3-<br />

Sicherung auf ein NAS absolviert.<br />

72 Snapshots <strong>im</strong> Virt-Manager<br />

Titel<br />

Mit Virsh oder erstmals grafisch in<br />

Fedora 20 VMs einfrieren.<br />

Auf IPchains und IPtables folgen die NFtables.<br />

88 Insecurity-Bulletin<br />

Adressflut: Vorsicht vor einem Denial of<br />

Service (DOS) in der Glibc.<br />

Jenseits der Bedrohung: Qubes OS.<br />

68 Tooltipps<br />

Drukkar 1.11, Tinc 1.0.23, Ftwin 0.8.8,<br />

Log Analyzer 3.6.5, Maildrop 2.7.0, und<br />

Binwalk 1.2.2<br />

Forum<br />

76 Recht<br />

Linkedin greift mit Intro in E-Mails seiner<br />

Kunden ein. Mit geltendem Recht ist das<br />

<strong>im</strong> Unternehmen nicht vereinbar.<br />

© mehmet can, 123RF.com<br />

Unerwartet umfangreiche Daten sind gefährlich.<br />

Programmieren<br />

Service<br />

3 Editorial<br />

100 IT-Prof<strong>im</strong>arkt<br />

101 Seminare<br />

104 Veranstaltungen<br />

104 Inserenten<br />

105 Impressum<br />

106 <strong>Vorschau</strong><br />

Einfach nur schöner, das glaubt Linkedin, mache<br />

man die E-Mails der Kunden.<br />

80 Tux liest<br />

Ein Buch über performante<br />

Webanwen<br />

dungen und ein<br />

<strong>Linux</strong>-Handbuch.<br />

82 Leserbriefe<br />

Auf den Punkt gebracht.<br />

90 Tntnet<br />

Titel<br />

Schnelle Webanwendungen in C++ und<br />

mit MVC-Architektur programmieren.<br />

96 Perl-Snapshot<br />

Ein Perl-Bastelprojekt mit der vielseitigen<br />

Arduino-Platine.<br />

Wie von Geisterhand: Perl schaltet Geräte.


Aktuell<br />

www.linux-magazin.de News 01/2014<br />

6<br />

News<br />

Schöner bloggen mit Ghost<br />

Die Entwickler von Ghost,<br />

einer mit 100 000 US-Dollar<br />

Crowd-finanzierten Blogging-<br />

Plattform, haben für ihr Geld<br />

offensichtlich ganze Arbeit<br />

geleistet und eine erste öffentliche<br />

Version ihrer Software<br />

vorgestellt.<br />

Das unter der freien MIT-<br />

Lizenz stehende Blogging-<br />

System geben sie als Maintenance-Release<br />

0.3.2 für<br />

die breite Öffentlichkeit frei.<br />

Die Entwickler des Projekts<br />

hatten zuvor in der nur für<br />

Unterstützer veröffentlichten<br />

Version 0.3.1 noch eine Reihe<br />

von Bugs aufgespürt und entschärft.<br />

Neben einer Downloadmöglichkeit<br />

für Ghost<br />

Ghost ist ein in Javascript geschriebenes Blogging-System.<br />

[http://​ghost.​org/​download/] findet<br />

sich auf den Webseiten<br />

des Projekts auch eine hilfreiche<br />

Anleitung, die Unterstützung<br />

bei der Installation<br />

bietet.<br />

Wer Ghost auf dem eigenen<br />

Server betreiben möchte, benötigt<br />

die letzte stabile Version<br />

0.10.x von Node.js, weil Ghost<br />

in Javascript geschrieben ist.<br />

Wie der Anwender Ghost in<br />

einer Cloudumgebung ausliefert<br />

und auf welchen Plattformen<br />

es zur Zeit nicht läuft,<br />

erklärt eine Deployment-Webseite.<br />

Die lokale Installation klappte<br />

<strong>im</strong> Schnelltest über »npm<br />

install ‐‐production« recht<br />

problemlos, anschließend<br />

erschien das Blog unter der<br />

URL [http://​localhost:2368] <strong>im</strong><br />

Browser. Admins geben [http://​<br />

​localhost:2368/​ghost] ein, um einen<br />

Account zu erstellen. n<br />

Icinga verbessert GUI- und Web-Ansicht<br />

Die Monitoring-Software Icinga<br />

[https://​icinga.​org] ist in der<br />

neuen Version 1.10 erschienen,<br />

sie bringt Änderungen<br />

am klassischen und am Web-<br />

Userinterface mit. Nutzer des<br />

klassischen GUI können jetzt<br />

anklickbare Filter verwenden,<br />

partielle Servicegruppen setzen<br />

sowie Informationen zu<br />

Variablen in den Host- und<br />

Statusdetails abrufen. Die Suche<br />

lässt sich in Version 1.10<br />

über reguläre Ausdrücke verfeinern,<br />

zu denen nun eine<br />

Exklusion über »!« gehört,<br />

die Ergebnisse tauchen schon<br />

während der Such eingabe<br />

farbkodiert auf.<br />

Für Nutzer von Icinga Web ist<br />

der ehemalige Datenbereich in<br />

neue Kategorien unterteilt, die<br />

sich ein- und ausklappen lassen.<br />

Sie können Kommandos<br />

senden, um alle Kommentare<br />

zu einem Host oder Dienst zu<br />

löschen und Verfallsdaten für<br />

die Benachrichtigung auf allen<br />

Instanzen einrichten. Zudem<br />

gibt es neue Ansichten<br />

der Problem-Cronks, die Soft<br />

und Hard States verschiedenfarbig<br />

anzeigen.<br />

Zu den Änderungen <strong>im</strong> Kern<br />

der Monitoring-Software gehört,<br />

dass Nutzer in großen<br />

Umgebungen mehrfache IDO-<br />

Module ergänzen dürfen.<br />

Das von KDE genutzte Phonon-Framework<br />

zur Ausgabe<br />

und Verarbeitung von Video-<br />

und Audio-Material ist<br />

in Version 4.7.0 erschienen.<br />

Den Entwicklern zufolge<br />

weist das VLC-Backend eine<br />

„hohe Qualität“ auf, weshalb<br />

Phonon Inhalte ab sofort über<br />

Zugleich lassen sich Performance-Verbesserungen<br />

durch<br />

das gezielte Abschalten von<br />

Statusupdates für Custom-Variablen<br />

und durch das automatische<br />

Zurechtstutzen von<br />

Tabellen für die Downt<strong>im</strong>e<br />

History erzielen.<br />

n<br />

Phonon in Version 4.7.0 erschienen<br />

VLC ausgibt. Das Gstreamer-<br />

Backend ist jedoch weiterhin<br />

vorhanden und liegt ebenfalls<br />

in neuer Version vor, zudem<br />

wird nun Qt 5 unterstützt.<br />

Die Änderungen der Phonon-<br />

Komponenten sowie eine<br />

Übersicht aller Fehlerkorrekturen<br />

liefert das KDE-Wiki. n


<strong>Linux</strong> 3.12 verbessert Grafiksupport<br />

Schlagzeilen machte die neue<br />

Kernelversion 3.12 bisher vor<br />

allem mit der Performance der<br />

quelloffenen Grafikkartentreiber<br />

für ATI- und Nvidia-Karten:<br />

Der freie Nouveau- sowie<br />

vor allem der Radeon-Treiber<br />

arbeiten dank Kernel 3.12<br />

deutlich schneller, stellte die<br />

Webseite Phoronix in Benchmarks<br />

fest. Verantwortlich<br />

dafür seien hauptsächlich die<br />

Änderungen am CPU-Freq-<br />

Governor, der den Prozessortakt<br />

reguliert.<br />

Der Radeon-Treiber bringt<br />

zudem Support für Dynamic<br />

Power Management mit, das<br />

voraussichtlich ab Kernel 3.13<br />

standardmäßig aktiviert wird.<br />

Dabei schalten die Grafikkarten<br />

zwischen Performance-<br />

Leveln innerhalb der Power-<br />

Zustände hin und her.<br />

Für Intels Haswell-Architektur<br />

hat Paul Zanoni PC8+-Support<br />

integriert. Dabei handelt<br />

es sich um einen tieferen<br />

Schlaf zustand für das System,<br />

aus dem es zugleich schneller<br />

aufwache, was vor allem für<br />

Tablets interessant sei.<br />

Vor dem Hintergrund der aktuellen<br />

Sicherheitsdebatten<br />

sind auch Ted Tsos Änderungen<br />

an »/dev/random« spannend:<br />

Sie sollen während der<br />

Bootsequenz des Kernels das<br />

Initialisieren des Entropiepools<br />

verbessern. Eine neue<br />

und noch exper<strong>im</strong>entelle<br />

Rendernode-Infrastruktur für<br />

DRM soll zudem das Rechnen<br />

und Rendern künftig beschleunigen<br />

und es erlauben,<br />

Kernel Mode Setting und DRM<br />

getrennt anzusteuern.<br />

Das Ext-3-Dateisystem kann<br />

nun auf ein externes Journal<br />

zugreifen, das XFS-Dateisystem<br />

unterstützt User Namespaces,<br />

das Lustre-Dateisystem<br />

ist nach Reparaturen <strong>im</strong><br />

Buildsystem aktiviert. n<br />

Samba 4.1.0 tanzt mit SMB 2 und 3<br />

Samba 4.1.0 bringt laut Ankündigung<br />

erstmals Client-<br />

Tools und ‐Bibliotheken mit,<br />

die mit den neuen Protokollen<br />

SMB 2 und SMB 3 umgehen<br />

können. Das setzt auf der<br />

Gegenseite allerdings einen<br />

Samba-Server ab Version 4.0.0<br />

oder ein Windows 2012 und<br />

Windows 8 voraus.<br />

Als Standardprotokoll für<br />

Smbclient und Smbcacls<br />

kommt indes weiterhin SMB<br />

1 zum Einsatz, über die Option<br />

»‐mSMB3« lässt sich SMB<br />

3 jedoch aktivieren. Alternativ<br />

hilft der Eintrag »client<br />

max protocol = SMB3« in<br />

der »[global]«-Sektion in der<br />

»smb.conf«.<br />

Eine weitere Änderung: Die<br />

Unix-Extensions funktionieren<br />

mit Smbclient nicht mehr,<br />

da SMB 2 und 3 diese nicht<br />

unterstützen. Das hat Folgen<br />

für den verschlüsselten Datentransport,<br />

der nun eine<br />

Alternative braucht. Für SMB<br />

2 wird eine solche in den Release<br />

Notes nicht erwähnt.<br />

Wer SMB 3 verwendet, kann<br />

die AES-CCM-Verschlüsselung<br />

(RFC 5084) über den Parameter<br />

»‐e« aktivieren, was auf<br />

der Gegenseite einen aktuellen<br />

Server voraussetzt.<br />

Zudem gibt es Server-seitigen<br />

Copy-Support über »FSCTL_<br />

SRV_COPYCHUNK« von SMB<br />

2. Er beschleunigt die Kopieraktionen<br />

von Dateien deutlich,<br />

weil sie während des<br />

Vorgangs nicht mehr über das<br />

Netzwerk wandern müssen.<br />

Wer Swat sucht, das grafische<br />

Samba Web Administration<br />

Tool, wird nun nicht mehr<br />

fündig, denn die Software<br />

wurde entfernt – <strong>im</strong> Wesentlichen<br />

aus Security-Gründen.<br />

Samba 4.1.0 seht unter der<br />

GPL, der Quellcode lässt sich<br />

über die Webseite [https://​www.​<br />

​samba.​org] herunterladen. n<br />

News 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

7<br />

<strong>Linux</strong>con Europe: SDN mit Open Daylight<br />

Auf der <strong>Linux</strong>con, die <strong>im</strong> Oktober<br />

in Edinburgh stattfand,<br />

hat sich das Projekt Open Daylight<br />

[http://​www.​opendaylight.​<br />

​org] vorgestellt, das einen<br />

freien Controller für Software<br />

Defined Networking (SDN)<br />

entwickelt. Es bietet REST-<br />

APIs für Service Orchestration<br />

(Northbound Interface) sowie<br />

einen Service Abstraction Layer<br />

(SAL), um mit möglichst<br />

vielen physischen und virtuellen<br />

Netzwerkgeräten zu<br />

kooperieren (Southbound<br />

Interface). Open Daylight unterstützt<br />

das Protokoll Open<br />

Flow, eine Adapterschicht soll<br />

auch Geräte einbinden, die<br />

nur SNMP beherrschen.<br />

Chris Wright von Red Hat,<br />

der Open Daylight vorstellte,<br />

nannte 14 Unterprojekte, die<br />

Komponenten entwickeln und<br />

gemeinsam veröffentlichen.<br />

Zu diesen zählen Hochverfügbarkeit<br />

und Clustering, Workload<br />

Affinity Management,<br />

Lisp Mapping Service (Lisp:<br />

Locator/​Identificator Separation<br />

Protocol) sowie die Yang-<br />

Tools, die Netzwerkmodelle in<br />

Java-Bindings übersetzen. Eine<br />

mittels Angular JS gebaute<br />

Weboberfläche steuert die<br />

Software per REST-API.<br />

Die Webseite des Open-Daylight-Projekts erklärt Software Defined Networking.<br />

Giovanni Meo von Cisco gab<br />

Einblicke in die Implementierung:<br />

Der Controller sei in<br />

Java geschrieben. Erweitern<br />

lasse sich das System in jeder<br />

JVM-Sprache, etwa mit Jruby,<br />

Jython oder Scala. Daneben<br />

baut Open Daylight auf das<br />

OSGI-Framework, das be<strong>im</strong><br />

Modularisieren hilft und Komponenten<br />

zur Laufzeit (un)installierbar<br />

macht.<br />

Neben Red Hat und Cisco arbeiten<br />

Citrix, NEC, IBM, Juniper<br />

und Microsoft an Open<br />

Daylight mit. Die erste Release<br />

mit dem Codenamen Hydrogen<br />

soll <strong>im</strong> Dezember 2013<br />

erscheinen, derzeit tragen 70<br />

Entwickler zum Projekt bei.n


Aktuell<br />

www.linux-magazin.de News 01/2014<br />

8<br />

Open Stack Havana mit Metering und Orchestration<br />

Das freie Cloud-Computing-<br />

Framework Open Stack [http://​<br />

​www.​openstack.​org] macht in<br />

der Release 2013.2 alias Havana<br />

mit zahlreichen Neuerungen<br />

auf sich aufmerksam.<br />

Mit Open Stack Metering (Ceilometer)<br />

und Orchestration<br />

(Heat) wird das Framework<br />

um zwei brandneue Komponenten<br />

bereichert, die Nutzungs-<br />

und Performancedaten<br />

sammeln sowie komplette Applikationen<br />

anhand von Templates<br />

einrichten.<br />

Daneben gibt es viele Verbesserungen<br />

an den bestehenden<br />

Komponenten: Der Object-Storage<br />

Swift kann nun in einem<br />

einzigen Cluster große geografische<br />

Gebiete umspannen.<br />

Daneben lässt sich zur Konfiguration<br />

ein Verzeichnis mit<br />

mehreren Dateien einsetzen.<br />

Durch Neuordnen von Festplattenzugriffen<br />

und Thread<br />

Pools verbessert sich die Disk-<br />

Performance. Die Compute-<br />

Komponente Nova erhielt<br />

exper<strong>im</strong>entell eine bereinigte<br />

Version 3 des REST-API, das<br />

in der Icehouse-Release fertiggestellt<br />

werden soll. Daneben<br />

unterstützt Nova nun die<br />

Virtualisierungscontainer von<br />

Docker.<br />

Auch rund um Image-Server,<br />

Dashboard, Identity- und<br />

Netzwerkdienste gibt es viel<br />

Neues. Rund 400 Änderungen<br />

zählen die umfangreichen<br />

Release Notes auf. Daneben<br />

findet sich auf der Havana-<br />

Seite ein Screencast zur Einführung.<br />

Open Stack Havana ist in<br />

der jüngsten Ubuntu-Release<br />

13.10 enthalten, für Suse gibt<br />

es Pakete <strong>im</strong> Open Build Service.<br />

Daneben ist der Quellcode<br />

per Git erhältlich, es gilt<br />

die Apache-Lizenz. n<br />

Das ist neu in Ubuntu 13.10<br />

Ubuntu 13.10 ist da, und besonders<br />

stolz sind die Entwickler<br />

auf Ubuntu Touch, die<br />

erste stabile Smartphone-Variante<br />

von Ubuntu. Sie besteht<br />

<strong>im</strong> Kern aus einem Ubuntu,<br />

bringt aber eine Touch-Oberfläche<br />

für Smartphone-Nutzer<br />

mit. Canonicals nächstes Ziel:<br />

2014 will die Firma das OS<br />

zusammen mit einem Hardwarepartner<br />

auf den Markt<br />

bringen, wobei ein konkretes<br />

Partnerschafts-Announcement<br />

nach wie vor fehlt. Bis dahin<br />

liegt noch ein arbeitsreicher<br />

Weg vor dem Projekt: Die<br />

„Known-Problems“-Sektion in<br />

den Release Notes listet zahlreiche<br />

Probleme auf.<br />

Auch mehr Apps benötigt die<br />

Plattform noch: Aktuell preist<br />

die Pressemitteilung lediglich<br />

einen Browser, einen Kalender,<br />

eine Uhr, einen Taschenrechner<br />

sowie eine Wetter-App<br />

an, also nichts Spektakuläres.<br />

Vorhandenen Apps fehlen zudem<br />

noch grundlegende Fähigkeiten:<br />

So lassen sich etwa<br />

Events <strong>im</strong> Kalender nicht<br />

ändern und keine Reminder<br />

einstellen, der Kamera-App<br />

fehlt eine Videofunktion, der<br />

Uhr eine Alarmfunktion und<br />

so weiter. Ein opt<strong>im</strong>iertes SDK<br />

und das Schlagen der Werbetrommel<br />

für App-Entwickler<br />

sollen in diesem Bereich die<br />

Wende bringen.<br />

Die Änderungen für die Desktop-Variante<br />

fallen eher mau<br />

aus, da sich die Entwickler<br />

auf den Mobilbereich konzentrierten.<br />

So ist Mir, der neue<br />

Displayserver, standardmäßig<br />

nur auf Smartphones <strong>im</strong> Einsatz.<br />

Auf dem Desktop bleibt<br />

er lediglich eine Option, weil<br />

die Qualität von Xmir nicht<br />

ausreiche. Von Mir verspricht<br />

Der PC-Desktop von Ubuntu 13.10 bringt recht wenige Neuerungen mit.<br />

sich Canonical eine dramatisch<br />

bessere Performance für<br />

Spiele und einen opt<strong>im</strong>ierten<br />

Zugriff auf die verbaute Grafik-Hardware.<br />

Eine so genannte Smart<br />

Scope bündelt die Ergebnisse<br />

von mehr als 50 Scopes,<br />

also von Suchfunktionen für<br />

Onlinedienste wie Wikipedia,<br />

Amazon, Google News und<br />

Flickr. Im Test zeigten die<br />

zurückgelieferten Ergebnisse<br />

mitunter noch recht wenig Relevanz.<br />

Die zwischengeschalteten<br />

Server sollen aber lernfähig<br />

sein, um sukzessive bessere<br />

Ergebnisse zu erzielen.<br />

Die Webanfragen wandern<br />

dabei über Canonicals Server,<br />

die sie anonymisieren – das<br />

schließt auch Bilder ein.<br />

Neben optischen Änderungen<br />

am Desktop fällt zunächst<br />

auf, dass der Installer ein Zusatzfenster<br />

mitbringt, um Profile<br />

für Ubuntus Clouddienst<br />

Ubuntu One einzurichten. Ein<br />

Indikator-Icon in der rechten<br />

oberen Ecke lässt die Benutzer<br />

ein anderes Tastaturlayout<br />

wählen.<br />

Unter der Haube arbeitet<br />

Kernel 3.11, Upstart ist in<br />

Version 1.10 dabei. Von der<br />

Cloudumgebung Open Stack<br />

ist die brandneue Version<br />

2013.2 (Codename Havana)<br />

mit von der Partie. Auch LXC<br />

hat Ubuntu 13.10 <strong>im</strong> Gepäck,<br />

allerdings in einer ersten Alphaversion.<br />

Be<strong>im</strong> Virtualisieren<br />

helfen Qemu 1.5.0 und<br />

Libvirt 1.1.1, Ceph 0.67.4 verbessert<br />

die Performance und<br />

beherrscht eine Blockdevice-<br />

Verschlüsselung.<br />

In den Release Notes finden<br />

sich weitere Informationen<br />

und Links auf zahlreiche<br />

Ubuntu-Versionen. n


Kritik an CDM-Entwicklung <strong>im</strong> W3C<br />

Brendan Eich, Javascript-Erfinder<br />

und CTO von Mozilla,<br />

kritisiert die aktuelle Entwicklung<br />

von DRM unter dem<br />

Schirm des W3C. Mozilla sei<br />

nicht generell gegen DRM,<br />

aber der aktuell eingeschlagene<br />

Weg sei falsch.<br />

Eichs Kritik [https://​brendaneich.​<br />

​com/​2013/​10/] richtet sich gegen<br />

eine Unterspezifizierung der<br />

Content Decryption Modules<br />

(CDMs) für DRM, die <strong>im</strong><br />

Rahmen der Encrypted Media<br />

Extensions (EME) unter dem<br />

Dach des W3C entwickelt werden.<br />

Aufgrund dieser müssten<br />

Browser, die DRM unterstützen<br />

möchten, künftig verschiedene<br />

Plugins für diverse<br />

Betriebssysteme supporten,<br />

weil die CDMs voneinander<br />

abweichen. Das aber laufe<br />

der Standardisierungsaufgabe<br />

des W3C zuwider. Dem Konsortium<br />

wirft er vor, lediglich<br />

die Interessen der zahlenden<br />

Mitglieder zu vertreten, nicht<br />

aber für Standards und ein offenes<br />

Web zu sorgen.<br />

In den Kommentaren widerspricht<br />

Jeff Jaffe vom W3C.<br />

EME sei nicht willentlich unterspezifiziert,<br />

sondern nur<br />

ein Entwurf, und das W3C<br />

habe diesem gegenüber keinerlei<br />

Position bezogen oder<br />

eine Spezifikation akzeptiert.<br />

Man betrachte eine Content-<br />

Protection-Lösung lediglich<br />

ganz allgemein als vom W3C<br />

spezifizierbar. Mozilla könne<br />

gern Kritik anmelden, aber<br />

es sei nicht geplant, DRM in<br />

HTML 5 zu integrieren.<br />

Dem stellt sich Eich entgegen:<br />

Es sei Mark Watson<br />

von Netflix gewesen, der die<br />

CDM-Spezifikation als „unterspezifiziert“<br />

bezeichnet<br />

habe. Watson entwickelt EME<br />

vornehmlich zusammen mit<br />

Mitarbeitern von Microsoft,<br />

Apple und der BBC. Das W3C<br />

verfolge die Diskussionen auf<br />

der Mailingliste seit geraumer<br />

Zeit, so Eich, und er wäre sehr<br />

überrascht, wenn es seine Kritik<br />

lediglich aufspare, bis die<br />

Spezifikation fertig sei.<br />

Die Kritik käme dann auch<br />

recht spät, weil es bereits erste<br />

Implementierungen von<br />

EME in der freien Wildbahn<br />

gäbe: Netflix nutzt EME in<br />

Verbindung mit dem IE 11<br />

unter Windows 8.1, auch für<br />

Chrome OS gibt es eine Implementierung.<br />

Zudem weist<br />

Eich darauf hin, dass Netflix<br />

EME sehr wohl als HTML-5-<br />

Erweiterung sehe, und zitiert<br />

den bereits genannten Mark<br />

Watson. Zudem arbeite er weiterhin<br />

mit anderen Anbietern<br />

an einer Watermark-Lösung<br />

und verweist auf einen Bugreport<br />

zur EME-Entwicklung,<br />

der die Interoperabilität von<br />

CDMs anmahnt.<br />

n<br />

News 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

9


Aktuell<br />

www.linux-magazin.de News 01/2014<br />

10<br />

Kurznachrichten<br />

G<strong>im</strong>p 2.10: Freie Bildbearbeitung und Photoshop-Alternative mit unzähligen<br />

Filtern. Neu: Der neue Metadaten-Editor von G<strong>im</strong>p kann Exif-, XMPund<br />

IPTC-Metadaten in Bildern der Formate JPG, Tiff, PNG und PSD lesen,<br />

schreiben und bearbeiten. Um die Metadaten zu speichern, nutzen die<br />

Entwickler Exiv2 und Gexiv2 des Yorba-Teams, der Macher von Shotwell.<br />

Lizenz: (L)GPLv3 [http://​www.​g<strong>im</strong>p.​org]<br />

Wordpress 3.7: Blogging-Software mit Contentmanagement-Funktionen.<br />

Neu: Die Release mit dem Codenamen Basie führt automatische Updates<br />

<strong>im</strong> Hintergrund ein. Die Software installiert automatisch Bugfixes und<br />

Security-bedingte Aktualisierungen. Daneben hat Wordpress die Anforderungen<br />

an Passwörter verschärft. Suchergebnisse sortiert die Software<br />

nach Relevanz, ausgenommen sind die Feeds einer Suche. Außerdem gibt<br />

es rascher lokalisierte Ausgaben einer neuen Wordpress-Release. Lizenz:<br />

GPLv2 [http://​wordpress.​org]<br />

Seafile 2.0: Die Dropbox-ähnliche Software verwendet eine Server-Client-<br />

Architektur zur Synchronisation von Dateien zwischen Clients über einen<br />

zentralen Server. Neu: An Bord ist eine überarbeitete Kryptographie-Funktion,<br />

die Dateien <strong>im</strong> Webbrowser ver- und entschlüsselt. Das setzt aktuelle<br />

Versionen der Browser Firefox oder Chrome voraus. Der Desktop-Client<br />

bringt ein neues GUI mit, das in Qt programmiert ist. Der Seafile-Server<br />

lockt mit Funktionen zum Backup und Restore, sogar ein Dateisystem-<br />

Check steht zur Verfügung. Lizenz: GPLv2 [https://​seacloud.​cc]<br />

Geexbox 3.1: Eine schlanke Mult<strong>im</strong>edia-Distribution für PCs und Kleinstrechner.<br />

Neu: Die aktuelle XBMC-Version Frodo dient Geexbox als Front​end<br />

für die Backends VDR und Tvheadend, die den Rechner in einen Personal<br />

Video Recorder (PVR) verwandeln. Geexbox setzt laut Ankündigung in der<br />

neuen Version auf den <strong>Linux</strong>-Kernel 3.10.9 und Systemd in Version 206.<br />

Alsa kümmert sich um den Sound, für eine flüssige Grafikwiedergabe sorgen<br />

VDPAU, VA-API und Crystal HD für die GPUs von Nvidia, ATI respektive<br />

Broadcom. Netzwerktechnisch kennt Geexbox NFS- und Samba-Shares,<br />

beherrscht UPnP und bietet einen HTTP-, FTP- sowie SSH-Server an.<br />

Lizenz: GPLv2 [http://​www.​geexbox.​org]<br />

Xen feiert 10. Geburtstag<br />

Vor zehn Jahren, am 21. Oktober<br />

2003, wurde der Xen Hypervisor<br />

auf dem 19. „ACM<br />

Symposium on Operating<br />

Systems Principles“ der Öffentlichkeit<br />

als Open-Source-<br />

Projekt vorgestellt. In den folgenden<br />

Jahren hat Xen [http://​<br />

​www.​xenproject.​org] zwar Konkurrenz<br />

von KVM bekommen<br />

und eine größere Krise hinter<br />

sich gebracht, er gilt aber vielen<br />

heute wieder als einer der<br />

beiden großen quelloffenen<br />

Hypervisoren.<br />

Anlässlich des Geburtstags<br />

erinnert Community-Manager<br />

Lars Kurth an die Anfänge<br />

von Xen. Die lagen in den<br />

90er Jahren an der Universität<br />

Cambridge, wo Xen <strong>im</strong> Rahmen<br />

des Forschungsprojekts<br />

Xenoserver entstand, das eine<br />

öffentliche Infrastruktur für<br />

Distributed Computing über<br />

WAN bereitstellen wollte, was<br />

laut Kurth heute unter dem<br />

Namen Cloud Computing bekannt<br />

sei. Kein Wunder, dass<br />

Xen in der Cloudinfrastruktur<br />

der Amazon Web Services<br />

und be<strong>im</strong> Provider Rackspace<br />

zum Einsatz kommt.<br />

Doch Kurth spart auch Selbstkritik<br />

nicht aus: Weil Xen ein<br />

konkurrenzloser Vorreiter war,<br />

habe man nicht genug für die<br />

Community getan, sich zu<br />

wenig bewegt. Das habe dazu<br />

geführt, dass die Xen-Community<br />

einen schlechten Ruf erhielt,<br />

auf der technischen Seite<br />

habe sie den <strong>Linux</strong>-Kernel,<br />

Qemu und die Distributionen<br />

Die Webseite des Xen-Projekts weist auf das 10-jährige Jubiläum hin.<br />

Sabayon-Foren gehackt<br />

Schlechte Nachrichten für<br />

Nutzer des Sabayon-Forums:<br />

Ihre Salt-geschützten Passwörter<br />

wurden gestohlen, die<br />

Infrastruktur des Forums angegriffen.<br />

Der Angriff fand Ende<br />

Oktober statt, die Cracker<br />

hatten die Zugangsdaten eines<br />

Administrators erbeutet.<br />

Mit Hilfe von PHP-Backdoor-<br />

Skripten und in die FAQ injiziertem<br />

PHP-Code haben die<br />

Angreifer Zugriff auf alle User<br />

Accounts erlangt, schreibt der<br />

Chief Architect von Sabayon<br />

mit dem Nick name Lxnay. Er<br />

habe den Angriff unter hohem<br />

vernachlässigt. Schließlich sei<br />

Xen nur noch als Dinosaurier<br />

betrachtet worden, unbeweglich<br />

und vom Aussterben<br />

bedroht.<br />

Doch das Projekt habe die<br />

Kurve bekommen, die Projektverwaltung<br />

opt<strong>im</strong>iert, mit<br />

anderen Projekten zusammengearbeitet,<br />

neue Marketing-Kampagnen<br />

gestartet und<br />

die User und Zuarbeiter aktiver<br />

eingebunden. Als Resultat<br />

dieser Anstrengungen wachse<br />

die Community wieder und<br />

sei vielfältiger als je zuvor.<br />

Zugleich erobere Xen neue<br />

Felder wie etwa Smartphones<br />

und In-Car-Infotainment-Systeme.<br />

Die Geburtstagsparty<br />

fand allerdings schon vorgezogen<br />

statt, <strong>im</strong> April auf dem<br />

<strong>Linux</strong> Foundation Collaboration<br />

Summit.<br />

n<br />

Zeitaufwand analysiert, die<br />

Schwachstellen behoben und<br />

die Datenbanken aus dem<br />

Backup wiederhergestellt. Vor<br />

allem habe er das Alarmsystem<br />

verbessert, das nun unter<br />

anderem auf ungewollte<br />

Uploads und weitere Signale<br />

reagiere.<br />

Die User müssen allerdings<br />

ihre Passwörter ändern, es<br />

genüge nicht, den Account<br />

einfach zu deaktivieren. Wer<br />

sein Passwort vergessen habe,<br />

könne sich an die Entwickler<br />

wenden. (kki/mfe/mhu/T<strong>im</strong><br />

Schürmann)<br />

n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 01/2014<br />

12<br />

Zahlen & Trends<br />

Wireshark gibt GTK+ den Laufpass<br />

Die gute alte Zeit: Wireshark hieß Ethereal und lief unter Solaris und <strong>Linux</strong>.<br />

Mit dem Schritt von GTK+ zu<br />

Qt läutet das Wireshark-Projekt<br />

nach eigenen Angaben in<br />

der aktuellen Version 1.11.0<br />

einen größeren Richtungswechsel<br />

ein. Sowohl GTK+<br />

als auch Qt seien zwar gute<br />

Bibliotheken, um plattformübergreifend<br />

Anwendungen<br />

zu schreiben, aber GTK+<br />

unterstütze nicht alle Plattformen,<br />

auf denen Wireshark<br />

laufen soll, und die Situation<br />

scheine nicht besser zu werden,<br />

schreibt Gerald Combs<br />

<strong>im</strong> Projektblog [https://​blog.​<br />

​wireshark.​org/​2013/​10/].<br />

Mit Tausenden Zeilen Code,<br />

die das Projekt geändert habe,<br />

sei Wireshark vermutlich die<br />

größte Stand-alone-Anwendung,<br />

die so einen Wechsel<br />

vollzogen habe. Für die Langzeitausrichtung<br />

sei der Schritt<br />

aber wichtig: Letztlich könne<br />

Wireshark den Traffic auf einem<br />

System nur anzeigen,<br />

wenn es auch auf diesem<br />

System laufe.<br />

Quelle: www.wireshark.org<br />

Dann folgt ein Blick zurück:<br />

Als Wireshark noch Ethereal<br />

hieß, habe es nur zwei Plattformen<br />

unterstützt: <strong>Linux</strong> und<br />

Solaris. GTK+ war damals die<br />

perfekte Wahl. Die Plattformlandschaft<br />

habe sich seitdem<br />

geändert, GTK+ allerdings<br />

eher weniger. So sei es unter<br />

OS X schwierig zu installieren<br />

und es erfordere einigen<br />

Aufwand, selbst eine unterdurchschnittliche<br />

Anwendung<br />

für diese Plattform zu entwickeln.<br />

Qt laufe hingegen auf<br />

den gewünschten Plattformen<br />

und biete dabei ein nettes Benutzererlebnis.<br />

OS-X-Nutzern rät Combs zum<br />

Qt-Port, der allerdings noch<br />

recht rud<strong>im</strong>entär ausgestattet<br />

sei. Poweruser, die Windows<br />

oder <strong>Linux</strong> verwenden,<br />

sollten vorerst weiter GTK+<br />

einsetzen. In der Qt-Variante<br />

fehlen bislang noch Capture-<br />

Optionen, I/​O- und Flow-Graphen,<br />

eine VoIP-Analyse und<br />

einiges mehr.<br />

n<br />

Rubinius X soll das bessere Ruby werden<br />

Debian 7.2 und Freeze-Termin für Debian 8<br />

Ruby-Entwickler Brian Shirai<br />

hat ein Projekt namens Rubinius<br />

X gestartet, das Ruby<br />

modernisieren will. In seinem<br />

Blogeintrag [http://​rubini.​<br />

​us/​2013/​10/​15/] schreibt er, dass<br />

die Liebelei der Wirtschaft mit<br />

Ruby vorbei sei, viele Firmen<br />

würden sich anderen Sprachen<br />

zuwenden. Dem Trend<br />

möchte er eine Sprache entgegensetzen,<br />

die die Bedürfnisse<br />

der Unternehmen befriedigt,<br />

Ruby aktualisiert und den<br />

Programmierern sichere Arbeitsplätze<br />

beschert.<br />

Die Website [http://​x.​rubini.​us]<br />

listet die für Rubinius X geplanten<br />

Neuerungen auf. Es<br />

handelt sich um Features, die<br />

auch andere Programmiersprachen<br />

mitbringen. Dazu<br />

gehören etwa Promises und<br />

Non-blocking I/​O, bessere<br />

Unterstützung für Nebenläufigkeit<br />

und verteilte Anwendungen<br />

sowie passendere<br />

Datentypen für numerische<br />

Werte. Wer sich für das Projekt<br />

interessiert, kann seine E-<br />

Mail-Adresse auf der Webseite<br />

hinterlassen.<br />

n<br />

Während die Version 7.2<br />

der Debian-Distribution ausschließlich<br />

Fehler behebt,<br />

haben die Entwickler in ihrer<br />

Ankündigung von Mitte Oktober<br />

auch gleich das Datum<br />

für den Feature Freeze der<br />

kommenden Debian-Version<br />

8 festgelegt.<br />

Demnach erlauben die Debianer<br />

den Einbau von Änderungen<br />

noch bis zum 5.<br />

November 2014. An diesem<br />

Stichtag frieren sie die aktuelle<br />

Debian-Variante ein und<br />

planen, sie nach einer mehrmonatigen<br />

Testphase als stabile<br />

Debian-Version 8 unter<br />

dem Code namen Jessie zu<br />

veröffentlichen. Ein konkreter<br />

Release-Termin steht allerdings<br />

noch nicht fest.<br />

Die behobenen Fehler der<br />

Version 7.2 fasst indes ein<br />

Change log zusammen, so<br />

kletterte etwa die Nummer der<br />

Kernelversion auf 3.2.51. Die<br />

Entwickler haben insgesamt<br />

sechs Pakete ausgemustert,<br />

darunter den Twitter-Client<br />

Turpial und die Iceweasel-<br />

Erweiterung Dactyl. n


Praktische Open-Cloud-Übersicht von der <strong>Linux</strong> Foundation<br />

Mehr Durchblick: Der Open Cloud Report der <strong>Linux</strong> Foundation bietet eine praktische<br />

Übersicht zum Thema.<br />

Der Markt für freie Cloudprodukte<br />

ist recht unübersichtlich<br />

geworden. Um Licht<br />

in den Anbieter-Wirrwarr<br />

Quelle: <strong>Linux</strong> Foundation<br />

zu bringen, bietet die <strong>Linux</strong><br />

Foundation ein PDF an, das<br />

die freien Cloudlösungen in<br />

einen Kontext einsortiert.<br />

Nach Eingabe der Benutzerdaten<br />

können Interessierte den<br />

Open Cloud Report von den<br />

Seiten der <strong>Linux</strong> Foundation<br />

herunterladen. Das 13-seitige<br />

Dokument bietet zuerst eine<br />

kurze Einführung ins Thema<br />

„Open Cloud“, erklärt die<br />

Profilierungsmethode und<br />

präsentiert dann Kästen zu<br />

den einzelnen freien Cloudapplikationen.<br />

Für jede Lösung<br />

erwartet den Leser ein Kasten,<br />

wobei die Macher zwischen<br />

Hypervisoren, Containern,<br />

IaaS, PaaS, Storage, Provisioning-<br />

und Management-Tools<br />

unterscheiden.<br />

Wissenswert ist unter anderem,<br />

welche Firmen den<br />

meisten Code zu einer Lösung<br />

beisteuern, ob und von wem<br />

es kommerziellen Support<br />

gibt und wer die Lösungen<br />

hauptsächlich verwendet.<br />

Entwickler und Sysadmins<br />

dürften sich vor allem dafür<br />

interessieren, welche Programmiersprachen<br />

vorrangig<br />

zum Einsatz kommen und<br />

aus wie vielen Codezeilen ein<br />

Projekt besteht. Nicht zuletzt<br />

erklärt das PDF jede Cloudsoftware<br />

kurz und erwähnt<br />

die eingesetzte Lizenz. Am<br />

häufigsten kommt aktuell die<br />

Apache-2.0-Lizenz zum Einsatz,<br />

gefolgt von verschiedenen<br />

GPL-Varianten und einem<br />

Vertreter unter MIT-Lizenz. n<br />

Zahlen & Trends 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Github versammelt Behördensoftware<br />

Anzeige<br />

Immer mehr Regierungen,<br />

Behörden und Gemeinden<br />

setzen Open-Source-Software<br />

ein. Mitunter landet der<br />

selbst entwickelte Quellcode<br />

dann auf Github. Die Codeplattform<br />

hat nun eine eigene<br />

Webseite angelegt, die solche<br />

Projekte versammeln will.<br />

Unter [http://​government.​github.​<br />

​com] können sich Entwickler<br />

einen Überblick darüber verschaffen,<br />

welcher Code von<br />

öffentlichen Einrichtungen<br />

offiziell verfügbar ist.<br />

Die Seite konzentriert sich<br />

zwar hauptsächlich auf amerikanische<br />

Regierungsprojekte,<br />

listet aber auch den öffentlich<br />

verfügbaren Code anderer<br />

Länder auf, etwa von Norwegen,<br />

Schweden oder Frankreich.<br />

Mit der Aktion will<br />

Github vermutlich öffentliche<br />

Einrichtungen für den eigenen<br />

Dienst begeistern.<br />

n<br />

Ubuntu 14.04 soll Trusty Tahr heißen<br />

Das nächste Ubuntu soll <strong>im</strong><br />

April 2014 erscheinen, die Versionsnummer<br />

14.04 tragen,<br />

Long Term Support (LTS) erhalten<br />

und wird Trusty Tahr<br />

(Treuer Tahr) heißen. Tahre<br />

sind eine Ziegenart und in<br />

der H<strong>im</strong>alaya-Region, <strong>im</strong><br />

südlichen Indien sowie auf<br />

der arabischen Halbinsel zu<br />

<strong>Haus</strong>e.<br />

Man wolle den Fokus für die<br />

LTS-Version auf Performance,<br />

Verfeinerung und Wartbarkeit<br />

legen, schreibt der Ubuntu-<br />

Gründer Mark Shuttleworth.<br />

Er sei mit der Wahl konservativer<br />

Ziele einverstanden. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 01/2014<br />

14<br />

10 Millionen für Nginx Inc.<br />

Nginx ist ein Webserver,<br />

der unter der 2-Clause-BSD-<br />

Lizenz bereitsteht. In einer<br />

zweiten Funding-Runde sammelte<br />

Nginx Inc., die Firma<br />

hinter dem Projekt, 10 Millionen<br />

US-Dollar an frischem<br />

Geld ein. Sie bietet eine kommerzielle<br />

Variante des Nginx-<br />

Servers an.<br />

Zu den Neuinvestoren gehören<br />

die New Enterprise<br />

Associates, aber auch die<br />

Geldgeber der ersten Runde.<br />

Die Mittel flossen kurz nach<br />

der Ankündigung von Nginx<br />

Plus, zwei subskriptionsbasierten<br />

Servervarianten mit<br />

Extrafeatures [http://​nginx.​<br />

​com/​products/]. Dazu gehören<br />

fortgeschrittenes Load Balancing<br />

sowie eingebaute Health<br />

Checks. Auch HTTP Live<br />

Streaming (Apple) und HTTP<br />

Dynamic Streaming (Adobe)<br />

sind nur mit den kommerziellen<br />

Produkten möglich.<br />

Nicht zuletzt bietet Nginx Inc.<br />

für die beiden Versionen auch<br />

professionellen Support an:<br />

Die Variante Plus Standard<br />

bringt einen 9-to-5-Support<br />

mit und kostet jährlich 1350<br />

US-Dollar pro Server. Für 2700<br />

US-Dollar erhält der Käufer<br />

die Plus-Premium-Ausgabe<br />

mit zusätzlichen Hot Bugfixes<br />

und 24/​7-Support. n<br />

Initiative für freie Spracherkennung<br />

Peter Grasch wurde als Autor<br />

von S<strong>im</strong>on bekannt, einer<br />

Software für Spracherkennung<br />

unter <strong>Linux</strong>. Nun hat der<br />

Entwickler die Open Speech<br />

Initiative gestartet, um eine<br />

nachhaltige Community rund<br />

um freie Spracherkennungssysteme<br />

aufzubauen.<br />

In seinem Blog [http://​grasch.​<br />

​net/​node/​24] berichtet Grasch<br />

zunächst über seine Arbeit an<br />

der Diktiersoftware für S<strong>im</strong>on,<br />

um dann den Aufbau eines<br />

Netzwerks von Entwicklern<br />

und Forschern zur Sprache<br />

zu bringen. Diese sollen nach<br />

seiner Vorstellung zusammenarbeiten,<br />

um hochakkurate,<br />

mit großem Vokabular ausgestattete<br />

Sprachsysteme zu<br />

entwickeln, die auf verschiedenen<br />

Feldern zum Einsatz<br />

kommen können.<br />

Dabei wolle man freie Software<br />

einsetzen, was aber eine<br />

Menge Arbeit auf verschiedenen<br />

Gebieten nach sich ziehe.<br />

Die Open Speech Initiative<br />

solle unter dem Dach des<br />

KDE-Projekts [http://​speech.​kde.​<br />

​org] angesiedelt sein und die<br />

nötige Organisationsstruktur<br />

bieten, um eine nachhaltige<br />

Community aufzubauen. Zum<br />

Team gehören aktuell Adam<br />

Nash, Mario Fux, Jon Lederman<br />

sowie Peter Grasch. n<br />

<strong>Linux</strong>con Europe: Torvalds sieht rosige <strong>Linux</strong>-Zukunft<br />

Auf der <strong>Linux</strong>con Europe,<br />

die Ende Oktober in Edinburgh<br />

stattfand, hat sich Linus<br />

Torvalds länger mit Intels<br />

Open-Source-Chef Dirk Hohndel<br />

und dem Publikum <strong>im</strong> Saal<br />

über Gegenwart und Zukunft<br />

von <strong>Linux</strong> unterhalten.<br />

„Läuft die Kernelentwicklung<br />

zu schnell?“, fragte Hohndel<br />

gleich zu Beginn und fuhr<br />

fort: „Sollten die Entwickler<br />

nicht besser Bugs fixen als<br />

neue Features einbauen?“<br />

Torvalds zeigte sich mit dem<br />

gegenwärtigen Vorgehen und<br />

Tempo sehr zufrieden: „Wir<br />

haben den derzeitigen Prozess<br />

seit sechs Jahren, und<br />

weder beeilen wir uns mit den<br />

Features, noch haben wir monatelange<br />

Freezes, in denen<br />

gar nichts vorangeht.“<br />

Über die Antwort auf eine<br />

Frage nach der Perspektive<br />

für die nächsten zehn, 15<br />

Jahre musste Torvalds kurz<br />

nachdenken. Der Desktop sei<br />

nach wie vor eine Herausforderung,<br />

insbesondere sollten<br />

die Entwickler dort ihre Grabenkämpfe<br />

beenden und sich<br />

auf die Funktionalität konzentrieren.<br />

Er habe ohnehin nie<br />

einen Fünfjahresplan gehabt<br />

und <strong>Linux</strong> habe sich dennoch<br />

prächtig entwickelt.<br />

Aufregende neue Features für<br />

den Kernel sieht der oberste<br />

<strong>Linux</strong>er nicht: „Wenn ich es<br />

schon wüsste, wäre es nicht<br />

aufregend.“ Die Core-Funktionalität<br />

arbeite zuverlässig,<br />

nur gäbe es <strong>im</strong>mer wieder<br />

„Verrückte, die irgendetwas<br />

Neues brauchen“. <strong>Linux</strong> tue<br />

schon seit 20 Jahren, was sein<br />

Erfinder wolle, die größte Herausforderung<br />

sei aber <strong>im</strong>mer<br />

wieder neue Hardware. „Der<br />

Scherzten mit dem Publikum der <strong>Linux</strong>con Europe: Kernel-Vater Linus Torvalds<br />

(links) und Intels Open-Source-Chef Dirk Hohndel.<br />

Kernel hat einfach die Aufgabe,<br />

eine stabile Basis zu bilden,<br />

auf die sich die Anwender<br />

verlassen und auf der sie<br />

ihre Arbeit machen können“,<br />

schloss er das Thema ab.<br />

Linus mag seinen Posten bei<br />

der <strong>Linux</strong> Foundation, der ihm<br />

viele Freiheiten lasse: „Sollte<br />

sich das ändern und es macht<br />

mir keinen Spaß mehr, höre<br />

ich auf“, resümierte er. Was<br />

passiere, wenn Linus vom<br />

Bus überfahren werde, wollte<br />

Hohndel wissen. Der zeigte<br />

sich unbesorgt: „Es gibt viele,<br />

die schon seit 20 Jahren an<br />

<strong>Linux</strong> mitarbeiten. Manche<br />

von 1991 sind noch dabei,<br />

manche sind abgewandert,<br />

manche schon verstorben.<br />

Aber viele wissen, wie ich arbeite<br />

– auch wenn sie nicht<br />

<strong>im</strong>mer damit einverstanden<br />

sind. Daher glaube ich, dass<br />

auch andere meinen Job machen<br />

könnten: unhöflich sein<br />

und Patches annehmen.“ n


Debian diskutiert Wechsel zu Systemd oder Upstart<br />

Debian gehört zu den wenigen<br />

großen Distributionen,<br />

die noch auf das klassische<br />

Initsystem Sysvinit setzen.<br />

Nun denken die Debianer auf<br />

der Mailingliste laut über einen<br />

Wechsel zu einem neuen<br />

Initsystem nach. Das Thema<br />

ist allerdings recht komplex<br />

und bietet reichlich Zündstoff<br />

für lange Diskussionen.<br />

Upstart wird bereits seit einigen<br />

Jahren ausschließlich von<br />

Ubuntu-Entwicklern gepflegt,<br />

während das jüngere Systemd<br />

vor allem bei Red-Hat- und<br />

Gnome-Entwicklern Anklang<br />

findet – der Gnome-Desktop<br />

integriert Systemd inzwischen<br />

recht weitgehend in die eigene<br />

Infrastruktur.<br />

Das aber stellt Debian vor<br />

Probleme unterschiedlicher<br />

Art. Auf der technischen Seite<br />

würde aktuell die Festplattenverschlüsselung<br />

über Dmcrypt<br />

nicht ausreichend integriert,<br />

funktioniere GDM 3 nicht<br />

ohne Systemd und würden<br />

andere als der <strong>Linux</strong>-Kernel<br />

nicht von Systemd unterstützt,<br />

lauten die Argumente einiger<br />

Diskutanten auf der Mailingliste.<br />

Vor allem aber verletze<br />

Systemd eklatant die „Ein Job,<br />

ein Tool“-Regel.<br />

Die Systemd-Gegner unter<br />

den Debian-Entwicklern sehen<br />

zudem eine Embraceand-Extend-Taktik<br />

am Werke<br />

und möchten Systemd zumindest<br />

modularisieren, um<br />

sicherzustellen, dass Debian<br />

notfalls andere Initsysteme<br />

verwenden kann – man befürchtet<br />

einen Lock-in. Die<br />

Befürworter entgegnen, dass<br />

sich Systemd einfach modularisieren<br />

lasse, aktiv betreut<br />

werde und Gnome insgesamt<br />

ein besseres Benutzererlebnis<br />

beschere.<br />

Am Ende soll zwar das Debian<br />

Technical Committee (Techctte)<br />

entscheiden, doch auch<br />

das wirft Probleme auf. Auf<br />

der Mailingliste streitet man<br />

sich in diesem Zusammenhang<br />

über Interessenkonflikte<br />

einiger Mitglieder, die nicht<br />

nur <strong>im</strong> Debian-Projekt aktiv<br />

sind, sondern offiziell für<br />

Canonical arbeiten oder gearbeitet<br />

haben. Ein Vorwurf<br />

lautet, die Entscheider hätten<br />

sich womöglich zu wenig mit<br />

Systemd beschäftigt, um es<br />

wirklich zu verstehen.<br />

Bis zu einer Entscheidung<br />

wird es zwar noch eine Weile<br />

dauern, allerdings zeigt die<br />

Verknüpfung von Gnome<br />

und Systemd offenbar erste<br />

Auswirkungen: Debian 8 soll<br />

standardmäßig Xfce als Desktop<br />

verwenden, weil das nicht<br />

so stark von Systemd abhängt<br />

wie Gnome. Die letzte Entscheidung<br />

darüber möchte<br />

das Projekt aber laut Debians<br />

Joey Hess davon abhängig<br />

machen, wie viele Debian-<br />

Nutzer <strong>im</strong> August 2014 noch<br />

Gnome einsetzen.<br />

n<br />

Zahlen & Trends 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

15<br />

Anzeige


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 01/2014<br />

16<br />

Motorola will offeneres Smartphone<br />

Motorola möchte mit Ara ein<br />

neues Hardware-Ökosystem<br />

für Android-Geräte entwickeln<br />

– modular, aus steckbaren<br />

Komponenten aufgebaut und<br />

ökologisch korrekt.<br />

Während Hersteller wie Sony<br />

oder Apple zunehmend auf<br />

verklebte Bauteile setzten,<br />

solle Ara als freie, offene Hardwareplattform<br />

für hochgradig<br />

modulare Telefone und Tablets<br />

den Smartphone-Markt revolutionieren,<br />

so wie es Android<br />

mit der Softwarebranche getan<br />

hat, schreibt die Firma in<br />

Die Ara-Module von Motorola <strong>im</strong> Überblick.<br />

ihrem Blog. Jeder Kunde solle<br />

Hardwaremodule bauen und<br />

diese einfach in sein Handy<br />

einsetzen können.<br />

Der Mobilfunkprovider habe<br />

seit mehr als einem Jahr an<br />

Ara gearbeitet und bei Treffen<br />

mit dem Phone bloks-Erfinder<br />

Dave Hakkens [https://​<br />

​phonebloks.​com] viele Gemeinsamkeiten<br />

entdeckt, heißt es<br />

weiter. Jetzt suche man nach<br />

Research Scouts, die als Freiwillige<br />

herausfinden, wie und<br />

warum Anwender best<strong>im</strong>mte<br />

Entscheidungen fällen. n<br />

Quelle: Motorola<br />

Dark Mail soll E-Mails sicher machen<br />

Benannt nach der Rebellen-Allianz<br />

in Star Wars wollen die<br />

Macher der Dark Mail Alliance<br />

sichere E-Mail neu erfinden<br />

und SMTP dabei beerdigen.<br />

Hinter der Allianz, die sich<br />

Ende Oktober auf der Inbox-<br />

Love-Konferenz in Kalifornien<br />

vorstellte [http://​arstechnica.​com/​<br />

​business/​2013/​10/], verbergen<br />

sich bekannte Namen: Phil<br />

Z<strong>im</strong>mermann ist der Erfinder<br />

von PGP und Betreiber von<br />

Silent Circle, Ladar Levison<br />

war Chef des geschlossenen<br />

Secure-E-Mail-Dienstes Lavabit.<br />

Silent-Circle-Mitarbeiter<br />

Mike Janke, ein ehemaliger<br />

Scharfschütze der Navy Seals,<br />

hofft, dass die Mehrheit der<br />

Internetnutzer in drei bis vier<br />

Jahren den „Email-3.0“-Dienst<br />

verwendet.<br />

Der Ansatz klingt recht vielversprechend:<br />

Dark Mail soll<br />

eine End-to-End-Verschlüsselung<br />

anbieten, die – anders<br />

als PGP – auch Metadaten<br />

und Betreffzeilen chiffriert.<br />

Zudem soll die Verschlüsselung<br />

so einfach werden, dass<br />

auch eine „Oma sie verwenden<br />

kann“.<br />

Um ihr Ziel zu erreichen,<br />

wollen die Macher von Dark<br />

Mail SMTP entsorgen und ein<br />

neues Protokoll namens Sc<strong>im</strong>p<br />

entwickeln, das auf dem existierenden<br />

Silent Circle Instant<br />

Messaging Protocol basieren<br />

soll. Das soll quelloffen<br />

sein, auf XMPP aufsetzen<br />

und Mitte 2014 veröffentlicht<br />

werden. Die Alliance soll als<br />

Non-Profit-Organisation die<br />

Schirmherrschaft über das<br />

Projekt übernehmen.<br />

Von Dark Mail soll es nicht<br />

nur Clients für PCs, Tablets<br />

und Smartphones geben, sondern<br />

es soll auch als Addon<br />

für existierende E-Mail-Provider<br />

dienen. Genaue Spezifikationen<br />

fehlen bisher, aber<br />

Interessenten können sich<br />

auf der Webseite [http://​www.​<br />

​darkmail.​info] in eine Mailingliste<br />

eintragen.<br />

n<br />

Red Hat unterstützt Open DNP 3<br />

DNP 3 (Distributed Network<br />

Protocol, [http://www.dnp.org]),<br />

ein Protokoll für serielle<br />

Kommunikation und zugleich<br />

IEEE-Standard 1815-2012,<br />

existiert seit Jahrzehnten<br />

und kommt <strong>im</strong> industriellen<br />

Scada-Umfeld (Supervisory<br />

Control And Data Acquisition)<br />

zum Einsatz.<br />

In wichtigen Industriezweigen,<br />

etwa dem Energiebereich,<br />

tauschen Server und lokal eingesetzte<br />

Substationen technische<br />

Informationen über DNP<br />

3 aus, wobei die Implementierungen<br />

des Protokolls meist<br />

proprietärer Natur sind.<br />

Schon seit Mitte 2010 wird jedoch<br />

eine quelloffene Variante<br />

entwickelt, die den Namen<br />

Open DNP 3 trägt und unter<br />

der Apache-Lizenz steht. Red<br />

Hat hat nun angekündigt, die<br />

Entwicklung von Open DNP 3<br />

zu fördern. Als Grund gibt die<br />

Firma in einer Pressemitteilung<br />

die kürzlich aufgetauchten<br />

Sicherheitslücken in den<br />

proprietären Implementierungen<br />

des Protokolls an.<br />

Chris Sistrunk und Adam<br />

Crain, die sich selbst nicht als<br />

Sicherheitsforscher betrachten,<br />

hatten be<strong>im</strong> Untersuchen<br />

des Protokolls 21 Sicherheitslücken<br />

entdeckt. Laut Sistrunk<br />

tauchten Lücken in allen proprietären<br />

Implementierungen<br />

des Protokolls auf.<br />

Für Adam Crain dürften die<br />

Funde aber auch ihr Gutes<br />

gehabt haben – er ist Gründer<br />

der Firma Automatak [https://​<br />

​github.​com/​automatak/​dnp3], die<br />

seit August 2012 kommerzielle<br />

Dienste rund um das<br />

freie Open DNP 3 anbietet.<br />

Vorwürfe, er habe die Sicherheitslücken<br />

aus persönlichen<br />

Motiven aufgedeckt, wies er<br />

jedoch von sich. Vielmehr<br />

gebe es schlicht einen Markt<br />

für sichere Produkte in diesem<br />

Bereich und es sei zudem<br />

unfair, ungetestete und unsichere<br />

Produkte an End user zu<br />

verkaufen. Er wolle die Messlatte<br />

für Scada-Protokollsoftware<br />

höher hängen.<br />

Das sieht offenbar auch das<br />

<strong>Linux</strong>-Unternehmen Red Hat<br />

so und hat sich der DNP User<br />

Group als Corporate Member<br />

angeschlossen. Die Firma aus<br />

Raleigh möchte Open DNP 3<br />

opt<strong>im</strong>ieren, sicherer machen<br />

und zudem dabei helfen, eine<br />

funktionierende Community<br />

rund um die Software aufzubauen.<br />

(kki/mfe/mhu/T<strong>im</strong><br />

Schürmann)<br />

n


Aktuell<br />

www.linux-magazin.de Kernel-News 01/2014<br />

18<br />

Zacks Kernel-News<br />

Jagd auf tückischen Kernelbug offenbart Fehler in GCC<br />

Compilerbugs treffen den<br />

<strong>Linux</strong>-Kernel besonders hart.<br />

Das freie Betriebssystem lässt<br />

sich für so viele Plattformen<br />

übersetzen, dass dadurch<br />

komplexe Anforderung an die<br />

Toolchain entstehen. Insbesondere<br />

zu möglichst vielen<br />

GCC-Versionen soll der Code<br />

kompatibel sein.<br />

Der Intel-Entwickler Fengguang<br />

Wu entdeckte <strong>im</strong> Oktober<br />

2013 einen Memory-Paging-<br />

Fehler <strong>im</strong> Kernel. Mittels »git<br />

bisect« konnte er das Problem<br />

bis zu einem Patch von Peter<br />

Zijlstra zurückverfolgen, der<br />

zum Zweck der Opt<strong>im</strong>ierung<br />

»asm goto« verwendet.<br />

Peter konnte den Bug auf<br />

seinem System jedoch nicht<br />

reproduzieren und auch <strong>im</strong><br />

Code sah er keinen Fehler. Er<br />

bat Fengguang zu testen, ob<br />

das Problem auch mit anderen<br />

Compilerversionen auftritt.<br />

Offenbar war dieser be<strong>im</strong><br />

Übersetzen mit der GCC-Version<br />

4.8.1 auf den Kernelbug<br />

gestoßen. Nun versuchte er es<br />

mit GCC 4.6.1 – mit demselben<br />

Ergebnis.<br />

Auch Linus Torvalds konnte<br />

keine Fehler <strong>im</strong> Code entdecken.<br />

Wie schon Peter hielt er<br />

einen Compilerbug für möglich.<br />

Er schlug Fengguang vor,<br />

das »asm goto« probeweise zu<br />

entfernen. Tatsächlich behob<br />

diese Änderung das Problem.<br />

Linus: „Okay. Es sieht ganz<br />

so aus, als wäre »asm goto«<br />

<strong>im</strong> Arsch. Schade, denn hier<br />

hat es für schönen, sauberen<br />

Code gesorgt.“ Dann fährt<br />

Probleme <strong>im</strong> Kernel offenbarten den Bug Nummer 58670 <strong>im</strong> GNU C-Compiler.<br />

der <strong>Linux</strong>-Erfinder fort: „Ich<br />

glaube, es liegt an der Speicherüberschreibung,<br />

vielleicht<br />

markiert der Code den Speicher<br />

nur als überschrieben<br />

und das Goto verwendet dann<br />

alte, gecachte Werte. Nur eine<br />

Theorie.“<br />

Torvalds räumt dabei ein, dass<br />

der Kernel bereits an anderen<br />

Stellen »asm goto« zusammen<br />

mit Speicherüberschreibung<br />

verwendet, sie würden aber<br />

nur in einem Fall expandiert.<br />

In den neuen Anwendungsfällen<br />

dagegen gebe es <strong>im</strong>mer<br />

wieder Expansion, was leichter<br />

einen möglichen Bug auslösen<br />

könne.<br />

Jakub Jelinek von Red Hat<br />

schlägt vor, die Vorkommen<br />

von »asm goto« eines nach<br />

dem anderen zu deaktivieren,<br />

um das Problem schließlich<br />

auf eine einzige Routine einzugrenzen.<br />

Torvalds gibt ihm<br />

<strong>im</strong> Prinzip Recht, hält das Vorgehen<br />

aber in der Praxis nicht<br />

für durchführbar.<br />

In der Zwischenzeit hatte<br />

Fengguang mit der älteren<br />

GCC-Version 4.4.7 getestet<br />

und stellte fest, dass das<br />

Problem verschwand. Peter<br />

Zijlstra sah sich die Befunde<br />

an und bemerkte, dass GCC<br />

4.4.7 »asm goto« einfach nicht<br />

unterstützt. Ein weiteres Indiz<br />

dafür, dass das Problem<br />

direkt mit »asm goto« zusammenhing.<br />

Auch der ungarische Kernelentwickler<br />

Ingo Molnar hatte<br />

sich auf die Suche nach dem<br />

Fehler begeben. Er tippte auf<br />

einen Bug in GCC 4.8 beziehungsweise<br />

auf ein älteres<br />

Problem, dass sich erst mit<br />

4.8 zeigt.<br />

Schließlich gelang es Peter,<br />

den Fehler auf seinem System<br />

mit GCC 4.8.1 zu reproduzieren,<br />

wobei ihm Tests<br />

von Fengguang halfen. Er<br />

stellte fest, dass das Problem<br />

verschwand, wenn er einen<br />

64-Bit-Build machte. Auch<br />

unter i386-SMP trat es nicht<br />

auf, und endlich konnte er<br />

den Bug auf die GCC-Option<br />

»‐march=winchip2« eingrenzen.<br />

Auch Ingo schafften es,<br />

den Bug mit den GCC-Versionen<br />

4.7.3 und 4.7.2 zu reproduzieren.<br />

„Ich fürchte, wir<br />

müssen »asm goto« für das<br />

ganze 32-Bit-x86 deaktivieren“,<br />

schrieb er.<br />

Jakub bestätigte, dass es sich<br />

um einen GCC-Bug handelt,<br />

und schickte einen Link zum<br />

frisch angelegten Bugzilla-<br />

Ticket unter [http://​gcc.​gnu.​org/​<br />

​bugzilla/​show_bug.​cgi?​id=58670]<br />

mit. Alle GCC-Versionen von<br />

4.6 bis 4.9 machen aus »asm<br />

goto« fehlerhaften Code, teilte<br />

er den Kernelentwicklern mit.<br />

Linus Torvalds fand heraus,<br />

dass auch die Architektur<br />

x86_64 nicht vor dem Fehler<br />

gefeit ist, wenn er dort auch<br />

seltener auftritt. Sobald Jakub<br />

weitere Details zum Bug<br />

übermittelt hatte, schrieben<br />

einige Kernelentwickler Workarounds<br />

für die Vorkommnisse<br />

der Anweisung.<br />

Als Linus später Kernel 3.12-<br />

rc5 freigab, schrieb er: „Am<br />

aufregendsten war diese Woche<br />

kein Kernel-, sondern ein<br />

Compilerbug. Er war in Code<br />

aufgefallen, der in Version<br />

3.13 wandern soll. Glücklicherweise<br />

können wir den<br />

Workaround dadurch frühzeitig<br />

einpflegen, denn »asm goto«<br />

verwenden wir auch jetzt<br />

schon.“ Wenige Tage später<br />

nahm Greg-Kroah-Hartman<br />

den Fix auch in seinen stabilen<br />

Kernelzweig 3.11 auf. n


Kernelinterne Dateisysteme<br />

Der Kernelhacker Al Viro<br />

möchte ein paar veraltete<br />

Schnittstellen wegräumen, die<br />

seiner Ansicht nach niemand<br />

vermissen wird. Er schreibt,<br />

<strong>Linux</strong> verlange von den Entwicklern,<br />

dass sie vor dem<br />

Einhängen eines Dateisystems<br />

»register_filesystem()« aufrufen.<br />

Dadurch könne der Kernel<br />

das Dateisystem am Namen<br />

erkennen und wisse, wie er<br />

damit umgehen soll.<br />

Für Userland-Dateisysteme<br />

sei das auch korrekt, räumt er<br />

ein. Bei kernelinternen Dateisystemen<br />

wie »pfms«, »anon_<br />

inodes«, »bdev«, »pipefs« und<br />

»sockfs« sei das aber schon<br />

seit zehn Jahren nicht mehr<br />

nötig, erklärt Al. In jüngerer<br />

Zeit nehme »kern_mount()«<br />

einfach einen Zeiger auf<br />

»file_system_type« entgegen<br />

und suche nicht nach dem<br />

Namen.<br />

„Wenn wir »register_filesystem()«<br />

abschaffen, ändert sich<br />

für den Anwender fast nichts,<br />

nur in »/proc/filesystems«<br />

werden die internen Dateisysteme<br />

fehlen“, schreibt Al.<br />

Also hat er ein kurzes Patch<br />

geschickt, gesteht aber ein,<br />

dass es Probleme geben<br />

könnte, wenn Anwendercode<br />

sich auf die Informationen in<br />

»/proc/filesystems« verlasse.<br />

Das hält er aber für unwahrscheinlich.<br />

n<br />

FPGA-Subsystem<br />

Der tschechische Entwickler<br />

Michal S<strong>im</strong>ek hat eine neue<br />

Version seines Subsystems<br />

für Field Programmable Gate<br />

Arrays (FPGAs) eingereicht.<br />

Michal möchte in seinem Subsystem<br />

alle FPGA-Treiber vereinen.<br />

Er schreibt, nach einer<br />

Diskussion mit Greg Kroah-<br />

Hartman habe er beschlossen,<br />

eine Firmware-Schnittstelle<br />

zu unterstützen, über die der<br />

Anwender seine Befehlssätze<br />

in die Chips lädt.<br />

H. Peter Anvin hält das für<br />

falsch. Er verweist auf die<br />

vielfältigen Methoden, einen<br />

FPGA zu laden. Michal erwidert:<br />

„In vielen Anwendungsszenarien<br />

gibt es einfach<br />

einen Bitstream pro FPGA,<br />

der bei einem Update ersetzt<br />

wird. Dafür wäre eine Firmware-Schnittstelle<br />

praktisch,<br />

die den Bitstream be<strong>im</strong> Start<br />

automatisch lädt.“ Peter hält<br />

dagegen: „Jede mir bekannte<br />

FPGA-Toolchain kann Jam/​<br />

STAPL-Bytecode erzeugen,<br />

und für best<strong>im</strong>mte Szenarien<br />

braucht man sie auch.“<br />

Die Diskussion dürfte noch<br />

andauern und Michals Patch<br />

wird einige Iterationen durchmachen.<br />

Doch wenn Leute<br />

wie Greg und Peter Interesse<br />

an FPGA-Unterstützung zeigen,<br />

wird sie über kurz oder<br />

lang in den Kernel einziehen.<br />

(Zack Brown/​mhu) n<br />

Kernel-News 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

19


Aktuell<br />

www.linux-magazin.de Susecon 2013 01/2014<br />

20<br />

Suses Enterprise-Community traf sich in Florida<br />

Eroberer der neuen Welt<br />

Suse geht es blendend, glaubt man den St<strong>im</strong>men auf der Susecon, der diesjährigen Partnerkonferenz. Nur Gutes<br />

berichten die Verantwortlichen dort: Die Strategie, den US-Markt aufzurollen, gehe auf, und auch technisch<br />

gibt es Neues zu verkünden. Fotos und Text: Markus Feilner<br />

Sonniges Florida. Der Swing State <strong>im</strong><br />

Südosten der USA schwankt zwischen<br />

konservativem US-Süden in seinen nördlichen<br />

Provinzen und tropisch-lateinamerikanischem<br />

Laisser-faire <strong>im</strong> Süden des<br />

Staates. Schon der „erste Tourist“ Juan<br />

Ponce de León [1], seines Zeichens spanischer<br />

Konquistador, hatte das Besondere<br />

an dem blühenden Land (spanisch<br />

„Florida“: die Blühende) erkannt und<br />

1513 <strong>im</strong> Namen der spanischen Krone<br />

Besitz ergriffen. Harte Kämpfe, bisweilen<br />

gar Massaker zwischen den Europäern<br />

folgten. Noch heute zeugen Denkmäler<br />

wie die bei St. Augustine, US-Amerikas<br />

ältester Stadt, davon.<br />

Eroberung der neuen Welt<br />

Heute machen sich wieder Truppen europäischer<br />

Recken auf dem Weg, die neue<br />

Welt <strong>im</strong> Sturm zu erobern. Das ist zumindest<br />

der Eindruck, der sich be<strong>im</strong> Besucher<br />

der Susecon einstellt, dem alljährlichen<br />

Treffen der Enterprise-Community<br />

des <strong>Linux</strong>-Distributors mit deutschen<br />

Wurzeln, der seit 2011 den Amerikanern<br />

von Attachmate gehört.<br />

Den Plan hatten die Verantwortlichen<br />

auf dem Partner-Event 2012 [2] ausgerufen,<br />

das zum 20. Geburtstag der Firma<br />

erstmals in den USA stattfand. Das Ziel<br />

sei, sich auf dem amerikanischen Markt<br />

durchzusetzen und die Marke Suse zu<br />

etablieren, hieß es damals. Es scheint,<br />

als habe die grüne Truppe das geschafft.<br />

Jetzt traf man sich in Orlando, diesmal in<br />

Downtown Disney, <strong>im</strong> Disney’s Coronado<br />

Springs Resort (Abbildung 1).<br />

Suse hat Spaß<br />

Traditionell eröffnet Marketing-Chef Michael<br />

Miller die Susecon [3], und das bereitete<br />

ihm dieses Jahr offensichtlich besonders<br />

viel Spaß. Mehr und länger solle<br />

sie sein, das war der Hauptwunsch aus<br />

der Feedback-Umfrage der Susecon 2012,<br />

dem trage man Rechnung. Die Besucher<br />

honorieren es: Mit 550 Teilnehmern ka-<br />

men deutlich mehr als <strong>im</strong> Vorjahr. 163<br />

Companies aus 31 Ländern schickten Mitarbeiter<br />

zu den 260 Stunden Programm<br />

in 95 Breakout Sessions und Keynotes.<br />

Da passte dann auch das Motto des Begrüßungsvideos,<br />

das mit Daft Punks „Get<br />

Lucky“ den Ton vorgab.<br />

Auch die Keynote von Nils Brauckmann,<br />

Suses President und General Manager,<br />

war angefüllt von Erfolgsberichten (Abbildung<br />

2). Dass Suse global wird, hatte<br />

der CEO bereits am Vorabend <strong>im</strong> <strong>Linux</strong>-<br />

<strong>Magazin</strong>-Online-Interview [4] berichtet:<br />

22 Prozent mehr bei den Enterpriseprodukten,<br />

26 bei SLES, 140 be<strong>im</strong> Suse Manager,<br />

47 Prozent Wachstum in den USA,<br />

der jetzt stärksten Suse-Region.<br />

In seinem Vortrag zählte Brauckmann<br />

eine ganze Reihe von Branchen auf, in<br />

denen Suse unangefochtener Marktführer<br />

sei: Vier von fünf IBM-Mainframes mit<br />

<strong>Linux</strong> laufen auf Suse, 70 Prozent aller<br />

SAP-<strong>Linux</strong>-Installationen sowie die Hälfte<br />

aller <strong>Linux</strong>-Supercluster. Mittlerweile hat<br />

die Firma mehr als 11 000 Hardware- und<br />

13 000 Software-Zertifizierungen vergeben,<br />

Tendenz steigend.<br />

Going global<br />

Generell profitiere Suse weltweit von der<br />

internationalen Aufstellung der Firma:<br />

Als ursprünglich deutsches Unternehmen,<br />

das jetzt in amerikanischem Besitz<br />

ist, aber deutlich europäisch geprägt<br />

bleibe, könne man überall auf der Welt<br />

mit dem richtigen Hintergrund antreten,<br />

meint Brauckmann. Auch Miller (Abbildung<br />

3) nickt, wenn man ihn fragt, ob<br />

er der Spin Doctor sei, der entscheide,<br />

ob man Kunden als deutsches, europäisches<br />

oder amerikanisches Unternehmen<br />

kontaktiere. Dabei lassen sich deutsche


www.linux-magazin.de<br />

Susecon 2013 01/2014<br />

Aktuell<br />

21<br />

Abbildung 1: Das Coronado Springs Convention Center in Downtown Disney.<br />

Abbildung 2: Suse-Chef Brauckmann.<br />

Abbildung 3: Marketing-Lead Miller.<br />

Qualitäten (die oft gelobte Ingenieurskunst)<br />

einsetzen, gleichzeitig kann die<br />

Company vermeintlichen Schwächen<br />

(„Oft wird Deutschen ein Mangel an Kreativität<br />

nachgesagt.“) ausweichen. Und<br />

wo die USA derzeit nicht beliebt seien,<br />

helfe stets der deutsch-europäische Hintergrund.<br />

Suses Motto lautet: „Innovate where it<br />

matters to our Enterprise customers“,<br />

sinngemäß: „Dort verbessern, wo die<br />

zahlende Kundschaft es erwartet.“ Wohl<br />

auch deshalb ist der Libre-Office-Support<br />

für Windows aus dem Portfolio herausgefallen<br />

– zu wenig Nachfrage, zu wenig<br />

Umsatz. Den übern<strong>im</strong>mt seit Kurzem<br />

Collabora (Abbildung 4). Suse wird aber<br />

alle bestehenden Verträge mit Kunden erfüllen<br />

und weiterhin Level-1- und ‐2-Support<br />

bieten.<br />

Brauckmann zieht als Resümee: „Was<br />

wir uns letztes Jahr vorgenommen haben,<br />

haben wir erfolgreich umgesetzt:<br />

Der Suse-Brand ist auch in den USA erfolgreich<br />

etabliert. 19 000 aktive Kunden,<br />

das sind 27 Prozent mehr als letztes Jahr,<br />

das spricht für uns.“ Nach dem Motto<br />

„Adapt and Deliver“ liege der Fokus auf<br />

dem Management heterogener Netze und<br />

Clouds. Da passt das jüngste Announcement<br />

ins Bild, in dem Suse ein Microsoft-<br />

System-Center-Plugin für den Suse Manager<br />

releast. Damit können Kunden auch<br />

Windows-Systeme zentral und automatisiert<br />

mit den Suse-Tools verwalten.<br />

Wichtigste Bausteine des Erfolges seien<br />

dabei Suse <strong>Linux</strong> Enterprise, die Suse<br />

Cloud, aber auch besagter Suse Manager,<br />

erläutert der Suse-Chef und vergisst<br />

nicht die Open-Source-Community von<br />

Open Suse zu loben, die auf der Susecon<br />

bereits eine Sneak Preview auf Open Suse<br />

13.1 verteilte.<br />

SAP und IBM<br />

Auf der Konferenz hat Suse prominente<br />

Sponsoren versammelt, die <strong>im</strong> Gegenzug<br />

Keynote-Slots erhalten. Dieses Jahr<br />

berichten Chris Hallenbeck (Abbildung<br />

5), bei SAP zuständig für Amerika, Data<br />

Warehouse Solutions und die Hana-Plattform,<br />

und J<strong>im</strong> Wasko (Abbildung 6) von<br />

IBM, warum ihnen Suse ein so wichtiger<br />

Partner ist. SAP sei einfach überall drin,<br />

meint Hallenbeck: „Egal ob Schokolade,<br />

Bier, Autos oder Hundefutter – ohne uns<br />

gäbe es das derzeit nicht.“ Realt<strong>im</strong>e,<br />

schnelle Datenverarbeitung mit In-Memory-Computing<br />

und die sichere, stabile<br />

Plattform von Suse <strong>Linux</strong> seien für SAP<br />

eine logische Kombination.<br />

Die Meinung teilt IBMs Direktor des<br />

<strong>Linux</strong> Technology Center, J<strong>im</strong> Wasko.<br />

In seiner Keynote reißt er zunächst die<br />

Geschichte von <strong>Linux</strong> bei IBM ab: „Just<br />

als die Geschäftsführung mal wieder<br />

darüber nachdachte, wie toll ein einziges<br />

Betriebssystem wäre, das auf allen<br />

IBM-Plattformen funktioniert, standen<br />

die <strong>Linux</strong>-Entwickler da und meinten:<br />

Äh – wir haben da was vorbereitet.“ Das<br />

war 1999, und IBM gab die erste Milliarde<br />

Dollar für <strong>Linux</strong> aus – ein Ritterschlag für<br />

das Pinguin-OS.<br />

Jetzt, 2013, kommt die zweite Milliarde.<br />

Doch die geht voll auf <strong>Linux</strong> on Power,<br />

wobei die weitere Gewichtung noch nicht<br />

geklärt ist – das gibt es wohl auch nur<br />

bei IBM. Als sicher gilt nur, dass das<br />

Geld nicht nur an Entwickler, sondern<br />

auch in Sales und Marketing gehen soll.<br />

Technisch sollen vor allem Managementprodukte<br />

für Cloud, ISVs und Middle-<br />

Abbildung 4: Collabora übern<strong>im</strong>mt den Open- und Libre-Office-Support von Suse.<br />

Abbildung 5: SAPs Chris Hallenbeck.<br />

Abbildung 6: J<strong>im</strong> Wasko von IBM.


Aktuell<br />

www.linux-magazin.de Susecon 2013 01/2014<br />

22<br />

Abbildung 7: Suses Marketingteam grübelt: Welchen Laut machen Chamäleons?<br />

Abbildung 8: 550 Zuhörer zählten die Organisatoren bei der Keynote.<br />

ware auf der Power-Architektur laufen,<br />

die bisher nicht oder nur eingeschränkt<br />

funktionieren, etwa Websphere oder<br />

DB2blue (DB2 on Power). Dazu betont<br />

Big Blue die Vorteile der Architektur:<br />

mehr Threads pro Core oder das bessere<br />

Speichermanagement.<br />

Technik, Tracks und Disney<br />

Den Keynotes und der nicht ganz ernsthaften<br />

(Video-)Frage, welchen Laut denn<br />

ein Gecko mache (Abbildungen 7 und 8,<br />

[5]) folgen die technischen Tracks mit<br />

Lightning Talks, Vorführungen und Trainings.<br />

Abends steigt die Sponsorenparty<br />

unter dem Motto „Piraten“, während der<br />

Veranstalter die Teilnehmer am Mittwoch<br />

in Disneys Parks einlädt – ins Magic Kingdom<br />

oder nach Epcot. Donnerstagabend<br />

folgen BoFs mit spontaner Agenda.<br />

Das Programm durchziehen Neuigkeiten<br />

und Ankündigungen, etwa der verlängerte<br />

Lebenszyklus für SLES: 13 Jahre<br />

statt zehn dauert ab sofort der Kunden-<br />

Support für Suse <strong>Linux</strong> Enterprise Server,<br />

zumindest für SLES 11 und den nächs-<br />

tes Jahr <strong>im</strong> Herbst kommenden SLES<br />

12. Auf vielfachen Wunsch der Kunden<br />

habe man den Long-Term-Support für die<br />

SLES-Produktreihe ausgeweitet.<br />

Vor allem aus dem Bereich der nahezu<br />

Embedded-Systeme <strong>im</strong> Point-of-Sales-<br />

Bereich, also etwa Kassen-Computer in<br />

Supermärkten, sei die Nachfrage <strong>im</strong>mer<br />

öfter gekommen, berichtet Ronald<br />

de Jong, Vice President of EMEA Sales<br />

bei Suse. Doch auch in der Health-Care-<br />

Branche, so Michael Miller reiche der<br />

gängige Support einfach nicht mehr aus<br />

– ein Thema, das übrigens schon der<br />

Schwerpunkt des <strong>Linux</strong>-<strong>Magazin</strong>s 03/​13<br />

aufgeworfen hatte.<br />

Support-Verlängerung für<br />

SLES: 13 statt 10 Jahre<br />

Der Wunsch, auch für IT-Systeme länger<br />

als die bisher sieben Jahre Standard- plus<br />

drei Jahre Expanded-Support zu betreiben,<br />

sei groß. Deshalb gibt es jetzt für<br />

SLES 11 und den 2014 kommenden SLES<br />

12 zehn Jahre Standard- und danach drei<br />

Jahre optionalen Extended-Support. Eine<br />

Nachricht, die nicht nur bei den vielen<br />

anwesenden Analysten und Pressevertretern<br />

positiv ankam (Abbildung 9). SLES<br />

12 wird übrigens auf Open Suse 13.1 basieren<br />

(die erschien am 19.11. und bootet<br />

von der DELUG-DVD dieses <strong>Magazin</strong>s).<br />

Distributed-Storage-<br />

Produkt mit Ceph<br />

Am Rande der Veranstaltung gab Suse<br />

bekannt, innerhalb des nächsten Jahres<br />

eine eigene Storage-Lösung auf den Markt<br />

zu bringen. Die Software werde auf Ceph<br />

basieren und in die Suse Cloud integriert<br />

sein, berichtet Suse-Chef Nils Brauckmann.<br />

„Ceph ist einfach viel näher am<br />

Kernel als etwa Gluster-FS“, meint der<br />

Suse-President, „und dank Ceph-Rados<br />

und Open Stack die perfekte Integration<br />

in unsere Suse Cloud.“<br />

Das Ganze will der <strong>Linux</strong>-Distributor 2014<br />

zu einem Bundle schnüren und so erstmals<br />

Ceph-Rados als Storage-Software-<br />

Produkt auf Enterprise-Level mit Support<br />

auf den Markt bringen (Hintergründe zu<br />

Ceph, Rados, Open Stack und Gluster<br />

Abbildung 9: Analysten warten auf Ankündigungen.<br />

Abbildung 10: Impressionen aus Orlando Downtown.<br />

Abbildung 11: Lew Tucker (Cisco).


liefert der Titelschwerpunkt der <strong>Linux</strong>-<br />

<strong>Magazin</strong>-Ausgabe 02/​13).<br />

Solid Driver Program<br />

Die dritte wichtige News der Susecon ist<br />

das vom Distributor überarbeitete Treiberportal<br />

Drivers.suse.com [6], ein wichtiger<br />

Teil des neuen Suse Solid Driver Program.<br />

Der Relaunch soll die Kooperation<br />

mit Hardwareherstellern vereinfachen,<br />

aber auch Kunden schneller zu Treibern<br />

verhelfen.<br />

Fortan soll es „für den Kunden keinen<br />

Unterschied mehr machen, ob er Standard-SLES<br />

oder SLES zusammen mit einem<br />

oder mehreren anderen, Herstellerspezifischen<br />

Treibern verwendet“, erklärt<br />

Gerald Pfeifer, Direktor des Produkt-Managements<br />

bei Suse und für SLES verantwortlich,<br />

am Rande der Susecon13.<br />

„Wir haben festgestellt, dass unsere Kunden<br />

Servicepacks sehr schätzen, aber zu<br />

oft sollen die nicht kommen. Lieber installiere<br />

man den Treiber für die neue<br />

Hardware alleine.“ Kernelmodule und<br />

andere Treiber fanden Kunden schon in<br />

der Vergangenheit auf Webseiten wie der<br />

von Suse Partner <strong>Linux</strong> Process und Suse<br />

Partner <strong>Linux</strong> Program, wo Hardwarehersteller<br />

gemeinsam mit Suse Treiber hochladen<br />

und bereitstellten.<br />

Über das neue Portal habe man den Service<br />

noch ausgebaut, berichtet Pfeifer:<br />

„Die Treiber dort sind gemeinsam mit<br />

Herstellern entwickelt, maßgeschneidert<br />

für die Hardware und von Suse und dem<br />

Hersteller voll supportet. Später kommen<br />

die alle auch ins nächste Service Pack.“<br />

Sie seien von Suse getestet und auditiert<br />

– etwa ob sie sich mit Kernel-APIs<br />

vertragen. Zertifiziert allerdings sind sie<br />

nicht, denn Suse zertifiziert generell nur<br />

Systeme und Software, keine einzelnen<br />

Komponenten, so Pfeifer.<br />

Open-Stack-„Revolution“<br />

In seiner Abschlusskeynote am Freitag<br />

brach Cisco-Vizepräsident Lew Tucker erneut<br />

eine Lanze für Open-Source-Clouds<br />

mit Open Stack (Abbildung 11). Das sei<br />

schlicht der neue Softwarestack fürs Rechenzentrum<br />

und mit der Suse Cloud 2.0<br />

so einfach wie nie zuvor. Ciscos Chief<br />

Technology Officer of Cloud Computing<br />

sparte auch nicht mit Superlativen. Eine<br />

„Revolution“, der „perfekte Sturm“, „unausweichbar“<br />

– all das sei Open Stack,<br />

das Betriebssystem der Zukunft für alle<br />

freien Clouds.<br />

Ob es sich um die App-Orchestration<br />

mit Open Stack Heat, Komponenten wie<br />

Neutron oder aber die neuen Open-Stack-<br />

Versionen Havana, Icehouse oder das<br />

Triple-O-Projekt (Open Stack on Open<br />

Stack) handle, Cisco biete selbstverständlich<br />

die beste Hardware und Suse die<br />

beste Integration.<br />

Nach Tuckers Keynote kamen mit Suses<br />

Doug Jarvis und Ciscos Mike Andren<br />

zwei Techniker auf die Bühne, die<br />

– unterstützt von Michael Miller – in<br />

einer Live-Demo beweisen wollten, wie<br />

s<strong>im</strong>pel das Setup der Suse Cloud mit<br />

Cisco gelingt. Länger als fürs eigentliche<br />

Setup brauchten die beiden allerdings,<br />

um das Passwort des Bildschirmschoners<br />

des Demo-Laptops herauszufinden<br />

(Abbildung 12). Erst ein herbeigerufener<br />

Techniker konnte da helfen.<br />

Vor den Augen des amüsierten Publikums<br />

brachte Suses Marketing-Chef Michael<br />

Miller das Problem auf den Punkt: „Ein<br />

sicheres Passwort hat viele Vor-, bei Live-<br />

Demos aber auch Nachteile.“<br />

Die Demo startete mit Verzögerung, ehe<br />

Miller die Susecon erfolgreich abschließen<br />

konnte, doch nicht ohne erneut ein<br />

Video zu zeigen, das seine Kollegen aus<br />

Utah zusammen mit den Teilnehmern<br />

der Susecon während der vergangenen<br />

Tage aufgenommen hatten. Im Lip-Sync-<br />

Verfahren suchen die Darsteller <strong>im</strong>mer<br />

noch nach dem Laut, den ein Chamäleon<br />

macht.<br />

Open Suse Summit 2013<br />

Am Freitagnachmittag begann dann direkt<br />

anschließend der Open Suse Summit<br />

2013 [7], das Community-Treffen der<br />

freien Suse-Entwickler, ganz <strong>im</strong> Zeichen<br />

der neuen Suse-Version (Abbildung 13)<br />

und wie gewohnt mit Town Hall Meeting<br />

und vielen Vorträgen rund um Crowbar,<br />

Open Suse Mate, Xen und Li-f-e [8]. n<br />

Infos<br />

[1] Juan Ponce de León: [http:// en. wikipedia.​<br />

org/ wiki/ Juan_Ponce_de_Le%C3%B3n]<br />

[2] Susecon 2012: [http:// www. linux‐magazin.​<br />

de/ NEWS/ 20‐Jahre‐Suse‐Susecon‐2012‐in‐<br />

Orlando‐Florida]<br />

[3] Susecon 2013: [http:// www. susecon. org]<br />

[4] Online-News und Links: [http:// www.​<br />

linux‐magazin. de/ plus/ 2014/ 01/​]<br />

[5] What’s the chameleon say?: [http:// www.​<br />

youtube. com/ watch? v=Rg6ksPA7SAc]<br />

[6] Suse Solid Drivers Program:<br />

[http:// drivers. suse. com]<br />

[7] Open Suse Summit 2013:<br />

[http://summit.opensuse.org]<br />

[8] Open Suse Summit Agenda:<br />

[http:// summit.opensuse.org/#program]<br />

Susecon 2013 01/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

23<br />

Abbildung 12: Ein Techniker und zwei verhinderte Suse-Cloud-Spezialisten auf Passwortsuche. Abbildung 13: Nach der Susecon begann der Open Suse Summit.


Titelthema<br />

www.linux-magazin.de Home Automation 01/2014<br />

24<br />

FHEM und Konsorten: Soft- und Hardware für das digitale Zuhause<br />

<strong>Intelligenz</strong> <strong>im</strong> <strong>Haus</strong>e<br />

Home Automation muss nicht teuer sein: Hardware für unter 100 Euro, dazu ein Pi oder eine Fritzbox und die<br />

richtigen Open-Source-Tools, schon klappt die Steuerung des digitalen Zuhauses. Sebastian Mogilowski, Markus Feilner<br />

Abbildung 1: Der Raspberry Pi als Steuerzentrale mit FHEM nutzt zwei leistungsstarke<br />

Antennen, einen USB-Stick für FS20 und einen CC1101-Transceiver.<br />

Meist fängt es harmlos damit an, dass<br />

der He<strong>im</strong>werker einfach mal eine Steckdose<br />

oder Lampe über eine Fernbedienung<br />

schalten will. Dann holt er sich ein<br />

Set aus dem Supermarkt, das für wenig<br />

Geld (ab etwa 20 Euro) auch nur an- und<br />

ausschalten kann und nicht mit dem PC<br />

Inhalt<br />

24 Hard- und Software<br />

Wer sein He<strong>im</strong> automatisieren will, kommt<br />

an FHEM, FS20 und Co nicht vorbei.<br />

28 Web-Türöffner <strong>im</strong> Eigenbau<br />

Selbst ist der <strong>Linux</strong>-<strong>Haus</strong>meister: Schließanlage<br />

mit individuellen Klingeltönen.<br />

30 Software Defined Radio<br />

Hardware für 20 Euro und freie Soft ware<br />

eröffnen die Jagd auf Wetterdaten.<br />

36 IP-Kamera<br />

Kommerzielle und freie Anwendungen<br />

zur Steuerung von Kameras <strong>im</strong> Netz.<br />

42 Smart Metering<br />

Intelligente Stromzähler stecken noch in<br />

den Kinderschuhen.<br />

46 Datensilos für Dahe<strong>im</strong><br />

Daten <strong>im</strong> eigenen He<strong>im</strong> sicher zen tral<br />

able gen mit Mini-NAS und deren Add-Ons.<br />

50 Hackerfleet<br />

Der Vollmatrose unter den <strong>Linux</strong>-Systemen<br />

bringt OSS und Mesh ins Boot.<br />

vernetzt ist. Als<br />

<strong>Linux</strong>er macht<br />

der He<strong>im</strong>werker<br />

sich als Nächstes<br />

auf zur Internetrecherche,<br />

weil<br />

er etwas will, das<br />

sich vielleicht mit<br />

einem Raspi oder<br />

vom Androiden<br />

aus steuern lässt.<br />

Früher oder später<br />

landet er so be<strong>im</strong><br />

FS20-Standard.<br />

Das vertreibt vor<br />

allem Conrad Electronics<br />

in seinen<br />

Läden, doch billiger gibt es die identischen<br />

Komponenten bei ELV [1] zu haben,<br />

inklusive umfangreicher Dokumentation.<br />

FS20 kann dank seines stattlichen<br />

Alters und der hohen Verbreitung mit<br />

einer großen Anzahl und hohen Diversität<br />

bei den Geräten zu moderaten Preisen<br />

glänzen. Dennoch ist das Ganze deutlich<br />

teurer als die Supermarkt-Fernbedienung:<br />

Das Set von drei Funksteckdosen mit<br />

Fernbedienung kostete <strong>im</strong> November<br />

2013 <strong>im</strong>mer noch 90 Euro.<br />

Neben einfachen Schaltsteckdosen, die<br />

der Anwender einfach zwischen die Dose<br />

an der Wand und den zu schaltenden<br />

Verbraucher steckt, existieren eine Vielzahl<br />

von Aktoren und Sendern. Es gibt<br />

Schalter für die Hutschiene, die sich direkt<br />

in den Schaltkasten einbauen lassen,<br />

wetterfeste Versionen für den Außenbereich,<br />

Bausätze für kreative Bastler,<br />

Steuerungen für Rollläden und Markisen,<br />

aber auch Sensoren für Temperatur, Regen,<br />

Feuchtigkeit und Bewegung.<br />

Das Management übern<strong>im</strong>mt normalerweise<br />

die <strong>Haus</strong>zentrale, sie steuert alle<br />

Teilnehmer zentral an. Meldet der Re-<br />

gensensor beispielsweise Regen, fährt sie<br />

die Markise automatisch ein. Die <strong>Haus</strong>zentrale<br />

gibt es ab 100 Euro inklusive<br />

Software, der Kunde bedient sie übers<br />

LAN. Den echten <strong>Linux</strong>er schreckt aber<br />

nicht der Preis, eher die proprietäre Steuerungssoftware.<br />

FHEM steuert FS20<br />

Dass es dazu Alternativen gibt, lernten<br />

viele Anwender erst, als AVM [2]<br />

das Homeautomation System FHEM<br />

[3] von Rudolf König als Erweiterung<br />

für die Fritzbox anbot. Wer sich einen<br />

Sender und ​Empfänger als USB-Stick besorgt,<br />

konnte so Kontakt zu dem FS20-<br />

Managementsystem aufnehmen oder als<br />

Verwaltung agieren. Und das Beste daran:<br />

FHEM ist ein in Perl geschriebenes Open-<br />

Source-Projekt.<br />

Ein CC1101-USB-Lite-868-MHz-Dongle<br />

von Busware [4] für etwa 50 Euro ist<br />

um die Hälfte billiger als die proprietär<br />

bestückte <strong>Haus</strong>zentrale, und weil FHEM<br />

den USB-Dongle etwa an der Fritzbox automatisch<br />

erkennt, ist weitere Hardware<br />

erst mal unnötig. Nach dem Einstecken<br />

greift der stolze Besitzer über die eigene<br />

Weboberfläche auf Aktoren und Sensoren<br />

zu. Richtig Spaß machen die Apps<br />

für Android und I-OS, die ebenfalls das<br />

FHEM-Backend ansprechen (Abbildung<br />

2 bis 4). Dabei ist FS20 nur eines von<br />

mehreren Protokollen, die FHEM beherrscht.<br />

Eine einfache Aufgabe für jedes Home-<br />

Automation-System ist die Kontrolle der<br />

Heizkörper. Eine Stunde bevor der erste<br />

Bewohner voraussichtlich von der Arbeit<br />

nach <strong>Haus</strong>e kommt, sollte FHEM die<br />

Temperatur auf ein angenehmes Maß einstellen,<br />

nachts und während des Arbeitstages<br />

dagegen absenken. Ein einfaches


Zeitthermostat kostet etwa 30 Euro, wer<br />

es mit den weiter unten beschriebenen<br />

Homematic-Systemen [5] steuern will,<br />

zahlt 40 Euro.<br />

Für etwas mehr (55 bis 80 Euro), bekommt<br />

er gar ein (ebenfalls auf FS20<br />

basierendes) FHT-System [6] mit Stellantrieb,<br />

Fensterkontakt sowie einem Raumthermostat.<br />

Der Fensterkontakt erlaubt<br />

das automatische Ausschalten der Heizung<br />

bei geöffneten Fenster. Wer mehrere<br />

Heizkörper in einem Raum hat, braucht<br />

mehrere synchronisierte Stellantriebe,<br />

auch das ist möglich, ebenso beliebig<br />

viele Fensterkontakte und ein frei <strong>im</strong><br />

Raum positionierbares Thermostat.<br />

FHEM kann all diese Systeme steuern<br />

und baut aus den Temperaturdaten ganz<br />

automatisch einen Graphen, der die aktuelle<br />

Stellung des Ventils sowie den Status<br />

des Fensterkontakts beinhaltet. Den Temperaturregler<br />

an der Heizung steuert der<br />

Anwender übers Webinterface oder mit<br />

den Apps, auch von unterwegs.<br />

Probleme von FS20<br />

Im Testbetrieb zeigten sich jedoch einige<br />

kleinere Probleme mit dem FS20-System.<br />

Der Funkbereich scheint nicht besonders<br />

gut abgegrenzt, vor allem bei älteren Modellen.<br />

Berichte über Störungen häufen<br />

sich, besonders seit der Einführung von<br />

LTE (790 bis 862 MHz). Im Test entwickelte<br />

eine Funksteckdose ihr Eigenleben.<br />

[7]<br />

Ein weiterer Nachteil bei FS20 ist der<br />

fehlende Rückkanal. Wer zum Beispiel<br />

die Funksteckdose direkt am Gerät einschaltet<br />

oder wenn ein Schaltbefehl aufgrund<br />

einer Störung nicht gelingt, dann<br />

bekommt die Zentrale davon nichts mit.<br />

Da bleibt dann nur, mit FHEM auf andere<br />

Hardware zu setzen.<br />

Homematic<br />

Besonders interessant erscheint das wie<br />

FS20 weit verbreitete Homematic-System<br />

[8]. Es bietet bidirektionale Kommunikation,<br />

informiert sich so <strong>im</strong>mer über den<br />

aktuellen Schaltzustand und kann einen<br />

nicht erfolgreichen Befehl nochmals absenden.<br />

Außerdem nutzt es AES-Signaturen<br />

und ist damit deutlich sicherer als<br />

die Kommunikation bei FS20. Zwar verschlüsselt<br />

es das Signal nicht, <strong>im</strong>merhin<br />

stellt aber ein AES-Challenge-Response<br />

sicher, dass das Signal tatsächlich von der<br />

eigenen Zentrale kommt und nicht vom<br />

Nachbarn oder einem Angreifer. Eine einzelne<br />

Funksteckdose zum Dazwischen-<br />

Stecken kostet bei Homematic 40 Euro,<br />

es gibt aber auch Versionen zum Einbau<br />

in Steckdosen oder Wandschalter. Die<br />

professionelle <strong>Haus</strong>zentrale würde um<br />

150 Euro kosten, ist jedoch danke FHEM<br />

nicht mehr erforderlich.<br />

Homematic läuft wie FS20 über das ISM/​<br />

SRD-Band auf 868 MHz, ist jedoch nicht<br />

damit kompatibel. FS20 ist amplitudenmoduliert,<br />

sendet und empfängt mit einer<br />

Datenrate von 1 kHz. Homematic ist frequenzmoduliert<br />

und hat eine Datenrate<br />

von 20 kHz. Spezielle Firmware erlaubt<br />

zwar den permanenten Wechselbetrieb,<br />

doch können be<strong>im</strong> Wechsel zwischen<br />

den Betriebsmodi Informationen verloren<br />

gehen. Wer das vermeiden will, braucht<br />

einen zweiten Transceiver wie den von<br />

Home Automation 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

25<br />

fhem.de<br />

fhem.de<br />

Abbildung 2: Die FHEM-Steuerzentrale <strong>im</strong> Browser, …<br />

Abbildung 3: … und auf Android oder iPhone.


Titelthema<br />

www.linux-magazin.de Home Automation 01/2014<br />

26<br />

Busware [4] aus Abbildung 1. Die COC<br />

(CC1101 One Wire Clock) erweitert den<br />

Mini-PC um einen One-Wire-Bus, einer<br />

Real T<strong>im</strong>e Clock sowie einen den benötigten<br />

CC1101-Transceiver. Als Aufsteckboard<br />

landet sie auf dem Pi, auch<br />

der USB-Stick aus dem Fritzbox-Beispiel<br />

bleibt <strong>im</strong> Einsatz. Busware bietet solche<br />

Module ab 65 Euro an.<br />

Einsatzmöglichkeiten<br />

Außenthermometer, Bewegungsmelder,<br />

Bluetooth und WLAN: Dem Basteltrieb<br />

scheinen kaum mehr Grenzen gesetzt.<br />

Jetzt kann der <strong>Haus</strong>herr mit nur einem<br />

Knopfdruck den Beamer einschalten, die<br />

Rollläden schließen und das Licht ausmachen.<br />

Oder er ermittelt die Anwesenheit<br />

von Personen, indem er die Liste von<br />

Geräten <strong>im</strong> WLAN oder via Bluetooth<br />

prüft. Aktionen lassen sich per SMSoder<br />

Mail-Eingang triggern, Sensordaten<br />

verschicken. Das FHEM-Wiki [9] bietet<br />

zahlreiche Beispiele und Anleitungen<br />

von einfachen Schaltungen und Zeitsteuerungsaufgaben<br />

bis zur Alarmanlage<br />

oder einem Bewässerungssystem, das in<br />

Abhängigkeit der Bodenfeuchtigkeit eine<br />

Bewässerungspumpe aktiviert.<br />

Neben den <strong>im</strong> Kasten „Protokolle und<br />

Systeme“ beschriebenen Unterbauten<br />

hat auch die Software-Seite noch einiges<br />

zu bieten. Als Alternative zu FHEM bieten<br />

sich das ebenfalls in Perl geschriebene<br />

Misterhouse [13], das mit One-Wire, X10,<br />

Z-Wave und Zigbee auch noch einige andere<br />

Standards als FHEM unterstützt.<br />

Weil es aber in Europa verbreitete Sys-<br />

Protokolle und Systeme<br />

Besonders in den USA ist X10 [10], ein auf<br />

Powerline basierendes Protokoll, weit verbreitet.<br />

X10-RF erlaubt es Komponenten auch, per<br />

Funk zu kommunizieren. Doch wegen seiner<br />

diffizilen Anforderungen ans Stromnetz ist<br />

es in Deutschland nur noch selten zu finden.<br />

Anbieter wie Marmitek [11] stellen Komponenten<br />

her. Zigbee und Z-Wave sind zwei weitere<br />

häufig verwendete, konkurrierende Systeme. Z-<br />

Wave benutzt ein vermaschtes Netz, was auch<br />

Knoten miteinander kommunizieren lässt, die<br />

für eine direkte Verbindung außer Reichweite<br />

teme wie Homematic oder FS20 nicht<br />

beherrscht und etwas altbacken daherkommt,<br />

scheidet es in den meisten Fällen<br />

wohl aus. Mehr Potenzial hat dagegen<br />

das noch sehr junge Openhab [14]. Die<br />

Java- und OSGi-basierte Alternative zu<br />

FHEM verlangt wohl etwas mehr Ressourcen<br />

vom Raspberry als das sonst<br />

ubiquitäre Perl. Dumm nur, dass auch<br />

Openhab FS20 noch nicht beherrscht.<br />

Fazit<br />

FS20 und sein Nachfolger Homematic<br />

bieten sich <strong>im</strong> Mitteleuropa schon wegen<br />

der großen Verbreitung für das digitale<br />

Zuhause an. Da bei FS20 keine bidirektionale<br />

Kommunikation möglich ist<br />

sowie die Möglichkeit der Absicherung<br />

der Kommunikation völlig fehlt, eignet es<br />

sich leider nur für wenige Anwendungsgebiete.<br />

Zwar lassen sich so genannte<br />

<strong>Haus</strong>codes vergeben, sie sind aber leicht<br />

auslesbar. Es gibt also keine Möglichkeit,<br />

zu verhindern, dass Fremde die Geräte<br />

Abbildung 4: Das grafische Anzeigemodul von FHEM ist wohl die anschaulichste Darstellungsform der Sensoren.<br />

fhem.de<br />

sind. Die Kommunikation läuft wie bei FS20 <strong>im</strong><br />

ISM-Band bei 868,42 MHz. Zigbee funkt dagegen<br />

<strong>im</strong> 2,4-GHz-Band und basiert auf dem<br />

IEEE-802.15-Standard. Es erzeugt ebenfalls ein<br />

Mesh-Netzwerk mit einer Datenrate von 250<br />

Kbit/​s, soll jedoch sparsamer und billiger sein<br />

als WLAN oder Bluetooth. Bei der He<strong>im</strong>vernetzung<br />

kommen beide Systeme jedoch nur noch<br />

selten zum Einsatz, vor allem in Deutschland.<br />

Darüber hinaus existieren noch zahlreiche Protokolle<br />

mit geringer Verbreitung, etwa AVMs<br />

Dect-Systeme zur He<strong>im</strong>vernetzung [12].<br />

schalten oder Werte von Sensoren auslesen.<br />

Allerdings sind FS20- und kompatible<br />

Geräte jedoch meist günstiger und<br />

leichter zu bekommen.<br />

Das freie FHEM, das sich ohne zusätzliche<br />

24 Stunden laufende Hardware auf<br />

einer Fritzbox oder einem Raspberry Pi<br />

betreiben lässt, ist wohl die am weitesten<br />

verbreitete Software. Ob Openhab eine<br />

sich zur besseren Alternative aufschwingen<br />

kann, muss sich erst noch zeigen.<br />

Aktuell leidet es darunter, FS20-Komponenten<br />

nicht zu unterstützen. n<br />

Infos<br />

[1] FS-20-Systeme bei ELV: [http:// www. elv.​<br />

de/ fs20‐funkschaltsystem. html]<br />

[2] AVM bringt Home Automation auf die<br />

Fritzbox: [http:// www. avm. de/ de/ Service/​<br />

Service‐Portale/ Labor/ 7390_hausautomation/<br />

labor_start_hausautomation. php]<br />

[3] FHEM: [http:// fhem. de]<br />

[4] Busware: [http:// shop. busware. de]<br />

[5] Homematic: [http:// www. homematic. com]<br />

[6] FHT-Systeme für Homematic: [http:// www.​<br />

fhemwiki. de/ wiki/ Kategorie:Hardware]<br />

[7] LTE-Probleme: [http:// www. elv. de/​<br />

nicht‐lte‐stoerfest. html]<br />

[8] Homematic: [http:// www. elv. de/ home<br />

matic‐hausautomations‐systeme. html]<br />

[9] FHEM-Wiki: [http:// www. fhemwiki. de]<br />

[10] X10: [http:// de. wikipedia. org/ wiki/​<br />

X10_%28Protokoll%29]<br />

[11] Marmitek: [http:// www. marmitek. com/ de/​<br />

produkte/ home‐automation‐security. php]<br />

[12] AVMs Dect-System:<br />

[http:// www. avm. de/ de/ News/ artikel/​<br />

2012/ newsletter/ ifa_dect_200E. html]<br />

[13] Misterhouse:<br />

[http:// misterhouse. sourceforge. net]<br />

[14] Openhab:<br />

[http:/ c/ ode. google. com/ p/ openhab]


Titelthema<br />

www.linux-magazin.de Türöffner 01/2014<br />

28<br />

Ein Türöffner <strong>im</strong> Eigenbau<br />

Sesam öffne dich!<br />

Ein Optokoppler, ein Mosfet, ein Raspberry Pi, ein Webserver mit SQL-Datenbank und ein wenig Skript-Magie<br />

reichen aus, um einen <strong>Haus</strong>türöffner zu bauen. Der öffnet vom Smartphone aus die Tür oder spielt sogar je<br />

nach Gast andere Klingeltöne ab. Sven Seeberg, Markus Feilner<br />

© Mike Zakharov, 123RF.com<br />

01 #!/usr/bin/python2.7<br />

Ein großer Teil des Erfolgs des Raspberry<br />

Pi liegt in seinen praktischen und handlichen<br />

GPIO-Pins, die auf dem Board verlötet<br />

sind. Das Beispiel in diesem Artikel<br />

nutzt sie, um zwei Türöffner und die<br />

Klingel der Schließ- und Gegensprechanlage<br />

an den Platinenrechner zu koppeln.<br />

Der Anschluss zum Schalter in der<br />

zentralen Schließanlage ist hinter einem<br />

02 <strong>im</strong>port RPi.GPIO as GPIO<br />

03 <strong>im</strong>port t<strong>im</strong>e<br />

04 GPIO.setwarnings(False)<br />

05 GPIO.setmode(GPIO.BOARD)<br />

06 GPIO.setup(7,GPIO.OUT)<br />

07 GPIO.output(7,GPIO.HIGH)<br />

Listing 1: »open.py«<br />

Optokoppler direkt auf den Türöffner der<br />

<strong>Haus</strong>tür gelötet, parallel zur eingebauten<br />

Aufsperren-Taste.<br />

GPIO-Pins, Optokoppler und<br />

ein Mosfet<br />

Auch an der Wohnungstür ist nun ein<br />

elektrischer Türöffner verbaut. Den<br />

08 t<strong>im</strong>e.sleep(5)<br />

09 GPIO.output(7,GPIO.LOW)<br />

10 t<strong>im</strong>e.sleep(12)<br />

11 GPIO.setup(11,GPIO.OUT)<br />

12 GPIO.output(11,GPIO.HIGH)<br />

13 t<strong>im</strong>e.sleep(35)<br />

14 GPIO.output(11,GPIO.LOW)<br />

schaltet ein etwas größerer Mosfet vom<br />

zweiten GPIO-Pin des Raspi aus. Zusätzlich<br />

prüft ein Sensor, ob die Tür offen ist.<br />

Alles, was nicht <strong>im</strong> Pi integriert ist, bringt<br />

der Bastler in einem eigenen Gehäuse<br />

(Abbildung 1) unter, zum Beispiel auch<br />

einen Lautsprecher.<br />

Der Webserver läuft über HTTPS, kann<br />

per VPN oder WLAN, NAT und lokale<br />

IPs gesichert sein. Eine von PHP generierte<br />

Webseite stellt das Anmeldeformular<br />

bereit. Das ist betont s<strong>im</strong>pel gehalten<br />

(Abbildung 2), bietet aber bereits eine<br />

kleine User-Verwaltung mit Einträgen in<br />

einer SQL-Datenbank, die es gestatten,<br />

jeden Eingelassenen mit einem eigenen<br />

Klingelton zu versehen. Die dem User<br />

zugeordnete Datei liegt in einer SQL-Tabelle,<br />

der Raspi spielt sie ab, sobald der<br />

User die Tür öffnet.<br />

Dank des erwähnten Lautsprechers ist<br />

<strong>im</strong> Normalfall der Klang also in der Wohnung<br />

zu hören, aber den Aktionen sind<br />

hier keine Grenzen gesetzt. In Zeile 38<br />

des »index.php«-Beispiels (siehe weiter<br />

unten) spielt Splay ein Audiofile ab:<br />

$command = "screen ‐dm aplay /var/www/U<br />

sesame/".$array['sound'];<br />

Denkbar ist es aber auch, über Skripte<br />

oder SSH-Befehle etwa <strong>im</strong> Büro oder am<br />

Laptop einen Ton abzuspielen, wenn<br />

zu <strong>Haus</strong>e jemand klingelt, oder gar die<br />

Sprechanlage weiterzuleiten. Das Standard-<strong>Linux</strong><br />

auf dem Raspi eröffnet hier<br />

alle Möglichkeiten.<br />

01 #!/usr/bin/python2.7<br />

02 <strong>im</strong>port RPi.GPIO as GPIO<br />

03 <strong>im</strong>port t<strong>im</strong>e<br />

04 GPIO.setwarnings(False)<br />

05 GPIO.setmode(GPIO.BOARD)<br />

Listing 2: »open_down.py«<br />

06 GPIO.setup(7,GPIO.OUT)<br />

07 GPIO.output(7,GPIO.HIGH)<br />

08 t<strong>im</strong>e.sleep(5)<br />

09 GPIO.output(7,GPIO.LOW)<br />

Root-Probleme<br />

Die einzigen Probleme in der Konfiguration<br />

macht die Tatsache, dass <strong>im</strong> Raspberry<br />

(mindestens auf Debian Wheezy)<br />

nur Root den GPIO nutzen darf. Deshalb


Türöffner 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

29<br />

Abbildung 1: Von oben nach unten: Raspi, separates Gehäuse und Türöffner.<br />

Abbildung 2: Grüner Hintergrund, das bedeutet: Die Tür ist zu.<br />

führt ein Wrapper die Python-Skripte als<br />

Root aus. Listing 1 (»open.py«, öffnet<br />

beide Türen ), Listing 2 (»open_down.<br />

py«, öffne unten) und Listing 3 (»open_<br />

up.py«, öffne unten) zeigen, wie Python<br />

die GPIO-Pins adressiert, während<br />

Listing 4 (»sensor.py«) den Status der<br />

Wohnungstür abfragt.<br />

Nicht gerade elegant:<br />

Gewrapptes Python<br />

Für ein erstes Beispiel reicht dieses<br />

Vorgehen, auch wenn es bessere Wege<br />

gibt, als Python mit einem C-Wrapper<br />

auszustatten. Beispielsweise ließen sich<br />

die Funktionalitäten der Python-Skripte<br />

direkt in C-Programme <strong>im</strong>plementieren<br />

oder die Skripte einfach für unprivilegierte<br />

User schreib- und ausführbar machen,<br />

doch für den privaten Einsatz <strong>im</strong><br />

abgesicherten LAN funktioniert das Beispiel<br />

schnell und zuverlässig.<br />

Das Webinterface (Abbildung 2) besitzt<br />

übrigens eine versteckte Funktion: Den<br />

Tür-Status zeigt die Hintergrundfarbe der<br />

Website an: Grün steht für geschlossen,<br />

Rot für geöffnet. Bleibt die Tür länger als<br />

5 Minuten auf, dann schickt der Pi brav<br />

eine Mail an einen konfigurierten Account<br />

– geregelt von »sensor.py« (Listing<br />

4), aufgerufen durch die Zeile<br />

Listing 3: »open_up.py«<br />

01 #!/usr/bin/python2.7<br />

02 <strong>im</strong>port RPi.GPIO as GPIO<br />

03 <strong>im</strong>port t<strong>im</strong>e<br />

04 GPIO.setwarnings(False)<br />

05 GPIO.setmode(GPIO.BOARD)<br />

Listing 4: »sensor.py«<br />

01 #!/usr/bin/python2.7<br />

02 <strong>im</strong>port RPi.GPIO as GPIO<br />

03 <strong>im</strong>port t<strong>im</strong>e<br />

04 GPIO.setwarnings(False)<br />

05 GPIO.setmode(GPIO.BOARD)<br />


Titelthema<br />

www.linux-magazin.de Software Defined Radio 01/2014<br />

30<br />

Wetterdaten via SDR auslesen<br />

Wellenreiten<br />

Mit 20-Euro-Hardware und freier Software-Defined-Radio-Software beginnt für Konstantin Agouros die Jagd<br />

auf die per Funk übertragenen Daten einer Wetterstation. Konstantin Agouros<br />

Editor, um die digitalisierten Funkdaten<br />

am Rechner zu verarbeiten.<br />

Die Hardware<br />

© epicstockmedia, 123RF.com<br />

Wetterstationen mit Außensender (Abbildung<br />

1) sind heute in vielen <strong>Haus</strong>halten<br />

<strong>im</strong> Einsatz – so auch in meinem.<br />

Der kleine Sender liegt in diesem Fall auf<br />

dem Fensterbrett, misst Wetterdaten wie<br />

Temperatur, Luftdruck oder Luftfeuchtigkeit<br />

und übermittelt diese digital an<br />

eine Basisstation, die sie dann anzeigt.<br />

Doch eine Basisstation zum Empfang der<br />

Daten ist nicht einmal unbedingt notwendig.<br />

Mit etwas Bastelleidenschaft und der<br />

Hilfe von Software Defined Radio (siehe<br />

Kasten „SDR“) kann ich solche Funkdaten<br />

auch mit dem Rechner empfangen,<br />

auslesen und sogar erzeugen.<br />

Weil dabei die Software den Großteil der<br />

Arbeit erledigt, darf mein Lötkolben getrost<br />

<strong>im</strong> Schrank liegen bleiben. Lediglich<br />

die entsprechende Hardware, die nur ein<br />

paar Euro kostet, muss her sowie ein<br />

Vor der Analyse der digitalen Daten<br />

musste ich zunächst die passende Hardware<br />

für den Empfang finden. Während<br />

speziell dafür entwickelte Hardware recht<br />

kostspielig ist, bieten DVB-T-Sticks für<br />

rund 20 Euro eine sehr günstige Einstiegsmöglichkeit<br />

in SDR, sofern sie best<strong>im</strong>mte<br />

Realtek-Chipsätze (RTL2832U)<br />

mitbringen. Das Ganze firmiert unter<br />

dem Stichwort „RTL-SDR“ und benötigt<br />

die Bibliothek Librtlsdr.<br />

Ein Blick auf meine Wetterstation zeigt,<br />

dass sie Daten auf der 868-MHz-Frequenz<br />

empfängt. Die Webseiten unter [1] und<br />

[2] listen diverse Chipsätze sowie die<br />

von ihnen abgedeckten Frequenzbereiche<br />

auf. Hier findet sich auch gleich eine<br />

Liste von Produkten, die diese Chips enthalten.<br />

Auf Empfehlung eines Kollegen<br />

erwarb ich einen Terratec Cinergy T Stick<br />

RC mit Elonics-Chipsatz, der von den aufgelisteten<br />

DVB-T-Empfängern den größten<br />

Frequenzbereich abdeckt – so auch<br />

© Roman Ivaschenko, 123RF.com<br />

Abbildung 1: Die Kommunikation zwischen einer handelsüblichen Wetterstation<br />

(links) und dem zugehörigen Sensor (rechts) lässt sich mit SDR auswerten.<br />

Abbildung 2: Gqrx stellt die Daten in einer Wasserfallgrafik dar.


den des Wettersensors. Der Kostenpunkt<br />

der Hardware liegt bei 23 Euro, praktischerweise<br />

ist <strong>im</strong> Lieferumfang eine Stabantenne<br />

enthalten.<br />

Die Software<br />

Als Installationsbasis diente mir ein Netbook<br />

mit Mint 15, bei der Analyse der<br />

per Funk empfangenen Signale half das<br />

Gnu-Radio-Framework [3]. Das ist eine<br />

Art Baukasten, der sogar einen grafischen<br />

Editor enthält und die Signalverarbeitung<br />

von Rohdaten (gegebenenfalls auch in<br />

Echtzeit) mit Hilfe diverser Filter bis hin<br />

zu einem Zielformat ermöglicht. Die Software<br />

erzeugt dabei automatisch Python-<br />

Code, der die Daten verarbeitet.<br />

Um den DVB-T-Stick als Empfänger einzusetzen,<br />

benötige ich zunächst das RTL-<br />

SDR-Paket, das<br />

git clone git://git.osmocom.org/rtl‐sdr.git<br />

auf den Rechner holt. Gentoo und Arch<br />

<strong>Linux</strong> bringen bereits fertige Pakete mit,<br />

unter Ubuntu lässt sich die Software über<br />

ein PPA installieren (siehe Kasten „Gnu<br />

Radio aus dem PPA“).<br />

Das Bauen der Software aus den Quellen<br />

funktioniert über Cmake, aber es<br />

gibt einen Haken: RTL-SDR verwendet<br />

die Bibliothek Libusb, um mit dem Stick<br />

zu kommunizieren. Werden jedoch best<strong>im</strong>mte<br />

Treiber geladen, kann die Software<br />

nicht mehr korrekt mit dem Stick<br />

reden. Mein Mint-System hat die Module<br />

aus Listing 1 geladen. Listing 2 zeigt eine<br />

Anleitung von der Webseite [1] für das<br />

Bauen der Software aus den Quellen.<br />

Test, Test!<br />

Um das Laden der Module zu unterbinden,<br />

ist eine Modifikation der Udev-Regeln<br />

notwendig. Dazu musste ich den<br />

SDR<br />

Software Defined Radio greift die elektromagnetische<br />

Wellen quasi direkt an der Antenne<br />

ab und bearbeitet sie mit Hilfe von Software.<br />

Im einfachsten Fall besteht ein SDR-Empfänger<br />

aus einer Antenne und einem Analog-<br />

Digital-Wandler plus Software. Abhängig<br />

vom Gerät lässt sich damit ein recht großer<br />

Frequenzbereich scannen. Anwendungen, mit<br />

deren Hilfe sich SDR umsetzen lässt, heißen<br />

Gnu Radio, Gnu Radio Companion oder Gqrx.<br />

Cmake-Aufruf um den Parameter »‐DIN-<br />

STALL_UDEV_RULES=ON« erweitern<br />

und anschließend noch das Kommando<br />

sudo make install‐udev‐rules<br />

hinterherschicken. Nun ließen sich die<br />

Funktionen der Hardware über<br />

rtl_test ‐t<br />

auslesen, um etwa herauszufinden, welchen<br />

Frequenzbereich der DVB-T-Stick<br />

abdeckt. Ein handfester Test ist auch der<br />

Empfang eines örtlichen Radiosenders:<br />

rtl_fm ‐f 98.5M ‐W ‐s 200000 ‐r 48000 ‐ |<br />

aplay ‐r 48k ‐f S16_LE<br />

Der Demodulator »rtl_fm« n<strong>im</strong>mt 200 000<br />

Samples pro Sekunde auf der Frequenz<br />

98,5 MHz (die Frequenz eines Radiosenders)<br />

auf. Aplay spielt den Datenstrom<br />

mit einer Rate von 48 kHz auf Stdout<br />

ab. Da die Roh-Audiodatei keine Header-<br />

Informationen enthält, liest Aplay die Daten<br />

mit dieser Rate ein und kodiert sie mit<br />

16 Bit <strong>im</strong> Little-Endian-Format.<br />

Die Analyse<br />

Um interessante Signale <strong>im</strong> Äther zu<br />

finden, ist Zuhören angesagt. Das Kom-<br />

Gnu Radio aus dem PPA<br />

Vor dem Anstecken der Hardware muss der<br />

Ubuntu-Nutzer eine Udev-Datei anlegen.<br />

Dazu liest er per »lsusb« die Vendor- und die<br />

Product-ID seines DVB-T-Sticks aus und setzt<br />

als Root den folgenden Befehl ab:<br />

echo 'SUBSYSTEM=="usb",U<br />

ATTRS{idVendor}=="Vendor ID",U<br />

ATTRS{idProduct}=="Product ID",U<br />

GROUP="adm", MODE="0666",U<br />

SYMLINK+="rtl_sdr"' > U<br />

/etc/udev/rules.d/20.rtlsdr.rules<br />

Der Befehl schreibt eine neue Regel für Udev,<br />

die sich auf den DVB-T-Stick bezieht. Vor dem<br />

Anstecken des Sticks muss Root Udev zudem<br />

neu starten:<br />

service udev restart<br />

Die Debian-Pakete von Gnu Radio und Gqrx<br />

installieren Ubuntu-Nutzer aus einem PPA:<br />

sudo add‐apt‐repository ppa:gqrx/U<br />

snapshots<br />

sudo apt‐get update<br />

sudo apt‐get install gqrx gnuradio<br />

Über den Aufruf von »gqrx« lässt sich das<br />

SDR-GUI anschließend starten.<br />

Software Defined Radio 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

31


Titelthema<br />

www.linux-magazin.de Software Defined Radio 01/2014<br />

32<br />

01 e4000 12862 1<br />

02 rtl2832 13312 1<br />

03 dvb_usb_rtl28xxu 18737 0<br />

04 rtl2830 13511 1 dvb_usb_rtl28xxu<br />

05 dvb_usb_v2 22916 1 dvb_usb_rtl28xxu<br />

06 dvb_core 90402 3 rtl2830,rtl2832,dvb_usb_v2<br />

07 rc_core 21266 3 dvb_usb_rtl28xxu,dvb_usb_v2<br />

08<br />

01 cd rtl‐sdr/<br />

02 mkdir build<br />

03 cd build<br />

04 cmake ../<br />

05 make<br />

06 sudo make install<br />

07 sudo ldconfig<br />

Abbildung 3: Be<strong>im</strong> Hineinzoomen in die Daten mit Audacity in eine der Spitzen ergibt sich Abbildung 4.<br />

Abbildung 4: Das Bitmuster, das Audacity anzeigt, lässt sich mit Hilfe eines Skripts dekodieren.<br />

Listing 1: »lsmod | head 7«<br />

Listing 2: »rtl‐sdr« kompilieren<br />

mando, das ich oben zum Radiohören<br />

verwendet habe, liefert auf anderen<br />

Frequenzen Rauschen, wenn auf ihnen<br />

nichts sendet. Digitale Signale hören sich<br />

anders an als Rauschen und geben so –<br />

unter Berücksichtigung der Rechtslage<br />

(siehe Kasten „Rechtslage um SDR“)<br />

– Futter für weitere Analysen.<br />

Um größere Frequenzbereiche abzusuchen,<br />

bietet sich Software wie Gqrx [5]<br />

an, ein praktisches Frontend, das die Daten<br />

in Kurven und einer Wasserfallgrafik<br />

optisch aufbereitet (Abbildung 2).<br />

Das Wetter<br />

Da auf meiner Wetterstation glücklicherweise<br />

die richtige Frequenz aufgedruckt<br />

ist, ließ sich eine Suche vermeiden. Als<br />

ich die Frequenz auf 868 MHz einstellte,<br />

ertönten alle paar Sekunden Knackgeräusche,<br />

die ich aufzeichnete und mit dem<br />

Audio-Editor Audacity analysierte. Nach<br />

dem Import der Daten ergab sich <strong>im</strong> Test<br />

das Bild aus Abbildung 3.<br />

Tatsächlich ließ die vergrößerte Ansicht<br />

ein Muster erkennen. Jetzt musste ich<br />

dieses Signal dekodieren, um die Daten<br />

(Temperatur und Luftfeuchtigkeit) auszulesen.<br />

Eine Internetrecherche zeigte, dass<br />

sich jemand diese Arbeit bereits gemacht<br />

hat. Unter [6] und [7] finden sich Analysen<br />

der Wettersensoren.<br />

Christophe Jacquets Pydemod-Paket geht<br />

von einer 16-Bit-Präambel aus, bestehend<br />

aus 1010101010101010. Ihr folgend sendet<br />

sein Sensor wie der in [8] mit 17 200<br />

Baud ein Signal, das On-off-Keying verwendet:<br />

Verläuft die Kurve von Abbildung<br />

5 nach oben, wird eine 1 übertragen,<br />

fällt sie nach unten, eine 0. Ob sie<br />

nach oben läuft, lässt sich über das Verhältnis<br />

der numerischen Werte der Samples<br />

zur Baud rate herausfinden.<br />

Aber die ersten Tests, die Daten aus<br />

»rtl_fm« mit Hilfe von »decode_tfa.py«<br />

[9] auszuwerten, blieben ergebnislos.<br />

Leider fehlte in den Aufzeichnungen von<br />

Christophe eine Angabe darüber, wie er<br />

»rtl_fm« aufgerufen hat, um die Rohdaten<br />

für die Analyse zu bekommen. Auch<br />

der Screenshot der empfangenen Daten<br />

sah in seinem Blog ganz anders aus als<br />

bei mir.<br />

Glücklicherweise half Christophe und erweiterte<br />

sein Skript so, dass es auch mit<br />

den Daten des Wettersensors arbeitet.<br />

Wie sich zeigte, bestanden die Probleme<br />

in den folgenden Punkten:<br />

Listing 3: Ausgabe von »rtl_fm«<br />

01 Found 1 device(s):<br />

02 0: Realtek, RTL2838UHIDIR, SN: 00000001<br />

03 <br />

04 Using device 0: Terratec Cinergy T Stick RC<br />

(Rev.3)<br />

05 Found Elonics E4000 tuner<br />

06 Bitrate: 9600, synclen: 24, framelen: 80<br />

07 Using frame duration 1600.0 samples<br />

08 Squelch at 2200, should be slightly greater<br />

than usual max; use ‐‐squelch to change<br />

09 Oversampling input by: 7x.<br />

10 Oversampling output by: 1x.<br />

11 Buffer size: 7.31ms<br />

12 Tuned to 868679999 Hz.<br />

13 Sampling at 1120000 Hz.<br />

14 Output at 160000 Hz.<br />

15 Exact sample rate is: 1120000.035604 Hz<br />

16 Tuner gain set to automatic.<br />

17 Min: 0 ‐ Mean: 273.97845 ‐ Max: 1224<br />

18 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

19 Frame: size 98 bits, contents 1010101010101<br />

0101010101000111101110101000000000000000000<br />

000000000000000000000000000000000000000000,<br />

framelen=80<br />

20 Frame hex contents: AA AA AA 3D D4 00 00 00<br />

00 00<br />

21 CRC: calculated=00, received=00<br />

22 Temperature: ‐40.0 C ‐‐ Humidity: 0 %<br />

23 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

24 Min: 0 ‐ Mean: 270.3753 ‐ Max: 1260<br />

25 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

26 Frame: size 96 bits, contents 101010101010<br />

101010101010001011011101010010010001110001<br />

000110001001001001011001010000000000000000,<br />

framelen=80<br />

27 Frame hex contents: AA AA AA 2D D4 91 C4 62<br />

49 65<br />

28 CRC: calculated=65, received=65<br />

29 Temperature: 6.2 C ‐‐ Humidity: 73 %<br />

30 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐


Software Defined Radio 01/2014<br />

Titelthema<br />

Abbildung 5: So sieht schließlich das richtig demodulierte Signal aus.<br />

n Meine Samples waren mit der falschen<br />

Modulationsmethode entstanden. Der<br />

Sender moduliert mit der Amplitude,<br />

nicht mit der Frequenz. Daher muss<br />

»rtl_fm« den Parameter »‐M« mit auf<br />

den Weg bekommen.<br />

n Mein Sender schickte die Daten mit<br />

9600 statt mit 17 200 Baud.<br />

n Die Datenpräambel lautete zudem<br />

nicht 1010101010101010, sondern<br />

101010101010101010101010, es waren<br />

also tatsächlich 24 statt 16 Bit.<br />

Es gab noch einen weiteren Unterschied<br />

zwischen meinem Testsystem und den<br />

Daten von Christophe: Sein Radio-Empfangssystem,<br />

ein Funcube-Dongle, lieferte<br />

die Daten <strong>im</strong> Big-Endian-Format, der <strong>im</strong><br />

Test eingesetzte DVB-T-Stick verwendete<br />

hingegen das Little-Endian-Format. Dies<br />

musste Christophe <strong>im</strong> Code an der Stelle<br />

anpassen, welche die Rohformat-Samples<br />

in Zahlen zum Weiterverarbeiten verwandelt.<br />

Die Kodierung der Temperatur blieb in<br />

beiden Szenarien identisch. Drei Nibbles<br />

(4 Bit), die eine Stelle der Temperatur in<br />

BCD (Binary Coded Dec<strong>im</strong>al) kodierten,<br />

wobei die dritte Stelle die Zehntel-Grad<br />

www.linux-magazin.de<br />

33<br />

Rechtslage um SDR<br />

Christian Solmecke [4] ist Anwalt in der<br />

Kanzlei Wilde Beuger Solmecke und erklärt,<br />

was SDR-Nutzer be<strong>im</strong> Abhören der Frequenzen<br />

beachten sollten.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Welche Gesetzestexte sollten<br />

SDR-Nutzer genauer in Augenschein nehmen?<br />

Christian Solmecke: Die wichtigsten Regelungen<br />

finden sich <strong>im</strong> Telekommunikationsgesetz.<br />

Insbesondere die Paragrafen 89 und 148 sind<br />

hier entscheidend.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Wie sieht es mit dem absichtlichen<br />

oder unabsichtlichen Empfang von<br />

unverschlüsselter Kommunikation zwischen<br />

Personen aus, zu denen etwa der Polizei- und<br />

Rettungsfunk, aber auch der Amateurfunk gehören?<br />

Christian Solmecke: Der absichtliche Empfang<br />

unverschlüsselter Kommunikation ist nur in vier<br />

Konstellationen erlaubt. Das regelt Paragraf 89<br />

des Telekommunikationsgesetzes „Abhörverbot,<br />

Gehe<strong>im</strong>haltungspflicht der Betreiber von<br />

Empfangsanlagen“.<br />

1. Konstellation: Die Nachricht ist für den Funkbetreiber<br />

best<strong>im</strong>mt: Nachrichten, die nur für<br />

den Empfänger best<strong>im</strong>mt sind, darf auch nur<br />

dieser abhören – das ist zum Beispiel der Fall<br />

bei Handys oder privaten WLAN-Netzen.<br />

2. Konstellation: Der Empfang ist für die Allgemeinheit<br />

best<strong>im</strong>mt (TV, Radio).<br />

3. Konstellation: Der Empfang ist für Funkamateure<br />

best<strong>im</strong>mt.<br />

4. Konstellation: Der Empfang ist für einen<br />

unbest<strong>im</strong>mten Personenkreis best<strong>im</strong>mt, was<br />

der Fall ist bei Wetterinformationen für die<br />

See- und Luftfahrt.<br />

Außerhalb dieser vier Konstellationen bleibt<br />

der Empfang der Funkkommunikation verboten.<br />

Das Abhören des Polizei- und Rettungsfunks<br />

ist somit nicht erlaubt. Für den unabsichtlichen<br />

Empfang der Funkkommunikation gilt<br />

nichts anderes: Wer aus Versehen auf eine<br />

der Frequenzen des Polizeifunks kommt und<br />

diese nach dem Erkennen weiterhört oder das<br />

dort Gehörte verbreitet, macht sich genauso<br />

strafbar, wie derjenige, der mit Absicht diese<br />

Frequenzen abgehört hat. Die Strafbarkeit ist<br />

in Paragraf 148 des TKG geregelt, bis zu zwei<br />

Jahren Freiheitsstrafe sind möglich.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Darf man, wie es einige Webseiten<br />

tun, die unverschlüsselten Positionssignale<br />

von Flugzeugen (ADS-B) oder Schiffen<br />

(AIS) empfangen und online grafisch aufbereiten?<br />

Christian Solmecke: Bei der grafischen Aufbereitung<br />

der Daten kommt es auf die Darstellung<br />

<strong>im</strong> konkreten Fall an. Entscheidend ist, ob<br />

diese Daten eine Identifizierung ermöglichen.<br />

Dies kann datenschutzrechtlich problematisch<br />

sein – etwa bei Privatflugzeugen. Bei der Veröffentlichung<br />

personenbezogener Daten kann<br />

zudem eine Persönlichkeitsrechtsverletzung<br />

vorliegen.


Titelthema<br />

www.linux-magazin.de Software Defined Radio 01/2014<br />

34<br />

anzeigt. Darauf addiert mein Temperatursensor<br />

40, vermutlich um Minusgrade<br />

abzubilden. Die nächsten 8 Bit kodieren<br />

dann die Luftfeuchtigkeit.<br />

Die erste Version des Skripts ging außerdem<br />

davon aus, dass sie eine WAV-Datei<br />

vorgesetzt bekommt, die genau die Bits<br />

mit den Informationen und keinerlei Rauschen<br />

enthält. Das nun von Christophe<br />

maßgeblich überarbeitete und auf andere<br />

Fälle erweiterte Skript bringt einige neue<br />

Eigenschaften mit, die unter anderem<br />

Folgendes ermöglichen:<br />

n Es erkennt die Spitze der Daten daran,<br />

dass der numerische Wert des Sample<br />

einen Grenzwert überschreitet. Der<br />

liegt bei 4000, lässt sich aber – je nach<br />

Sendeleistung – ändern.<br />

n Die Daten können auch <strong>im</strong> Rohmodus<br />

vorliegen, also ohne WAV-Header, aber<br />

<strong>im</strong> Moment muss dies mit einer Rate<br />

von 160 000 pro Sekunde geschehen.<br />

n Die Länge der Präambel regelt ein eigener<br />

Parameter.<br />

n Die Baudrate der Datenübertragung<br />

lässt sich variabel einstellen.<br />

Daher erzeugt nun folgender Aufruf einen<br />

Strom von Temperaturmessungen:<br />

rtl_fm ‐M ‐f 868.4M ‐s 160k ‐ | python U<br />

decode_tfa.py ‐‐raw ‐ ‐‐bitrate 9600 U<br />

‐‐synclen 24<br />

Die Ausgabe des Befehls zeigt Listing 3.<br />

Ab und zu sind die Messdaten fehlerhaft.<br />

Dies lässt sich an zwei Dingen erkennen:<br />

Zum einen ist eine Checksumme enthalten,<br />

deren erwarteter und ermittelter<br />

Wert ausgegeben wird. Weichen diese<br />

voneinander ab, liegt ein Messfehler vor.<br />

Auch sind extreme Temperatursprünge<br />

eigentlich unmöglich, dennoch weichen<br />

zwei Messungen um mehr als 1 Grad<br />

Celsius voneinander ab.<br />

In der Praxis zeigte sich, dass die Antenne<br />

nicht zu weit vom Empfänger entfernt<br />

sein sollte. Schon bei 5 Metern Entfernung<br />

sank bei mir der Wert der Spitze<br />

deutlich ab. Liegt der Wert zu nahe am<br />

Rauschen, kann das Skript den Anfang<br />

der Daten nicht mehr erkennen.<br />

Das Python-Skript gibt während des<br />

Durchlaufs Min<strong>im</strong>al-, Max<strong>im</strong>al- und<br />

Durchschnittswerte aus. Im Praxistest<br />

kam es jedoch <strong>im</strong>mer wieder vor, dass<br />

der Ausschlag des Sticks zu schwach war.<br />

Das kann an der automatischen Verstärkung<br />

des Signals liegen. Entweder nagelt<br />

der SDR-Nutzer den Wert mit dem Parameter<br />

»‐g Wert« fest oder zieht den Stick<br />

und steckt ihn erneut an der Rechner.<br />

Eitel Sonnenschein<br />

Mit wenig finanziellem Aufwand und<br />

am Ende auch sehr wenig Software lässt<br />

sich die Aufgabe lösen, die Daten der<br />

Wetterstation auszulesen und in eine digital<br />

auswertbare Form zu bekommen.<br />

Die Basisstation des Testgeräts empfängt<br />

auch Daten mit Wetter- sowie Pollenflug-Vorhersagen.<br />

Diese kommen nicht<br />

vom Außensensor, sondern über das alte<br />

Pager-Netz. Auch dessen Daten lassen<br />

sich empfangen und mit dem Tool »mult<strong>im</strong>ode‐ng«<br />

dekodieren. Die Pager-Daten<br />

gehen <strong>im</strong> Klartext über den Äther, aber<br />

die Kodierung <strong>im</strong> String ist noch undokumentiert.<br />

Ein großes Dankeschön geht an<br />

Christophe Jacquet für die Anpassungen<br />

seines Skripts, die Echtzeit-Streaming ermöglichten.<br />

(kki)<br />

n<br />

Infos<br />

[1] RTL-SDR-Projekt:<br />

[http:// sdr. osmocom. org/ trac/ wiki/ rtl‐sdr]<br />

[2] Reddit-Thread mit SDR-Hardware-Empfehlungen:<br />

[http:// www. reddit. com/ r/ RTLSDR/​<br />

comments/ s6ddo/ rtlsdr_compatibility_list_<br />

v2_work_in_progress/]<br />

[3] Gnu Radio:<br />

[http:// gnuradio. org]<br />

[4] RA Christian Solmecke: [http:// www.​<br />

wbs‐law. de/ anwalt/ christian‐solmecke/]<br />

[5] Gqrx-GUI zur Spektrumanalyse:<br />

[http:// sourceforge. net/ projects/ gqrx/]<br />

[6] Blog von Christophe Jacquet mit der Protokollanalyse<br />

(französisch):<br />

[http:// www. jacquet80. eu/ blog/ post/ 2011/​<br />

10/ Decodage‐capteur‐thermo‐hygro‐TFA]<br />

[7] Erste Analyse des Protokolls von Fred Bossard:<br />

[http:// fredboboss. free. fr/ tx29/]<br />

[8] Pydemod-Paket:<br />

[http:// code. google. com/ p/ pydemod/]<br />

[9] Code von »decode_tfa.py«:<br />

[http:// code. google. com/ p/ pydemod/​<br />

source/ browse/ trunk/ src/ decode_tfa. py]<br />

Der Autor<br />

Konstantin Agouros arbeitet bei der N.runs Professionals<br />

GmbH als Berater für Netzwerksicherheit.<br />

Dabei liegt sein Schwerpunkt <strong>im</strong> Bereich der<br />

Mobilfunknetze. Sein Buch „DNS/​DHCP“ ist bei<br />

Open Source Press erschienen.


Titelthema<br />

www.linux-magazin.de Raumüberwachung 01/2014<br />

36<br />

IP-Kameras verwalten<br />

Kamera läuft<br />

Viele IP-Kameras lassen sich heute über intelligente Interfaces verwalten. Wenn diese fehlen oder <strong>im</strong> Gebäude<br />

mehrere Kameras filmen, kommen unter <strong>Linux</strong> kommerzielle und freie Anwendungen zum Zuge. Kristian Kißling<br />

© Dan Kuta, Photocase.com<br />

Systeme zur Kameraüberwachung über<br />

das Netzwerk existieren seit Mitte der<br />

90er Jahre. Aktuelle Modelle, die auch<br />

<strong>im</strong> Privatbereich erschwinglich sind, vereinen<br />

dabei <strong>im</strong>mer mehr Features aus<br />

dem Profibereich in sich, wozu etwa<br />

Nachtsicht per Infrarot oder Schwenk-,<br />

Neige- und Zoomfähigkeiten gehören.<br />

Eigentümer überwachen mit ihnen die<br />

Urlaubshäuser, Firmeninhaber behalten<br />

die Geschäftsräume und Katzenbesitzer<br />

ihre <strong>im</strong> Urlaub zurückgelassenen Lieblinge<br />

<strong>im</strong> Blick.<br />

Meist richtet sich das Objektiv einer oder<br />

mehrerer Kameras tagein, tagaus auf einen<br />

leeren Gang, eine Bürotür oder einen<br />

Parkplatz. Der Artikel beleuchtet, wie<br />

<strong>Linux</strong> und freie Software den Umgang<br />

mit dem Kamerapark erleichtern.<br />

Technik, die begeistert<br />

Doch zunächst zur Technik. Neben den<br />

meist sehr schlichten Webcams und den<br />

winzigen Spionagekameras stehen dem<br />

Käufer meist Indoor- und Outdoor-Überwachungskameras<br />

zur Auswahl. Letztere<br />

müssen wesentlich robuster gegen<br />

schlechte Witterung geschützt sein und<br />

kosten <strong>im</strong> Highend-Bereich schon mal ein<br />

paar Tausend Euro pro Stück.<br />

Doch auch an den preiswerteren Indoor-<br />

Kameras ist der technische Fortschritt<br />

nicht spurlos vorübergegangen. Sie kosten<br />

eine zwei- oder dreistellige Summe,<br />

integrieren sich meist drahtlos oder<br />

per Ethernet ins lokale Netzwerk und<br />

bringen zum Verwalten und Bedienen<br />

eine eigene Weboberfläche mit (Abbildung<br />

1), die allerhand Nützliches kann.<br />

Die mitgelieferten Installations-CDs dürfen<br />

<strong>Linux</strong>-Anwender getrost in der Box<br />

lassen, denn offizieller <strong>Linux</strong>-Support ist<br />

selten. Tools wie »fping« verraten dennoch,<br />

welche IP-Adresse der Router einer<br />

Webcam zuweist.<br />

Dank Infrarot erkennen viele aktuelle<br />

Kameras Objekte auch <strong>im</strong> Dunklen und<br />

leuchten den Raum teilweise bis zu 15<br />

Meter weit aus. Alarm schlagen sie bei<br />

Bewegungen (Motion Detection) oder<br />

Geräuschen (Sound Detection). In diesem<br />

Fall schicken sie Bilder und Videos<br />

in wählbarer Auflösung an einen FTP-,<br />

SSH- oder Samba-Server, mitunter auch<br />

direkt in die Cloud. Einige IP-Kameras<br />

lassen sich zudem per Dyn-DNS ins Internet<br />

stellen – was nicht <strong>im</strong>mer eine<br />

gute Idee ist (siehe Kasten „Security-<br />

Probleme“).<br />

Da die Konkurrenz nicht schläft, heben<br />

sich IP-Kameras zudem häufig durch ein<br />

bis zwei Alleinstellungsmerkmale ab: Sie<br />

lassen sich fernsteuern (auch als PTZ<br />

bezeichnet, was für „Pan, Tilt, Zoom“<br />

steht), erfüllen den internationalen Onvif-Standard<br />

des Open Network Video<br />

Interface Forum [2], legen Daten auf<br />

Micro-SD-Karten ab oder schicken Bilder<br />

mit Hilfe von Apps direkt auf Smartphones<br />

oder Tablets. Einige Kameras<br />

tanken Energie über das Netzwerkkabel<br />

(Power over Ethernet, PoE) und brauchen<br />

keine Steckdose.<br />

Egal welche Art Kamera der Anwender<br />

einsetzt, er sollte auch die gesetzlichen<br />

Regelungen kennen. Eine umfangreiche<br />

Liste mit Links und Texten zur Video-<br />

Security-Probleme<br />

Zwar lassen sich die meisten Webinterfaces<br />

durch Passwörter schützen, viele Benutzer<br />

machen sich aber nicht die Mühe, das Standardpasswort<br />

zu ändern. Ist die Oberfläche<br />

übers Internet erreichbar, stehen die Aufnahmen<br />

ungeschützt <strong>im</strong> Netz. Hinzu kommen<br />

Sicherheitslücken: Trendnet-Kameras<br />

erregten 2012 Aufsehen, weil Interessierte<br />

die Streams unter Umgehung des Passwortschutzes<br />

über eine spezielle URL erreichen<br />

konnten [1].<br />

Empfohlen wird also, die Kameras nur <strong>im</strong> lokalen<br />

Netzwerk zu betreiben und die Daten<br />

am besten SSL-verschlüsselt zu verschicken.


überwachung bietet das Unabhängige<br />

Landeszentrum für Datenschutz Schleswig-Holstein<br />

[3].<br />

Powered by Motion<br />

Wer nur sein Büro oder ein einziges Objekt<br />

überwachen möchte, dem genügt<br />

meist eine günstige Webcam ohne Webinterface:<br />

<strong>Linux</strong> kann sie mit Hilfe von<br />

Motion in eine Überwachungskamera<br />

verwandeln. Das Kommandozeilentool<br />

gehört zu den Veteranen <strong>im</strong> Motion-Detection-Bereich<br />

und erkennt Bewegungen<br />

<strong>im</strong> Sichtfeld (Abbildung 2) oder in dessen<br />

Bereichen.<br />

Eine Einschränkung der Software besteht<br />

darin, dass die Bildquelle <strong>im</strong> Jpeg- oder<br />

Motion-Jpeg-Format (Mjpeg) vorliegen<br />

muss – neumodischen Kram wie Mpeg<br />

4 oder Divx mag Motion nicht. Zum<br />

Glück bringen viele aktuelle IP-Kameras<br />

Mjpeg-Support mit. Schön an Motion ist<br />

die ausführliche Dokumentation, die es<br />

recht schnell erlaubt, die Funktion der<br />

verschiedenen auskommentierten Optionen<br />

in »/etc/motion/motion.conf« zu<br />

verstehen, um die Software über die zentrale<br />

Konfigurationsdatei an die eigenen<br />

Bedürfnisse anzupassen.<br />

Der Parameter »target_dir« legt ein lokales<br />

Zielverzeichnis für die entstandenen<br />

Bilder und Filme fest. Für die erste<br />

IP-Kamera muss in der Datei »motion.<br />

conf« eine Adresse neben »netcam_url«<br />

eingetragen sein, andernfalls will Motion<br />

standardmäßig auf »/dev/video0« zugreifen.<br />

Die Software kommt allerdings auch<br />

mit mehreren Kameras zurecht: In den<br />

»thread.conf«-Dateien <strong>im</strong> Verzeichnis<br />

»/etc/motion/« lassen sich jeweils Pfade<br />

zu weiteren Kamerastreams definieren<br />

und Orte für Aufnahmen festlegen.<br />

Da sich Motion selbst nicht um den weiteren<br />

Verbleib des Materials kümmert,<br />

muss der Nutzer tätig werden und die<br />

Ergebnisdateien per Cronjob und über<br />

Bash- oder Perl-Skripte abgreifen und<br />

zum Beispiel auf einen entfernten Server<br />

verschieben. Oder Motion packt sie in ein<br />

Dropbox- oder Ubuntu-One-Verzeichnis,<br />

um sie so auf andere Geräte zu übertragen,<br />

etwa auf Smartphones.<br />

Auch in Sachen Home-Automation sind<br />

mit Motion interessante Einsätze vorstellbar:<br />

So kann ein Skript die Textausgaben<br />

von Motion auswerten oder die Speicherorte<br />

überwachen und Ereignisse starten,<br />

sobald Motion Bewegung entdeckt. In<br />

Verbindung mit Fhem [4], einem Server<br />

für die Home-Automation, der eine ganze<br />

Reihe von He<strong>im</strong>-Automatisierungsprotokollen<br />

kennt (etwa KNX, Home Easy,<br />

X 10), lassen sich Motion-Events an <strong>Haus</strong>haltsgeräte<br />

koppeln: Betritt der Bewohner<br />

ein Z<strong>im</strong>mer, geht das Licht an oder Ähnliches.<br />

Ein Bastelfreund [5] lässt sich<br />

zum Beispiel Menschen, die an seiner<br />

<strong>Haus</strong>tür klingeln, zehn Sekunden lang in<br />

einem Fenster seiner XBMC-Installation<br />

auf seinem Flatscreen anzeigen.<br />

All my Circuits<br />

Komplexer wird es, wenn die Zahl der<br />

Kameras steigt und zugleich dauerhaft<br />

gefilmt wird, was auch als CCTV (Closed<br />

Circuit Television) firmiert. Der Admin<br />

muss abschätzen,<br />

welche Menge an<br />

Daten pro Tag anfällt<br />

und wie viele Tage das Archiv vorhalten<br />

soll, um den Bedarf an Festplattenkapazität<br />

richtig einzuschätzen. Zudem<br />

muss das Netzwerk den permanenten<br />

Datenstrom verkraften.<br />

Ein Cron-getriebenes Skript in Kombination<br />

mit Tools wie Duplicity oder<br />

Rsync könnte auf dem NAS automatisch<br />

ältere Aufnahmen aus dem Datenwust<br />

filtern und löschen. Be<strong>im</strong> permanenten<br />

Aufzeichnen ist zudem ein intelligentes<br />

Einordnen der Videos auf Datums- und<br />

Uhrzeitbasis unverzichtbar, um unter<br />

Tausenden Aufnahmen schnell die wichtigen<br />

Sekunden ausfindig zu machen. Wer<br />

die Aufnahmen nicht vor Ort speichern<br />

möchte, kann einen gut angebundenen<br />

Rootserver mieten und das Material per<br />

SFTP dorthin hochladen.<br />

Manche Unternehmen müssen die erstellten<br />

Videodateien mitunter lange aufbewahren<br />

und dürfen sie nicht verlieren. Sie<br />

können die Aufnahmen gut auf eigenen<br />

Servern mit Raid 10 lagern. Nutzen die<br />

Firmen fremde Rechenzentren, sollten sie<br />

eine Verschlüsselung in Betracht ziehen.<br />

Einige Profisysteme entschlüsseln Daten<br />

nur, wenn zwei Personen zugleich ihre<br />

Passwörter angeben, um den Missbrauch<br />

zu erschweren.<br />

Wer für die Langzeitlagerung von Videomaterial<br />

eine freie Archivierungslösung<br />

sucht, kann zudem einen Blick auf Open<br />

Archive [6] oder das Avalon Media System<br />

[7] werfen, die unter der AGPLv3<br />

respektive Apache-Lizenz stehen.<br />

Additionsspiele<br />

Wie erwähnt addieren sich be<strong>im</strong> Einsatz<br />

mehrerer Kameras die Bandbreiten<br />

ebenso wie der nötige Speicherplatz.<br />

Raumüberwachung 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

37<br />

Abbildung 1: IP-Kameras wie die von D-Link bringen häufig eigene Weboberflächen<br />

mit und können bei Bewegungen oder Geräuschen Aktionen starten.<br />

Abbildung 2: Bewegung (hier mit einem Filter hervorgehoben) lässt sich unter<br />

<strong>Linux</strong> mit Motion erkennen, dafür ist keine spezielle Kamera nötig.


Titelthema<br />

www.linux-magazin.de Raumüberwachung 01/2014<br />

38<br />

Quelle: http://www.lavrsen.dk/foswiki<br />

Abbildung 3: Die Weboberfläche von Motion kann noch etwas Politur gebrauchen.<br />

NAS-Anbieter wie Qnap und Synology<br />

bieten hierfür Network Video Recorder<br />

(NVR, [8]) oder Surveillance Stations<br />

[9] an. Synology stellt zudem einen<br />

Ressourcenrechner [10] bereit, um den<br />

Bandbreiten- und Speicherbedarf zu berechnen:<br />

Demnach brauchen fünf Kameras,<br />

die 14 Tage lang mit 30 FPS (Bilder<br />

pro Sekunde) und einer 720-p-Auflösung<br />

Videos <strong>im</strong> alten Mjpeg-Format aufnehmen,<br />

157,5 MBit/​s Bandbreite und rund<br />

23,8 TByte Speicherplatz.<br />

Zum Glück gibt es zahlreiche Tuning-<br />

Optionen: Menschen bewegen sich vergleichsweise<br />

langsam, mehr als 10 FPS<br />

müssen nicht sein. Die Auflösungen der<br />

Kameras lassen sich verkleinern, die<br />

Bildqualität reduzieren – doch widerspricht<br />

das unter Umständen dem Beweggrund,<br />

überhaupt eine Kamera aufzustellen.<br />

Fährt der Admin das obige Beispiel<br />

auf Sparflamme (<strong>im</strong> H.264-Format mit<br />

640 mal 480 Auflösung und 10 FPS), landet<br />

er bei erträglichen 5,15 MBit/​s und<br />

einem Speicherbedarf von 780 GByte.<br />

Be<strong>im</strong> Einsatz reiner Bewegungserkennung<br />

lassen sich diese Werte natürlich<br />

enorm reduzieren, zudem wird häufig<br />

nicht rund um die Uhr aufgezeichnet.<br />

E Zoneminder<br />

Motion zeichnet zwar Jpeg-Streams von<br />

mehreren Kameras auf, hat aber kein vernünftiges<br />

GUI (Abbildung 3). Fürs Mo-<br />

nitoring mehrerer<br />

Kameras eignet es<br />

sich daher nur bedingt.<br />

Hier springt<br />

Zoneminder in die<br />

Bresche, ein Open-<br />

Source-Programm unter der GPL. Es verwaltet<br />

mehrere Kameras, darunter jene,<br />

die Video-4-<strong>Linux</strong> unterstützt, lässt sich<br />

über eine Web oberfläche bedienen und<br />

bindet Web- und IP-Kameras über HTTPsowie<br />

RTSP-Streams ein.<br />

Es bringt für das Live-Monitoring eine<br />

Montage-Ansicht mit, die einen Blick auf<br />

alle Kamerabilder erlaubt, und lässt den<br />

Admin für jede Kamera separate Überwachungsmodi<br />

definieren. Einige Kameras<br />

beobachten nur, andere überwachen<br />

per Motion Detection kritische Zonen.<br />

Im letzten Fall kann Zoneminder Bewegungen<br />

auch optisch hervorheben (Abbildung<br />

4).<br />

Über Filter lassen sich Events definieren,<br />

bei deren Eintreffen die Software Fotos<br />

Zoneminder in Ubuntu<br />

Abbildung 4: Im Eventlog hebt Zoneminder die vom Bewegungsmelder aufgezeichneten<br />

Bewegungen farbig hervor.<br />

und Videos per E-Mail oder – über ein E-<br />

Mail-Gateway – per SMS verschickt. Der<br />

Filter »PureWhenFull« löscht alte Aufnahmen,<br />

damit die Festplatte nicht vollläuft,<br />

ist jedoch standardmäßig deaktiviert. Für<br />

den Umgang mit Zoneminder lassen sich<br />

mehrere Benutzer anlegen, die Kameras<br />

auch über PTZ fernsteuern.<br />

Die Home-Automatisierung unterstützt<br />

Zoneminder mit dem X-10-Protokoll. Das<br />

Tool Zmxap [11] verbindet Zoneminder<br />

außerdem über das Home-Automation-<br />

Protokoll Xap mit anderen Programmen<br />

zur He<strong>im</strong>-Automatisierung. Daneben gibt<br />

es mit Mythzoneminder [12] ein Plugin<br />

für Mythtv, das die Zoneminder-Events<br />

auf den Fernsehschirm bringt.<br />

Zurzeit ignoriert Zoneminder den Ton<br />

– Audio Detection fällt damit flach. Aufnahmen<br />

lassen sich nicht an mehreren<br />

Speicherorten ablegen, zudem fehlen<br />

gebündelte Informationen zur Software:<br />

Die in Foren und Wikis verstreuten Infohappen<br />

machen es den Anwendern<br />

Die etwas ältere Version 1.25.0, die Ubuntu 12.10 mitbringt, war nicht ohne Weiteres zur Zusammenarbeit<br />

mit den zwei Testkameras, einer DCS 933L von D-Link sowie einer IPC-770HD von 7-Links, zu<br />

bewegen. Nach der Installation des »zoneminder«-Pakets und vor dem Start musste in der Datei<br />

»/etc/zm/apache.conf« der Eintrag<br />

ScriptAlias /cgi‐bin /usr/share/zoneminder/cgi‐bin<br />

ergänzt werden, um die Datei anschließend neu zu verlinken und Apache neu zu starten:<br />

sudo ln ‐s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf<br />

sudo /etc/init.d/apache2 force‐reload<br />

Dann soll der Apache-User noch Teil der Videogruppe werden:<br />

sudo adduser www‐data video<br />

Abschließend mussten die Tester in der Datei »/usr/share/zoneminder/skins/classic/views/monitorprobe.php«<br />

aus »$command = "arp ‐a";« ein »$command = "/usr/sbin/arp ‐a";« machen. Nach<br />

diesen Bauarbeiten ließ sich Zoneminder mit den Testkameras benutzen.


auch nicht gerade leicht, Zoneminders<br />

Fähigkeiten zu überblicken.<br />

Die Software steht zudem in dem Ruf,<br />

etwas kompliziert bei der Einrichtung zu<br />

sein, was sich <strong>im</strong> Test bestätigte (siehe<br />

Kasten „Zoneminder in Ubuntu“).<br />

Auch einige Kameras spielen nicht mit<br />

Zoneminder – hier hilft ein vorheriger<br />

Blick in die Hardware Compatibility List<br />

[13]. Hat der Anwender aber die Installationshürden<br />

übersprungen, kann er die<br />

Weboberfläche über »http://localhost/<br />

zm« aufrufen (Abbildung 5).<br />

Doch auch das Einrichten der Kameras<br />

verlief nicht ohne Komplikationen. Es<br />

half die Fehlermeldungen der Software<br />

über »tail ‐f /var/log/syslog« <strong>im</strong> Auge zu<br />

behalten. Als Herausforderung erwiesen<br />

sich die Pfadangaben zum Einbinden der<br />

Kameras: Da Zoneminder offenbar Pfade<br />

zu CGI-Dateien erwartet, besteht die<br />

Kunst darin, über die passwortgeschützten<br />

Weboberflächen der Kameras an die<br />

URIs zu den gezeigten Bildern zu gelangen<br />

(Abbildung 6). Als Faustregel gilt:<br />

Erscheint das Bild einer Kamera ohne die<br />

Elemente des Web-GUI <strong>im</strong> Browser, passt<br />

der Link auch für Zoneminder.<br />

E Xeoma<br />

Wem Zoneminder zu fummelig ist, der<br />

findet womöglich <strong>im</strong> kommerziellen<br />

Xeoma [14], von dem es Pakete für <strong>Linux</strong><br />

gibt, eine Alternative. Die Software besteht<br />

aus Modulen, die funktionale Blöcke<br />

bilden und die der Admin wie in<br />

einem Baukasten zu einem Workflow<br />

gruppiert. Als Quelle kann er ein Kameramodul<br />

definieren und dieses mit einem<br />

Ereignismodul verknüpfen, etwa einer<br />

Bewegungs- oder Soundmeldung. Tritt<br />

das Ereignis ein, aktiviert Xeoma drei<br />

weitere Module in der Kette, die einen<br />

Alarm auslösen, eine E-Mail verschicken<br />

und die Aufnahme speichern.<br />

Xeoma unterstützt nach eigener Aussage<br />

alle Webcams und CCTV-Kameras und<br />

kommt mit Onvif, PTZ sowie den Formaten<br />

H.264, Jpeg, Mjpeg sowie Mpeg<br />

4 zurecht. Die Anwendung kennt User<br />

Permissions, erlaubt das Einrichten von<br />

Multi-Server-/​Multi-Client-Umgebungen,<br />

passwortgeschützten Konfigurationen<br />

und einer Ansicht aller Kameras (Abbildung<br />

7). Die Max<strong>im</strong>algröße von Archiven<br />

lässt sich ebenso wie die Kompressionsrate<br />

der Videodaten einstellen.<br />

Der Admin kann die Bewegungserkennung<br />

aktivieren, Schwellenwerte dafür<br />

setzen und Pre- sowie Post-Record-Zeiträume<br />

definieren. Die Hauptvorteile von<br />

Xeoma bestehen aber <strong>im</strong> Support vieler<br />

Kameras, der komfortablen Einrichtung<br />

und der s<strong>im</strong>plen Handhabung.<br />

Von der Software gibt es 32- und 64-Bit-<br />

Binärpakete für Ubuntu 9.x bis 13.x,<br />

Debian 6 Server, Debian 7, Open Suse<br />

12.1 und Mint 12, die auf der Webseite<br />

zum Download bereitstehen. Es gibt einen<br />

Free-Modus, der bis zu drei Module,<br />

aber nur eine Kamera freischaltet. Der<br />

Trial-Modus erlaubt den Einsatz zahlloser<br />

Kameras, dafür lassen sich die Settings<br />

nicht speichern und es gilt eine zeitliche<br />

Nutzungsbegrenzung.<br />

Wer die Software erwerben möchte, zahlt<br />

für vier Kameras einmalig 60 US-Dollar,<br />

für acht Geräte 120 US-Dollar und für<br />

1024 Kameras 2400 US-Dollar. Zusätzlich<br />

Raumüberwachung 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

39<br />

Abbildung 5: Die Weboberfläche von Zoneminder kann verschiedene Kameras verwalten und deren Bilder<br />

anzeigen. Eine Montage-Option reiht die Bilder der Kameras auf.


Titelthema<br />

www.linux-magazin.de Raumüberwachung 01/2014<br />

40<br />

Abbildung 6: Das Einbinden der Kameras über die<br />

URIs erwies sich <strong>im</strong> Test als hakelig.<br />

lässt sich über eine Pro-Version Cloud-<br />

Unterstützung erwerben.<br />

E Bluecherry<br />

Bluecherry [15] bietet neben einer<br />

Software zur Kameraverwaltung auch<br />

Hardware rund um CCTV an: Eigene Kameras,<br />

Video-Capture-Karten, Network<br />

Video Recorder und einiges mehr. Wer<br />

die Software mit Video-Capture-Karten<br />

verwenden möchte, muss zu den hauseigenen<br />

Modellen greifen, weil die Firma<br />

nur diese unterstützt. Das kann wichtig<br />

sein, wenn der Anwender die Software<br />

für Live-Streaming einsetzen möchte.<br />

Be<strong>im</strong> Funktionsumfang dürfte sich Bluecherry<br />

zwischen Zoneminder (mit dem<br />

es sich auf der Webseite vergleicht) und<br />

Xeoma bewegen. Das GUI ist übersichtlich<br />

gestaltet und einfacher gestrickt als<br />

das von Xeoma, ein Webinterface erlaubt<br />

den Zugriff über Mobilgeräte.<br />

Audio und Video verstaut Bluecherry in<br />

Matroska-Containern, wobei der Ablagepfad<br />

veränderbar ist und die Software<br />

multiple Speicherorte unterstützt. Alarmmeldungen<br />

verschickt Bluecherry per E-<br />

Mail, ihre Daten überträgt die Software<br />

sicher per SSL, und seit Version 2 unterstützt<br />

sie mehr als 400 IP-Kameras.<br />

Es gibt 32- und 64-Bit-Pakete für Ubuntu<br />

und Fedora 17 bis 19, die Software läuft<br />

30 Tage lang als Demo und zusätzlich<br />

auf einem Demoserver. Wer Bluecherry<br />

kaufen möchte, legt für vier Geräte 100,<br />

für acht 150 und für eine Version mit 32<br />

Kameras 650 US-Dollar auf den Tisch –<br />

Unterstützung für weitere Kameras gibt<br />

es auf Anfrage.<br />

Fazit<br />

Dank integrierter Webserver sind für den<br />

Betrieb einzelner IP-Kameras meist keine<br />

Open-Source-Tools nötig. Die sind mit<br />

Motion und Zoneminder aber vorhanden<br />

und skalieren von einer einzelnen<br />

Kamera bis hin zu einem Kamerawald.<br />

Sie reagieren auf Bewegungsmeldungen<br />

Abbildung 7: Die kommerzielle Surveillance-Software Xeoma lässt den User mehrere Kameras <strong>im</strong> Blick behalten,<br />

auf Wunsch auch Webcams aus dem Internet.<br />

und alarmieren die Anwender per E-Mail<br />

oder SMS. Wahlweise schicken sie auch<br />

Bilder und Videos in die Cloud.<br />

Etwas mehr Komfort bieten kommerzielle<br />

Tools wie Bluecherry und Xeoma,<br />

die unter <strong>Linux</strong> laufen. Daneben gibt es<br />

noch einige Surveillance-Apps auf den<br />

Geräten von NAS-Anbietern. Den Link<br />

zur <strong>Haus</strong>technik beherrscht indes Zoneminder<br />

am besten: Die Software unterstützt<br />

X 10, bringt ein Plugin für Mythtv<br />

mit und kommuniziert dank Zmxap über<br />

das Xap-Protokoll.<br />

Wer Motion, Bluecherry und Xeoma für<br />

Home-Automation einsetzen will, muss<br />

Skripte und Tools wie den Fhem-Server<br />

nutzen. Für Xeoma, Zoneminder und<br />

Bluecherry lassen sich nicht zuletzt Obergrenzen<br />

für die Archivgrößen festlegen:<br />

Sie löschen alte Aufnahmen, wenn die<br />

L<strong>im</strong>its erreicht sind.<br />

n<br />

Infos<br />

[1] Securityprobleme bei Trendnet-Kameras:<br />

[http:// console‐cowboys. blogspot. de/​<br />

2012/ 01/ trendnet‐cameras‐i‐always<br />

‐feel‐like. html]<br />

[2] Onvif-Standard:<br />

[https:// en. wikipedia. org/ wiki/ Open_<br />

Network_Video_Interface_Forum]<br />

[3] Virtuelles Datenschutzbüro: [https:// www.​<br />

datenschutzzentrum. de/ video/ index. htm]<br />

[4] Home-Automation-Server Fhem:<br />

[http:// fhem. de/ fhem. html]<br />

[5] XBMC-Integration des Türbildes:<br />

[http:// homeawesomation. wordpress.​<br />

com/ tag/ ip‐camera/]<br />

[6] Open Archive: [http:// openarchive. net]<br />

[7] Avalon Media System:<br />

[http:// www. avalonmediasystem. org]<br />

[8] NVR von Synology: [http:// www. synology.​<br />

com/ us/ solutions/ surveillance/]<br />

[9] Surveillance Station von Qnap: [http://​<br />

www. qnap. com/ en/ index. php? sn=2728# 3]<br />

[10] Ressourcen-Rechner: [http:// www.​<br />

synology. com/ support/ nvr. php? lang=us]<br />

[11] Zmxap: [http:// misterhouse. wikispaces.​<br />

com/ xAP+‐+ZoneMinder+Integration]<br />

[12] Mythzoneminder: [http:// www. mythtv.​<br />

org/ wiki/ MythZoneMinder]<br />

[13] Zoneminder-kompatible Hardware:<br />

[http:// www. zoneminder. com/ wiki/ index.​<br />

php/ Hardware_Compatibility_List]<br />

[14] Xeoma: [http:// felenasoft. com/ xeoma/]<br />

[15] Bluecherry:<br />

[http:// www. bluecherrydvr. com]


Titelthema<br />

www.linux-magazin.de Smart Metering 01/2014<br />

42<br />

Status quo bei intelligenten Energiezählern, P<strong>im</strong>p my Staubsaugerroboter<br />

Der letzte Ableser?<br />

Künftig passiert die häusliche Energiemessung elektronisch und aus der Ferne. Das so genannte Smart Metering<br />

freut selbstverständlich die Versorger, doch auch der Endkunde kann die Daten zur Home-Automation<br />

benutzen – zumindest mancher Endkunde. Jan Kleinert<br />

© Iakov Fil<strong>im</strong>onov, 123RF.com<br />

Die bisher in diesem Schwerpunkt aufgezeigten<br />

Anlagen und Möglichkeiten<br />

dienen in erster Linie dem Komfort in<br />

<strong>Haus</strong> und Büro. Dass sich die Bewohner<br />

intelligenter Gebäude wohl fühlen<br />

und neue Möglichkeiten an die Hand<br />

bekommen, soll man auch nicht geringschätzen,<br />

zumal Smartphone-aktivierten<br />

Türöffnern, Mult<strong>im</strong>ediastreams überall,<br />

ereignisgesteuerten Rollläden oder umfunktionierten<br />

Staubsaugern (siehe Kasten<br />

„Saugroboter mit Community“) ein<br />

kultiger Geek-Faktor inne wohnt. Mit Fug<br />

und Recht ein gutes Gewissen darf der<br />

mit Moral ausgestattete <strong>Haus</strong>elektronik-<br />

Einstein erst entwickeln, wenn es ihm<br />

gelingt, Technik und Umwelt zu versöhnen.<br />

Der Kampf gegen das Schmelzen der<br />

Gletscher kann ganz banal be<strong>im</strong> hauseigenen<br />

Energiezähler beginnen.<br />

Seit ungefähr 2010 lassen Netzbetreiber<br />

auch bei Endkunden Stromzähler installieren,<br />

die einen Prozessor und ein<br />

Display besitzen, dem<br />

jeweiligen Anschlussnutzer<br />

den momentanen<br />

Energieverbrauch<br />

und Nutzungszeiten<br />

anzeigen und in ein<br />

Kommunikationsnetz<br />

eingebunden sind. Sogar<br />

das „Gesetz über<br />

die Elektrizitäts- und<br />

Gasversorgung“ kennt<br />

eine der entsprechende<br />

Definition (§ 21d und<br />

21i EnWG). In aller Regel<br />

übertragen intelligente<br />

Zähler die erhobenen<br />

Daten zyklisch<br />

an das Energieversorgungsunternehmen.<br />

Solche Verbindungen<br />

und damit verbundene Dienste nennen<br />

Experten „Smart Metering“.<br />

Die Vorteile sind vielfältig<br />

Der Netzbetreiber oder Versorger muss<br />

nun zwar die höheren Kosten für Anschaffen<br />

und Datenübertragung schultern,<br />

spart aber Personalkosten für die<br />

Ableser. Außerdem<br />

fällt es ihm leicht, die<br />

Ablesezeiträume auf<br />

zum Beispiel monatliche<br />

Zyklen zu verkürzen,<br />

und kann dem<br />

Kunden so präzisere<br />

Rechnungen stellen.<br />

Wenn es der Zähler<br />

zulässt, kann der Versorger<br />

sogar spezielle<br />

Tarife anbieten, die das<br />

seit dem Siegeszug der<br />

erneuerbaren Energien<br />

stark schwankende Stromangebot widerspiegeln.<br />

An vielen Sonntagen beispielsweise<br />

herrscht in Deutschland tagsüber<br />

ein starkes Überangebot an Strom. Der<br />

Kunde kann per Tarif motiviert werden,<br />

seine Verbräuche möglichst in solchen<br />

Perioden zu verlegen, also genau dann<br />

die Wäsche wäscht, die Warmwasserbereitung<br />

hochfährt oder den Saugroboter<br />

auf die Ladestation schickt – eine der seltenen<br />

Gelegenheiten, wo Umweltschutz<br />

und Geldbeutel eine Allianz bilden.<br />

Dem Thema des <strong>Linux</strong>-<strong>Magazin</strong>-Schwerpunkts<br />

folgend könnte und müsste hier<br />

die Home-Automation ins Spiel kommen.<br />

Denn wer zu <strong>Haus</strong>e oder <strong>im</strong> Büro seine<br />

Geräte sowieso schon elektronisch anund<br />

abschaltet, kann in die Entscheidungsfindung<br />

über das Ob und Wann<br />

auch die aktuell <strong>im</strong> Stromnetz verfügbaren<br />

Energie mit einbeziehen – was übrigens<br />

schon mindestens die halbe Miete<br />

für künftige Smart Grids wäre.<br />

Was sich bis hierher noch nach sehr s<strong>im</strong>plen<br />

Steueralgorithmen anhört, bekommt<br />

spätestens für all jene echte Komplexität,<br />

die zusätzlich eine Photovoltaikanlage<br />

auf dem Dach haben. Sonnenstände,<br />

Wetterbedingungen, eigene Verbräuche,<br />

Abbildung 1: Schick und eigentlich einfach zu konfigurieren, aber mit <strong>Linux</strong>feindlicher<br />

Portaltechnik: RWE Smart Home.


Einspeisebedingungen und so weiter wollen<br />

jetzt in Einklang gebracht werden. So<br />

verwundert es nicht, dass Smart-Home-<br />

Anlagen, die auf Solaranlagenbetrieb abgest<strong>im</strong>mt<br />

sind, sich wie’s scheint besonders<br />

gut verkaufen.<br />

Der Missing Link<br />

Dass an Home-Automation Interessierte<br />

die sowieso vorhandenen Funktionen ihres<br />

Smart-Metering-Zähler nun einfach<br />

mitnutzen dürften, um zum Nutze von<br />

Umwelt und Sparstrumpf ihr eigenes<br />

(<strong>Linux</strong>-)Süppchen zu kochen, entspricht<br />

<strong>im</strong> Moment leider nicht der Praxis. Die<br />

für diesen Artikel bei großen deutschen<br />

Versorgern gestartete Umfrage ergab,<br />

dass von einer großen Installationsbasis<br />

derzeit keine Rede sein kann (Tabelle<br />

1). Das liegt weniger an den Konzernen<br />

selbst als an noch unklaren gesetzlichen<br />

Durchführungsbest<strong>im</strong>mungen.<br />

Außerdem weist der deutsche Strommarkt<br />

mit seinen großen Versorgern<br />

kartellrechtliche Besonderheiten auf, die<br />

eine Trennung von Herstellung, Netz und<br />

Verteilung zum Endkunden fördern. Das<br />

Ganze ist für den Laien schwer verständlich<br />

und hat bei vorliegenden Thema zur<br />

Folge, dass zumeist die Betreiberfirma<br />

eines Smart Meters eine andere ist als der<br />

Energiehersteller und der wiederum eine<br />

andere als die zuständige Anbieterfirma<br />

für Home-Automation-Produkte.<br />

Beispiel RWE AG<br />

Der zweitgrößte Versorger Deutschlands<br />

(RWE Power, …) betreibt zugleich Verteilernetze<br />

(Westnetz, …). Die dazu gehörigen<br />

Firmen sind gemäß § 21d EnWG<br />

reguliert, evaluieren die Technik (mit einem<br />

großen Pilotversuch in Mühlhe<strong>im</strong><br />

an der Ruhr) sowie die Wirtschaftlichkeit<br />

und bieten intelligente Zählersysteme bis<br />

auf Weiteres nur Großkunden an. Zugleich<br />

gehört aber mit der RWE Effizienz<br />

eine Tochter zum schwer überschaubaren<br />

Konzernverbund, die seit zweieinhalb<br />

Jahren eine Home-Automation-Produktlinie<br />

an Endkunden vertreibt.<br />

RWE Smart Home (Abbildung 1) gibt es<br />

in mehreren Ausstattungen [1], auch mit<br />

Photovoltaik-Anbindung (Power Control<br />

Solar Starterpaket, zurzeit 660 Euro). Die<br />

Trennung in Konzernteile hat technisch<br />

die absurde Folge, dass RWE Smart Home<br />

die Verbrauchsdaten selbst RWE-eigner<br />

Strom- und Solarenergiezähler nicht etwa<br />

direkt abgreift, sondern einen Sensorbaustein<br />

aufsetzt, der den mittlerweile bei<br />

Zählern üblichen Infrarotsender anpeilt.<br />

Smart Metering 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

43<br />

Tabelle 1: Smart Meter bei großen Stromanbietern<br />

Stromzähler insgesamt/​intelligente<br />

Smart-Meter-Geräte<br />

Benutze Funktionen<br />

E.ON RWE Vattenfall<br />

Mehr als 2 Millionen in Europa/​alle Zähler der E.ON Etwa 4 Millionen (Westnetz)/​nicht <strong>im</strong> Vertrieb<br />

Rund 3,3 Millionen/​circa<br />

Metering GmbH<br />

[2]<br />

120 000<br />

Iskra MT 372, Iskra M 375 (SLP), Elster 1440 (SLP, - EMH und Iskra<br />

RLM), EMH LZQJ (ohne Wandler), L+G E350<br />

Messung von Leistung, Wirkenergie, Blindarbeit, Fernauslesung bei RLM-Zähler (registrierende<br />

Für Privatpersonen nur<br />

Max<strong>im</strong>um, sekundärer Lastgang; sekundengenau für<br />

Leistungsmessung) für Industriekun-<br />

bei Pilotanlagen, bei Ge-<br />

Kunden, Mehrtarif-Messung (8 Tarifregister), Fehlererfassung,<br />

den mit mehr als 100 000 kWh/​Jahr. schäftskunden rund 3,7<br />

Auslesen und Fernparametrierung per<br />

Mio. Fernauslesungen/​<br />

GPRS, teilw. Power-Quality- und Einspeisemessung<br />

Jahr<br />

Protokolle Standard-Übertragungsprotokolle - Firmenspezifisch, künftig<br />

standardisiert<br />

Für Kunden bereitgestellte<br />

Funktionen<br />

Personalisiertes Webportal oder CSV-Datei: Verbrauch<br />

und Einspeisung viertelstundengenau, historische<br />

Daten, Vergleiche anhand eigener Indikatoren,<br />

Vergleiche über mehrere Smart Meter hinweg<br />

- Per Internet (Browser)<br />

Weitere Informationen/​<br />

Demos<br />

E.ON Metering GmbH [3], [info@eon‐metering. com]/<br />

Demoportal wird gerade umgebaut<br />

RWE Metering GmbH als Kompetenzcenter<br />

auf dem Feld Messwesen [4]<br />

Aus Richtlinen der Fachverbände<br />

und bei den<br />

Unternehmen


Titelthema<br />

www.linux-magazin.de Smart Metering 01/2014<br />

44<br />

© Flickr.com/​samthor CC-BY-SA<br />

Abbildung 2: Ein Irobot Create, mit dem Controller-Board Arduino Diec<strong>im</strong>ila,<br />

einem Metallbaukasten und Filzstiften zum Plotter aufgerüstet.<br />

Für <strong>Linux</strong>er sind die schicken Sets, die<br />

Schaltvorgänge anhand vielfältiger logische<br />

Implikationen und Trigger ohne<br />

Programmierkenntnisse zu definieren<br />

möglich macht und sogar neuere Miele-<br />

Geräte (demnächst auch Buderus) direkt<br />

ansteuert, gleichwohl keine Empfehlung,<br />

weil be<strong>im</strong> Einrichten der angeschlossenen<br />

Geräte auf der Weboberfläche per<br />

Drag&Drop Silverlight <strong>im</strong> Hintergrund<br />

werkelt. Mit <strong>Linux</strong>’ Moonlight sei das<br />

Gleiche laut einer Konzernsprecherin<br />

zurzeit nicht machbar.<br />

Status quo<br />

Be<strong>im</strong> in Tabelle 1 kompr<strong>im</strong>iert dargestellten<br />

Umfrageergebnis macht E.ON<br />

(Metering GmbH) die beste Figur in<br />

Sachen Transparenz und Funktionsviel-<br />

falt. Besonders gefällt,<br />

dass sich Kunden ihre<br />

Werte frei konfigurierbar<br />

per Webinterface<br />

oder als Datei zusammenstellen<br />

dürfen<br />

– hier haben Anwender<br />

be<strong>im</strong> anbinden<br />

eigener (<strong>Linux</strong>-)Systeme<br />

vergleichsweise<br />

einfaches Spiel. Der<br />

ebenfalls angefragte<br />

En-BW-Konzern vermochte<br />

binnen zweieinhalb<br />

Wochen keine der angefragten<br />

Informationen liefern. Alle vier Konzerne<br />

decken rund 80 Prozent des deutschen<br />

Strommarktes ab.<br />

Bei E.ON und Vattenfall scheinen sich<br />

Geräte von Iskra [5] und EMH [6] einiger<br />

Popularität zu erfreuen. <strong>Linux</strong>er, die<br />

von ihrem Versorger ein solches Gerät an<br />

die Kellerwand geschraubt bekommen,<br />

können Recherchen in der Bastler-Community<br />

anstellen und auf technische Dokumente<br />

des Herstellers zugreifen.<br />

Alle anderen, und das ist die Mehrheit,<br />

sei das Volkszaehler.org [7] ans Herz<br />

gelegt. Wie RWE Smart Home greift das<br />

Projekt die Daten beliebiger Zähler per<br />

Infrarotempfänger ab – mit dem Unterschied,<br />

dass Microcontroller-Einheit und<br />

Software GPL-lizensiert sind. Tux als Ableser,<br />

das hat Power.<br />

n<br />

Infos<br />

[1] RWE Smart Home:<br />

[http:// www. rwe‐smarthome. de]<br />

[2] Kosten-Nutzen-Analyse für einen flächendeckenden<br />

Einsatz intelligenter Zähler:<br />

[http:// www. bmwi. de/ DE/ Mediathek/​<br />

publikationen,did=586064. html]<br />

[3] E.ON Metering GmbH:<br />

[http:// www. eon‐metering. com]<br />

[4] RWE Metering GmbH:<br />

[http:// www. rwe. com/ web/ cms/ de/ 1689624/​<br />

rwe‐metering‐gmbh/ ueber‐rwe‐metering/]<br />

[5] Iskra-Zähler: [http:// www. iskraemeco. si/​<br />

emecoweb/ ger/ products/ products. html]<br />

[6] EMH-Zähler: [http:// www. emh‐meter. de/​<br />

de/ produkte1/ haushaltszaehler/]<br />

[7] Volkszaehler-Projekt:<br />

[http:// volkszaehler. org]<br />

[8] „10 Years of Roomba Hacks“: [http:// www.<br />

tested. com/ tech/ robots/ 453965‐magicmarker‐art‐kinect‐10‐years‐roomba‐hacks]<br />

[9] Irobot Corp.: [http:// www. irobot. com]<br />

[10] Tod Kurt, „Hacking Roomba“:<br />

[http:// hackingroomba. com]<br />

[11] „Roomba controlled by Kinect“:<br />

[http:// www. youtube. com/ watch?​<br />

v=Dxzoomerowo]<br />

[12] „IBM Roomba-Based Robot Measures Data<br />

Centre Heat“:<br />

[http:// www. techweekeurope. co. uk/ news/<br />

ibm‐roomba‐data‐centre‐heat‐emc‐117925]<br />

[13] Neato Robotics:<br />

[http:// www. neatorobotics. com]<br />

Saugroboter mit Community<br />

Seit den 2000ern gibt es akkubetriebene<br />

Staubsauger zu kaufen, die selbstständig auf<br />

kleinen Rädern über flache Oberflächen fahren<br />

und Böden mit rotierenden Bürsten reinigen.<br />

Damit sie nicht die Treppe hinunter stürzen<br />

oder sich in eine Ecke navigieren, verwenden<br />

sie Ultraschall-, Licht- und Infrarotsensoren.<br />

Ein Mikrocontroller kennt die Heuristiken, um<br />

ganze Räume und Wohnungen abzufahren.<br />

Findige Hacker missbrauchen die Saugroboter<br />

obendrein für allerlei amüsante Zwecke: Die<br />

flachen, runden Putzhilfen zeichnen mit bunten<br />

Filzstiften, piepsen einfache Musikstücke,<br />

lassen sich über das Internet fernsteuern oder<br />

spielen <strong>im</strong> Team das klassische Videospiel Pac-<br />

Man nach. Eine gute Zusammenfassung der<br />

Sauger-Hacks bietet das Online-<strong>Magazin</strong> Tested.com<br />

[8].<br />

Daneben bieten die Maschinen dem ambitionierten<br />

Bastler Schnittstellen. Die Reihe<br />

Roomba von Irobot [9], erstmals 2002 in den<br />

USA erhältlich, ließ sich durch das Dongle OSMO<br />

mit einer seriellen Schnittstelle zum Steuern<br />

des Roboters versehen. Ab 2005 rüstete der<br />

Hersteller die Geräte standardmäßig mit der<br />

Schnittstelle Roomba Serial Control Interface<br />

(Roomba SCI) aus, einem 7-Pin-UART-Port,<br />

und veröffentlichte passende Dokumentation.<br />

Später erhielt sie den Namen Roomba Open<br />

Interface (ROI). Damit wurde aus dem, was<br />

historisch als Wartungsport diente, ein Mittel,<br />

um alle Sensoren des Roboters auszulesen und<br />

seine Motoren zu steuern.<br />

Ausgesaugt<br />

Das Jahr 2007 markiert in zweierlei Hinsicht einen<br />

Höhepunkt des Roomba-Hacking: Zum einen<br />

erschien mit „Hacking Roomba“ von Tod Kurt<br />

[10] das erste Buch zum Thema, andererseits<br />

das Modell Irobot Create. Das Gerät richtete<br />

sich explizit an Roboter-Bastler, verzichtete<br />

ganz auf Bürstenrolle und Staubbehälter und<br />

bot den Amateuren den frei gewordenen Platz<br />

für ihre Nutzlasten an (Abbildung 2).<br />

Weitere Hardware inspirierte die Sauger-Hacker:<br />

Im Januar 2011 veröffentlichte der Japaner<br />

Takashi Ogura ein Video, in dem er einen<br />

Roomba mit dem Bewegungssensor Kinect<br />

steuert, den Microsofts wenige Monate zuvor<br />

auf den Markt gebracht hatte [11]. Aus jüngster<br />

Zeit stammt ein Hack in Sachen Green IT. Im<br />

Auftrag von IBM-Forschern fahren einige Irobot-<br />

Create-Maschinen autonom durch Rechenzentren<br />

und messen mit einem Aufbau die örtlichen<br />

Temperaturen [12]. Mit einem RFID-Lesegerät<br />

erfassen sie dabei die an den Serverracks angebrachten<br />

Funketiketten.<br />

Zu den bei Hackern beliebten Geräten gehört neben<br />

Irobots Roomba und Create auch der Wischrobotern<br />

Scooba des Herstellers. Der Create war<br />

leider nie in Europa erhältlich, für ein Hackerfreundliches<br />

Roomba-Modell muss man derzeit<br />

mindestens 400 Euro als Neupreis ausgeben.<br />

Hacks gibt es daneben für die XV-Reihe von<br />

Neato Robotics [13], die ähnlich viele Scheine<br />

aus der Brieftasche saugt. (Mathias Huber)


Titelthema<br />

www.linux-magazin.de NAS 01/2014<br />

46<br />

Netzwerkspeicher in der Home-Automation<br />

Datensilos für dahe<strong>im</strong><br />

Dank ihrer Erweiterbarkeit bieten kommerzielle Netzwerkspeicher diverse Dienste für die eigenen vier Wände<br />

an. Stellen günstige Bastellösungen auf Raspberry-Pi-Basis eine Alternative dar? Martin Loschwitz<br />

von Synology [1] und Qnap [2] heraus<br />

und stellt ihnen ein Selbstbau-NAS auf<br />

Raspberry-Pi-Basis [3] gegenüber.<br />

E Speicher von Synology<br />

© Steve Everts, 123RF.com<br />

Wer die Entwicklung von NAS-Geräten<br />

mitbekommen hat und noch die ersten<br />

Vertreter dieser Gattung kennt, denkt vermutlich<br />

zuerst an Festplatten mit Netzwerkanschluss.<br />

Denn lange war NAS-<br />

Storage nicht viel mehr als das: kleine<br />

Gehäuse, in die sich Festplatten einbauen<br />

und dann über das Netzwerk ansprechen<br />

ließen, sei es per FTP- oder Samba- oder<br />

NFS-Protokoll. Die höherpreisigen Variationen<br />

brachten oft Zusatzfeatures wie<br />

Raid- oder USV-Systeme mit, aber <strong>im</strong><br />

Grunde handelte es sich stets um große<br />

Datensilos.<br />

Doch Zeiten und Anforderungen der Nutzer<br />

ändern sich: FTP, NFS oder Samba?<br />

Geschenkt. Private Cloud bedeutet, dass<br />

die Netzwerkspeicher am besten jederzeit<br />

zur Verfügung stehen und Daten über<br />

das Internet verschicken und empfangen.<br />

Die Hardware erlaubt es heute, vermeintlich<br />

„fachfremde“ Apps auf den Geräten<br />

zu betreiben: Datenbanken, Webserver,<br />

I-Tunes -Server oder einen Downloadmanager,<br />

der nachts automatisch große<br />

Dateien herunterlädt und so nicht die<br />

Leitung tagsüber belastet. All das klingt<br />

absurd, aber wenn das Always-on-Gerät<br />

schon Strom frisst, soll es dabei wenigstens<br />

Sinnvolles leisten.<br />

Mult<strong>im</strong>ediazentrale<br />

In der Home-Automation übern<strong>im</strong>mt das<br />

NAS-Device nicht selten eine Funktion<br />

als zentrale Mult<strong>im</strong>edia-Ressource und<br />

verwaltet die Musik- und Videosammlungen.<br />

Das Streamen von Videodaten<br />

per UPnP gehört zum guten Ton, weil<br />

heute praktisch jeder Fernseher einen<br />

Netzwerkanschluss hat. Auch die Stereoanlage<br />

akzeptiert <strong>im</strong> lokalen Netzwerk<br />

angebotene Musiksammlungen <strong>im</strong><br />

MP3- oder (mitunter) Ogg-Format. Nicht<br />

zuletzt lassen sich die Speichersilos auch<br />

mit IP-Kameras verknüpfen, um aus dem<br />

Urlaub die eigene Wohnung <strong>im</strong> Blick zu<br />

behalten.<br />

Verschiedene Geräte mehrerer Hersteller<br />

tummeln sich auf dem Markt und stehen<br />

in unterschiedlichen Konfigurationen bereit.<br />

Dieser Artikel greift Fertiglösungen<br />

Synology, eine auch in Deutschland und<br />

Großbritannien vertretene Firma aus Taiwan,<br />

bietet NAS-Geräte (Abbildung 1)<br />

an, die sich an Profikunden und Privatanwender<br />

richten: Die billigsten Geräte<br />

kommen ohne Festplatte zum Kunden<br />

und liegen bei 130 Euro. Nach oben hin<br />

ist die Skala offen: Das Preisportal „Geizhals“<br />

listet ein 48-TByte-NAS für etwa<br />

6500 Euro auf, wobei sich die 48 TByte<br />

auf die Brutto-Kapazität ohne Spiegelung<br />

oder Replikation beziehen.<br />

An Endkunden richten sich eher die kleineren<br />

Boxen, namentlich die Geräte der<br />

Reihen DS1xx sowie DS2xx und DS4xx.<br />

Die erste Zahl hinter dem DS gibt jeweils<br />

an, wie viele Platten das Gerät aufnehmen<br />

kann, was für Replikationen über<br />

Raid-Verbünde wichtig ist. Das DS112<br />

n<strong>im</strong>mt eine Festplatte auf und kommt auf<br />

zirka 170 Euro, das DS212 sowie dessen<br />

Nachfolger DS214 liegen bei etwa 250<br />

Euro und akzeptieren zwei Festplatten.<br />

Wer noch mehr Platz braucht, muss für<br />

das DS412 mit vier Platten ungefähr 350<br />

Euro berappen.<br />

Ein Pferdefuß ist, dass die Geräte mit<br />

wechselnden Plattenkonfigurationen in<br />

den Handel kommen – mal sind Festplatten<br />

ab Werk dabei, mal bezieht sich<br />

der Preis aufs blanke Gehäuse. Die Sl<strong>im</strong>-<br />

Versionen sind zwar billiger als ihre<br />

normalen Pendants, können aber nur<br />

2,5-Zoll-HDDs aufnehmen, was die Speicherkapazität<br />

einschränkt.<br />

Die Anbindung an die Außenwelt klappt<br />

bei den Synology-Geräten problemlos:<br />

Aktuelle Versionen kommen mit USB


3 (Host) daher, auch Gigabit-LAN ist<br />

an Bord. Wer externe Platten ergänzen<br />

möchte, findet meist auch noch einen<br />

E-SATA-Port. Zusammen erlauben diese<br />

drei Anschlüsse die Verbindung mit nahezu<br />

allen relevanten Geräten.<br />

Disk Station Manager<br />

Das Herzstück der Synology-Geräte ist<br />

der DSM. Die Abkürzung steht für Disk<br />

Station Manager und bezieht sich auf das<br />

Betriebssystem der NAS-Geräte, die letztlich<br />

kleine Rechner sind. DSM liegt aktuell<br />

in Version 4.3 vor, ist <strong>Linux</strong>-basiert<br />

und präsentiert das NAS-Setup über eine<br />

Weboberfläche (Abbildung 2).<br />

Der Funktionsumfang des DSM ist beachtlich<br />

und schließt sogar die Möglichkeit<br />

ein, in den eigenen vier Wänden<br />

eine private Cloud zu betreiben. Der<br />

Cloud Station genannte Dienst erlaubt<br />

den Überall-Zugriff auf die <strong>im</strong> NAS gespeicherten<br />

Daten – sogar dann, wenn<br />

dieses nicht online ist. Denn auf Befehl<br />

des Anwenders hin hält DSM den Inhalt<br />

best<strong>im</strong>mter Ordner zwischen dem NAS<br />

und den passend konfigurierten Clients<br />

synchron.<br />

Das Synchronisieren kann dabei ebenfalls<br />

ortsunabhängig geschehen, freilich muss<br />

das NAS über das Internet erreichbar<br />

sein. Dank des DSM-GUI lässt sich diese<br />

Funktion einfach nutzen, der knifflige<br />

Teil besteht eher darin, Firewalls und<br />

Router so zu konfigurieren, dass der Zugriff<br />

klappt. Um dem Admin diese Arbeit<br />

zu erleichtern, hat DSM Support für<br />

HTTPS-Tunneling an Bord.<br />

Doch der Zugriff auf die Daten des NAS<br />

führt nicht nur über die Cloud Station.<br />

Dank seiner <strong>Linux</strong>-Basis unterstützt DSM<br />

auch FTP, Samba, AFP (Apple Filing<br />

Protocol) – all das funktioniert quasi ab<br />

Werk. Auch den Webdav-Standard beherrscht<br />

DSM, um Zugriffe per Browser<br />

zu ermöglichen. Ähnliches gilt für Mult<strong>im</strong>edia-Inhalte:<br />

Ab Werk bringt DSM Support<br />

für das Ausliefern von Videos und<br />

Musikdateien per UPnP-Streaming mit,<br />

womit praktisch alle aktuellen Fernseher<br />

und Stereoanlagen klarkommen. Fernbedienen<br />

lässt sich das Ganze dann häufig<br />

über das Smartphone, das die Inhalte auf<br />

dem NAS häufig auch abspielt.<br />

Home-Server<br />

Noch weitaus interessanter werden die<br />

NAS-Geräte allerdings durch die verfügbare<br />

Zusatzsoftware [4]. Diese <strong>im</strong> Synology-Sprech<br />

Packages genannten und<br />

nicht offiziell unterstützten Applikationen<br />

zeichnen sich durch hohe Qualität und<br />

Zuverlässigkeit aus. Als Zusatzmodule<br />

erweitern sie DSM um fast jede beliebige<br />

Funktion. MySQL, PostgreSQL, Phpbb<br />

oder Joomla – alles kein Problem.<br />

Mult<strong>im</strong>edial wird es dank der Audio,<br />

Video und Photo Station oder dem Medienserver.<br />

Sogar ein ausgewachsenes<br />

Debian-Chroot zu Entwicklungszwecken<br />

lässt sich auf ein DSM-Gerät bringen.<br />

Durch diese Flexibilität spielt ein DSM-<br />

NAS nahezu jede erdenkliche Rolle <strong>im</strong><br />

eigenen He<strong>im</strong> und bietet sich als Printserver,<br />

Webserver, Telefonanlage und<br />

dergleichen mehr an.<br />

E NAS von Qnap<br />

Eine Alternative zu den DSM-Geräten<br />

von Synology bietet Qnap an. Auch diese<br />

Firma unterteilt ihr Storage-Angebot in<br />

mehrere Segmente; die für Endanwender<br />

interessanten Geräte kosten auch ungefähr<br />

so viel, wie die jeweiligen Pendants<br />

bei Synology. Auch Qnap liefert Gehäuse<br />

mit und ohne Platten aus (Abbildung<br />

3). Letztere sind sogar etwas günstiger<br />

als die Synology-Versionen. In Sachen<br />

Ausstattung nehmen sich Qnap und Synology<br />

nichts: USB 3.0, Gigabit-LAN und<br />

E-SATA gehören zum Standardprogramm,<br />

das eingebaute Betriebssystem heißt QTS<br />

und liegt in Version 4.0 vor.<br />

Auch die Qnap-Geräte bieten einen Strauß<br />

an Funktionen, die das NAS als Kernkomponente<br />

für die Home-Automation spannend<br />

machen. Natürlich kann jedes Qnap<br />

als zentraler Speicher funktionieren, die<br />

angebotenen Protokolle sind dabei denkbar<br />

vielfältig: Die Kommunikation mit<br />

FTP-Servern, Windows- oder Apple-Systemen<br />

bereitet kein Problem und wird<br />

vom Hersteller ab Werk unterstützt. Auch<br />

Mult<strong>im</strong>ediafunktionen beherrscht die<br />

Qnap-Firmware. So kann ein Qnap-NAS<br />

als Filmsilo Verwendung finden, der <strong>im</strong><br />

Büro seine Arbeit tut und Daten per UPnP<br />

auf den Fernseher streamt.<br />

Qnaps QPKGs<br />

Die Pflicht besteht Qnap also mit Bravour.<br />

Auch in Sachen externe Software<br />

steht Qnap Synology kaum nach. Was bei<br />

Synology die Pakete sind, heißt bei Qnap<br />

QPKGs, eine Referenz auf das verwendete<br />

QPKG-Paketsystem.<br />

Was den Umfang der Zusatzsoftware angeht,<br />

verschafft das App Center von Qnap<br />

[5] einen schnellen Überblick über die<br />

nutzbaren Funktionen. Ähnlich wie bei<br />

Synology finden sich auch hier Juwelen<br />

wie Asterisk, eine Wordpress-Instanz<br />

NAS 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

47<br />

Quelle: Synology.de<br />

Abbildung 1: NAS-Devices wie das Synology DS213<br />

sind als Storage-Boxen konzipiert, können aber viel<br />

mehr, weil sie sich aufbohren lassen.<br />

Abbildung 2: NAS-Geräte von Synology und Qnap bringen eine vollständige Weboberfläche mit, über die sich<br />

verschiedene Funktionen steuern lassen.


Titelthema<br />

www.linux-magazin.de NAS 01/2014<br />

48<br />

Quelle: Qnap.com<br />

Abbildung 3: Auch Qnap bietet für seine NAS-Geräte<br />

die Möglichkeit, über Zusatzmodule Funktionen zu<br />

verwenden, die ab Werk nicht Teil der Firmware sind.<br />

und gar CRM-Systeme wie Sugar-CRM.<br />

Für den Mult<strong>im</strong>ediabereich gibt es unter<br />

anderem XBMC und Twonkymedia. Ein<br />

vom Gerät unterstützter DVB-Stick verwandelt<br />

das NAS in einen Personal Video<br />

Recorder, während die Surveillance Station<br />

Pro IP-basierte Webcams einbindet.<br />

E Alternative: Raspberry Pi<br />

Fertige Geräte wie die von Synology<br />

und Qnap bieten durchaus SAN-fremde<br />

Funktionen, auch solche zur Home-<br />

Automation, ab Werk an. Nur wäre es<br />

nicht deutlich flexibler, wenn ein kleiner<br />

<strong>Linux</strong>-Rechner all diese Funktionen übernähme?<br />

Der Raspberry Pi, aktueller Liebling<br />

der <strong>Linux</strong>-Szene, gerät so als erster<br />

Kandidat für ein NAS Marke Eigenbau ins<br />

Visier. Auch in der Preisklasse darüber<br />

warten ein paar heiße Kandidaten, etwa<br />

das Beagle oder Panda Board, die aber<br />

weniger verbreitet sind.<br />

Eine Raspberry-Pi-basierte Lösung wirkt<br />

nicht nur attraktiv, weil das Gerät selbst<br />

für kleines Geld zu haben ist, es verbraucht<br />

auch vergleichsweise wenig<br />

Strom und eine externe USB-Festplatte<br />

mit mehreren Terabyte Speicherkapazität<br />

kostet praktisch das Gleiche wie eine<br />

interne für NAS.<br />

Superflexibel<br />

Auf der Haben-Seite steht die mit einer<br />

<strong>Linux</strong>-Installation gewonnene Flexibilität.<br />

Verschiedene Distributionen buhlen<br />

Abbildung 4: Bei aller Euphorie um den Raspberry Pi sollte nicht in Vergessenheit geraten, dass das Gerät<br />

recht schwachbrüstig ist, was den Prozessor und den Arbeitsspeicher angeht.<br />

um die Gunst der Anwender, unter ihnen<br />

auch vollständige Systeme wie Debian.<br />

ARM-Ports der gängigen <strong>Linux</strong>-Varianten<br />

existieren seit Längerem, sodass Benutzer<br />

sich ihren Liebling rauspicken können.<br />

Der Debian-Port des Raspberry Pi genießt<br />

einen guten Ruf, wer üblicherweise auf<br />

Ubuntu oder Debian setzt, wird sich mit<br />

dem System wohlfühlen.<br />

Be<strong>im</strong> Raspberry Pi residiert das Betriebssystem<br />

meistens auf einer SD-Karte, die<br />

<strong>im</strong> dafür vorgesehenen Slot Platz findet.<br />

Aber Obacht: Es sollte sich um eine SD-<br />

Karte mindestens der Kategorie 10 handeln,<br />

die aus niedrigeren Klassen kommen<br />

mit den regelmäßigen Schreib- und<br />

Lesezugriffen des Systems nur schlecht<br />

zurecht und gehen schnell kaputt. Wer<br />

an den Raspberry Pi eine externe Platte<br />

anschließt, kann auch diese für die Systemdaten<br />

nutzen.<br />

Ist der Einplatinenrechner mit einem<br />

funktionierenden OS versehen, handelt<br />

es sich <strong>im</strong> Grunde um einen normalen<br />

Computer, auf dem sich nahezu jede Software<br />

aus dem Archiv der jeweiligen Distribution<br />

betreiben lässt. Dazu gehören<br />

Speicherserver, die den Zugriff auf den<br />

Speicherplatz des Pi mittels verschiedener<br />

Protokolle (FTP, Samba, AFP) ermöglichen.<br />

Über Netatalk [6] ließe sich aus<br />

dem Pi <strong>im</strong> konkreten Beispiel ein Backup-<br />

Laufwerk für Macs machen, auf dem sich<br />

per T<strong>im</strong>e Machine automatisiert Backups<br />

ablegen ließen.<br />

Wer das Gerät lieber für Streaming-Zwecke<br />

einsetzen möchte, hat dazu ebenfalls<br />

die komplette Palette von Werkzeugen<br />

zur Verfügung. Gleichwohl wäre es an<br />

dieser Stelle eventuell sinnvoll, gleich zu<br />

einer der Mult<strong>im</strong>edia-Distributionen für<br />

den Raspberry Pi zu greifen, die ab Werk<br />

auf genau diese Aufgaben spezialisiert<br />

sind, etwa Rasp BMC, Dark Elec und<br />

Open Elec, die alle auf dem Mediacenter<br />

XBMC basieren, oder zu Raspify, einer<br />

Audio-Distribution, die auf den Music-<br />

Player-Daemon setzt.<br />

Schwache Hardware<br />

Ein Serverkonstrukt à la Raspberry Pi<br />

besitzt allerdings auch Nachteile. Mitunter<br />

gerät in Vergessenheit, dass der<br />

ARM-Rechner ursprünglich als Produkt<br />

zum Basteln konzipiert wurde, mit dem<br />

angehende Geeks Computererfahrung<br />

sammeln sollen. Moderne Mult<strong>im</strong>edia-<br />

Anwendungen brauchen hingegen gut<br />

d<strong>im</strong>ensionierte Hardware, RAM und<br />

Rechenpower sind be<strong>im</strong> Pi aber Mangelware<br />

(Abbildung 4).<br />

Ein Beispiel, das diese These untermauern<br />

kann, ist die <strong>im</strong> Gerät verbaute LAN- und<br />

USB-Hardware. Ein Raspberry Pi führt<br />

einen RJ-45-Anschluss nach außen, der<br />

nominell 10 und 100 MBit/s unterstützt.<br />

Doch handelt es sich letztlich um eine<br />

Mogelpackung, denn der Netzwerkcontroller<br />

ist ein aufgelöteter USB-Controller,<br />

der sich die ihm zur Verfügung stehende<br />

Bandbreite mit allen anderen USB-Geräten<br />

teilt.<br />

Obendrein strapazieren Netzwerkverbindungen<br />

auf dem Raspberry Pi den<br />

Prozessor des Geräts über Gebühr, weil<br />

ein eigener Netzwerkchip fehlt. Das alles<br />

schlägt sich in einer Netto-Transferrate<br />

von 7 bis 8 MByte pro Sekunde nieder,<br />

und auch das nur in einem Idealszenario.


Kommen dann noch Aufgaben wie SSL-<br />

Verschlüsselung dazu, bricht die Rate<br />

weiter ein.<br />

Wertung<br />

Sowohl die Geräte von Qnap als auch die<br />

von Synology können in der He<strong>im</strong>-Automation<br />

mitspielen. Praktisch handelt es<br />

sich um kleine Computer, deren Funktionen<br />

das ab Werk genutzte Betriebssystem<br />

maßgeblich best<strong>im</strong>mt. Grundaufgaben<br />

wie das Bereitstellen eines Datenspeichers<br />

über verschiedene Protokolle, also<br />

die Mindestanforderung an NAS-Geräte,<br />

meistern beide Hersteller ohne Murren.<br />

Dabei stehen auch Protokolle zur Verfügung,<br />

die <strong>im</strong> He<strong>im</strong>-Umfeld eher selten zu<br />

finden sind: Wer zum Beispiel virtuelle<br />

Maschinen betreibt, kann diese über ein<br />

NAS und I-SCSI anbinden und spart so<br />

unmittelbar Platz auf der Festplatte des<br />

lokalen Systems.<br />

Auch die verschiedenen Zusatzfunktionen<br />

machen die NAS-Geräte für das<br />

Thema Home-Automation interessant;<br />

Wer Filme auf den Fernseher <strong>im</strong> Wohnz<strong>im</strong>mer<br />

streamen möchte, findet dazu<br />

bei beiden Produkten die benötigten<br />

Komponenten. Gleiches gilt für Audiostreams,<br />

die sich gleich auf mehreren<br />

Wegen abgreifen lassen, etwa per DAAP<br />

und I-Tunes.<br />

Auch darin ähneln sich die Ansätze:<br />

Beide geben sich offen, wenn es um das<br />

Erweitern der Funktionen ihrer NAS-Geräte<br />

geht. Böse Zungen könnten behaupten,<br />

dass Qnap und Synology Entwicklungsarbeit<br />

an die Community abtreten,<br />

um mit dem Resultat Kasse zu machen.<br />

Doch das wäre ungerecht: Weil durch<br />

die Erweiterungen ein echter Mehrwert<br />

entsteht, profitieren letztlich Nutzer und<br />

Entwickler dieser Software.<br />

Ob nun Synologys Pakete oder Qnaps<br />

QPKGs zum Einsatz kommen: Der verfügbare<br />

Park an Zusatzsoftware ist groß,<br />

und genau das ist für das Thema Home-<br />

Automation von zentraler Bedeutung.<br />

Weil sich aber die Erweiterungen von<br />

Synology und Qnap häufig kaum unterscheiden,<br />

drängt sich ein wenig der Eindruck<br />

auf, dass sich die Unternehmen<br />

gegenseitig kopieren.<br />

Weniger zu überzeugen vermag eine<br />

Lösung auf Grundlage eines Mini-Computers<br />

wie dem Raspberry Pi. Das liegt<br />

auch daran, dass viel Arbeit darin steckt,<br />

aus einem Pi einen NAS-Ersatz zu machen<br />

(Abbildung 5). Der Vorgang spart<br />

zwar Anschaffungskosten, ist aber auch<br />

mit viel Bastelei verbunden und insofern<br />

eher jenen Anwendern zu empfehlen, die<br />

ihre Chance nutzen wollen, um etwas<br />

Neues zu lernen.<br />

Ist der Bastler mit dem Pi am Ziel angelangt,<br />

hat er noch <strong>im</strong>mer ein sehr langsames<br />

Gerät, das für viele alltägliche Aufgaben<br />

einfach zu schmalbrüstig ist. So<br />

attraktiv sie in technischer Hinsicht auch<br />

sein mag, bleibt eine solche Lösung doch<br />

Bastelware. (kki/mfe)<br />

n<br />

NAS 01/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

49<br />

Infos<br />

[1] Synology: [http:// www. synology. de]<br />

[2] Qnap: [http:// www. qnap. de]<br />

[3] Raspberry Pi:<br />

[http:// www. raspberrypi. org]<br />

[4] Zusatzsoftware für Synology:<br />

[http:// www. synology‐wiki. de/ index. php/​<br />

Paketzentrum_Quellen]<br />

[5] App Center für Qnap: [http:// www. qnap.​<br />

com/ de/ index. php? lang=de& sn=410]<br />

[6] Netatalk: [http:// sf. net/ projects/ netatalk/]<br />

Abbildung 5: Zwar lassen sich auf dem Pi auch NAS-<br />

Funktionen nachbauen, das ist aber weder schnell<br />

noch so komfortabel wie auf typischen NAS-Geräten.<br />

Der Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei Hastexo. Er beschäftigt sich dort<br />

intensiv mit den Themen HA, Distributed Storage<br />

und Open Stack. In seiner Freizeit pflegt er Pacemaker<br />

für Debian.


Titelthema<br />

www.linux-magazin.de Hackerfleet 01/2014<br />

50<br />

Open-Source-Hard- und Software fürs Boot<br />

Vollmatrose<br />

Zwei Drittel der Oberfläche dieses Planeten sind nur rud<strong>im</strong>entär vernetzt: die Ozeane. Das noch junge Open-<br />

Source-Projekt Hackerfleet will dies ändern, seine Entwickler haben große Ziele. Markus Feilner<br />

© Nadezhda Shoshina, 123RF.com<br />

„Zwei Computer auf meinem Segelschiff?<br />

Wenn ich wegen deren Stromverbrauch<br />

auch nur ein warmes Bier trinken muss,<br />

dann fliegen die Teile hochkantig raus,<br />

aber hallo!“, lautet das Urteil eines erfahrenen<br />

Skippers, den das <strong>Linux</strong>-<strong>Magazin</strong><br />

um sein Urteil zum Hackerfleet-Projekt<br />

bat. „WLAN, Meshnetze und Community-Karten<br />

sind einfach nicht die richtigen<br />

Tools auf See – da muss ich mich auf<br />

Daten verlassen können.“<br />

Harter Tobak – doch das, woran die Hackerfleet<br />

GmbH (Abbildung 1, [1]) samt<br />

ihrer Community arbeitet, unterscheidet<br />

sich stark von gängigen Bootsausstattungen.<br />

Es irritiert langjährige Segler: Das<br />

Konzept sieht vor, alle Sensoren, die moderne<br />

Schiffe an Bord haben, auszulesen,<br />

die Daten zu sammeln, mobile und stationäre<br />

Geräte (auch die Smartphones) an<br />

Bord einzubinden und via Uplink und<br />

Web zu synchronisieren sowie mit zentral<br />

bereitgestellten Daten zu versorgen<br />

– Meshnetz, 3G-WLAN und zentraler<br />

Datenstorage inklusive.<br />

Einen Mediaserver für die eigenen MP3s<br />

und Filme an Bord sowie den WLAN-<br />

Hotspot gibt’s als Gratiszugabe, dazu<br />

eine leistungsfähige Antenne mit Kardanaufhängung<br />

<strong>im</strong> IP68-zertifizierten [2],<br />

wasser- und sturmfesten Gehäuse am<br />

Mast. Von dort aus geht die Hackerfleet-<br />

Software entweder direkt ins GSM-Netz<br />

oder aber nach Mesh-Art über beliebig<br />

viele Hops bis zum nächsten echten Internetzugang.<br />

Mediaserver, Internet,<br />

Schwarm-Karten<br />

Internetzugang ist das eine, doch reicht<br />

die Qualität von Community-Daten fürs<br />

sichere Navigieren? Wer jetzt denkt, das<br />

kann doch gar nicht funktionieren, dem<br />

kontern die Hackerfleet-Geschäftsführer<br />

Johannes „Ijon“ Rundfeldt und Heiko<br />

„Riot“ Weinen mit der Schwarmintelligenz,<br />

ausgeklügelten Algorithmen und<br />

der Statistik der großen Zahlen. Heute<br />

befindet sich beispielsweise nicht nur ein<br />

GPS an Bord, sondern gleich mehrere<br />

(eins in jedem Smartphone). Software,<br />

die Daten all dieser Geräte mit Tiefenmessungen<br />

kombiniert und mit den Daten<br />

anderer Schiffe vergleicht, könnte durch<br />

geschickte Berechnung deutlich bessere<br />

Ergebnisse erzeugen als jede Seekarte,<br />

glaubt Rundfeldt.<br />

„Natürlich kann man argumentieren,<br />

dass elektronische Geräte auf Schiffen<br />

grundsätzlich überflüssig sind, schließlich<br />

kommt man auch mit Papierkarte,<br />

Sextant, Kompass und einer genauen Uhr<br />

überall hin“, räumt er ein, während er<br />

in der Werkstatt <strong>im</strong> Bauch der C-Base<br />

[3] nahe der Jannowitzbrücke in Berlin<br />

an Hard- und Software schraubt. „Generell<br />

ist der technische Fortschritt auf<br />

See etwas verzögert und langsamer als<br />

zu Lande. Seeleute stehen neuen Technologien<br />

oft kritischer gegenüber als der<br />

typische technikaffine Landbewohner.“<br />

Community-Meshnetz<br />

Wer nun vermutet, das Projekt diene nur<br />

technikverliebten Wochenendseglern,<br />

die hauptberuflich <strong>im</strong> IT-Bereich arbeiten,<br />

der ist auf dem falschen Dampfer:<br />

Die Entwickler haben höhere Ziele und<br />

orientieren sich offensichtlich an Openstreetmap<br />

und ähnlichen Projekten: „Wir<br />

wollen alle Informationen sammeln, die<br />

Geräte derzeit auf der Brücke nur anzeigen.<br />

Unsere Software trägt sie zusammen,<br />

berechnet mit statistischen Methoden<br />

verlässliche Werte und konstruiert eine<br />

kostenlose, ja die bestmögliche Seekarte<br />

der Weltmeere“, schreiben die Entwickler<br />

auf der Webseite.<br />

Rundfeldt und Weinen treiben Hackerfleet<br />

als Geschäftsführer einer 2011 gegründeten<br />

Firma voran. Das Community-<br />

Projekt war <strong>im</strong> Februar 2011 entstanden,


wobei das gemeinsame Ziel lautete, innerhalb<br />

von vier Jahren ein Sammelsurium<br />

von vielen einzelnen Tools zu einer<br />

umfassenden Softwarelösung für Schiffe<br />

zu kombinieren.<br />

Mitmachen kann dabei jeder, der entweder<br />

ein Schiff oder aber ein <strong>Haus</strong> an<br />

der Küste hat. Die Teilnehmer sammeln<br />

Daten und fungieren selbst als Uplink<br />

oder als Zugangspunkte <strong>im</strong> Meshnetz,<br />

dem »OpenSeaDataMesh«, oder in einer<br />

Meshkette von Schiffen bis zur nächsten<br />

küstennahen Station mit Uplink.<br />

Hard- und Software<br />

Technisch besteht die Hackerfleet-Lösung<br />

aus drei Komponenten (Abbildungen 2<br />

und 3): Mastbox samt Antenne, ein kleiner<br />

Server unter Deck und eine Middleware<br />

auf einem Server <strong>im</strong> Web, die Daten<br />

ann<strong>im</strong>mt und die Berechnungen erledigt.<br />

Die beiden sturmerprobten Bordrechner<br />

sind stromsparende ARM-Plattformen,<br />

ausgerüstet mit Not-Akkus, die laut den<br />

Entwicklern selbst tagelang ohne Stromzufuhr<br />

auskommen und stundenlang unter<br />

Wasser liegen können. Dafür werden<br />

beispielsweise die Steckverbindungen<br />

nach militärischen Vorgaben zertifiziert<br />

sein [4].<br />

Als Betriebssystem kommt Debian zum<br />

Einsatz, auf dem zentralen Server soll<br />

eine Middleware namens Cape laufen,<br />

die aus HTML, Javascript und Python<br />

besteht, bisher allerdings nur rud<strong>im</strong>entär<br />

entwickelt ist [5]. Die Clients (also<br />

die Rechner auf den Booten) liefern die<br />

Daten verschlüsselt und signiert ab, ein<br />

VPN ist möglich, derzeit aber nicht geplant.<br />

Viel wichtiger ist den Entwicklern<br />

eher ein fehlertoleranter Datentransfer,<br />

falls die Verbindung zu langsam oder zu<br />

schwach ist.<br />

Sensoren, Schiffs-Bussysteme<br />

und Algorithmen<br />

Das Hackerfleet-Projekt unterstützt bereits<br />

eine ganze Reihe von gängigen<br />

Schiffssensoren, flanscht sich aber auch<br />

an Schiffs-Bussysteme wie NMEA 0183<br />

[6] oder NMEA 2000 [7] an. Aus versicherungs-<br />

und lizenzrechtlichen Gründen<br />

nur lesend, versteht sich. Die Kombination<br />

all dieser Messwerte ist ein Aspekt,<br />

Upload und dauerhafte Speicherung ein<br />

zweiter wichtiger Punkt <strong>im</strong> Konzept der<br />

Hackerfleet. Bisher zeigen Displays an<br />

Bord die Daten nur an.<br />

Die Algorithmen, die in der Middleware<br />

über die Daten laufen, stellen Berechnungen<br />

an, die Messfehler korrigieren<br />

können, vor allem aber stellen sie Bezug<br />

zu beispielsweise GPS-Daten her – so ergibt<br />

sich <strong>im</strong> Idealfall eine deutlich bessere<br />

Tiefenkarte. Dahinter steckt viel Mathematik<br />

und noch mehr Informatik, erklärt<br />

Ijon: „Wir trauen den einzelnen Daten<br />

nicht, sondern validieren sie erst durch<br />

Abbildung 1: Open-Source-Hard- und Software für bemannte und unbemannte Wasserfahrzeuge aller Art<br />

entwickelt das Projekt Hackerfleet.


Titelthema<br />

www.linux-magazin.de Hackerfleet 01/2014<br />

52<br />

aufwändige Vergleiche anderer Informationsquellen<br />

für dieses Revier.“<br />

Immer wieder segeln und rudern Entwickler,<br />

zum Beispiel am Wochenende,<br />

über die Ost- und Nordsee. Je mehr mitmachen,<br />

umso besser werden die Karten,<br />

und das Angebot gilt für Segler, Ruderer,<br />

Frachtschiffe und Sportyachten, schlicht<br />

für alles, was sich auf den Meeren tummelt.<br />

„Beispielsweise stammen die Wetterdaten,<br />

die es heute gibt, von gerade<br />

mal 200 bis 1000 Schiffen, die alle vier<br />

Stunden manuell Beobachtungen übermitteln.<br />

Da ist enormes Potenzial!“, ist<br />

sich Ijon sicher.<br />

Die Geschäftsidee<br />

Für die Hackerfleet GmbH, die Ijon und<br />

Riot gegründet haben, soll das Produkt<br />

auch ein tragfähiges Geschäftsmodell<br />

bringen. Spätestens 2015 wollen sie die<br />

ersten Geräte verkaufen. Attraktiv sollen<br />

sie anfangs nicht wegen der Kartenfunktionen<br />

sein – bis die mit den amtlichen<br />

Pflicht-Karten mithalten können, wird<br />

sicherlich einige Zeit verstreichen –, sondern<br />

wegen der außerordentlich guten<br />

Internet-Empfangsanlage und beliebig<br />

erweiterbaren Zusatzfunktionen. Sowohl<br />

für Endkunden (also Bootsbesitzer) wie<br />

auch für Firmenkunden (Bootsverleiher<br />

und Reeder) hält die Webseite spezielle<br />

Angebote bereit.<br />

Das Konzept könnte aufgehen, denn<br />

die Antenne am Mast bringt auch noch<br />

deutlich weiter draußen auf See Internet<br />

aufs Boot, wenn kein Handy mehr<br />

mit UMTS glänzen kann, dank WLAN-<br />

Hotspot auch des Nachts in die Kabine,<br />

ganz ohne teure Satellitenverbindung.<br />

Und wenn dann mal ein anderes Schiff<br />

mit der gleichen Ausrüstung in der Nähe<br />

ist, geht das sogar noch weiter. „Bis zu<br />

9 Seemeilen pro Hop schafft die Box bereits<br />

heute, an LTE und W<strong>im</strong>ax (für den<br />

asiatischen Raum) arbeiten wir“, erklärt<br />

Ijon. „Und der Stromverbrauch hält sich<br />

mit max<strong>im</strong>al 15 Watt bei 12 Volt in Grenzen.<br />

Charterbetreiber könnten damit werben<br />

und so die Anschaffung unserer Box<br />

amortisieren“, glaubt er.<br />

Mehrwert gibt’s genug, zum Beispiel<br />

kostenlose Wetterinformationen aus dem<br />

Web oder aus dem Meshnetz oder Musik<br />

nicht nur via Internetradio, sondern auch<br />

vom USB-Stick, den der Kapitän am zentralen<br />

Server eingesteckt hat. Ob das aber<br />

dem in die Ruhe und Stille verliebten<br />

Segler gefällt?<br />

n<br />

Infos<br />

[1] Hackerfleet: [https:// www. hackerfleet. org]<br />

[2] IP68:<br />

[http:// en. wikipedia. org/ wiki/ IP_Code]<br />

[3] C-Base: [http://www.c-base.org]<br />

[4] MIL-Zertifizierung:<br />

[http:// en. wikipedia. org/ wiki/ MIL‐STD‐810]<br />

[5] Developer Wiki: [http:// www. hackerfleet.​<br />

org/ dev/ wiki]<br />

[6] NMEA 0183:<br />

[http:// en. wikipedia. org/ wiki/ NMEA_0183]<br />

[7] NMEA 2000:<br />

[http:// en. wikipedia. org/ wiki/ NMEA_2000]<br />

© Hackerfleet.org<br />

Abbildung 2: Ein ARM-Rechner mit Debian auf dem Mast, einer unter Deck, dazu<br />

eine effiziente Antenne, jede Menge Sensoren und Smartphone-Anbindung.<br />

© Hackerfleet.org<br />

Abbildung 3: Die Mastbox ist wasserdicht und sturmerprobt, die Antenne kardanisch<br />

aufgehängt, damit der Empfang auch bei stark geneigtem oder schwankendem<br />

Schiff klappt.


In eigener Sache: DELUG-DVD<br />

Open Suse, Qubes OS, C-Buch<br />

Einführung 01/2014 12/2010<br />

Software<br />

DELUG-Käufer erhalten auch diesmal die doppelte Datenmenge zum einfachen Preis: Von der einen Seite der<br />

DVD bootet die brandneue Open Suse 13.1, von der anderen Qubes OS. Dazu gibt’s jede Menge Videos, ein E-<br />

Book über C und viel Software. Markus Feilner<br />

www.linux-magazin.de<br />

55<br />

Inhalt<br />

56 Bitparade<br />

Vier Event-Manager <strong>im</strong> Test: Frab, OSEM,<br />

Pycon-De-Website-System und Conftool.<br />

64 Qubes OS<br />

Mit Microkernel und Virtualisierung in<br />

Richtung sicheres Betriebssystem.<br />

68 Tooltipps<br />

Die Programme Drukkar 1.11, Tinc 1.0.23,<br />

Ftwin 0.8.8, Log Analyzer 3.6.5, Maildrop<br />

2.7.0 und Binwalk 1.2.2 <strong>im</strong> monatlichen<br />

Software-Überblick.<br />

Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

und dem Abonnement ohne Datenträger<br />

gibt es die DELUG-Ausgabe mit Monats-<br />

DVD, bei der die Redaktion den Datenträger<br />

nach einem speziellen Konzept<br />

zusammenstellt: In einer Art modularem<br />

System enthält er Programme und Tools,<br />

die in der jeweiligen <strong>Magazin</strong>-Ausgabe<br />

getestet und besprochen werden. Zudem<br />

gibt es nicht <strong>im</strong> Heft abgehandelte Software,<br />

die die Redaktion besonders emp-<br />

Abbildung 2: Kostenlos auf der DELUG-DVD: Das<br />

E-Book „C von A bis Z“.<br />

fiehlt, alles gebündelt unter<br />

einer HTML-Oberfläche.<br />

Open Suse 13.1<br />

Von der ersten Seite der DVD<br />

bootet Open Suse 13.1 (Abbildung<br />

1). Damit das gelang,<br />

mussten sich die Entwickler<br />

der Community-Distribution<br />

sputen, denn eigentlich erschien<br />

die finale Version erst<br />

eine Woche nach Redaktionsschluss.<br />

Ungetestet, aber dafür<br />

brandaktuell in der 64-Bit-<br />

Version auf der DVD, bietet<br />

Open Suse 13.1 auch wieder<br />

das Dateisystem Btr-FS mit<br />

vielen Enterprise-Features an, dazu die<br />

topaktuellen Desktops KDE 4.11.2 und<br />

Gnome 3.10.<br />

Der <strong>Linux</strong>-Kernel liegt in Version 3.11.6<br />

bei. Dem hat Suse diverse zusätzliche<br />

Btr-FS-Fehlerbehebungen spendiert. Die<br />

Bürosuite Libre Office haben die Community-Entwickler<br />

auf Version 4.1.2 aktualisiert.<br />

Auch neue Cloud-Funktionen,<br />

Yast-Erweiterungen und der Journald<br />

sind dabei, dazu optional auch der Netzwerk-Konfigurator<br />

Wicd, was vom lange<br />

ersehnten, jetzt endlich nahenden Abschied<br />

vom Network Manager zeugt.<br />

E-Book und Videos<br />

Wer auf den Silberling mit dem Browser<br />

zugreift, der findet <strong>im</strong> Hauptmenü zwei<br />

exklusive Einträge: Zum einen den dritten<br />

Teil der besten Videos von der Debconf<br />

2013 mit den prominenten Debian-<br />

Entwicklern Ben Hutchings, Thomas Goirand,<br />

Paul Wise und Joey Hess.<br />

Von Jürgen Wolf stammt das für DELUG-<br />

Leser kostenlose E-Book (Abbildung 2):<br />

Abbildung 1: Gerade noch zum Redaktionsschluss veröffentlichte<br />

Open Suse die neueste Version 13.1.<br />

„C von A bis Z“ aus dem Verlag Galileo.<br />

Das umfassende Handbuch bietet mit<br />

seinen 1000 Seiten sowohl Einsteigern<br />

als auch Fortgeschrittenenen ein kompetentes<br />

Nachschlagewerk rund um C.<br />

Ausführlich stellt es die Grundlagen dar,<br />

angefangen von den elementaren Datentypen<br />

bis hin zu Arrays, Zeigern und dynamischer<br />

Speicherverwaltung und führt<br />

hin zu fortgeschrittenen Themen wie<br />

dem Programmieren von Webanwendungen.<br />

Gedruckt kostet das Buch 40 Euro,<br />

DELUG-Leser erhalten es einfach so.<br />

Virtuelles Atrium<br />

Als virtuelle Appliance liegt auf der DVD<br />

Open Atrium vor, eine Open-Source-Collaboration-Suite,<br />

die auf Drupal basiert<br />

und mit Blog, Chat, Wiki, Kalender, Aufgaben<br />

und Portal alle Funktionen modernen<br />

Netz-Teamworks bietet. Damit nicht<br />

genug: Zu den Tools aus Bitparade und<br />

Tooltipps gesellt sich auf der DVD auch<br />

noch Software aus der Titelstrecke und<br />

der Rubrik Programmieren. n


Software<br />

www.linux-magazin.de Bitparade 01/2014<br />

56<br />

Vier Eventmanagement-Systeme <strong>im</strong> Test<br />

Organisationstalente<br />

Open-Source-Projekte laden ihre Entwickler, Benutzer und Fans regelmäßig zu Konferenzen ein. Vorträge,<br />

Workshops und gesellige Treffen verlangen eine gute Organisation. Den Überblick erlangen und behalten die<br />

Verantwortlichen mit vier Webanwendungen. T<strong>im</strong> Schürmann, Heike Jurzik<br />

© Franck Boston, 123RF.com<br />

Viele Referenten und Teilnehmer, dazu<br />

Talks oder Workshops in mehreren Tracks<br />

und Social Events – damit ihre Kongresse<br />

reibungslos ablaufen, haben die Organisatoren<br />

der Froscon [1], der Open Suse<br />

Conference [2] und der deutschen Pycon<br />

[3] eigene Planungs- und Verwaltungssysteme<br />

entwickelt. Alle drei Lösungen<br />

sind Webanwendungen, die auf einem<br />

typischen LAMP-System laufen. Sie vereinfachen<br />

die Zusammenarbeit der Organisatoren,<br />

und auch die Sprecher und<br />

Teilnehmer profitieren davon. Sie können<br />

Proposals einreichen, sich zur Konferenz<br />

anmelden und vieles mehr.<br />

Die drei Testkandidaten Frab [4], Open<br />

Source Event Manager [5] und Pycon-<br />

De-Website-System [6] stehen alle unter<br />

einer freien Lizenz, Anwender dürfen<br />

sie nach Herzenslust an ihre Bedürfnisse<br />

anpassen. Die Eventmanagement-<br />

Systeme stellten ihr Organisationstalent<br />

unter Ubuntu 13.04 und Debian 7.2 unter<br />

Beweis. Die Tester rüsteten die Systeme<br />

zuvor mit den typischen LAMP-Komponenten<br />

aus. Im Vergleich tritt das kommerzielle<br />

Conftool [7] an, das nicht nur<br />

auf dem eigenen Server läuft, sondern<br />

optional auch be<strong>im</strong> Anbieter.<br />

E Frab<br />

Der erste Testkandidat basiert auf der<br />

Konferenzsoftware Pentabarf [8], die<br />

das Debian-Projekt zur Planung seines<br />

jährlichen Entwicklertreffens Debconf<br />

[9] verwendet. Da die letzte Pentabarf-<br />

Version 0.4.4 über vier Jahre alt und die<br />

Mailingliste inzwischen abgeschaltet ist,<br />

erstellte der Programmierer David Roetzel<br />

mit einigen Mitstreitern für die Froscon<br />

2011 den Fork Frab [4].<br />

Im Readme weisen sie explizit darauf hin,<br />

dass es sich noch nicht um eine stabile<br />

Release handelt. Seine Praxistauglichkeit<br />

hat Frab jedoch schon einige Male unter<br />

Beweis gestellt und kommt inzwischen<br />

auch bei der Planung der CCC-Konfe-<br />

renz Sigint [10] zum Einsatz. Die Tester<br />

schauten sich die Version vom 29. Oktober<br />

2013 an.<br />

Frab ist kostenlos und steht unter einer<br />

MIT-Lizenz. Die Installation ist mit Hilfe<br />

eines knappen Howto schnell erledigt.<br />

Die Anwendung setzt Ruby on Rails<br />

(Version 3.2), Ruby (mindestens 1.9.3),<br />

Image Magick und das Javascript-Framework<br />

Node.js voraus. Debian-Anwender<br />

finden Letzteres noch nicht in der Stable-<br />

Variante der Distribution. Wer nicht mit<br />

der Testing-Ausgabe aus Jessie arbeiten<br />

möchte, sollte Node.js selbst kompilieren<br />

[11]. Nach dem Auschecken der Frab-<br />

Quellen aus dem Git-Repository spielen<br />

Benutzer mit »bundle install« die benötigten<br />

Ruby-Gems ein.<br />

Als Datenbank empfehlen die Entwickler<br />

MySQL oder SQlite 3; alternativ arbeitet<br />

Frab mit PostgreSQL zusammen.<br />

Der Befehl »rake db:setup« erzeugt die<br />

Datenbank, und »rails server« startet den<br />

Frab-Server auf dem Standardport 3000,<br />

sofern der Admin in der Datei »settings.<br />

yml« nichts anderes definiert. Der Parameter<br />

»‐d« schiebt den Frab-Daemon<br />

direkt in den Hintergrund. Verwalter melden<br />

sich nun mit dem Benutzernamen<br />

»admin@example.org« und dem Passwort<br />

»test123« an.<br />

Zuerst legt der Admin eine neue Konferenz<br />

an. Dazu vergibt er einen Namen,<br />

ein Kürzel, wählt die Zeitzone und un-<br />

Konferenztools<br />

Auf der Delug-DVD dieses <strong>Magazin</strong>s<br />

finden Sie die in diesem Artikel getes-<br />

DELUG-DVD<br />

teten Programme Frab, Open Source Event<br />

Manager und Pycon-De-Website-System. Es<br />

handelt sich um die jeweils aktuelle Version,<br />

die bei Redaktionsschluss (Oktober 2013) in<br />

den Git-Repositories lag.


terteilt den Tag in feste Zeiteinheiten<br />

(T<strong>im</strong>eslots), die in der Voreinstellung 15<br />

Minuten umfassen. Ein Vortrag setzt sich<br />

standardmäßig aus vier solchen Slots zusammen.<br />

Bis max<strong>im</strong>al 20 dieser Einheiten<br />

sind erlaubt. Im Bereich »Event Languages«<br />

fügt der Organisator Sprachen<br />

für die Konferenz hinzu, die später bei<br />

der Planung der einzelnen Vorträge zur<br />

Wahl stehen.<br />

Das Webinterface ist teilweise übersetzt<br />

und spricht deutsch, wenn Besucher in<br />

der URL »en« durch »de« ersetzen (Abbildung<br />

1). Zuletzt wählen Admins ein<br />

Ticketsystem aus. Außer der eigenen<br />

Komponente bietet die Software eine<br />

Schnittstelle zu OTRS- und RT-Servern.<br />

Handarbeit<br />

Die Benutzeroberfläche wirkt klar und<br />

aufgeräumt. Dennoch bleibt für Einsteiger<br />

zunächst unklar, wie es nach dem<br />

Anlegen der Konferenz weitergeht. Zunächst<br />

ist diese in den Einstellungen um<br />

Tage, Tracks und Räume zu erweitern.<br />

Ein Klick in ein Datumsfeld klappt einen<br />

kleinen Kalender aus, den das Menü am<br />

oberen Rand teilweise verdeckt. Wer eine<br />

eigene Optik für die Webseite wünscht<br />

oder die Textschnipsel anpassen möchte,<br />

bearbeitet die Haml-Dateien (HTML Abstraction<br />

Markup Language) der Software<br />

<strong>im</strong> Texteditor.<br />

Die Raumplanung gefällt gut, denn Organisatoren<br />

dürfen hier auch die Anzahl<br />

der vorhandenen Plätze und ausführliche<br />

Beschreibungen speichern. Dafür fehlt<br />

eine Möglichkeit, Sponsoren einzutragen<br />

und Tickets für Teilnehmer zu verwalten.<br />

Ein Klick auf »Call for Papers« öffnet<br />

ein Interface, über das der Admin neben<br />

Start- und Endtermin eine Deadline vorgibt,<br />

nach der das System keine Proposals<br />

mehr ann<strong>im</strong>mt. Nach dem Aktivieren<br />

erzeugt Frab eine neue Unterseite,<br />

auf der Anwender (Speaker, Teilnehmer<br />

und andere Organisatoren) sich registrieren<br />

oder mit einem vorhandenen Konto<br />

anmelden können.<br />

Registriert sich ein neuer Benutzer, erzeugt<br />

Frab die passenden Einträge in der<br />

Datenbank und verschickt eine Mail mit<br />

einem Bestätigungslink. Dazu benötigt<br />

das System einen Mailserver. Die Absenderadresse<br />

für Nachrichten des Frab-Systems<br />

passen Admins in der Einrichtungsdatei<br />

»settings.yml« an.<br />

Während die Anmeldung über den zugeschickten<br />

Link auf dem Debian-Testrechner<br />

problemlos klappte, funktionierte<br />

dies unter Ubuntu nicht, Frab meldete<br />

beharrlich »Invalid email or password«.<br />

Dann hilft nur, als Verwalter das Konto<br />

von Hand anzulegen. Frab kennt verschiedene<br />

Rollen und unterscheidet zwischen<br />

»submitter«, »reviewer«, »coordinator«,<br />

»orga« und »admin«.<br />

Um ein Proposal einzureichen, sucht<br />

der Anwender neben dem gewünschten<br />

Track auch die Dauer und die Sprache<br />

aus. Zudem muss er die Art der Veranstaltung<br />

best<strong>im</strong>men. Zur Wahl stehen<br />

»Vortrag«, »Workshop«, »Podiumsdiskussion«,<br />

»Lightning Talk«, »Meeting« und<br />

»Andere«. Optional lädt er ein Logo hoch<br />

und trägt dann ein Abstract und eine<br />

ausführliche Beschreibung ein. Außerdem<br />

darf er Links ergänzen und weitere<br />

Dateien wie etwa Illustrationen oder<br />

fertige Präsentationen anhängen. Über<br />

»Verfügbarkeit bearbeiten« teilen Benutzer<br />

den Organisatoren mit, wann sie bei<br />

der Konferenz anwesend sind.<br />

Frab listet auf der Startseite die zuletzt<br />

ausgeführten Änderungen auf und zeigt<br />

in einem Graphen übersichtlich an, wann<br />

wie viele Proposals eingetroffen sind. Reviewer<br />

können die Vorschläge mit bis zu<br />

fünf Sternen bewerten und kommentieren.<br />

Organisatoren schalten einen Vortrag<br />

oder Workshop manuell frei; sie dürfen<br />

auch Veranstaltungen direkt ohne Reviewprozess<br />

anlegen (Abbildung 2).<br />

Mit der Freischaltung macht Frab denjenigen,<br />

der das Proposal eingereicht hat,<br />

automatisch zum Speaker. Nach einer<br />

Bestätigung, dass dieser dann auch wirklich<br />

zur Verfügung steht, n<strong>im</strong>mt das Organisationstool<br />

die Veranstaltung in den<br />

Zeitplan auf. Sofern gewünscht steht den<br />

Teilnehmern ein Feedback-System für die<br />

Events zur Verfügung.<br />

Bekanntmachung<br />

Den Zeitplan exportiert Frab als PDFoder<br />

statische HTML-Datei. Für alle<br />

Veranstaltungen erzeugt das Tool auf<br />

Wunsch ein PDF-Dokument mit Karten,<br />

das die Organisatoren als Aushang für<br />

die Konferenzräume verwenden können.<br />

Per Mausklick generiert Frab Berichte, die<br />

unter anderem eine Liste mit allen Workshops<br />

ausgeben. Eine Exportfunktion für<br />

diese Aufstellungen fehlt.<br />

Über mitgelieferte Skripte, die das Kommandozeilen-Programm<br />

»rake« anwirft,<br />

übernehmen Administratoren Daten aus<br />

Pentabarf, exportieren alle Informationen<br />

Bitparade 01/2014<br />

Software<br />

www.linux-magazin.de<br />

57<br />

Abbildung 1: Die Benutzeroberfläche von Frab präsentiert sich teilweise auf<br />

Deutsch, wenn Anwender die URL entsprechend anpassen.<br />

Abbildung 2: Organisatoren und Admins dürfen in Frab Veranstaltungen erzeugen,<br />

planen und bewerten.


Software<br />

www.linux-magazin.de Bitparade 01/2014<br />

58<br />

aus Frab, <strong>im</strong>portieren diese wieder in<br />

eine andere Installation oder verschicken<br />

Massenmails an alle Speaker und Teilnehmer<br />

der Konferenz.<br />

E Open Source Event<br />

Manager<br />

Zur Planung seiner Konferenzen und<br />

Meetings verwendet das Open-Suse-Team<br />

den Open Source Event Manager (Osem,<br />

[5]). Das Tool steht unter einer MIT-<br />

Lizenz, setzt genau wie Frab auf Ruby<br />

on Rails und arbeitet mit MySQL, SQlite<br />

oder PostgreSQL zusammen. Der zweite<br />

Kandidat verlangt einen Apache-Webserver<br />

mit dem Passenger-Modul (Paket<br />

»libapache2‐mod‐passenger«), Image Magick<br />

und einem Mailserver. Das äußerst<br />

knappe Howto nennt explizit Postfix, <strong>im</strong><br />

Test mit der Version vom 22. Oktober<br />

2013 funktionierte auch Ex<strong>im</strong>.<br />

Zur Installation checken Admins die<br />

Quellen aus dem Git-Repository aus und<br />

spielen mit »bundle install« die benötigten<br />

Ruby-Gems ein. Danach kopieren sie<br />

– wie in der Anleitung beschrieben – die<br />

Konfigurations-Templates. Die folgenden<br />

drei Befehle richten die Datenbank ein:<br />

bundle exec rake db:setup<br />

bundle exec rake db:migrate<br />

bundle exec rake db:seed<br />

Zum Schluss richtet der Administrator<br />

entweder einen Apache-Virtual-Host<br />

ein (siehe Readme) oder startet Osem<br />

über »rails server« auf der Shell. Auch<br />

hier sorgt »‐d« dafür, dass der Daemon<br />

<strong>im</strong> Hintergrund arbeitet. Osem ist über<br />

den Standardport 3000 erreichbar, sofern<br />

Admins diesen in der Einrichtungsdatei<br />

nicht verändert haben.<br />

Anders als bei Frab gibt es kein fertig<br />

eingerichtetes Konto für den Verwalter.<br />

Stattdessen erzeugt er über »Sign up« <strong>im</strong><br />

Webinterface einen Zugang und bestätigt<br />

ihn über den Link, den das System per<br />

Mail verschickt. Anschließend stattet er<br />

das Konto mit den nötigen Zugriffsrechten<br />

aus, indem er über »rails console«<br />

die Rails-Konsole startet und dort die Datenbanktabellen<br />

manipuliert. Diese drei<br />

Befehle machen den zuerst angelegten<br />

Nutzer zum Admin:<br />

User.all<br />

me = User.find('1')<br />

me.role_ids=[3]<br />

Das karge Webinterface präsentiert sich<br />

nur in Englisch. Um die Optik der Seiten<br />

anzupassen, bearbeiten Admins die<br />

Haml- und CSS-Dateien <strong>im</strong> Editor. Ein<br />

Titelbild für die Veranstaltung dürfen sie<br />

bereits in den Settings auswählen. Der<br />

Menüpunkt zum Erstellen einer neuen<br />

Konferenz versteckt sich hinter dem Benutzernamen.<br />

Anwender geben ihr einen<br />

Titel, einen Kurztitel und Hashtag für<br />

Plattformen wie Twitter, Google+ oder<br />

Facebook. Dass die Software das Tag irgendwo<br />

verwendet, konnten die Tester<br />

nicht bestätigen.<br />

Nach dem Erzeugen erscheint am oberen<br />

Rand ein Menü, das weitere Einstellungen<br />

zur Konferenz<br />

– Anmeldungen,<br />

Sponsoren, Events,<br />

Statistiken und einen<br />

Zeitplan – erlaubt<br />

(siehe Abbildung<br />

3).<br />

Organisatoren best<strong>im</strong>men<br />

für den<br />

Call for Papers einen<br />

Zeitraum sowie eine Deadline, nach<br />

der das System keine Vorschläge mehr<br />

ann<strong>im</strong>mt. Proposals landen in der Abteilung<br />

»Events«. Die Reviewer begutachten<br />

und bewerten jeden Vorschlag, kommentieren<br />

ihn optional und verteilen Punkte.<br />

Wie viele Punkte zur Verfügung stehen<br />

und was sie bedeuten, legt der Verwalter<br />

vorher fest. Er best<strong>im</strong>mt auch die min<strong>im</strong>ale<br />

und max<strong>im</strong>ale Anzahl der Wörter<br />

für die Abstracts.<br />

Organisatoren ordnen die Events einem<br />

Track zu und schalten sie danach frei.<br />

Erst dann erscheint die Veranstaltung <strong>im</strong><br />

Zeitplan. Das Call-for-Paper-Verfahren<br />

lässt sich nicht umgehen – es ist nicht<br />

möglich, ein Event ohne Proposal und<br />

einen Reviewprozess einzutragen.<br />

Ausgerichtet<br />

Bei der Beschreibung der Konferenzräume<br />

speichert Osem auch die Anzahl<br />

der verfügbaren Plätze. Zudem verwaltet<br />

die Software mehrere Tracks und Vortragstypen<br />

wie etwa Keynotes, Tutorials<br />

und Diskussionsrunden. Jede Rubrik hat<br />

eine vorgegebene Dauer, die der Admin<br />

in den Konferenzsettings festlegt. So best<strong>im</strong>mt<br />

er etwa, dass eine Keynote max<strong>im</strong>al<br />

30 Minuten dauert, Tutorials 45 und<br />

Lightning Talks 10 Minuten. Sponsoren<br />

Abbildung 3: Admins erstellen zunächst eine Konferenz. Danach erscheinen die<br />

übrigen Osem-Menüpunkte zur Einrichtung.<br />

Abbildung 4: Osem vermerkt besondere Bedürfnisse und sorgt auch für die richtige<br />

Verköstigung der Teilnehmer.


heißen bei Osem Supporter. Organisatoren<br />

legen zunächst einen oder mehrere<br />

Supporterlevel fest und weisen diese<br />

dann den Förderern zu.<br />

Osem erinnert einen Speaker nach dem<br />

Einreichen eines Proposals daran, dass er<br />

sich noch für die Konferenz selbst registrieren<br />

muss. Auch die Organisatoren sehen<br />

unter »Events«, wenn ein Teilnehmer<br />

einen Vortrag anbietet, sich aber noch<br />

nicht angemeldet hat. Be<strong>im</strong> Ausfüllen<br />

des Anmeldeformulars können Teilnehmer<br />

hinterlegen, dass sie einen barrierefreien<br />

Zugang benötigen, und besondere<br />

Wünsche eintragen (Abbildung 4). In<br />

den Konferenzeinstellungen aktivieren<br />

und beschreiben die Veranstalter auch<br />

besondere Essenswünsche.<br />

Osem unterscheidet zwischen drei Benutzerrollen:<br />

»Participant«, »Organizer« und<br />

»Admin«, wobei das Interface für Mitglieder<br />

des Orga-Teams nicht anders aussieht<br />

als das der Teilnehmer. Der Verwalter<br />

weist einem Benutzer eine neue Rolle<br />

zu, indem er auf sein Konto oben rechts<br />

klickt und »Users« auswählt. »Modify Roles«<br />

öffnet ein Dropdown-Menü, in dem<br />

er eine neue Aufgabe zuweist. Auf dem<br />

Ubuntu-Testrechner konnten die Tester<br />

die Rechte nachträglich nicht verändern,<br />

unter Debian klappte das problemlos. Die<br />

Teilnehmerliste exportieren Anwender als<br />

PDF- und XLSX-Datei.<br />

Auf dem Ubuntu-Testsystem vergaß<br />

Osem be<strong>im</strong> Einreichen von Proposals<br />

den Lebenslauf und wollte zudem ein<br />

neues Benutzerkonto anlegen, obwohl<br />

der Account bereits existierte. Auch be<strong>im</strong><br />

Versuch, ein Proposal zu genehmigen,<br />

bekamen die Tester auf dieser Distribution<br />

lediglich eine Fehlermeldung zu sehen.<br />

Den Grund für diese Panne konnten<br />

sie zusammen mit den Entwicklern bis<br />

Redaktionsschluss nicht klären. Unter<br />

Debian trat das Verhalten nicht auf.<br />

E Pycon-De-Website-<br />

System<br />

Wenig überraschend plant die deutsche<br />

Python-Community ihre Kongresse mit<br />

einem System in der eigenen Lieblings-<br />

Programmiersprache. Als Basis für die<br />

Eigenentwicklung dienen das Webframework<br />

Django [12] und der Konferenzmanager<br />

Symposion [13]. Das unter einer<br />

BSD-Lizenz stehende Planungstool verstaut<br />

seine Daten in einer PostgreSQL-<br />

Datenbank. Alternativ nutzt das Pycon-<br />

System MySQL oder SQlite. Letzteres<br />

Bitparade 01/2014<br />

Software<br />

www.linux-magazin.de<br />

59<br />

Tabelle 1: Feature-Übersicht der Konferenztools<br />

Name Frab Osem Pycon Conftool<br />

Version 29.10.2013 22.10.2013 20.10.2013 31.10.2013<br />

Lizenz MIT MIT BSD proprietär<br />

Programmiersprache Ruby on Rails Ruby on Rails Python PHP<br />

Datenbanken MySQL, PostgreSQL, SQlite MySQL, PostgreSQL, SQlite MySQL, PostgreSQL, SQlite MySQL<br />

Eigene Optik ja (Haml-Dateien) ja (Haml-Dateien) ja (Skins) ja (eingeschränkt)<br />

Mehrsprachiges Interface ja (teilweise übersetzt) nein (nur Englisch) ja (teilweise übersetzt) ja<br />

Zugriffsrechte/​Rollen ja ja ja ja<br />

Import/​Export ja/​ja nein/​nur Teilnehmerliste nein/​nur Reviews ja (nur Pro)/​ja<br />

Backup-Funktion über Im-/​Export nein nein ja<br />

Für Organisatoren<br />

Call for Papers ja ja ja ja<br />

Proposalverwaltung ja ja ja ja<br />

Anhänge an Proposals ja ja nein ja<br />

Reviews ja ja ja ja<br />

Events ohne Reviewprozess ja nein ja nein<br />

Trackverwaltung ja ja ja ja<br />

Raumverwaltung ja ja ja nur Pro<br />

Vortragstypen ja ja ja ja<br />

Vortragsdauer feste Zeiteinheiten frei wählbar frei wählbar feste Zeiteinheiten<br />

Vorkenntnisse Teilnehmer nein nein ja ja<br />

Zeitslots für Talks ja nein ja ja<br />

Terminplan-Export ja nein nein ja<br />

Sponsoren/​Level nein/​nein ja/​ja ja/​ja nein/​nein<br />

Für Teilnehmer<br />

Online-Registrierung ja ja ja ja<br />

Ticketbestellung nein nein ja ja<br />

Ticketverwaltung nein nein ja nein<br />

Ticketarten nein nein ja ja<br />

Ticketdruck nein nein nein nein<br />

Gutscheine nein nein ja nein<br />

Bezahlung nein nein nein Kreditkarte, Überweisung, Paypal<br />

Rechnungsdruck nein nein nein ja


Software<br />

www.linux-magazin.de Bitparade 01/2014<br />

60<br />

könnte allerdings Probleme mit einigen<br />

Django-Plugins verursachen, daher raten<br />

die Entwickler vom Einsatz in einer<br />

produktiven Umgebung ab. Die Tester<br />

schauten sich die Version vom 20. Oktober<br />

2013 an.<br />

Vor der Installation sollten Admins Virtualenv<br />

[14] einspielen, um die Software<br />

in einer isolierten Python-Umgebung zu<br />

betreiben. Auf den beiden Testrechnern<br />

reichte es, die Pakete »python‐virtualenv«,<br />

»virtualenvwrapper« und »python‐dev«<br />

zu installieren. Danach folgen sie der<br />

Anleitung auf der Projektseite.<br />

Der <strong>im</strong> Readme notierte Befehl zum Auschecken<br />

des Git-Repository funktioniert<br />

nicht, da er einen SSH-Schlüssel voraussetzt.<br />

Stattdessen geben Admins zum<br />

Download folgendes Kommando ein:<br />

git clone https://bitbucket.org/PySV/pycon_U<br />

de_website.git<br />

Danach erzeugen sie mit »mkvirtualenv<br />

pyconde_website« eine Python-Umgebung<br />

und führen in ihr die restlichen <strong>im</strong><br />

Readme genannten Befehle aus.<br />

Im Anschluss an die Installation gilt es<br />

noch, mit »python manage.py createsuperuser«<br />

einen Admin-Account anzulegen.<br />

Danach startet »python manage.<br />

py runserver 8000« den Server auf Port<br />

8000. In der Voreinstellung lauscht dieser<br />

Ist ein Vorschlag angenommen, erzeugt<br />

der Verwalter aus dem Proposal den<br />

eigentlichen Vortrag für die Konferenz.<br />

Außerdem darf er spezielle Events ansetzen,<br />

die kein Proposal erfordern. Das<br />

Pycon-System prüft Eingaben nicht. Es<br />

ist folglich möglich, eine Konferenz für<br />

den November anzusetzen, aber einen<br />

Workshop <strong>im</strong> Oktober abzuhalten.<br />

Interessierte Teilnehmer geben ähnlich<br />

wie in einem Onlineshop eine Bestellung<br />

für eine Eintrittskarte auf. Organisatoren<br />

dürfen dazu beliebige Ticketarten einlediglich<br />

auf 127.0.0.1:8000. Um Verbindungen<br />

von anderen Rechnern zu akzeptieren,<br />

definieren Admins die IP-Adresse<br />

vor dem Port, also »python manage.py<br />

runserver 0.0.0.0:8000«.<br />

Flexibel<br />

Dank des Django-Unterbaus haben Organisatoren<br />

sehr viel Freiheit be<strong>im</strong> Gestalten<br />

ihrer Konferenzwebsite, müssen<br />

sich dafür aber zunächst in das CMS<br />

einarbeiten. Alle Unterseiten und Menüpunkte<br />

legen sie in Handarbeit über die<br />

Pycon-Verwaltungsoberfläche an, die sich<br />

hinter »http://IP‐Adresse:8000/admin«<br />

versteckt (siehe Abbildung 5). Wer die<br />

Optik anpassen möchte, arbeitet mit so<br />

genannten Skins [15]. Als Beispiel liegt<br />

dem Quellarchiv der Look der Pycon-<br />

Homepage [3] bei.<br />

Die Verwaltungsoberfläche ist schlicht<br />

und übersichtlich. Die Aufgaben der Organisatoren<br />

sind zu Gruppen zusammengefasst,<br />

dennoch ist nicht auf Anhieb<br />

erkennbar, in welcher Reihenfolge der<br />

Benutzer sie angehen muss. Verschiedene<br />

Veranstaltungsdauern sowie Vortragstypen<br />

(Session Kinds) definieren sie<br />

<strong>im</strong> Bereich »Conference«.<br />

Gut gefällt, dass Organisatoren über<br />

»Audience levels« den erwarteten Wissensstand<br />

der Zuhörer<br />

eintragen<br />

und später den<br />

Events zuordnen<br />

dürfen. Auf diese<br />

Weise richten sie<br />

etwa Vorträge für<br />

Einsteiger oder Ex-<br />

perten ein und machen den Unterschied<br />

für die Teilnehmer sichtbar.<br />

Anders als bei Frab und Osem können<br />

Admins detailliert vorgeben, welche<br />

einzelnen Funktionen und Einstellungen<br />

ein Benutzer aufrufen darf. Zudem<br />

richten sie Gruppen ein und vergeben<br />

ganz gezielt Berechtigungen für die Mitglieder<br />

(Abbildung 6). Eine Unterteilung<br />

der Sponsoren in verschiedene Level ist<br />

ebenfalls <strong>im</strong>plementiert, sodass das System<br />

beispielsweise zwischen Gold- und<br />

Silber-Sponsoren unterscheidet.<br />

Eingereichte Proposals anonymisiert das<br />

System auf Wunsch. Sie landen in der<br />

gleichnamigen Abteilung. Hier sollten<br />

die Organisatoren während der Review-<br />

Phase nach Möglichkeit nichts am Wortlaut<br />

ändern. Dafür steht eine gesonderte<br />

Abteilung bereit, in der sie kommentieren<br />

und auf einer Skala von ‐1 bis +1<br />

bewerten dürfen. Pluspunkte gibt es für<br />

das Feature, das mehrere Versionen eines<br />

Proposals speichert.<br />

Zur Sache<br />

Abbildung 5: Das Pycon-System basiert auf dem Webframework Django. Das<br />

macht die Software unhe<strong>im</strong>lich flexibel, setzt aber eine gewisse Einarbeitungszeit<br />

bei den Administratoren voraus.<br />

Abbildung 6: Im Pycon-System legt der Verwalter für Benutzer und Gruppen<br />

genau fest, welche Funktionen und Rechte sie erhalten. Die sind sehr detailliert<br />

und best<strong>im</strong>men, wer etwas anlegen, ändern und löschen darf.


ichten und etwa Tages- oder Wochenkarten<br />

definieren. Das Pycon-System unterscheidet<br />

zudem zwischen normalen<br />

Konferenz- und Tutorialtickets, da auf der<br />

Python-Konferenz traditionell der erste<br />

Tag den Tutorials gewidmet ist. Die Planungssoftware<br />

geht davon aus, dass jeder<br />

Teilnehmer ein T-Shirt erhält.<br />

Als einziges der freien Tools enthält das<br />

Pycon-De-Website-System eine Funktion,<br />

um Gutscheine zu verwalten und auszustellen.<br />

Für die Bezahlung der Tickets<br />

stehen als Varianten Rechnung, Kreditkarte<br />

oder das Lastschriftverfahren (ELV)<br />

bereit. Den eigentlichen Bezahlvorgang<br />

müssen die Teilnehmer allerdings selbst<br />

abwickeln, auch die Rechnungen gibt’s<br />

nicht per Knopfdruck, die Organisatoren<br />

schreiben sie von Hand. Das Planungstool<br />

hält lediglich fest, ob die Zahlung erfolgt<br />

und die Rechnung geschrieben ist.<br />

E Conftool<br />

Wer das Aufsetzen und Administrieren einer<br />

Eventmanagement-Software auf dem<br />

eigenen System zu mühsam findet, der<br />

stößt <strong>im</strong> Netz auf etliche Alternativen,<br />

die fertig eingerichtete Systeme mehr<br />

oder weniger kostengünstig anbieten. Die<br />

Tester wollten wissen, wie sich die Open-<br />

Source-Systeme <strong>im</strong> Vergleich mit einem<br />

kommerziellen Produkt schlagen, und<br />

haben stellvertretend Conftool [7] aus<br />

der Feder des Entwicklers Harald Weinreich<br />

unter die Lupe genommen.<br />

Die Hamburger Firma Conftool bietet es<br />

in zwei Varianten an. Organisatoren von<br />

kleineren, nicht kommerziellen Veranstaltungen<br />

mit max<strong>im</strong>al 150 Teilnehmern erhalten<br />

auf Anfrage eine kostenlose Standardversion<br />

zum Download, die VSIS<br />

Conftool heißt. Es gibt keinen Support,<br />

die Lizenz gilt <strong>im</strong>mer nur pro Konferenz,<br />

und das Unternehmen behält sich das<br />

Recht vor, Änderungen am Quellcode ins<br />

eigene Produkt übernehmen zu dürfen.<br />

Zudem müssen die Veranstalter einem<br />

Mitarbeiter der Conftool GmbH die kostenlose<br />

Teilnahme an der Konferenz gestatten.<br />

Den kompletten Funktionsumfang bietet<br />

Conftool Pro, für das pro Konferenz eine<br />

Lizenzgebühr anfällt. Preise erfährt der<br />

Anwender be<strong>im</strong> Hersteller. Für diese Variante<br />

erhalten die Organisatoren Support,<br />

auf Wunsch hostet die Conftool GmbH<br />

das System, sodass die Pflege auf einem<br />

eigenen Server entfällt. Der Hostingservice<br />

umfasst automatische Backups,<br />

signierte SSL-Zertifikate und eine Anpassung<br />

des Seitenkopfes und der Farben an<br />

eigene Wünsche. Die Conftool-Homepage<br />

listet die Unterschiede der beiden Versionen<br />

auf. Für Standard und Pro stellt<br />

die Firma zudem eine Demo-Installation<br />

bereit [16].<br />

Conftool ist in PHP geschrieben und setzt<br />

<strong>im</strong> Hintergrund auf eine MySQL-Datenbank<br />

(Version 4.1 oder neuer). Es erfordert<br />

außerdem Apache (1.3, 2.0.36 oder<br />

neuer) und PHP (4.4, 5.X oder neuer).<br />

PHP sollte darüber hinaus als Apache-<br />

Modul verfügbar sein. Conftool benötigt<br />

die PHP-Module »php_mysql«, »curl« und<br />

»mbstring«.<br />

Die Homepage enthält Anleitungen zum<br />

Einrichten auf dem eigenen Server – mit<br />

Rootrechten oder ohne. Dort finden Administratoren<br />

auch Vorlagen für eine<br />

Virtual-Host-Konfiguration von Apache.<br />

Nach dem Erzeugen einer neuen Datenbank<br />

passiert die eigentliche Installation<br />

über PHP-Skripte. Seitenkopf und Farben<br />

manipulieren Anwender ebenfalls in den<br />

PHP-Dateien; weitere optische Anpassungen<br />

sind nicht vorgesehen.<br />

Durchstrukturiert<br />

Die Benutzeroberfläche selbst wirkt etwas<br />

altbacken, obwohl sie in HTML 5<br />

programmiert ist. In den vielen Untermenüs<br />

verliert der Verwalter schnell die<br />

Orientierung (siehe Abbildung 7). Dafür<br />

spricht Conftool mehrere Sprachen, darunter<br />

Deutsch.<br />

Schon die Standardversion erschlägt den<br />

Verwalter mit unzähligen Einstellungen.<br />

So darf er zum Beispiel festlegen, welche<br />

Dateien mit welchen Endungen die Benutzer<br />

hochladen dürfen und ob Teilnehmer<br />

bei der Registrierung eine Mitgliederoder<br />

Matrikelnummer angeben sollen.<br />

Conftool verwaltet mehrere Tracks und<br />

Sitzungen (Sessions). Wie bei den quelloffenen<br />

Konkurrenten legt ein Verwalter<br />

die Vortragstypen fest.<br />

Organisatoren können nicht nur den<br />

Zeitraum für den Call for Papers vorgeben,<br />

sondern auch best<strong>im</strong>men, wann<br />

Teilnehmer ein Benutzerkonto erstellen<br />

und sich für die Veranstaltung anmelden<br />

dürfen. Zudem unterscheidet Conftool


Software<br />

www.linux-magazin.de Bitparade 01/2014<br />

62<br />

Abbildung 7: Die Conftool-Benutzeroberfläche sieht zwar aus wie Webseiten aus<br />

dem letzten Jahrtausend, unter der Haube werkeln aber neue Techniken.<br />

Abbildung 8: Proposals durchlaufen <strong>im</strong> Conftool mehrere Stadien und erhalten<br />

zum Schluss eine Gesamtbewertung.<br />

mehrere Phasen: Nach dem Call for Papers<br />

folgt der Reviewprozess, danach<br />

erhalten die Vortragenden Gelegenheit,<br />

sich die Ergebnisse anzusehen. Für angenommene<br />

Vorträge dürfen die Speaker<br />

ein Dokument mit der Endfassung ihres<br />

Beitrags einreichen. Die Pro-Version teilt<br />

eine Phase sogar in mehrere Unterphasen<br />

auf. Auf diese Weise kann das Orga-Team<br />

beispielsweise zunächst eine Kurzbeschreibung<br />

der Speaker anfordern und<br />

eine Woche später ist dann das komplette<br />

Proposal fällig.<br />

Eingereichte Vorschläge landen bei Gutachtern,<br />

die nach mehreren Kategorien<br />

bewerten. Aus den einzelnen Punkten<br />

berechnet Conftool dann anhand einer<br />

(in der Pro-Version frei wählbaren) Gewichtung<br />

einen Gesamtscore (Abbildung<br />

8). In der Pro-Version können Gutachter<br />

zudem für Beiträge „bieten“, die sie gerne<br />

begutachten würden, und die Ergebnisse<br />

online diskutieren.<br />

Die Organisatoren dürfen Frühbucher-<br />

Rabatte einräumen, Teilnahmebestätigungen<br />

ausstellen und in der Pro-Version<br />

Einladungen per Mail verschicken. Die<br />

Veranstaltungen gruppieren sie optional.<br />

Ein Teilnehmer schreibt sich dann bei der<br />

Anmeldung beispielsweise für einen ganz<br />

best<strong>im</strong>mten Block ein. Die Zugriffsrechte<br />

der angemeldeten Benutzer schränkt<br />

Conftool über Rollen ein.<br />

Conftool stellt auf Wunsch Rechnungen<br />

aus, und die Pro-Version bindet verschiedene<br />

Zahlungsdienste an. Es unterscheidet<br />

sogar zwischen mehreren Mehrwertsteuersätzen.<br />

Das Programm verwaltet<br />

keine Sponsoren, die Standard-Version<br />

auch keine Konferenzräume.<br />

Gut geplant<br />

Die drei freien Kandidaten Frab, Osem<br />

und Pycon sind offensichtlich für die eigenen<br />

Veranstaltungen entstanden. Vor<br />

allem fehlt den drei Tools eine ausführliche<br />

Dokumentation. Ein Organisator<br />

braucht daher viel Exper<strong>im</strong>entierfreude<br />

und außerdem Grundkenntnisse in<br />

Ruby on Rails beziehungsweise Python,<br />

wenn er die Software an eigene Bedürfnisse<br />

anpassen möchte. Grundsätzliche<br />

Kenntnisse zur Systemadministration<br />

(Webserver, Mailserver und Datenbank)<br />

sind ebenfalls erforderlich. Wer mit dem<br />

Gedanken spielt, eines der drei Systeme<br />

für eine eigene Konferenzplanung einzusetzen,<br />

sollte <strong>im</strong> Vorfeld entsprechend<br />

Zeit einplanen.<br />

Frab, Osem und das Pycon-System ähneln<br />

sich stark in ihrem Aufbau und bieten<br />

auch fast die gleichen Funktionen an (Tabelle<br />

1). Zudem behält der Anwender die<br />

Kontrolle über Server und Daten, muss<br />

die Software allerdings auch pflegen.<br />

Den rundesten und stabilsten Eindruck<br />

hinterlässt Frab. Osem ärgerte die Tester<br />

mit einigen kleineren Fehlern, die Installation<br />

dieses Kandidaten war unterm<br />

Strich die komplizierteste, da das Howto<br />

etliche Fragen offen lässt. Wer das Pycon-<br />

System einsetzt, muss sich zwangsweise<br />

mit Django vertraut machen. Als Belohnung<br />

gibt’s ein vollwertiges CMS <strong>im</strong> Hintergrund,<br />

das sehr flexibel ist.<br />

Conftool schneidet <strong>im</strong> Vergleich gut ab<br />

und übertrumpft die freien Systeme gelegentlich.<br />

Vor allem die Bezahlmöglichkeiten<br />

per Kreditkarte, Überweisung und<br />

Paypal sowie der Rechnungsdruck sind<br />

komfortabel. Wer sich nicht gern mit einer<br />

Installation auf dem eigenen Server<br />

herumschlägt, sollte die Pro-Version in<br />

Betracht ziehen, zumal automatische<br />

Backups und SSL-Zertifikate <strong>im</strong> Servicepaket<br />

enthalten sind. (hej)<br />

n<br />

Infos<br />

[1] Froscon: [http:// www. froscon. de]<br />

[2] Open Suse Conference:<br />

[http:// conference. opensuse. org]<br />

[3] Pycon: [http:// de. pycon. org]<br />

[4] Frab: [https:// github. com/ frab/ frab]<br />

[5] Open Source Event Manager:<br />

[https:// github. com/ openSUSE/ osem]<br />

[6] Pycon-De-Website-System:<br />

[https:// pyconde. readthedocs. org]<br />

[7] Conftool: [http:// www. conftool. net]<br />

[8] Pentabarf: [http:// pentabarf. org]<br />

[9] Debconf: [http:// debconf. org]<br />

[10] Sigint: [http:// sigint. ccc. de]<br />

[11] Node.js: [http:// nodejs. org]<br />

[12] Django: [https:// www. djangoproject. com]<br />

[13] Symposion:<br />

[http:// eldarion. com/ symposion]<br />

[14] Virtualenv: [http:// www. virtualenv. org]<br />

[15] Pycon-Skins:<br />

[https:// pyconde. readthedocs. org/ en/​<br />

latest/ setup/ skins. html]<br />

[16] Conftool-Onlinedemo:<br />

[http:// www. conftool. net/ de/ demo_<br />

installationen. html]


Software<br />

www.linux-magazin.de Qubes OS 01/2014<br />

64<br />

Sicheres Betriebssystem: Qubes OS<br />

Jenseits der Bedrohung<br />

Für sichere Betriebssysteme gibt es viele Ansätze, doch häufig krankt es an Details. Der Neuling Qubes OS<br />

setzt auf einen Microkernel und durchgängige Virtualisierung. Der erste Eindruck ist positiv. Tobias Eggendorfer<br />

Beta 2 vom Februar 2013 zu haben, eine<br />

dritte Beta ist noch in Arbeit, sollte aber<br />

schon vor drei Monaten erschienen sein.<br />

GUI-Level-Separation<br />

© Liu Feng, 123RF.com<br />

Jetzt also Qubes OS [1]: Braucht die<br />

Welt ein weiteres als besonders sicher<br />

deklariertes Betriebssystem? Es gibt<br />

doch bereits Open BSD: zwei Remote-<br />

Sicherheitslücken in den letzten 16 Jahren<br />

– davon träumen andere. Open BSD<br />

macht zudem konzeptionell alles richtig:<br />

Es gewährleistet Sicherheit durch Qualitätsmanagement,<br />

wozu Code Reviews,<br />

Coding-Standards sowie automatisierte<br />

Tests gehören – nach Ansicht der meisten<br />

Experten ist das der beste Weg.<br />

Denn den größten Teil aller relevanten<br />

Sicherheitsprobleme verdanken wir typischen<br />

und altbekannten Programmierfehlern:<br />

Einbrüche geschehen durch Buffer<br />

Overflows, Format-String-Schwachstellen,<br />

Off-by-one-Fehler und manchmal<br />

auch durch fehlerhaft initialisierte Zufallszahlengeneratoren<br />

[2].<br />

Ergänzend zu diesen Maßnahmen baut<br />

Open BSD eine Vielzahl zusätzlicher Hindernisse<br />

ein [3], die Angriffe erheblich<br />

erschweren, sollten doch sicherheitsrelevante<br />

Fehler ans Licht kommen. Diesen<br />

Teil der Strategie kopiert mittlerweile sogar<br />

Microsoft für Windows. Grundsätzlich<br />

gilt dabei: Prävention ist besser als<br />

Reaktion. Alle nachgerüsteten Sicherheitsfeatures,<br />

etwa Address Space Layout<br />

Randomization, sind reaktiv: Sie lösen<br />

das Problem der zugrunde liegenden Programmierfehler<br />

nicht.<br />

Auftritt Qubes<br />

Der polnischen Security-Forscherin Joanna<br />

Rutkowska gehen die sehr erfolgreichen<br />

Ansätze von Open BSD noch nicht<br />

weit genug. Auch künstliche Erweiterungen<br />

wie SE <strong>Linux</strong> hält sie für ineffektiv.<br />

Bekannt wurde sie unter anderem mit ihrer<br />

Arbeit an Blue Pill [4], einem Rootkit,<br />

das vom Gastsystem aus den Hypervisor<br />

angreift.<br />

Vor diesem Hintergrund arbeitet sie nun<br />

an Qubes OS, das unter der GPLv2 steht<br />

und dessen fertige Version 2.0 – Release<br />

2 oder R2 genannt – vermutlich Anfang<br />

oder Mitte 2014 erscheint. Aktuell ist die<br />

Einer von Rutkowskas Hauptkritikpunkten<br />

an den vorhandenen Sicherheitslösungen<br />

zielt auf die Unsicherheit von<br />

X11: Dort seien Anwendungen, bedingt<br />

durch das biblische Alter des X-Window-<br />

Systems, nur unzureichend gegeneinander<br />

abgeschottet.<br />

Als einfache Demonstration schlägt sie<br />

einen kleinen Test mit dem Standardtool<br />

»xinput« und zwei Terminalfenstern vor.<br />

Nach der parameterlosen Eingabe von<br />

»xinput« erscheint eine Liste der verfügbaren<br />

Eingabegeräte. Das haben die Tester<br />

in Abbildung 1 nachvollzogen und<br />

xinput test 8<br />

eingegeben, wobei die »8« für das benutzte<br />

Keyboard steht. Fortan erscheinen<br />

alle Tastatureingaben als Scancodes (Abbildung<br />

2), auch wenn der Tippende das<br />

zweite Terminal verwendet – oder gar mit<br />

Rootrechten arbeitet!<br />

Im Beispiel hatten die Tester zunächst »su<br />

‐« aufgerufen, was die ersten acht Scancodes<br />

erzeugte. Dann folgte [Enter] und<br />

ihr Rootpasswort für die Kali-VM – wer<br />

nachprüft, wird merken, dass es recht unsicher<br />

ist. Immerhin funktioniert dieser<br />

Lauschangriff nicht für X11-Forwarding<br />

über SSH – zumindest nicht, um zu lauschen,<br />

was der auf dem entfernten Rechner<br />

Arbeitende für Befehle eingibt.<br />

Qubes OS<br />

Auf der Delug-DVD finden Sie<br />

DELUG-DVD<br />

ein Image der Beta 2 von Qubes R2, das noch<br />

einige Bugs aufweisen kann. Das System läuft<br />

nicht in einer virtuellen Maschine.


Abbildung 1: Das Kommandozeilentool »xinput« zeigt Eingabegeräte an.<br />

Umgekehrt lassen sich lokale Eingaben<br />

für das entfernte System natürlich mitschneiden.<br />

Technisch sauberer wäre es,<br />

wenn zumindest der Übergriff auf den<br />

anderen Nutzer nach der Eingabe von<br />

»su ‐« unmöglich wäre. Doch auch das<br />

könnte nur ein Notbehelf sein, denn<br />

grundsätzlich sollte keine Anwendung<br />

Daten einer anderen erhalten.<br />

App-Separation<br />

Diese Idee spinnt Qubes OS weiter: Statt<br />

alle Anwendungen nebeneinander laufen<br />

zu lassen, legt es für Gruppen von<br />

Anwendungen jeweils geeignete Sicherheitsstufen<br />

fest. Diese Gruppen landen<br />

dann in einer eigenen Xen-VM, was die<br />

Apps stärker voneinander kapselt als<br />

unter normalen Betriebssystemen. Die<br />

Kapselung geht auch weiter als in einer<br />

Chroot-Umgebung, in der sich die Systeme<br />

die Hardware-Ressourcen, etwa die<br />

Netzwerkkarten, teilen.<br />

Wer nun argumentiert, eine solche Sicherheitsmaßnahme<br />

durch Aufteilung<br />

brauche kein neues Betriebssystem,<br />

hierfür würden Parallels, Virtualbox oder<br />

VMware völlig genügen,<br />

übersieht,<br />

dass diese Systeme<br />

nur so sicher sind,<br />

wie ihr Wirtsbetriebssystem.<br />

Qubes OS setzt<br />

auf einen min<strong>im</strong>alen<br />

Wirt, der nur<br />

das GUI bereitstellt, wahlweise KDE oder<br />

Xfce. Für alles andere, das schließt Hardware<br />

wie das Netzwerk oder die Festplatten<br />

ein, gibt es eigene VMs (Abbildung<br />

3). Weil dem Wirtssystem ein Netzwerkzugang<br />

fehlt, brauchen nur wenige Komponenten<br />

Updates, die der Admin über<br />

die Kommandozeile einspielt [5].<br />

Netzwerkspielereien<br />

Das Auslagern des Netzanschlusses hat<br />

noch einen weiteren Vorteil: Wer per VPN<br />

ins Büro tunneln muss, erstellt sich eine<br />

Netz-VM, welche die VPN-Verbindung<br />

aufbaut, und kann den durch sie bereitgestellten<br />

Netzwerk adapter dann mit verschiedenen<br />

VMs nutzen. So teilen sich<br />

mehrere Sicherheitsumgebungen einen<br />

VPN-Tunnel. Der ist dabei völlig transparent<br />

für die jeweilige VM, die auch nichts<br />

vom eigenen Netz sieht. Das reduziert<br />

nebenbei Sicherheitsrisiken, die durch<br />

den VPN-Einsatz entstehen könnten.<br />

In ihrem Blog schlägt Rutkowska vor, in<br />

einer Netzwerk-Adapter-VM einen Tor-<br />

Proxy zu installieren [6]. Hier merkt die<br />

App-VM nicht, dass die Netzwerkkarte<br />

mehr leistet als<br />

üblich – und kann<br />

insbesondere den<br />

Tor-Proxy nicht<br />

umgehen. Die<br />

Folge: Der gesamte<br />

Netzwerkverkehr<br />

wird anonymisiert.<br />

Das verhindert<br />

die üblichen<br />

Angriffe auf die<br />

Anonymisierung,<br />

etwa durch Flash-<br />

Plugins.<br />

Qubes OS 01/2014<br />

Software<br />

www.linux-magazin.de<br />

65<br />

Klein ist fein<br />

Abbildung 2: Der Befehl »xinput test 8« zeichnet die Tastatur-Scancodes auf – in<br />

diesem Fall »su ‐« gefolgt vom Rootpasswort.<br />

Neben der guten<br />

Hardware-Abstraktion<br />

und ‐Kapse-


Software<br />

www.linux-magazin.de Qubes OS 01/2014<br />

66<br />

Work<br />

App-VM<br />

Personal<br />

App-VM<br />

lung kommt mit dem eingesetzten Microkernel<br />

aus Sicherheitssicht ein weiterer<br />

Pluspunkt hinzu: Als sicher eingestufte<br />

Programme sollten weniger als 0,5 Fehler<br />

pro 1000 Codezeilen haben, das Mittel für<br />

Alltagsprogramme liegt bei drei bis fünf<br />

Fehlern [7]. Nicht jeder Bug ist sicherheitsrelevant,<br />

viele sind einfach nur lästig.<br />

Dennoch basieren die meisten derzeit<br />

ausgenutzten Sicherheitslücken auf typischen<br />

Programmierfehlern.<br />

Mit der Gesamtfehlerzahl reduziert sich<br />

auch die der sicherheitsrelevanten Fehler.<br />

Und genau das ist einer der wertvollen<br />

Nebeneffekte, die ein Microkernel mit<br />

sich bringt: Er kommt mit weniger Codezeilen<br />

aus. Gerade Sicherheitslücken <strong>im</strong><br />

Kernel sind fatal und lassen sich besonders<br />

effektiv ausnutzen. Daher muss deren<br />

Vermeidung für ein sicheres System<br />

höchste Priorität haben.<br />

Plattformunabhängig<br />

Random<br />

App-VM<br />

Mit Hilfe von Templates für die App-VMs<br />

ist Qubes OS recht einfach zu konfigurieren,<br />

eine neue VM ist schnell aufgesetzt.<br />

Das Standard-Template in Qubes R2 Beta<br />

2 basiert auf Fedora 18 (64 Bit), zu Beginn<br />

stehen dem Anwender drei farbkodierte<br />

App-VMs – Work, Personal und<br />

Random – zur Auswahl. Be<strong>im</strong> Einstieg<br />

helfen zudem die zahlreichen Hinweise<br />

auf der Webseite.<br />

Durch den zugrunde liegenden Xen-Hypervisor<br />

und die eingesetzte Virtualisierungstechnik<br />

ist ein Qubes-OS-Anwender<br />

nicht auf ein Betriebssystem beschränkt.<br />

In den unterschiedlichen App-VMs dürfen<br />

verschiedene Systeme laufen. Das<br />

Wiki zum Austausch mit den Kollegen<br />

<strong>im</strong> Intranet kann zum Beispiel aus Sicherheitserwägungen<br />

auf Open BSD basieren.<br />

Xen-Hypervisor<br />

Network Domain<br />

(unprivileged)<br />

Die per E-Mail zugeschickten MS-Office-<br />

Dateien brauchen keinen Viewer mehr:<br />

Sie lassen sich in einer Windows-App-<br />

VM nativ lesen. Das schafft ein hohes<br />

Maß an Flexibilität und Sicherheit.<br />

Hoher Testaufwand<br />

Apropos hoch: Wer Qubes OS R2 schnell<br />

mal ausprobieren möchte, wird vor eine<br />

ordentliche Hürde gesetzt: Einerseits ist<br />

die Hardware-Kompatibilitätsliste [8]<br />

sehr kurz. Auf dem anfangs genutzten<br />

Testsystem unter OS X 10.7.5 war keine<br />

Virtualisierungsumgebung (Parallels,<br />

Virtualbox, VMware Fusion) zur Kooperation<br />

mit Qubes zu bewegen.<br />

Das unterstreicht auch die Qubes-Webseite<br />

mit dem charmanten Hinweis, man<br />

möge doch bitte von weiteren Anfragen<br />

an das Entwicklerteam absehen, wie sich<br />

Qubes in einer virtuellen Umgebung installieren<br />

ließe – das funktioniere schlicht<br />

nicht. Dem widersprechen zwar einzelne<br />

Berichte auf Webseiten [9], die angeblich<br />

Qubes OS als Nested-Virtualisierung zum<br />

Laufen gebracht haben, doch leider fehlen<br />

überall klare Informationen zu den<br />

Bedingungen.<br />

So musste letztlich ein alter Laptop für<br />

den Test herhalten, Qubes wurde heruntergeladen<br />

[10] und altmodisch auf eine<br />

DVD gebrannt. Der Kompatibilitätsliste<br />

können die Tester nach einer fast drei<br />

Stunden dauernden Installation <strong>im</strong>merhin<br />

ein neues Gerät hinzufügen: ein Macbook<br />

Pro aus dem Jahre 2007.<br />

Fazit<br />

VT-d VT-d VT-d<br />

Storage Domain<br />

(unprivileged)<br />

Secure GUI &<br />

Administration<br />

(Dom0)<br />

Abbildung 3: Die Architektur von Qubes OS: Anwendungen landen gruppiert nach ihren Sicherheitsanforderungen<br />

in den App-VMs, Hardware abstrahiert Qubes durch eigene VMs.<br />

Obwohl das Konzept von Qubes OS nicht<br />

revolutionär ist – denn App-Separationsverfahren<br />

gibt es schon länger –, machen<br />

die alltagstaugliche Nutzbarkeit des Systems<br />

und die hohe Flexibilität zusammen<br />

mit den durchdachten Konzepten<br />

zur Geräte-Abstraktion Qubes OS recht<br />

einzigartig.<br />

Dennoch ist das System noch nicht für<br />

jedermann geeignet, denn die eingeschränkte<br />

Hardwarekompatibilität ist<br />

zurzeit ein echter Hemmschuh. Außerdem<br />

gibt es – wie von einer Betaversion<br />

nicht anders zu erwarten – noch einige<br />

Bugs zu beheben [11]. Wer sich aber von<br />

diesen Punkten nicht abschrecken lässt,<br />

erhält ein gut durchdachtes und vor allem<br />

sicheres System. (kki)<br />

n<br />

Infos<br />

[1] Qubes OS: [http:// qubes‐os. org]<br />

[2] Tobias Eggendorfer, „Seltener Zufall. Gute<br />

Vorhersagbarkeit bedeutet schlechte Sicherheit“:<br />

<strong>Linux</strong> <strong>Magazin</strong> 01/​2012, S. 48 ff.<br />

[3] Sicheres Open BSD:<br />

[http:// www. openbsd. org/ security. html]<br />

[4] Rootkit „Blue Pill“:<br />

[http://theinvisiblethings.blogspot.<br />

de/2006/06/introducing-blue-pill.html]<br />

[5] Über Dom0-Updates:<br />

[http://qubes-os.org/trac/wiki/<br />

SoftwareUpdateDom0]<br />

[6] Netzwerk in Qubes:<br />

[http:// theinvisiblethings. blogspot. de/​<br />

2011/ 09/ playing‐with‐qubes‐networking<br />

‐for‐fun. html]<br />

[7] Fehlerrate in Software:<br />

[http:// www. sei. cmu. edu/ library/ abstracts/​<br />

news‐at‐sei/ wattsnew20041. cfm]<br />

[8] Liste kompatibler Hardware:<br />

[http:// qubes‐os. org/ trac/ wiki/ HCL]<br />

[9] Qubes in der VM: [http:// www.​<br />

extremetech. com/ computing/ 84168<br />

‐nearbulletproof‐qubes‐os‐goes‐beta]<br />

[10] Beta 2 von Qubes R2: [http://qubes-os.<br />

org/trac/wiki/QubesDownloads]<br />

[11] Bugs in Qubes OS:<br />

[http:// qubes‐os. org/ trac/ report/ 3]<br />

Der Autor<br />

Tobias Eggendorfer ist Professor für IT-Sicherheit<br />

in Ravensburg und freiberuflich als IT-Berater<br />

tätig ([http:// www. eggendorfer. info]). Die Idee<br />

von Qubes OS findet er interessant genug, um in<br />

einem kommenden Semester mit seinen Studenten<br />

einerseits die Konzepte anzuschauen, aber<br />

andererseits auch nach kreativen Lösungen zu<br />

suchen, wie sich der Ansatz doch noch stören<br />

lassen könnte.


Software<br />

www.linux-magazin.de Tooltipps 01/2014<br />

68<br />

Werkzeuge <strong>im</strong> Kurztest<br />

Tooltipps<br />

Tinc 1.0.23<br />

VPN-Daemon für <strong>Linux</strong>, OS X und Windows<br />

Quelle: [http:// www. tinc‐vpn. org]<br />

Lizenz: GPLv2<br />

Alternativen: Open VPN, Open L2TP<br />

Ftwin 0.8.8<br />

Dateidubletten finden<br />

Quelle: [https:// github. com/ fpesce/ ftwin]<br />

Lizenz: Apache License<br />

Alternativen: Finddup.pl, Find Repe<br />

Binwalk 1.2.2<br />

Firmware analysieren<br />

Quelle: [http:// code. google. com/ p/ binwalk]<br />

Lizenz: MIT<br />

Alternativen: Objdump, Hexdump<br />

Tinc verspricht sichere und verschlüsselte<br />

Kommunikation. Das VPN-Tool<br />

läuft als Daemon und richtet be<strong>im</strong> Start<br />

gesicherte virtuelle Subnetze zu anderen<br />

Tinc-Servern ein. Wie die meisten<br />

VPN-Lösungen setzt auch diese auf TUN/​<br />

TAP-Geräte für den Netzaufbau und auf<br />

Open SSL zur Verschlüsselung. Damit<br />

stehen Krypto-Algorithmen wie Blowfish<br />

und DES 3 bereit. Dank LZO und Zlib ist<br />

es auch möglich, die Daten während der<br />

Übertragung zu kompr<strong>im</strong>ieren.<br />

Im Konfigurationsverzeichnis »/etc/tinc«<br />

legen Benutzer Ordner mit so genannten<br />

Netnames für die verschlüsselten<br />

Subnetze an. Jedes Verzeichnis enthält<br />

eine Datei »tinc.conf«, eine Datei mit<br />

dem privaten SSL-Schlüssel, Up-/​Down-<br />

Skripte zur Steuerung der virtuellen<br />

Schnittstelle und einen Ordner »hosts«.<br />

Letzterer n<strong>im</strong>mt die Verbindungsdaten<br />

zu allen Tinc-Servern <strong>im</strong> entsprechenden<br />

Subnetz auf.<br />

Eine einfache Beispielkonfiguration ist<br />

<strong>im</strong> Quellarchiv enthalten, sie lässt sich<br />

als Grundlage für eigene Einstellungen<br />

einsetzen. Die Manpage und das Projekt-<br />

Wiki dokumentieren alle Möglichkeiten<br />

umfassend. Hier finden Anwender auch<br />

Hinweise, wie sie Tinc zusammen mit<br />

Proxyservern betreiben oder an einzelne<br />

Schnittstellen binden.<br />

★★★★★ Tinc ist eine schnelle VPN-Lösung.<br />

Ihre Flexibilität und Plattformunabhängigkeit<br />

machen sie besonders für<br />

Ad-hoc-Netze interessant.<br />

n<br />

Dateidubletten verschwenden unnötig<br />

Plattenplatz. Ftwin hilft bei der Suche<br />

nach den Doppelgängern in weitläufigen<br />

Verzeichnisstrukturen, vergleicht übergebene<br />

Dateien oder durchforstet rekursiv<br />

ganze Verzeichnisbäume.<br />

Das Tool verwendet eigene Hashalgorithmen,<br />

um den Inhalt von Dateien miteinander<br />

zu vergleichen. Identische Bilder<br />

spürt es mit Hilfe der Bibliothek »libpuzzle«<br />

auf; der Parameter »‐I« ruft diesen<br />

Modus auf den Plan. Die Fundstücke<br />

schreibt Ftwin als zusammenhängende<br />

Blöcke auf die Standardausgabe. Die Option<br />

»‐s« fügt eine optische Trennung ein.<br />

Für Rechner mit begrenzten Systemressourcen<br />

reduziert »‐o« den Speicherverbrauch,<br />

was jedoch zu einer längeren<br />

Laufzeit führt.<br />

Über »‐e« und »‐w« definieren Anwender<br />

entsprechende Filter. Die Regeln dürfen<br />

reguläre Ausdrücke enthalten. Alternativ<br />

schreiben sie Dateien in eine Liste, die<br />

sie explizit vom Vergleich ausschließen<br />

wollen, und übergeben diese dann mit<br />

»‐i«. Wer nur die großen Fische fangen<br />

möchte, der gibt mit »‐m« eine min<strong>im</strong>ale<br />

Dateigröße vor. Symbolische Links berücksichtig<br />

das Tool nur, wenn der Nutzer<br />

die Option »‐f« einsetzt.<br />

★★★★★ Ftwin findet Dubletten und<br />

sorgt für mehr Platz auf der Festplatte.<br />

Das Löschen der Doppelgänger nehmen<br />

Anwender selbst in die Hand. n<br />

Binwalk ist ein leistungsfähiges Konsolenprogramm,<br />

das Firmware-Abbilder<br />

analysiert, Dateien aus ihnen extrahiert<br />

und damit Entwicklern be<strong>im</strong> Reverse<br />

Engineering unter die Arme greift. Das<br />

Python-Programm arbeitet auf <strong>Linux</strong>und<br />

OS-X-Systemen und setzt auf beiden<br />

Plattformen die Pakete Libmagic und<br />

Python‐magic voraus.<br />

Um grundlegende Informationen über ein<br />

Firmware-Image zu erhalten, reicht es<br />

aus, Binwalk zusammen mit der Datei<br />

aufzurufen. Das Programm listet dann auf<br />

der Standardausgabe den Inhalt auf und<br />

zeigt an, wie groß die einzelnen Komponenten<br />

sind. Weitere Optionen suchen<br />

nach bekannten Opcodes <strong>im</strong> Abbild oder<br />

extrahieren Zeichenketten. Wer nicht das<br />

gesamte Image bearbeiten möchte, der<br />

gibt hinter »‐o« einen Offsetwert an. Binwalk<br />

speichert auf Wunsch das Ergebnis<br />

als CSV- oder Textdatei.<br />

Zur Analyse der Images setzt das Tool<br />

auf vordefinierte Signaturen, die Merkmale<br />

enthalten, wie sie in kompr<strong>im</strong>ierten<br />

Archiven oder Firmware-Headern zu finden<br />

sind. Eigene Signaturen und Plugins<br />

erweitern den Funktionsumfang. Eine<br />

Reihe von Anwendungsbeispielen zeigt<br />

der Parameter »‐?« an. Das Archiv enthält<br />

zudem ein ausführliches Readme.<br />

★★★★★ Binwalk verrät allerhand nützliche<br />

Informationen über Firmware-Images<br />

und vereint praktische Funktionen der<br />

Tools »strings«, »hexdump« und »dd«. n


Software<br />

www.linux-magazin.de Tooltipps 01/2014<br />

70<br />

Maildrop 2.7.0<br />

Mail Delivery Agent<br />

Quelle: [http:// www. courier‐mta. org/​<br />

maildrop]<br />

Lizenz: GPLv3<br />

Alternativen: Procmail, Zmaildrop<br />

Log Analyzer 3.6.5<br />

Logdateien grafisch aufbereiten<br />

Quelle: [http:// loganalyzer. adiscon. com]<br />

Lizenz: GPLv3<br />

Alternativen: W3perl, PHP-Syslog-ng<br />

Drukkar 1.11<br />

Kompakte Blog-Engine<br />

Quelle: [http:// drukkar. sourceforge. net]<br />

Lizenz: GPLv2<br />

Alternativen: Blazeblogger<br />

Ursprünglich als MDA für den IMAP-<br />

Server Courier entwickelt ist Maildrop<br />

inzwischen eigenständig und arbeitet<br />

auch mit anderen Mailservern wie Postfix,<br />

Ex<strong>im</strong> oder Dovecot zusammen. Das<br />

Tool filtert elektronische Post nach Absenderadressen,<br />

Adressaten, Betreffzeilen,<br />

Inhalten und so weiter. Es unterstützt<br />

sowohl Maildir als auch Mbox als Mailboxformate.<br />

Maildrop n<strong>im</strong>mt die Nachrichten über die<br />

Standardeingabe vom Mailserver entgegen<br />

und filtert sie nach den Regeln, die<br />

Admins in der Konfigurationsdatei »/etc/<br />

maildroprc« eintragen. Ist keine globale<br />

Einrichtung vorhanden oder passt keine<br />

der allgemeinen Regeln, schaut das Tool<br />

in den Homeverzeichnissen der Benutzer<br />

nach einer Datei »~/.mailfiter«. Zur<br />

Definition der Filterregeln stellt Maildrop<br />

eine eigene Sprache zur Verfügung, die<br />

Perl ähnelt und komplexe »if‐elseif‐else«-<br />

Konstruktionen versteht. Aufbau und<br />

Syntax beschreibt die Dokumentation<br />

ausführlich.<br />

Das Quellarchiv enthält außer Maildrop<br />

noch weitere interessante Tools wie beispielsweise<br />

Lockmail, das eine Mailbox<br />

während der Verarbeitung durch Maildrop<br />

sperrt. Mit dabei ist außerdem Mailbot,<br />

das sich für automatisch generierte<br />

Antworten eignet. Reformail beziehungsweise<br />

Reform<strong>im</strong>e empfehlen sich darüber<br />

hinaus zum Reformatieren von Text- und<br />

M<strong>im</strong>e-Inhalten.<br />

★★★★★ Maildrop ist ein mächtiges<br />

Tool, das eingehende Post zuverlässig<br />

filtert und weiterleitet. Interessierte<br />

Admins sollten eine großzügige Einarbeitungsphase<br />

einplanen. Die umfangreiche<br />

Dokumentation hilft.<br />

n<br />

Log Analyzer hilft dabei, <strong>Linux</strong>- und<br />

Windows-Protokolle zu verstehen, zeigt<br />

eine oder mehrere Logdateien übersichtlich<br />

strukturiert <strong>im</strong> Webbrowser an und<br />

bietet Funktionen zum Analysieren,<br />

Durchsuchen und Auswerten. Das Tool<br />

benötigt einen Webserver und PHP 5.<br />

Eine Datenbank ist nicht zwingend erforderlich,<br />

da das Programm die Logdateien<br />

<strong>im</strong> Textformat einliest.<br />

Nach dem Entpacken des Quellarchivs in<br />

das Dokumentenverzeichnis des Webservers<br />

ruft der Admin zur Konfiguration die<br />

Datei »install.php« <strong>im</strong> Browser auf. Das<br />

Skript fragt nach den Protokolldateien<br />

und möchte wissen, wie viele Einträge<br />

es pro Seite anzeigen soll. Danach ist Log<br />

Analyzer schon einsatzbereit.<br />

Zum Filtern reicht es, einen Suchbegriff<br />

ins Feld am oberen Rand einzugeben.<br />

Einige vordefinierte Filter sortieren nach<br />

Meldungen der letzten Stunde sowie der<br />

vergangenen 12 oder 24 Stunden. Sie<br />

blenden zudem Protokolle der letzten 7<br />

oder 31 Tage ein, nur Fehler oder Fehler<br />

und Warnungen. Eine Highlight-Funktion<br />

hebt Schlüsselwörter farblich hervor.<br />

Mehrere Begriffe gibt der Anwender<br />

durch Kommata getrennt ein.<br />

Log Analyzer aktualisiert die Gesamtübersicht<br />

in der Voreinstellung nicht<br />

automatisch. Über das Menü »Set auto<br />

reload« definieren Benutzer Upgrade-<br />

Intervalle. Auf Wunsch erzeugt das Tool<br />

Berichte <strong>im</strong> CSV- oder XML-Format sowie<br />

Statistiken. Letzteres erfordert das Paket<br />

»php5‐gd« auf dem Webserver, das ein<br />

Modul zum Generieren von Grafiken aus<br />

PHP-Skripten liefert.<br />

★★★★★ Log Analyzer bringt Übersicht<br />

in die Protokolldateien und punktet mit<br />

seinen Filter- und Suchoptionen. n<br />

Drukkar ist ein schlankes Blogprogramm<br />

und CMS, das in PHP 5 <strong>im</strong>plementiert<br />

ist und keine weiteren Abhängigkeiten<br />

besitzt. Die kompakte Engine benötigt<br />

wenig Systemressourcen, speichert alle<br />

Artikel als XML-Dateien und benötigt<br />

kein Datenbank-Backend. Die Software<br />

unterstützt die vereinfachte Auszeichnungssprache<br />

Markdown und erzeugt<br />

gültiges HTML.<br />

Auch die Konfigurationsdatei liegt <strong>im</strong><br />

XML-Format vor. Nach dem Entpacken<br />

des Archivs definieren Anwender in »config.xml«<br />

den Blognamen und die URL.<br />

Zudem geben sie die Verzeichnisse für<br />

Beiträge und Uploads an. Die Einrichtungsdatei<br />

enthält auch den gesalzenen<br />

Passwort-Hash. Standardkennwort und<br />

Salt-Wert lassen sich mit dem Skript »makepass.php«<br />

ändern. Auf dem Testsystem<br />

funktionierte dies nicht; erst ein händischer<br />

Aufruf der Funktion »hash_with_<br />

salt()« in einem einfachen PHP-Skript auf<br />

der Konsole schaffte Abhilfe.<br />

Um einen neuen Artikel zu schreiben,<br />

rufen Anwender das Skript »edit.php« <strong>im</strong><br />

Browser auf. Nach der Passworteingabe<br />

erscheint ein Formular, in das sie Titel<br />

und Text eintippen. Drukkar versteht<br />

Tags und erlaubt es, zusätzliche Dateien<br />

wie Bilder oder Mult<strong>im</strong>ediales hinzuzufügen.<br />

Ist das Standarddesign zu schlicht,<br />

modifizieren Nutzer mit CSS-Kenntnissen<br />

das Stylesheet »blog.css«. Fertige Blogbeiträge<br />

und hochgeladene Dateien verwaltet<br />

das Skript »files.php«.<br />

★★★★★ Ein kleines Blog ist mit Drukkar<br />

<strong>im</strong> Handumdrehen eingerichtet. Das<br />

Standardpasswort sollten Anwender vor<br />

dem Veröffentlichen unbedingt ändern –<br />

notfalls manuell. (U. Vollbracht/​hej) n


Aus dem Alltag eines Sysadmin: Backup2l<br />

I’ll be back-up<br />

Einführung 01/2014<br />

Sysadmin<br />

Im trauten He<strong>im</strong> rettet Sysadmin Charly seine Daten seit jeher mit Rsnapshot. Für Serverbackups soll das auch<br />

so bleiben, für die Desktop-PCs der Familie Kühnast hat er etwas Handlicheres gefunden. Charly Kühnast<br />

Inhalt<br />

72 Snapshots mit Virt-Manager<br />

Snapshots sind praktisch, doch stellte<br />

die Libvirt bislang keine entsprechenden<br />

GUI-Tools bereit. Mit Fedora 20 ist<br />

Besserung in Sicht: Die kleine Snapshot-<br />

Verwaltung kann sich zwar nicht mit<br />

Virsh messen, aber <strong>im</strong>merhin.<br />

Backup muss sein, auch bei Desktop-PCs,<br />

auch zu <strong>Haus</strong>e. In meinen vier Wände<br />

brauche ich aber kein professionelles<br />

Enterprise-Backup-Warehouse und verspüre<br />

auch keine Lust, die Lizenzkosten<br />

dafür zu zahlen. Ich sichere alles auf ein<br />

kleines Synology-NAS und dies wieder<br />

auf zwei große USB-Platten.<br />

Auf dem NAS habe ich ein Verzeichnis<br />

namens »linbackup« freigegeben, darunter<br />

liegt ein Unterverzeichnis für jeden<br />

zu sichernden Rechner – aktuell 14<br />

Stück. Die Kinder werden offenbar älter<br />

und beginnen wohl Hardware zu horten.<br />

Ich frag’ mich, von wem sie das haben.<br />

Ein Verzeichnis »gamelauncher« gibt es<br />

übrigens auch, dorthin sichere ich die<br />

Windows-Partition.<br />

Um das Backup selbst kümmert sich<br />

seit Neuestem Backup2l [1], das ich in<br />

den vergangenen Tagen als schlanke Alternative<br />

zu Rsnapshot [2] ausprobiert<br />

habe. Backup2l läuft Cron-gesteuert und<br />

legt eine konfigurierbare Anzahl inkrementeller<br />

Backups an. Dafür sind in der<br />

Konfigurationsdatei »backup2l.conf« drei<br />

Parameter zuständig.<br />

Der Autor<br />

Charly Kühnast administriert<br />

Unix-Syste me <strong>im</strong> Rechenzentrum<br />

Niederrhein. Zu seinen<br />

Aufgaben gehören Sicherheit<br />

und Verfügbarkeit der<br />

Firewalls und der DMZ.<br />

»MAX_LEVEL=3« best<strong>im</strong>mt<br />

die Anzahl der Ebenen und<br />

»MAX_PER_LEVEL=8« die<br />

inkrementellen Backups pro<br />

Ebene. Konkret macht Backup2l<br />

stündlich inkrementelle<br />

Backups, das ist die niedrigste<br />

Ebene, Level 3. Hat es davon<br />

acht beisammen (»MAX_PER_<br />

LEVEL«), fertigt es ein neues<br />

Level-2-Backup an, das alle<br />

Änderungen seit dem letzten<br />

Level-2-Backup speichert. Die<br />

Level-3-Backups werden gelöscht,<br />

und das Spiel beginnt<br />

von vorn.<br />

Sind auch acht Level-2-Backups<br />

beisammen, erstellt Backup2l<br />

ein neues Level-1-Backup<br />

– das ist eine Komplettsicherung.<br />

Mit »MAX_FULL«, dem dritten Parameter,<br />

kann ich festlegen, wie viele<br />

Vollbackups zeitgleich existieren dürfen.<br />

Rette sich, wer kann<br />

Was Backup2l genau sichert, lege ich per<br />

SRCLIST fest:<br />

SRCLIST=(/etc /root /home /var/ /usr/local)<br />

Dabei kann ich Ausnahmen definieren.<br />

Backup2l unterscheidet hier zwischen<br />

Dateien (»‐name«) und Verzeichnissen<br />

(»‐path«). Mehrere Ausnahmen lassen<br />

sich per »‐o« verketten:<br />

SKIPCOND=(‐path "*.nobackup*" ‐oU<br />

‐name "*.o")<br />

Im »BACKUP_DIR« teile ich Backup2l<br />

mit, wohin es sichern soll:<br />

BACKUP_DIR="/mnt/linbackup/funghi"<br />

Liegt das Zielverzeichnis wie bei mir auf<br />

einem Netzlaufwerk, muss der Benutzer<br />

natürlich dafür sorgen, dass es rechtzeitig<br />

Abbildung 1: Hier hat Backup2l eine differenzielle Level-3-Sicherung<br />

auf ein NAS absolviert, das an »/mnt« eingehängt ist.<br />

gemountet ist. Funghi ist in diesem Beispiel<br />

der Name meines Ubuntu-Testrechners.<br />

Ich benenne alle Desktop-<strong>Linux</strong>e<br />

nach Pizza-Sorten, die Server dagegen<br />

nach schottischen Inseln – in beiden Welten<br />

lauert keine große Gefahr, dass mir<br />

die Namen alsbald ausgehen.<br />

In der »backup2l.conf« gibt es zwei Abschnitte,<br />

»PRE_BACKUP« und »POST_<br />

BACKUP«, in denen ich Shellkommandos<br />

platzieren darf, die Backup2l vor und<br />

nach dem Backup-Lauf ausführt. Hier<br />

kann ich etwa dafür sorgen, dass best<strong>im</strong>mte<br />

Dienste während des Backups<br />

gestoppt werden.<br />

Am Ende teile ich dem Tool mit, dass<br />

mein Teil der Arbeit erledigt ist, indem<br />

ich »UNCONFIGURED« von »0« auf »UN-<br />

CONFIGURED=1« setze. Nun sind Funghi,<br />

Tonno & Co. außer Gefahr. (jk) n<br />

Infos<br />

[1] Backup2l: [http:// backup2l. sourceforge. net]<br />

[2] Rsnapshot: [http:// www. rsnapshot. org]<br />

www.linux-magazin.de<br />

71


Sysadmin<br />

www.linux-magazin.de Virt-Manager 01/2014<br />

72<br />

Snapshots erstellen mit Virt-Manager und Virsh<br />

Schnappschuss<br />

In der aktuellen Entwicklerversion kann der Virtual Machine Manager (Virt-Manager) endlich seine virtuellen<br />

Maschinen einfrieren und als so genannten Snapshot abspeichern. Das klappt auf zwei verschiedene Arten, die<br />

aber ihre Vor- und Nachteile haben. Mit der Kommandozeile gelingt das sicherer. T<strong>im</strong> Schürmann<br />

sich erstellte Snapshots wesentlich leichter<br />

voneinander unterscheiden lassen als<br />

an der Kommandozeile.<br />

Im Gegensatz zum CLI mussten die<br />

Tester des <strong>Linux</strong>-<strong>Magazin</strong>s am GUI allerdings<br />

noch einige Kinderkrankheiten<br />

diagnostizieren. So klappte die Managed-<br />

Save-Option nicht <strong>im</strong>mer, auch das Wiederherstellen<br />

machte noch hier und da<br />

Probleme. Allerdings existieren zu allen<br />

Fällen Bugreports <strong>im</strong> Fedora-Bugzilla bei<br />

Red Hat, sodass für die finale Version<br />

noch Hoffnung besteht.<br />

© Ivan Smuk, 123RF.com<br />

Fast alle Virtualisierungslösungen können<br />

ihre virtuellen Maschinen einfrieren<br />

und dann mit Haut und Haaren auf der<br />

Festplatte abspeichern. Dieses Vorgehen<br />

bezeichnet man als Schnappschuss. Nach<br />

dem Wiederherstellen eines solchen<br />

Snapshots arbeitet die virtuelle Maschine<br />

genau dort weiter, wo sie der Administrator<br />

be<strong>im</strong> Einfrieren unterbrochen hatte.<br />

Das Laden der Snapshots gelingt in der<br />

Regel deutlich flotter, als das System neu<br />

zu booten.<br />

Flotter Maschinenpark<br />

Mit einem Snapshot lässt sich nicht nur<br />

gezielt ein Ablauf unterbrechen, sondern<br />

auch nach einem Defekt oder einem<br />

Konfigurationsfehler schnell ein alter,<br />

funktionierender Systemzustand wiederherstellen.<br />

Entwickler können für ihre<br />

Tests mehrere Snapshots vorhalten und<br />

so schnell zwischen verschiedenen Konfigurationen<br />

hin und her wechseln.<br />

Alles eigentlich keine Magie, doch ließ die<br />

Libvirt bisher passende GUI-Tools dafür<br />

vermissen. Wer seine virtuellen Maschinen<br />

mit dem beliebten Virtual Machine<br />

Manager (VMM) oder Virt-Manager verwaltet,<br />

blickte lange Zeit in die Röhre. Bis<br />

einschließlich Version 0.10.0 konnte das<br />

GUI lediglich den Inhalt des Hauptspeichers<br />

der virtuellen Maschine einfrieren.<br />

Während der Entwicklung von Fedora<br />

20 rüstete jedoch der Entwickler Cole<br />

Robinson freundlicherweise eine kleine<br />

Snapshot-Verwaltung nach [1].<br />

Sie bietet zwar <strong>im</strong>mer noch nicht den<br />

Funktionsumfang des Kommandozeilen-<br />

Werkzeugs Virsh, für die meisten Anwendungsfälle<br />

sollten die Verwaltungsmöglichkeiten<br />

jedoch ausreichen. Im<br />

Gegenzug benötigt der Administrator<br />

keine kryptischen Kommandos mehr, in<br />

VMM genügt jetzt ein Mausklick, um einen<br />

neuen Snapshot anzufertigen. Als<br />

netten Bonus macht das GUI auch noch<br />

automatisch einen Screenshot, wodurch<br />

Nur mit Fedora 20<br />

Um die neue Snapshot-Verwaltung auszuprobieren,<br />

mussten Administratoren – jedenfalls<br />

bei Redaktionsschluss – entweder<br />

zu einer Vorabversion von Fedora 20 greifen<br />

oder den Quellcode aus dem VMM-<br />

Git-Repository selbst übersetzen [2]. In<br />

beiden Fällen erhielten sie lediglich eine<br />

Entwicklerversion von VMM. Verwirrung<br />

herrschte zudem bei der Nummerierung:<br />

Der VMM in der Beta von Fedora 20 trug<br />

die Versionsnummer 0.10.0-5, während<br />

die auf der VMM-Homepage angebotene<br />

Version 0.10.0 noch nicht mit Snapshots<br />

umgeben konnte.<br />

Eingelegtes<br />

Kurzzeitgedächtnis<br />

Um Snapshots mit VMM zu erstellen, ruft<br />

der Administrator zunächst die Detailansicht<br />

der virtuellen Maschine auf, etwa<br />

über »Bearbeiten | Details der virtuellen<br />

Maschine«. Dort lässt sich jetzt ein<br />

Snapshot auf zwei Arten anfertigen. Die<br />

erste Variante funktioniert auch unter älteren<br />

VMM-Versionen: Der Administrator<br />

aktiviert einfach den Menüpunkt »Virtu-


Abbildung 1: Be<strong>im</strong> Anlegen eines Snapshots muss man nur einen Namen vergeben,<br />

den Screenshot schießt VMM automatisch.<br />

elle Maschine | Herunterfahren | Speichern«.<br />

VMM friert jetzt die Maschine<br />

ein, schreibt den Hauptspeicherinhalt in<br />

das Festplatten<strong>im</strong>age und schaltet die virtuelle<br />

Maschine aus.<br />

Suspend<br />

Bei jedem erneuten Start der virtuellen<br />

Maschine (beispielsweise via »Virtuelle<br />

Maschine | Ausführen«) stellt VMM automatisch<br />

den alten Zustand wieder her. Der<br />

komplette Vorgang ist vergleichbar mit<br />

dem Stromsparmodus Suspend to Disk,<br />

wobei hier jedoch VMM beziehungsweise<br />

das von ihm beauftragte Libvirt die Sicherung<br />

erstellt. Das Betriebssystem in der<br />

virtuellen Maschine bekommt von dem<br />

ganzen Vorgang nichts mit.<br />

Das Speichern einer<br />

virtuellen Maschine<br />

hat jedoch<br />

gleich mehrere<br />

Nachteile: Zunächst<br />

friert VMM<br />

das System ein,<br />

nach der Sicherung<br />

läuft es nicht automatisch<br />

weiter. Arbeitet<br />

in der virtuellen<br />

Maschine ein<br />

Webserver, ist dieser<br />

also vorübergehend<br />

nicht mehr<br />

erreichbar.<br />

Darüber hinaus<br />

lässt sich <strong>im</strong>mer<br />

nur genau eine Sicherung<br />

erstellen, die zudem VMM direkt<br />

nach dem nächsten Start der virtuellen<br />

Maschine wieder löscht. Das Speichern<br />

einer virtuellen Maschine ist daher nur<br />

sinnvoll, wenn der Administrator einen<br />

Vorgang unterbrechen möchte – beispielsweise<br />

weil er eine Kopie der virtuellen<br />

Maschine anfertigt.<br />

Bitte recht freundlich<br />

Die mit Fedora 20 eingeführte Version von<br />

VMM kann jedoch auch das komplette<br />

System einschließlich der Festplatten <strong>im</strong><br />

laufenden Betrieb als Snapshot speichern<br />

(Variante 2). Jeder Schnappschuss erhält<br />

dabei einen eigenen Namen und lässt sich<br />

jederzeit und vor allem beliebig oft wiederherstellen.<br />

Alle derartigen Snapshots<br />

verwaltet der Admin hinter »Anzeigen |<br />

Snapshots«. In der standardmäßig noch<br />

leeren Liste am linken Rand sammelt<br />

VMM alle Snapshots.<br />

Um einen neuen Snapshot zu erhalten,<br />

klickt der Administrator auf das Plus-<br />

Symbol links unten in der Fensterecke.<br />

Im folgenden Formular muss er dem<br />

Snapshot lediglich noch einen Namen<br />

und bei Bedarf eine Beschreibung verpassen<br />

(Abbildung 1). Neben »Status«<br />

vermerkt VMM noch einmal, ob die virtuelle<br />

Maschine gerade ausgeschaltet ist<br />

oder läuft. Einen Screenshot erstellt VMM<br />

übrigens nur <strong>im</strong> letzten Fall. Nach einem<br />

Klick auf »Abschließen« lässt VMM von<br />

Libvirt den Snapshot erzeugen (Abbildung<br />

2).<br />

Stolpersteine<br />

Dabei speichert Libvirt innerhalb ihres<br />

Festplatten<strong>im</strong>age den aktuellen Zustand<br />

der virtuellen Festplatte, den kompletten<br />

Hauptspeicherinhalt und den Zustand<br />

der (virtuellen) Geräte der virtuellen Maschine.<br />

Solche Schnappschüsse heißen<br />

deshalb auch interne Snapshots. Damit<br />

das funktioniert, muss allerdings das<br />

Festplatten<strong>im</strong>age ein Dateiformat verwenden,<br />

das Snapshots unterstützt. Das<br />

ist derzeit bei Qcow2 und dessen designiertem<br />

Nachfolger QED der Fall, nicht<br />

jedoch etwa bei Images <strong>im</strong> Raw-Format<br />

oder aus Virtualbox, also solchen mit der<br />

Dateinamenserweiterung ».vdi«.<br />

Kann das Image nicht mit Snapshots<br />

umgehen, schaltet VMM die Snapshot-<br />

Verwaltung ab. In solchen Fällen sollte<br />

der Admin als pr<strong>im</strong>äre Fehlerquelle das<br />

Dateiformat überprüfen. In VMM erhält<br />

er die entsprechende Information, indem<br />

er »Anzeigen | Details« aufruft, die Festplatte<br />

anklickt (in der Regel »IDE Disk<br />

1«), dann »Erweiterte Optionen« öffnet<br />

und einen Blick auf das »Speicherformat«<br />

wirft. Alternativ lässt sich auch das<br />

Werkzeug »qemu‐<strong>im</strong>g« auf das Platten<strong>im</strong>age<br />

ansetzen (Abbildung 3):<br />

Virt-Manager 01/2014<br />

Sysadmin<br />

www.linux-magazin.de<br />

73<br />

qemu‐<strong>im</strong>g info /var/lib/libvirt/<strong>im</strong>ages/U<br />

platte.<strong>im</strong>g<br />

Abbildung 2: Die neue Snapshot-Verwaltung ist einfach, für die meisten Aufgaben aber ausreichend.<br />

Dass die Snapshots <strong>im</strong> Festplatten<strong>im</strong>age<br />

landen, ist zwar bequem, erschwert<br />

jedoch das Backup: Admins müssen<br />

zwangsweise das Image komplett sichern<br />

und dazu wiederum die virtuelle


Sysadmin<br />

www.linux-magazin.de Virt-Manager 01/2014<br />

74<br />

Abbildung 3: »qemu‐<strong>im</strong>g« liefert nicht nur das Dateiformat des Image (hier »qcow2«), sondern verrät auch,<br />

welche Snapshots darin gespeichert sind.<br />

Maschine vorübergehend anhalten. Be<strong>im</strong><br />

Klonen einer virtuellen Maschine klont<br />

VMM zudem die Snapshots nicht mit, es<br />

bleibt nichts übrig, als sie <strong>im</strong> Klon erneut<br />

anzulegen.<br />

Konnte VMM den Snapshot erstellen, erscheint<br />

er in der Liste am linken Rand.<br />

Klickt der Administrator dort einen<br />

Snapshot an, erfährt er auf der rechten<br />

Seite den Namen, das Erstellungsdatum<br />

und ob die virtuelle Maschine nach der<br />

Wiederherstellung des Snapshots läuft<br />

oder ausgeschaltet ist. Im Gegensatz<br />

zum Namen darf der Administrator die<br />

»Beschreibung« nachträglich anpassen.<br />

Unter der Beschreibung zeigt VMM noch<br />

den Screenshot an – vorausgesetzt es<br />

konnte einen solchen anfertigen.<br />

Wer einen Snapshot wiederherstellen<br />

möchte, markiert ihn in der Liste und<br />

klickt dann am unteren Fensterrand auf<br />

das Symbol mit dem weißen Dreieck und<br />

bestätigt die Rückfrage. Das Symbol mit<br />

dem roten Kreis und dem X würde hingegen<br />

den markierten Snapshot löschen.<br />

Die Liste mit den Snapshots sortiert VMM<br />

übrigens eigenmächtig alphabetisch aufsteigend.<br />

Tippse<br />

Mehr Funktionen und Möglichkeiten<br />

als VMM bietet das Kommandozeilen-<br />

Werkzeug Virsh, das ja auch schon seit<br />

Urzeiten mit Snapshots umgehen kann.<br />

Die grundlegende Bedienung von Virsh<br />

erläuterte ein Artikel <strong>im</strong> <strong>Linux</strong>-<strong>Magazin</strong><br />

Listing 1: Externe Snapshots mit Virsh<br />

[3]. Läuft die virtuelle Maschine namens<br />

»debian« unter KVM auf dem aktuellen<br />

Rechner, erzeugt der folgende Befehl<br />

von ihr einen Snapshot mit dem Namen<br />

»snaptest« und der Beschreibung »Ein<br />

erster Snapshot«:<br />

virsh ‐c qemu:///system snapshot‐create‐as U<br />

debian "snaptest" "Ein erster Snapshot"<br />

Ein derart über Virsh initiierter Snapshot<br />

taucht übrigens erst dann <strong>im</strong> VMM auf,<br />

wenn der Administrator diesen neu startet.<br />

Dabei reicht es nicht aus, nur die<br />

Detailansicht der virtuellen Maschine zu<br />

schließen.<br />

Im Gegensatz zu VMM lässt sich das<br />

Erzeugen eines Snapshots über Virsh<br />

noch beeinflussen: Steht hinter »debian«<br />

der Parameter »‐‐halt«, läuft die virtuelle<br />

Maschine nicht einfach weiter, sondern<br />

verbleibt nach dem Snapshot in einem<br />

inaktiven Zustand. Fügt der Admin ganz<br />

am Ende noch »‐‐disc‐only« hinzu, friert<br />

Virsh sogar nur den Stand der Festplatten<br />

ein.<br />

Welche Snapshots für die virtuelle Maschine<br />

»debian« vorliegen, verrät dieser<br />

Befehl (Abbildung 4):<br />

virsh ‐c qemu:///system snapshot‐list debian<br />

Den Snapshot namens »snaptest« stellt<br />

das Kommando<br />

virsh ‐c qemu:///system snapshot‐revert U<br />

debian snaptest<br />

wieder her. Analog löscht der folgende<br />

Befehl den Snapshot »snaptest«:<br />

01 virsh ‐c qemu:///system snapshot‐create‐as ‐‐domain debian "snap1" "Ein externer Snapshot" ‐‐diskspec<br />

hda,snapshot=external,file=/var/lib/libvirt/<strong>im</strong>ages/aenderungen‐snap1.qcow2 ‐‐memspec file=/var/lib/<br />

libvirt/<strong>im</strong>ages/ram‐snap1,snapshot=external<br />

virsh ‐c qemu:///system snapshot‐delete U<br />

debian snaptest<br />

Wie VMM fertigt auch Virsh mit dem<br />

Kommando »snapshot‐create‐as« einen<br />

internen Snapshot an. Alle relevanten<br />

Daten einschließlich des Hauptspeicherinhalts<br />

landen folglich <strong>im</strong> Festplatten<strong>im</strong>age<br />

der virtuellen Maschine.<br />

Virsh kann jedoch auch Snapshots in<br />

externen Dateien speichern. Einen solchen<br />

so genannten externen Snapshot<br />

mit dem Namen »snap1« erstellt das<br />

Kommando aus Listing 1. Der Inhalt des<br />

Hauptspeichers landet dabei in der Datei<br />

»ram‐snap1«. Das alte Festplatten<strong>im</strong>age<br />

friert Virsh zudem ein, alle Änderungen<br />

landen ab sofort in der Datei »aenderungen‐snap1.qcow2«.<br />

Das »hda« hinter<br />

»‐‐diskspec« steht für den Gerätenamen<br />

der Festplatte. Ihn verrät für die virtuelle<br />

Maschine »debian« der Befehl:<br />

virsh ‐c qemu:///system domblklist debian<br />

Er listet zu jedem in der virtuellen Maschine<br />

genutzten Image und Laufwerk<br />

die jeweiligen Gerätenamen auf (siehe<br />

Abbildung 5).<br />

Führungskraft<br />

Virsh kann nicht nur Snapshots, sondern<br />

auch wie VMM den aktuellen Zustand<br />

speichern. Für die laufende virtuelle Maschine<br />

namens »debian« erledigt dies:<br />

virsh ‐c qemu:///system managedsave debian<br />

Über das Kommando<br />

virsh ‐c qemu:///system managedsave‐remove U<br />

debian<br />

darf der Admin den gemerkten Zustand<br />

auch explizit verwerfen – VMM erlaubt<br />

dies nicht.<br />

Wer in der Manpage von Virsh stöbert,<br />

trifft dort neben »mangedsave« auch auf<br />

das Kommando »save«. Es sichert ebenfalls<br />

den RAM-Inhalt der virtuellen Maschine,<br />

<strong>im</strong> Gegensatz zu »managedsave«<br />

jedoch in einer externen Datei. In folgendem<br />

Beispiel würde sich Virsh den aktuellen<br />

Zustand der virtuellen Maschine<br />

»debian« in der Datei »/var/lib/libvirt/<br />

<strong>im</strong>ages/ram‐snap1« merken:<br />

virsh ‐c qemu:///system save debian U<br />

/var/lib/libvirt/<strong>im</strong>ages/ram‐snap1


Virt-Manager 01/2014<br />

Sysadmin<br />

Abbildung 4: Hier besitzt die virtuelle Maschine namens »vm1« fünf Snapshots.<br />

Den so gespeicherten Hauptspeicherinhalt<br />

stellt dann das Kommando<br />

virsh ‐c qemu:///system restore U<br />

/var/lib/libvirt/<strong>im</strong>ages/ram‐snap1<br />

wieder her. Den Namen der virtuellen<br />

Maschine muss der Admin hier weglassen.<br />

»save« und »restore« scheinen auf<br />

den ersten Blick vorteilhafter als »managedsave«<br />

zu sein. So lassen sich beliebig<br />

viele Sicherungen des Hauptspeicherinhalts<br />

anlegen und dann bei Bedarf eine<br />

von ihnen wiederherstellen. Dummerweise<br />

sichern Virsh beziehungsweise das<br />

<strong>im</strong> Hintergrund damit beauftragte Libvirt<br />

nicht die Festplatte.<br />

Wer also mit »save« sichert, dann mit<br />

dem System weiterarbeitet und irgendwann<br />

die Sicherung per »restore« wieder<br />

herstellt, sitzt vor einer virtuellen Maschine<br />

mit einem undefinierten Zustand.<br />

Im schl<strong>im</strong>msten Fall kommt es zu Datenverlust.<br />

»save« und »restore« eignen<br />

sich daher nur bei Livesystemen oder<br />

ähnlichen Sonderfällen.<br />

Gut dokumentiert und<br />

überfällig<br />

Sämtliche Virsh-Kommandos stellt die<br />

ausführliche Manpage von Virsh vor.<br />

Alle Snapshot-Kommandos sammelt sie<br />

<strong>im</strong> Abschnitt »Snapshot Commands« [4],<br />

»save«, »restore« und »managedsave« stehen<br />

unter »Domain Commands«.<br />

Die Unterstützung für Snapshots in VMM<br />

war längt überfällig, helfen sie doch in<br />

der Praxis dabei, das System nach einer<br />

(Fehl-)Konfiguration schnell, sicher und<br />

unkompliziert wieder in einen funktionierenden<br />

Zustand zu versetzen.<br />

Bei der Nutzung muss man allerdings<br />

ein paar Einschränkungen <strong>im</strong> Hinterkopf<br />

behalten. So fertigt VMM ausschließlich<br />

interne Snapshots an, die sich nicht<br />

ohne Weiteres als Systembackups eignen.<br />

VMM schöpft zudem längst nicht<br />

alle Möglichkeiten aus, die das von ihm<br />

gesteuerte Libvirt eigentlich anbietet. Externe<br />

Snapshots etwa beherrscht weiterhin<br />

nur Virsh. Bleibt zu hoffen, dass die<br />

VMM-Entwickler hier mittelfristig nachbessern.<br />

(mfe)<br />

n<br />

Infos<br />

[1] Changes/​Virt Manager Snapshots:<br />

[https:// fedoraproject. org/ w/ index. php?​<br />

title=Changes/ Virt_Manager_Snapshots&​<br />

oldid=355584]<br />

[2] VMM-Git-Repository: [https:// git.​<br />

fedorahosted. org/ git/ virt‐manager. git]<br />

[3] T<strong>im</strong> Schürmann, „Herr <strong>im</strong> Maschinenraum<br />

– virtuelle Maschinen fernsteuern mit<br />

Virsh“: <strong>Linux</strong>-<strong>Magazin</strong> 12/​11, S. 40<br />

[http:// www. linux‐magazin. de/ Ausgaben/​<br />

2011/ 12/ Virsh]<br />

[4] Virsh-Manpage:<br />

[http:// manpages. ubuntu. com/ manpages/​<br />

saucy/ en/ man1/ virsh. 1. html]<br />

www.linux-magazin.de<br />

75<br />

Abbildung 5: Das Virsh-Kommando »domblklist« zeigt Blockdevices an. In diesem Beispiel hat die virtuelle<br />

Maschine »vm1« zwei Laufwerke.


Forum<br />

www.linux-magazin.de Recht 01/2014<br />

76<br />

Linkedin greift mit Intro in E-Mails seiner Kunden ein<br />

Aufgehübscht<br />

Das Netzwerk Linkedin hat einen neuen, schicken Dienst für I-OS-Nutzer eingeführt. Intro ist ein E-Mail-Plugin,<br />

das Profil informationen aus Linkedin in E-Mails integriert, die der Nutzer von seinem iPhone aus verschickt.<br />

St<strong>im</strong>mt er zu, läuft die Kommunikation künftig und komplett über Linkedin-eigene Server. Sabine Sobola<br />

gänzt dieser um die bei Linkedin vorhandenen<br />

Profildaten des Antwortenden.<br />

Juristisch problematisch<br />

© ra2 Studio, Fotolia.com<br />

Beißenden Spott musste das soziale<br />

Netzwerk Linkedin 2012 über sich ergehen<br />

lassen, als es einem Hacker gelang,<br />

aus dem Netzwerk 6,5 Millionen Passwörter<br />

zu stehlen. Weil derlei mehrfach<br />

geschah, sprachen böse Zungen schon<br />

vom „wöchentlichen Linkedin Password<br />

Reminder“. Die Sicherheit der Linkedin-<br />

Server genießt nicht den besten Ruf.<br />

Introducing Intro<br />

Als sich der Dienst Ende Oktober 2013<br />

zudem einen neuen Dienst für I-OS-Nutzer<br />

leistete, brandete erneut Kritik auf.<br />

Das neue Produkt trägt die Bezeichnung<br />

Intro, es ergänzt und erweitert ein- und<br />

ausgehende Mails um gefällige Formatierungen<br />

und Inhalte. Be<strong>im</strong> Eingang einer<br />

Mail zeigt es etwa das Profil eines<br />

Linked in-Mitglieds an, inklusive dessen<br />

Foto und be<strong>im</strong> Dienst gespeicherter, aber<br />

in der ursprünglichen Mail nicht enthaltener<br />

Informationen (Abbildung 1).<br />

Fast unmittelbar nach seinem Erscheinen<br />

wurde in deutsch- und englischsprachigen<br />

Foren Kritik laut. Um die Profildaten<br />

der Nutzer einblenden zu können, lenkt<br />

Intro nämlich alle verschickten E-Mails<br />

auf den Linkedin-Server um. Dieser analysiert<br />

eingehende Mails und ergänzt<br />

sie um die passenden, bei Linkedin hinterlegten<br />

Daten. Erst dann wird die so<br />

veränderte E-Mail zum Empfänger weitergeleitet.<br />

Linkedin installiert dazu, <strong>im</strong>merhin nicht<br />

ohne Zust<strong>im</strong>mung des Anwenders, ein<br />

neues Profil auf dem iPhone, das ein<br />

neues E-Mail-Konto hinzufügt. Die App<br />

schlägt vor, dass jeder, der nicht jede Mail<br />

zwe<strong>im</strong>al bekommen will, seinen alten<br />

E-Mail-Account nach der Installation von<br />

Intro deaktivieren soll.<br />

Danach leitet das Smartphone alle IMAP-<br />

Anfragen nach eingehenden E-Mails über<br />

seinen Proxy, der sie wiederum an den<br />

eigentlichen IMAP-Server weiterleitet.<br />

Auch die Antwort des IMAP-Servers er-<br />

Das erste, sehr offensichtliche Problem<br />

in diesem Zusammenhang betrifft die<br />

Sicherheit: Auf Inhalte von unverschlüsselten<br />

E-Mails haben unberechtigte Dritte<br />

leicht Zugriff. Gehe<strong>im</strong>haltungsbedürftige<br />

E-Mails ungesichert zu versenden birgt ja<br />

generell rechtliche Probleme, vor allem<br />

aus Sicht des Datenschutzes. Bei Intro<br />

geht es darüber hinaus aber auch um<br />

dieselben rechtlichen Probleme wie be<strong>im</strong><br />

Cloud Computing.<br />

Einen wichtigen Punkt hat der Anbieter<br />

<strong>im</strong>merhin richtig gemacht: Er holt sich<br />

die Zust<strong>im</strong>mung zu dieser Umleitung der<br />

Mail per Opt-In von den Nutzern ein.<br />

Wer Intro installiert, wird aufgefordert,<br />

die geänderten Datenschutzregeln etwa<br />

<strong>im</strong> Pledge of Privacy zu akzeptieren. Der<br />

Dialog informiert den Kunden auch explizit<br />

über die Umleitung auf die Mailserver<br />

von Linked in, eigentlich vorbildlich.<br />

Setzt ein Mitarbeiter, der Mitglied bei<br />

Linked in ist, das E-Mail-Plugin bei einem<br />

iPhone ein, das auf Unternehmensdaten<br />

zugreift, dann könnte das Unternehmen<br />

mit Problemen konfrontiert werden. Zuerst<br />

wäre es der Schutz personenbezogener<br />

Daten – und auch hier gelten die<br />

selben Best<strong>im</strong>mungen wie be<strong>im</strong> Cloud<br />

Computing (Abbildung 2).<br />

Wenn da von rechtlichen Problemen die<br />

Rede ist, müssen die Beteiligten <strong>im</strong>mer<br />

zuallererst klarstellen, ob es sich um Private<br />

oder um Public Clouds handelt. Nur<br />

<strong>im</strong> zweiten Fall werden die zurzeit so heftig<br />

diskutierten datenschutzrechtlichen<br />

Probleme tatsächlich relevant, da sich<br />

die Unternehmen bei privaten Wolken


eliebig gut abschotten können, genauso<br />

wie das bislang in klassischen Rechenzentren<br />

der Fall war. Notwendig ist hier<br />

lediglich ein gutes und funktionierendes<br />

IT-Security-Management, es ändert sich<br />

also nicht viel.<br />

SaaS, IaaS, PaaS<br />

Anders <strong>im</strong> zweiten Fall: Bei Public-Cloud-<br />

Anbietern wie Amazon, Apple, Facebook,<br />

Google, IBM oder eben auch Linkedin<br />

gibt es drei Ebenen des Cloud Computing,<br />

die zu betrachten sind: Zum einen die<br />

Nutzung von Softwareleistungen, beispielsweise<br />

Softwareapplikationen übers<br />

Internet (Software as a Service, SaaS),<br />

das Bereitstellen von Plattformen <strong>im</strong> Internet<br />

(Plattform as a Service, PaaS), sowie<br />

das Bereitstellen von Rechnerleistungen<br />

und Speicherplatz (Infrastructure as<br />

a Service, IaaS).<br />

Speziell mittlere und große Unternehmen<br />

setzen gerne SaaS ein, um dynamisch auf<br />

durch von Kunden erzeugte Spitzenlasten<br />

reagieren zu können, die Stichworte lauten<br />

Skalierbarkeit (Out- und Upscaling)<br />

und Flexibilität.<br />

Auch die Angebote kostenloser E-Mail-<br />

Provider verstehen Juristen als Public<br />

Cloud. Im Fall von Linkedin handelt es<br />

sich schlicht um einen Weiterleitungsdienst,<br />

der eben E-Mails mit Daten aus<br />

den Linkedin-Profilen anreichert. Ein<br />

grundsätzliches datenschutzrechtliches<br />

Problem birgt die Tatsache, dass es sich<br />

bei solchen SaaS-Anwendungen dann<br />

<strong>im</strong>mer um Auftragsdatenverarbeitungen<br />

nach § 11 BDSG handelt, sobald personenbezogene<br />

Daten in der Cloud zur Weiterverarbeitung<br />

landen.<br />

Eine Auftragsdatenverarbeitung <strong>im</strong> Sinne<br />

des BDSG liegt nämlich vor, wenn eine<br />

andere Stelle mit der Erhebung, Verarbeitung<br />

oder Nutzung von personenbezogenen<br />

Daten beauftragt wird. Demnach<br />

gelten die Regelungen des § 11 Abs. 1<br />

BDSG für jedes Unternehmen, das personenbezogene<br />

Daten auf Cloudanbieter<br />

überträgt – explizit auch dann, wenn<br />

Dienstleister nur E-Mails mit Inhalten<br />

anreichern, sogar wenn dies <strong>im</strong> Rahmen<br />

technischer Wartungsarbeiten erfolgt<br />

(zum Beispiel bei der Spamabwehr).<br />

Auftraggeber verantwortlich<br />

Kernaussage des § 11 BDSG ist: Der Auftraggeber,<br />

also das Unternehmen, das<br />

die Daten vom Kunden zur Speicherung,<br />

Änderung oder Zurverfügungstellung best<strong>im</strong>mter<br />

Dienste in die Cloud gibt, bleibt<br />

für das Einhalten der Datenschutzbest<strong>im</strong>mungen<br />

verantwortlich, wozu auch das<br />

Sicherstellen der Vertraulichkeit und der<br />

Integrität der Daten gehört.<br />

Ob das Einhalten der Vorgaben des § 11<br />

BDSG überhaupt noch möglich ist, wenn<br />

ein Unternehmen<br />

weltweit verfügbare<br />

Rechnerkapazitäten<br />

nutzt oder<br />

auch Software-Anwendungen<br />

wie das automatisierte Anreichern<br />

von E-Mails mit Profildaten, ist<br />

fraglich – aus rechtlicher Sicht ist diese<br />

Frage derzeit sicher zu verneinen. Der<br />

Versuch scheitert spätestens an der vorausgesetzten<br />

Überprüfbarkeit. So genannte<br />

Audits be<strong>im</strong> Cloudanbieter müssten<br />

jederzeit möglich sein und die Einhaltung<br />

der Best<strong>im</strong>mungen nachweisbar<br />

gewährleisten.<br />

Schl<strong>im</strong>mer noch: Der Auftraggeber dürfte<br />

in aller Regel in dem Moment, in dem<br />

er die personenbezogenen Daten in die<br />

Cloud gibt, nicht mehr Herr seiner Daten<br />

sein, was aber der § 11 BDSG verlangt.<br />

Ein Unternehmen, das Mitarbeiter hat,<br />

die geschäftliche Mails über Intro laufen<br />

lassen, begeht folglich einen Verstoß<br />

gegen den § 11 und riskiert, sollte eine<br />

Datenschutz-Aufsichtsbehörde davon<br />

Kenntnis erlangen, sogar Bußgelder bis<br />

zu 300 000 Euro.<br />

Noch mehr Probleme<br />

Damit nicht genug: Neben den personenbezogenen<br />

Daten gibt es zudem gesetzliche<br />

und vertragliche Vorgaben, die ein<br />

Unternehmen zum Schutz seines Knowhows<br />

und zur Gehe<strong>im</strong>haltung unternehmenskritischer<br />

Informationen zwingen.<br />

Wer zum Schutz solcher Daten verpflichtet<br />

ist, etwa der IT-Leiter, der IT-Sicherheitsbeauftragte,<br />

der Datenschutzbeauftragte<br />

oder generell Personen mit Verantwortung<br />

für Inhalte oder die technische<br />

Infrastruktur in Unternehmen, definiert<br />

sich in einer Art Garantenstellung als für<br />

den Schutz der Daten zuständig. E<br />

Recht 01/2014<br />

Forum<br />

www.linux-magazin.de<br />

77<br />

© blog.linkedin.com<br />

© Sergey Nivens, 123RF.com<br />

Abbildung 1: In seinem Blog berichtete Linkedins Intro-Chef Rahul Vohra am 23.<br />

Oktober über die Features des neuen App-Produkts „Intro“. Bereits drei Tage<br />

später musste Linkedin an gleicher Stelle beschwichtigend eingreifen.<br />

Abbildung 2: Bei Linkedin Intro gelten die gleichen Best<strong>im</strong>mungen wie be<strong>im</strong><br />

Cloud Computing, denn der Dienst gilt ebenfalls als externe Datenverarbeitung.<br />

Da greift § 11 BDSG, doch dessen Einhaltung kann der Admin nicht garantieren.


Forum<br />

www.linux-magazin.de Recht 01/2014<br />

78<br />

Bei einem Missbrauch oder<br />

Abhandenkommen der Daten<br />

durch unbefugte Dritte, kann<br />

der in einem Unternehmen<br />

Verantwortliche durch sein<br />

Unterlassen für die unerlaubte<br />

Handlung mitverantwortlich<br />

gemacht werden. Das Unternehmen<br />

selbst haftet gegenüber<br />

Dritten in solchen Fällen<br />

nach den allgemeinen zivilrechtlichen<br />

Regeln.<br />

Das erklärt am besten ein konkretes<br />

Beispiel: Der IT-Dienstleister<br />

A hat einen Kunden,<br />

der in der Versicherungsbranche<br />

arbeitet. Unternehmen A<br />

verwaltet die IT-Infrastruktur<br />

für das Versicherungsunternehmen<br />

und steht mit der IT-<br />

Abteilung und der Geschäftsleitung in<br />

E-Mail-Kontakt. Ein Mitarbeiter bei A hat<br />

einen Account bei Linkedin und arbeitet<br />

mit einem iPhone, er ist möglicherweise<br />

auch mit Mitarbeitern des Versicherungsunternehmens<br />

vernetzt. Deren Mailverkehr<br />

würde bei einer Installation von<br />

Intro über die Mailserver von Linked in<br />

umgeleitet werden.<br />

Fahrlässigkeit zweifellos<br />

Erleidet Linkedin einen Datenverlust oder<br />

wird der Anbieter wie so oft in der Vergangenheit<br />

zum Opfer eines Angriffs und<br />

entsteht dadurch Schaden – und sei es<br />

auch „nur“ ein Imageschaden –, dann<br />

müsste A dafür gegenüber dem Kunden<br />

haften. Die dafür <strong>im</strong> Weiteren notwendigen<br />

Voraussetzungen, nämlich das Vorliegen<br />

eines fahrlässigen Verhaltens und<br />

einer Kausalität zwischen diesem Verhalten<br />

und dem eingetretenen Schaden,<br />

dürfte <strong>im</strong> Fall der App auf jeden Fall zu<br />

bejahen sein (Abbildung 3).<br />

Inhaltlich sind hier zum Beispiel Verletzungen<br />

des Urheberrechts denkbar, weil<br />

urheberrechtlich geschützte Inhalte abgefangen<br />

und unberechtigt genutzt werden.<br />

In vertragsrechtlicher Hinsicht könnten<br />

Inhalte von Vereinbarungen ausgespäht<br />

und missbraucht werden.<br />

Sogar strafrechtlich käme eine Haftung<br />

einzelner Personen in Betracht, wenn sie<br />

als Garant für die Sicherheit von Inhalten<br />

verantwortlich sind und dann in einer<br />

Form des Unterlassens (Unterlassen<br />

© alphaspirit, 123RF.com<br />

Abbildung 3: Fahrlässig grundlegende Sicherheitsvorgaben missachtet – auf<br />

diesen Vorwurf kann sich einstellen, wer Intro mit sensiblen Mails nutzt.<br />

von Sicherheitsmaßnahmen) gehe<strong>im</strong>haltungsbedürftige<br />

Daten Dritten zur Verfügung<br />

gestellt haben.<br />

Privat und geschäftlich?<br />

Der private Nutzer, der seine Daten durch<br />

die Installation von Intro über den Proxyserver<br />

von Linkedin schickt, könnte insofern<br />

Probleme bekommen, als mit seinen<br />

Daten Missbrauch betrieben werden<br />

könnte. Er muss sich <strong>im</strong> Klaren darüber<br />

sein, dass das Netzwerk künftig seinen<br />

gesamten Mailverkehr mitlesen, auswerten<br />

und bearbeiten kann. Linked in<br />

erklärt zwar, dass E-Mails nach dem<br />

Versand sofort vom Linkedin-Server gelöscht<br />

werden, kontrollieren lässt sich<br />

diese Aussage aber nicht.<br />

Sollte der Nutzer zudem sein iPhone auch<br />

für geschäftliche Zwecke nutzen, muss er<br />

in jedem Fall vorab mit der IT-Abteilung<br />

seines Arbeitgebers klären, ob sie einer<br />

Nutzung von Intro zust<strong>im</strong>men kann. Einem<br />

Arbeitnehmer sollte klar sein, dass<br />

er bei Nutzung von Intro den gesamten<br />

Mailverkehr über ein amerikanisches<br />

Unternehmen laufen lässt. Hier gibt es<br />

keinen Schutz der Daten außer dem Safe-<br />

Harbour-Abkommen, das derzeit heftig<br />

wegen seiner Schwächen kritisiert und<br />

grundsätzlich infrage gestellt wird.<br />

Es ist davon auszugehen, dass kein verantwortungsbewusster<br />

IT-Verantwortlicher<br />

eines Unternehmens einer Installation<br />

von Intro bei einem iPhone, über<br />

das geschäftliche Informationen laufen,<br />

zust<strong>im</strong>men kann. Das gilt<br />

erst recht, weil sensible, unternehmenskritische<br />

oder<br />

personenbezogene Daten in<br />

der Public Cloud nichts zu<br />

suchen haben. Liegen Daten<br />

dieser Kategorien vor, scheint<br />

eine Installation von Intro<br />

auch rechtlich nicht zu verantworten.<br />

Fazit: Nur privat!<br />

Übrig bleibt damit für den<br />

Dienst nur der rein private E-<br />

Mail-Verkehr. Aber auch hier<br />

sollte sich jeder darüber <strong>im</strong><br />

Klaren sein, dass, wie <strong>im</strong>mer<br />

bei Informationen, die über<br />

amerikanische soziale Netzwerke<br />

laufen, rechtlich nicht gesichert<br />

ist, was mit den Inhalten der Mails wirklich<br />

passiert. Linkedin sichert hier zwar<br />

einen vertraulichen Umgang mit den Daten<br />

zu. Allerdings ist dieser Anspruch in<br />

der Praxis nicht durchsetzbar – also nicht<br />

einklagbar.<br />

Theoretisch wäre es zwar möglich,<br />

Linked in in Deutschland wegen eines<br />

Verstoßes gegen die Datenschutzrechte<br />

zu verklagen. Spätestens die Vollstreckung<br />

des Anspruchs in den USA scheitert<br />

aber. Jeder Anspruch, der nicht einklagbar<br />

oder nicht vollstreckbar ist, bietet<br />

keinen Schutz. Und die schockierende<br />

(Un)Sicherheit der Linkedin-Server stand<br />

ja schon mehrfach <strong>im</strong> peinlichen Fokus<br />

der Öffentlichkeit. (mfe)<br />

n<br />

Infos<br />

[1] Linkedin Intro: [http:// blog. linkedin. com/​<br />

2013/ 10/ 23/ announcing‐linkedin‐intro/]<br />

[2] BDSG: [http:// www. gesetze‐<strong>im</strong>‐internet.​<br />

de/ bdsg_1990/]<br />

Die Autorin<br />

Sabine Sobola ist Partnerin<br />

der Regensburger Anwaltskanzlei<br />

Paluka Sobola und<br />

Partner und betreut dort<br />

die Bereiche IT- und Internetrecht,<br />

das Vertragsrecht und den gewerblichen<br />

Rechtsschutz. Neben ihren Lehraufträgen<br />

für IT-Recht an verschiedenen Hochschulen leitet<br />

sie eine Vielzahl von Workshops zum Thema<br />

Recht <strong>im</strong> Internet.


Forum<br />

www.linux-magazin.de Bücher 01/2014<br />

80<br />

Ein Band über performante Webanwendungen sowie Koflers Handbuch<br />

Tux liest<br />

Performanceprobleme bei einer Webanwendung können sich an vielen Stellen verstecken. Ein Buch aus dem<br />

Dpunkt-Verlag klopft sie alle gründlich ab und schlägt Lösungen vor. Daneben ist Michael Koflers dickes <strong>Linux</strong>-<br />

Handbuch erstmals bei Galileo Computing erschienen. Mathias Huber<br />

Ist eine Website langsam, meckern die<br />

Benutzer und potenzielle Kunden ziehen<br />

weiter. Abhilfe möchte das Buch „Performante<br />

Webanwendungen“ von Daniel<br />

Kuhn und Michael Raith schaffen.<br />

Gezielt opt<strong>im</strong>ieren<br />

Der Band wendet sich an Webentwickler<br />

und Sysadmins und n<strong>im</strong>mt sie mit<br />

auf eine Tour durch alle relevanten Anwendungsschichten<br />

und Subsysteme.<br />

Statt einfach eine SSD in den Server zu<br />

stecken, forschen die Autoren zunächst<br />

nach, wo es klemmt.<br />

Schon diese Diagnose zeigt, dass Kuhn<br />

und Raith vom Fach sind. Nach grundlegenden<br />

Überlegungen zu den Messgrößen<br />

für Webserver, Datenbank und Cache<br />

stellen sie Open-Source-Tools wie Apachebench,<br />

Jmeter und Tsung vor. Auch<br />

Monitoring-Tools wie Collectd, Cacti,<br />

Munin und das proprietäre New Relic dienen<br />

ihnen zur Analyse. Der Server-seitige<br />

Anwendungscode muss sich Prüfungen<br />

durch Profiler wie Xdebug unterziehen,<br />

die Darstellung <strong>im</strong> Browser untersuchen<br />

Firebug und Selenium.<br />

Auf das Ermitteln der Engstellen folgt<br />

das Ausbessern. Das Datenmodell lässt<br />

sich möglicherweise opt<strong>im</strong>ieren, genauso<br />

die Datenbankabfragen, vielleicht mittels<br />

Stored Procedures. Daneben behandelt<br />

Info<br />

D. Kuhn, M. Raith:<br />

Performante Webanwendungen<br />

Dpunkt, 2013<br />

320 Seiten<br />

37 Euro (E-Book 30 Euro)<br />

ISBN 978-3-86490-008-2<br />

das Buch Skalierung, Partitionierung und<br />

Sharding von Datenbanken und zeigt sich<br />

mit Mongo DB up to date.<br />

Der nächste Abschnitt n<strong>im</strong>mt das Thema<br />

Caching gründlich durch, von Bytecode-<br />

Caches für Ruby und PHP, über Memcached<br />

und reverse Proxyserver bis zu<br />

den unterschiedlichen Cache-Arten in<br />

modernen Webbrowsern.<br />

Auch be<strong>im</strong> Ausliefern der Daten gibt<br />

es Opt<strong>im</strong>ierungspotenzial: Die Anzahl<br />

der einzelnen HTTP-Anfragen lässt sich<br />

durch Zusammenfassen von HTML, CSS<br />

und Javascript verringern, Webserver<br />

können kompr<strong>im</strong>ieren und Daten lassen<br />

sich auf Subdomains verteilen. Zudem<br />

gibt es die Möglichkeit, ein Content Delivery<br />

Network einzusetzen oder alternative<br />

Protokolle wie Websockets oder<br />

Googles SPDY zu verwenden. An den<br />

letzten beiden Beispielen zeigt sich, wie<br />

aktuell dieses Buch ist.<br />

Auf rund 300 Seiten arbeiten die Autoren<br />

ein großes Feld ab. Stellenweise mag der<br />

Tiefgang fehlen, doch der Leser erhält<br />

Fingerzeige, wo er sich näher informieren<br />

kann. Selten dürfte ein einzelnes<br />

Buch derart großes Potenzial besitzen,<br />

dem Unternehmen Kosten zu sparen und<br />

seine Kunden glücklicher zu machen.<br />

Galileo-Kofler<br />

Schon seit 1996 gibt es das <strong>Linux</strong>-Handbuch<br />

des Österreichers Michael Kofler.<br />

Der dicke Band wird unter <strong>Linux</strong>ern<br />

kurz und liebevoll „Der Kofler“ genannt.<br />

Im Jahr 2013 hat allerdings sein Verlag<br />

Addison-Wesley die deutschsprachigen<br />

Computerbücher eingestellt. Kofler<br />

schreibt jetzt bei Galileo Computing, wo<br />

sein <strong>Linux</strong>-Buch nun erstmals erschienen<br />

ist. Blickt man ins Inhaltsverzeichnis, so<br />

sieht der erste Galileo-Kofler der vorhergegangenen<br />

Auflage sehr ähnlich. Die<br />

Installationsanleitungen sind sinnvollerweise<br />

nach vorne gerückt, dazugekommen<br />

ist Ubuntu Server. In der Abteilung<br />

Desktopumgebungen ist Ubuntus Unity<br />

ein berechtigter Neuzugang, <strong>im</strong> Netzwerk-Kapitel<br />

IPv6.<br />

Mit 60 Seiten zum Raspberry Pi entspricht<br />

die neue Ausgabe zudem der Begeisterung<br />

der <strong>Linux</strong>-Community für den preiswerten<br />

Minicomputer. Kofler behandelt das<br />

Modell B, erklärt die Unterschiede zum<br />

Desktop-PC und führt den Leser durch<br />

die Raspian-Installation. Kurz zeigt der<br />

Autor den Einsatz als Mediacenter mit<br />

XBMC und legt mit einer LED-Steuerung<br />

die Grundlagen für weitere Hardware-<br />

Basteleien.<br />

Daneben bleiben die vielen bewährten<br />

Kapitel auf den über 1400 Seiten. Der<br />

Kofler bleibt sich auch <strong>im</strong> <strong>Haus</strong>e Galileo<br />

treu. Es gibt kaum ein anderes Buch,<br />

das gleichermaßen bei der ersten <strong>Linux</strong>-<br />

Installation neben Windows hilft, in die<br />

Bedienung von V<strong>im</strong> und Emacs einführt,<br />

die Konfiguration von NFS und Samba<br />

erklärt und auch noch beschreibt, wie der<br />

Firefox-Nutzer das lästige US-Papierformat<br />

Letter be<strong>im</strong> Drucken loswird. Dürfte<br />

man einem <strong>Linux</strong>-Einsteiger nur ein einziges<br />

Buch in die Hand drücken, sollte es<br />

der Kofler sein.<br />

n<br />

Info<br />

Michael Kofler:<br />

<strong>Linux</strong>: Das umfassende<br />

Handbuch<br />

Galileo Computing, 2013<br />

1440 Seiten<br />

50 Euro (Online-Ausgabe<br />

45 Euro)<br />

ISBN 978-3-8362-2591-5


Forum<br />

www.linux-magazin.de Leserbriefe 01/2014<br />

82<br />

Auf den Punkt gebracht<br />

Leserbriefe<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-­magazin.­de].<br />

Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

Perl-Frameworks<br />

11/​13, S. 21: Zwei Punkte zur „Reifeprüfung<br />

fürs Web“: Zum einen wirken<br />

die vorgestellten Lösungen in Relation<br />

zur s<strong>im</strong>plen Aufgabe fast schon overengineered.<br />

Ein komplettes CMS mit Datenbankanbindung<br />

und Cronjob zum Befüllen<br />

derselben, das ist schon mit großen<br />

Kanonen geschossen.<br />

Zum anderen fehlt mir leider Perl in<br />

der Reihe der Programmiersprachen.<br />

Im Perl-Umfeld gibt es Frameworks wie<br />

Catalyst und Dancer, die es mit Rails<br />

aufnehmen können. Allerdings gibt es<br />

mit Mojolicious und dem kleinen Bruder<br />

Mojolicious::Lite auch ein Framework,<br />

das die Programmieraufgabe mit erheblich<br />

weniger Aufwand lösen kann. Unter<br />

[https://​­github.​­com/​­augsburgpm/​<br />

­strassenfeste] finden Sie ein Skript, das<br />

die gestellte Aufgabe in knapp 180 Zeilen<br />

inklusive Templates bewältigt.<br />

Ulrich Reining, per <strong>Linux</strong>-<strong>Magazin</strong> Online<br />

Memory Management<br />

09/​13, S. 30: Die Artikelserie zu C++11<br />

ist einer der Hauptgründe, warum ich das<br />

<strong>Linux</strong>-<strong>Magazin</strong> wieder abonniert habe.<br />

Planen Sie, auch einen Einblick in das<br />

neue Memory Management Model von<br />

C++11 zu geben?<br />

Jörg Böhme, per Mail<br />

Auch wenn das C++11-Memory-Modell ein<br />

relativ fortgeschrittenes Konzept darstellt,<br />

will ich gerne einen einfachen Einblick<br />

geben. Ich denke, jeder C++-Programmierer<br />

sollte zumindestens davon gehört<br />

haben, um die Herausforderungen von<br />

Multithreading-Programmierung besser<br />

zu verstehen. Für Java-Programmierer<br />

ist es natürlich auch interessant, da es<br />

auf den Erfahrungen des Java-Memory-<br />

Modells basiert. (Rainer Gr<strong>im</strong>m) n<br />

Errata<br />

12/​13, S. 30: Zum Beitrag „Neue Rolle“:<br />

Rudolph Bott von Sipgate weist darauf hin,<br />

dass der „Admin of the Week“ explizit von<br />

Kanban und Story-Arbeit ausgenommen ist.<br />

Nur so kann er spontan auf alle Anfragen<br />

reagieren und dafür sorgen, dass der Rest<br />

des Teams nicht <strong>im</strong> Kanban-Workflow unterbrochen<br />

wird.<br />

12/​13, S. 34: Im Artikel „Handgemachte IT“<br />

haben sich zwei Fehler eingeschlichen: Daniel<br />

Schauenberg ist nicht Admin, sondern<br />

Software Engineer be<strong>im</strong> Unternehmen Etsy.<br />

Administratoren dort nehmen an drei bis fünf<br />

Meetings in der Woche teil, nicht am Tag.


Know-how<br />

www.linux-magazin.de NFtables 01/2014<br />

84<br />

Packet Filtering mit NFtables<br />

Neue Türpolitik<br />

Seit knapp 13 Jahren macht IPtables den Türsteher für <strong>Linux</strong> und kontrolliert den Fluss der ein- und ausgehenden<br />

Netzwerkpakete mit Hilfe der Netfilter-Module. Mit dem anvisierten Einzug von NFtables in den Kernel<br />

bahnt sich jedoch eine Wachablösung an, die IPtables womöglich den Job kostet. Martin Loschwitz<br />

NFtables gehört haben. Dieser Artikel<br />

fragt darum, was die Software ausmacht<br />

und wieso sie besser als IPtables ist.<br />

Revolution auf Raten<br />

© Wattana Tasanart, 123RF.com<br />

Firewalls sind keine Software, sondern<br />

ein umfassendes Konzept – das beteuern<br />

jedenfalls die Konstrukteure von Sicherheitslösungen<br />

<strong>im</strong>mer wieder. Und ein<br />

gewichtiger Bestandteil dieses Konzepts<br />

sind die Paketfilter (Packet Filter): Das<br />

sind Werkzeuge, die es Administratoren<br />

ermöglichen, auf Kernelebene best<strong>im</strong>mten<br />

Netzwerkpaketen den Zutritt zum<br />

System zu erlauben oder zu verbieten,<br />

was sie gewissermaßen zu Türstehern<br />

von <strong>Linux</strong> macht.<br />

Startschuss: Kernel 3.13<br />

Jene Tools haben eine wechselhafte<br />

Geschichte hinter sich – zwischen den<br />

<strong>Linux</strong>-Versionen 2.0 und 2.4 wechselte<br />

der Kernel gleich zwe<strong>im</strong>al das Standardwerkzeug<br />

zum Filtern von Paketen: Kam<br />

in <strong>Linux</strong> 2.0 noch IPfwadm zum Einsatz,<br />

setzte Version 2.2 lieber auf IPchains. In<br />

<strong>Linux</strong> 2.4 hielt dann schließlich IPtables<br />

(Abbildungen 1 und 2) Einzug in den<br />

Kernel, das die Entwickler seither kontinuierlich<br />

verbessert und funktional ausgebaut<br />

haben. Bis heute bewährt sich<br />

IPtables als alleiniger Standardfilter für<br />

Pakete unter <strong>Linux</strong>.<br />

Mit der <strong>Linux</strong>-Version 3.13 könnte sich<br />

jedoch eine Wachablösung anbahnen:<br />

Die Maintainer des Paketfilters NFtables<br />

[1] haben offiziell beantragt [2], ihre Lösung<br />

in den Mainline-Kernel aufzunehmen.<br />

Zwar steht der Erfolg dieser Bestrebung<br />

bei Redaktionsschluss noch nicht<br />

fest, weil der Release-Zyklus für <strong>Linux</strong><br />

3.13 noch nicht begonnen hat. Doch dass<br />

<strong>Linux</strong>-Chef Torvalds dem Ansinnen Folge<br />

leisten könnte, gilt als ziemlich wahrscheinlich.<br />

Sollte NFtables den Einzug<br />

in den Kernel schaffen, dürfte IPtables<br />

keine glorreiche Zukunft mehr haben:<br />

Nicht nur kann NFtables die bisherige<br />

Lösung vollständig ersetzen, es hat sogar<br />

deutlich mehr drauf.<br />

Frappierend ist, dass selbst viele eingefleischte<br />

Admins noch nichts von<br />

Ein Rückblick auf den Werdegang der<br />

diversen Paketfilter unter <strong>Linux</strong> führt<br />

schnell vor Augen, dass jeder neu eingeführte<br />

Filter stets das direkte Resultat einer<br />

Unzufriedenheit mit der bestehenden<br />

Lösung war. Der Paketfilter IPchains bietet<br />

sich dafür wunderbar als Beispiel an.<br />

Sein Vorgänger IPfwadm war <strong>im</strong> Grunde<br />

eine Portierung des IPfw-Werkzeugs aus<br />

dem BSD-Universum und verfügte nicht<br />

über besonders ausgefeilte Fähigkeiten.<br />

Welche Netzwerkpakete rein und wieder<br />

raus durften, ließ sich noch einstellen,<br />

aber nach diversen fortgeschrittenen Features<br />

suchten Administratoren damals<br />

vergeblich.<br />

Der Einsatz von Konditionen blieb in<br />

der Ägide von IPfwadm beispielsweise<br />

Wunschdenken – Konstrukte wie „Falls<br />

ein Paket von der IP 192.168.0.1 kommt,<br />

springe zur Kette XYZ“ waren daher nicht<br />

umsetzbar. Auch Quality of Service, also<br />

eine eingebaute Kontrolle der Bandbreite,<br />

hatte IPfwadm schlicht nicht <strong>im</strong>plementiert.<br />

Und wer etwas anderes als TCP,<br />

UDP oder ICMP filtern wollte, der stand<br />

auf verlorenem Posten.<br />

Der Nachfolger IPchains räumte mit diesen<br />

Schwierigkeiten auf, doch waren die<br />

Entwickler und Admins auch mit diesem<br />

Produkt nicht wirklich zufrieden. Wie<br />

IPfwadm beherrschte auch IPchains diverse<br />

Funktionen nicht, die einen ordentlichen<br />

Packet Filter ausmachen: So arbeitete<br />

die Lösung durchgehend stateless<br />

(Details <strong>im</strong> Kasten „Stateful und stateless“),<br />

beherrschte nur eingeschränktes


D-NAT (das so genannte Masquerading)<br />

und kämpfte mit einer ganzen Reihe weiterer<br />

Unzulänglichkeiten.<br />

Defizite von IPtables<br />

NFtables 01/2014<br />

Know-how<br />

Auch die aktuelle Filter-Implementierung<br />

hat Nachteile. Aus den Diskussionen der<br />

Entwickler in den letzten Jahren kristallisierten<br />

sich gleich mehrere Probleme<br />

heraus. Derzeit besteht der auf IPtables<br />

aufbauende Stack aus vier Teilen:<br />

n IPtables selbst fungiert als Stateful-<br />

Filter für Verbindungen nach dem<br />

IPv4-Standard.<br />

n IP6tables tut das Gleiche wie IPtables,<br />

allerdings für IPv6-Verbindungen.<br />

n ARPtables setzt <strong>im</strong> Stack weiter unten<br />

an und filtert bereits auf ARP-Ebene<br />

unerwünschte Pakete.<br />

n EBtables kümmert sich als Sonderfall<br />

um Pakete, die <strong>Linux</strong> über Netzwerkbrücken<br />

(Bridges) empfängt und die<br />

so dem normalen IPtables entgehen.<br />

Der Haken an der Sache: Es gibt kaum<br />

IPtables-Bestandteile, die sich von den<br />

vier Abteilungen gemeinsam nutzen lassen.<br />

Vielmehr existieren jeweils eigene<br />

Unterbereiche <strong>im</strong> Code, die weitgehend<br />

Duplikate sind. Einige Admins werfen<br />

IPtables zudem eine miserable Usability<br />

und ein mangelhaftes Error Reporting<br />

vor. Da es aber der Standard <strong>im</strong> Kernel<br />

ist, haben sich die meisten mit der Situation<br />

arrangiert.<br />

Scheintot<br />

Abbildung 1: IPtables heißt schon seit Jahren der Standardpaketfilter von <strong>Linux</strong>. Aus einer tabellarischen<br />

Anordnung wie dieser generiert IPtables …<br />

Abbildung 2: … <strong>im</strong> Stile eines Stateful-Filters Regeln, aufgrund derer er dann Netzwerkpaketen eine Aufenthaltsgenehmigung<br />

erteilt oder eben nicht.<br />

Genau hier bringt sich NFtables ins Spiel:<br />

Die Lösung möchte die erwähnten Nachteile<br />

beseitigen und den <strong>Linux</strong>-Kernel mit<br />

einem Framework zum Filtern von Paketen<br />

ausstatten, das den Anforderungen<br />

der Zeit besser gewachsen ist als IPtables<br />

(siehe Kasten „Unter der Haube“).<br />

Ins Leben gerufen hat das NFtables-<br />

Projekt ursprünglich Patrick McHardy:<br />

Bereits <strong>im</strong> September 2008 stellte er es<br />

auf dem Netfilter-Workshop in Paris der<br />

Öffentlichkeit vor (Abbildung 3). Zwischenzeitlich<br />

gesellte sich zum Entwicklerteam<br />

auch Pablo Neira Ayuso, doch<br />

dann tat sich ein paar Jahre lang gar<br />

nichts: 2009 verschwand die Projektwebseite<br />

und die meisten Interessenten hielten<br />

die Lösung bereits für tot.<br />

Zu Unrecht wie sich herausstellte, denn<br />

<strong>im</strong> Oktober 2012 zeigte sich, dass mit<br />

NFtables noch zu rechnen war. Der<br />

zweite Core-Entwickler Ayuso stellte auf<br />

der Netfilter-Mailingliste [3] einen Entwurf<br />

für einen NFtables-Layer vor, der<br />

www.linux-magazin.de<br />

85<br />

Stateful und stateless<br />

Im Bereich der Paketfilter unterscheidet man<br />

üblicherweise die Stateful- von den Stateless-<br />

Filtern. Beide Systeme haben ihre spezifischen<br />

Vor- und Nachteile. Eine Stateless-Firewall<br />

zeichnet sich dadurch aus, dass sie eingehende<br />

Netzwerkpakete einzeln analysiert und für jedes<br />

Paket auf der Grundlage der festgelegten<br />

Regeln eine Entscheidung trifft – aber ohne<br />

den Zusammenhang zwischen den einzelnen<br />

Paketen zu beachten. Bei einer Stateless-<br />

Firewall merkt die Firewall sich also nicht, ob<br />

eingehende Pakete möglicherweise zu einer<br />

bereits aufgebauten und legit<strong>im</strong>en Verbindung<br />

gehören.<br />

Der Vorteil einer solchen Lösung ist der sehr<br />

geringe Ressourcenbedarf: Weil für jedes einzelne<br />

Paket <strong>im</strong> Grunde nur eine Hopp-oder-<br />

Top-Entscheidung nötig ist, arbeiten Stateless-<br />

Firewalls sehr genügsam. Der Nachteil liegt<br />

darin, dass solche Lösungen keine Einzelverbindungen<br />

verfolgen können und daher nicht<br />

wissen, welche Pakete zu einer aktiven Verbindung<br />

gehören.<br />

Zustandsvolle Feuerwände<br />

Stateful-Firewalls kennen hingegen den Zusammenhang<br />

zwischen einzelnen Paketen<br />

und ordnen die eingehenden Pakete den vom<br />

System bereits aufgebauten Verbindungen zu.<br />

Das geschieht mittels diverser Memory-Mechanismen<br />

innerhalb des Paketfilters selbst, der<br />

einen Überblick aller Systemverbindungen hat.<br />

Einerseits ist das vorteilhaft, weil der Paketfilter<br />

so viel flexibler funktioniert, andererseits<br />

birgt eine solche Lösung auch einen unschönen<br />

Nachteil: Stateful-Filter sind in aller Regel sehr<br />

viel anspruchsvoller bei den Systemressourcen<br />

als die Stateless-Systeme.<br />

Trotzdem haben sich in den vergangenen Jahren<br />

die Stateful-Tools in der IT weitgehend<br />

durchgesetzt. Angesichts der <strong>im</strong>mer größer<br />

werdenden Hardwarekapazitäten und der <strong>im</strong>mer<br />

sparsamer arbeitenden Programme scheint<br />

es keinen Grund zu geben, die Ressourcen des<br />

Paketfilters zu beschneiden. Die Vorteile eines<br />

gezielten Filterns nach Verbindungen überwiegen<br />

für die meisten Admins offenbar den produzierten<br />

Overhead.


Know-how<br />

www.linux-magazin.de NFtables 01/2014<br />

86<br />

Userspace<br />

Kernelspace<br />

NFtables-<br />

Tool »nftables«<br />

NF-Lib<br />

NFtables-<br />

Core<br />

Netfilter-<br />

API<br />

Network-<br />

Stack<br />

Rule-<br />

Sets<br />

Parser<br />

Filter-<br />

Engine<br />

vollständige Kompatibilität zu IPtables<br />

herstellt und dieses damit faktisch überflüssig<br />

macht. Nach dem üblichen Hickhack<br />

um eine Mainline-Integration ersuchten<br />

die Entwickler Linus Torvalds<br />

um die Aufnahme in den Kernel 3.13<br />

– nun wird es also langsam ernst für den<br />

Nachfolger von IPtables.<br />

Einheitliche Architektur<br />

Compiler<br />

Kernel-<br />

Kommunikation<br />

Netlink-<br />

Interface<br />

»INPUT« ... »OUTPUT«<br />

»FORWARD«<br />

Systemcalls<br />

Interfaces<br />

NFtables unterscheidet sich in vielerlei<br />

Hinsicht von seinem Vorgänger. Die<br />

wichtigste Differenz besteht zweifellos<br />

in der Architektur, die beiden Lösungen<br />

zugrunde liegt: Wirkt IPtables mittlerweile<br />

wie ein großes Flickwerk, greifen<br />

bei NFtables alle Komponenten ineinander:<br />

IPv4, IPv6, ARP und Bridging greifen<br />

<strong>im</strong> Kernel auf die gleichen, abstrahierten<br />

Features zurück, die ihrerseits die eigent-<br />

Programme<br />

Abbildung 3: Im Jahre 2009 stellte Patrick McHardy erstmals seine Ideen für<br />

NFtables vor, eine neue Art von Paketfilter.<br />

lichen Funktionen<br />

anbieten.<br />

Das ist gut, weil<br />

NFtables auf diese<br />

Netz<br />

Weise jede Menge<br />

duplizierten Code<br />

vermeidet und die<br />

Pflege des ganzen<br />

Projekts deutlich<br />

erleichtert. Zugleich macht sich die Verzahnung<br />

mit dem Netzwerkstack des <strong>Linux</strong>-Kernels<br />

auch in Sachen Performance<br />

bemerkbar.<br />

Während IPtables stets auf dem Netzwerkstack<br />

aufbaut und sich aus diesem<br />

zum Filtern von Paketen erst die notwendigen<br />

Informationen besorgen muss,<br />

steckt NFtables direkt <strong>im</strong> Netzwerkstack.<br />

Es ist damit deutlich näher am Geschehen<br />

und kann sich direkt mit den Paketen beschäftigen,<br />

die durch den Stack wandern,<br />

statt sie erst separat anzufordern.<br />

Auch sonst geht NFtables durchaus clever<br />

zu Werke und orientiert sich an den<br />

Berkeley Packet Filters (BPF). Wichtiges<br />

Herzstück der gesamten Lösung ist eine<br />

virtuelle Maschine innerhalb des Kernels,<br />

die das eigentliche Packet Filtering übern<strong>im</strong>mt.<br />

Das ist genau der Teil, der <strong>im</strong><br />

Netzwerkstack eingebettet ist.<br />

Abbildung 4: Hilfswerkzeuge wie Firehol sorgen dafür, dass Benutzer die komplizierte<br />

Syntax von IPtables etwas einfacher nutzen können.<br />

Freilich ist NFtables kein Quasi-Nachbau<br />

von KVM & Co., der neue Paketfilter benötigt<br />

deren Funktionen größtenteils gar<br />

nicht. Aber das Grundprinzip ist dem der<br />

gängigen Virtualisierer sehr ähnlich: Ein<br />

Paket landet <strong>im</strong> Netzwerkstack, wo es<br />

der Bytecode-Interpreter analysiert, um<br />

dann zu entscheiden, was mit dem Paket<br />

passieren soll.<br />

Letztlich versprechen sich die Entwickler<br />

von NFtables dank der beschriebenen<br />

Architektur massive Performancegewinne,<br />

eine deutlich höhere Flexibilität<br />

des Codes und eine bessere Wartbarkeit<br />

<strong>im</strong> Kernel. Die größte Herausforderung<br />

besteht aber weniger in der Technik, sondern<br />

eher darin, den Anwendern einen<br />

fließenden Übergang von IPtables hin zu<br />

NFtables zu ermöglichen.<br />

Mühsame Migration<br />

Denn genau dort liegt eigentlich der Hase<br />

<strong>im</strong> Pfeffer. Nach den Wirren um den<br />

Paketfilter in früheren <strong>Linux</strong>-Versionen<br />

haben sich die meisten Anwender und<br />

Distributoren mittlerweile mit IPtables<br />

arrangiert. Praktisch alle Firewall-Werkzeuge,<br />

die den gängigen Systemen beiliegen,<br />

sind tief in IPtables verwurzelt<br />

Unter der Haube<br />

Zwar wird NFtables mit einer eingebauten Kompatibilitätsschicht<br />

für IPtables ausgestattet<br />

sein, doch langfristig lautet der Plan eher, die<br />

jetzigen IPtables-Programme auf NFtables umzustellen.<br />

Die Lösung ist ein eigenes Userland-<br />

Werkzeug namens Nft.<br />

Zwei Abhängigkeiten bringt Nft dabei mit:<br />

Abgesehen vom Kernel mit NFtables-Support<br />

benötigt es die Bibliothek Libmnl (Min<strong>im</strong>alistic<br />

Netlink Library, [4]). Sie exponiert alle <strong>im</strong><br />

Netlink-Teil des Kernels vorhandenen Funktionen<br />

ins Userland, wodurch Programme auf<br />

sie zugreifen können. Ihr zur Seite steht die<br />

Bibliothek LibNFtables für NFtables selbst. Sie<br />

wiederum stellt die notwendigen Funktionen<br />

bereit, um Regeln für NFtables in den Kernel zu<br />

integrieren. Im Grunde könnte jede Applikation<br />

unter Einsatz dieser beiden Bibliotheken selbst<br />

NFtables-Regeln erstellen, Nft ist <strong>im</strong> Normalfall<br />

nur noch ein Frontend von vielen. Diese Art des<br />

Umgangs mit Kernelfunktionen entspricht dem<br />

akzeptierten Standard und ist in vielen anderen<br />

Teilen des Kernels ebenfalls präsent.<br />

Das Nft-Programm<br />

Zumindest anfangs werden Admins wohl auf<br />

Nft setzen, wenn sie Filterregeln <strong>im</strong> Kernel aktivieren<br />

möchten. Wer die Syntax von IPtables<br />

gewohnt ist, wird sich allerdings an eine neue<br />

Syntax gewöhnen müssen, denn Nft eifert in<br />

Sachen Syntax eher den BSD-Paketfiltern nach,<br />

die beschreibende Regeln nutzen statt die wenig<br />

intuitive Syntax von IPtables nachzubilden.<br />

Die folgende Regel würde beispielsweise Traffic<br />

auf Port 22, also dem SSH-Port, zulassen:<br />

nft add rule ip filter input tcp dport U<br />

22 accept<br />

Ein kleines Trostpflaster ist, dass die Regeln<br />

von NFtables deutlich intuitiver sind als das<br />

bis dato Bekannte. Wer schon einmal IPtables-<br />

Regeln konstruiert hat und diese Erfahrung mit<br />

dem gezeigten Befehl vergleicht, wird die neue<br />

Syntax aufgrund ihrer Einfachheit vermutlich<br />

willkommen heißen.


und darauf ausgelegt, aus ihm das Beste<br />

herauszuholen. Admins haben nicht selten<br />

eigene Skripte verfasst, die spezifische<br />

IPtables-Konfigurationen nach ihren<br />

Wünschen umsetzen. Auch Drittanbieter-<br />

Software wie die des Firehol-Projekts [5]<br />

sind stark mit IPtables verbandelt (Abbildung<br />

4).<br />

Die NFtables -Entwickler müssen die<br />

starken Verbindungen mit bereits existierender<br />

Software beachten, wenn sie ihr<br />

neues Filtersystem in den Kernel integrieren<br />

wollen. Ein inkompatibles System<br />

ließe die Akzeptanz der neuen Lösung<br />

vermutlich auf null sinken, das Projekt<br />

wäre zum Scheitern verurteilt.<br />

Nicht zufällig erhielt NFtables in dem<br />

Augenblick Aufwind, als seine Entwickler<br />

auf der Netfilter-Mailingliste eine<br />

Kompatibilitätsschicht zu IPtables vorstellten.<br />

Der Layer soll ein zu IPtables<br />

kompatibles Kernelinterface anbieten,<br />

das die IPtables- Aufrufe <strong>im</strong> Hintergrund<br />

auf NFtables umbiegt. So bliebe die Kompatibilität<br />

erhalten, <strong>im</strong> Kernel wäre dennoch<br />

der neue Paketfilter tätig.<br />

Freilich hängt die Akzeptanz einer solchen<br />

Lösung <strong>im</strong>mer von der technischen<br />

Qualität ihrer Implementation ab, und<br />

relativ sicher ist, dass die Entwickler nur<br />

eine Chance haben, um einen guten ersten<br />

Eindruck zu erzeugen. Dass sie ihren<br />

Code nun in den Kernel bringen wollen,<br />

zeigt jedoch, dass sie zumindest selbst<br />

davon überzeugt sind, eine stabile Codequalität<br />

erreicht zu haben.<br />

Fazit<br />

Mit NFtables könnte erstmals seit Kernel<br />

2.4 eine neue Generation von Paketfilter<br />

in <strong>Linux</strong> einziehen. Technisch ist die<br />

Software IPtables überlegen, denn sie ist<br />

stateful, modularer, lässt sich einfacher<br />

an Protokolle und Techniken anpassen,<br />

weil sie dafür vorhandenen Code nutzt,<br />

und dürfte aus diesem Grund auch vergleichsweise<br />

wartungsarm sein.<br />

Zwar werden wohl nicht sämtliche Distributoren<br />

sofort auf den neuen Zug<br />

aufspringen, aber sollte es NFtables in<br />

absehbarer Zeit in den Kernel schaffen<br />

und erreicht die IPtables-Kompatibilität<br />

einen stabilen Zustand, wird es für das<br />

altgediente IPtables eng. Bis es jedoch<br />

angepasste Tools gibt, die sich auch die<br />

spezifischen Vorteile von NFtables zunutze<br />

machen, dürfte noch etwas Zeit<br />

vergehen. (kki/mfe)<br />

n<br />

Infos<br />

[1] NFtables-Website:<br />

[http:// netfilter. org/ projects/ NFtables/]<br />

[2] NFtables bereit für den Kernel:<br />

[http:// lwn. net/ Articles/ 570921/]<br />

[3] IPtables-Kompatibilität für NFtables:<br />

[http:// www. spinics. net/ lists/​<br />

netfilter‐devel/ msg23831. html]<br />

[4] Libmnl:<br />

[http://netfilter.org/projects/libmnl/]<br />

[5] Firehol: [http:// www. firehol. org]<br />

NFtables 01/2014<br />

Know-how<br />

www.linux-magazin.de<br />

87


Know-how<br />

www.linux-magazin.de Insecurity Bulletin 01/2014<br />

88<br />

Insecurity-Bulletin: Denial of Service in Glibc<br />

Adressenflut<br />

Unerwartet umfangreiche Eingabedaten können ein Programm zum Absturz bringen, wenn der Platz auf dem<br />

Stack nicht mehr ausreicht. Eine derartige Schwachstelle fand sich jüngst <strong>im</strong> Code der GNU-C-Bibliothek, der<br />

Hostnamen in IP-Adressen auflöst. Mark Vogelsberger, Mathias Huber<br />

01 #!/usr/bin/env ruby<br />

Gibt es ein Problem in der C-Standard-<br />

Bibliothek eines <strong>Linux</strong>-Rechners, sind<br />

viele Anwendungen davon betroffen. Im<br />

Oktober 2013 entdeckte der Red-Hat-Mitarbeiter<br />

Siddhesh Poyarekar eine solche<br />

Sicherheitslücke [1] in der GNU-C-Bibliothek<br />

[2], kurz Glibc, die in vielen <strong>Linux</strong>-<br />

Distributionen zum Einsatz kommt.<br />

Stack Overflow<br />

Die Schwachstelle mit der CVE-Kennung<br />

2013-4458 erlaubt es einem lokalen Angreifer,<br />

Anwendungen zum Absturz zu<br />

bringen, die die Glibc-Bibliotheksfunktion<br />

»getaddrinfo()« verwenden. Diese übersetzt<br />

Hostnamen in IP-Adressen. Durch<br />

geschickt aufgebaute Konfigurationsdateien<br />

und Anfragen lässt sich ein<br />

Stack Overflow auslösen, beispielsweise<br />

02 File.open('/etc/hosts', 'a') do |file|<br />

03 50000.t<strong>im</strong>es {|x| file.puts '127.0.0.1 host‐fubar'}<br />

04 50000.t<strong>im</strong>es {|x| file.puts '::1 host‐fubar'}<br />

05 end<br />

Abbildung 1: Dieses Patch sorgt für ausreichend Speicher auf dem Heap.<br />

Listing 1: »/etc/hosts« präparieren<br />

durch eine extrem<br />

große Anzahl von<br />

IPv6-Einträgen in<br />

der Datei »/etc/<br />

hosts«.<br />

Zudem beschreibt<br />

Poyarekar in seiner<br />

Meldung noch einen<br />

Proof-of-Concept-Exploit.<br />

Dieser<br />

besteht <strong>im</strong><br />

Grunde aus zwei<br />

Schritten:<br />

n Der Angreifer<br />

erzeugt eine<br />

n große »/etc/<br />

hosts«-Datei: 50 000 Einträge mit »127.0.0.1<br />

host‐fubar« und 50 000 mit »::1 host‐fubar«.<br />

n Der Angreifer oder ein Programm ruft<br />

»getaddrinfo()« für »host‐fubar« ohne<br />

Flags sowie mit »AF_INET6« <strong>im</strong> Feld<br />

»hints‐>ai_family« auf.<br />

Punkt 1 lässt sich mit einem Skript erledigen,<br />

etwa dem Ruby-Code in Listing<br />

1, doch muss es der Angreifer auch<br />

schaffen, die Root gehörende Datei zu<br />

überschreiben. Das Ausführen eines Programms,<br />

das »getaddrinfo()« verwendet<br />

(Punkt 2), führt dann zu einem Segmentation<br />

Fault. Grund ist ein Programmierfehler<br />

in der Quelltextdatei »sysdeps/<br />

posix/getaddrinfo.c« der Glibc. Der Code<br />

verwendet das Makro »extend_alloca()«,<br />

um den Puffer »tmpbuf« zu vergrößern:<br />

tmpbuf = extend_alloca (tmpbuf, tmpbuflen,U<br />

2 * tmpbuflen);<br />

Zuvor alloziert er ihn mit<br />

tmpbuf = __alloca (tmpbuflen);<br />

auf dem Stack. Diese Vergrößerung des<br />

»tmpbuf«-Speichers auf dem Stack besitzt<br />

allerdings eine Obergrenze, bei deren<br />

Überschreiten der Stack-Overflow-Fehler<br />

auftritt.<br />

Mehr Speicher<br />

Ein Patch von Siddhesh Poyarekar (Abbildung<br />

1) löst das Problem, indem es<br />

<strong>im</strong> Fall einer zu großen Anfrage auf den<br />

Heap ausweicht und dort dynamisch<br />

Speicher alloziert. Die Entscheidung, ob<br />

dies geschehen soll, findet in einer If-<br />

Abfrage statt:<br />

if (!malloc_tmpbuf && __libc_use_allocaU<br />

(alloca_used + 2 * tmpbuflen))<br />

Dabei dient »__libc_use_alloca()« dazu,<br />

zu entscheiden, ob noch genügend Speicher<br />

vorhanden ist. Falls nicht, kommt<br />

der folgende neue Code zum Aufruf:<br />

char *newp = realloc (malloc_tmpbuf ?U<br />

tmpbuf : NULL, 2 * tmpbuflen);<br />

tmpbuf = newp;<br />

Eine ähnliche Schwachstelle, allerdings<br />

für die Adressenfamilie »AF_UNSPEC«,<br />

hatte der Suse-Mitarbeiter Andreas<br />

Schwab bereits <strong>im</strong> März 2013 entdeckt<br />

(CVE-2013-1914). Übrigens ist auch die<br />

Eglibc, ein Fork der C-Bibliothek, den<br />

etwa die <strong>Linux</strong>-Distributionen Debian<br />

und Ubuntu einsetzen, durch dieselbe<br />

Art von Angriffen verwundbar [3]. n<br />

Infos<br />

[1] Siddhesh Poyarekar, „Sourceware Bugzilla<br />

– Bug 16072“: [https:// sourceware. org/​<br />

bugzilla/ show_bug. cgi? id=16072]<br />

[2] GNU C Library:<br />

[http:// www. gnu. org/ software/ libc/]<br />

[3] Debian Security Tracker, CVE-2013-4458:<br />

[https:// security‐tracker. debian. org/​<br />

tracker/ CVE‐2013‐4458]


Programmieren<br />

www.linux-magazin.de Tntnet 01/2014<br />

90<br />

Webanwendungen in C++ mit Tntnet<br />

Web plus plus<br />

Angeregt durch die „Reifeprüfung fürs Web“ <strong>im</strong> <strong>Linux</strong>-<strong>Magazin</strong> 11/​13 stellt dieser Artikel das Webframework<br />

Tntnet vor. Mit ihm lassen sich in C++ Webanwendungen mit MVC-Architektur programmieren. Olaf Radicke, Tommi Mäkitalo<br />

© nomadsoul1, 123RF.com<br />

Im <strong>Magazin</strong>-Schwerpunkt 11/​13 [1] durften<br />

Contao, Rails, Django und Magnolia<br />

CMS zeigen, wie sie eine Programmieraufgabe<br />

lösen. Das inspirierte die Autoren,<br />

die Beispielanwendung für diesen<br />

Artikel in C++ umzusetzen. Der Online-<br />

Veranstaltungskalender (Abbildung 1)<br />

zapft eine Open-Data-Schnittstelle an,<br />

um Straßenfeste anzuzeigen, die in einem<br />

vom Anwender gewählten Zeitraum<br />

stattfinden.<br />

Als Grundlage dient nun Tntnet [2],<br />

Tommi Mäkitalos C++-Framework für<br />

Webanwendungen, das unter LGPLv2.1<br />

steht. Im Jahr 2003 veröffentlichte er die<br />

erste Version, derzeit ist die Release 2.2<br />

aktuell. Tntnet-Anwendungen laufen<br />

etwa bei der Deutschen Börse AG, Tommis<br />

Arbeitgeber. Dieser Artikel verwendet<br />

die jüngste Version aus dem Entwickler-<br />

Repository, die der Kasten „Tntnet installieren“<br />

einrichtet.<br />

C++ als Technologie für Webanwendungen<br />

ist <strong>im</strong> Vergleich zu Ruby on Rails<br />

und anderen Skriptsprachen sehr Ressourcen-schonend.<br />

So lassen sich damit<br />

auch Weboberflächen für die schwächeren<br />

CPUs von Embedded-Geräten verwirklichen.<br />

Am anderen Ende des Spektrums<br />

ist es für hohe Lasten skalierbar<br />

und unterstützt Multithreading. Zudem<br />

ist C++ seit etwa drei Jahrzehnten ein<br />

fester Bestandteil der IT-Welt und international<br />

standardisiert. Das macht Tntnet<br />

zukunftssicher: Anwender können darauf<br />

vertrauen, dass der Code wartbar bleibt.<br />

Flexibel<br />

Tntnet unterscheidet sich in einem Punkt<br />

wesentlich von verbreiteten Webframeworks<br />

wie Rails oder Django: Es propagiert<br />

nicht das Prinzip „Konvention<br />

vor Konfiguration“. Es möchte dem Anwender<br />

nicht vorschreiben, wie er sein<br />

Projekt zu organisieren und seine Dateien<br />

zu benennen hat, sondern versucht über<br />

dokumentierte Best Practice und Howtos<br />

einen Leitfaden für die Realisierung guter<br />

Software zu geben [3].<br />

Tntnet-Applikationen lassen sich grundsätzlich<br />

auf zwei Arten umsetzen. Entweder<br />

kommt ein Tntnet-Application-Server<br />

zum Einsatz, um Shared Libraries und<br />

Objektdateien zu laden und auszuführen,<br />

oder man erzeugt ein einziges lauffähiges<br />

Binary. Im ersten Fall besteht die Applikation<br />

aus einer Shared Library und<br />

dem Tntnet-Application-Server. Im zweiten<br />

Fall lässt sich alles zu einer einzigen<br />

ausführbaren Datei zusammenfassen,<br />

was das Ausrollen vereinfacht, etwa auf<br />

Embedded-Geräten. Dieser Artikel verwendet<br />

die zweite Variante.<br />

Zur Ansicht<br />

Das Tntnet-Framework nutzt die verbreitete<br />

Anwendungsarchitektur Model<br />

View Controller (MVC). Für die View-<br />

Komponente, die für Ansichten zuständig<br />

ist, sieht es die projekteigene Auszeichnungssprache<br />

ECPP vor, die C++ über<br />

spezielle Tags in HTML einbettet. Be<strong>im</strong><br />

Übersetzen wandelt ein Präprozessor sie<br />

in C++-Code um, den ein herkömmlicher<br />

C++-Compiler zu einer ausführbaren Datei<br />

kompilieren kann. Es wäre möglich,<br />

die gesamte Logik als C++-Code in HTML<br />

einzubetten. Bei kleineren Aufgaben<br />

führt das rasch zu einem Resultat, schon<br />

bei etwas umfangreicheren Projekten ist<br />

es aber nicht ratsam.<br />

Getreu dem MVC-Prinzip ist in der Suchseite<br />

(Listing 1) kaum Logik zu finden,<br />

denn sie dient ausschließlich der Ansicht.<br />

Die Datei »strassenfeste.ecpp« deklariert<br />

zu Beginn mit »« die Anfrage-<br />

DELUG-DVD<br />

Auf der DELUG-DVD zu dieser<br />

DELUG-DVD<br />

Ausgabe finden Sie die Aufgabenstellung sowie<br />

die Auswertung aus dem Schwerpunkt „Reifeprüfung<br />

fürs Web“ <strong>im</strong> <strong>Magazin</strong> 11/​13.


Die Anwendung benutzt ein Formular,<br />

um Werte entgegenzunehmen und zu<br />

übergeben. Sie sind <strong>im</strong> Parameter des<br />

Typs »tnt::QueryParams« repräsentiert.<br />

Ein einzelnes Feld wie »bezirk« lässt sich<br />

wie folgt auslesen:<br />

Tntnet 01/2014<br />

Programmieren<br />

sessionShared.bezirk =U<br />

qparam.arg("bezirk");<br />

Unerlässlich für interaktive Websites ist<br />

das Session-Handling. Tntnet-Controller<br />

bilden es mit Makros ab, beispielsweise<br />

in Zeile 28:<br />

www.linux-magazin.de<br />

91<br />

TNT_SESSION_SHARED_VAR(SucheSession,U<br />

suche, ());<br />

Abbildung 1: Dank Tntnet lässt sich die Website für die Veranstaltungssuche auch in C++ programmieren.<br />

Parameter der Veranstaltungssuche. Die<br />

unterschiedlichen »scope«-Tags klären<br />

die Geltungsbereiche von Variablen innerhalb<br />

der Anwendung, einer Session<br />

und eines HTTP-Requests. Daneben befüllt<br />

die Datei das Suchformular mit den<br />

Bezirken und gibt Ergebnisse aus, sofern<br />

die Suche welche ergab.<br />

Im Session-Scope referenziert die ECPP-<br />

Datei zudem den Header »suchesession.h«,<br />

der die Klassen der Anwendung<br />

bekannt macht. Daneben deklariert sie<br />

die gemeinsame Variable »suche«, die die<br />

Such-Session für alle Komponenten speichert.<br />

Damit verknüpft sie auch die View<br />

mit dem Controller, der die eigentliche<br />

Arbeit macht.<br />

Die Funktion des Controllers übern<strong>im</strong>mt<br />

der Code in »controller/suche.cpp«, gewöhnlicher<br />

C++-Code ohne besondere<br />

Tags (Listing 2). Es gibt allerdings keine<br />

Headerdatei, sodass der Anwendungsentwickler<br />

die Instanzierung indirekt durch<br />

eine Tntnet-Factory-Klasse erledigt (Zeile<br />

21). Der Controller erbt von der Klasse<br />

»tnt::Component«, die grundlegende<br />

Funktionen eines Controllers bereitstellt.<br />

Controller<br />

Die eigentliche Arbeit des Controllers<br />

findet dann in der Methode »operator()«<br />

statt, die HTTP-Request und ‐Reply sowie<br />

die Parameter der Anfrage entgegenn<strong>im</strong>mt<br />

(Zeile 23). Die Methode ist ein<br />

Erbstück der Klasse »Component« und<br />

wird bei jedem eingehenden Request<br />

ausgeführt, egal ob es sich um eine GEToder<br />

POST-Anfrage handelt. Darüber hinaus<br />

lässt sich noch eine ganze Reihe<br />

anderer Informationen über die Klasse<br />

»HttpRequest« abfragen.<br />

Es handelt sich hierbei um die Daten, die<br />

der Controller gemeinsam mit der View<br />

nutzt. Das Makro gibt der Instanz von<br />

»SucheSession« eine Lebenszeit über den<br />

einzelnen Request hinaus für die Dauer<br />

der Session. Jeder User erhält eine eigene<br />

Session, um deren Verwaltung sich Tntnet<br />

automatisch kümmert.<br />

Für Werte, die nur die Lebensdauer eines<br />

Requests benötigen, gibt es das Makro<br />

»TNT_REQUEST_SHARED_VAR()«. Diese<br />

Variante genügt, um die Kooperation verschiedener<br />

Komponenten während eines<br />

Requests zu erlauben. Das MVC-Konzept<br />

von Tntnet basiert darauf, dass mehrere<br />

Komponenten oder Controller in Serie<br />

geschaltet eine Anfrage verarbeiten.<br />

Fertig!<br />

Das letzte Element in der Operator-Methode<br />

heißt »return DECLINED;«. Dieser<br />

Return-Wert teilt dem Tntnet-Application-Server<br />

mit: Ich bin fertig, ich konnte<br />

meine Arbeit erfolgreich erledigen. Sollte<br />

noch eine weitere Komponente den Re-<br />

Tntnet installieren<br />

Abbildung 2: Installation geglückt: Tntnet schreibt sein HTTP-Accessund<br />

das Error-Protokoll auf das Terminal.<br />

Das Webframework Tntnet [2] setzt die Bibliothek<br />

Cxx-Tools voraus, die ebenfalls vom<br />

Entwickler Tommi Mäkitalo stammt. Zur Installation<br />

klont man deren Code von einem Github-<br />

Repository [4]. Im entstandenen Verzeichnis<br />

konfigurieren und übersetzen die folgenden<br />

Kommandos den Code:<br />

autoreconf ‐i<br />

./configure<br />

make<br />

Das Kommando »su ‐c 'make<br />

install'« installiert die Tools.<br />

Ebenso lässt sich Tntnet von<br />

[5] klonen und mit den gleichen<br />

Kommandos einsatzbereit<br />

machen.<br />

Ob Tntnet funktioniert, lässt sich mit einer<br />

einfachen Beispielanwendung testen. In einem<br />

beliebigen Verzeichnis erzeugt folgender<br />

Befehl die Grundlage für die Webanwendung<br />

»myfirstproject«:<br />

tntnet‐config ‐‐project=myfirstproject<br />

Im Verzeichnis »myfirstproject/« stößt »make«<br />

die Übersetzung an. Anschließend startet das<br />

Kommando »tntnet« die Anwendung samt<br />

eingebautem Webserver, der sich mit Logmeldungen<br />

bemerkbar macht (Abbildung 2). Im<br />

Browser ist das Projekt unter »http://localhost:8000/myfirstproject«<br />

zu erreichen.


Listing 1: »strassenfeste.ecpp« (gekürzt)<br />

01 <br />

02 q;<br />

03 bezirk;<br />

04 [...]<br />

05 <br />

06 <br />

07 std::vector bezirke;<br />

08 <br />

09 <br />

10 StrassenfestResult strassenfestResult;<br />

11 <br />

12 <br />

13 SucheSession suche;<br />

14 <br />

15 [...]<br />

16 Suche<br />

17 <br />

18 <br />

19 <br />

20 <br />

21 Stichwortsuche:<br />

22 <br />

23 <br />

24 <br />

25 Bezirk:<br />

26 <br />

27 <br />

28 % for (unsigned n = 0; n < bezirke.size();<br />

++n) {<br />

29


quest weiter bearbeiten wollen, kann sie<br />

das jetzt tun. Das ermöglicht mehrstufige<br />

Bearbeitung.<br />

Model<br />

Die letzte Komponente des MVC-Gespanns<br />

findet ihren Platz <strong>im</strong> Verzeichnis<br />

»model«. Es gibt unterschiedliche Ansichten<br />

darüber, wie viel Logik das Model<br />

enthalten sollte. Im vorliegenden Beispiel<br />

sind die Klassen sehr schlank und bestehen<br />

fast nur aus Getter-Methoden. Trotzdem<br />

sei hier auf die folgenden Zeilen in<br />

»strassenfestresult.h« hingewiesen:<br />

friend void operator>>= (<br />

const cxxtools::SerializationInfo& si,<br />

StrassenfestResult& strassenfestResult);<br />

Sie überladen den Shift-Operator, um<br />

die Klasse deserialisierbar zu machen.<br />

Die Implementierung in die Datei »strassenfestresult.cpp«<br />

(Listing 3) befüllt die<br />

Klasse mit Werten.<br />

Es ist in Tntnet prinzipiell möglich, beliebige<br />

Datentypen zu verwenden, also<br />

auch pr<strong>im</strong>itive Typen wie etwa Integer.<br />

Davon ist aber abzuraten, denn dann<br />

gibt es keine Namensräume, die einzelne<br />

Komponenten voneinander trennen. Bei<br />

sehr großen Projekten kann es dann geschehen,<br />

dass ein Programmierer aus<br />

Versehen einen Variablennamen verwendet,<br />

der bereits an anderer Stelle vergeben<br />

wurde. Kapselt aber jede Komponente<br />

wie in der Beispielanwendung ihre<br />

Listing 3: »model/strassenfestresult.cpp«<br />

01 void operator>>= (<br />

02 const cxxtools::SerializationInfo& si,<br />

03 StrassenfestResult& strassenfestResult)<br />

04 {<br />

05 const cxxtools::SerializationInfo&<br />

siMessages = si.getMember("messages");<br />

06 siMessages.getMember("messages") >>=<br />

strassenfestResult._messages;<br />

07 siMessages.getMember("success") >>=<br />

strassenfestResult._success;<br />

08 <br />

Session-Daten in einer eigenen Klasse,<br />

können verschiedene Komponenten dieselben<br />

Variablennamen verwenden. Ist<br />

<strong>im</strong> Controller der Komponente A zum<br />

Beispiel folgender Code zu finden<br />

TNT_SESSION_SHARED_VAR(U<br />

CompA::SessionShared, sessionInfo, ());<br />

bleiben die Variablen vom Namensraum<br />

»CompB« der Komponente B getrennt.<br />

Das noch fehlende Glied in der Verarbeitungskette<br />

ist der Manager. Die<br />

09 const cxxtools::SerializationInfo&<br />

siResults = si.getMember("results");<br />

10 siResults.getMember("count") >>=<br />

strassenfestResult._resultCount;<br />

11 siResults.getMember("items_per_page") >>=<br />

strassenfestResult._itemsPerPage;<br />

12 <br />

13 si.getMember("index") >>=<br />

strassenfestResult._strassenfeste;<br />

14 }<br />

Tntnet 01/2014<br />

Programmieren<br />

www.linux-magazin.de<br />

93


Programmieren<br />

www.linux-magazin.de Tntnet 01/2014<br />

94<br />

Manager-Klasse »StrassenfestManager«<br />

baut die Verbindung zum Berliner Open-<br />

Data-Server auf, holt die Daten <strong>im</strong> Json-<br />

Format, deserialisiert sie und wandelt sie<br />

in Model-Klassen um. Nun ist die Kette<br />

vollständig: Die Manager-Klasse generiert<br />

die Model-Klasse und übergibt sie dem<br />

Controller, der die Model-Klasse wiederum<br />

der View zur Verfügung stellt.<br />

Deserialisiert<br />

Die Deserialisierung findet in »manager/StrassenfestManager.cpp«<br />

statt. Die<br />

Hauptarbeit leistet eine Klasse aus der<br />

Bibliothek »cxxtools«. Die Library stellt<br />

01 cxxtools::net::Uri uri = Configuration::<br />

01 tnt::Tntnet app;<br />

02 [...]<br />

03 <br />

04 // index page<br />

05 app.mapUrl("^/$", "webmain")<br />

06 .setArg("next", "index");<br />

07 <br />

08 // controller<br />

09 app.mapUrl("^/(.*)$", "controller/$1");<br />

10 <br />

11 // view<br />

12 app.mapUrl("^/(.*)$", "webmain")<br />

13 .setArg("next", "view/$1");<br />

14 <br />

it().berlinUrl();<br />

02 cxxtools::QueryParams q;<br />

03 q.add("q", keyword);<br />

04 [...]<br />

15 app.run();<br />

Bewertung der Redaktion<br />

Listing 4: »manager/strassenfestmanager.cpp«<br />

(Auszug)<br />

05 std::string results = _client.get(uri.path() + '?' +<br />

q.getUrl());<br />

06 std::istringstream in(results);<br />

07 StrassenfestResult r;<br />

08 in >> cxxtools::Json(r);<br />

Listing 5: Routing in »main.cpp«<br />

Mit Tntnet hat Tommi Mäkitalo eine korrekte<br />

Lösung der Aufgabenstellung auf die Beine gestellt<br />

[9]. Als Extras bietet sie sogar die Auswahl<br />

unter den Bezirken sowie Freitextsuche in<br />

den Veranstaltungsdaten. Die Architektur folgt<br />

dem MVC-Modell, das vielen Entwicklern von<br />

Webanwendungen vertraut ist [10].<br />

Tntnet erlaubt daneben die Arbeitsteilung<br />

zwischen einem Webdesigner und dem Anwendungsprogrammierer,<br />

weil sich der Quelltext<br />

in ECCP-Templates mit HTML und Steuerungstags<br />

einerseits und reinen C++-Programmcode<br />

andererseits aufteilt. Jegliche Änderung, und<br />

sei es nur ein korrigierter Rechtschreibfehler,<br />

verlangt allerdings das Neukompilieren der<br />

Webanwendung.<br />

Fortgeschrittene C++-Entwickler finden <strong>im</strong><br />

Framework Tntnet eine vertraute Welt vor, Umsteiger<br />

von Skriptsprachen wie PHP und Ruby<br />

dürften sich mit manchen fortgeschrittenen<br />

C++-Programmierkonzepten aber schwertun.<br />

(Mathias Huber)<br />

fundamentale Funktionen zur Verfügung,<br />

die Tntnet benötigt.<br />

In Listing 4 ist ein gekürzter Teil des<br />

Codes zu sehen, der die Json-Daten vom<br />

Open-Data-Server holt und aufbereitet.<br />

Die Klasse »Configuration« ist dafür zuständig,<br />

die Konfiguration auszulesen<br />

und deren Daten für das Programm vorzuhalten.<br />

In diesem Fall lässt sich der Anwendungsentwickler<br />

die URL zum Server<br />

in Berlin zurückgeben.<br />

Die Klasse »cxxtools::QueryParams« dient<br />

dazu, elegant den Query-Teil einer URL zu<br />

generieren. Die darauf folgende Zeile füllt<br />

die Klasse mit Werten. »_client« ist eine<br />

Instanz vom Typ »cxxtools::http::Client«,<br />

mit der das Programm die HTTP-Verbindung<br />

aufbaut. Das Resultat der Abfrage<br />

wird in einen String-Stream umgewandelt,<br />

von dem der Deserialisierer<br />

»cxxtools::Json()« liest und die Klasse<br />

»StrassenfestResult« befüllt.<br />

Routing<br />

Das Routing legt fest, über welche URLs<br />

sich die Komponenten der Tntnet-Anwendung<br />

aufrufen lassen. Es ist in der<br />

Datei »main.cpp« festgelegt (Listing 5).<br />

Die Funktion »mapUrl()« teilt dem Application-Server<br />

»tnt::Tntnet« die Routen<br />

mit. Der erste Parameter ist ein regulärer<br />

Ausdruck. Die erste Route legt also fest,<br />

dass für »/« die Komponente »webmain«<br />

aufgerufen wird. Die zweite Route ruft<br />

alle Controller auf, für die der reguläre<br />

Ausdruck passt. Konkretes Beispiel: Ruft<br />

ein Benutzer die URL »http://example.<br />

com/suche« auf, kommt der Controller<br />

»controller/suche« ins Spiel.<br />

Findet sich kein passender Controller,<br />

passiert nichts. Das gilt auch für die View.<br />

In der Reihenfolge, in der die Routen gesetzt<br />

sind, arbeitet Tntnet sie auch be<strong>im</strong><br />

Matching ab – zunächst die Controller<br />

und dann die Views. Das ist wichtig, da<br />

die Controller erst die Daten für die Views<br />

aufbereiten müssen.<br />

Alternativen<br />

Der Ansatz von Tntnet mag ungewohnt<br />

erscheinen, wie auch der Kasten „Bewertung<br />

der Redaktion“ anmerkt. Es<br />

gibt aber keinen Grund, die Programmiersprache<br />

C++ für die Web entwicklung<br />

grundsätzlich zu verwerfen. Mit Tntdb<br />

[6] existiert zudem eine flexible und<br />

robuste Möglichkeit, die Datenbanken<br />

MySQL, PostgreSQL, SQlite oder Oracle<br />

anzubinden.<br />

Tntnet ist auch nicht das einzige Projekt,<br />

das ein Webframework für C++ bereitstellt.<br />

Daneben existiert beispielsweise<br />

das Web-Toolkit Wt [7]. Dessen erklärtes<br />

Ziel ist es, die Webprogrammierung<br />

möglichst der GUI-Programmierung mit<br />

Qt nachzuempfinden. Das macht es vor<br />

allem für Single-page Web Applications<br />

interessant, die dem Desktop-Feeling<br />

möglichst nahe kommen sollen.<br />

Wer nicht auf MVC verzichten möchte<br />

und nach einer Art „C++ on Rails“ sucht,<br />

sollte sich das Treefrog-Projekt [8] ansehen.<br />

Es ist das jüngste Projekt der drei.<br />

Das Framework bietet sogar einen C++-<br />

Laufzeit-Interpreter an. Daneben setzt<br />

es auf die Philosophie „Konvention vor<br />

Konfiguration“, die sich in den letzten<br />

Jahren großer Beliebtheit unter den Webentwicklern<br />

erfreut. (mhu) n<br />

Infos<br />

[1] Mathias Huber, „Reifeprüfung fürs Web“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/​13, S. 21<br />

[2] Tntnet: [http:// www. tntnet. org]<br />

[3] Tntnet-Howtos:<br />

[http:// www. tntnet. org/ howto. html]<br />

[4] Code der Cxx-Tools:<br />

[https:// github. com/ maekitalo/ cxxtools]<br />

[5] Code von Tntnet: [https:// github. com/​<br />

maekitalo/ tntnet]<br />

[6] Tntdb: [http:// www. tntnet. org/ tntdb. html]<br />

[7] Wt: [http:// www. webtoolkit. eu]<br />

[8] Treefrog:<br />

[http:// www. treefrogframework. org]<br />

[9] Code zur Programmieraufgabe: [https://​<br />

github. com/ maekitalo/ bbstrassenfest]<br />

[10] Mathias Huber, „Sieg programmiert“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/​13, S. 46


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 01/2014<br />

96<br />

Bastelprojekt mit der vielseitigen Arduino-Platine<br />

Wie von Geisterhand<br />

Zauberhaft einfach: Mit ein paar Zeilen selbst geschriebener Firmware und einem s<strong>im</strong>plen Perl-Skript lässt<br />

Perlmeister Schilli einen seiner <strong>Linux</strong>-Rechner mit angestöpseltem Arduino-Board elektrische Geräte jeder Art<br />

per Relais ein- und ausschalten. Michael Schilli<br />

© Katrin Bpunkt, Photocase.com<br />

Jeden morgen um vier Uhr früh schaltet<br />

das Ubuntu-System in meinem Büro einen<br />

uralten Debian-PC in der Ecke mit 6<br />

TByte Plattenplatz an, um per Rsync ein<br />

Backup wichtiger Daten zu ziehen. Dazu<br />

stellt es per He<strong>im</strong>-Vernetzungsprotokoll<br />

X10, das in den USA populär ist, über das<br />

Stromnetz den Strom am Backup-PC an.<br />

Dieser fährt selbsttätig hoch, da in seinem<br />

Bios die Option »After Power Loss«<br />

01 /* S<strong>im</strong>ple relay controlling firmware<br />

02 * Mike Schilli, 2013 (m@perlmeister.com)<br />

03 */<br />

04<br />

05 void setup() {<br />

06 Serial.begin(9600);<br />

07 pinMode(11, OUTPUT);<br />

08 digitalWrite( 11, HIGH );<br />

09 pinMode(13, OUTPUT);<br />

10 digitalWrite( 13, LOW );<br />

11 }<br />

12<br />

13 void loop() {<br />

Listing 1: »relay_on_off.ino«<br />

auf »On« gesetzt ist. Sobald der SSH-<br />

Server des gestarteten Debian-Systems<br />

antwortet, startet das Backup. Nach dem<br />

Schlussakkord fährt der PC wieder herunter<br />

und der steuernde Rechner entzieht<br />

ihm wieder den Strom.<br />

Da mein X10-Setup aber aus unerfindlichen<br />

Gründen in geschätzt einem von<br />

100 Fällen versagt, habe ich die PC-an/​<br />

PC-aus-Steuerung auf ein Arduino-Board<br />

14 while( Serial.available() > 0 ) {<br />

15 int val = Serial.read();<br />

16 Serial.print( val );<br />

17 if( val == '1' ) {<br />

18 digitalWrite( 11, LOW );<br />

19 digitalWrite( 13, HIGH );<br />

20 } else {<br />

21 digitalWrite( 11, HIGH );<br />

22 digitalWrite( 13, LOW );<br />

23 }<br />

24 }<br />

25 }<br />

(rund 20 Euro) mit angeschlossenem<br />

Relaisboard (5 bis 10 Euro) umgestellt.<br />

Über den USB-Port schickt der steuernde<br />

Ubuntu-Rechner ein Kommando zu dem<br />

an einer seriellen Schnittstelle lauschenden<br />

Microcontroller.<br />

Dessen Firmware schaltet den Pegel auf<br />

einem Ausgangs-Pin um, den ich mit einem<br />

von zwei Relais einer extra Platine<br />

verbunden habe [2]. Abbildung 1 zeigt<br />

die mit einem so genannten Breadboard<br />

aufgebaute s<strong>im</strong>ple Schaltung, die zu<br />

Testzwecken auch noch per Leuchtdiode<br />

anzeigt, ob ein best<strong>im</strong>mter Ausgangs-Pin<br />

des Arduino an oder aus ist.<br />

Das ans Stromnetz angeschlossene Relais<br />

zieht mit einem Klicken an, der am anderen<br />

Ende des Relais verkabelte Stecker<br />

bekommt Netzspannung und der dort<br />

eingesteckte Verbraucher erwacht. Das<br />

verwendete Relais verträgt bis zu 5 Ampere<br />

bei 250 Volt (Abbildung 2).<br />

Einfach programmierbar<br />

Anders als Industrie-übliche Microcontroller<br />

lässt sich das Arduino-Board direkt<br />

über ein USB-Interface programmieren.<br />

Ein PC oder Mac schickt kompilierten,<br />

C-ähnlichen Code rüber, den der Arduino<br />

speichert. Dank seines Urladers läuft<br />

diese eingespielte Firmware bis zum<br />

Sankt-N<strong>im</strong>merleins-Tag.<br />

Der USB-Port versorgt das Board nicht<br />

nur mit Signalen zum Steuern der Firmware,<br />

sondern auch mit der nötigen Betriebsspannung<br />

zum Betrieb der Elektronikkomponenten.<br />

Das Board und die Relaisplatine<br />

benötigen also keine externe<br />

Spannungsquelle. Nach jedem Kaltboot<br />

fängt der Code sofort wieder an zu laufen.<br />

Um die Pins des Arduino von einem<br />

PC aus an- und auszuschalten, muss auf


www.linux-magazin.de<br />

Perl-Snapshot 01/2014<br />

Programmieren<br />

97<br />

Abbildung 1: Versuchsaufbau der Schaltung mit Arduino, Leuchtdiode und netzspannungstauglichem<br />

Relaisboard.<br />

Abbildung 2: Das Schaltboard mit zwei Relais, die Geräte bis 5 Ampere bei 250<br />

Volt steuern können.<br />

dem Arduino ein Programm auf Befehle<br />

von der USB-Schnittstelle horchen und<br />

diese ausführen.<br />

Wenn nicht Stangenware,<br />

dann eben Maßanzug<br />

Als Fertiglösung käme statt eines selbst<br />

geschriebenen Programms auch Firmata<br />

[3] in Betracht, eine freie, generell verwendbare<br />

Firmware. Einmal auf den Arduino<br />

geladen, erwartet sie Kommandos<br />

über das USB-Interface nach dem Firmata-Protokoll,<br />

manipuliert auf Anfrage<br />

den Strom auf den Pins oder liest ihre<br />

Werte aus und liefert Antworten zum<br />

anfragenden Hostrechner zurück.<br />

Allerdings operiert das gekaufte Relaisboard<br />

von der Firma Sainsmart [2] <strong>im</strong><br />

Low-Active-Modus, das Relais schnappt<br />

also zu, falls die Spannung am Eingang<br />

abfällt, und lässt los, falls 5 Volt anliegen.<br />

Da Firmata die Ausgangs-Pins aber be<strong>im</strong><br />

Hochfahren <strong>im</strong>mer auf Low stellt, würde<br />

das jedes Mal nach dem Einstöpseln des<br />

USB-Steckers den elektrischen Verbraucher<br />

einschalten, bevor ein Programm die<br />

Kontrolle übernehmen könnte.<br />

Mein selbst geschriebener Arduino-Sketch<br />

– so nennt die Arduino-Community<br />

Source code für die Firmware – in Listing<br />

1 setzt deswegen in der Funktion »setup()«<br />

die Ausgangsspannung am Pin 11 mit<br />

digitalWrite( 11, HIGH );<br />

sofort auf 5 Volt, sobald der Arduino<br />

hochfährt. Später, in der Hauptschleife<br />

»loop()«, prüft die Methode »available()«<br />

des Moduls »Serial«, ob Daten an der<br />

seriellen Schnittstelle des Arduino anliegen.<br />

Falls ja, liest »Serial.read()« ein<br />

anliegendes Byte aus und speichert es in<br />

der Variablen »val«. Hat der Host das Zeichen<br />

»1« geschickt (Ascii-Code 49), setzt<br />

die Firmware Pin 11 auf Low – und auf<br />

Listing 2: »relay«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Device::SerialPort;<br />

04 use Pod::Usage;<br />

05 use Log::Log4perl qw(:easy);<br />

06 Log::Log4perl‐>easy_init($DEBUG);<br />

07<br />

08 my( $cmd ) = @ARGV;<br />

09<br />

10 if( !defined $cmd ) {<br />

11 pod2usage();<br />

12 }<br />

13<br />

14 my $byte;<br />

15<br />

16 if( $cmd eq "on" ) {<br />

17 $byte = "1";<br />

18 } elsif( $cmd eq "off" ) {<br />

19 $byte = "0";<br />

20 } else {<br />

21 pod2usage();<br />

22 }<br />

23<br />

24 my $dev = Device::SerialPort‐>new(<br />

25 "/dev/ttyACM0",<br />

26 1,<br />

27 );<br />

28<br />

29 {<br />

30 DEBUG "Writing ...";<br />

31 $dev‐>write( $byte );<br />

32<br />

33 DEBUG "Reading ...";<br />

34 my $bytes = 2;<br />

35 my( $count, $data ) = $dev‐>read( $bytes );<br />

36<br />

37 DEBUG "Got $count bytes";<br />

38<br />

39 if( $count != $bytes ) {<br />

40 sleep 1;<br />

41 redo;<br />

42 }<br />

43 DEBUG "Received: \"$data\"\n";<br />

44 }<br />

45<br />

46 $dev‐>close();<br />

47<br />

48 __END__<br />

49<br />

50 =head1 NAME<br />

51<br />

52 <br />

53<br />

relay ‐ Switch relay on and off<br />

54 =head1 SYNOPSIS<br />

55<br />

56 <br />

57<br />

relay on|off<br />

58 =head1 AUTHOR<br />

59<br />

60 2013, Mike Schilli


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 01/2014<br />

98<br />

Abbildung 3: Die Arduino-IDE lädt die Firmware in den Microcontroller, hier das<br />

Skript aus Listing 1. Der speichert das Programm auf Dauer.<br />

Abbildung 4: Auf der seriellen Konsole der IDE schickt der Host-Benutzer Kommandos<br />

zum Ein- und Ausschalten des Relais.<br />

der dort angeschlossenen Relaisplatine<br />

zieht das Relais an.<br />

USB oder seriell<br />

Microcontroller hören traditionsgemäß<br />

auf Kommandos, die vom Host über eine<br />

serielle Schnittstelle ankommen. Doch<br />

bieten PCs seit vielen Jahren schon keine<br />

9-Pin-Buchsen mehr an, sondern eine<br />

Reihe von USB-Steckplätzen. Das ist auch<br />

nicht weiter schl<strong>im</strong>m, denn USB und das<br />

serielle Interface lassen sich leicht mit<br />

einem Chip (USB-to-Serial Con verter) ineinander<br />

umwandeln.<br />

Auf alten Arduino-Boards steckt deswegen<br />

noch ein extra Chip, der die USB-Signale<br />

Abbildung 5: Nach dem vierten Write-Kommando<br />

kommt die Antwort des Arduino zurück.<br />

in serielle Kommandos umwandelt, die<br />

der Microcontroller versteht. Der relativ<br />

neue Arduino Leonardo kommt erstmals<br />

mit einem Microcontroller daher, der von<br />

<strong>Haus</strong> aus USB versteht. Der Host schickt<br />

aber weiterhin serielle Signale.<br />

Auf dem Breadboard in Abbildung 1 habe<br />

ich auf Pin 13 auch noch eine Leuchtdiode<br />

mit 220-Ohm-Widerstand angeschlossen,<br />

und da die Firmware Pin 13 entsprechend<br />

dem eingegangenen Kommando setzt<br />

(also invers zum Relais-Ausgangs-Pin),<br />

schaltet sich die LED an, wenn das Relais<br />

aktiv ist.<br />

Mit der in Java geschriebenen Arduino-<br />

IDE ([3], [4]) lässt sich die Firmware<br />

nun hochladen, wie in Abbildung 3 zu<br />

sehen ist. Die IDE findet an ein <strong>Linux</strong>-<br />

System angeschlossene Arduinos normalerweise<br />

selbstständig, allerdings ist zu<br />

beachten, dass manche älteren Arduino-<br />

Boards andere Device-Schnittstellen verwenden:<br />

Die serielle Schnittstelle eines<br />

relativ aktuellen „Arduino Uno“-Board<br />

ist auf dem Hostsystem so unter »/dev/<br />

ttyACM0« zu erreichen, während ein<br />

schon etwas in die Jahre gekommener<br />

„Arduino Duemilanove“ auf »/dev/tty-<br />

USB1« horcht.<br />

Die IDE unterstützt alle jemals herausgekommenen<br />

Boardversionen, und der User<br />

kann das aktuell verwendete Board in<br />

einem Drop-Down-Menü auswählen.<br />

Klick and dirty<br />

Zum schnellen Testen der Firmware eignet<br />

sich der »Serial Monitor« <strong>im</strong> »Tools«-<br />

Menü der IDE, der Zeichen zum Arduino<br />

sendet und die Antwort der Firmware<br />

<strong>im</strong> Textfenster darstellt. Der Sketch in<br />

Listing 1 schickt jedes empfangene Zeichen<br />

mittels »Serial.print()« wieder an<br />

den Host zurück. Abbildung 4 zeigt, wie<br />

ich das Zeichen 1 an den Arduino sende<br />

und von der Firmware mittels »Serial.<br />

print()« den Ascii-Code 49 zurückerhalte.<br />

Gleichzeitig zieht das Relais an und die<br />

LED leuchtet.<br />

Was nun noch fehlt, ist ein Perl-Skript,<br />

das sich an der seriellen Schnittstelle am<br />

USB-Port andockt und dem Arduino<br />

Kommandos schickt: Listing 2. Es n<strong>im</strong>mt<br />

von der Kommandozeile entweder »on«<br />

oder »off« entgegen. Das über das serielle<br />

Interface zu übermittelnde Zeichen ist<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​2014/01/​plus]


www.linux-magazin.de<br />

Perl-Snapshot 01/2014<br />

Programmieren<br />

99<br />

Abbildung 6: In ein Gehäuse frisch aus dem Baumarkt eingebaut …<br />

Abbildung 7: … ergibt sich eine Art industrielles Design.<br />

also 1 oder 0, das Zeile 31 an den mit dem<br />

CPAN-Modul Device::SerialPort gebundenen<br />

Port schickt.<br />

Um zu verifizieren, dass der Arduino<br />

das Kommando auch erhalten und den<br />

gewünschten Ausgangs-Pin gesetzt hat,<br />

liest das Skript in Zeile 35 mit »read()«<br />

die von der Firmware zurückgeschickten<br />

Daten. Kommt nichts an, geht das Skript<br />

mit »redo« in die nächste Runde und untern<strong>im</strong>mt<br />

einen weiteren Schreibversuch.<br />

Wie Abbildung 5 zeigt, können einige<br />

Durchgänge nötig werden, insbesondere<br />

wenn ich den Arduino gerade erst eingestöpselt<br />

habe. Das Skript nutzt Log4perl<br />

<strong>im</strong> »$DEBUG«-Modus; wer es weniger<br />

geschwätzig mag, sollte Zeile 6 dahingehend<br />

modifizieren, dass der Loglevel<br />

»$ERROR« beträgt.<br />

Netzspannung einhegen<br />

Da am Relais saftige 230 Volt Wechselspannung<br />

anliegen, habe ich die endgültige<br />

Version meines Selbstbauprojekts<br />

ohne das Breadboard mit einem stabilen<br />

Gehäuse umhüllt und die Niedervolt-<br />

Platine sauber von herumbaumelnden<br />

Netzkabeln getrennt (Abbildung 6). Die<br />

Relaisplatine verfügt zum Glück über stabile<br />

Schraubklemmen, um die Netzkabel<br />

mit dem Relais zu verbinden.<br />

Wer mit verpolungssicheren Steckern<br />

hantiert, sollte mit dem Relais die Phasenleitung<br />

schalten, nicht etwa den Nullleiter.<br />

Softwerker, die sich nicht ganz sicher<br />

sind oder nicht genug Erfahrung<br />

be<strong>im</strong> Arbeiten mit Netzspannung haben,<br />

sollten einen Fachmann hinzuziehen statt<br />

Exper<strong>im</strong>ente auf gut Glück anzustellen –<br />

das <strong>Linux</strong>-<strong>Magazin</strong> will seine Leserschaft<br />

nicht durch Herzkammerfl<strong>im</strong>mern dez<strong>im</strong>iert<br />

sehen.<br />

Abbildung 7 zeigt die amerikanische<br />

Version des USB-Schalters, mit den in<br />

den USA üblichen 110-Volt-Flachsteckern.<br />

Auch verwenden amerikanische Elektriker<br />

keine Lüsterklemmen zum Verbinden<br />

von Litzenkabeln, sondern schrauben<br />

pragmatisch farbige Hütchen mit innenliegendem<br />

Metallgewinde auf, die „Twiston<br />

Wire Connectors“ [6].<br />

Das robuste Gehäuse aus dem Baumarkt<br />

ist eigentlich für die wetterfeste Verdrahtung<br />

von Stromkabeln <strong>im</strong> <strong>Haus</strong> gedacht<br />

und verleiht meinem Hobbyprojekt einen<br />

rustikal-industriellen Touch – vielleicht<br />

ist ja einer der Einkäufer bei Manufactum<br />

(„Es gibt sie noch, die guten Dinge“) unter<br />

den <strong>Linux</strong>-<strong>Magazin</strong>-Lesern?<br />

Ein großes Reich für<br />

König Arduino<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seiner seit 1997<br />

laufenden Kolumne forscht<br />

er jeden Monat nach praktischen<br />

Anwendungen der Skriptsprache Perl.<br />

Unter [mschilli@perlmeister. com] beantwortet<br />

er gerne Fragen.<br />

Mein Schalt-den-Debian-an-Aufbau siedelt<br />

am unteren Ende der Möglichkeiten<br />

der Arduino-Technik. Die Zahl der<br />

Selbstbauprojekte mit der günstigen Platine<br />

ist nicht nur über die Jahre enorm<br />

angewachsen, es hat sich auch ein sympathisches<br />

Ökosystem aus Erfindern und<br />

Produktanbietern entwickelt.<br />

Wer Details zur Arduino-Programmierung<br />

sucht, dem bietet [7] eine ausgezeichnet<br />

fundierte und detaillierte Einführung. Der<br />

Name des Open-Source-Boards soll übrigens<br />

gastronomischen Ursprungs sein:<br />

In der norditalienischen Kleinstadt Ivrea<br />

gibt es die „Bar di Re Arduino“ (Bar des<br />

Königs Arduin, [8]), die den Arduino-<br />

Erfindern wohlbekannt ist. (jk) n<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2014/ 01/ Perl]<br />

[2] Sainsmart 2-Channel Relay Module:<br />

[http:// www. amazon. com/ gp/ product/​<br />

B0057OC6D8] (USA), [http:// www. sainstore<br />

. de/ sainsmart‐2‐kanal‐5v‐relay‐modul‐fur<br />

‐arduino‐dsp‐avr‐pic‐arm. html] (DACH)<br />

[3] Firmata: [http:// firmata. org]<br />

[4] Arduino-IDE: [http:// arduino. cc]<br />

[5] Installationsanleitung für Ubuntu: [http://​<br />

www. arduino. cc/ playground/ <strong>Linux</strong>/ Ubuntu]<br />

[6] Michael Schilli, „Schraub- statt Lüsterklemmen“:<br />

[http:// usarundbrief. com/ 62/ p6. html]<br />

[7] Jeremy Blum, „Exploring Arduino – Tools<br />

and Techniques for Engineering Wizardry“:<br />

2013, John Wiley & Sons<br />

[8] (Markgraf) Arduin von Ivrea, 1002 bis 1004<br />

König von Italien: [http:// de. wikipedia. org/​<br />

wiki/ Arduin_von_Ivrea]


Service<br />

www.linux-magazin.de IT-Prof<strong>im</strong>arkt 01/2014<br />

100<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

<strong>Linux</strong>-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? Der IT-Prof<strong>im</strong>arkt weist Ihnen<br />

als zuverlässiges Nachschlagewerk<br />

den Weg. Die hier gelisteten Unternehmen<br />

beschäftigen Experten auf ihrem<br />

Gebiet und bieten hochwertige Produkte<br />

und Leistungen.<br />

Die exakten Angebote jeder Firma entnehmen<br />

Sie deren Homepage. Der ersten<br />

Orientierung dienen die Kategorien<br />

Hardware, Software, Seminaranbieter,<br />

Systemhaus, Netzwerk/TK und Schulung/Beratung.<br />

Der IT-Prof<strong>im</strong>arkt-Eintrag<br />

ist ein Service von <strong>Linux</strong>-<strong>Magazin</strong><br />

und <strong>Linux</strong>User.<br />

Online-Suche<br />

Besonders bequem finden Sie einen<br />

<strong>Linux</strong>-Anbieter in Ihrer Nähe über die<br />

neue Online-Umkreis-Suche unter:<br />

[http://www.it-prof<strong>im</strong>arkt.de]<br />

Informationen<br />

fordern Sie bitte an bei:<br />

Medialinx AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel.: +49 (0)89/99 34 11-23<br />

Fax: +49 (0)89/99 34 11-99<br />

E-Mail: anzeigen@linux-magazin.de<br />

IT-Prof<strong>im</strong>arkt – Liste sortiert nach Postleitzahl<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Schlittermann internet & unix support 01099 Dresden, Tannenstr. 2 0351-802998-1 www.schlittermann.de √ √ √ √<br />

<strong>im</strong>unixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.<strong>im</strong>unixx.de √ √ √ √ √<br />

Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de √ √ √ √ √<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de √ √ √ √ √<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de √ √ √ √ √<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com √ √ √ √<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de √ √ √<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de √ √ √ √<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de √ √ √ √ √<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jelt<strong>im</strong>er.de √<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de √ √ √ √ √<br />

talicom GmbH<br />

30169 Hannover, Calenberger Esplanade<br />

3<br />

0511-123599-0 www.talicom.de √ √ √ √ √<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net √ √ √ √ √<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de √ √ √ √ √ √<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de √ √ √ √ √<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.<br />

de<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 intevation.de √ √ √ √<br />

Sigs Datacom GmbH 53842 Troisdorf, Lindlaustraße 2c 02241-2341-201 sigs-datacom.de √<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de √ √ √ √<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de √ √ √ √ √<br />

GONICUS GmbH 59755 Arnsberg, Moehnestr. 55 02932-9160 www.gonicus.com √ √ √ √ √<br />

saveIP GmbH 64283 Darmstadt, Saalbaustr. 8-10 06151-666266 www.saveip.de √ √ √ √ √<br />

LAMARC EDV-Schulungen u. Beratung<br />

GmbH<br />

65193 Wiesbaden, Sonnenberger Straße<br />

14<br />

0611-260023 www.lamarc.com √ √ √ √<br />

<strong>Linux</strong><strong>Haus</strong> Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de √ √ √ √ √<br />

Manfred Heubach EDV und<br />

Kommunikation<br />

73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de √ √ √ √<br />

IT-Prof<strong>im</strong>arkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

√<br />

(S.102)


Seminare<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

LPIC-1 / LPIC-2 Training<br />

LPIC-1 (LPI 101 + 102)<br />

mit Ingo Wichmann,<br />

<strong>Linux</strong>hotel<br />

499 €<br />

LPIC-2 (LPI 201 + 202)<br />

mit Marco Göbel,<br />

Com Computertraining GmbH<br />

499 €<br />

MEDIALINX<br />

IT-ACADEMY<br />

www.medialinx-academy.de<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Einfache IMAP-Server<br />

mit Dovecot<br />

mit Peer Heinlein,<br />

Heinlein Support GmbH<br />

249 €<br />

www.medialinx-academy.de<br />

X25<br />

IT-Academy_1-9_LPIC-Schulungen.indd 1<br />

02.08.2013 11:53:58 IT-Academy_1-9_Dovecot-Schulung.indd Uhr<br />

1<br />

02.08.2013 11:53:34 Uhr<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

mit Klaus Knopper,<br />

Gründer der<br />

Knoppix-Distribution,<br />

KNOPPER.NET<br />

199 €<br />

MEDIALINX<br />

IT-ACADEMY<br />

Effiziente BASH-Skripte<br />

Automatisieren Sie komplexe<br />

Aufgaben mit Hilfe effizienter Skripte!<br />

www.medialinx-academy.de<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Python für<br />

Systemadministratoren<br />

mit Rainer Gr<strong>im</strong>m,<br />

science + computing AG<br />

199 €<br />

Vereinfachen Sie Ihren Sysadmin-Alltag<br />

mit Skripting-Know-How für Profis!<br />

www.medialinx-academy.de<br />

IT-Academy_1-9_Bash-Schulung.indd 1<br />

02.08.2013 11:53:16 IT-Academy_1-9_Python-Schulung.indd Uhr<br />

1<br />

02.08.2013 11:54:11 Uhr<br />

IT-Onlinetrainings<br />

MEDIALINX<br />

Mit Experten lernen. IT-ACADEMY<br />

IT-Sicherheit Grundlagen<br />

mit Prof. Dr.<br />

Tobias Eggendorfer,<br />

Hochschule<br />

Ravensburg-Weingarten<br />

299 €<br />

www.medialinx-academy.de<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

– die offiziellen Trainings<br />

mit Marco Welter,<br />

Zarafa Deutschland GmbH<br />

Zarafa Administrator<br />

249 €<br />

Zarafa Engineer<br />

249 €<br />

www.medialinx-academy.de<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Puppet Fundamentals<br />

– das offizielle Training<br />

NETWAYS ®<br />

mit Ach<strong>im</strong> Ledermüller,<br />

Netways GmbH<br />

299 €<br />

www.medialinx-academy.de<br />

1-9-Anzeige-IT-Sicherheit-Grundlagen.indd 1<br />

02.08.2013 11:52:51 IT-Academy_1-9_Zarafa-Schulung.indd Uhr<br />

1<br />

02.08.2013 11:55:03 IT-Academy_1-9_Netways-Schulung.indd Uhr<br />

1<br />

16.09.2013 12:34:33 Uhr


Service<br />

www.linux-magazin.de IT-Prof<strong>im</strong>arkt Markt 01/2014<br />

102<br />

IT-Prof<strong>im</strong>arkt/Markt<br />

IT-Prof<strong>im</strong>arkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 100)<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Waldmann EDV Systeme + Service<br />

74321 Bietighe<strong>im</strong>-Bissingen,<br />

Pleidelshe<strong>im</strong>er Str. 25<br />

07142-21516 www.waldmann-edv.de √ √ √ √ √<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />

<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />

ATIX AG 85716 Unterschleißhe<strong>im</strong>, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />

Tuxedo Computers GmbH 86343 Königsbrunn , Zeppelinstr. 3 0921 / 16 49 87 87 - 0 www.linux-onlineshop.de √ √ √ √<br />

OSTC Open Source Training and<br />

Consulting GmbH<br />

90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de √ √ √ √ √ √<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de √ √ √<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net √ √ √ √ √<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch √ √ √<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch √ √ √<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch √ √ √ √ √<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com √ √ √ √<br />

IT-Prof<strong>im</strong>arkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

n<br />

MAGAZIN<br />

SondErAkTion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

nUr<br />

MiT dVd!<br />

Jetzt schnell bestellen:<br />

• Telefon: 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

• Mail abo@linux-magazin.de<br />

• http://linux-magazin.de/probeabo<br />

Mit großem Gewinnspiel (Infos unter: www.linux-magazin.de/probeabo)<br />

*Preis gilt für Deutschland<br />

LM_1-4DIN_Sonderaktion_3Euro_2810-2013.indd 1<br />

05.11.2013 13:57:09 Uhr


Service<br />

www.linux-magazin.de Inserenten 01/2014<br />

104<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 34, 35<br />

ADMIN http://​www.admin-magazin.de 69<br />

Android User GY http://​www.android-user.de 53<br />

CANDAN THE WEB COMPANY http://​www.canhost.de 29<br />

ConSol Software GmbH http://​www.consol.de 13<br />

Contabo http://​www.contabo.de 51, 61<br />

Deutsche Messe AG http://​www.cebit.de 2<br />

Easy <strong>Linux</strong> http://www.easylinux.de 43, 82<br />

embedded projects GmbH http://​www.embedded-projects.net 102<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 101<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 15<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 67, 79, 102<br />

<strong>Linux</strong>-<strong>Magazin</strong> Online http://​www.linux-magazin.de 93<br />

<strong>Linux</strong>User http://​www.linuxuser.de 103<br />

Medialinx AG http://​www.medialinx-gruppe.de 83, 83<br />

Medialinx IT-Academy<br />

http://​www.medialinx-academy.de<br />

19, 54, 87, 101<br />

Netways GmbH http://​www.netways.de 75<br />

Open Source Press GmbH http://​www.opensourcepress.de 49<br />

PlusServer AG http://​www.plusserver.de 17, 27,<br />

45, 81, 89, 95<br />

Galileo Press http://​www.galileo-press.de 9<br />

Raspberry Pi Geek http://​www.raspberry-pi-geek.de 41<br />

GIMP-<strong>Magazin</strong> http://​www.g<strong>im</strong>p-magazin.de 63<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 101<br />

Heinlein Support GmbH http://​www.heinlein-support.de 39, 65<br />

Thomas Krenn AG http://​www.thomas-krenn.com 108<br />

Host Europe GmbH http://​www.hosteurope.de 11<br />

Tuxedo Computers GmbH http://​www.linux-onlineshop.de 107<br />

Ico Innovative Computer GmbH http://​www.ico.de 33<br />

Webtropia http://​www.webtropia.com 25, 31<br />

Veranstaltungen<br />

01.-02.02.2014<br />

FOSDEM’14<br />

ULB Campus Solbosch<br />

1050 Brüssel, Belgien<br />

https://fosdem.org/2014/<br />

17.-20.02.2014<br />

USENIX FAST ’14<br />

Santa Clara, CA, USA<br />

https://www.usenix.org/conference/fast14<br />

21.-23.02.2014<br />

SCALE 12x<br />

Los Angeles, CA, USA<br />

https://www.socallinuxexpo.org/scale12x<br />

25.-27.02.2014<br />

Wearables DevCon 2014<br />

San Francisco, CA, USA<br />

http://wearablesdevcon.com<br />

26.-27.02.2014<br />

Cloud Expo Europe 2014<br />

London, UK<br />

http://www.cloudexpoeurope.com<br />

26.-27.02.2014<br />

Data Centre World<br />

London, UK<br />

http://www.datacentreworld.com<br />

31.03.-02.04.2014<br />

Big Data TechCon<br />

Boston, MA, USA<br />

http://www.bigdatatechcon.com<br />

02.-04.04.2014<br />

USENIX NSDI ’14<br />

Seattle, WA, USA<br />

https://www.usenix.org/conference/nsdi14<br />

26.-27.04.2014<br />

<strong>Linux</strong>Fest Northwest 2014<br />

Bellingham, WA, USA<br />

http://www.linuxfestnorthwest.org<br />

29.04.-01.05.2014<br />

Android Builders Summit<br />

San Jose, CA, USA<br />

http://events.linuxfoundation.org/events/androidbuilders-summit<br />

29.04.-01.05.2014<br />

Embedded <strong>Linux</strong> Conference 2014<br />

San Jose, CA, USA<br />

http://events.linuxfoundation.org/events/embeddedlinux-conference<br />

27.-30.05.2014<br />

Android DevCon 2014<br />

Boston, MA, USA<br />

www.andevcon.com<br />

02.-03.06.2014<br />

Automotive <strong>Linux</strong> Summit<br />

Tokyo, Japan<br />

http://events.linuxfoundation.org/events/automotivelinux-summit-spring<br />

04.-06.06.2014<br />

CloudOpen Japan 2014<br />

Tokyo, Japan<br />

http://events.linuxfoundation.org/events/cloudopenjapan<br />

04.-06.06.2014<br />

<strong>Linux</strong>Con Japan 2014<br />

Tokyo, Japan<br />

http://events.linuxfoundation.org/events/linuxcon-japan<br />

13.-14.06.2014<br />

Texas <strong>Linux</strong> Fest 2014<br />

Austin, Texas, USA<br />

http://2014.texaslinuxfest.org<br />

23.-24.06.2014<br />

Enterprise End User Summit<br />

New York, NY, USA<br />

http://events.linuxfoundation.org/events/enterpriseend-user-summit<br />

23.-25.06.2014<br />

Cloud DevCon: AWS Developer Con 2014<br />

San Francisco, CA, USA<br />

www.clouddevcon.net<br />

20.-22.08.2014<br />

CloudOpen North America 2014<br />

Chicago, IL, USA<br />

http://events.linuxfoundation.org/events/cloudopennorth-america<br />

20.-22.08.2014<br />

<strong>Linux</strong>Con North America 2014<br />

Chicago, IL, USA<br />

http://events.linuxfoundation.org/events/linuxconnorth-america<br />

20.-22.08.2014<br />

USENIX Security ’14<br />

San Diego, CA, USA<br />

https://www.usenix.org/conference/usenixsecurity14<br />

13.-15.10.2014<br />

CloudOpen Europe 2014<br />

Düsseldorf, Germany<br />

http://events.linuxfoundation.org/events/cloudopeneurope<br />

13.-15.10.2014<br />

<strong>Linux</strong>Con Europe 2014<br />

Düsseldorf, Germany<br />

http://events.linuxfoundation.org/events/linuxconeurope<br />

09.-14.11.2014<br />

USENIX LISA ’14<br />

Seattle, WA, USA<br />

https://www.usenix.org/conference/lisa14<br />

18.-21.11.2014<br />

Android DevCon Fall 2014<br />

San Francisco, CA, USA<br />

www.andevcon.com


Impressum<br />

<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media, einem<br />

Geschäftsbereich der Medialinx AG<br />

Redaktionsanschrift Putzbrunner Str. 71<br />

81739 München<br />

Tel.: 089/993411-0<br />

Fax: 089/993411-99 oder -96<br />

Internet<br />

www.linux-magazin.de<br />

E-Mail<br />

redaktion@linux-magazin.de<br />

Geschäftsleitung<br />

Chefredakteur<br />

stv. Chefredakteure<br />

Redaktionsltg. Online<br />

Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />

Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum, Software, Kristian Kissling, kkissling@linux-magazin.de (kki)<br />

Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />

Charly Kühnast, Martin Loschwitz, Michael Schilli, T<strong>im</strong><br />

Schürmann, Mark Vogelsberger, Uwe Vollbracht, Arnold<br />

Z<strong>im</strong>prich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Klaus Rehfeld, Judith Erb (Art Director)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linux-magazin.de (tle)<br />

<strong>Linux</strong> <strong>Magazin</strong>e International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linux-magazin.de<br />

www.medialinx-shop.de<br />

www.linux-magazin.de/Produkte<br />

A.B.O. Verlagservice GmbH<br />

Gudrun Blanz (Teamleitung)<br />

abo@medialinx-gruppe.de<br />

Tel.: +49-(0)7131-2707-274<br />

Fax: +49-(0)7131-2707-78-601<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 6,40 4 7,05 Sfr 12,80 (siehe Titel)<br />

DELUG-DVD-Ausgabe 4 8,50 4 9,35 Sfr 17,— (siehe Titel)<br />

Jahres-DVD (Einzelpreis) 4 14,95 4 14,95 Sfr 18,90 4 14,95<br />

Jahres-DVD (zum Abo 1 ) 4 6,70 4 6,70 Sfr 8,50 4 6,70<br />

Mini-Abo (3 Ausgaben) 4 3,— 4 3,— Sfr 4,50 4 3,—<br />

Jahresabo No Media 4 65,20 4 71,90 Sfr 107,50 4 84,60<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 142,80 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 6,40 4 6,40 Sfr 8,30 4 6,40<br />

DigiSub (12 Ausgaben) 4 65,20 4 65,20 Sfr 84,80 4 65,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />

DELUG-DVD)<br />

3<br />

mit ADMIN-Abo und beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei<br />

Verlän gerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen <strong>im</strong> Ausland etc.<br />

auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht<br />

für Zeitschriften gelten.<br />

Pressemitteilungen<br />

Marketing und Vertrieb<br />

Mediaberatung D, A, CH<br />

presse-info@linux-magazin.de<br />

Petra Jaser, pjaser@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Michael Seiter, mseiter@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung USA Ann Jesse, ajesse@linux-magazine.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Darrah Buren, dburen@linux-magazine.com<br />

Tel.:+1 785 856 3082<br />

Pressevertrieb<br />

Druck<br />

Es gilt die Anzeigen-Preisliste vom 01.01.2013.<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißhe<strong>im</strong><br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Vogel Druck GmbH, 97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unixähnlichen<br />

Betriebssysteme verschiedener Hersteller benutzt. <strong>Linux</strong> ist eingetragenes<br />

Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner<br />

Erlaubnis verwendet.<br />

Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung<br />

durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von<br />

Manus kripten gibt der Verfasser seine Zust<strong>im</strong>mung zum Abdruck. Für unverlangt<br />

eingesandte Manuskripte kann keine Haftung übernommen werden.<br />

Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt be<strong>im</strong> Verlag. Es<br />

darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1994 – 2013 Medialinx AG<br />

Impressum 01/2014<br />

Service<br />

www.linux-magazin.de<br />

105<br />

Krypto-Info<br />

GnuPG-Schlüssel der <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion:<br />

pub 1024D/44F0F2B3 2000-05-08 Redaktion <strong>Linux</strong>-<strong>Magazin</strong><br />

<br />

Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3<br />

Public-Key der DFN-PCA:<br />

pub 2048R/7282B245 2007-12-12,<br />

DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A<br />

PGP-Zertifikat der DFN-User-CA:<br />

pub 2048R/6362BE8B (2007-12-12),<br />

DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06<br />

Root-Zertifikat der CAcert:<br />

Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/<br />

Email=support@cacert.org<br />

SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33<br />

MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B<br />

GPG-Schlüssel der CAcert:<br />

pub 1024D/​65D0FD58 2003-07-11 [expires: 2033-07-03]<br />

Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58<br />

uid CA Cert Signing Authority (Root CA) <br />

Autoren dieser Ausgabe<br />

Konstantin Agouros Wellenreiten 30<br />

Zack Brown Zacks Kernel-News 18<br />

Tobias Eggendorfer Jenseits der Bedrohung 64<br />

Charly Kühnast I'll be back-up 71<br />

Martin Loschwitz Datensilos für Dahe<strong>im</strong> 46<br />

Martin Loschwitz Neue Türpolitik 84<br />

Tommi Mäkitalo Web plus plus 90<br />

Sebastian Mogilowski <strong>Intelligenz</strong> <strong>im</strong> <strong>Haus</strong>e 24<br />

Olaf Radicke Web plus plus 90<br />

Michael Schilli Wie von Geisterhand 96<br />

Sven Seeberg Sesam öffne Dich! 28<br />

T<strong>im</strong> Schürmann Organisationstalente 56<br />

T<strong>im</strong> Schürmann Schnappschuss 72<br />

Sabine Sobola Aufgehübscht 76<br />

Mark Vogelsberger Adressflut 88<br />

Uwe Vollbracht Tooltipps 68


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 02/2014 02/2013 01/2014 01/2013<br />

106<br />

<strong>Vorschau</strong><br />

02/2014 Dachzeile<br />

MAGAZIN<br />

Webshop-Software <strong>im</strong> Vergleichstest<br />

© Lyudmyla Kharlamova, 123RF.com<br />

Dokumentieren und Publizieren<br />

Der nächste <strong>Magazin</strong>-Schwerpunkt will keinem <strong>Linux</strong>er einreden,<br />

dass er Readmes besser in Libre Office verfassen soll, um<br />

modern zu sein. Gleichwohl gibt es be<strong>im</strong> Dokumentieren und<br />

Publizieren genug Teilgebiete, bei denen selbst eingefleischte<br />

Ascii-Kämpfer nach kurzer Überlegung sagen: Ja, das ist<br />

gleichmaßen schön und cool.<br />

Genau nach solchen Fällen hält das <strong>Linux</strong>-<strong>Magazin</strong> Ausschau,<br />

nach dem HTML-5-Framework Reveal.js beispielsweise, das<br />

an<strong>im</strong>ierte Präsentationsfoliensätze erzeugt, insbesondere <strong>im</strong><br />

Gespann mit Emacs und Org-Mode, oder nach Dokumentationssysteme<br />

für Admins oder nach der Software IRC 2 Doc.<br />

Assemblies und eine große Vielfalt in den Ausgabenformaten<br />

fördern die Neuerungen in Docbook 5 zu Tage. Außerdem: Die<br />

schwierige Suche nach dem perfekten PDF-Programm.<br />

Überschrift<br />

Es gibt kaum eine Softwaregattung, deren Beitrag zur betrieblichen<br />

Wertschöpfung besser sichtbar wäre, als Webshops. Moderne<br />

Vertreter zeigen nicht nur ihre kaufanreizende Oberfläche,<br />

sondern managen am Hinterausgang auch Bezahlsysteme<br />

oder CRMs. Das nächste <strong>Magazin</strong> lädt zu einer Inventur ein.<br />

Kern-Technik<br />

Etwa so alt wie <strong>Linux</strong> ist der serielle I 2 C-Bus. PCs verwenden<br />

ihn nur intern, zum Messen der Motherboard-Temperatur beispielsweise,<br />

Embedded-Systeme wie der Raspberry Pi verschalten<br />

damit Sensoren und Aktoren auch extern. Der <strong>Linux</strong>-Kernel<br />

spricht I 2 C-Komponenten durch ein separates Subsystem an.<br />

Angular JS<br />

Webentwickler, die Googles Javascript-Toolkit Angular JS benutzen,<br />

bekommen es mit einem modularen Konzept zu tun,<br />

das auf Webclient-Seite bewährte Entwicklungsmethoden kombiniert<br />

und dem der Willen anzumerken ist, manch Programmierers<br />

Neigung zu Spaghetticode zu widerstehen.<br />

Die Ausgabe 02/2014<br />

erscheint am 2. Januar 2014<br />

© Paolo De Santis, 123RF.com<br />

<strong>Vorschau</strong><br />

auf 01/2014<br />

Die nächste Ausgabe erscheint am 19.12.2013<br />

Entertainment<br />

Ein <strong>Linux</strong>-PC eignet sich nicht nur zum Arbeiten: Wer sich entspannen<br />

möchte, der wirft den Audioplayer an, legt eine DVD<br />

ein oder surft in den Mediatheken der öffentlich-rechtlichen<br />

Sendeanstalten nach spannenden Dokumentationen und interessanten<br />

Eigenproduktionen.<br />

Wem das nicht genügt, dem bieten die einschlägigen Videoplattformen<br />

genug Bewegtbild für mehrere wLeben. Für alle<br />

diese Spielarten des digitalen Entertainments gibt es passende<br />

Tools, die den Konsum vereinfachen und oft sogar eigene Archivfunktionen<br />

mitbringen.<br />

Opt<strong>im</strong>ale Diagramme<br />

Das knifflige an Diagrammen liegt in der Anordnung der einzelnen<br />

Elemente. An diesem Punkt setzt Graphviz an, das Ihnen<br />

die Gestaltung der Diagrammelemente zum großen Teil<br />

abn<strong>im</strong>mt, sodass Sie den Kopf für die Inhalte freihaben.<br />

Min<strong>im</strong>alistischer Editor<br />

Der Editor Scribes unterstützt zwar die Tipparbeit durch zahlreiche<br />

Features, versucht aber, diese nicht als Selbstzweck in<br />

den Vordergrund zu stellen. Wie sich dieser Ansatz in der Praxis<br />

bewährt, zeigt ein Test in der kommenden Ausgabe.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!