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 Frontend<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.