05.06.2014 Aufrufe

Linux-Magazin Gute Connections (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

07/14<br />

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

Downtime-Killer:<br />

Kpatch vs. Kgraft<br />

Red Hat und Suse starten neue Versuche,<br />

Kernelpatches live einzuspielen S. 64<br />

Frosted<br />

Checkt eigenen Python-<br />

Code vorab auf Syntax- und<br />

Tipp fehler S. 92<br />

ERP-Suites<br />

Kivitendo, Wawision für<br />

eigene Server gegen den<br />

Clouddienst Actindo S. 42<br />

<strong>Gute</strong> <strong>Connections</strong><br />

Auf Draht oder mobil: Netzwerke<br />

für besondere Aufgaben<br />

■ Ungewöhnliches Netzwerk-Bonding am Beispiel<br />

eines Notebooks für kipplige Umgebungen S. 22<br />

■ WLAN XXL: Fosdem-Admin erklärt, warum das<br />

Umherlaufen der Besucher das größte<br />

Problem bildet S. 26<br />

■ Zwar nicht anonym, aber cool:<br />

Mesh-Netze im Einsatz S. 30<br />

■ So gehts: Abgelegene Gebäude<br />

per Richtfunk anbinden S. 36<br />

■ Hochauflösende Pings S. 70<br />

■ Crawler für den Eigenbedarf:<br />

Portia aggregiert Webdaten S. 50<br />

Im Test: Linksys WRT 1900 AC, offizieller Nachfolger der Open-WRT-Legende WRT 54G S. 76<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 07


Hirntrauma<br />

Login 07/2014<br />

Editorial<br />

Um zu untersuchen, was beim Programmieren im Kopf vorgeht, haben Passauer,<br />

Magdeburger und amerikanische Wissenschaftler arbeitende Entwickler in einen<br />

Magnetresonanztomografen (MRT) gelegt. Die Ergebnisse der Studie zeigen,<br />

dass das Analysieren von Quellcode dieselben Hirnregionen aktiviert wie beim<br />

Verstehen einer natürlichen Fremdsprache.<br />

Was im Schädel der Firefox-Programmierer vorgegangen ist, als sie begannen, die<br />

Sandbox für das künftige proprietäre DRM-Modul zu entwickeln, ist leider nicht<br />

überliefert. Vermutlich war kein MRT zur Hand, das gut mit Sauerstoff versorgte<br />

Hirnregionen von solchen im Standby-Modus unterscheiden kann.<br />

Browserhersteller, die DRM für Bezahlvideos etwa von Netflix umsetzen wollen,<br />

müssen ein so genanntes Content Decryption Module (CDM) integrieren.<br />

Jan Kleinert, Chefredakteur<br />

Microsoft, Apple und Google haben das für ihre Browser sofort getan, als die<br />

zugehörige EME-Spezifikation (Encrypted Media Extension) des W3C sich stabilisierte.<br />

Mozilla will jetzt nachziehen und die erwähnte Sandbox in Firefox’ Garten aufstellen. Andernfalls,<br />

schreibt Mozilla-Chefin Mitchell Baker, müssten die User jedes Mal einen anderen Browser starten, um ein<br />

DRM-geschütztes Video anzusehen.<br />

In Bakers Hirn sind in diesen Tagen wohl die Regionen gut durchblutet, die für das Streben nach Erfolg zuständig<br />

sind. Das kann man verstehen, denn es ist der Job der Foundation-Vorsitzenden, den eigenen Projekten zu Erfolg<br />

zu verhelfen. Kritikern von der Electronic Frontier Foundation (EFF) oder der Free Software Foundation (FSF)<br />

hält sie entgegen, dass ein Verzicht auf DRM zwar politisch richtig wäre, aber die Nützlichkeit von Firefox und<br />

damit dessen Akzeptanz beschädige. Videos zu schauen nähme ja einen großen Teil der Browsernutzung ein.<br />

Den Grund für Backers Angst, mit einem führenden Browser unterzugehen, kann man mit Blick auf ihren Lebenslauf<br />

verstehen: 1994 bis 2004 war sie in der Rechtsabteilung von Netscape Communications angestellt.<br />

Andererseits darf man die Foundation daran erinnern, was Firefox so bedeutend hat werden lassen. Kostenlose<br />

Browser, die funktionieren, gab es schon zuvor. Es waren doch die (Quell-)Offenheit und das fehlende Gewinnstreben,<br />

welche die Sympathie der Internetnutzer gewannen, oder?!<br />

Zumindest einen Mittelweg hätten Baker und Co. ins Auge fassen sollen, der die Anwender in den Fokus stellt,<br />

die DRM im Grundsatz nicht ablehnen. Es geht um die Web-Zuschauer, die einsehen, dass die Kosten, einen<br />

Spielfilm zu produzieren, wieder eingefahren werden müssen. Denn anders als bei freier Software, wo Firmen<br />

und Projekte über Maintenance oder individuelle Anpassungen Geld in die Kassen bekommen, geht das beim<br />

Fertigprodukt Spielfilm nicht ohne Weiteres. Angelina Jolie kann schwerlich bei bezahlbereiten Zuschauern<br />

persönlich zu Hause auf dem Couchtisch noch ein paar Szenenvarianten nachspielen.<br />

Firefox-Usern, die aus diesem Grund DRM hinzunehmen bereit sind, sollte die Foundation zumindest – und das<br />

wäre der Kompromiss – ein quelloffenes CDM anbieten statt des vernagelten Adobe-Modules, von dem keiner<br />

weiß, was es sonst noch alles anstellt. Der Einwand, der DRM-Algorithmus würde geknackt, dürfte man ihn<br />

studieren, zählt nicht: Die Stärke einer Verschlüsselung, darum handelt es sich ja im Kern, ist so sicher wie ihr<br />

mathematischer Algorithmus gut ist. Ihn zu implementieren würde im Kopf jedes Open-Source-Programmierers<br />

das Belohnungszentrum aktivieren. Könnte ein MRT-Hersteller der Mozilla Foundation ein Gerät spenden?<br />

www.linux-magazin.de<br />

3


Inhalt<br />

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

4<br />

Ungewöhnliche Netzwerksetups und -Topologien stehen im Mittelpunkt des <strong>Linux</strong>-<strong>Magazin</strong>-<br />

Schwerpunkts: Hilfe gibt‘s für Admins, die für eine mittelgroße oder große Konferenz das<br />

WLAN stricken sollen, dazu ein ausgeklügeltes Setup für das Bonding verschiedenartiger<br />

Netzwerkkarten, den Aufbau freier Mesh-Netze und die Richtfunkpraxis.<br />

Aktuell<br />

Titelthema: Netzwerke für besondere Aufgaben<br />

6 N ew s<br />

n Gluster-FS 3.5 erlaubt Snapshots<br />

n EuGH kippt Vorratsdatenspeicherung<br />

n Roundcube 1.0<br />

22 Bonding<br />

Titel<br />

Ausfallsicherheit schadet nie: Bonding<br />

lässt einen Laptop parallel und redundant<br />

in mehreren Netzwerken hängen.<br />

30 Mesh-Netzwerke<br />

Titel<br />

Sie helfen zwar nicht gegen Schnüffler,<br />

erfreuen sich aber dennoch zunehmender<br />

Beliebtheit: Ad-hoc-Netzwerke.<br />

Subnetz<br />

Subnetz<br />

Node 2<br />

Internet-Gateway 2<br />

Node 3<br />

Node 1<br />

Internet-Gateway 1<br />

Subnetz<br />

Node 5 / Backbone 2<br />

Node 4 / Backbone 1<br />

KDEs Dokumentenbetrachter Okular öffnet<br />

nun mehrere PDFs in Tabs.<br />

Gut vernetzt hält besser: Wie die Spinne im Netz<br />

sitzt der Laptop zentral an mehreren Fäden.<br />

Ausschnitt eines Mesh-Netzwerks mit fünf<br />

Knoten, von denen zwei zugleich als Backbones<br />

und zwei als Internet-Gateways fungieren.<br />

12 Zahlen & Trends<br />

n Mozilla implementiert DRM<br />

n Kein Debian-Jessie für Sparc<br />

n Xwayland wird Teil des X-Servers<br />

26 Fosdem-WLAN<br />

Titel<br />

Ein WLAN für tausende Clients ist eine<br />

Herausforderung, mit IPv6 noch mehr.<br />

Leider geht das noch nicht mit OSS.<br />

36 Richtfunk in der Praxis<br />

Titel<br />

Wer ein abgelegenes Gebäude ans Netz<br />

zu bringen hat, muss die Antennen oft<br />

mit der Hand ausrichten.<br />

Die Indie Box will den Nutzern die Hoheit über<br />

ihre Daten zurückgeben.<br />

20 Zacks Kernel-News<br />

n Posix-Ärger um Race Conditions<br />

n Schönere Stack-Dumps<br />

Service<br />

3 Editorial<br />

98 IT-Profimarkt<br />

99 Stellenanzeigen<br />

104 Veranstaltungen<br />

104 Inserenten<br />

105 Impressum<br />

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

Jeder Konferenzbesucher erwartet eine ansprechende<br />

Versorgung, überall, auch beim WLAN.<br />

DELUG-DVD<br />

Kali <strong>Linux</strong> 1.0.6<br />

TOOL<br />

Vom <strong>Linux</strong>-<strong>Magazin</strong> aufgemotzter<br />

Backtrack-Nachfolger mit Heartbleed-Exploit<br />

für Metasploit<br />

Kivitendo 3.1<br />

TOOL<br />

TOOL<br />

TOOL<br />

Virtuelle Debian-7-Maschine mit<br />

der fertig konfigurierten ERP-Suite<br />

zum Ausprobieren plus Doku<br />

Funken mit Verstand: Wer seine Firma erweitert,<br />

kann nicht überall ein LAN-Kabel verlegen.<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 41<br />

Baloo sucht<br />

Kubuntu 14.04 (32 und 64 Bit,<br />

KDE 4.13) mit Baloo anstelle von<br />

Nepomuk als lokaler Suchmaschine<br />

8 Stunden Video<br />

Von der „Open Source System<br />

Management Conference“ in Bozen<br />

über Nagios 4, Ntop NG und Co.


07/2014 07/2014<br />

Inhalt<br />

42 Verflixte Verwalter<br />

Ein- und Verkauf, Produktion, Zahlungswesen<br />

und Buchhaltung, das ist die Domäne<br />

der Warenwirtschaftssysteme.<br />

Drei davon testet dieser Artikel.<br />

70 Mit der Stoppuhr<br />

In Round Trip Times von Pings zeigt<br />

sich die Infrastruktur des Netzes. Wer<br />

das geschickt einsetzt, kann die Geräte<br />

hochauflösend überwachen.<br />

94 Eine Ziege, wahrscheinlich<br />

Kontra-intuitive Entscheidungen helfen<br />

bei vertrackten Problemen mit bedingten<br />

Wahrscheinlichkeiten. Wie das mit<br />

Perl geht, erklärt Perlmeister Schilli.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

41<br />

Einführung<br />

Auf der DELUG-DVD: Kali <strong>Linux</strong>, ein dic kes<br />

ERP-Paket, Videos von der OSSMC, Kubuntu<br />

14.04, und ein kostenloser ERP-Artikel<br />

42 Bitparade<br />

Titel<br />

Drei Enterprise-Resource-Planning-<br />

Manager im direkten Vergleich.<br />

63 Einführung<br />

Aus dem Alltag eines Sysadmin: Charly<br />

synct mit Iwatch und Inotify.<br />

64 Kernel-Live-Updater<br />

Titel<br />

<strong>Linux</strong>-Kernel ohne Reboot zu patchen,<br />

das versprechen Kpatch und Kgraft.<br />

88 Insecurity-Bulletin<br />

Er erschütterte das Vertrauen in Open<br />

Source wie selten zuvor: Eine Nachlese<br />

zum Heartbleed-Bug in Open SSL.<br />

50 Fleißiges Spinnchen<br />

Titel<br />

Webscraping mit dem Tool Portia.<br />

Erste Hilfe für den Kernel: Suse und Red Hat haben<br />

dafür ähnliche Ansätze entwickelt.<br />

Blutendes Herz: Ein Programmierfehler führte<br />

zum aufsehenerregendsten Bug des Jahres.<br />

Ziemlich fokussiert: Portia holt automatisiert<br />

Daten aus Webseiten und webt sie in Json ein.<br />

70 Pinger<br />

Titel<br />

Netze mit Pings detailliert überwachen.<br />

Hardware<br />

Programmieren<br />

92 Frosted<br />

Titel<br />

Der Code-Korrektor prüft Python-Code<br />

schon vor dem Ausführen auf Fehler.<br />

54 Baloo<br />

Vom Kobold zum Bären: Baloo ersetzt<br />

ab KDE 4.13 Nepomuk als semantische<br />

Desktop-Suchmaschine unter KDE.<br />

76 Linksys WRT 1900 AC<br />

Der Nachfolger für Linksys‘ WRT 54 ist<br />

da und glänzt mit moderner Hardware.<br />

Titel<br />

Forum<br />

Probier‘s mal mit Gemütlichkeit: Baloo soll vieles<br />

richtiger machen als sein Vorgänger.<br />

58 Tooltipps<br />

Im Kurztest: Checkit 0.2.0, Ddpt 0.94,<br />

Firejail 0.9.4, Gpgpwd 0.4, Ocserv 0.3.4,<br />

Webalizer 2.23.<br />

80 Entscheidungshilfe<br />

Der Staat als Open-Source-Kunde: Die<br />

EVB-IT und die OSBA-Handreichung.<br />

Ausschreibungen sind<br />

lästig, kompliziert,<br />

vor allem wenn OSS<br />

ins Spiel kommt. Hilfe<br />

naht von der OSBA.<br />

86 Tux liest<br />

Bücher über funktionale Pro grammierung<br />

sowie Open-Source-Städte.<br />

Fehler korrigieren, bevor das Skript um die Ohren<br />

fliegt: Frosted hilft Python-Programmierern.<br />

94 Perl-Snapshot<br />

Bayes-Formeln, diskrete Verteilungen und<br />

Perl knacken mathematische Probleme.<br />

Aus einem Zylinder<br />

mit einer<br />

schwarz-roten, einer<br />

schwarz-schwarzen<br />

und einer rot-roten<br />

Karte zieht ein Proband<br />

Karten.


Aktuell<br />

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

6<br />

News<br />

Nginx 1.6.0 mit SPDY 3.1 und SSL-Updates<br />

Der Webserver Nginx bringt<br />

in seiner stabilen Version 1.6.0<br />

[http://​nginx.​org/​#​1.​6‐stable] Verbesserungen<br />

an SSL mit.<br />

So gibt es die neue »ssl_session_reused«-Variable<br />

und die<br />

»ssl_buffer_size«- sowie die<br />

»ssl_session_tickets«-Direktiven<br />

und Bugfixes am »ssl_session_cache«.<br />

Zudem unterstützt der Server<br />

wesentlich das von Google<br />

entwickelte TCP-basierte SP-<br />

DY-Protokoll nach Draft 3.1.<br />

Nginx erlaubt es in der neuen<br />

Ausgabe, mit Hilfe bedingter<br />

Anfragen abgelaufene Cache-<br />

Inhalte neu zu bewerten.<br />

Das »ngx_http_auth_request_<br />

module« ermöglicht eine<br />

Client -Autorisierung, die auf<br />

dem Resultat einer untergeordneten<br />

Anfrage basiert.<br />

Liefert der Server einen Code<br />

»2xx« zurück, wird der Zugriff<br />

erlaubt, andernfalls gibt die<br />

Anmeldung einen auswertbaren<br />

Fehlercode zurück.<br />

Die Buildoption »‐‐with‐http_<br />

auth_request_module« aktiviert<br />

das Feature.<br />

Herunterladen lässt sich die<br />

stabile Version von Nginx unter<br />

[http://​nginx.​org/​en/​download.​<br />

​html], wo auch die Entwicklerversion<br />

1.7.0 bereitsteht. n<br />

Debian Squeeze erhält Long-Term Support<br />

Das Debian-Projekt lässt seiner<br />

<strong>Linux</strong>-Distribution in<br />

Version 6.0 (Squeeze) Long-<br />

Term Support (LTS) bis Februar<br />

2016 zukommen. Die regulären<br />

Security-Updates für<br />

Squeeze würden eigentlich<br />

am 31. Mai 2014 enden. Für<br />

die Architekturen i386 und<br />

Amd64 wird es nun die seit<br />

einer Weile diskutierte Verlängerung<br />

geben, insgesamt also<br />

fünf Jahre Pflege seit der Veröffentlichung.<br />

Benutzer anderer<br />

Hardware-Architekturen<br />

sind angehalten, ein Upgrade<br />

auf Debian 7 (Wheezy) vorzunehmen.<br />

Squeeze-LTS wird nicht vom<br />

üblichen Securityteam betreut,<br />

sondern von einigen<br />

Firmen und Ehrenamtlichen.<br />

Das Projekt sucht weitere Unternehmen,<br />

die sich beteiligen<br />

wollen. Einige Pakete sind allerdings<br />

davon ausgenommen,<br />

etwa Webanwendungen. Die<br />

Debianer wollen ein Tool zur<br />

Verfügung stellen, um diese<br />

unbetreuten Pakete auf einem<br />

System aufzuspüren. Die Erfahrungen<br />

mit Squeeze sollen<br />

in den Entscheidungsprozesse<br />

einfließen, ob es auch für<br />

Debian 7 und 8 verlängerten<br />

Support geben wird. n<br />

Gluster-FS 3.5 erlaubt Dateischnappschüsse und steigert Performance<br />

Eine ganze Latte an Neuerungen<br />

bringt Version 3.5 von<br />

Gluster-FS [http://​www.​gluster.​<br />

​org] mit, welche die Red-Hat-<br />

Community Anfang Mai angekündigt<br />

hat. Nennenswert<br />

sind zum Beispiel die File<br />

Snapshots: Sie erlauben es<br />

Gluster-FS, Schnappschüsse<br />

von einzelnen Dateien anzufertigen.<br />

Das neue Feature<br />

verstehen die Entwickler als<br />

Vorgeschmack auf die geplanten<br />

Volume Snapshots, die es<br />

erlauben sollen, die Uhr für<br />

VMs zurückzudrehen.<br />

Im Bugtracker warteten außerdem<br />

noch mehrere Anfragen<br />

zu Logging-Optimierungen,<br />

die sich die Entwickler<br />

in der aktuellen Version zur<br />

Brust genommen haben. Das<br />

Loggen soll jetzt klarer und<br />

aufschlussreicher sein, um<br />

beispielsweise Split-Brain-<br />

Szenarios und die davon betroffenen<br />

Dateien schneller zu<br />

erkennen.<br />

Clients stellen fest, ob ein Volume<br />

den BD-Translator verwendet<br />

und falls ja, welche<br />

von dessen Fähigkeiten. Eine<br />

neue Methode macht Daten<br />

direkt über GFID nutzbar. Das<br />

eröffnet Entwicklern einen<br />

Ankündigung von Gluster-FS 3.5, das nun Dateischnappschüsse erlaubt.<br />

weiteren Zugang zu Gluster<br />

und soll Datei-Operationen in<br />

einem Gluster-Volume vereinfachen.<br />

On-Wire-Kompression und<br />

‐Dekompression soll die Performance<br />

von Gluster-Volumes<br />

steigern, indem sie den<br />

Netzwerk-Overhead reduziert<br />

und ein besseres Verhältnis<br />

beim Einsatz von CPU-Kapazitäten<br />

und Netzwerkressourcen<br />

schafft. Änderungen am<br />

Volume starten in Gluster-FS<br />

3.5 nicht mehr automatisch<br />

den NFS-Server neu. Bestimmte<br />

NFS-Volume-Optionen<br />

lassen sich so bereits<br />

unterbrechungsfrei ändern,<br />

Graph-Modifikationen gehören<br />

aber noch nicht dazu. n


Open Source in Krankenhäusern<br />

In zwei Artikeln beschäftigte<br />

sich das Open Source Observatory<br />

(OSOR, [https://​joinup.​<br />

​ec.​europa.​eu]) im Mai mit dem<br />

Einsatz von <strong>Linux</strong> in Krankenhäusern.<br />

In Spanien arbeitet<br />

der größte Krankenhausbetreiber<br />

Quirón an einem<br />

Open-Source-Portal auf Basis<br />

von Open Stack, um Patienten<br />

ihre Radiologiedaten zugänglich<br />

zu machen.<br />

Das Projekt sei Teil eines dreijährigen<br />

Forschungsprojekts<br />

mit dem Namen Coco Cloud<br />

[http://​www.​coco‐cloud.​eu], das<br />

2013 rund 2,8 Millionen Euro<br />

von der Europäischen Kommission<br />

erhielt. Coco steht dabei<br />

für Confidential und Compliant<br />

und setzt auf Cloud OS<br />

von HP, das auf Open Stack<br />

basiert, aber auch proprietäre<br />

Komponenten enthält.<br />

Letztere fehlen an Warschaus<br />

Universitätsklinik:<br />

Das integrierte medizinische<br />

Systeme basiert komplett<br />

auf Open-Source-Bauteilen.<br />

Neben teuren Lizenzen würden<br />

proprietäre Systeme es<br />

verhindern, den Austausch<br />

von Gesundheitsdatensätzen<br />

nachzuvollziehen. Sogar innerhalb<br />

des Krankenhauses<br />

sei es kompliziert, Röntgenaufnahmen,<br />

MRIs (Magnetic<br />

Resonance Imaging) und<br />

ECGs (Elektrokardiogramme)<br />

auszutauschen, schreibt<br />

OSOR und bezieht sich dabei<br />

auf Radosław Rzepka, den<br />

Projektleiter.<br />

Der Ansatz beruht unter anderem<br />

auf Ubuntu, dem Webserver<br />

Nginx, der Datenbank<br />

PostgreSQL, der Suchmaschine<br />

Elasticsearch, als Programmiersprachen<br />

kommen<br />

Python und Ruby zum Einsatz,<br />

letztere mit den Web-Application-Frameworks<br />

Rails,<br />

Sinatra und Flask. Nicht nur<br />

kann das Personal dank des<br />

Systems medizinische Daten<br />

inklusive Scans aus verschiedenen<br />

Quellen verwenden,<br />

es unterstützt zudem VPN-<br />

Zugriffe, bei Bedarf auch via<br />

Smartphone.<br />

n<br />

OTRS mit Ticketzuordnung und mehr<br />

Die OTRS AG [http://​www.​otrs.​<br />

​com] stattet ihre quelloffene<br />

Help-Desk-Software mit neuen<br />

Features aus, die besonders<br />

für Callcenter interessant<br />

sind. Da ist zum einen das<br />

Addon Ticket Allocation, es<br />

ordnet Tickets automatisch<br />

Mitarbeitern zu, die gerade<br />

wenige Tickets bearbeiten<br />

oder über die gefragten Kompetenzen<br />

verfügen. Die Regeln<br />

berücksichtigen zudem<br />

hoch eingestufte SLAs.<br />

Das zweite Feature bindet die<br />

Asterisk-basierte Telefonanlage<br />

Moby Dick ein. Sie stammt<br />

vom OTRS-Partner Pascom<br />

und zeichnet sich durch eine<br />

komfortable Weboberfläche<br />

aus, die sich in OTRS integriert.<br />

Der Admin kann sie so<br />

konfigurieren, dass sie automatisch<br />

alle Tickets eines Anrufers<br />

anzeigt.<br />

Die neuen Addons gibt es<br />

vorerst nur für Servicekunden<br />

der OTRS AG. Wird die<br />

Ticket Allocation jedoch stark<br />

nachgefragt, könnte sie in die<br />

Open-Source-Version 3.5 wandern,<br />

sagt der Hersteller. n<br />

Die Ticketzuordnung lässt sich mit zahlreichen Parametern steuern.<br />

News 07/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

7<br />

Europäischer Gerichtshof kippt Vorratsdatenspeicherung<br />

Der Europäische Gerichtshof<br />

bestätigte Anfang April, dass<br />

die Richtlinie zur Vorratsdatenspeicherung<br />

über das Ziel<br />

hinausschießt. Das kann „bei<br />

den Betroffenen das Gefühl<br />

[…] erzeugen, dass ihr Privatleben<br />

Gegenstand einer ständigen<br />

Überwachung ist“.<br />

Weil die Richtlinie aber nicht<br />

die Inhalte der Kommunikation<br />

selbst speichere, bleibe<br />

das Wesen des „Schutzes<br />

personenbezogener Daten“<br />

gewahrt. Zudem diene die<br />

Datensammlung tatsächlich<br />

dem Gemeinwohl, weil sich<br />

damit schwere Kriminalität<br />

bekämpfen lasse.<br />

Allerdings überschreite die<br />

derzeitige Richtlinie mehrfach<br />

die Verhältnismäßigkeit.<br />

Sie erstrecke sich „ohne irgendeine<br />

Differenzierung,<br />

Einschränkung oder Ausnahme“<br />

auf alle Personen, elektronischen<br />

Verkehrsmittel und<br />

Verkehrsdaten, ohne das Ziel<br />

der Bekämpfung schwerer<br />

Straftaten zu berücksichtigen.<br />

Es fehlen objektive Kriterien<br />

von Seiten der nationalen<br />

Behörden, die einen Zugang<br />

zu den Daten rechtfertigen.<br />

Zudem gebe es keine unabhängige<br />

Instanz (ein Gericht<br />

oder eine Verwaltungsstelle),<br />

welche die Zugriffe im Vorfeld<br />

kontrolliert.<br />

Die Speicherfrist sei nicht auf<br />

das Notwendigste begrenzt,<br />

sondern liege irgendwo zwischen<br />

sechs und 24 Monaten,<br />

ohne die Datenkategorien zu<br />

unterscheiden und ohne objektive<br />

Kriterien. Es fehle ein<br />

Schutz vor dem Missbrauch<br />

der Daten. Es gebe keine Garantien,<br />

um die Daten vor<br />

unberechtigtem Zugang und<br />

deren Nutzung zu schützen.<br />

Vielmehr dürften die Dienste-<br />

Anbieter (etwa die Internetprovider)<br />

in das gewählte Sicherheitsniveau<br />

„wirtschaftliche<br />

Erwägungen“ einfließen<br />

lassen.<br />

Nicht zuletzt kritisiert der Gerichtshof,<br />

dass die Richtlinie<br />

weder eine Speicherung der<br />

Daten im Unionsgebiet vorschreibe,<br />

noch die Überwachung<br />

durch eine unabhängige<br />

Stelle. Mit anderen Worten,<br />

die Daten dürfen theoretisch<br />

auch auf Servern lagern, die<br />

nicht den strengeren EU-Datenschutzstandards<br />

folgen. n


Aktuell<br />

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

8<br />

Roundcube in Version 1.0.0<br />

Nach acht Jahren Entwicklung<br />

haben die Macher von Roundcube<br />

Webmail eine erste stabile<br />

Version 1.0.0 ihrer Software<br />

veröffentlicht. Die lässt<br />

sich mit neueren und älteren<br />

Browsern nutzen, steht unter<br />

GPLv3 und spricht IMAP.<br />

Gegenüber der letzten stabilen<br />

Version hat Roundcube einige<br />

Neuerungen an Bord. Die<br />

Konfiguration befindet sich<br />

nun noch in einer einzigen<br />

Datei. Es ist möglich, Kontakte<br />

per Drag & Drop in Gruppen<br />

zu vereinen und Vcards<br />

mit Gruppenzugehörigkeiten<br />

zu importieren, die nun auch<br />

in der Suche auftauchen. E-<br />

Mail-Nachrichten lassen sich<br />

in den aktuell ausgewählten<br />

Ordner importieren.<br />

Roundcube beherrscht zudem<br />

die fortgeschrittenen Funktionen<br />

von LDAP-Adressbüchern.<br />

Ein Button lässt den<br />

Anwender E-Mails wahlweise<br />

im Text- oder HTML-Format<br />

betrachten. Entwürfe speichert<br />

Roundcube lokal ab,<br />

damit sie nicht verloren gehen.<br />

Daneben gibt es eine verbesserte<br />

Keyboard-Navigation<br />

und ein optimiertes User-Interface,<br />

um auf Tablets zu arbeiten.<br />

Nicht zuletzt erinnert<br />

die Software den Anwender<br />

über ein Plugin an vergessene<br />

Attachements. Eine Übersicht<br />

der zahlreichen Features liefert<br />

[http://​roundcube.​net/​about/],<br />

hier lassen sich auch die Anforderungen<br />

an den Server<br />

nachlesen.<br />

n<br />

Kernel 3.15: Zehnmal schneller Aufwachen<br />

Intel-Ingenieur Todd Brandt<br />

hat offenbar einen cleveren<br />

Weg gefunden, auf dem ein<br />

<strong>Linux</strong>-System nach einem<br />

Sus pend to Disk zehnmal<br />

schnel ler aufwacht, ohne<br />

dass dadurch Änderungen an<br />

der komplexen Powermanagement-Infrastruktur<br />

im Kernel<br />

nötig werden. Seine Lösung<br />

besteht darin, den Treiber für<br />

die ATA-Laufwerke zu optimieren.<br />

Der Resume dauere<br />

laut Brandt bisher so lange,<br />

weil der ATA-Treiber warte,<br />

bis die ATA-Hardware online<br />

sei. In dieser Zeit tue der<br />

Kernel jedoch nichts weiter,<br />

sondern wartet seinerseits auf<br />

die Hardware.<br />

Zwei Patches bewegen nun<br />

den ATA-Port-Treiber dazu,<br />

das Wakeup-Kommando auszuführen<br />

und die Regie gleich<br />

wieder an den Kernel abzugeben.<br />

Letzterer reiht die Befehle<br />

in einer Warteschlange<br />

auf und übergibt sie an das<br />

Laufwerk, sobald es online<br />

ist. Der Rest des Systems müsse<br />

dadurch nicht auf die ATA-<br />

Hardware warten.<br />

Laut seinen privaten Tests<br />

seien seine drei Systeme mit<br />

Ubuntu 13.10 und einem<br />

Upstream-Kernel etwa zehnmal<br />

schneller aus dem Suspend-to-Disk<br />

aufgewacht. Der<br />

Code ist bereits in Kernel 3.15<br />

gelandet.<br />

n<br />

Prominenter Tails-Nutzer<br />

Dass Anonymisierungs-Distributionen<br />

nützlich sind, ist<br />

schon länger klar. Das Livesystem<br />

Tails kann sich nun<br />

auch einen ziemlich prominenten<br />

Nutzer auf die Fahnen<br />

schreiben: Edward Snowden.<br />

Wie der Journalist Klint Finley<br />

in einem Wired-Artikel [http://​<br />

​www.​wired.​com/​2014/​04/​tails] mitteilt,<br />

habe Snowden nicht nur<br />

GPG zum Verschlüsseln seiner<br />

E-Mails verwendet, sondern<br />

auch Tails, um seine Spuren<br />

vor der NSA-Überwachung zu<br />

verwischen.<br />

Edward Snowden habe Tails verwendet, behauptet ein Wired-Artikel.<br />

Die Information erhielt Wired<br />

von Laura Poitras, einer Dokumentarfilmerin,<br />

der Snowden<br />

2013 sein Material anvertraute.<br />

Sie gibt an, er habe<br />

über Tails mit ihr und dem<br />

Journalisten Glenn Greenwald<br />

kommuniziert.<br />

Die Anonymisierungs-Livedistribution<br />

Tails bootet von<br />

USB-Stick oder DVD. Sie speichert<br />

Daten nicht lokal ab und<br />

leitet Verbindungen ins Internet<br />

über das Tor-Netzwerk.<br />

Laut Poitras sei sie nach einer<br />

Einarbeitungsphase, zu der es<br />

gehöre, das Image zu verifizieren,<br />

einfach zu bedienen.<br />

Die Entwickler hinter Tails<br />

sind anonym, der Quellcode<br />

ist frei verfügbar.<br />

Mit an Bord hat Tails diverse<br />

Tools, um Internetverbindungen<br />

zu verschlüsseln, etwa<br />

GPG, Keepassx und das Chat-<br />

Verschlüsselungs-Plugin Off<br />

the Record (OTR). Diese sind<br />

unter anderem nötig, weil<br />

auch Tails keine hundertprozentige<br />

Anonymität im Netz<br />

gewährleisten kann.<br />

Die Freedom of the Press<br />

Foundation jedenfalls lobte<br />

die Rolle der Livedistribution<br />

zur Bewahrung der Pressefreiheit.<br />

Sie fordert ihre Leser<br />

dazu auf, die Tails-Entwickler<br />

mit Spenden zu unterstützen.<br />

Ende April ist zudem nach<br />

einer mehrjährigen Entwicklungszeit<br />

die Version 1.0 der<br />

Software erschienen. n


Pidora 2014 bringt Fedora 20 auf den Pi<br />

News 07/2014<br />

Aktuell<br />

Pidora, ein Fedora-Remix für<br />

den Einplatinen-Computer<br />

Raspberry Pi, ist in Version<br />

2014 mit neuen Features erschienen.<br />

Die Release ist ein<br />

Build von Fedora 20 für die<br />

Architektur ARMv6, fast alle<br />

Fedora-Pakete stehen zur<br />

Installation per Yum bereit.<br />

Pidora bringt ein Kernel-Entwicklungspaket<br />

für Anwender<br />

mit, die eigene Treiber schreiben<br />

wollen.<br />

Daneben haben die Macher<br />

das Booten beschleunigt und<br />

den Headless-Modus verbessert.<br />

Die Konfiguration beim<br />

ersten Booten (»firstboot«)<br />

lässt sich über ein grafisches<br />

Tool vornehmen. Das<br />

Betriebssystem-Image ist zunächst<br />

klein, damit es schnell<br />

lädt, und wächst dann automatisch.<br />

Das Vergrößern des<br />

Root-Dateisystems funktioniert<br />

nun auch auf logischen<br />

Partitionen.<br />

Weitere Details enthält die Release-Mitteilung<br />

[http://​pidora.​<br />

​ca/​pidora/​releases/​20/], am selben<br />

Ort lässt sich Pidora 20<br />

auch herunterladen. n<br />

www.linux-magazin.de<br />

9<br />

Python 2.7 erhält Support bis 2020<br />

Mitte April fand in Kanada die<br />

Pycon statt, eine internationale<br />

Konferenz für Python-Entwickler.<br />

Dort hatte Sprachenerfinder<br />

Guido van Rossum<br />

die größtmögliche Aufmerksamkeit<br />

der Community für<br />

sein Update des PEP 0373 (Python<br />

Enhancement Proposal).<br />

Es definiert die Roadmap für<br />

Python 2.7, das van Rossum<br />

laut seiner Änderung noch<br />

bis ins Jahr 2020 unterstützen<br />

möchte.<br />

Damit will der Entwickler offenbar<br />

für Planungssicherheit<br />

in Firmen und Institutionen<br />

sorgen, die Python noch nicht<br />

auf Version 3 portiert haben.<br />

Python 2.8 werde es nicht geben.<br />

Kritiker stört, dass Python-2-Nutzer<br />

den Übergang<br />

zu Python 3 nun noch länger<br />

hinauszögern könnten. n<br />

Anzeige


Aktuell<br />

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

10<br />

Kurznachrichten<br />

Dada Mail 7.0.0: Freie Mailinglisten-Software mit einer Community- und einer<br />

Pro-Version. Neu: Erstmals lassen sich mit dem Tool geschlossene Mailinglisten<br />

betreiben. Daneben können die Empfänger den Missbrauch der<br />

Mailingliste an den Listeneigentümer melden. Die Datenbankeinträge der<br />

Empfänger erhalten einen Timestamp für den Zeitpunkt der Anmeldung,<br />

Felder lassen sich als verpflichtend konfigurieren und Massenupdates sind<br />

möglich. Zudem haben die Entwickler die Suche erweitert, sodass der<br />

Anwender auch in einzelnen Feldern und in Zeiträumen für die Anmeldung<br />

recherchieren kann. Lizenz: GPLv2 [http://​dadamailproject.​com]<br />

Qemu 2.0: Optionenreiche und flotte Emulationssoftware, die keine<br />

Gast​erweiterungen braucht. Neu: Die Entwickler haben einige On-Board-<br />

Busse umbenannt, damit diese eindeutige Namen erhalten. Der Tiny<br />

Code Generator (TCG) beherrscht ARMv8-Instruktionen im 32-Bit-Modus<br />

und unterstützt alle dem User zugänglichen 64-Bit-Mode-Instruktionen<br />

mit Ausnahme von CRC und den Krypto-Erweiterungen. Für AArch64<br />

praktiziert Qemu 2.0 ein rudimentäres Disassembling, was aber einen<br />

installierten C++-Compiler voraussetzt sowie KVM. Im Zusammenspiel<br />

mit Xen klappt nun das Durchreichen von Laufwerken besser, die ein ROM<br />

verwenden. Beim Live Snapshot Merge lässt sich der aktive Layer eines<br />

Image in einen Snapshot einfügen. Die Live- und Offline-Merge-Funktionen<br />

verändern das Zielimage dabei in der Größe, die Backends für Gluster und<br />

I-SCSI unterstützen Snapshot-Merges. Lizenz: GPLv2 [http://​qemu.​org]<br />

Seafile 3.0: Eine Open-Source-Lösung, die zugleich als sicherer Onlinespeicher<br />

und als Filesharing-System dient. Neu: Die Weboberfläche des<br />

Servers hat ein Redesign erfahren, das mehr Informationen auf einen<br />

Blick anzeigt. Die Entwickler haben das Speichermodell überarbeitet<br />

und so die Performance verbessert. Es ist zudem möglich, das Passwort<br />

einer passwortgeschützten Dateibibliothek zu ändern. Die Neuerungen<br />

führen allerdings zu eingeschränkter Kompatibilität gegenüber mit der<br />

Vorgängerversion: Der volle Umfang an Features lässt sich nur ausschöpfen,<br />

wenn Client und Server in Version 3.0 zum Einsatz kommen. Lizenz:<br />

GPLv3 [http://​seafile.​com]<br />

Redis 2.8.9: Eine schnelle In-Memory-Datenbank, die auf das Key-Value-<br />

Schema setzt. Neu: Eigentlich eine Patch-Release, hat die Version lediglich<br />

neue Features zu bieten. Als Datenstruktur haben die Macher des<br />

In-Memory-Datenspeichers den Hyperloglog-Algorithmus von Philippe<br />

Flajolet in die Codebasis aufgenommen. Er erkennt mit Hilfe von Zufallsalgorithmen<br />

die Anzahl einzigartiger Elemente in einem Datenset. Die<br />

drei neu eingeführten Kommandos »ZRANGEBYLEX«, »ZLEXCOUNT« und<br />

»ZREMRANGEBYLEX« unterstützen lexikografische Reichweiten-Anfragen<br />

für geordnete Datensatzstrukturen, die Redis zum Beispiel in einen performanten<br />

Autocompletion-Server verwandeln. Auch Sekundärindizes und<br />

Graphen erstellt Redis dank der lexikografischen Reichweiten-Anfragen<br />

schneller. Die Änderungen haben dabei weder Einfluss auf den Speicherverbrauch<br />

der geordneten Datensets noch auf das RDB-Dateiformat.<br />

Lizenz: BSD [http://​redis.​io]<br />

Django CMS 3.0: Python-basiertes Contentmanagement-System. Neu: Das<br />

Frontend lässt sich komplett ändern, ohne auf das Backend zurückgreifen<br />

zu müssen. Apps oder Plugins greifen auf eine überarbeitete Toolbar zu.<br />

Alle Seiten verfügen über eine Undo- und Redo-Option, ein Installer hilft<br />

das CMS in Minuten aufzusetzen. Django CMS arbeitet schneller, Inhalte<br />

lassen sich sprachunabhängig publizieren und es gibt neue Bearbeitungsmodi.<br />

Im Content-Modus bearbeitet der Admin Inhalte von Plugins, im<br />

Structure-Modus kümmert er sich um die Baumstruktur der Plugins. Die<br />

wurden aus dem Kern der Software entfernt, sie lassen sich nun kopieren<br />

und einfügen. Schließlich ersetzt Django CMS die bisherigen Standard-<br />

Texteditoren Wymeditor und Tinymce durch Ckeditor. Lizenz: BSD [https://​<br />

​www.​django‐cms.​org]<br />

KDE SC 4.13 verbessert Kontact und Kmail<br />

Utopic Unicorn<br />

Das Open-Source-Projekt KDE<br />

hat seine Desktopanwendungen<br />

sowie die Entwicklerplattform<br />

auf Version 4.13<br />

aktualisiert. Neben Bugfixes<br />

bringt sie auch neue Features:<br />

Der Mailclient Kmail erhielt<br />

Unterstützung für Cloud-<br />

Speicherdienste. Statt eines<br />

Attachment kann der Anwender<br />

einen Link auf Dropbox,<br />

Box, Yousendit oder Kolab-<br />

KDEs Dokumentenbetrachter Okular öffnet nun mehrere PDFs in Tabs.<br />

Server & Co. schicken, wo<br />

die Dateien lagern. Daneben<br />

unterstützen die Sieve-Skripte<br />

Abwesenheitsnachrichten auf<br />

mehreren Servern. Verbesserungen<br />

am Kontact-Cache sollen<br />

die meisten Operationen<br />

beschleunigen.<br />

Der Dokumentenbetrachter<br />

Okular kann mehrere Dokumente<br />

in Tabs öffnen, ein<br />

neuer Maus-Modus dient als<br />

Lupe. Dem Editor Kate haben<br />

die Entwickler eine Animation<br />

beim Schließen von Klammern<br />

sowie einen überarbeiteten<br />

Statusbalken spendiert.<br />

Neu an Bord ist Artikulate, ein<br />

Aussprachetrainer für Fremdsprachen.<br />

Nicht zuletzt haben<br />

die Entwickler an der neuen<br />

Infrastruktur für die semantische<br />

Suche gearbeitet. n<br />

Laut Ubuntus Hauptsponsor<br />

Mark Shuttleworth soll das<br />

nächste Ubuntu 14.10 „Utopic<br />

Unicorn“ heißen. Den Fokus<br />

legt Shuttleworth darin offenbar<br />

auf Devops: Ubuntu soll<br />

nicht nur Aktualisierungen<br />

für Apps sofort ausliefern,<br />

sondern auch in der Cloud<br />

und auf Hardware optimal<br />

skalieren. Zugleich wolle das<br />

Projekt Systemd gut integrieren<br />

und sich von Python 2<br />

verabschieden.<br />

Ubuntus Kernelteam kündigte<br />

bei der Gelegenheit an, den<br />

Kernel 3.13 bis April 2016 weiter<br />

zu pflegen. Damit übernimmt<br />

es den Job von Greg<br />

Kroah-Hartman, der zuvor<br />

den Kernel 3.13.11 zur letzten<br />

von ihm betreuten Version erklärt<br />

hatte. (kki/mfe/mhu) n


Aktuell<br />

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

12<br />

Zahlen & Trends<br />

EFF-Dachs soll Privatsphäre schützen<br />

Die Electronic Frontier Foundation<br />

(EFF) hat mit dem<br />

Privacy Badger eine Anti-Tracking-Erweiterung<br />

für Firefox<br />

und Chrome entwickelt und<br />

bittet um Tests. So will die<br />

Organisation auf die Weigerung<br />

der Industrie reagieren,<br />

der „Do not track“-Selbstverpflichtung<br />

nachzukommen,<br />

so wie es Yahoo kürzlich angekündigt<br />

hat.<br />

Die EFF [https://​www.​eff.​org]<br />

zitiert eine Mozilla-Studie,<br />

nach der Privatsphäre das<br />

wichtigste Anliegen der Browserbenutzer<br />

sei. Warum aber<br />

ausgerechnet ein Dachs (englisch<br />

Badger) diese schützen<br />

soll, bleibt wohl das Geheimnis<br />

der EFF.<br />

Die Erweiterung soll spionierende<br />

Werbebanner und unsichtbare<br />

Tracker automatisch<br />

erkennen und blockieren. Sie<br />

behält die Bilder, Skripte und<br />

Werbebanner im Auge, die<br />

Drittanbieter den Besuchern<br />

einer Webseite unterschieben<br />

möchten. Tragen die Drittanbieter<br />

wichtige Funktionen<br />

zur Webseite bei, erlaubt<br />

Privacy Badger zwar den Einsatz,<br />

filtert aber die Tracking<br />

LLVM-Compiler-Projekt gründet Stiftung<br />

Das LLVM-Projekt [http://​www.​<br />

​llvm.​org] will solide werden<br />

und mit der LLVM Foundation<br />

eine Stiftung gründen, die<br />

als unabhängige Instanz über<br />

die Infrastruktur des Projekts<br />

wacht. Über die Jahre sei das<br />

LLVM-Projekt stark gewachsen.<br />

Die Community bestehe<br />

mittlerweile aus vielen Subprojekten<br />

mit Hunderten<br />

Codelieferanten, schreiben die<br />

Compiler-Bauer unter [http://​<br />

​blog.​llvm.​org/​2014/​04/].<br />

Nun sei man den nächsten<br />

Schritt gegangen und habe begonnen<br />

eine unabhängige, gemeinnützige<br />

Stiftung zu gründen,<br />

die LLVM Foundation.<br />

Sie soll Infrastrukturprobleme<br />

lösen, finanzielle Fragen rund<br />

um die Entwicklertreffen und<br />

die Infrastrukturausgaben klären,<br />

mehr Transparenz in den<br />

Geschäftsbetrieb und die Verfahrensweisen<br />

bringen und<br />

nicht zuletzt eine von Unternehmen<br />

unabhängige Organisation<br />

auf die Beine stellen,<br />

um den künftigen Erfolg des<br />

Projekts zu sichern.<br />

Ende 2014, eventuell schon<br />

früher, will die Organisation<br />

loslegen. Der Vorstand solle<br />

aus Freiwilligen und einem<br />

engagierten Verwaltungsleiter<br />

bestehen, die über die notwendigen<br />

Aktualisierungen<br />

der Infrastruktur wachen,<br />

die Entwickler-Meetings organisieren<br />

und die Stiftung<br />

verwalten. Man erwarte aber<br />

kaum Änderungen an der Policy<br />

für Entwickler. n<br />

Cookies heraus. Anbieter, die<br />

gegenüber der EFF ein bindendes<br />

Versprechen abgeben,<br />

die „Do not track“-Policy zu<br />

beachten, nimmt sie von ihrer<br />

Filterung aus.<br />

© http://www.lrz.de/presse/fotos/<br />

Die Erweiterung lässt sich<br />

unter [https://​github.​com/​EFForg]<br />

herunterladen. Sie befindet<br />

sich noch in Entwicklung, sei<br />

aber nach internen Tests nicht<br />

allzu fehlerbehaftet. n<br />

Parallel Computing Center entsteht<br />

Das Münchener Leibniz-Rechenzentrum,<br />

Intel und die<br />

Technische Universität München<br />

gründen ein Zentrum für<br />

Parallel Computing. Ziel sei<br />

es, „die Software-Entwicklung<br />

hochparallelen Programmcodes<br />

für zukünftige Supercomputer<br />

voranzutreiben“.<br />

Der Fokus liege auf Systemen<br />

mit einer „sehr großen Zahl<br />

von Prozessoren“ wie etwa<br />

dem Xeon Phi, der in einer<br />

großen Zahl von Superrechnern<br />

verbaut ist. Für sie will<br />

das neu gegründete Zentrum<br />

vier bestehende Anwendungen,<br />

die bereits auf dem<br />

Super-MUC laufen, für die<br />

nächste Rechnergeneration<br />

optimieren.<br />

Die Anwendungen simulieren<br />

auf dem Garchinger<br />

<strong>Linux</strong>-Cluster Erdbeben, die<br />

Entwicklung des Kosmos, Methoden<br />

der Molekulardynamik<br />

oder andere „hochdimensionale<br />

Probleme“.<br />

n<br />

Das Münchner Leibniz-Rechenzentrum betreibt einen Supercomputer auf <strong>Linux</strong>-<br />

Basis, der zu den schnellsten der Welt gehört.


Mozilla implementiert DRM-Technologie<br />

Das proprietäre Content Decryption<br />

Module im Firefox.<br />

© hacks.mozilla.org<br />

Die EME-Spezifikation (Encrypted<br />

Media Extension) des<br />

W3C ist noch nicht in trockenen<br />

Tüchern, da haben deren<br />

Entwickler Microsoft, Apple<br />

und Google sie bereits in ihren<br />

Browsern implementiert. Nun<br />

zieht Mozilla nach.<br />

Für den Hersteller des Browsers<br />

Firefox ist es ein Spagat,<br />

der ihm sichtlich schwerfällt,<br />

denn mit dem Open Web, das<br />

Mozilla als Ideal propagiert,<br />

hat DRM wenig zu tun, im Gegenteil.<br />

Würde Mozilla aber<br />

auf die Implementierung von<br />

EME verzichten, schreibt Mitchell<br />

Baker in Mozillas Blog,<br />

müssten die User jedes Mal<br />

einen anderen Browser starten,<br />

um ein DRM-geschütztes<br />

Video anzusehen.<br />

Man habe sehr stark für ein<br />

anderes Schutzsystem geworben,<br />

etwa für Wasserzeichen,<br />

könne aber der (Content-)<br />

Industrie kein Vorschriften<br />

machen. Auch die Kritik der<br />

Electronic Frontier Founda tion<br />

(EFF) und der Free Software<br />

Foundation (FSF) an EME<br />

blieb bislang wirkungslos.<br />

Ohne Videosupport würde<br />

Firefox aber für viele Nutzer<br />

nicht mehr funktionieren, da<br />

Video stark an der Browsernutzung<br />

beteiligt sei, schreibt<br />

die Vorsitzende der Mozilla<br />

Foundation weiter.<br />

Um DRM umzusetzen, müssen<br />

die Browserhersteller ein<br />

vernageltes Content Decryption<br />

Module (CDM) implementieren,<br />

das die Filme entschlüsselt.<br />

Was es sonst noch<br />

an Daten überträgt, bleibt<br />

verborgen. Fehlt ein CDM,<br />

wird Firefox bestimmte Filme<br />

künftig nicht mehr anzeigen<br />

können, etwa die von Netflix.<br />

In den USA, wo der Dienst<br />

sehr beliebt ist, scheint das<br />

Problem virulenter zu sein als<br />

in Mitteleuropa.<br />

Bei der Firefox-Implementierung<br />

sollen die User selbst<br />

entscheiden, ob sie das Modul<br />

aktivieren. Technisch will<br />

Mozilla auf das CDM von Adobe<br />

setzen, es aber in einer<br />

Open-Source-Sandbox laufen<br />

lassen. Will der User DRM,<br />

lädt Firefox dieses CDM herunter<br />

und aktiviert es. n<br />

Zahlen & Trends 07/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Anzeige


Aktuell<br />

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

14<br />

Kein Debian Jessie für Sparc-Rechner<br />

Die kommende Debian-Version<br />

8.0 (Jessie) wird wohl<br />

nicht für Rechner der Sparc-<br />

Architektur zur Verfügung<br />

stehen. Das hat Philipp Kern<br />

vom Release-Team der freien<br />

Distribution auf der Entwickler-Mailingliste<br />

bekanntgegeben.<br />

Er hat die Architektur<br />

aus dem Zweig Testing entfernt,<br />

der sich zur Jessie-Release<br />

entwickeln wird.<br />

Als Gründe führt er besonders<br />

den Mangel an Mitarbeitern<br />

an, die Software portieren,<br />

aber auch Probleme mit der<br />

Toolchain und der Stabilität<br />

Heartbleed-artige Kernelbugs<br />

Seit der Heartbleed-Sicherheitslücke<br />

in Open SSL sucht<br />

die Analyse-Firma Coverity<br />

nach ähnlichen Fehlern in<br />

Open-Source-Code und bringt<br />

solche auch im <strong>Linux</strong>-Kernel<br />

ans Licht. Das teilte der Red-<br />

Hat-Entwickler Dave Jones,<br />

der die Coverity-Analysen für<br />

die Kernel-Community auswertet,<br />

Anfang Mai mit.<br />

Open SSL nimmt, wie beispielsweise<br />

auch der Python-<br />

Interpreter oder das Apache-<br />

Hadoop-Projekt, an Coveritys<br />

kostenlosen Code-Analysen<br />

für Open-Source-Projekte teil.<br />

Nach Bekanntwerden von<br />

Heartbleed fragte sich das Unternehmen,<br />

warum die statische<br />

Analyse den Fehler nicht<br />

erkannt hat, und entwickelte<br />

binnen Kurzem einen neuen<br />

Algorithmus.<br />

Die fehlerhafte Open-SSL-<br />

Version las über die legitimen<br />

Speicherbereiche einer<br />

Variablen hinaus. Solche<br />

Out-of-Bounds-Reads lassen<br />

sich nicht einfach erkennen,<br />

der Hardware. Ob Sparc auch<br />

noch aus dem Unstable-Zweig<br />

verschwindet, aus dem die<br />

übernächste Debian-Version<br />

entstehen soll, ist bisher unklar.<br />

Eine Diskussion darüber<br />

findet in Debians Bugtracker<br />

statt.<br />

Die Scalable Processor Architecture<br />

(Sparc) fand vor allem<br />

in Workstations und Servern<br />

von Sun Microsystems (Sparc<br />

Station) und Fujitsu Verwendung.<br />

Die jüngsten Prozessordesigns<br />

sind in Open-Source-<br />

Manier unter dem Namen<br />

Open Sparc veröffentlicht. n<br />

interessanterweise kommt im<br />

fehlerhaften Code aber ein<br />

Byte-Swap vor, der die Byte-<br />

Reihenfolge umkehrt. Solche<br />

Swaps suchte Coverity im<br />

Quelltext des <strong>Linux</strong>-Kernels –<br />

und wurde fündig.<br />

Dave Jones berichtete in seinem<br />

Blog [http://​codemonkey.​<br />

​org.​uk/​2014/​05/] von einer gestiegenen<br />

Zahl bemängelter<br />

Codestellen. In Kernel 3.15-rc3<br />

seien 118 neue Probleme aufgetaucht,<br />

dabei wären es nach<br />

dem ersten RC meist nur ein<br />

paar Dutzend.<br />

Nicht jeder Fund deute jedoch<br />

auf eine ernsthafte Sicherheitslücke<br />

hin, vielmehr<br />

seien Swaps meist ein Zeichen<br />

für schlecht gewarteten Code.<br />

Dazu passe, dass sie sich in<br />

veralteten Komponenten des<br />

Kernels finden, etwa bei der<br />

ISDN-Unterstützung und bei<br />

WLAN-Treibern im Staging-<br />

Verzeichnis. Der Entwickler<br />

empfiehlt der Kernelgemeinde,<br />

den Code zu überprüfen und<br />

bei Bedarf auszumisten. n<br />

Xwayland wird Teil des X-Servers<br />

Ursprünglich war Xwayland<br />

ein X.org-Modul, nun steht es<br />

dank der Glamor-Bibliothek<br />

auf einer Stufe mit Xwin und<br />

Xquartz, den X-Servern für<br />

Win32 und OS X. Die Bibliothek<br />

kümmert sich in X.org<br />

um die 2-D-Funktionen, es<br />

handelt sich um eine Render-<br />

Implementierung auf Open-<br />

GL-Basis. Der Vorteil: Xwayland<br />

braucht so nicht selbst<br />

einige der X.org-Funktionen<br />

zu übernehmen und man<br />

muss es nicht mehr mit Set-<br />

UID-Rechten ausführen.<br />

Xwayland-Entwickler Jasper<br />

St. Pierre zeigte sich Anfang<br />

April in seinem Blog [http://​<br />

​blog.​mecheye.​net/​2014/​04/] erfreut,<br />

auch wenn noch Funktionen<br />

fehlten, etwa Direct Rendering<br />

für Open-GL-Spiele und<br />

eine 2-D-Beschleunigung.<br />

X.org bringe verschiedene<br />

Server mit, die im Verzeichnis<br />

»hw« liegen, etwa Xquartz für<br />

Andreas Gal wird Technikchef bei Mozilla<br />

OS X und Xwin für Windows<br />

oder Xorg, Xephyr und Xnest<br />

für <strong>Linux</strong>. Code, den sich alle<br />

Server teilen, heißt DIX (Device<br />

Independent X), die Server<br />

für die verschiedenen<br />

Zwecke und Plattformen bezeichnen<br />

die Entwickler hingegen<br />

als DDX (Device Dependent<br />

X), Xwayland sei nun<br />

also ein DDX-Treiber.<br />

Die Codebasis in »w/xwayland«<br />

sei bislang verhältnismäßig<br />

klein, schrieb Pierre,<br />

zudem funktioniere sie plattformunabhängig.<br />

Auch wenn<br />

die Entwickler meist mit Intel-<br />

Grafik testen würden, könne<br />

man Wayland auch mit anderen<br />

GPUs (Nvidia, AMD/​ATI)<br />

ausprobieren. Zumindest Nvidia<br />

wolle ihren Treiber wohl in<br />

Xwayland nutzen, vorzeigbare<br />

Ergebnisse stünden aber noch<br />

aus. Nicht zuletzt werde der<br />

»xf86‐video‐wayland«-Treiber<br />

auf diese Weise überflüssig.n<br />

Brendan Eichs Nachfolger als<br />

Mozillas CTO heißt Andreas<br />

Gal, ist Deutscher und kommt<br />

aus der Firefox-OS-Entwicklung.<br />

Gal, der in der Nähe von<br />

Lübeck aufgewachsen ist, in<br />

Magdeburg studiert hat und<br />

einen Doktorgrad der University<br />

of California, Irvine, besitzt,<br />

hat sich dort mit sicheren<br />

Systemen und Sprachen<br />

beschäftigt. Bei Mozilla behält<br />

er neben seinem neuen Posten<br />

als CTO zugleich seinen alten<br />

als Vice President Mobile und<br />

Research.<br />

Angefangen hat er als Mitbegründer<br />

des Boot-2-Gecko-<br />

Ökosystems, dann wirkte er<br />

an Firefox OS und dem Relaunch<br />

von Firefox für Android<br />

mit. Vor sechs Jahren hat er<br />

bei Mozilla begonnen, an einem<br />

JIT-Compiler für Javascript<br />

zu basteln, der in Tracemonkey<br />

gemündet sei. Kurz<br />

danach hat Google den eigenen<br />

Browser Chrome veröffentlicht<br />

und die Javascript-<br />

Performance-Kriege nahmen<br />

ihren Lauf.<br />

Gal war zudem an Entwicklungen<br />

wie Broadway.js, einem<br />

auf Web GL und Javascript<br />

basierenden Videodecoder,<br />

beteiligt, aber auch am<br />

PDF-Betrachter PDF.js und an<br />

Shumway, einem HTML-5-<br />

Plugin, das den Flashplayer<br />

überflüssig machen soll. n


Aktuell<br />

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

16<br />

Indie Box soll Facebook, Google & Co. ersetzen<br />

Mit einer administrierten Personal<br />

Server Appliance auf<br />

Basis von Open-Source-Software<br />

wollen die Entwickler<br />

der Indie Box ihren Usern die<br />

Hoheit über ihre Daten zurückgeben.<br />

Dazu sammeln sie<br />

nun mit einem Crowdfunding<br />

auf Indiegogo Geld.<br />

Die Indie Box setzt auf die<br />

Hardware von [http://​mini‐box.​<br />

​com], bringt 2 GByte RAM mit<br />

sowie zwei Festplatten mit<br />

jeweils 1 Terabyte Kapazität,<br />

die sich gegenseitig spiegeln<br />

sollen. Die Idee: Nicht-Geeks<br />

können sich ihre Personal<br />

Server Appliance als fertige<br />

Hardware für 500 US-Dollar<br />

kaufen, Geeks einfach das auf<br />

Open-Source-Software basierende<br />

Image auf einen alten<br />

Rechner spielen.<br />

Die Indie Box soll den Nutzern die Hoheit über ihre Daten zurückgeben.<br />

Der in den USA lebende Deutsche<br />

Johannes Ernst will mit<br />

dem Projekt „die Daten zurück<br />

nach Hause bringen“.<br />

Besitzer der Box sollen diese<br />

über zwei Netzwerkkarten<br />

als erstes Gerät und noch vor<br />

dem Router an das heimische<br />

Netzwerk anschließen. Sie<br />

lässt sich über Dyn-DNS als<br />

Heimserver nutzen, der Fotos<br />

und Texte im Internet anzeigt,<br />

aber auch lokal Kalender,<br />

Adressbücher und sogar<br />

E-Mails verwaltet. Anstelle<br />

von Facebook, Google & Co.<br />

können die User ihre Daten<br />

selbst verwalten.<br />

Der Server soll auch für Nicht-<br />

Techniker ohne Konfigurationsaufwand<br />

funktionieren.<br />

Software-seitig verwendet<br />

die Indie Box unter anderem<br />

Owncloud, Wordpress, Media<br />

Goblin und Known. Als Wiki<br />

kommt Wagn zum Einsatz, als<br />

sichere E-Mail-Lösung Mailpile.<br />

Über einen App Store<br />

lassen sich weitere Apps installieren.<br />

Software-Updates<br />

spielen Anwender automatisch<br />

oder manuell ein, es<br />

soll periodisch verschlüsselte<br />

Backups auf einer Cloudplattform<br />

geben.<br />

Erreicht die Kampagne, die<br />

noch bis zum 20. Juni läuft,<br />

ihr Ziel von 50 000 US-Dollar,<br />

will ihr Betreiber die Hardware<br />

im vierten Quartal 2014<br />

ausliefern. Noch sucht er nach<br />

Wegen, um die Versandkosten<br />

nach Europa zu senken. n<br />

Red Hat kauft ein<br />

Core Infrastructure Initiative will Open-Source-Projekte fördern<br />

Red Hat hat den Speicherspezialisten<br />

Inktank übernommen.<br />

Bislang hatten die Rothüte<br />

in Sachen Netzwerkspeicher<br />

stets auf das eigene Gluster-FS<br />

gesetzt. 175 Millionen Dollar<br />

lässt sich Red Hat den Kauf<br />

des Netzwerk-Storage-Spezialisten<br />

Inktank kosten.<br />

Nach dem Schwenk zu Open<br />

Stack vollzieht Red Hat auch<br />

in Sachen Storage eine bemerkenswerte<br />

Kehrtwende. Doch<br />

nein – denn „kombiniert mit<br />

Red Hats Gluster-FS“ soll das<br />

Netzwerk-Dateisystem Ceph<br />

jetzt seine größten Stärken<br />

ausspielen und den amerikanischen<br />

Konzern zum „führenden<br />

Open-Source-Storage-<br />

Provider“ machen, schreibt<br />

die Firma aus Raleigh in ihrer<br />

Pressemitteilung [http://​red.​ht/​<br />

​1rNXbPx].<br />

n<br />

Eine Reihe illustrer Namen<br />

zählt die <strong>Linux</strong> Foundation<br />

zur neu gegründeten Core<br />

Infrastructure Initiative (CII).<br />

Das Multimillionen-Dollar-<br />

Projekt soll für die weltweite<br />

IT-Infrastruktur systemkritische<br />

Open-Source-Projekte<br />

unterstützen.<br />

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

selbst gehören diverse große<br />

Unternehmen zur neuen Initiative,<br />

darunter Amazon Web<br />

Services (AWS), Cisco, Dell,<br />

Facebook, Fujitsu, Google,<br />

IBM, Intel, Microsoft, Netapp,<br />

Rackspace und VMware. Sie<br />

alle verwenden zwar schon<br />

seit geraumer Zeit Open-<br />

Source-Software für ihre kritische<br />

Infrastruktur, haben aber<br />

offenbar im Zuge der Ereignisse<br />

um den Heartbleed-Bug<br />

erkannt, dass auch freie Software<br />

von finanzieller Unterstützung<br />

profitiert.<br />

Nun wollen sie Projekte unterstützen,<br />

die meist eher<br />

im Schatten leben, weil ihre<br />

Produkte im IT-Bereich zwar<br />

lebenswichtig, aber für die<br />

meisten Computernutzer<br />

unsichtbar bleiben, so etwa<br />

Open SSL. Die wichtigsten<br />

Entwickler des Open-SSL-<br />

Projekts will die Initiative als<br />

Erste finanzieren. Sie können<br />

dank der Förderung nicht nur<br />

mehr Zeit in die Entwicklung<br />

stecken, sondern auch die Sicherheit<br />

der Software weiter<br />

verbessern und etwa externe<br />

Codegutachter finanzieren.<br />

Bislang habe das so wichtige<br />

Projekt lediglich auf Basis von<br />

Spenden in Höhe von etwa<br />

2000 US-Dollar pro Jahr gearbeitet,<br />

so die Foundation.<br />

Was sie für den Kernel tue,<br />

werde die <strong>Linux</strong> Foundation<br />

dank des neuen Projekts<br />

künftig auch auf einige andere<br />

Projekte ausweiten, erklärt<br />

Jim Zemlin, Kopf der<br />

<strong>Linux</strong> Foundation. Die globale<br />

Wirtschaft baue ihre IT-<br />

Infrastruktur auf einer Reihe<br />

von Open-Source-Projekten<br />

auf, man sei dankbar für den<br />

Support der Firmen für diese<br />

kritischen Projekte.<br />

Auch Eben Moglen, der Chef<br />

des Software Freedom Law<br />

Center, begrüßt den Schritt:<br />

„Es ist im Interesse aller, die<br />

Gesundheit der Community-<br />

Projekte zu bewahren, deren<br />

Software kritisch für die Sicherheit<br />

des Internethandels<br />

ist.“ Die Initiative erreichen<br />

Interessierte über die Webseite<br />

der <strong>Linux</strong> Foundation.n


Aktuell<br />

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

18<br />

Mailserver-Konferenz: Dovecot strebt Weltherrschaft für 2017 an<br />

Timo Sirainen will die Weltherrschaft für Dovecot.<br />

Auf der Mailserver-Konferenz<br />

der Berliner Firma Heinlein<br />

Support stellte der sympathische<br />

Finne Timo Sirainen<br />

Mitte Mai seine Pläne zur<br />

Weltherrschaft für Dovecot<br />

vor. Nicht ohne Stolz verwies<br />

Sirainen auf die Verbreitung<br />

des Mailservers, der laut Debians<br />

Statistik der meistinstallierte<br />

ist. Sirainens eigene<br />

Messungen auf [http://​www.​<br />

​openemailsurvey.​org] machen<br />

für Dovecot einen Marktanteil<br />

von 52 Prozent aus.<br />

Um seine Weltherrschaftspläne<br />

durchzusetzen, müsse<br />

Dove cot zum Standard-IMAP-<br />

Server in den meisten <strong>Linux</strong>-<br />

Distributionen werden, das sei<br />

aber bereits geschehen. Daneben<br />

sollten die großen ISPs<br />

und Telekommunikationsanbieter<br />

Dovecot verwenden,<br />

was einen funktionierenden<br />

24/​7-Support voraussetze und<br />

Garantien für eine kontinuierliche<br />

Weiterentwicklung des<br />

Servers. Nicht zuletzt müssten<br />

auch Unternehmen Dovecot<br />

intern einsetzen und sich von<br />

Microsoft verabschieden.<br />

Dank seiner Firma Dovecot<br />

Oy und der kommerziellen<br />

Plugins sei man auf dem Weg,<br />

diese Pläne umzusetzen. Sein<br />

langfristiges Ziel sei es aber,<br />

sich eine Weile in den Urlaub<br />

zu verabschieden, ohne dass<br />

die Firma ihn vermisst. Neben<br />

den allgemeinen Zukunftsplänen<br />

hob Sirainen zwei Punkte<br />

© Heinlein Support<br />

hervor: Die Unterstützung für<br />

Object Storage und die geplante<br />

Botnet Prevention.<br />

Dovecot Oy bietet über ein<br />

kommerzielles Plugin Support<br />

für Mailboxen in verschiedenen<br />

Cloudumgebungen mit<br />

Object Storage an, zu denen S3<br />

(Amazon), Azure (Microsoft),<br />

CDMI (Scality) und Swift<br />

(Rackspace) gehören. Für bis<br />

zu 1000 Nutzer sei das Plugin<br />

zurzeit noch lizenzkostenfrei.<br />

Zu den Problemen gehören<br />

die relativ hohe Latenz und<br />

die Begrenzung auf ein paar<br />

einfache Operationen. Auf der<br />

Haben-Seite sieht Sirainen die<br />

einfache Skalierbarkeit und<br />

die Fähigkeit, theoretisch<br />

auch in Split-Brain-Szenarios<br />

zu funktionieren. In diesem<br />

Fall könne man das Mergen<br />

einfach nachholen.<br />

In Kooperation mit dem Spamhaus-Projekt<br />

arbeiten die<br />

Dove cot-Entwickler außerdem<br />

an einem Anti-Botnet-Plugin.<br />

Noch sind die Pläne nicht<br />

spruchreif, im Vortrag selbst<br />

äußerten die anwesenden<br />

Admins verschiedene Ideen.<br />

Grob geht es darum, über die<br />

schwarzen Listen von Spamhaus<br />

die Botnet-IPs zu blockieren.<br />

Das Problem: Über<br />

die gekaperten Mailserver<br />

läuft häufig weiterhin auch<br />

normaler E-Mail-Traffic. Das<br />

Anti-Botnet-Plugin müsste<br />

also zwischen legitimem und<br />

illegitimem Traffic unterscheiden<br />

und die Nutzer entsprechend<br />

informieren.<br />

Ansonsten soll Dovecot zukünftig<br />

auch als HTTP- und<br />

Proxy-Server arbeiten, auch<br />

wird an einer DNS-Client-Bibliothek<br />

gebastelt, die DNS SEC<br />

unterstützt und asynchron arbeitet.<br />

Außerdem soll Doveadm<br />

ein REST-API erhalten,<br />

es gibt Überlegungen zum<br />

Support für HTTP-basiertes<br />

IMAP 5 sowie für Session<br />

State Saving.<br />

Die Entwickler möchten die<br />

Volltextsuche überarbeiten,<br />

IMAP-Metadaten unterstützen<br />

und denken über experimentellen<br />

IMAP-Annotate-Support<br />

sowie eine Caldav/​Carddav-<br />

Implementierung nach. Die<br />

Folien zum Talk [http://​www.​<br />

​dovecot.​org/​talks/] hat Sirainen<br />

ins Internet gestellt. n<br />

Marktplatz für Open-Shift-Anwendungen<br />

Torvalds erhält Computer Pioneer Award<br />

Red Hat kündigt für seinen<br />

Platform-as-a-Service (PaaS)<br />

Open Shift einen Marketplace<br />

mit Anwendungen an. Das<br />

Angebot ist für die öffentliche<br />

Variante des PaaS gedacht,<br />

auf der Entwickler mietweise<br />

virtuelle Instanzen mit Ruby,<br />

PHP, Python & Co. betreiben.<br />

Neben vorgefertigten so genannten<br />

Cartridges für Datenbanken<br />

oder Proxys sollen<br />

dann auch Anwendungen von<br />

der Stange installierbar sein,<br />

damit sich die Kunden auf<br />

die Anwendungsentwicklung<br />

konzentrieren können.<br />

Die paketierte Software soll<br />

künftig unter [http://​marketplace.​<br />

​openshift.​com] bereitstehen. Zu<br />

den bald verfügbaren Produkten<br />

von Drittanbietern gehören<br />

etwa das Applikations-<br />

Monitoring von New Relic,<br />

Mongo DB, die Continuous-<br />

Integration-Lösung Shippable<br />

oder die E-Mail-Infrastruktur<br />

von Sendgrid.<br />

n<br />

Die renommierte und altehrwürdige<br />

IEEE Computer Society,<br />

die mit ihren Vorläufern<br />

seit 1946 besteht und weltweit<br />

über zahlreiche Ableger<br />

verfügt, hat Linus Torvalds<br />

mit dem 2014er Computer Pioneer<br />

Award ausgezeichnet.<br />

Seit 1981 verleiht die Gesellschaft<br />

den Preis für herausragende<br />

Leistungen auf dem<br />

Gebiet der Informatik, unter<br />

den Preisträgern finden sich<br />

bekannte IT-Größen und ‐Vordenker<br />

wie Dennis Ritchie,<br />

Ken L. Thompson oder Konrad<br />

Zuse.<br />

Jetzt darf sich der Finne für<br />

seine „herausragende Funktion<br />

hinter der Open-Source-<br />

Entwicklung des <strong>Linux</strong>-Kernels<br />

und des <strong>Linux</strong>-Betriebssystems“<br />

in die lange Liste<br />

einreihen, meldet die IEEE<br />

Computer Society. Als Preis<br />

erhalten die Ausgezeichneten<br />

eine silberne Medaille mit<br />

Gravur. (kki/mfe/mhu) n


Aktuell<br />

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

20<br />

Zacks Kernel-News<br />

Posix-Ärger: Race Conditions bei Datei-Operationen<br />

Michael Kerrisk, Maintainer<br />

der Kernel-Manpages, hat<br />

ein Problem mit der Posix-<br />

Kompatibilität von <strong>Linux</strong> zur<br />

Sprache gebracht. Offenbar<br />

führen »read()«, »write()« und<br />

ähnliche Systemaufrufe keine<br />

atomaren Ein- und Ausgabe-<br />

Operationen durch, schreibt<br />

er. In seinen Tests hat er festgestellt,<br />

dass Schreibvorgänge<br />

mit mehreren Threads unterschiedliche<br />

Informationen<br />

über die Datei-Offsets erhalten<br />

und sich daher gegenseitig<br />

überschreiben.<br />

Daneben hat Michael Code<br />

zum Reproduzieren des Problems<br />

eingereicht. Seiner Meinung<br />

nach könnte das virtuelle<br />

Dateisystem VFS der Schuldige<br />

sein. Außerdem holte er<br />

aus dem Mailinglistenarchiv<br />

bis zu acht Jahre alte Beiträge,<br />

die ähnliche Fälle diskutierten.<br />

Er schreibt: „<strong>Linux</strong> hält<br />

sich nicht an die Single Unix<br />

Specification 3 oder 4 und ist<br />

auch nicht konsistent zu anderen<br />

Implementierungen wie<br />

Free BSD oder Solaris. Ich bin<br />

mir sogar sicher, dass <strong>Linux</strong><br />

schon in frühen Tagen nicht<br />

Unix-kompatibel war.“<br />

Linus Torvalds räumt ein, der<br />

Pointer auf die Fileposition<br />

»f_pos« könnte Grund für eine<br />

Posix-Verletzung sein. Dabei<br />

holt er aus: „Vor langer, langer<br />

Zeit übergaben wir den Pointer<br />

auf »f_pos« direkt und der<br />

Low-Level-Schreibvorgang aktualisierte<br />

alles unter dem Semaphor<br />

des Inode, und alles<br />

war gut.“<br />

Dann sei es aber zu allerhand<br />

Problemen mit besonderen<br />

Dateien gekommen, mit<br />

Treibern, die unmittelbar auf<br />

»f_pos« zugriffen, sowie zu<br />

schlimmen Race Conditions,<br />

weil es kein Locking gab.<br />

Laut Linus erledigt der Kernel<br />

heute die Ein- und Ausgaben<br />

atomar, aber der Zugriff auf<br />

»f_pos« an sich erfolgt ohne<br />

Die Manpage von »read()« behauptet schlicht, der <strong>Linux</strong>-Systemaufruf sei Posixkompatibel.<br />

Die Realität sieht etwas komplizierter aus.<br />

Locking. Linus fragte Al Viro<br />

nach einem Lösungsvorschlag,<br />

und dieser verlangte zunächst<br />

die Posix-Anforderungen an<br />

»read()« und »write()«. Michael<br />

lieferte das Zitat: „Rufen<br />

zwei Threads beide eine dieser<br />

Funktionen auf, soll jeder<br />

Aufruf entweder alle Auswirkungen<br />

des anderen Threads<br />

bemerken oder gar keine.“<br />

Das gelte für eine Menge Systemaufrufe,<br />

fügte er an.<br />

Wenige Tage später schickte<br />

Linus ein Patch ein, das einen<br />

Mutex für »f_pos« verwendet<br />

und es so mit Schreibschutz<br />

per Locking ausstattet. Er hält<br />

diese Lösung für recht einfach<br />

und nachvollziehbar. Nur an<br />

einem Punkt geriet er sich mit<br />

Al Viro ein wenig in die Haare:<br />

Linus möchte in seinem<br />

Code Registerpaare zurückgeben<br />

und hält das für eine<br />

gebräuchliche Programmiertechnik.<br />

Al dagegen befürchtet,<br />

dass einige Architekturen<br />

wie Power PC, Mips und ARM<br />

das nicht unterstützen.<br />

Der Kernelchef schlug vor,<br />

die Power-PC- und ARM-Leute<br />

sollten Unterstützung für<br />

Struct-Return in GCC integrieren.<br />

Es genüge, zu diesem<br />

Zweck ein Flag für die Aufrufkonvention<br />

hinzuzufügen.<br />

Al brachte eine alternative Lösung<br />

ein, die Linus schließlich<br />

annahm und auch für Greg<br />

Kroah-Hartmans stabilen Kernelzweig<br />

empfahl. Michael<br />

Kerrisk ließ seine Tests laufen<br />

und bestätigte, das Problem<br />

sei gelöst.<br />

n<br />

Kann warten<br />

Während der Arbeit an Kernel<br />

3.14 schickte der Entwickler<br />

Peter Hurley einige Patches<br />

ein. Deren Aufgabe war es,<br />

frühere Patches zurückzunehmen,<br />

die für ein Problem<br />

gesorgt hatten. Marcel Holtmann<br />

allerdings mochte nicht<br />

alle Änderungen anwenden,<br />

da sich die Entwicklung schon<br />

in der Release-Candidate-Phase<br />

befand. Den Rest wollte er<br />

für das Merge Window von<br />

3.15 aufheben.<br />

Der Niederländer Sander<br />

Eikelenboom bemerkte allerdings<br />

rund einen Monat<br />

später, dass die Patches gar<br />

nicht angewendet worden<br />

waren. John Linville reagierte<br />

und fragte nach einem Pull<br />

Request für die fraglichen<br />

Änderungen. Doch Marcel<br />

antwortete: „Du hast alle drei<br />

Rücknahmen schon in »wireless‐next«<br />

als Teil einer größeren<br />

Änderung an »RFCOMM«<br />

von Peter erhalten.“ Peter bot<br />

an, die wichtigsten Reparaturen<br />

später per Cherry-Picking<br />

in den dann stabilen Kernel<br />

3.14 zu übertragen.<br />

Hier schaltete sich Linus<br />

Torvalds ein: „Wir sollten keinen<br />

Kernel 3.14 mit bekannten<br />

Fehlern veröffentlichen,<br />

nur weil der Fix zu groß für<br />

die RC-Phase sein soll.“ Peter<br />

wies ihn darauf hin, dass es<br />

sich mittlerweile nur noch um<br />

eine Warnung handle, nicht<br />

um ein Oops oder einen Absturz.<br />

Da beschlossen Linus<br />

und Sander, die Patches könnten<br />

doch warten.<br />

n


CPU-Events verfolgen<br />

Perf, ein Tool zur Performance-<br />

Analyse unter <strong>Linux</strong>, bilde<br />

einige Hardware-Ereignisse<br />

der CPU nicht gut ab. Das hat<br />

der deutsche Intel-Entwickler<br />

Andi Kleen auf der Mailingliste<br />

beklagt. Er schreibt, es<br />

unterstütze zwar High-Level-<br />

Events, aber bei Low-Level-<br />

Ereignissen „muss man die<br />

Events in Rohform angeben<br />

(sehr unpraktisch), alternative<br />

Frontends wie Ocperf<br />

einsetzen oder die Libpfm<br />

patchen“.<br />

Andi fährt fort: „Intel-CPUs<br />

können sehr große Event-Dateien<br />

haben, Haswell hat etwa<br />

336 Core-Events – und noch<br />

mehr, wenn man Uncore- und<br />

Offcore-Kombinationen hinzunimmt.<br />

Das ist zu viel, um<br />

es über die Kernelschnittstelle<br />

zu beschreiben.“<br />

CPU-Hersteller pflegen meist<br />

öffentliche Listen der Events,<br />

wie Andi Kleen erklärt. Die<br />

Oprofile-Entwickler importieren<br />

sie gelegentlich in ihren<br />

Code, doch leider veralten diese<br />

Kopien rasch. Er schickte<br />

Code, der automatisch Intels<br />

aktuelle Event-Liste für lokale<br />

CPUs zur Verwendung mit<br />

Perf herunterlädt. Andi pflegt<br />

die PMU-Tools unter [https://​<br />

​github.​com/​andikleen/​pmu‐tools].<br />

Dabei steht PMU für die Performance<br />

Monitoring Unit, die<br />

die Events zählt.<br />

n<br />

Schönere Stack Dumps<br />

Die Stack Dumps des Kernels<br />

sehen furchtbar aus, findet<br />

Sasha Levin von Oracle. Insbesondere<br />

mit den Kerneladressen,<br />

die als Offsets im<br />

Hexadezimalformat angezeigt<br />

werden, könne niemand etwas<br />

anfangen. Daher hat er<br />

ein Skript eingereicht, das sie<br />

in Quelltextdateien und Zeilennummern<br />

übersetzt.<br />

Linus Torvalds merkt an, Sashas<br />

Absichten finde er gut.<br />

Eines aber macht er klar: „Der<br />

Kernel selbst wird nie die Zeilen<br />

nummerieren“, schreibt<br />

Linus. Auch die Hexadezimalzahlen<br />

will er verschwinden<br />

lassen. Kompiliere man den<br />

Kernel mit zufälligen Basisadressen,<br />

seien sie ohnehin<br />

wertlos.<br />

Daneben gibt der Kernelchef<br />

zu bedenken, dass das<br />

von Sasha verwendete Tool<br />

»addr2line« nicht mit symbolischen<br />

Namen klarkomme.<br />

Daher müsse man entweder<br />

dieses Werkzeug verbessern<br />

oder zu »nm« beziehungsweise<br />

»gdb« greifen.<br />

Sasha dagegen möchte einfach<br />

die Daten aus der »System.map«<br />

verwenden. Das<br />

findet Linus gut, hält aber die<br />

»vmlinux«-Datei für eine bessere<br />

Quelle. Er will noch ein<br />

wenig am Kernel arbeiten und<br />

Sasha an seinem Skript. (Zack<br />

Brown/​mhu)<br />

n<br />

Kernel-News 07/2014<br />

Aktuell<br />

www.linux-magazin.de<br />

21


Titelthema<br />

www.linux-magazin.de Bonding 07/2014<br />

22<br />

Netzwerkverbindungen bündeln<br />

Mehrfach hält besser<br />

Nicht nur im Rechenzentrum kann eine ausfallsichere Verbindung nicht schaden. Mit Hilfe von Bonding,<br />

Hostapd und Dnsmasq lässt sich ein Laptop auch in einen Accesspoint verwandeln, der redundant über mehrere<br />

Fäden im Internet hängt. Kristian Kißling<br />

© Dmitriy Karelin, 123RF.com<br />

Inhalt<br />

22 Im Bündel schneller<br />

Dank Bonding erreichen auch drahtlose<br />

Netzwerke höhere Verfügbarkeit.<br />

26 Konferenz-WLAN<br />

Konferenzen mit miesem Netz sind<br />

ärgerlich. Wie lassen sich WLAN-Strukturen<br />

besser aufsetzen?<br />

30 Mesh-Netze<br />

Mesh-Netzwerke erfahren wieder Zulauf,<br />

neue Protokolle gibt es auch.<br />

36 Richtfunk<br />

In manchen Gegenden klappt die Connection<br />

nur per Richtfunk.<br />

Bonding, also die Möglichkeit, mehrere<br />

Netzwerkgeräte in einem Interface zu<br />

bündeln, ist vor allem in Rechenzentren<br />

beliebt. Die Bonding-Technologie steckte<br />

bereits im Kernel 2.0.30 von 1997 und<br />

wurde im Laufe der Zeit sukzessive ausgebaut.<br />

Das neueste Stück Dokumentation<br />

stammt von 2011 und steht unter [1]<br />

zur Ansicht bereit.<br />

Dank sieben verschiedener Bonding-<br />

Varianten (siehe Kasten „Die sieben<br />

Bonding-Modi“) können Admins wahlweise<br />

Load Balancing betreiben oder für<br />

ihre Netze eine höhere Ausfalltoleranz<br />

erreichen: Stolpert ein Techniker im Data<br />

Center über ein Netzwerkkabel, läuft der<br />

Traffic über ein anderes Kabel im Bonding<br />

weiter.<br />

Doch es gibt auch andere Szenarien, in<br />

denen Bonding nützlich wäre. Auf Konferenzen<br />

mit notorisch anfälligen WLAN-<br />

Netzwerken ließen sich die Laptops der<br />

Redner per Bonding zuverlässiger ans<br />

Internet binden. Veranstalter in einer Gegend<br />

mit eingeschränktem Internetempfang<br />

können UMTS-Verbindungen auf<br />

einem Rechner bündeln, der dann als<br />

Accesspoint (AP) zum Einsatz kommt.<br />

Ein Bond fürs Leben<br />

Im vorgestellten Bonding-Setup besteht<br />

der erste Schritt darin, ein Bündel aus<br />

zwei WLAN- und einem Ethernet-Client<br />

zu schnüren. Dabei hilft das zu installierende<br />

Paket »ifenslave‐2.6«, das ein »sudo<br />

apt-get ifenslave-2.6« auf dem eingesetzten<br />

Lubuntu installiert. Dann bearbeitet<br />

der Netzwerker die Datei »/etc/network/<br />

interfaces«, wie es Listing 1 zeigt, wobei<br />

er am besten erst ein Backup der Originaldatei<br />

anlegt.<br />

Die Einträge sind recht simpel gestrickt,<br />

Bonding funktioniert nach dem Master-<br />

Slave-Prinzip: Die Datei ordnet die Netzwerkgeräte<br />

dem »bond‐master bond0«<br />

zu. Als Bonding-Modus kommt Modus 1<br />

(»active‐backup«) zum Einsatz. Die<br />

Listing 1: »/etc/network/interfaces«<br />

01 auto eth0<br />

02 iface eth0 inet dhcp<br />

03 bond‐master bond0<br />

04 bond‐primary wlan0<br />

05 bond‐mode active‐backup<br />

06 <br />

07 auto wlan0<br />

08 iface wlan0 inet dhcp<br />

09 wpa‐conf /etc/network/wpa1.conf<br />

10 bond‐master bond0<br />

11 bond‐primary wlan0<br />

12 bond‐mode active‐backup<br />

13 <br />

14 auto wlan1<br />

15 iface wlan1 inet dhcp<br />

16 wpa‐conf /etc/network/wpa1.conf<br />

17 bond‐master bond0<br />

18 bond‐primary wlan0<br />

19 bond‐mode active‐backup<br />

20 <br />

21 auto bond0<br />

22 iface bond0 inet dhcp<br />

23 bond‐slaves none<br />

24 bond‐give‐a‐chance 20<br />

25 bond‐mode active‐backup<br />

26 bond‐miimon 100


WLAN-Clients holen sich<br />

die Zugangsdaten für<br />

den Accesspoint aus den<br />

Dateien »/etc/network/<br />

wpa1.conf« (Listing 2)<br />

und »/etc/network/wpa2<br />

.conf«. Die Option »bondslaves<br />

none« ist etwas<br />

kontra-intuitiv: Es geht<br />

darum, die Slaves nicht<br />

erneut zu starten, während<br />

das Gesamtgebilde<br />

»bond0« aktiviert wird.<br />

Der Parameter »bondgive-a-chance<br />

20« lässt<br />

den WLAN-Geräten ein<br />

wenig Zeit, um sich mit<br />

den Accesspoints zu verbinden.<br />

Schaut sich der Netzwerker<br />

nach einem Reboot<br />

über »/sbin/ifconfig«<br />

die vorhandenen<br />

Devices an, sollte der<br />

Anblick Abbildung 1 ähneln.<br />

Es fällt schnell auf,<br />

dass »bond0«, »eth0«,<br />

»wlan0« sowie »wlan1«<br />

die gleiche MAC-Adresse<br />

aufweisen. Ob diese Geräte<br />

online sind, verrät ein einfaches »cat<br />

/proc/net/bonding/bind0«. Die Ausgabe<br />

»MII Status = up« zeigt jeweils, ob ein<br />

Gerät aktiv ist. Pingt ein Admin nun eine<br />

beliebige Webadresse an, sollten auch<br />

dann weiterhin Antworten eintrudeln,<br />

wenn er das Ethernet-Kabel entfernt oder<br />

ein WLAN-Kernelmodul deaktiviert.<br />

Die sieben Bonding-Modi<br />

Modus 0 (»balance‐rr«): Im Round-Robin-<br />

Verfahren senden die Netzwerkkarten, angefangen<br />

bei der ersten, sequenziell. Das<br />

sorgt für Lastverteilung und Fehlertoleranz.<br />

Die Netzwerkkarten müssen aber am selben<br />

Switch hängen.<br />

Modus 1 (»active‐backup«): Nur ein Interface<br />

im Bündel sendet und empfängt. Tritt ein Fehler<br />

auf, übernimmt eine andere Schnittstelle. Die<br />

Netzwerkkarten müssen dabei nicht am selben<br />

Switch hängen.<br />

Modus 2 (»balance‐xor«): Über die MAC-Adressen<br />

sind Quelle und Ziel einander fest zugeordnet.<br />

Hierzu müssen die Netzwerkkarten<br />

am selben Switch hängen.<br />

Modus 3 (»broadcast«): In diesem Modus sendet<br />

der Rechner seine Daten auf allen Netzwerkschnittstellen,<br />

was den Einsatz mehrerer<br />

Abbildung 1: Nach dem Bonding-Prozess existiert nicht nur ein neues Device namens<br />

»bond0«, alle Netzwerk-Clients besitzen auch identische MAC-Adressen.<br />

Switches erlaubt und fehlertolerant ist, aber<br />

kein Load Balancing ermöglicht.<br />

Modus 4 (»802.3ad«): Der Modus lehnt sich an<br />

den 802.3ad-Standard der IEEE an. Verfügen<br />

Netzwerkschnittstellen über die gleiche Übertragungsgeschwindigkeit<br />

und Duplex-Einstellung,<br />

lassen sie sich über das Link Aggregation<br />

Control Protocol (LACP) dynamisch bündeln.<br />

Modus 5 (»balance‐tlb«): Modus 5 funktioniert<br />

wie Modus 2, nur dass das Auswahlverfahren<br />

der Partner auf ausgefeilteren Algorithmen beruht,<br />

keine Änderungen an den Switches nötig<br />

und verschiedene Switches zulässig sind.<br />

Modus 6 (»balance‐alb«): Die Sende- und auch<br />

die Empfangslast verteilt dieser Modus auf die<br />

verschiedenen Interfaces. Das unterscheidet<br />

ihn von Modus 5. Die Bandbreite der Netzwerkkarten<br />

wird dabei berücksichtigt.<br />

Im Testaufbau verfügt der Rechner über<br />

zwei WLAN-Clients und einen Ethernet-<br />

Zugang. Anstelle der WLAN-Clients lassen<br />

sich auch ein oder mehrere UMTS-<br />

Geräte einsetzen, falls keine Accesspoints<br />

zur Verfügung stehen und jemand zum<br />

Beispiel in einer schlecht angebundenen<br />

Gegend eine halbwegs zuverlässige Internetanbindung<br />

benötigt.<br />

Beispiele für Ubuntu<br />

und Debian gibt es etwa<br />

unter [2].<br />

Selfmade AP<br />

Im vorliegenden Szenario<br />

soll der Rechner<br />

mehrere Internetzugänge<br />

bündeln und zugleich als<br />

Accesspoint dienen. Um<br />

das zu erreichen, installiert<br />

der Anwender die<br />

Pakete »hostapd«, »dnsmasq«<br />

und »iw«. Dann<br />

wendet er sich zunächst<br />

der Datei »/etc/network/<br />

interfaces« zu. Hier gilt<br />

es, den WLAN-Client,<br />

der die AP-Funktionen<br />

übernehmen soll, aus<br />

dem Bonding herauszunehmen.<br />

Dazu wird in Listing 1<br />

der mit »auto wlan0«<br />

beginnende Abschnitt<br />

gemäß Listing 3 geändert.<br />

Das WLAN-Device<br />

»wlan0« erhält eine feste<br />

IP-Adresse aus einem anderen Subnetz,<br />

während »wlan1« im Verbund mit »eth0«<br />

die Verbindung ins Internet hält.<br />

Die Authentifizierungssoftware Hostapd<br />

[3] ermöglicht es, »wlan0« als Accesspoint<br />

zu konfigurieren, der auch verschlüsselte<br />

Anmeldungen über WPA 2<br />

Personal erlaubt. Über den »nl80211«-<br />

Treiber unterstützt Hostapd eine Reihe<br />

neuerer WLAN-Chips, für ältere stehen<br />

lediglich »HostAP«, »madwifi« und<br />

»prism54« als Treiber bereit.<br />

Generell ist es für den Einsatz als Accesspoint<br />

von Vorteil, wenn Hardware mit<br />

stabilen und gut unterstützten Treibern<br />

zum Zuge kommt. Andernfalls treten bei<br />

den Zugriffen verschiedener Clients auf<br />

Listing 2: »/etc/network/wpa1.conf«<br />

01 network={<br />

02 ssid="SSID"<br />

03 proto=RSN<br />

04 key_mgmt=WPA‐PSK<br />

05 pairwise=CCMP TKIP<br />

06 group=CCMP TKIP<br />

07 psk="Passwort"<br />

08 }<br />

Bonding 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

23


Titelthema<br />

www.linux-magazin.de Bonding 07/2014<br />

24<br />

den Accesspoint Probleme auf. Troubleshooting<br />

erlaubt der Befehl:<br />

tcpdump ‐nn ‐i wlanX<br />

01 # Update zu Listing 2<br />

02 auto wlan0<br />

Er hilft dem Admin den Netzwerk-Traffic,<br />

der über das Device »wlanX« läuft, im<br />

Auge zu behalten und eventuelle Fehler<br />

zu analysieren.<br />

Nach der Installation von »hostapd« legt<br />

der Anwender zunächst die WLAN-Karte<br />

fest, die als Accesspoint auftreten soll, im<br />

Beispiel »wlan0«. Wer sich für die Bedeutung<br />

der einzelnen Optionen interessiert,<br />

kann diese unter [4] nachlesen. Kurz gesagt<br />

wird hier »wlan0« zum Accesspoint<br />

mit dem Namen »SSID« gemacht. Rechner,<br />

die sich mit dem AP verbinden<br />

möchten, brauchen ein entsprechendes<br />

»Passwort« und nutzen eine sichere WPA-<br />

PSK-Verschlüsselung.<br />

Verwendet der AP-Betreiber nur eine<br />

Ethernet-Karte für den Internetzugang,<br />

03 iface wlan0 inet static<br />

04 address 10.10.0.1<br />

05 netmask 255.255.255.0<br />

01 interface=wlan0<br />

02 driver=nl80211<br />

03 ssid=SSID<br />

04 hw_mode=g<br />

05 channel=1<br />

06 macaddr_acl=0<br />

07 auth_algs=1<br />

08 ignore_broadcast_ssid=0<br />

09 wpa=3<br />

10 wpa_passphrase=Passwort<br />

11 wpa_key_mgmt=WPA‐PSK<br />

12 wpa_pairwise=TKIP<br />

13 rsn_pairwise=CCMP<br />

01 bind‐interfaces<br />

02 interface=wlan0<br />

03 <br />

04 no‐resolv<br />

05 no‐hosts<br />

06 addn‐hosts=/etc/hosts.ap<br />

07 <br />

08 # server=8.8.8.8<br />

09 # server=8.8.4.4<br />

10 <br />

11 dhcp‐range=10.10.0.2,10.10.0.20,255.255.255.0,infinite<br />

12 dhcp‐option=3,10.10.0.1<br />

Listing 3: »/etc/network/interfaces«<br />

Listing 4: »/etc/hostapd/hostapd.<br />

conf«<br />

Listing 5: »/etc/dnsmasq.conf«<br />

kann er in der Datei »/etc/network/interfaces«<br />

auch eine Bridge (»br0«) anlegen.<br />

Die ergänzt er ebenfalls in Listing 4,<br />

indem er die Zeile »bridge=br0« nach<br />

»interface=wlan0« einträgt.<br />

Damit der Hostapd-Daemon nach dem<br />

Start des Systems auch gleich automatisch<br />

losrennt, benötigt er noch eine<br />

entsprechende Anweisung in der Datei<br />

»/etc/default/hostapd«. Hier entfernt<br />

der Netzwerker das Kommentarzeichen<br />

vor der Zeile »DAEMON_CONF="/etc/<br />

hostapd/hostapd.conf"«.<br />

Dnsmasq<br />

Dnsmasq ist nicht nur DNS-, sondern<br />

auch DHCP-Server, seine zahlreichen<br />

Funktionen und die möglichen Optionen<br />

für die Konfigurationsdatei beschreibt<br />

[5] ausführlich. Das ist hilfreich, weil der<br />

Accesspoint nach dem Neustart des Rechners<br />

zwar zu sehen ist, aber zunächst<br />

keine IP-Adressen verteilt. Über<br />

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.U<br />

conf.BACKUP<br />

legt der User ein Backup der Default-Konfiguration<br />

für Dnsmasq an und erstellt<br />

dann eine eigene Datei, wie sie Listing<br />

5 zeigt. Dnsmasq wird an das Interface<br />

»wlan0« gebunden, soll aber nicht die<br />

Datei »/etc/hosts« lesen, sondern die<br />

selbst angelegte »/etc/hosts.ap«. In dieser<br />

sollen der Pfad zum Gateway von<br />

»wlan0« sowie der Name des Rechners<br />

stehen, auf dem der Accesspoint läuft:<br />

10.10.0.1 Rechnername<br />

Die Datei »resolv.conf« ignoriert Dnsmasq<br />

dank des Eintrags. Bei Problemen<br />

mit der DNS-Auflösung lassen sich hier<br />

auch eigene DNS-Server eintragen, etwa<br />

die von Google, die Listing 5 auskommentiert.<br />

Der Parameter »dhcp‐range«<br />

legt den Bereich an IP-Adressen fest, die<br />

»/etc/dnsmasq.conf« verteilt, gefolgt von<br />

der Subnetzmaske und der Lease-Time,<br />

die hier auf unendlich (»infinite«) steht.<br />

Der Eintrag »dhcp‐option« setzt die Standardroute<br />

(»3«) auf »10.10.0.1«.<br />

Vorwärts Pakete!<br />

Noch ist nicht alles in Butter, denn das<br />

System soll die Pakete von »bond0« an<br />

»wlan0« weiterreichen, damit die Clients<br />

über den Accesspoint auch Internetzugang<br />

erhalten. Dazu ändert der Admin<br />

zunächst die Datei »/etc/sysctl.conf« und<br />

kommentiert die Zeile<br />

net.ipv4.ip_forward=1<br />

aus. Dann kümmern sich die folgenden<br />

IPtables-Befehle um das Forwarding und<br />

Masquerading. Hier gilt es, in den ersten<br />

beiden Schritten die Forwarding-Regeln<br />

zu löschen und neue zu erstellen. Der<br />

dritte Befehl leitet schließlich Pakete, die<br />

aus dem Subnetz »10.10.0.0« kommen,<br />

an »bond0« weiter:<br />

iptables ‐F FORWARD<br />

iptables ‐P FORWARD ACCEPT<br />

iptables ‐t nat ‐A POSTROUTING ‐s U<br />

10.10.0.0/24 ‐o bond0 ‐j MASQUERADE<br />

Die Befehle kann der Admin in der Datei<br />

»/etc/rc.local« unterbringen, so werden<br />

sie beim Systemstart geladen.<br />

Fazit<br />

Gänzlich stabil lief der selbst gebastelte<br />

Accesspoint im Test noch nicht, was auch<br />

an der Hardware gelegen haben mag.<br />

Gerade die sollte der Admin vor einem<br />

dauerhaften Einsatz ausführlich testen,<br />

damit sie möglichst stabil läuft. Wurden<br />

beim Browsen viele URLs aufgerufen,<br />

kam es nach einiger Zeit zu DNS-Ausfällen.<br />

Dienste ohne große DNS-Anfragen<br />

liefen hingegen deutlich länger stabil, der<br />

Accesspoint und die Bonding-Gemeinschaft<br />

ebenfalls. Insgesamt erwies sich<br />

Bonding als eine recht schnell einzurichtende<br />

Möglichkeit, um ausfallsicher und<br />

redundant ins Internet zu kommen – auf<br />

Wunsch auch drahtlos.<br />

n<br />

Infos<br />

[1] Bonding im Kernel:<br />

[https:// www. kernel. org/ doc/​<br />

Documentation/ networking/ bonding. txt]<br />

[2] Fortgeschrittene Bonding-Fälle:<br />

[https:// www. stgraber. org/ 2012/ 01/ 04/<br />

networking‐in‐ubuntu‐12‐04‐lts/]<br />

[3] Hostapd: [http:// wireless. kernel. org/ en/​<br />

users/ Documentation/ hostapd]<br />

[4] Hostapd-Optionen: [http:// wireless. kernel.​<br />

org/ en/ users/ Documentation/ hostapd#​<br />

Common_Options]<br />

[5] Dnsmasq-Dokumentation: [http:// www.​<br />

thekelleys. org. uk/ dnsmasq/ doc. html]


Titelthema<br />

www.linux-magazin.de Konferenz-WLAN 07/2014<br />

26<br />

Ein Konferenz-WLAN mit IPv6 geht noch nicht mit OSS-Tools<br />

Catering V6<br />

Ein Konferenz-WLAN für Tausende Benutzer zu servieren – das ist eine Aufgabe mit vielen Tücken. Die Veranstalter<br />

der Fosdem 2014 brachten das Kunststück fertig, dies auch gleich durchgehend mit IPv6 anzubieten.<br />

Leider fehlt es noch an freien Accesscontrollern, daher bleibt Open Source außen vor. Richard Hartmann, Markus Feilner<br />

dieses Spektrum bisher, der Frequenzbereich<br />

bleibt meist frei. Wer also öfter auf<br />

Konferenzen mit vielen Teilnehmern unterwegs<br />

ist, sollte die Extrakosten für einen<br />

neuen WLAN-Stick in Kauf nehmen<br />

– nicht selten hat er das bessere Netz.<br />

Accesspoints am besten auf<br />

Kniehöhe anbringen<br />

© Fedor Kondratenko, 123RF.com<br />

Nicht erst seit der massiven Ausbreitung<br />

von Smartphones ist ein funktionierendes<br />

WLAN für Konferenzbesucher eigentlich<br />

selbstverständlich. Umso überraschender,<br />

dass es schon die Veranstalter mittlerer<br />

oder großer Events wie Cebit oder<br />

<strong>Linux</strong>tag immer wieder vor große Herausforderungen<br />

stellt, den Besuchern ein<br />

kostenloses und zuverlässiges Funknetzwerk<br />

anzubieten.<br />

Probleme, Probleme<br />

Das es kein Selbstläufer ist, weiß auch<br />

jeder Admin, der nicht mehr mit ein,<br />

zwei oder drei WLAN-Routern auskommt<br />

oder zahlreiche Clients in verschiedenen<br />

Netzen versorgen will. Die Probleme reichen<br />

von der Funktechnik übers Routing,<br />

Roaming, die ausreichende Abdeckung,<br />

böswillige Teilnehmer bis hin zur Hardund<br />

Software.<br />

Der Autor dieses Artikels konnte bei Großveranstaltungen<br />

wie der Debconf 2013 [1]<br />

und der Fosdem 2013 und 2014 ([2], [3])<br />

Erfahrungen sammeln, die zwar zeigen,<br />

wie es gehen kann, aber auch offenbaren,<br />

woran es (noch) hakt, vor allem dann,<br />

wenn der OSS-affine Admin solche Infrastrukturen<br />

mit Open-Source-Tools und<br />

<strong>Linux</strong> auf die Beine stellen will.<br />

Wifi-Funktechnik<br />

Die IEEE-Norm 802.11 definiert die gängigen<br />

Wifi-Standards: 802.11b und 802.11g<br />

funken im lizenzfreien Frequenzbereich<br />

um 2,4 GHz, 802.11ac ausschließlich<br />

im ebenso lizenzfreien Frequenzbereich<br />

um 5 GHz, und 802.11n kann in beiden<br />

Bereichen funken. Vorteil der höheren<br />

Frequenzen ist die höhere Übertragungsgeschwindigkeit,<br />

Nachteile sind die kürzere<br />

Reichweite und die deutlich höheren<br />

Kosten für die Technik.<br />

Auf der anderen Seite ergibt sich dadurch<br />

(heute noch) ein signifikanter Vorteil von<br />

5 GHz: Die wenigsten Endgeräte nutzen<br />

Für die Antennen gilt: Normale Rundantennen,<br />

auch Stabantennen genannt,<br />

strahlen horizontal im Winkel von 360<br />

Grad, vertikal im Winkel von 10 bis 60<br />

Grad ab. Damit erreichen in Knie- bis<br />

Kopfhöhe montierte Antennen alle normalen<br />

Aufenthaltsbereiche, haben aber,<br />

wenn sie in einer Ecke montiert sind, bis<br />

zu 75 Prozent Verlustleistung.<br />

Ein weiteres Problem ist das so genannte<br />

Übersprechen: Decken mehrere Antennen<br />

gleicher Frequenz denselben Bereich ab,<br />

gibt es unerwünschte Interferenzen, die<br />

sich zwar durch sinnvolle Kanalabstände<br />

mildern lassen (bei 2,4 GHz zum Beispiel<br />

die Kanäle 1, 6, 11). Aber auch dieser Effekt<br />

ist begrenzt, wenn die Nutzerzahlen<br />

oder Bandbreiten-Anforderungen mehr<br />

als drei Accesspoints nahe beieinander<br />

verlangen. Bei höheren Dichten führt<br />

kein Weg entweder an gerichteten Antennen<br />

oder an Accesscontrollern (AC)<br />

vorbei, die zentral und zusammen mit<br />

den Accesspoints (AP) die Sendestärke<br />

der einzelnen Antennen regulieren.<br />

Online PLUS<br />

Die DNS-64- und NAT-64-Konfiguration,<br />

wie sie die Admins der Fosdem verwendet<br />

haben, findet sich auf <strong>Linux</strong>-<strong>Magazin</strong> Online<br />

Plus unter: [http:// www. linux‐magazin/​<br />

2014/ 07/ plus]


Solange sich keiner der Netzteilnehmer<br />

bewegt, bleibt die ganze Sache simpel,<br />

Client und Accesspoint langweilen sich<br />

und übertragen brav ihre Daten. Doch<br />

das ist bei einer Konferenz sicher nicht<br />

der Fall: Hier bewegen sich viele der Benutzer,<br />

für sie ist nicht nur die Übertragungsstärke<br />

anzupassen.<br />

Der Admin muss auch für einen sauberen<br />

Hand-over des Clients zwischen den Accesspoints<br />

Sorge tragen. Dieses Roaming<br />

ist die mit Abstand wichtigste Funktion<br />

in großen WLAN-Szenarien. Benutzer<br />

wollen sich frei bewegen und erwarten<br />

zu Recht, dass ihre Verbindungen nicht<br />

abreißen oder auch nur temporär ins<br />

Stocken geraten. Gelingt dies, sind sie<br />

zufrieden, andernfalls gib es sehr schnell<br />

lautstarke Beschwerden.<br />

Im einfachsten Fall verbindet sich der<br />

Client mit einem anderen Accesspoint,<br />

sobald er den alten nicht mehr gut genug<br />

empfängt. Das kann allerdings dazu<br />

führen, dass der Switch im Hintergrund<br />

die MAC-Adresse des Clients zunächst<br />

noch beim alten Accesspoint vermutet<br />

und daher den Traffic in die falsche Richtung<br />

schickt.<br />

Abhängig vom Switch-Modell und anderen<br />

Faktoren kann das MAC-Learning<br />

mehrere Sekunden dauern, in denen<br />

der Endbenutzer de facto offline bleibt.<br />

Schlimmer noch: Sitzt ein Client genau<br />

zwischen zwei oder mehr Accesspoints,<br />

dann kann es zu Flapping – kontinuierlichen<br />

Neuverbindungen – kommen. Auch<br />

hier helfen Accesscontroller.<br />

Backend-Verkabelung<br />

Nicht immer lassen sich alle Accesspoints<br />

direkt mit Kabeln versorgen, wenn etwa<br />

die Entfernungen zu groß werden<br />

oder es nicht erlaubt ist,<br />

Kabel zu verlegen. Höherwertige<br />

Accesspoints bieten deswegen<br />

an, die Verbindung mit<br />

dem Netzwerk über – meist<br />

gerichtete – 5-GHz-Antennen<br />

aufzubauen, wobei dann<br />

den Clients nur die 2,4-GHz-<br />

Frequenzen zur Verfügung<br />

stehen. Wer große Strecken<br />

überbrücken muss, kommt<br />

ab ein paar Hundert Metern<br />

kaum ums teure Glasfaserkabel<br />

herum.<br />

Um gute Ergebnisse und hohe Geschwindigkeiten<br />

zu erzielen, sollten alle<br />

Accesspoints direkt per Layer 2, also<br />

Ethernet, verbunden sein. Ist dies nicht<br />

möglich, kommen Details wie die Fragmentgröße<br />

ins Spiel – im LAN üblicherweise<br />

1500 Byte. Ihr sollte der Admin<br />

besonderes Augenmerk schenken, vor<br />

allem wenn er DSL- oder anderen Verbindungsarten<br />

benutzt, die andere Werte<br />

verwenden. Entweder begrenzt er dann<br />

künstlich die Paketgröße von TCP/​IP-<br />

Verbindungen mit MSS Clamping oder<br />

er nutzt IP-Gateways, die Fragmentation<br />

unterstützen. Dann kann der Endbenutzer<br />

Pakete mit einer MTU von 1500 verschicken<br />

und empfangen. Doch Achtung:<br />

Im Hintergrund entsteht Overhead, der<br />

die Performance beeinträchtigt.<br />

Accesscontroller bringen<br />

erweiterte Funktionen<br />

Abbildung 1: Im Hörsaal Janson der Brüsseler Universität fanden die viel besuchten<br />

Fosdem-Keynotes statt. Hunderte Laptops waren hier keine Seltenheit.<br />

Die an sich extrem komplexe Funktechnik<br />

versteckt sich fast komplett hinter<br />

der Hardware. Die meisten Accesspoints<br />

verfügen über nur mäßige Intelligenz,<br />

weshalb es fast obligatorisch wird, einen<br />

Accesscontroller zu verwenden, will<br />

man ein richtig großes WLAN aufbauen.<br />

Außer dem Funken übernimmt der AC<br />

alle Funktionen: Konfigurationen spielt<br />

der Admin nicht mehr auf jedem Accesspoint<br />

einzeln ein, sondern zentral auf<br />

dem Accesscontroller, das Gleiche gilt für<br />

Firmware-Upgrades und das Hardware-<br />

Monitoring.<br />

ACs lassen sich clustern, sie speichern<br />

Listen von Accesspoints inklusive Positionsangaben,<br />

bieten Planungstools für<br />

die Frequenzwahl und verteilen Kanäle<br />

automatisch um. Accesspoints, die aktive<br />

Messungen unterstützen, melden<br />

beispielsweise Überschneidungen der<br />

Netze an ihren Accesscontroller, der sodann<br />

für eine bessere Verteilung sorgt. Er<br />

passt dann kontinuierlich und dynamisch<br />

die Funkstärken der einzelnen Antennen<br />

an, um eine optimale Ausleuchtung aller<br />

Bereiche zu erreichen. Falls zum Beispiel<br />

ein Accesspoint ausfällt, lässt er angrenzende<br />

Nachbarn automatisch stärker<br />

senden.<br />

Hochpreisige Modelle haben aber noch<br />

mehr Tricks in petto: Mit Hilfe von MAC-<br />

Adressenlisten kann der AC auch unerwünschte<br />

„Rogue APs“ feststellen und<br />

den Admin alarmieren, wenn ein Angreifer<br />

im WLAN derlei Man-in-the-Middle-<br />

Angriffe versucht. Durch Triangulierung<br />

grenzen sie den physikalischen Standort<br />

von Clients ein und erfassen Bewegungen,<br />

was Gegenmaßnahmen deutlich<br />

einfacher macht. Zusätzlich können sie<br />

allen Clients, die sich mit dem Rogue<br />

Accesspoint verbinden, automatisch<br />

Deauthenticate - und Disassociate-Nachrichten<br />

schicken, was die Clients dazu<br />

zwingt, sich neu zu verbinden.<br />

Im Idealfall erfassen die Accesspoints die<br />

relativen Positionen der Nutzer und teilen<br />

sie dem Accesscontroller mit. Dieser<br />

kann dann genau im richtigen Moment<br />

die Accesspoints anweisen die Verbindung<br />

mit dem Client ab- respektive aufzubauen.<br />

Manche Accesspoints cachen<br />

Daten kurzfristig und senden sie direkt<br />

nach dem erfolgten Hand-over an den<br />

Client; damit wird Datenverlust minimiert<br />

oder gar ausgeschlossen.<br />

Damit nicht genug, auch die Switches,<br />

die das Netzwerk aufspannen, wollen<br />

informiert sein, das sich die MAC-Adresse<br />

jetzt auf einem anderen Port befindet.<br />

Derlei erledigt in der Regel ein<br />

Gratuitous-ARP-Paket.<br />

Nicht ohne<br />

Leider ist es heute unmöglich,<br />

all diese Funktionen auch<br />

nur mit Accesspoints hinzubekommen,<br />

also ohne Controller.<br />

Roaming funktioniert<br />

zwar, ein schneller Hand-over<br />

oder gar Caching von Paketen<br />

findet aber nicht statt, Anwender<br />

werden immer mindestens<br />

kleine Aussetzer bemerken.E<br />

Konferenz-WLAN 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

27


Titelthema<br />

www.linux-magazin.de Konferenz-WLAN 07/2014<br />

28<br />

Abbildung 2: Glasfaser, Switches und Cisco-Hardware halfen den Fosdem-<br />

Organisatoren beim WLAN-Setup.<br />

Abbildung 3: Die Laptops zur Videokodierung wandeln die Vortragsvideos in fürs<br />

Web geeignete Formate um.<br />

Weil freie Accesspoints samt Controlleranbindung<br />

nicht existieren, ist der<br />

Admin auf proprietäre Lösungen angewiesen.<br />

Hersteller, die in Forschung und<br />

Entwicklung sowie in eigene Hardware<br />

investieren, um Accesspoints mit entsprechenden<br />

Fähigkeiten auszustatten,<br />

setzen auf proprietäre, aber komplette<br />

Lösungs-Stacks.<br />

Entwickler freier Software hingegen, die<br />

Accesscontroller programmieren wollen,<br />

haben in der Regel keinen Zugriff auf entsprechende<br />

Hardware. Vielleicht finden<br />

sich auch hier irgendwann die immer<br />

günstiger und leistungsfähiger werdenden<br />

Chipsätze in offeneren Geräten wider,<br />

mit denen Open-Source-Entwickler<br />

spielen können, ähnlich der Open-WRT-<br />

Linksys-Erfolgsstory (siehe Artikel in der<br />

Hardware-Rubrik dieser Ausgabe).<br />

Eine andere Dimension: Das<br />

Fosdem-Netz an der ULB<br />

Bis dahin bleiben nur die proprietären<br />

Geräte, selbst bei der größten Open-<br />

Source-Konferenz Europas, der Fosdem,<br />

die mit Nutzerzahlen zwischen 5000 und<br />

12 000 Besuchern besondere Anforderungen<br />

stellt. Dort sind die Voraussetzungen<br />

gut, das Netz der Université libre de Bruxelles<br />

(ULB), wurde in den vergangenen<br />

Jahren kontinuierlich ausgebaut. Die<br />

meisten Langstrecken hat man auf Single-<br />

Mode-Glasfaser aufgerüstet, an fast allen<br />

wichtigen Punkten sind Accessports oder<br />

zumindest LAN-Dosen vorhanden und<br />

auch die Switches sind sinnvoll verteilt<br />

und erreichbar.<br />

Die Universität spannt ihr normales Wifi-<br />

Netz mit Hilfe von Accesspoints und Controllern<br />

von Cisco auf. Sponsoring macht<br />

es möglich, die besonders stark frequentierten<br />

Bereiche, insbesondere den größten<br />

Hörsaal Janson (Abbildung 1), mit<br />

zusätzlichen Accesspoints auszustatten.<br />

Dabei handelt es sich jedes Jahr um die<br />

neuesten Hochleistungsmodelle; Cisco<br />

verwendet die Leistungsdaten auch intern<br />

zur Forschung und Entwicklung, da<br />

es wenige Gelegenheiten außerhalb der<br />

Labors gibt, die Technik unter solch extremen<br />

Bedingungen zu testen.<br />

Die ULB ihrerseits erlaubt jedes Jahr den<br />

Anschluss der geliehenen Accesspoints<br />

an ihre Controller. Dadurch bieten alle<br />

beteiligten Geräte automatisch alle ES-<br />

SIDs an, für die Konferenz selbst etwa<br />

»Fosdem«, »Fosdem‐dualstack« und<br />

»Fosdem‐v6«. Im Hintergrund wird jede<br />

ESSID auf einem eigenen VLAN terminiert,<br />

was automatisch ein Überspringen<br />

zwischen den Netzen verhindert und es<br />

zugleich erlaubt, für jede ESSID eigene<br />

Subnetze, Default-Gateways, DHCP und<br />

NAT anzubieten.<br />

Das Problem IP-Space<br />

Da jeder Besucher mit einer öffentlichen<br />

IP-Adressen versorgt sein will, IPv4-<br />

Adressen aber bekanntermaßen knapp<br />

werden, kann kein Sponsor mehr den benötigten<br />

IP-Space zur Verfügung stellen.<br />

Die Organisatoren beantragten deswegen<br />

bei der RIPE NCC für die Fosdem eine<br />

eigene permanente AS-Nummer und drei<br />

/48-IPv6-Subnetze. Permanent zugewiesene<br />

IPv4-Subnetze gibt es bereits seit<br />

September 2012 nicht mehr. Es ist aber<br />

immer noch möglich, für kurze Zeit IPv4-<br />

Subnetze zu beantragen, in 2013 und<br />

2014 jeweils ein /18. Diese müssen nach<br />

Ablauf des konkreten Vergabegrunds sofort<br />

zurückgegeben werden, im Fall der<br />

Fosdem nach zwei Wochen.<br />

Das Routing selbst (über eine vom Provider<br />

Colt [4] bereitgestellte Leitung mit<br />

eigener AS-Nummer) wurde von einer<br />

ebenfalls gesponserten Cisco ASR 1001<br />

[5] übernommen, die auch noch gleichzeitig<br />

DHCP und NAT64 anbieten konnte.<br />

Die ASR 1001 wurde zusammen mit zwei<br />

virtuellen Hosts, die Services wie DNS<br />

übernahmen, den Transcodier-Laptops<br />

für das Videoteam in der kombinierten<br />

Heizung-Putzlager-​Abflussanlage direkt<br />

neben dem Fosdem-NOC untergebracht<br />

(Abbildungen 2 und 3). Eine gewisse<br />

Resistenz gegen interessante Düfte entwickelt<br />

sich da jedes Jahr aufs Neue.<br />

Weltweit die erste Konferenz<br />

mit IPv6 per Default<br />

Eine Besonderheit war das Netzwerk der<br />

Fosdem 2014 insofern, weil dies weltweit<br />

die erste öffentliche Konferenzinfrastruktur<br />

war, die per Default nur IPv6 angeboten<br />

hat. Das war eine bewusste Entscheidung<br />

der Organisatoren, die der verbreiteten<br />

Wahrnehmung, IPv6-Umstellungen<br />

erlebten derzeit einen Stillstand, etwas<br />

entgegensetzen wollten.<br />

Zwar gab es auf IETF- und RIPE-Meetings<br />

schon derlei Testnetze, die Nutzer sind<br />

dort aber tendenziell sehr Netzwerk-af-


fin und eignen sich daher eher schlecht<br />

als Querschnitt durch die Computerwelt<br />

oder gar die Gesellschaft. Auf der Fosdem<br />

ist dies anders. Die meisten Besucher<br />

entwickeln oder nutzen freie Software,<br />

einige schnuppern aber auch nur mal<br />

in das Thema hinein. Von der eigentlich<br />

so einsichtigen Idee bis zur konkreten<br />

Umsetzung brauchte es jedoch mehrere<br />

Monate an Vorbereitung mit langen Diskussionen,<br />

technischer Verifikation und<br />

der Erstellung von Fehlerszenarien samt<br />

zugehörigen Notfallplänen.<br />

Obwohl der IPv6-Standard bald zwanzig<br />

Jahre auf dem Buckel hat und in Bälde<br />

Ipv4 ersetzen soll, stellt er Netze, Admins<br />

und Software immer noch regelmäßig vor<br />

Probleme. Trotzdem, so lautete der Anspruch,<br />

sollte IPv6 mindestens so gut<br />

funktionieren wie IPv4. Aber natürlich<br />

muss sich jedes Netzwerk heutzutage<br />

auch noch mit dem IPv4-Internet verbinden<br />

können; ansonsten wäre es leider<br />

noch relativ nutzlos. Andererseits sind<br />

IPv4 und IPv6 aus Effizienzgründen mit<br />

Absicht so entworfen, dass Hosts, die nur<br />

IPv4 sprechen können, sich nicht mit Maschinen<br />

verbinden können, die nur IPv6<br />

sprechen und umgekehrt.<br />

Lügen mit DNS 64 und NAT 64<br />

Die Lösung ist so einfach wie genial: Der<br />

Router lügt beide Seiten der Verbindung<br />

einfach an. Vorsicht: DNSSEC ist genau<br />

dazu gedacht, diese Art der Manipulation<br />

zu verhindern, weswegen es nicht mit<br />

DNS 64 funktioniert. Dessen Schwindelei<br />

ist sogar mehrstufig: Zuerst definiert der<br />

Admin ein /96-Subnetz, in das er den<br />

gesamten IPv4-Adressraum mappt. Dann<br />

stellt er den DNS-Resolver so ein, dass<br />

jede DNS-Anfrage, deren Antwort einen<br />

A-Record, aber keinen AAAA-Record enthält,<br />

umgeschrieben wird.<br />

Dabei werden alle IPv4-Adressen aus<br />

den A-Records in das /96-Netz gemappt<br />

und dann als einzelne AAAA-Records der<br />

Antwort beigefügt. Ein Router schreibt<br />

jede Anfrage an eine Adresse aus diesem<br />

Mapping um und ersetzt die IPv6-Adresse<br />

durch die echte IPv4-Adresse.<br />

Auf dem Rückweg werden die Pakete<br />

dann wieder von IPv4 auf IPv6 umgeschrieben.<br />

Ein Host kann so auch mit<br />

nur einer IPv6-Adresse auf das normale<br />

Legacy-Internet mit IPv4 zugreifen. Die<br />

volle Konfiguration für ein solches Setup,<br />

wird – etwa für Bind9 – auf <strong>Linux</strong> <strong>Magazin</strong><br />

Online Plus [6] beschrieben.<br />

2015 schon ohne IPv4?<br />

Aber selbst ein voll funktionsfähiges<br />

IPv6-only-Netzwerk anzubieten reicht<br />

bisweilen nicht. Obwohl das IPv6-only<br />

Netzwerk der Fosdem durchgängig stabil<br />

lief und es im parallel betriebenen<br />

Dual-Stack-Netzwerk mehrfach Probleme<br />

mit einem zu kleinen DHCP-Pool gab,<br />

nutzten zum Ende der Fosdem 2014 insgesamt<br />

2750 Endgeräte das Dual-Stackund<br />

nur mehr knapp 600 das IPv6-only-<br />

Netzwerk.<br />

Das war sicherlich zum Teil durch funktionale<br />

Einschränkungen bedingt. Zum<br />

Beispiel gab es laut User-Feedback massenhaft<br />

Probleme auf Maschinen mit aktuellem<br />

Ubuntu, so berichteten Anwender<br />

am Ubuntu-Stand, dazu kamen aber auch<br />

Bugs in Server-Systemen und ‐Software,<br />

die Entwickler teils vor Ort beheben<br />

konnten, etwa durch den Network-Manager-Entwickler<br />

Pavel Simerda – der vom<br />

Veranstalter an einem Besucher-Laptop<br />

mit dem Problem konfrontiert wurde und<br />

sich sofort ans Patchen machte.<br />

Als Fazit des Versuchs lässt sich sagen,<br />

dass der Backbone des Internets und fast<br />

alle Serversoftware heute durchgängig in<br />

der Lage sind, IPv6 sauber zu handhaben.<br />

Probleme gibt es vor allem noch bei<br />

Clientsoftware und Endkundenanschlüssen.<br />

Zumindest beim ersten Problem<br />

wird die Fosdem weiterhin versuchen zu<br />

helfen, indem sie nächstes Jahr auf der<br />

Haupt-ESSID wieder nur IPv6 anbietet<br />

und vielleicht sogar für den Samstag IPv4<br />

auch im Dual-Stack-Netz nicht anbietet.<br />

Dann fehlen nur noch Open-Source-Accesscontroller.<br />

<br />

n<br />

Infos<br />

[1] Debconf: [http:// www. debconf. org]<br />

[2] Fosdem: [http:// www. fosdem. org]<br />

[3] Markus Feilner, „Brüsseler Spitzen“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 04/​14, S. 22<br />

[4] Colt: [http:// www. colt. net]<br />

[5] Cisco ASR1001:<br />

[http:// www. cisco. com/ c/ en/ us/ products/​<br />

routers/ asr‐1001‐router/ index. html]<br />

[6] DNS-64 und NAT-64-Anleitung:<br />

[http:// www. linux‐magazin/ 2014/ 07/ plus/]<br />

Konferenz-WLAN 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

29


Titelthema<br />

www.linux-magazin.de Mesh-Netzwerke 07/2014<br />

30<br />

Drahtlose Ad-hoc-Netzwerke<br />

Chaos mit System<br />

Gegen Überwachung können Mesh-Netzwerke entgegen einer verbreiteten Annahme zwar nur wenig ausrichten,<br />

dennoch sterben die Ad-hoc-Netzwerke trotz kommerzieller Konkurrenz nicht aus. Im Gegenteil: Sie haben<br />

Zulauf, und auf Protokollebene gibt es ständig neue Entwicklungen. Kristian Kißling<br />

© Rin Boonprasan, 123RF.com<br />

Seit etwa einem Jahr greift in der Gesellschaft<br />

die Erkenntnis Raum, dass die<br />

Geheimdienste, allen voran die NSA und<br />

das britische GCHQ, das Internet systematisch<br />

ausspähen. Wer sich die Reaktionen<br />

der Regierungen und der ertappten<br />

Geheimdienste anschaut, dem wird<br />

schnell klar, dass hier weder Einsicht<br />

noch Mäßigung zu erwarten sind.<br />

Also bleibt es der diffus als Internet-<br />

Community bezeichneten Nutzer- und<br />

Entwicklerbasis überlassen, ihre Privatsphäre<br />

selbst zurückzuerobern. „Wir<br />

müssen das Netz wieder dezentralisieren“,<br />

forderte nicht nur Sir Tim Berners-<br />

Lee, der Begründer des WWW.<br />

In welche Richtung das gehen kann,<br />

zeigen einige der Softwareprojekte, die<br />

Redecentralize.org [1] auf der Webseite<br />

vorstellt, darunter etwa Ark OS [2],<br />

Telehash [3], Mailpile [4] oder Media<br />

Goblin [5]. Etablierte Projekte wie Tor<br />

[6] oder Bitcoin [7] nutzen längst P2P-<br />

Technologie, Verschlüsselung und dezentrale<br />

Ansätze, um der Privatsphäre trotz<br />

allem eine Chance zu geben.<br />

Dezentrale Hardware<br />

Doch wie sieht es mit der Hardware aus?<br />

Die von Eben Moglen initiierte Freedom<br />

Box Foundation [8] arbeitet schon recht<br />

lange an Debian-basierten Plug-Servern,<br />

die mit Hilfe von Onion Routing, VPNs<br />

und Verschlüsselung die Privatsphäre<br />

der Nutzer schützen sollen. Nach einem<br />

erfolgreichen Crowdfunding 2011 ist die<br />

Firmware aber erst bei Version 0.2 angekommen.<br />

Blätter wie die „New York Times“ [9],<br />

„Die Zeit“ [10] und „Wired“ [11] suchen<br />

den Stein der Weisen in mobilen Ad-hoc-<br />

Netzwerken, auf Englisch Manet abgekürzt.<br />

Häufig werden solche Netzwerke<br />

auch als vermaschte Netze oder Mesh-<br />

Netzwerke bezeichnet, eine eindeutige<br />

Abgrenzung beider Begriffe fällt schwer<br />

[12]. Gemeint sind drahtlose Verbindun-<br />

gen mobiler Geräte im Ad-hoc-Modus,<br />

wobei die Geräte Daten von Knoten zu<br />

Knoten weiterleiten und spezielle Netzwerkprotokolle<br />

die Routen dynamisch<br />

anpassen (Abbildung 1). In Europa gibt<br />

es solche Mesh-Netzwerke zum Beispiel<br />

in und um Barcelona, Athen, Wien und<br />

Bern, aber auch in deutschen Städten wie<br />

Hamburg, Berlin oder Leipzig.<br />

Glaubt man den Medienberichten, sprechen<br />

im Wesentlichen zwei Argumente<br />

für den Einsatz dieser Netzwerke: Ausfallsicherheit<br />

und Privatsphäre. „Verglichen<br />

mit zentralisierten Netzwerkarchitekturen“,<br />

schreibt die Wired-Autorin<br />

unter [11], „besteht der einzige Weg, um<br />

ein Mesh-Netzwerk abzuschalten, darin,<br />

jeden einzelnen Knoten abzuschalten.“<br />

Vor allem in Ländern mit autoritären Regimen<br />

ist es nicht unwahrscheinlich, dass<br />

Regierungen im Krisenfall auf den großen<br />

Ausschalter drücken, um den politischen<br />

Gegner zu schwächen.<br />

Im Falle von Naturkatastrophen haben<br />

sich Mesh-Netzwerke bereits mehrfach<br />

als robuster erwiesen als kommerzielle<br />

Infrastrukturen. Das gewagtere zweite<br />

Argument lautet, dass solche Netzwerke<br />

es Geheimdiensten schwerer machen, die<br />

Nutzer abzuhören (siehe Kasten „Interview<br />

mit Elektra Wagenrad“), aber dazu<br />

später mehr.<br />

Freifunker<br />

Einige der Leute, die ein solches Mesh-<br />

Netzwerk betreiben, die Berliner Freifunker<br />

[13], sitzen an einem kühlen Mai-<br />

Abend im Berliner Hackerspace „C-Base“<br />

und beantworten die Fragen von Neulingen<br />

zum Thema. So möchte etwa der<br />

angehende Betreiber eines Hostels seine<br />

Gäste per Mesh mit Internet versorgen.


Tatsächlich scheint diese Art der Mesh-<br />

Nutzung populär zu sein: Verschiedene<br />

WLAN-Router verteilen über mehrere<br />

Etagen den Zugang zum Internet-Gateway.<br />

Laut Mario Behling [14], einem<br />

Freifunker, der in Vietnam lebt, verwenden<br />

dort auch Fünf-Sterne-Hotels mitunter<br />

Mesh-Netzwerke, um den Gästen<br />

einen Internetzugang zu ermöglichen,<br />

ohne Kabel verlegen zu müssen.<br />

Die Berliner Freifunker gehören zu den Pionieren<br />

beim Aufbau solcher Netzwerke,<br />

von ihnen stammten auch die ersten für<br />

Mesh-Router angepassten Firmwareversionen<br />

auf Open-WRT-Basis. Mittlerweile<br />

gibt es Freifunker in vielen deutschen<br />

Städten. Sie arbeiten mal lose organisiert,<br />

mal im Verein. Auf ihren Routern läuft<br />

meist Open WRT, in der Regel mit stadteigenen<br />

Anpassungen.<br />

Bei den Berliner Freifunkern kann sich<br />

jeder Interessierte beteiligen, das Netz<br />

deckt einen großen Teil der Stadt ab und<br />

verfügt zurzeit offiziell über 188 Knoten.<br />

Das größte Netz befindet sich aber in<br />

Hamburg mit rund 450 Knoten. Mitunter<br />

laufen noch Dienste auf Servern im<br />

Netzwerk selbst, zum Beispiel Chatserver<br />

oder Blogs, aber auch News- und<br />

Timeserver.<br />

Während einige Leute das Berliner Netzwerk<br />

über Dritte mitnutzen, können sich<br />

Engagierte in drei Stufen direkt beteiligen<br />

[15], die Starter-Kit, Level 2 und Backbone<br />

heißen. Wer sich einen Router aufs<br />

Fensterbrett stellen möchte, greift zum<br />

Starter-Kit und kann seine Internetverbindung<br />

auch für andere freigeben.<br />

Ist der Stadtteil noch nicht im Netz,<br />

bringt ein Level-2-Unterstützer ihn über<br />

einen Outdoor-Router auf die Karte. Dazu<br />

muss der Router auf einem Balkon oder<br />

Dach stehen und Sichtkontakt mit einem<br />

anderen Freifunk-Router in einem 5-Kilometer-Radius<br />

halten. Das Rückgrat des<br />

Freifunk-Netzes aber sind die Backbones:<br />

Sie bilden ein Netz über den Dächern der<br />

Stadt und funken etwa per Richtfunkverbindung<br />

von Kirchtürmen zu Rathausdächern.<br />

In der Regel, erklärt Bastian von den<br />

Berliner Freifunkern, befinden sich auf<br />

den einzelnen Türmen oder strategisch<br />

wichtigen Dächern zwölf Router. Vier<br />

bauen im 5-GHz-Band Richtfunkstrecken<br />

zu anderen Backbones auf, vier weitere<br />

funken im 2,4-GHz-Frequenzband auf die<br />

umliegenden Straßen und noch einmal<br />

vier tun das Gleiche im 5-GHz-Band.<br />

Mehr Privatsphäre? Na ja<br />

Ob Mesh-Netzwerke allerdings mehr<br />

Schutz vor Geheimdiensten bieten, bezweifeln<br />

selbst die Betreiber. Die darunterliegenden<br />

Layer-2-und-3-Protokolle<br />

(OLSR, Batman und weitere) bieten keine<br />

eigenen Sicherheitsmechanismen an. Relativ<br />

anonym kann bleiben, wer sich als<br />

einfacher Nutzer bei einem vorhandenen<br />

Mesh-Knoten anmeldet und zum Beispiel<br />

über HTTPS im Internet surft.<br />

Wer sich jedoch mit seinen persönlichen<br />

Daten bei einem Dienst anmeldet, muss<br />

sich darauf verlassen, dass die Betreiber<br />

des Dienstes eine sichere SSL-Implementierung<br />

anbieten. Zudem können<br />

andere Nutzer – und im Zweifel auch<br />

ein Geheimdienst – den gleichen Knoten<br />

nutzen, um den Rechner einfacher<br />

anzugreifen.<br />

Ein rechtliches Problem: Wer bei den Berliner<br />

Freifunkern per Starter-Kit netterweise<br />

seinen Internetzugang mit anderen<br />

teilt, würde dank der Störerhaftung für<br />

illegale Downloads der Mitnutzer haften.<br />

Um dieses Problem zu umgehen, bieten<br />

die Berliner Freifunker an, den Router per<br />

VPN mit ihrem Internet-Gateway zu verbinden<br />

[16]. Abmahnungen landen dann<br />

bei den Freifunkern, für die aufgrund ihrer<br />

Rolle als ISP in Sachen Störerhaftung<br />

andere Reglungen gelten.<br />

Letztlich kann ein Anwender den über<br />

Mesh-Netzwerke erreichten Grad an Privatsphäre<br />

jedoch auch über konventio-<br />

Mesh-Netzwerke 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

31<br />

Subnetz<br />

Subnetz<br />

Node 2<br />

Internet-Gateway 2<br />

Node 3<br />

Node 1<br />

Internet-Gateway 1<br />

Subnetz<br />

Node 5 / Backbone 2<br />

Node 4 / Backbone 1<br />

Abbildung 1: Ausschnitt eines Mesh-Netzwerks mit fünf Knoten, von denen zwei zugleich als Backbones und zwei als Internet-Gateways fungieren.


Titelthema<br />

www.linux-magazin.de Mesh-Netzwerke 07/2014<br />

32<br />

besseren Internetzugang bieten. Zum<br />

Teil handelt es sich um Community-<br />

Netzwerke, zum Teil rollen kommerzielle<br />

Anbieter Mesh-Netzwerke aus.<br />

In einem Vortrag auf der Internetmesse<br />

Re:publica stellte Mario Behling unter<br />

anderem Guifi.net vor ([17], Abbildung<br />

2). Der katalanische Anbieter betreibt<br />

erstaunliche 25 000 aktive Knoten in einem<br />

riesigen Netzwerk, insgesamt sind<br />

es sogar rund 38 000. Grund für die Popularität<br />

sei die schlechte vorhandene<br />

Infra struktur gewesen. Allerdings hat<br />

die Initiative auch selbst Glasfaserleitungen<br />

sogar in ländlichen Gegenden<br />

verlegt, daher ist das Netz kein reines<br />

Community- und auch kein vollständiges<br />

Mesh-Netzwerk.<br />

In Athen sollen immerhin rund 2500<br />

Nutzer am Athens Wireless Metropolitan<br />

Network hängen ([18], Abbildung<br />

3), das aus Frust über den langsamen<br />

Ausbau der Breitbandinfrastruktur in der<br />

Region entstand. Weitere Mesh-Netze finden<br />

sich etwa in Afrika, Südamerika und<br />

Australien – das Phänomen ist global.<br />

Abbildung 2: Sehr beliebt: Im Guifi.net rund um Barcelona gibt es etwa 25 000 aktive Knoten, wobei es sich<br />

nicht um ein reines Mesh-Netzwerk handelt.<br />

nelle Netzwerke erreichen, etwa über Tor<br />

oder eine anonyme VPN-Nutzung. Daher<br />

dürfte dieses Kriterium für die meisten<br />

Mesh-Nutzer nur eine untergeordnete<br />

Rolle spielen.<br />

Mesh in Groß<br />

Noch populärer als in Deutschland sind<br />

Mesh-Netzwerke in anderen Teilen Europas<br />

und der Welt, weil sie häufig den<br />

Hard- und Software<br />

Wer sich mit Mesh-Netzwerken beschäftigt,<br />

stößt schnell auf ein Buch [19], das<br />

Corinna Eichele, die sich Elektra Wagenrad<br />

nennt, 2007 verfasst hat. Es bietet interessante<br />

Einblicke in die Protokolle und<br />

technischen Hintergründen von Mesh-<br />

Netzwerken, allerdings hat sich seit 2007<br />

einiges getan (siehe „Interview“).<br />

Zum Beispiel in puncto Hardware: So<br />

empfehlen die Berliner Freifunker in ihrem<br />

Wiki [20] eine Reihe von Indoorund<br />

Outdoor-Routern, meist von TP-Link<br />

Interview mit Elektra Wagenrad<br />

Elektra Wagenrad ist Autorin<br />

eines Mesh-Buches und<br />

im Freifunk-Projekt aktiv.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Wie haben<br />

sich Mesh-Netzwerke und<br />

die Freifunk-Bewegung in<br />

den vergangenen zehn Jahren entwickelt?<br />

Elektra Wagenrad: Wir hatten eine Vision, die<br />

darauf gewartet hat, dass wir sie realisieren.<br />

Wir haben mit Routingprotokollen gekämpft,<br />

die nichts taugen, und Treibern, die immer abgeschmiert<br />

sind und die Rechner zum Stillstand<br />

gebracht haben. Davon sind wir jetzt weg. Wir<br />

haben eine ganze Auswahl funktionierender<br />

Routingprotokolle. Auch bessere Treiber haben<br />

wir. Aber es gibt neue Probleme, wo wieder<br />

irgendwas instabil wird. Was die Bedeutung von<br />

Freifunk angeht: Es hat viele Leute inspiriert.<br />

Hier in Deutschland haben wir gerade einen<br />

ordentlichen Zulauf.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Was ist es, das die Bewegung<br />

gerade wieder aufleben lässt?<br />

Elektra Wagenrad: Es gibt eine neue Generation<br />

von jungen Leuten, die eingestiegen sind und<br />

die großen Spaß dran haben. Die machen aus<br />

verschiedenen Gründen mit, also etwa aus sozialem<br />

Engagement oder technischem Interesse.<br />

Die Motivation hat sich geändert. Früher waren<br />

wir die Pioniere, die Technik entwickeln wollten.<br />

Außerdem versorgten wir die weißen Flecken.<br />

Heute wollen zwar immer noch Leute gern die<br />

Netze nutzen, aber die Gründe sind andere,<br />

denn die Breitbandversorgung ist ja relativ gut.<br />

Viele Leute mögen die Idee der Freifunk-Netze.<br />

Außerdem sind einige eher besorgt: Sie wollen<br />

mit diesen Netzen ihre Freiheit verteidigen.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Wie haben sich Freifunk-OLSR<br />

und Batman seit dem Erscheinen deines Buches<br />

weiterentwickelt?<br />

Elektra Wagenrad: Batman Advanced, also das<br />

Layer-2-Protokoll, ist dazugekommen. Technisch<br />

ist das aber ein ziemlicher Spagat. Es geht<br />

darum, dass die Mesh-Router ein Layer-2-Netz<br />

aufbauen, das für die Clients so aussieht, als<br />

wäre alles lokal und alle [Knoten; d. Red.] über<br />

einen physikalischen Switch miteinander verbunden.<br />

Das hat viele technische Implikationen.<br />

Zum Beispiel muss man speziell Sorge dafür<br />

tragen, dass das ARP-Protokoll funktioniert.<br />

Man muss einem solchen Batman-Advanced-<br />

Knoten zudem beibringen, dass, wenn er in seinem<br />

LAN-Segment 100 Geräte hat, er diese 100<br />

MAC-Adressen auch mit dem Rest des Netzes<br />

teilt. Das wirft Skalierungsprobleme auf.<br />

<strong>Linux</strong>-<strong>Magazin</strong>: Neben der Skalierbarkeit gab es<br />

ja auch Sorgen bezüglich der Sicherheit. Habt<br />

ihr dafür bereits eine Lösung?<br />

Elektra Wagenrad: Das Protokoll basiert auf<br />

MAC-Adressen. Vor allem mobile Geräte haben<br />

aber eine feste MAC-Adresse, die auch nicht<br />

zufällig neu randomisiert wird. Auf einem <strong>Linux</strong>-<br />

Gerät kannst du die MAC-Adresse ändern, aber<br />

mit einem normalen Telefon ist das nicht drin,<br />

es sei denn, man hackt sich da rein. Ich sehe<br />

das persönlich nicht so sehr als Problem, aber<br />

natürlich gibt es Leute, die dafür jetzt ein Problembewusstsein<br />

entwickeln. Ich komme von<br />

der technischen Seite und möchte, dass das<br />

Netz funktioniert, und bin nicht in erster Linie<br />

um Privatheit besorgt.<br />

Bedenken gegen die Netzwerke hat es immer<br />

gegeben. Ich warne davor, den Heilsversprechungen<br />

zu glauben, die manche Journalisten<br />

sensationsheischend aufbauschen: Die freien<br />

Netze bringen die Freiheit, verteidigen die<br />

Freiheit – da sollte man keine übertriebenen<br />

Erwartungen wecken. (Jan Rähm)


mit Atheros-Chipsätzen, die inzwischen<br />

recht zuverlässig arbeiten.<br />

Das war nicht immer so: Im Buch widmen<br />

sich zahlreiche Seiten den endlosen<br />

Problemen mit der Hardware und den<br />

Unzulänglichkeiten der Treiber. Einige<br />

Routerhersteller behandeln den Ad-hoc-<br />

Modus noch immer recht stiefmütterlich,<br />

sodass benötigte Features nicht korrekt<br />

funktionieren und es zum Beispiel Probleme<br />

beim Einsatz mit mehreren Adhoc-Partnern<br />

gibt, weil die Hersteller<br />

einzelne Szenarios schlicht nicht testen.<br />

Grundsätzlich lassen sich jedoch alle<br />

Router einsetzen, auf denen das <strong>Linux</strong>basierte<br />

Open WRT läuft.<br />

Die Fähigkeiten eines Mesh-Netzwerks<br />

stehen und fallen jedoch mit den eingesetzten<br />

Protokollen. Klassiker, die noch<br />

häufig zum Einsatz kommen, sind OLSR<br />

und Batman. Die beschreibt Elektra in ihrem<br />

Buch recht ausführlich. Die Spezifikation<br />

für das OLSR-Protokoll (Optimized<br />

Link State Routing) stammt ursprünglich<br />

Abbildung 3: Auch in Athens Wireless Metropolitan Network ballen sich zahlreiche Knoten.<br />

von der französischen Forschungseinrichtung<br />

INRIA und ist als RFC 3626 [21]<br />

spezifiziert.<br />

Hierbei verschicken die Knoten im Mesh-<br />

Netzwerk permanent Hello-Nachrichten<br />

an die anderen Knoten und geben so<br />

die Informationen zur Netzwerktopologie<br />

weiter. Das ist wichtig, weil sich die<br />

Topologie eines Mesh-Netzwerks theoretisch<br />

permanent ändert: Neue Knoten<br />

und Internet-Gateways tauchen auf, vorhandene<br />

wechseln ihren Standort, dadurch<br />

ändern sich Routen.<br />

Eine freie Implementierung des RFC unter<br />

BSD-Lizenz haben die Betreiber von<br />

Olsr.org veröffentlicht. Als die Freifunker<br />

diese 2004 in der Praxis mit 25 Knoten<br />

testeten, stellten sie schnell fest, dass<br />

Mesh-Netzwerke 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

33


Titelthema<br />

www.linux-magazin.de Mesh-Netzwerke 07/2014<br />

34<br />

Die Entwickler des Batman-Protokolls<br />

(Better<br />

Approach To Mobile Adbester<br />

ETX-Wert<br />

TTL=1<br />

A<br />

TTL=1<br />

B<br />

D<br />

C<br />

TTL=2<br />

TTL=3<br />

bester<br />

ETX-Wert<br />

TTL=3<br />

TTL=2<br />

E<br />

einige der implementierten Features nicht<br />

wirklich gut funktionierten, namentlich<br />

der Hysterese-Algorithmus und die Multipoint-Relays<br />

[22]. Daher entstand eine<br />

Freifunk-Implementierung von OLSR, die<br />

nicht mehr kompatibel zur der von Olsr.<br />

org war. Während letztere ungeachtet der<br />

Qualität stets nach der kürzesten Route<br />

sucht, haben die Freifunker einen anderen<br />

Ansatz verfolgt.<br />

Danach errechnen die Knoten aus der<br />

Qualität der Verbindungen zu sich selbst<br />

(LQ) und der zu den Nachbarn (NLQ) die<br />

Wahrscheinlichkeit, mit der ein Paket einen<br />

bestimmten Nachbarn erreicht: ETX<br />

= 1/(LQ * NLQ). Liegt der ETX-Wert<br />

(Expected Transmis sion Count) bei 1.0,<br />

geht kein Paket verloren, liegt er bei 4.0,<br />

kommt nur jedes vierte abgeschickte Paket<br />

durch.<br />

Das Freifunk-OLSR errechnet nicht nur<br />

ständig ETX-Werte, sondern feilt darüber<br />

hinaus auch mit Hilfe von Topology Control<br />

Messages (TCM) ständig an topologischen<br />

Karten des Mesh-Netzwerks, die<br />

an alle Knoten gehen.<br />

Dank des Fisheye-Algorithmus flutet<br />

Freifunk-OLSR nicht ständig alle Nodes<br />

mit TCMs, sondern versieht nur jedes<br />

13. Paket mit einer langen TTL (Time to<br />

Live), während alle anderen Pakete nur<br />

ein bis drei Schritte weit kommen. Das<br />

schärft den Blick auf die direkten Nachbarn,<br />

lässt aber weit entfernte Knoten<br />

eher trübe erscheinen (Abbildung 4).<br />

F<br />

Z<br />

entfernter<br />

Knoten<br />

TTL=255<br />

Abbildung 4: Über TCMs mit variabler TTL behält das Freifunk-OLSR-Protokoll<br />

das Netzwerk im Fischauge, ohne zu viel Overhead zu erzeugen.<br />

Über Host Network Announcements<br />

(HNA)<br />

kündigt ein Knoten an,<br />

dass er zugleich als<br />

Gateway für ein Subnetz<br />

dient, dessen Adressen<br />

im Mesh-Netzwerk einmalig<br />

sein müssen. Das<br />

OLSR-Plugin Httpinfo<br />

listet alle HNA-Ankündigungen<br />

unter »http://<br />

localhost:8080« auf.<br />

IP-Adresse, Netzmaske<br />

sowie die Domain-Name-<br />

Server-Ad resse muss der<br />

User aber selbst im Router<br />

eintragen, Elektras<br />

Buch schlüsselt zudem<br />

die zahlreichen Parameter<br />

in der Datei »/etc/<br />

olsrd.conf« auf.<br />

Der Einsatz von OLSR<br />

birgt auch Probleme in sich: Besonders<br />

in großen Netzen mit Hunderten Knoten<br />

dauert die Kalkulation des Topologie-Graphen<br />

mitunter einige Sekunden,<br />

was zu Verzögerungen und anderen Problemen<br />

führt, weil die Routingtabellen<br />

nicht überall auf dem gleichen Stand<br />

sind. Zudem verursacht das Umschalten<br />

zwischen Internet-Gateways aufgrund<br />

der Network Address Translation (NAT)<br />

Probleme.<br />

Der 2013 implementierte Multismart-<br />

Gateway-Mode routet den Traffic der<br />

verschiedenen Internet-<br />

Gateways ohne NAT an<br />

einen zentralen Proxy,<br />

der dann die Antworten<br />

an die Gateways<br />

zurückschickt. Neben<br />

dem höheren Konfigurationsaufwand<br />

entstehen<br />

dadurch allerdings auch<br />

ein Single Point of Failure,<br />

unter Umständen<br />

mehr Kosten sowie ein<br />

Minus an Sicherheit,<br />

denn der Traffic lässt<br />

sich an einem einzigen<br />

Punkt mitschneiden.<br />

Batman<br />

nächster<br />

Nachbar<br />

A<br />

hoc Networking, [23]), zu denen auch<br />

Elektra gehört, lösen das letztgenannte<br />

Problem, indem sie automatisch UDP-<br />

Tunnel zu einem Internet-Gateway aushandeln.<br />

Aber nicht nur das: Batman<br />

senkt auch den Overhead. Nicht alle<br />

Knoten müssen die komplette Topologie<br />

kennen und diese Daten permanent erneuern.<br />

Bei Bedarf visualisiert ein externer<br />

Server diese Topologie.<br />

Das Protokoll überflutet das Netzwerk per<br />

UDP-Broadcast mit so genannten Originator<br />

Messages (OMs), die die Ursprungs-<br />

IP, eine Sequenznummer, eine TTL sowie<br />

die IP des letzten Absenders enthalten –<br />

jedoch keine Zieladresse (Abbildung 5).<br />

Die Pakete sind typischerweise 52 Byte<br />

groß und suchen sich automatisch den<br />

schnellsten Weg durchs Netz.<br />

Angenommen es gibt drei Routen 1, 2<br />

und 3 von Punkt A nach Punkt Z. Gelangen<br />

zum Beispiel die OMs mit der<br />

Ursprungs-IP von Punkt A am schnellsten<br />

über Route 2 zum Punkt Z, weiß<br />

der Mesh-Knoten Z jetzt nicht nur die<br />

IP-Adresse von Punkt A, sondern auch<br />

die des Nachbarn, über den eine Route<br />

dorthin führt. Auch wenn er kurze Zeit<br />

später alle drei Routen kennt, würde er<br />

seine Daten über den schnellsten Nachbarn<br />

auf Route 2 in die Richtung von<br />

Punkt A schicken.<br />

Batman gibt dabei nur bidirektionale<br />

Nachrichten weiter, stellt also sicher,<br />

dass ein Knoten nicht nur sendet, son-<br />

B<br />

D<br />

C<br />

nächster<br />

Nachbar<br />

Abbildung 5: Die Originator Messages (OM) des Batman-Protokolls<br />

enthalten die Ursprungs-IP, die IP des letzten Absenders, einen TTL-Wert<br />

sowie eine Sequenznummer.<br />

F<br />

E<br />

Z


MAC 00:19:00:E0:00:00:02<br />

nächster<br />

Nachbar<br />

A<br />

B<br />

D<br />

C<br />

dern auch empfängt. Knoten, die auf das<br />

Internet zugreifen, können dies zudem<br />

ankündigen.<br />

Batman Advanced<br />

nächster<br />

Nachbar<br />

MAC 00:19:00:E0:00:00:01<br />

MAC 00:19:00:E0:00:00:07<br />

Wer sich die Karte der deutschen Freifunk-Communities<br />

[20] anschaut, entdeckt,<br />

dass einige Netze auch bereits Batman<br />

Advanced (»batman‐adv«) einsetzen.<br />

Im Gegensatz zu OLSR und Batman<br />

verursacht die neue Version [24] weniger<br />

nächster<br />

Nachbar<br />

MAC 00:19:00:E0:00:00:06<br />

OSI-Layer 2 / Link.local<br />

Abbildung 6: In Batman Advanced operieren die Knoten auf OSI-Layer 2,<br />

nutzen virtuelle Switches und identifizieren sich über ARP und Tabellen,<br />

welche die MAC-Adressen enthalten.<br />

F<br />

E<br />

Z<br />

Datenverkehr im Mesh-<br />

Netz und macht auch<br />

sonst einiges anders als<br />

der Vorläufer.<br />

Das Protokoll beruht<br />

zwar auf Batman, operiert<br />

aber dank eines<br />

Kernelmoduls auf dem<br />

OSI-Layer 2 (Abbildung<br />

6). Es tauscht also Routing-Informationen<br />

nicht<br />

über UDP-Pakete aus<br />

und ändert auch keine<br />

Routingtabellen. Vielmehr<br />

verfügen alle Knoten<br />

im Netz über einen<br />

virtuellen Switch-Port,<br />

den eine virtuelle Ethernet-Schnittstelle<br />

(»tap«)<br />

emuliert.<br />

So agiert das komplette<br />

Mesh-Netz wie ein riesiger<br />

verteilter Switch.<br />

Die Daten und Routing-<br />

Informationen tauschen<br />

die Knoten dabei über nackte Ethernet-<br />

Frames aus, während der Übertragung<br />

verlassen die Pakete Layer 2 nicht.<br />

Die Teilnehmer brauchen auch keine<br />

IP-Adressen, denn Batman Advanced<br />

verwendet ARP und Tabellen mit MAC-<br />

Adressen.<br />

Damit lassen sich auf dem übergeordneten<br />

OSI-Layer-3 alle möglichen Protokolle<br />

betreiben und aus der Sicht von Ebene 3<br />

sind alle Nodes im Mesh-Netzwerk nur<br />

einen Hop voneinander entfernt. Über<br />

Bridges kann der Admin nicht vermaschte<br />

Clients (etwa Mobilgeräte) einbinden:<br />

HNA-Nachrichten schicken Listen mit<br />

MAC-Adressen der Geräte aus dem Subnetz<br />

ins Netzwerk, was sogar Roaming<br />

ermöglicht. Da das Routing im Kernelspace<br />

und nicht im Userspace erfolgt,<br />

verursacht Batman Advanced kaum Rechenlast<br />

beim Prozessieren der Pakete.<br />

Battlemesh<br />

Auch wenn die hier vorgestellten Protokolle<br />

in Deutschland, Österreich und<br />

der Schweiz durchaus populär sind, gibt<br />

es noch einige weitere, zu denen unter<br />

anderen BMX, Babel oder Open 802.11s<br />

zählen. Das letztere Protokoll ist eine<br />

Teilspezifikation des IEEE-Standards<br />

802.11, ebenfalls auf Layer 2 verankert<br />

und soll eine offene Implementierung<br />

von 802.11s werden.<br />

In einer löblichen Tradition treffen sich<br />

viele der Betreiber weltweiter Mesh-Netzwerke<br />

einmal im Jahr zum Battlemesh<br />

[25], Version 7 fand Mitte Mai in Leipzig<br />

statt. Der Name ist Programm, denn die<br />

Teilnehmer lassen dabei die verschiedenen<br />

Protokolle in Feldtests gegeneinander<br />

antreten und diskutieren in Talks und<br />

Workshops aktuelle Probleme, etwa den<br />

Umgang mit Störungen im Frequenzband.<br />

Sie besprechen neue Entwicklungen in<br />

Protokollen oder tauschen sich über ihre<br />

Erfahrungen als Freizeit-ISPs aus. Es sieht<br />

so aus, als würde die Evolution der selbst<br />

organisierten Netze weitergehen. n<br />

Mesh-Netzwerke 07/2014<br />

Titelthema<br />

www.linux-magazin.de<br />

35<br />

Infos<br />

[1] Redecentralize.org:<br />

[http:// redecentralize. org]<br />

[2] Ark OS: [https:// arkos. io]<br />

[3] Telehash: [http:// telehash. org]<br />

[4] Mailpile: [https:// www. mailpile. is]<br />

[5] Media Goblin: [http:// mediagoblin. org]<br />

[6] Tor-Projekt: [https:// www. torproject. org]<br />

[7] Bitcoin: [https:// bitcoin. org]<br />

[8] Freedom Box:<br />

[https:// freedomboxfoundation. org]<br />

[9] New York Times zu Mesh-Netzwerken:<br />

[http:// www. nytimes. com/ 2013/ 11/ 14/​<br />

technology/ personaltech/ homemade‐wireless‐networks‐keep‐the‐snoops‐away.<br />

html]<br />

[10] Zeit-Artikel zum Mesh:<br />

[http:// www. zeit. de/ digital/ internet/​<br />

2013‐10/ freifunk‐berlin‐nsa]<br />

[11] Wired zum Mesh:<br />

[http:// www. wired. com/ 2014/ 01/ its‐timeto‐take‐mesh‐networks‐seriously‐andnot‐just‐for‐the‐reasons‐you‐think/]<br />

[12] Manet vs. WMN: [http:// dev. laptop. org/​<br />

~cscott/ 802. 11s/ 80211s‐a5‐bahr. pdf]<br />

[13] Freifunk Berlin: [http:// berlin. freifunk. net]<br />

[14] Marios Blog: [http:// mariobehling. de/​<br />

taxonomy/ term/ 486]<br />

[15] Freifunk-Teilnahme: [http:// berlin. freifunk.​<br />

net/ participate/ overview/]<br />

[16] Freifunk-VPN:<br />

[http:// wiki. freifunk. net/ Vpn03]<br />

[17] Guifi.net:<br />

[http:// guifi. net/ en/ node/ 38392]<br />

[18] Athener Mesh-Netz: [http:// www. awmn.​<br />

net/ content. php? langid=1]<br />

[19] Corinna ,Elektra’ Aichele, „Mesh – Drahtlose<br />

Ad-hoc-Netze: Open Source Press,<br />

2007<br />

[20] Freifunk-Netze: [http:// freifunk. net/​<br />

wie‐mache‐ich‐mit/ community‐finden/]<br />

[21] RFC 3626: [http:// www. rfc‐base. org/ txt/​<br />

rfc‐3626. txt]<br />

[22] Geschichte von OLSR:<br />

[https:// www. open‐mesh. org/ projects/​<br />

open‐mesh/ wiki/ The‐olsr‐story]<br />

[23] Batman-Protokoll (2007):<br />

[http:// downloads. open‐mesh. org/​<br />

batman/ papers/ batman‐status. pdf]<br />

[24] Batman Advanced:<br />

[http:// www. open‐mesh. org/ projects/​<br />

batman‐adv/ wiki]<br />

[25] Battlemesh.org: [http:// battlemesh. org]


Titelthema<br />

www.linux-magazin.de Richtfunk 07/2014<br />

36<br />

Abgelegene Gebäude ans Netz bringen<br />

Funken mit Verstand<br />

Seit vernetzte IT alle betrieblichen Prozesse begleitet, lässt sich für ein abgelegenes Firmengebäude kaum<br />

noch Verwendung finden. Wo Zugangsprovider abwinken und man selbst keinen Graben bis zum Horizont<br />

schaufeln will oder kann, schlägt die Stunde des Richtfunks. Jan Kleinert<br />

n Mit welcher Leistung soll und darf<br />

man senden, um den gewünschten<br />

Datendurchsatz zu erreichen?<br />

In der Praxis arbeiten die meisten Richtfunkstrecken<br />

bidirektional – beide Seiten<br />

sind zugleich Sender und Empfänger.<br />

Fresnelzonen<br />

© Katarzyna Kluczyk, 123RF.com<br />

In den 1990er Jahren hatte die Bedeutung<br />

des kommerziellen Richtfunks deutlich<br />

abgenommen, da kostengünstige Glasfaserverbindungen<br />

vielerorts verfügbar<br />

wurden. Lediglich als Versorgung von<br />

Mobilfunkstationen feierte die elektromagnetische<br />

Punkt-zu-Punkt-Technik eine<br />

kleine Renaissance.<br />

Doch auch jenseits dieser Nische gibt es<br />

Anwendungen für digitale Luftnummern<br />

– das eingangs erwähnte Anbinden abgelegener<br />

Firmenteile in ländlichen Gebieten<br />

gehört dazu, Ferienhäuser oder<br />

Gasthöfe auf Bergen oder Inseln genauso.<br />

Selbst wenn die bislang netzlose Stelle<br />

nur einen Steinwurf weit zum Ausgangpunkt<br />

liegt, kommt manchmal nur Funk<br />

infrage, da vielleicht eine dazwischen<br />

verlaufende Straße oder ein asphaltierter<br />

Platz jegliche privat motivierte Erdhubarbeiten<br />

verhindert.<br />

Selbst wer gewöhnlich in infrastrukturell<br />

gut versorgter Umgebung arbeitet, kann<br />

zu einer Richtfunkstrecke veranlasst sein,<br />

und zwar zu einer temporären: Wenn Firmenevents<br />

oder Verein- oder Volksfeste<br />

irgendwo im Freien stattfinden, kommt<br />

der Strom aus dem Generator oder einem<br />

Lichtmasten – aber woher bitte das breitbandige<br />

Internet? In all diesen Fällen und<br />

noch einigen mehr sollte sich der Admin<br />

der Richtfunktechnk erinnern.<br />

Vorteilhaft sind die niedrigen Betriebskosten<br />

und der schnelle Aufbau. Zwar ist<br />

Richtfunkt anfälliger für Störungen, beispielsweise<br />

durch Starkregen, als Standleitungen.<br />

Er ist aber auch besser entstörbar,<br />

sodass die Gesamtverfügbarkeit<br />

nicht schlechter als die einer Mietleitung<br />

sein muss.<br />

Bei der Auslegung der Funkstrecken sind<br />

ein paar Eckfragen zu klären:<br />

n Mit welchen Frequenzen sollen Sender<br />

und Empfänger arbeiten?<br />

n Welche Antennen eignen sich?<br />

n Wie müssen die Antennen positioniert<br />

sein, damit die Verbindung sicher zu<br />

Stande kommt?<br />

Alle im Richtfunk eingesetzten Antennen<br />

strahlen ihre Leistung nicht linear,<br />

sondern in einem vom Modell abhängigen<br />

Winkel ab. Bei der Ausbreitung<br />

der Wellen vom Sender zum Empfänger<br />

kommt es in bestimmten Abständen zur<br />

Verstärkung oder zur Auslöschung der<br />

effektiven Feldstärke. Diese Bereiche heißen<br />

Fresnelzonen [1].<br />

Die so genannte erste Fresnelzone ist hier<br />

die wichtige, weil über sie der Hauptteil<br />

der Energie übertragen wird. Physikalisch<br />

betrachtet handelt es sich um ein Rotationsellipsoid,<br />

an dessen Brennpunkten<br />

die beiden Antennen stehen.<br />

Die Zone sollte frei von Hindernissen wie<br />

Bäumen oder Häusern sein – so wie in<br />

Abbildung 1. Andernfalls ist die Übertragung<br />

gedämpft oder gar unmöglich. Ist<br />

die erste Fresnelzone zur Hälfte verdeckt,<br />

so beträgt die Zusatzdämpfung an der<br />

Empfangsantenne 6 dB (Dezibel).<br />

Lizenzfreier Richtfunk<br />

Ohne behördliche Spezialgenehmigung<br />

funken darf man nur auf einigen lizenzfreien<br />

Frequenzbändern – die gängigen<br />

sind:<br />

n 2,4 GHz: Wegen der massiven Nutzung<br />

durch WLANs eigentlich nicht<br />

mehr zu empfehlen.<br />

n 5 GHz: Erreichbar sind Full Duplex<br />

100 MBit/​Sekunde und mehr (bis 3


Kilometer) oder 80 MBit/​Sekunde bis<br />

rund 8 Kilometer.<br />

n 24 GHz: 350 MBit/​Sekunde Full Duplex<br />

(bis zu 1 Kilometer) oder 100<br />

MBit/​Sekunde (bis rund 2 Kilometer).<br />

n 60 GHz: 100 MBit bis 1 GBit/​Sekunde<br />

(Distanzen bis zu 1 Kilometer).<br />

Die Sender und Empfänger für 2,4 GHz<br />

und 5 GHz können, müssen aber nicht<br />

auf der gängigen WLAN-Technik beruhen.<br />

Auf Richtfunk-Hardware spezialisierte<br />

Firmen wie Lancom Systems [2]<br />

funken gerne auf 5 GHz, weil das Band<br />

weniger von Haushalts-WLANs frequentiert<br />

ist. Ein weiterer auf Digitalfunk<br />

spezialisierter Anbieter, Meconet [3],<br />

empfiehlt sogar eine andere Outdoor-<br />

Übertragungstechnik als Standard-WLAN<br />

und erreichen damit eine deutlich höhere<br />

Datenübertragungsrate.<br />

Die Entfernung ist letztlich<br />

eine Frage der Dezibel<br />

Lutz Kleemann von Meconet, antwortet<br />

auf die Frage, welche Strecken mit Profimitteln<br />

überbrückbar sind, mit: „Nahezu<br />

jede, kommt darauf an, welcher<br />

Netto-Datendurchsatz gefordert ist.“ Er<br />

rechnet vor, dass bei 5-GHz-Technik und<br />

mit 28-dBi-Antennen die äquivalente isotrope<br />

Sendeleistung (EIRP) an der Sendeantenne<br />

30 dBm beträgt. An der Empfangseite,<br />

wo die Antenne wieder 28 dBi<br />

Gewinn bringt, reichen erfahrungsgemäß<br />

‐90 dBm, um gerade noch einen Link<br />

zu Stande zu bringen Die Differenz, 148<br />

dB, steht für den Übertragungsverlust zur<br />

Verfügung, die so genannte Freiraumdämpfung<br />

(FSL), was ziemlich genau 100<br />

Kilometer Entfernung entspricht.<br />

Braucht man nur die halbe Distanz zu<br />

überbrücken, fällt die FSL 6 dB geringer<br />

aus, womit als moduliertes Signal ‐84<br />

dBm beim Empfänger ankommen, was<br />

für eine stabile und einigermaßen durchsatzstarke<br />

Verbindung reicht. Es versteht<br />

sich von selbst, dass man bei 50 Kilometern<br />

das Ausrichten der Antennen Profis<br />

überlassen sollte.<br />

Wer als kommerzieller Netzbetreiber auftritt,<br />

darf statt mit 1 Watt im 5-GHz-Band<br />

mit 4 Watt (36 dBm) im BFWA-Band<br />

(Broad band Fixed Wireless Access bei<br />

5,8 GHz) arbeiten, könnte nach obiger<br />

Rechnung sogar 200 Kilometer überbrücken.<br />

Bei Kleemanns Firma betreffen die<br />

meisten Kundenanfragen den Bereich<br />

zwischen 100 Meter und 5 Kilometern.<br />

Kleemann salopp über sein Brot-und-Butter-Geschäft:<br />

„Die Technik ist immer die<br />

gleiche, nur die Antenne ändert sich.“<br />

Im nächsten lizenzfrei nutzbaren Bereich,<br />

bei 24 GHz, verhalten sich die Funkwellen<br />

schon fast wie Licht. Das verkürzt einerseits<br />

die maximale Reichweite – schon<br />

wegen der Erdkrümmung. Andererseits<br />

sind die Datenübertragungsraten beachtlich:<br />

Laut Kleemann 920 MBit/Sekunde<br />

auf 1 Kilometer und 200 MBit/Sekunde<br />

bei 4 Kliometer.<br />

Großes Antennenangebot<br />

Für kurze Entfernungen von Haus zu<br />

Haus und wenn das bereitstehende Budget<br />

klein ist, können Anwender Experimente<br />

anstellen mit normalen 2,4-GHz-<br />

WLAN-Routern und auf Sender- und<br />

Empfängerseite Flach-, Helix-, Gitterspiegel-,<br />

Vollspiegel-, Yagi-, Sektor- oder<br />

Patch-Antennen für den Außeneinsatz<br />

anstellen (Abbildung 2 und 3). Es gibt<br />

Richtfunk 07/2014<br />

Rubrik<br />

www.linux-magazin.de<br />

37<br />

© Jcmcclurg, Wikipedia<br />

Abbildung 1: Erste Fresnelzone über dem hügeligen Gelände einer Richtfunkstrecke.


Titelthema<br />

www.linux-magazin.de Richtfunk 07/2014<br />

38<br />

© logilink.de<br />

Abbildung 2: Ein Beispiel für eine einfache Gitterspiegel-Antenne ist das Modell<br />

Logilink WL 0097 für rund 60 Euro.<br />

Abbildung 3: Bei Meconet kostet das kleinste System, es trägt den Namen RB/<br />

SXT, pro Seite 44 Euro, für das passende Mountingkit kommen rund 8 Euro hinzu.<br />

auch Modelle, die gleich mit einem wassergeschützten<br />

Routerleergehäuse versehen<br />

sind. Den Router nah an der Antenne<br />

zu haben, ist von Vorteil, weil die<br />

Dämpfungsverluste des Antennenkabels<br />

niedriger ausfallen.<br />

Solche Amateurtechnik findet man überall<br />

im Internet, die Kosten liegen bei 50<br />

bis 100 Euro pro Antenne. Daneben hat<br />

sich eine Antennen-Selbstbauszene entwickelt,<br />

die mit Teilen aus dem Baumarkt<br />

oder gar Alltagsgegenständen individuelle<br />

Strahler schrauben und löten. Wirtschaftlich<br />

und technisch herausragend ist<br />

das natürlich nicht, gibt der Sache aber<br />

einen kultig-nerdigen Touch.<br />

Optischer Richt-„Funk“<br />

Free-Space Optics ist eine Alternative zu<br />

Richtfunk per elektromagnetischen Wellen.<br />

Die meist mit Laser arbeitenden Systeme<br />

reichen bis zu einigen Kilometern weit. Dank<br />

der Übertragung via Laser schaffen solche<br />

Systeme bei kommerzieller Auslegung aber<br />

höhere Datenraten – STM-16 beispielsweise<br />

bis zu 2,5 GBit/​Sekunde.<br />

Andererseits reagiert der Infrarot-Laserstrahl<br />

relativ empfindlich auf Luftflimmern und<br />

Wettereinflüsse, Umweltverschmutzung und<br />

Rauch, Umgebungslicht und Abschattung. Da<br />

ein Laserstrahl sehr schmal ist, werden sogar<br />

Bewegungen, die das Gebäude vollführt, an<br />

dem der Sender befestigt ist, zum Problem.<br />

Bei diesen vergleichsweise kurzen Entfernungen<br />

gelingt das Ausrichten der<br />

Antennen per Hand noch ganz gut, da<br />

die Gegenstelle mit bloßen Auge stets gut<br />

erkennbar ist. Zum Blitzschutz, den man<br />

Outdoor nicht unbeachtet lassen sollte,<br />

macht der VDE in Deutschland detaillierte<br />

Vorschriften. In der Praxis wichtig<br />

ist, dass die Antennen und auch die Elektronik(!)<br />

vernünftig geerdet sind.<br />

Router mit Ethernet<br />

Bei den Wireless-Chipsätzen schwört<br />

Lutz Kleemann von Meconet auf Atheros:<br />

„Er ist für uns der Beste, was Stabilität,<br />

Zusatzfeatures und vor allem Empfangsempfindlichkeit<br />

angeht.“ Wegen der<br />

Atheros-Chips läuft in den Geräten seiner<br />

Firma Router OS vom Mikrotik [4], ein<br />

gekapseltes, zum Teil proprietäres <strong>Linux</strong>.<br />

Kleemann: „Weil wir dann kein 802.11<br />

mehr machen, sondern eigene Outdoor-<br />

Protokolle mit genialer QoS verwenden.<br />

Der Treiber und das System bieten auch<br />

deutlich mehr Wireless-Features als alles<br />

sonst auf dem Markt.“<br />

Selbst die Frage, ob es obligatorisch sei,<br />

ein verschlüsseltes VPN über die Distanz<br />

zu schicken, damit niemand die Kommunikation<br />

abhört, bringt Kleemann nicht<br />

vom Thema Chipsätze weg: „VPN? Nein,<br />

warum?! Moderne WLAN-Interfaces machen<br />

AES 128 in der Hardware selbst.<br />

Wie soll ich 450 MBit/​Sekunde brutto,<br />

also circa 330 MBit/​Sekunde netto in<br />

Software verschlüsseln?“<br />

Egal, ob Profi- oder Amateurtechnik: Die<br />

meisten Router setzen die übertragenen<br />

Daten auf Ethernet um. Nur einige Spezialsysteme<br />

besitzen zum Beispiel E1-<br />

Schnittstellen, um zwei klassische Telefonanlagen<br />

ohne Umweg über TCP/​IP<br />

miteinander zu verbinden.<br />

Kleiner Schluss-Spurt<br />

Steht die Richtfunkstrecke mit zufriedenstellender<br />

Geschwindigkeit, bleibt dank<br />

Standard-Ethernet für den Admin wenig<br />

zu tun. Er wird die Strecke in der Regel<br />

als Bridge konfigurieren und bekommt<br />

alle Hosts im nunmehr nur noch geografisch<br />

abgelegenen Gebäude topologisch<br />

in sein Netz gestellt.<br />

n<br />

Infos<br />

[1] Fresnelzonen:<br />

[http:// de. wikipedia. org/ wiki/ Fresnelzone]<br />

[2] Lancom Systems: [http:// www. lancomsystems.<br />

de/ loesungen/ wireless‐lan/​<br />

wlan‐funkstrecken/]<br />

[3] Meconet: [http:// www. meconet. de]<br />

[4] Router OS:<br />

[http:// wiki. mikrotik. com/ wiki/ Manual:TOC]


In eigener Sache: DELUG-DVD<br />

Kali, ERP, OSSMC-Videos, Kubuntu<br />

Einführung 07/2014 12/2010<br />

Software<br />

Auch diesen Monat bekommen die DELUG-Käufer die doppelte Datenmenge zum einfachen Preis: Von der einen<br />

Seite der DVD bootet ein exklusiv erweitertes Kali <strong>Linux</strong>, auf der anderen gibt’s alle Videos von der OSSMC 2014,<br />

ein ERP-Paket mit virtueller Maschine, Dokumentation und Video von Kivitendo und vieles mehr. Markus Feilner<br />

www.linux-magazin.de<br />

41<br />

Inhalt<br />

42 Bitparade<br />

Drei Enterprise-Ressource-Planning-<br />

Manager im Vergleich.<br />

50 Portia<br />

Screengrabbing mit dem Python-Tool.<br />

54 Baloo<br />

Der neue Suchdienst für KDE will die<br />

Probleme von Nepomuk vergessen<br />

machen.<br />

58 Tooltipps<br />

Im Kurztest: Checkit 0.2.0, Ddpt 0.94,<br />

Firejail 0.9.4, Gpgpwd 0.4, Ocserv 0.3.4,<br />

Webalizer 2.23.<br />

Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

ohne Datenträger gibt es die DELUG-Ausgabe<br />

mit Monats-DVD, bei der die Redaktion<br />

den Datenträger nach einem speziellen<br />

Konzept zusammenstellt: In einer Art<br />

modularem System enthält er Programme<br />

und Tools, die in der jeweiligen <strong>Magazin</strong>-Ausgabe<br />

getestet und besprochen<br />

werden. Zudem gibt es nicht im Heft<br />

abgehandelte Software, die die Redak-<br />

tion besonders empfiehlt,<br />

alles gebündelt unter einer<br />

HTML-Oberfläche.<br />

Seite A: Exklusives<br />

Kali <strong>Linux</strong><br />

Von Seite A der-DVD bootet<br />

die 64-Bit-Ausgabe von<br />

Kali <strong>Linux</strong>, der Pentesting-<br />

Distribution. Sie ist die<br />

Nachfolgerin von Backtrack<br />

<strong>Linux</strong>, beruht auf<br />

Debian und bringt viele<br />

Securitytools mit.<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> hat<br />

der jüngsten Release 1.0.6<br />

ein Update verpasst, um<br />

die Exploits für den Heartbleed-Bug<br />

in Metasploit 4.9.2 zu integrieren<br />

(siehe „Insecurity Bulletin“ in diesem<br />

Heft). Daneben sind auch Wireshark<br />

1.10.2, Burpsuite Free Edition 1.6, Zed<br />

Attack Proxy 2.3 und Forensiktools wie<br />

Bulk_extractor 1.3 und Sleuthkit 3.2.3 an<br />

Bord (Abbildung 1).<br />

Abbildung 1: Exklusiv beim <strong>Linux</strong>-<strong>Magazin</strong>: Kali 1.0.6 mit Metasploit 4.9.2.<br />

mit Kivitendo 3.1 (die Software selbst<br />

liegt ebenfalls auf der DVD), ein Einsteigertutorial<br />

ist in der virtuellen Maschine<br />

verfügbar. Damit nicht genug, ebenfalls<br />

im Bundle steckt noch ein kostenloser<br />

ERP-Artikel aus der Fachzeitschrift „IT<br />

im Mittelstand“.<br />

Abbildung 2: Eine virtuelle Maschine mit Demodaten, viel Dokumentation,<br />

einem Video und diversen Howtos - dieses Paket des ERP Kivitendo gibt es<br />

nur auf der DELUG-DVD.<br />

ERP-Bundle<br />

Wer die Silberscheibe<br />

umdreht und mit<br />

dem Browser darauf<br />

zugreift, landet<br />

im HTML-Menü mit<br />

zahlreichen weiteren<br />

exklusiven Inhalten.<br />

Gleich als Erstes<br />

sticht dort das ERP-<br />

Bundle heraus, das<br />

der Hersteller des<br />

OSS-Werkzeugs Kivitendo<br />

geschnürt hat<br />

(Abbildung 2). In der<br />

VM bootet Debian 7<br />

Baloo und Kubuntu<br />

In KDE gab es immer wieder Ärger um<br />

den Suchdienst Nepomuk, deshalb bringt<br />

KDE 4.13 erstmals den Nachfolger Baloo,<br />

der alles besser machen soll. Auf der<br />

DELUG-DVD finden sich sowohl Kubuntu<br />

14.04 (32 und 64 Bit) mit Baloo als Standardsuchmaschine<br />

(passend zum Artikel<br />

in diesem <strong>Magazin</strong>) wie auch der Quelltext<br />

der aktuellen Baloo-Version.<br />

Wem das alles nicht reicht, der schaut<br />

sich knapp acht Stunden Videos von der<br />

„Open Source System Management“ an,<br />

vertieft sich in Software zu den Artikeln<br />

dieses Heftes oder spielt mit Pidora, dem<br />

Fedora für den Raspberry Pi. n


Software<br />

www.linux-magazin.de Bitparade 07/2014<br />

42<br />

Drei ERP-Systeme im Test<br />

Verflixte Verwalter<br />

Einkauf, Produktion, Verkauf, Zahlungswesen und Buchhaltung – um komplexe Unternehmensabläufe zu organisieren<br />

und Prozesse zu optimieren, setzen auch kleine Händler gerne ERP- oder Warenwirtschaftssysteme<br />

ein. Die Bitparade testet zwei Programme für den eigenen Server und eine Cloudlösung. Katja Flinzner, Heike Jurzik<br />

© Alphaspirit, 123RF<br />

Ob Händler, Handwerker oder Dienstleister<br />

– wer ein Unternehmen betreibt, der<br />

hat es mit komplexen Prozessen zu tun.<br />

Von Wareneinkauf und Lieferantenverwaltung<br />

über Bestellabwicklung und Versand<br />

bis hin zu Zahlungs- und Mahnverfahren<br />

greifen zahlreiche Einzelaspekte<br />

wie viele kleine Zahnrädchen ineinander.<br />

Kommt zum reinen Ein- und Verkauf<br />

noch die Produktion hinzu, bietet ein<br />

Unternehmen seine Waren oder Leistungen<br />

auf mehreren Kanälen an oder will es<br />

schlicht die Arbeitsschritte der Mitarbeiter<br />

koordinieren, nehmen die täglich zu<br />

bewältigenden Abläufe unübersichtliche<br />

Ausmaße an.<br />

Wo gängige Shopsysteme an ihre Grenzen<br />

stoßen, übernehmen ERP- oder Warenwirtschaftssysteme,<br />

die neben reinen<br />

Stammdaten auch die Lagerbestände<br />

verwalten und Bestellprozesse strukturiert<br />

abbilden. Am Markt tummeln sich<br />

unterschiedliche Lösungen für diverse<br />

Betriebssysteme und Plattformen. Geringste<br />

Abhängigkeit und größte Flexibilität<br />

versprechen Web-basierte Lösungen,<br />

von denen die Bitparade drei vorstellt. Im<br />

Test treten Kivitendo [1] und Wawision<br />

[2] für den eigenen Server gegen den<br />

Clouddienst Actindo [3] an.<br />

Die ersten beiden Kandidaten sollten<br />

auf einem typischen LAMP-Server mit<br />

Debian 7.4 zeigen, wie komfortabel die<br />

Einrichtung ist. Die Tester schauten sich<br />

außerdem die Artikelverwaltung, die Bestellabwicklung,<br />

die Buchhaltungs- und<br />

Teamfunktionen an und prüften, wie gut<br />

die Anbindung an externe Shopsysteme<br />

und Marktplätze gelingt.<br />

E Kivitendo<br />

Der erste Testkandidat hieß ursprünglich<br />

Lx-Office; seit 2012 lautet der Name Kivitendo<br />

[1]. Hinter dieser Warenwirtschaftsund<br />

Finanzbuchhaltungs-Software steht<br />

die Bonner Firma Richardson & Büren<br />

GmbH. Das unter der GPL veröffentlichte<br />

Programm ist kostenlos. Zudem bietet<br />

der Hersteller mehrere kostenpflichtige<br />

Supportpakete an, von der einfachen Beratung<br />

(90 Euro pro Stunde) über eine<br />

Vollwartung (2000 Euro monatlich), eine<br />

Projekt-Flatrate (6000 Euro monatlich)<br />

bis hin zum Hosting eines eigenen Kivitendo-Servers<br />

(ab 43 Euro pro Monat).<br />

Die Homepage beschreibt die enthaltenen<br />

Leistungen im Detail.<br />

Die Tester installierten Version 3.1.0 vom<br />

Februar 2014, die neben Apache auch<br />

PostgreSQL sowie diverse Perl-Pakete<br />

voraussetzt. Die von der Homepage aus<br />

verlinkte Installationsanleitung listet alle<br />

benötigten Komponenten auf. Alternativ<br />

rufen Administratoren »./scripts/installation_check.pl«<br />

auf, welches das eigene<br />

System auf Vollständigkeit überprüft:<br />

Checking Required Modules:<br />

Looking for parent .................. 0.225<br />

Looking for Archive::Zip 1.16 ........ 1.30<br />

Looking for Clone .................... 0.31<br />

Looking for Config::Std.................0.9<br />

...<br />

Result:<br />

All .................................... OK<br />

Danach erzeugt der Benutzer im Kivitendo-Verzeichnis<br />

einen neuen Ordner<br />

namens »webdav« und passt die Benutzer-<br />

und Gruppenzugehörigkeit der<br />

gesamten Verzeichnisstruktur an. Auf<br />

ERP-Systeme<br />

DELUG-DVD<br />

Auf der DELUG-DVD dieses<br />

<strong>Magazin</strong>s befinden sich die getesteten Programme<br />

Kivitendo (Version 3.1.0 vom Februar<br />

2014) und Wawision (Version 2.3.1552 vom 21.<br />

April 2014). Außerdem enthält der Datenträger<br />

ein Kivitendo-Tutorial, einen Videovortrag<br />

und eine vom Hersteller maßgeschneiderte<br />

virtuelle Maschine mit Kivitendo 3.1.


dem Debian-Testrechner gehört alles<br />

dem Apache-User beziehungsweise der<br />

‐Gruppe »www‐data«. Danach kopiert<br />

der Admin die Vorlage, um eine Einrichtungsdatei<br />

zu erzeugen:<br />

cp config/kivitendo.conf.default config/U<br />

kivitendo.conf<br />

Er passt sie danach im Texteditor an eigene<br />

Bedürfnisse an. Das sehr ausführliche<br />

und gut geschriebene Handbuch<br />

hilft bei allen Fragen hierzu weiter und<br />

unterstützt den Admin auch dabei, eine<br />

PostgreSQL-Datenbank, einen DB-Cluster<br />

im UTF-8-Encoding, einen Benutzer und<br />

ein Kennwort für die Datenbank anzulegen.<br />

Danach kann er sich als Benutzer<br />

»admin« mit dem in der Datei »kivitendo.<br />

conf« im Klartext hinterlegten Passwort<br />

am Webinterface anmelden.<br />

Umwege<br />

Kivitendo bietet ein ausgeklügeltes Berechtigungssystem.<br />

Der Verwalter erzeugt<br />

zunächst über »Benutzer, Mandanten<br />

und Benutzergruppen« einen oder mehrere<br />

unprivilegierte Accounts für die tägliche<br />

Arbeit. Über Checkboxen definiert<br />

er ganz genau, auf welche Funktionen<br />

ein Anwender Zugriff hat (siehe Abbildung<br />

1). Wie im Handbuch beschrieben,<br />

legt er außerdem Mandanten und Gruppen<br />

an. Danach geht es über »System |<br />

Zum Benutzerlogin« zur Anmeldemaske<br />

zurück, und der Mitarbeiter kann sich<br />

einloggen.<br />

Neben der großen Kiwi auf dem Startbildschirm<br />

stehen ein paar grundlegende<br />

Systeminformationen, über das Menü<br />

am oberen Rand erreicht der Nutzer alle<br />

Funktionen. Unter »System« findet er die<br />

Einstellungen zu Konten, Artikeln, Preisen,<br />

Zahlungs- und Lieferbedingungen.<br />

Der nächste Schritt sollte zur Abteilung<br />

»Stammdaten« führen. Hier erfasst er<br />

Kunden und Lieferanten ebenso wie Waren,<br />

Dienstleistungen, Erzeugnisse oder<br />

Projekte. Etwas gewöhnungsbedürftig<br />

ist allerdings, dass er zum Bearbeiten<br />

vorhandener Daten den Menüpunkt »Berichte«<br />

öffnen und die gewünschte Rubrik<br />

auswählen muss.<br />

Kivitendo verknüpft einige Arbeitsschritte<br />

miteinander. Manchmal sind die Optionen<br />

jedoch so willkürlich angeordnet,<br />

dass es schwer ist, sich einen schnellen<br />

Überblick zu verschaffen. So kann der Benutzer<br />

aus der Kundenmaske heraus zum<br />

Beispiel »Speichern und Auftrag erfassen«<br />

oder »Speichern und Rechnung erfassen«<br />

wählen und die Kundendaten direkt in<br />

den entsprechenden Dialog übernehmen<br />

(siehe Abbildung 2). Das Anlegen von<br />

Angeboten, Aufträgen, Lieferscheinen,<br />

Rechnungen und Gutschriften erfolgt<br />

alternativ über die entsprechenden Einträge<br />

unter »Verkauf«.<br />

Ein Dropdown-Menü zeigt vorhandene<br />

Kunden an. Das Übernehmen von Artikelstammdaten<br />

ist jedoch nur über einen<br />

kleinen Umweg möglich: Gibt der Anwender<br />

einen Teil des Namens oder der<br />

Nummer eines Artikels ins entsprechende<br />

Feld ein und klickt dann auf »Erneuern«,<br />

so zeigt das ERP-System alle passenden<br />

Datensätze in einer Liste an.<br />

Ähnlich sehen die Prozesse im Einkaufsbereich<br />

aus. Hier erfasst die Software<br />

Preisanfragen, Lieferantenaufträge, Lieferscheine<br />

und Einkaufsrechnungen. Die<br />

Bearbeitungsschritte gehen teilweise ineinander<br />

über. Im Workflow »Preisanfrage«<br />

kann der Benutzer die Anfrage beispielsweise<br />

in einen Lieferantenauftrag oder in<br />

eine Rechnung überführen.<br />

Zu Papier<br />

Die verschiedenen Dokumente im Rahmen<br />

der Lieferanten- oder Kundenkommunikation<br />

speichert Kivitendo wahlweise<br />

im PDF-, Postscript-, HTML- oder Open-<br />

Document-Format. Alternativ verschickt<br />

es die Schriftstücke als Mailanhang. Für<br />

Abbildung 1: Der Kivitendo-Administrator weist den<br />

Benutzergruppen gezielt Rechte zu.<br />

Bitparade 07/2014<br />

Software<br />

www.linux-magazin.de<br />

43


Software<br />

www.linux-magazin.de Bitparade 07/2014<br />

44<br />

Abbildung 2: Den Dialog zum Erfassen von Rechnungen erreichen Kivitendo-Anwender entweder über das<br />

Menü »Verkauf« oder direkt aus der Kundenmaske heraus.<br />

den PDF-Druck nutzt das Programm im<br />

Hintergrund das Textsatzsystem Latex.<br />

Wer hier Fehlermeldungen über fehlende<br />

Komponenten erhält, der sollte auf dem<br />

Server das bereits erwähnte Skript mit<br />

den Parametern »‐lv« befragen, welche<br />

Latex-Pakete fehlen:<br />

./scripts/installation_check.pl ‐lv<br />

Das nachträgliche Bearbeiten der Dokumente<br />

gelang im Test nur eingeschränkt.<br />

Lediglich Aufträge waren über die Berichtsliste<br />

modifizierbar. Nutzer dürfen<br />

mehrere Kundenaufträge auswählen und<br />

sie damit zusammenfassen.<br />

Angebote und Rechnungen sowie Preisanfragen<br />

und Lieferantenaufträge konnten<br />

die Tester im Nachhinein nicht mehr<br />

verändern, obwohl in der Mandantenkonfiguration<br />

für Rechnungen die entsprechende<br />

Option gesetzt war. Ähnliches<br />

galt für Lieferscheine: Diese wandeln die<br />

Berichtslisten immerhin in Rechnungen<br />

um. Praktisch ist die Wiedervorlagefunktion,<br />

welche die Dokumente zu einem<br />

selbst definierten Zeitpunkt einem bestimmten<br />

Mitarbeiter erneut unterbreitet.<br />

Das hilft dabei, Angebote oder Preisanfragen<br />

zu verfolgen.<br />

Zahlen und Fakten<br />

Nachdem der Benutzer über »System |<br />

Lager« Plätze für seine Waren definiert<br />

hat, verbucht das ERP-System auch die<br />

Lagerbewegungen. Dafür sucht der Mit-<br />

arbeiter nach den entsprechenden Artikeln,<br />

weist ihnen Zielort und Platz zu<br />

und hält die Chargennummer und den<br />

EAN-Code fest. Unterhalb des Formulars<br />

zeigt Kivitendo die letzten zehn Lagertransaktionen<br />

und Bewegungen für den<br />

ausgewählten Artikel an, was die Zuordnung<br />

erleichtert. Auch das Umsortieren<br />

und die Entnahme von Waren bildet die<br />

Software ganz ähnlich ab. Das Einlagern<br />

von Erzeugnissen erfolgt über einen separaten<br />

Menüpunkt.<br />

Das Herz von Kivitendo ist die Buchhaltung.<br />

Anwender können im System<br />

angelegte Rechnungen direkt buchen. Alternativ<br />

erfassen sie Vorgänge über »Dialogbuchen«,<br />

»Debitorenbuchung« oder<br />

»Kreditorenbuchung« aus dem Menü<br />

»Finanzbuchhaltung«. Vorher legen sie<br />

über »System | Mandantenkonfiguration«<br />

Standardkonten fest, wählen die<br />

Währung, eventuelle Wechselkurse, die<br />

Versteuerungsart (Ist- oder Soll-Versteuerung)<br />

und so weiter.<br />

Außerdem ist eine automatisierte Datev-<br />

Prüfung möglich. Die für Handel, Banken<br />

und Versicherungen gängigsten Musterkontenrahmen<br />

SKR03 und SKR04 sind<br />

bereits angelegt, Nutzer dürfen sie laut<br />

Hersteller nach eigenem Gusto anpassen.<br />

Die Tester konnten jedoch keine Auswahlmöglichkeit<br />

zwischen den beiden<br />

Kontenrahmen finden. Die Funktionen,<br />

um neue Buchungskonten anzulegen und<br />

vorhandene zu bearbeiten, stecken im<br />

Menü »System | Kontenübersicht«.<br />

Sehr ausführlich fällt auch der buchhalterische<br />

Berichtsteil von Kivitendo aus.<br />

Anwender können außer einer Kontenübersicht<br />

auch Summen- und Salden-Listen<br />

aufrufen und erhalten Unterstützung<br />

bei Gewinn- und Verlustrechnung, der<br />

betriebswirtschaftlichen Auswertung, der<br />

Umsatzsteuervoranmeldung und bei der<br />

Bilanz. Letztere entspricht aber nicht den<br />

Vorgaben des deutschen Handelsgesetzbuches,<br />

sondern orientiert sich am angloamerikanischen<br />

Modell und hat damit<br />

eher informativen Charakter.<br />

Den Steuerberater ersetzt die Software<br />

also nicht, erleichtert aber dank des integrierten<br />

Datev-Exports die Zusammenarbeit<br />

mit diesem beim Jahresabschluss.<br />

Wer gerne vorher informiert ist, der dürfte<br />

sich über die monatlichen Auflistungen<br />

zu Angebotssummen, Aufträgen, Rechnungen,<br />

Preisanfragen und Einkaufsrechnungen<br />

freuen.<br />

Im Menü »Zahlungsverkehr« speichern<br />

Benutzer Ein- und Ausgänge von Zahlungen<br />

per Hand. Ein automatisiertes Erfassen<br />

über ein angebundenes Bankkonto,<br />

wie es Wawision bietet, fehlt Kivitendo.<br />

Dafür ist es aber möglich, Bankeinzugsund<br />

Überweisungsaufträge mittels Sepa-<br />

XML-Exportdateien vorzubereiten. Das<br />

ERP-System enthält anders als die anderen<br />

beiden Kandidaten keine Backupfunktion.<br />

Administratoren umgehen das<br />

Problem, indem sie auf dem Server mit<br />

der Shell per<br />

sudo ‐u postgres pg_dumpall > kivitendo.dump<br />

alle Kivitendo-Datenbanken sichern. Der<br />

Befehl<br />

sudo ‐u postgres psql ‐f kivitendo.dump U<br />

postgres<br />

stellt sie wieder her. Diese Herangehensweise<br />

ist auch Mittel der Wahl, wenn<br />

die Installation zu einem anderen Server<br />

umziehen soll.<br />

E Wawision<br />

Die Firma Embedded Projects GmbH [4]<br />

entwickelte Wawision [2] ursprünglich<br />

als Lösung für die eigenen Geschäftsprozesse.<br />

Zahlreiche Kundenanfragen motivierten<br />

die Augsburger Programmierer<br />

dazu, die Software auch für die Öffentlichkeit<br />

bereitzustellen. Sie steht unter<br />

der AGPL und ist in der Basisvariante


kostenlos. Zudem bietet der Hersteller<br />

zwei Kaufversionen an. Die Enterprise-<br />

Variante gibt es für rund 1400 Euro. Sie<br />

enthält Support bei der Einrichtung, ein<br />

Jahr lang Updates, Module für die Buchhaltung,<br />

den Zahlungseingang und Autoversand<br />

sowie ein Ticketsystem.<br />

Die Premium-Ausgabe (Preise auf Anfrage)<br />

enthält zusätzliche Module, einen<br />

Entwicklerzugang inklusive Versionsverwaltung<br />

und sie entfernt auf Wunsch den<br />

Namen Wawision aus den sichtbaren<br />

Oberflächen. Die einfache Installation auf<br />

einem Kundenserver schlägt einmalig mit<br />

rund 240 Euro zu Buche. Eine Anbindung<br />

von Shopware oder anderer Onlineshop-<br />

Systeme ist möglich; Preise erfragen Interessierte<br />

ebenfalls beim Hersteller.<br />

Bitparade 07/2014<br />

Software<br />

www.linux-magazin.de<br />

45<br />

Große Auswahl<br />

Der zweite Kandidat versteht sich als<br />

ERP-System, das mehrere Vertriebssatelliten<br />

zentral bündelt und dabei alle Prozesse<br />

abdeckt, die in einem Unternehmen<br />

anfallen. Das ist ein ehrgeiziges Ziel – die<br />

Tester wollten zunächst wissen, wie sich<br />

die kostenlose Version schlägt und ob sie<br />

die typischen Prozesse von KMUs standardisieren<br />

und kanalisieren kann. Sie<br />

schauten sich die Version 2.3.1552 vom<br />

April 2014 an. Darüber hinaus warfen sie<br />

einen kurzen Blick auf die kostenpflichtige<br />

Enterprise-Version, um zu begutachten,<br />

was diese zusätzlich leistet.<br />

Die Installation auf dem eigenen Server<br />

erfordert ein typisches LAMP-System<br />

mit PHP 5 und MySQL. Zudem benötigt<br />

die Software die Pakete »php5‐curl«,<br />

»php5‐imap«, »php5‐cli« und »cron«.<br />

Nach dem Auspacken des Tar.gz-Archivs<br />

passen Anwender gegebenenfalls Benutzer-<br />

und Gruppenzugehörigkeit des<br />

Verzeichnisses »wawision_oss_testing«<br />

an. Unter Debian ordnen sie alles dem<br />

Systembenutzer »www‐data« zu. Danach<br />

wechseln sie nach »wawision_oss_testing«<br />

und stellen sicher, dass der Ordner<br />

»conf« Schreibrechte hat.<br />

Aus Sicherheitsgründen sollten Admins<br />

in der Apache-Konfiguration den Document-Root-Pfad<br />

auf »wawision/www«<br />

setzen, damit sensible Daten aus den<br />

Verzeichnissen »wawision/userdata«<br />

und »wawision/conf« nicht durch eine<br />

fehlerhafte ».htaccess«-Datei online stehen.<br />

Mit der »mysql«-Shell oder einem<br />

Abbildung 3: Per Mausklick vergeben Wawision-Admins gezielt Rechte in den einzelnen Abteilungen. Die<br />

grauen Schaltflächen sind deaktiviert, die blauen freigeschaltet.<br />

anderen Werkzeug erzeugen Benutzer<br />

eine leere Datenbank und legen für diese<br />

unbedingt einen Benutzernamen und ein<br />

Passwort fest. Anschließend öffnen sie<br />

»www/setup/setup.php« im Browser und<br />

folgen den Anweisungen. Nach erfolgreicher<br />

Installation sollten Anwender aus<br />

Sicherheitsgründen den Ordner »setup«<br />

löschen. Sie können sich nun mit dem<br />

Benutzernamen »admin« und dem Passwort<br />

»admin« anmelden.<br />

Auf den ersten Blick präsentiert sich Wawision<br />

übersichtlich und aufgeräumt.<br />

Dazu trägt auch das Berechtigungssystem<br />

bei, das dafür sorgt, dass jeder im<br />

Dashboard nur die Reiter sieht, die der<br />

Verwalter für ihn freigeschaltet hat. Das<br />

Hauptmenü auf der linken Seite ist für<br />

alle jederzeit sichtbar.<br />

In der Abteilung »Administration | Einstellungen<br />

| Benutzer« erzeugen Admins<br />

neue Accounts, bearbeiten und löschen<br />

vorhandene. Über den Reiter »Rechte«<br />

weisen sie per Mausklick auf die Schaltflächen<br />

ganz gezielt Freigaben auf einzelne<br />

Wawision-Komponenten zu (siehe<br />

Abbildung 3). Alternativ erreichen sie<br />

über »Vorlagen« die Templates »Mitarbeiter«,<br />

»Verwalter«, »Vollzugriff« und<br />

»Admin«, die automatisch bestimmte Befugnisse<br />

zuweisen.<br />

Um alle Möglichkeiten auszureizen, sollten<br />

Anwender allerdings viel Zeit einplanen,<br />

denn nicht immer ist das Ineinandergreifen<br />

der zahlreichen Einzelmodule<br />

offensichtlich. Damit steht die Benutzerund<br />

Rechteverwaltung beispielhaft für die<br />

Grundproblematik von Wawision: Das<br />

umfangreiche System kann sehr viel –<br />

man muss sich aber gut damit auskennen<br />

und viel experimentieren, um alles fehlerfrei<br />

zum Laufen zu bringen. Die vielen<br />

Optionen und Felder ermöglichen zwar<br />

eine sehr individuelle Feinabstimmung,<br />

sind aber häufig eher knapp betitelt und<br />

deshalb nicht selbsterklärend.<br />

Das Wawision-Handbuch und die Videotutorials<br />

beschreiben nur kleine Ausschnitte<br />

des immensen Funktionsumfangs.<br />

Hier sollte der Hersteller nachlegen<br />

und eine ausführliche Anleitung anbieten.<br />

Derzeit kommen Neueinsteiger ohne<br />

Nachfragen beim freundlichen Support<br />

kaum ans Ziel.<br />

Angebot und Nachfrage<br />

Ein typischer Workflow bei Wawision<br />

beginnt mit dem Erfassen der Adressen.<br />

Dabei spielt es keine Rolle, ob der Benutzer<br />

zuerst Mitarbeiter, Kunden oder Lieferanten<br />

im System anlegt – alle Optionen<br />

sind unter dem Menüpunkt »Stammdaten<br />

| Adressen« gebündelt. Da Wawision<br />

die Rollen erst nach dem Speichern zuweist,<br />

ist das zunächst verwirrend. Unter<br />

»Stammdaten« versammelt das ERP-<br />

System auch die »Artikel«. Die Software<br />

unterscheidet dabei zwischen Lagerartikeln<br />

und Porto, behandelt also auch die


Software<br />

www.linux-magazin.de Bitparade 07/2014<br />

46<br />

Abbildung 4: Wawision vervollständigt die Artikelnamen automatisch und klappt ein Dropdown-Menü mit im<br />

System gespeicherten Produkten aus. So sparen Benutzer Tipparbeit.<br />

verschiedenen Versandkostensätze als<br />

Artikel. Beim Eintragen der Artikel hilft<br />

ein Assistent.<br />

Alternativ geben Benutzer die Daten von<br />

Hand ein. Neben etlichen Checkboxen<br />

zum Anklicken finden sie hier auch<br />

Felder für eigene Beschreibungen und<br />

Texte. So nimmt das ERP-System neben<br />

Standardinformationen zu Hersteller,<br />

Lieferant, Gewicht oder Mindestbestellmenge<br />

auch Produktbeschreibungen auf<br />

Deutsch und Englisch entgegen. Optional<br />

tragen Anwender Katalogtexte ein, die<br />

das System in der Enterprise-Version über<br />

»Marketing | Katalog« als PDF-Dokument<br />

bereitstellt. Einen Einfluss auf das Layout<br />

haben sie nicht.<br />

Geschäftseröffnung<br />

Nutzer dürfen Artikel einem oder mehreren<br />

Shops zuordnen und Warengruppen,<br />

Varianten und individuelle Lieferzeiten<br />

definieren. Über weitere Reiter legen sie<br />

Einkaufspreise und ‐konditionen sowie<br />

Verkaufspreise fest. Zusätzlich bietet Wawision<br />

an, externe Dateien wie Bilder,<br />

Datenblätter und Ähnliches zu Artikeln<br />

hochzuladen. Die Software hält alle mit<br />

dem Produkt verknüpften Bewegungen<br />

fest und bietet Informationen auf den<br />

Reitern »Statistik«, »Bestellungen« und<br />

»Aufträge« sowie im Menü »Lager«, das<br />

Anwender in der oberen Reihe im Dashboard<br />

finden. Wer mehrere Vertriebskanäle<br />

oder Produktionssparten voneinander<br />

trennen möchte, der verwaltet diese<br />

unter »Stammdaten | Projekte«.<br />

Nachdem der Anwender die Lieferanten,<br />

Kunden und Artikel im System gespeichert<br />

hat, kann er die ersten Geschäftsbewegungen<br />

abbilden. Gut gefällt der prozessuale<br />

Ansatz von Wawision: Benutzer<br />

ckung und eventuelle Annahmekosten,<br />

bevor die Lieferung eine Eingangsnummer<br />

erhält, die sie auf dem Paket vermerken<br />

können. In den folgenden Schritten<br />

können Anwender die Sendung öffnen,<br />

die Inhalte verarbeiten und auf die entsprechenden<br />

Lagerplätze verteilen, die<br />

sie zuvor in Wawision über das Menü<br />

»Lager« angelegt haben. Die Software<br />

greift wiederum komfortabel auf vorhandene<br />

Bestelldaten zurück.<br />

Ähnlich gut organisiert verläuft der Verkaufsprozess.<br />

Der Benutzer kann alle<br />

klassischen Dokumente (etwa Angebot,<br />

Auftrag, Rechnung, Lieferschein oder<br />

Gutschrift) direkt aus den Kundendaten<br />

heraus oder auch separat anstoßen und<br />

nacheinander abarbeiten. Ein Angebot<br />

führt er so etwa als Auftrag weiter, einen<br />

Auftrag überführt er in eine Rechnung<br />

oder einen Lieferschein, aus einer<br />

Rechnung wird eine Gutschrift. Alle diese<br />

Dokumente verschickt er mit individuellen<br />

Anschreiben direkt aus dem System<br />

heraus per E-Mail oder druckt sie für<br />

Brief- oder Faxversand aus.<br />

Briefköpfe und Textvorlagen gestalten<br />

Verwalter über »Administration | Einstellungen«,<br />

und Benutzer dürfen während<br />

des Bearbeitens eventuelle Textänderungen<br />

vornehmen. Ein zusätzlich erhältliches<br />

Modul der Kaufversion rüstet die<br />

Zahlungsabwicklung mit Prozessen zum<br />

Mahnwesen nach. Eine Autoversand-<br />

Funktion bietet Unterstützung beim Packen<br />

und Verschicken verkaufter Artikel.<br />

In der Open-Source-Variante klappt das<br />

jedoch nur sehr eingeschränkt.<br />

Wer auf dieses Feature Wert legt, der sollte<br />

sich die Enterprise-Variante ansehen, in<br />

der auch die Bereiche »Buchhaltung«<br />

und »Marketing« deutlich umfangreicher<br />

ausfallen. Ersterer erhält in der kostenpflichtigen<br />

Version zusätzliche Module<br />

für Zahlungseingänge, Verbindlichkeiten,<br />

Arbeitsnachweise und Lastschriften, der<br />

zweite wartet außerdem mit der erwähnten<br />

Katalog-Option und einem Modul für<br />

Partnerprogramme auf.<br />

In der Enterprise-Ausgabe erfassen Anwender<br />

unter »Finanzbuchhaltung« über<br />

die im System bereits hinterlegten Rechnungen<br />

hinausgehende Buchungen. Die<br />

vollständige Buchhaltung exportieren<br />

sie dann im CSV-Format etwa für Datev.<br />

Auch den Einkaufsbereich hat der Hersteller<br />

ergänzt. Zusätzlich zu Bestellundürfen<br />

aus der Adressenverwaltung heraus<br />

direkt Angebote, Aufträge, Rechnungen,<br />

Lieferscheine und Gutschriften für<br />

ihre Kunden erstellen und auch Bestellungen<br />

bei ihren Lieferanten aufgeben.<br />

Auf dem Reiter »Positionen« tragen sie<br />

jeweils die Artikel ein. Dabei spart die<br />

Instant-Search-Funktion Tipparbeit und<br />

macht bereits beim Eintippen des ersten<br />

Buchstabens Vorschläge aus dem eigenen<br />

Lager (siehe Abbildung 4). Wawision<br />

übernimmt Projekt, Artikelnummer und<br />

Preis dann automatisch.<br />

Alternativ suchen Benutzer die Artikel<br />

selbst aus der Liste aus oder legen sie im<br />

Rahmen der Bestellung neu an. Über das<br />

Dropdown-Menü »Aktion« erreichen sie<br />

Funktionen zum Stornieren, Kopieren,<br />

Freigeben und Abschicken. Wawision<br />

erzeugt per Mausklick PDFs der Buchungen,<br />

die als <strong>Vorschau</strong> gute Dienste<br />

leisten oder ausgedruckt als Brief oder<br />

Fax rausgehen. Optional ergänzen Anwender<br />

Dateien als Anhang. Das ERP-<br />

System versendet auf Wunsch E-Mails<br />

und nutzt dazu entweder direkt SMTP<br />

oder die PHP-Mailer-Funktion. Wer eine<br />

Bestellung telefonisch oder persönlich<br />

entgegengenommen hat, der kann auch<br />

dies entsprechend vermerken.<br />

Vernetzt<br />

Das ERP-System geht auch bei der Warenannahme<br />

zur Hand. Mit einer beim<br />

Hersteller erhältlichen Adapterbox<br />

schließt der Benutzer eine Kombination<br />

aus Kamera und Waage an und registriert<br />

so Gewicht und Foto aller eingehenden<br />

Pakete. Mitarbeiter in der Warenannahme<br />

suchen über die Absenderadresse den<br />

passenden Lieferanten heraus und notieren<br />

Angaben zum Zustand der Verpa-


gen steuern Benutzer hier nun Produktionen<br />

und die zugehörigen Bauteile. Wer<br />

einen externen Onlineshop integrieren<br />

möchte, erhält von den Wawision-Entwicklern<br />

auf Anfrage ein Modul für die<br />

Shopware-Anbindung.<br />

Pluspunkte vergeben die Tester für die<br />

in beiden Versionen vorhandenen Teamfunktionen,<br />

die keiner der anderen beiden<br />

Kandidaten in dieser Form bietet.<br />

Mit einem Kalender und der Pinnwand<br />

verwalten Mitarbeiter gemeinsame Termine<br />

und Aufgaben, und ein Wiki sorgt<br />

für schnellen Wissensaustausch. Die integrierte<br />

Zeiterfassung arbeitet Hand in<br />

Hand mit der Lohnabrechnungs-Komponente<br />

zusammen.<br />

E Actindo<br />

Actindo [3] ist eine Cloud-ERP-Lösung,<br />

die auf den Servern des Herstellers, der<br />

Actindo GmbH in Ismaning, läuft und<br />

vor allem für Versandhandel und E-<br />

Commerce konzipiert ist. Die Nutzung<br />

ist gebührenpflichtig. Im Angebot sind<br />

verschiedene Pakete, die zwischen rund<br />

35 Euro und zirka 590 Euro monatlich<br />

kosten. Die Firma gibt Rabatt bei längerer<br />

Laufzeit. Interessierte Nutzer kontaktieren<br />

den Anbieter.<br />

Die Actindo-Zugänge unterscheiden<br />

sich durch die Anzahl der enthaltenen<br />

Transaktionen (100 Bestellungen in der<br />

günstigsten Version One, unbegrenzte<br />

Anzahl in der Enterprise-ERP-Suite)<br />

und durch ihren Funktionsumfang. Seriennummern-<br />

und Chargenverwaltung<br />

inklusive Überwachung des Mindesthaltbarkeitsdatums,<br />

Retouren-Abwicklung,<br />

Bestelltermin-Überwachung und Kommissionssplitting<br />

sind beispielsweise nur<br />

im Enterprise-Paket enthalten. Kunden<br />

dieser Komplettlösung erhalten darüber<br />

hinaus priorisierten Support.<br />

Grundlage für die Bitparade war die<br />

30-Tage-Testversion, die es zum Nulltarif<br />

gibt und die laut Anbieter die vollständige<br />

Enterprise-ERP-Suite abbildet. Die Benutzeroberfläche<br />

macht auf den ersten Blick<br />

einen äußerst professionellen Eindruck.<br />

Die Startseite zeigt Umsätze, Tagesumsatzentwicklung,<br />

durchschnittliche Bestellwerte,<br />

aktuell zu versendende Bestellungen<br />

und andere statistische Auswertungen<br />

an. Etwas gewöhnungsbedürftig<br />

ist, dass die Menüpunkte in der linken<br />

Abbildung 5: Ein Installationsassistent führt durch die Konteneinrichtung im »PaymentManager« von Actindo.<br />

Benutzer haben die Wahl zwischen Bank- und Paypal-Konten sowie Kreditkarten-Service-Anbietern.<br />

Spalte ständig ihre Reihenfolge ändern<br />

– sobald der Anwender eine neue Abteilung<br />

aufruft, wandern die zuletzt aufgerufenen<br />

Einträge nach oben.<br />

Der erste Besuch sollte im »PaymentManager«<br />

erfolgen. Hier verwalten Benutzer<br />

unter anderem Kontoauszüge, Überweisungen,<br />

Lastschriften und Paypal-Anbindungen.<br />

Ein Einrichtungsassistent hilft<br />

bei der Konfiguration. Anwender legen<br />

hier Schritt für Schritt eines oder mehrere<br />

Firmenkonten an und binden diese via<br />

HBCI oder Financial Transaction Services<br />

an. Actindo unterstützt die Zusammenarbeit<br />

mit Bank- und Paypal-Konten sowie<br />

Kreditkarten-Service-Anbietern (siehe<br />

Abbildung 5).<br />

Vielfältig<br />

Der zentrale Bereich der Software ist über<br />

den Menüpunkt »Faktura« zu erreichen.<br />

Hier trägt der Benutzer Kunden- und<br />

Lieferantendaten sowie Artikel ein und<br />

erfasst die Ein- und Verkäufe. Was auf<br />

den ersten Blick übersichtlich wirkt, entpuppt<br />

sich bei näherer Betrachtung als<br />

kleiner Irrgarten. Nicht weniger als neun<br />

Reiter erschlagen den Anwender – die zusätzlichen<br />

Tabs für die Märktplätze nicht<br />

mitgerechnet. Wer Shop-spezifische Inhalte<br />

erfassen möchte, der wechselt zum<br />

Reiter »Beschreibung« und trägt dort Tags<br />

und Stichworte für Oxid-Templates beziehungsweise<br />

Seo-URLs für XT-Commerce<br />

4 (Veyton) ein.<br />

Verwirrend und wenig selbsterklärend<br />

sind auch die Felder unter »Preise«. Hier<br />

dürfen Nutzer lediglich Einkaufs- und<br />

Grundpreise sowie Rabatte definieren.<br />

Wer bei der Bezeichnung Grundpreise<br />

zunächst an Preise je Mengeneinheit<br />

nach der Grundpreisverordnung denkt,<br />

der sucht vergeblich nach einem Feld namens<br />

Verkaufspreis oder einer Mengendefinition.<br />

Dass die Kürzel »B« und »N«<br />

vermutlich für brutto und netto stehen,<br />

muss der Anwender ebenfalls erraten,<br />

denn das Actindo-Wiki [5] zeigt hierzu<br />

nur eine leere Seite.<br />

Actindo punktet dafür mit seinen zahlreichen<br />

Möglichkeiten zur Shop- und<br />

Marktanbindung und dürfte allen<br />

Händlern gute Dienste leisten, die im<br />

E-Commerce unterwegs sind und dort<br />

mehrere Plattformen zu bedienen haben.<br />

Das ERP-System bietet unter anderem<br />

Schnittstellen für die Onlineshop-Systeme<br />

XT-Commerce 3.04 und 4, Shopware,<br />

Oxid, Intellishop und Magento sowie für<br />

Marktplätze wie E-Bay, Amazon, Yatego,<br />

Hitmeister und Shopgate. Zudem sind<br />

diverse Zahlungsanbieter angebunden,<br />

zum Beispiel Paypal, Billsafe und Sofortüberweisung.<br />

Gut gefiel den Testern ebenfalls das umfangreiche<br />

Buchhaltungsmodul. Anwender<br />

legen Datensätze entweder von Hand<br />

an oder nutzen die Importfunktionen aus<br />

der Abteilung »Extras«. Actindo liest sieben<br />

Formate ein (siehe Abbildung 6) und<br />

sorgt damit für eine deutliche Arbeitserleichterung.<br />

Darüber hinaus steht die<br />

Software hilfreich zur Seite bei der Umsatzsteuervoranmeldung<br />

und versendet<br />

diese direkt. Auch der Datev-Export ist<br />

Bitparade 07/2014<br />

Software<br />

www.linux-magazin.de<br />

47


Software<br />

www.linux-magazin.de Bitparade 07/2014<br />

48<br />

integriert, und so bereiten Anwender alle<br />

Buchungen für den Jahresabschluss für<br />

den Steuerberater auf.<br />

Kompliziert<br />

Die von Actindo angebotenen Möglichkeiten<br />

sind vielfältig und decken die<br />

meisten Standardprozesse von Unterneh-<br />

Tabelle 1: Feature-Übersicht ERP-Systeme<br />

men aus den Bereichen Einkauf, Versand<br />

und Buchhaltung ab. Features wie ein<br />

Etikettendruck für Produkte oder eine<br />

1-Klick-Zahlungserinnerung sind komfortabel<br />

und erleichtern kleinen und großen<br />

Unternehmen das Leben.<br />

Allerdings sollten Anwender in jedem Fall<br />

eine längere Einarbeitungszeit einplanen,<br />

um die zahlreichen Möglichkeiten des<br />

Name Kivitendo Wawision Actindo<br />

Allgemeines<br />

Version 3.1.0 2.3.1552 Enterprise<br />

Lizenz GPL AGPL proprietär<br />

Benutzer- und Rechteverwaltung ja ja ja<br />

Integriertes CMS nein ja nein<br />

Mehrsprachig ja ja ja<br />

Backupfunktion nein ja ja<br />

Shopanbindung<br />

Eigener Shop nein optional nein<br />

Anbindung externer Shop nein Shopware (optional andere<br />

Systeme)<br />

ERP-Systems auszureizen und sich in<br />

der Oberfläche zurechtzufinden. In den<br />

komplexen Dialogen und Eingabemasken<br />

verbergen sich einige Stolperfallen,<br />

auch die Menüs reagieren nicht immer<br />

zuverlässig. Im Test dauerte es rund 15<br />

Minuten, bis es nach etlichen Versuchen<br />

doch noch gelang, einen neuen Artikel<br />

hinzuzufügen.<br />

XT-Commerce 3.04 und 4, Magento, Intellishop,<br />

Gambio, Oxid E-Shop, Ecombase, Shopware 3 und<br />

4, Modified E-Commerce Shopsoftware usw.<br />

Mehrere Shops möglich nein ja ja<br />

Anbindung Marktplätze nein nein Yatego, E-Bay, Amazon, Shopgate usw.<br />

Artikelverwaltung<br />

Lieferanten ja ja ja<br />

Bestellwesen und Wareneingang ja ja ja<br />

Stücklisten ja ja ja (Zusatzmodul)<br />

Lager ja ja ja<br />

Inventurfunktion nein ja* ja<br />

Bulk-Bearbeitung nein nein ja<br />

CRM-Funktionen<br />

Kunden- und Adressenverwaltung ja ja ja<br />

Formulare/​Dokumentvorlagen ja (Latex) ja (Libre und Open Office) ja (nur Schriftgröße und -art)<br />

gestalten<br />

Integriertes Ticketsystem nein ja* nein<br />

Versandoptionen (E-Mail, Fax usw.) ja ja ja<br />

Bestellabwicklung<br />

Manuelles Anlegen ja ja ja<br />

Logistik-Dienstleister-Anbindung nein DHL DHL, DPD, GLS, UPS usw.<br />

Rechnung-/​Lieferschein-Erstellung ja ja ja<br />

Finanzen<br />

Integrierte Buchhaltung ja ja* ja<br />

Datev-Export ja ja* ja<br />

Automat. Zahlungseingang-Prüfung nein ja* ja<br />

Mahnwesen ja ja* (Zusatzmodul) ja<br />

Berichte ja nein ja<br />

Teamfunktionen<br />

Kalender nein ja nein<br />

Team- und Gruppenkalender nein ja nein<br />

Zeiterfassung nein ja ja (Zusatzmodul)<br />

Wiki nein ja nein<br />

* Nur in der Enterprise-Version


Insgesamt ist das manuelle Einpflegen<br />

von Adressen und Artikeln mühsam und<br />

deutlich weniger komfortabel als in gängigen<br />

Shopsystemen. Umso besser, dass<br />

Actindo Daten aus angebundenen Shops<br />

importiert. Berichten in Benutzerforen<br />

zufolge ist offenbar häufig einiges an<br />

Nacharbeit notwendig. Einen eigenen<br />

Eindruck konnten die Tester hiervon<br />

leider nicht gewinnen, da die Anbindung<br />

einer Shopware-Instanz an einem<br />

angeblich falschen Kennwort scheiterte<br />

und der Shop Connector trotz ausgiebiger<br />

Bemühungen nichts zum Laufen zu<br />

bringen war.<br />

Angesichts der nicht gerade geringen<br />

Kosten, die für die Actindo-Nutzung anfallen,<br />

wären eindeutige Bezeichnungen<br />

der Menüpunkte und Felder und vor<br />

allem eine vollständige Dokumentation<br />

schön. Die Anleitung behandelt jedoch<br />

nur ausgewählte Bereiche, einige etwas<br />

langatmige Videotutorials reichen als Ergänzung<br />

nicht aus.<br />

Support gibt es vom Hersteller ausschließlich<br />

über Tickets. Anwender erreichen<br />

das Hilfecenter im Dashboard über das<br />

Menü »Support & Helpcenter«. Je nach<br />

gewähltem Paket steht eine bestimmte<br />

Anzahl kostenloser Tickets monatlich zur<br />

Verfügung, jede darüber hinausgehende<br />

Anfrage stellt die Firma mit rund 6 Euro<br />

und Expresswünsche mit zirka 18 Euro<br />

in Rechnung.<br />

Inventur<br />

Alle getesteten ERP-Systeme bilden sehr<br />

komplexe Prozesse ab und verlangen dem<br />

Benutzer einigen Konfigurations- und<br />

Einarbeitungsaufwand ab. Dabei unterstützen<br />

je nach Software unterschiedlich<br />

gute Handbücher oder Video-Anleitungen.<br />

Nach den ersten Anlaufschwierigkeiten<br />

zeigten sich die drei Programme<br />

aber ihren Aufgaben gewachsen und<br />

überzeugten mit ganz unterschiedlichen<br />

Funktionen und Extras (Tabelle 1). So ist<br />

es schwer, eine eindeutige Empfehlung<br />

auszusprechen – zu verschieden sind die<br />

Schwerpunkte und Ansätze.<br />

Kivitendo punktet vor allem mit den<br />

Buchhaltungsfeatures, mit den Berichten<br />

und dem sehr ausführlichen Handbuch,<br />

das keine Fragen offen lässt. Dafür fehlen<br />

Importmöglichkeiten für Stammdaten<br />

und Schnittstellen zum Anbinden von<br />

Abbildung 6: Actindo bündelt insgesamt sieben Importfunktionen in einem Dialog und erleichtert die Buchhaltung<br />

damit ungemein, weil das mühsame Einpflegen von Hand entfällt.<br />

Onlineshops. Der erste Kandidat ist daher<br />

für den Handelsbereich weniger interessant<br />

und richtet sich hauptsächlich an<br />

kleine Unternehmen im Handwerks- und<br />

Dienstleistungsbereich.<br />

Wawision punktet mit durchdachten Prozessen<br />

und seiner Vielseitigkeit. Die Software<br />

eignet sich für kleine und mittlere<br />

Handels- und Produktionsunternehmen.<br />

Das jüngste Projekt im Test kämpfte anfangs<br />

noch mit ein paar Kinderkrankheiten,<br />

die der hilfsbereite Support jedoch<br />

zügig ausbügelte. Anwender sollten die<br />

Enterprise-Version in Betracht ziehen,<br />

die neben einem erweiterten Funktionsumfang<br />

ein Jahr lang Zugang zum Updateserver<br />

und Unterstützung vom Hersteller<br />

bietet. Abzüge gibt es derzeit vor<br />

allem für die fehlende Dokumentation.<br />

Hier sollte die Firma nachlegen und im<br />

gleichen Atemzug die Tippfehler in der<br />

Weboberfläche beheben.<br />

Die Vermutung, dass eine kostenpflichtige<br />

Cloudlösung komfortabler zu bedienen<br />

sei und schneller zum Ziel führe als<br />

ein selbst gehostetes System, konnten die<br />

Tester nicht bestätigen. Zwar entfällt bei<br />

Actindo die Installation auf dem eigenen<br />

Server, aber auch hier gibt es Unwägbarkeiten,<br />

die neben dem finanziellen<br />

auch erheblichen zeitlichen Aufwand<br />

mit sich bringen. Eine unvollständige<br />

Anleitung verlangt dem Anwender einiges<br />

an Durchhaltevermögen ab – wer die<br />

Einstiegshürden jedoch überwindet, der<br />

kann seine Unternehmensprozesse mit<br />

Actindo sehr detailreich abbilden. Die<br />

anfallenden Kosten lohnen sich jedoch<br />

nur für Händler, denen die Integration<br />

verschiedener Onlineshops und Marketplaces<br />

wichtig ist.<br />

n<br />

Infos<br />

[1] Kivitendo: [http:// www. kivitendo. de]<br />

[2] Wawision: [http:// www. wawision. de]<br />

[3] Actindo: [http:// www. actindo. de]<br />

[4] Embedded Projects:<br />

[http:// www. embedded‐projects. net]<br />

[5] Actindo-Wiki: [http:// wiki. actindo. de]<br />

Die Autorin<br />

Dr. Katja Flinzner ist Redakteurin,<br />

Lektorin und Übersetzerin<br />

mit den Schwerpunkten<br />

im IT- und E-Commerce-Bereich.<br />

Mit ihrem<br />

Unternehmen „Mehrsprachig<br />

handeln“ ([http:// www. mehrsprachig‐handeln.​<br />

de]) unterstützt sie vor allem Onlineshops bei<br />

Internationalisierungs-Projekten und bei der<br />

Qualitätssicherung.<br />

Bitparade 07/2014<br />

Software<br />

www.linux-magazin.de<br />

49


Software<br />

www.linux-magazin.de Portia 07/2014<br />

50<br />

Daten aggregieren mit Portia<br />

Fokussiertes Spinnchen<br />

Die Börsenkurse in maschinenlesbarer Form mal eben aus dem Internet holen? Kein Problem: Nach ein paar<br />

Mausklicks auf eine Börsen-Webseite webt Portia einen geeigneten Kommandozeilenbefehl und wickelt die<br />

gewünschten Daten in das passende Json-Format ein. Tim Schürmann<br />

lerpakete zu »libffi«, »libxml2«, »libxslt«,<br />

»libssl« und Python. Unter Ubuntu spielt<br />

der folgende Bandwurm alles Notwendige<br />

ein:<br />

sudo apt‐get install python‐virtualenv U<br />

python‐dev libffi‐dev libxml2‐dev U<br />

libxslt1‐dev libssl‐dev git<br />

Jetzt können Anwender den Quellcode<br />

von Github holen:<br />

© James Anak Anthony Collin, 123RF<br />

01 virtualenv portiaenv<br />

Im Internet verstecken sich nützliche<br />

Informationen und Texte oft auf bunten<br />

HTML-Seiten, die Interessierte nicht<br />

ohne Weiteres extrahieren und maschinell<br />

weiterverarbeiten können. Wer etwa<br />

automatisiert die aktuellen Börsenkurse<br />

aufbereiten oder neue Nachrichten aggregieren<br />

möchte, muss erst umständlich<br />

den HTML-Code von News-Portalen wie<br />

N-TV oder Slashdot zerlegen.<br />

Abhilfe verspricht das in Python geschriebene<br />

Portia [1], dessen Name zugleich<br />

auf eine Spinnengattung verweist,<br />

was im World Wide Web ja Sinn ergibt.<br />

Das Tool besteht aus einer Webanwendung,<br />

dank der ein Anwender einfach per<br />

02 source ./portiaenv/bin/activate<br />

03 cd portia/slyd<br />

Listing 1: Notwendige Python-<br />

Komponenten installieren<br />

04 pip install ‐r requirements.txt<br />

Mausklick die Börsenkurse, Nachrichten<br />

und alle anderen gewünschten Inhalte<br />

markiert. Anschließend extrahiert Portia<br />

diese Daten und spuckt sie im Json-Format<br />

wieder aus.<br />

Unterstützt von einem mitgelieferten<br />

Webcrawler durchwühlt Portia zudem<br />

komplette Internetauftritte. Benötigt ein<br />

Entwickler die Überschriften aller Wikipedia-Artikel,<br />

zeigt er Portia lediglich einmal,<br />

wo auf einer Wikipedia-<br />

Seite die Überschrift klebt.<br />

Anschließend durchläuft der<br />

Crawler den kompletten Internetauftritt<br />

und liefert alle<br />

passenden Überschriften im<br />

Json-Format zurück.<br />

Spinnennetz<br />

Portia verlangt Python in der<br />

Version 2.7, einen C-Compiler,<br />

Git, das Paket mit Virtualenv<br />

sowie die Entwick-<br />

git clone https://github.com/scrapinghub/U<br />

portia.git<br />

Portia besteht aus mehreren Einzelteilen:<br />

Zunächst stellt Slyd die eigentliche Webanwendung<br />

bereit. Sein Kollege Slybot<br />

ist ein Webcrawler, der die ausgesuchten<br />

Webseiten durchläuft und die gewünschten<br />

Informationen ausschneidet. Dazu<br />

greift Slybot auf die Dienste von Scrapy<br />

[2] zurück. Slyd wiederum liefert seine<br />

Seiten über Twisted [3] aus.<br />

Die Befehle aus Listing 1 installieren alle<br />

Bestandteile. Die erste Zeile erstellt dabei<br />

eine virtuelle Python-Umgebung, die<br />

zweite aktiviert sie. Auf diese Weise vermischen<br />

sich nicht die in der letzten Zeile<br />

nachinstallierten Python-Komponenten<br />

mit denen aus der Distribution.<br />

Abbildung 1: Die Webanwendung gibt sich nach ihrem ersten Aufruf<br />

noch recht aufgeräumt.


Gelingt die Installation ohne Fehler, startet<br />

der Anwender Slyd:<br />

twistd ‐n slyd<br />

Der Befehl ist korrekt geschrieben –<br />

»twistd« ist der Twisted-Daemon.<br />

Schraubstock<br />

Steuert der Portianer nun im Browser<br />

die URL »http://localhost:9001/static/<br />

main.html« an, erscheint die Seite aus<br />

Abbildung 1. Portia unterstützt derzeit<br />

nur Chrome und Firefox, wobei die Entwickler<br />

Chrome empfehlen.<br />

Zunächst tippt der Anwender in das Eingabefeld<br />

am oberen Rand die URL der<br />

Seite ein, die er anzapfen möchte. Nach<br />

einem Klick auf »Start« lädt Portia die<br />

Seite und zeigt sie im großen Bereich<br />

darunter an. Das kann ein paar Sekunden<br />

dauern und funktioniert nicht mit<br />

allen Websites: So weigerte sich Portia<br />

im Test, die Seiten des <strong>Linux</strong>-<strong>Magazin</strong>s<br />

zu laden. Sofern die gewünschte Seite<br />

erscheint, limitiert Portia die Navigationsmöglichkeiten.<br />

Auf der Wikipedia legt die<br />

Webanwendung etwa die Suchfunktion<br />

lahm, die Links funktionierten jedoch<br />

weiterhin.<br />

Jetzt muss der Schnittmeister die benötigten<br />

Informationen markieren. Dazu<br />

klickt er am oberen Rand auf »Annotate<br />

this page«. Portia wechselt jetzt in einen<br />

Auswahlmodus: Fährt er mit dem Mauszeiger<br />

über ein Element der Seite, das<br />

sich ausschneiden lässt, hebt Portia es<br />

blau hervor. Der HTML-Code taucht im<br />

schwarzen Kasten links oben auf.<br />

Nach einem Klick auf den blauen Bereich<br />

erscheint das Fenster aus Abbildung 2.<br />

In ihm stellt der Anwender in der linken<br />

Dropdown-Liste das HTML-Attribut<br />

ein, dessen Inhalt er später übernehmen<br />

möchte. »Content« würde den Inhalt des<br />

HTML-Elements liefern, bei einer Überschrift<br />

also die Überschrift selbst.<br />

Skalpell<br />

Anschließend wählt der Zuschneider unter<br />

»To Field« den Punkt »Create New«. Es<br />

öffnet sich ein weiteres Fenster, in dem<br />

er festlegt, wie das Feld später in den<br />

Json-Daten heißen soll und um welchen<br />

Datentyp es sich handelt. Zur Auswahl<br />

stehen die üblichen Verdächtigen, etwa<br />

Zahlen und Text. Mit einem Klick auf<br />

den Haken geht es wieder zurück. Analog<br />

markiert der Anwender alle weiteren<br />

benötigten Daten. Dann schaltet er mit<br />

»Continue Browsing« wieder in den normalen<br />

Modus zurück. Über »Show Items«<br />

blendet Portia noch einmal alle bislang<br />

extrahierten Daten ein.<br />

Ausgehend von der gerade geladenen<br />

Seite folgt Slybot nun allen Links, schneidet<br />

dort jeweils die markierten Informationen<br />

aus und liefert sie zurück. Dieses<br />

Verhalten kann der Spinnenmeister über<br />

Einstellungen beeinflussen, die sich nach<br />

einem Klick auf das graue Dreieck am<br />

rechten Seitenrand offenbaren.<br />

Über den Slider »Initialize« fügt der Anwender<br />

dem Projekt noch weitere Internetseiten<br />

hinzu. Dazu tippt er einfach die<br />

URL in das leere Feld und klickt anschließend<br />

auf das Plussymbol, ein Klick auf<br />

die URL öffnet die entsprechende Seite<br />

wieder im Hauptbereich. Dort kann er<br />

dann weitere auszuschneidende Bereiche<br />

markieren. Verwendet eine der Seiten einen<br />

Passwortschutz, setzt der Anwender<br />

einen Haken vor »Performe Login« und<br />

tippt dann die Login-Daten ein.<br />

Routenplanung<br />

Auf dem Slider »Crawling« steuert der<br />

Nutzer das Verhalten von Slybot. Er legt<br />

fest, ob Slybot sich an die vom Webmaster<br />

in der »robots.txt« vorgegebenen Zugriffsregeln<br />

hält (»Respect Nofollow«). Soll der<br />

Spider bestimmte Seiten ignorieren, setzt<br />

der Anwender die Dropdown-Liste auf<br />

»Configure Follow And Exclude Patterns«.<br />

Slybot folgt jetzt nur noch jenen Links,<br />

die mit dem regulären Ausdruck im oberen<br />

Feld übereinstimmen. Analog folgt<br />

Slybot keinem Link, auf den der reguläre<br />

Ausdruck im unteren Feld passt. Wer<br />

»Overlay Blocked Links« anhakt, sieht<br />

links in der <strong>Vorschau</strong>, welchen Links der<br />

Spider derzeit folgen würde und welchen<br />

nicht (Abbildung 3).<br />

Die zuvor auf einer Seite hellblau markierten<br />

Stellen merkt sich Portia in einem<br />

so genannten Template. Der Slider »Extraction«<br />

listet alle derzeit vorhandenen<br />

Templates auf. Ein Klick auf einen der Bezeichner<br />

öffnet das entsprechende Template<br />

im Markierungsmodus. Hier bringt<br />

der Anwender jetzt noch auf gewohnte<br />

Weise weitere Markierungen an. Die einzelnen<br />

ausgewählten Elemente kann er<br />

auf dem Slider »Annotations« noch einmal<br />

nachbearbeiten.<br />

E<br />

Portia 07/2014<br />

Software<br />

www.linux-magazin.de<br />

51<br />

Warnung<br />

Die Daten auf fremden Webseiten sind in den<br />

meisten Fällen urheberrechtlich geschützt.<br />

Entwickler dürfen folglich nur mit einer Erlaubnis<br />

die Informationen und Texte in ihre<br />

eigenen Projekte übernehmen.<br />

Die Abfrage der Daten erzeugt zudem eine<br />

kontinuierliche Last: Je mehr Unterseiten<br />

eine Website besitzt, desto länger saugt<br />

Portia am fremden Webserver. Dessen Besitzer<br />

dürfte darüber alles andere als erfreut<br />

sein und im schlimmsten Fall entsprechende<br />

Gegenmaßnahmen treffen.<br />

Abbildung 2: Wer einem Feld Inhalte zuweisen will, braucht ruhige Finger: Sobald die Maus den schwarzen<br />

Kasten verlässt, blendet Portia ihn umgehend aus.


Software<br />

www.linux-magazin.de Portia 07/2014<br />

52<br />

Alle Projekte listet die Seitenleiste nach<br />

einem Klick auf das Haussymbol.<br />

Dauerlauf<br />

Portia platziert alle Projekte in Unterverzeichnissen<br />

unterhalb von »slyd/data/<br />

projects«, die zugleich als Name des Projekts<br />

dient. Welche Spider das Projekt<br />

»new_project« anbietet, verrät auf der<br />

Kommandozeile:<br />

portiacrawl slyd/data/projects/new_project<br />

Um nun endlich die Informationen aus<br />

den Seiten zu schneiden, ruft der Schnittmeister<br />

über »portiacrawl« einfach den<br />

entsprechenden Spider auf:<br />

Abbildung 3: Allen grün markierten Links würde Slybot folgen, den rot hervorgehobenen hingegen nicht.<br />

Mitunter wählt ein Anwender den gewünschten<br />

Text nur grob mit der Maus<br />

aus und verfeinert die Auswahl auf dem<br />

Slider »Extractors« mit einem regulären<br />

Ausdruck. Er klickt auf »New Extractor«,<br />

zieht den Ausdruck auf das entsprechende<br />

Feld darüber, und Slybot wendet<br />

ihn auf den ausgeschnittenen Text an und<br />

liefert nur das Ergebnis zurück.<br />

Familienzuwachs<br />

Die jetzt komplette Konfiguration bezeichnet<br />

Portia als Spider, mit den darin<br />

gespeicherten Einstellungen beschneidet<br />

Slybot später Seiten, die den gleichen<br />

Aufbau aufweisen wie die gerade angezeigte.<br />

Ein Spider gilt meist für eine<br />

bestimmte Domain, über die Webanwen-<br />

dung legt der Anwender weitere Spinnen<br />

an. Diese gruppiert Portia zu so genannten<br />

Projekten. So lässt sich etwa ein Projekt<br />

»Nachrichten« anlegen, das einen<br />

Spider mit allen Einstellungen für »theregister.co.uk«<br />

und einen für »slashdot.org«<br />

enthält (Abbildung 4).<br />

Standardmäßig erstellt Portia selbst ein<br />

Projekt namens »New_Project«. Welche<br />

Spider in einem Projekt stecken, erfährt<br />

der Anwender, wenn er links oben in der<br />

Ecke auf den Projektnamen klickt. Die<br />

Seitenleiste listet dann die Spider auf,<br />

ein Klick auf diese zeigt die darin abgelegten<br />

Einstellungen. Einen neuen Spider<br />

ergänzt der Anwender, indem er auf<br />

den Projektnamen klickt und dann eine<br />

neue URL aufruft. Jeder Spider erhält<br />

standardmäßig den Namen der Domain.<br />

portiacrawl slyd/data/projects/new_project U<br />

de.wikipedia.com<br />

Die Ausgaben landen im Json-Format auf<br />

der Standardausgabe, der Parameter »‐o«<br />

lenkt die Daten in eine Datei um:<br />

portiacrawl slyd/data/projects/new_project U<br />

de.wikipedia.com ‐o ausgabe.txt<br />

»portiacrawl« ist eigentlich nur ein Wrapper-Skript<br />

für Slybot. Dessen Dokumentation<br />

findet sich unter [4].<br />

Fazit<br />

Mit Portia schneiden Anwender schnell<br />

und komfortabel Datenhäppchen aus<br />

fremden Websites. Dank des Json-Formats<br />

lassen sich die zurückgelieferten<br />

Daten in eigenen Anwendungen aggregieren<br />

und weiternutzen. Mit Hilfe von<br />

Cronjobs lasen sich auch fehlende RSS-<br />

Feeds ersetzen. Es braucht jedoch einige<br />

Klicks, bis der Suchende die Informationen<br />

in einer Tabelle markiert hat. Portia<br />

verführt allerdings dazu, „einfach mal<br />

eben“ Informationen von fremden Webseiten<br />

zu klauen. Verantwortungsvolle<br />

User erhalten mit Portia aber ein praktisches<br />

Tool, das ihnen die stundenlange<br />

Analyse fremden Codes erspart. (kki) n<br />

Abbildung 4: Hier befinden sich im Projekt »Nachrichten« zwei Spider. Mit einem Klick auf den Namen<br />

benennt der Anwender das Projekt in dieser Ansicht um.<br />

Infos<br />

[1] Portia auf Github: <br />

[https://github.com/scrapinghub/portia]<br />

[2] Scrapy: [http://scrapy.org]<br />

[3] Twisted: [https://twistedmatrix.com/trac/]<br />

[4] Anleitung zu Slybot: <br />

[http://slybot.readthedocs.org/en/latest/]


Software<br />

www.linux-magazin.de Baloo 07/2014<br />

54<br />

Baloo ersetzt Nepomuk als semantische Desktop-Suchmaschine unter KDE<br />

Bärendienst<br />

Die semantische Suche Nepomuk war seit ihrer Einführung in KDE heftig umstritten – sowohl bei Benutzern als<br />

auch bei Anwendungsentwicklern. Mit den KDE Applications 4.13 weicht sie nun einer neuen Lösung namens<br />

Baloo. Auch die legt einen holprigen Start hin. Tim Schürmann<br />

© Tammy Scott, 123RF<br />

Desktop-Umgebungen sind recht dumm.<br />

Das merkt der Anwender spätestens<br />

dann, wenn er eine Datei sucht, sich aber<br />

partout nicht mehr an ihren Namen erinnern<br />

kann. Abhilfe soll der so genannte<br />

semantische Desktop schaffen.<br />

Semantische Suche<br />

Ein solcher Desktop merkt sich, wann<br />

welche Daten angefallen sind und in welcher<br />

Beziehung sie zueinander stehen.<br />

Dank dieser Informationen kann ein User<br />

beispielsweise eine Datei auf der Festplatte<br />

suchen lassen, die der Kollege Müller<br />

im März per E-Mail geschickt hatte.<br />

DELUG-DVD<br />

Auf der DELUG-DVD dieses <strong>Magazin</strong>s<br />

liegen die aktuellen Quelltexte von<br />

Baloo sowie Kubuntu 14.04 in der 64- und<br />

32-Bit-Version, die die neueste KDE-Desktop-<br />

Version 4.13 bringen.<br />

DELUG-DVD<br />

Auch die KDE-Entwickler wollten ihrer<br />

Desktop-Umgebung eine passende semantische<br />

Suche spendieren. Sie griffen<br />

dabei auf die Ergebnisse des Forschungsprojekts<br />

Nepomuk (Networked Environment<br />

for Personalized, Ontology-based<br />

Management of Unified Knowledge, Abbildung<br />

1, [1]).<br />

Das Projekt hatte die Europäische Union<br />

von 2006 bis 2008 mit mehreren Millionen<br />

Euro finanziert. Es sollte alles<br />

Notwendige liefern, um die Entwicklung<br />

eines semantischen Desktops voranzutreiben<br />

und zu vereinfachen.<br />

Nepomuk, RDF und andere<br />

Kalamitäten<br />

So schrieb Nepomuk beispielsweise das<br />

Resource Description Framework, kurz<br />

RDF, zur Beschreibung und Speicherung<br />

der Beziehungen vor [2]. Die Implementierung<br />

von Nepomuk in KDE sammelt<br />

bei allen KDE-Anwendungen Informati-<br />

onen über die gespeicherten Daten ein,<br />

verknüpft sie, bereitet sie auf und stellt<br />

sie dann der eigentlichen Suchfunktion<br />

zur Verfügung.<br />

Seit der Einführung von Nepomuk unter<br />

KDE 4 beklagten viele Benutzer immer<br />

wieder dessen schlechte Performance<br />

und mangelnde Stabilität. Anwendungsentwickler<br />

wiederum fanden das API zu<br />

kompliziert und wünschten sich zusätzliche<br />

Funktionen. Die KDE-Entwickler<br />

besserten im Laufe der Jahre zwar nach,<br />

viele Anwender deaktivierten Nepomuk<br />

aber auch weiterhin. Insbesondere bei<br />

der Interaktion mit Akonadi, dem Unterbau<br />

der PIM-Programme, erzeugte Nepomuk<br />

eine zu hohe Last.<br />

Virtuoso, Vishuoso und ein<br />

Neustart<br />

Als wesentlichen Bremsklotz identifizierten<br />

die KDE-Entwickler die im Hintergrund<br />

werkelnde Virtuoso-Datenbank,<br />

in der Nepomuk seine RDF-Daten einlagerte.<br />

Virtuoso selbst ging zwar recht<br />

flott zu Werke, beanspruchte aber extrem<br />

viel Hauptspeicher. Die KDE-Entwickler<br />

begannen daher, einen eigenen RDF-<br />

Speicher namens Vishuoso zu implementieren<br />

[3]. Dabei stolperten sie jedoch<br />

immer wieder über die Vorgaben aus dem<br />

Forschungsprojekt der EU. Die waren teilweise<br />

vage, lückenhaft und mitunter sogar<br />

doppelt [4].<br />

Aus diesen Gründen entschlossen sich<br />

die KDE-Entwickler zu einem radikalen<br />

Schritt: Sie warfen RDF samt dem alten<br />

Nepomuk über Bord und entwickelten<br />

einen Nachfolger namens Baloo [5]. Im<br />

Gegensatz zu Nepomuk soll die Software<br />

mit dem Namen eines Dschungelbuch-<br />

Protagonisten („Probier’s mal mit Gemüt-


lichkeit“) weniger Ressourcen verbrauchen,<br />

zuverlässiger zu Werke gehen und<br />

schneller bessere Suchergebnisse liefern.<br />

Intern ist Baloo modular aufgebaut, sodass<br />

sich zukünftig einfacher neue Funktionen<br />

hinzufügen und die vorhandenen<br />

leichter verbessern lassen. Zudem soll<br />

das generalüberholte Design Ausfälle<br />

verhindern.<br />

Die KDE-Entwickler haben Baloo allerdings<br />

nicht komplett neu programmiert,<br />

sondern Codeteile wiederverwendet. Sie<br />

bezeichnen daher Baloo auch als die<br />

„nächste Generation der Nepomuk-Suche“.<br />

Die Änderungen an der Programmierschnittstelle<br />

fallen daher ebenfalls<br />

überschaubar aus, Anwendungsentwickler<br />

sollen ihre Software relativ einfach<br />

anpassen können.<br />

Abbildung 1: Nepomuk sollte den semantischen Desktop salonfähig machen.<br />

Baloo 07/2014<br />

Software<br />

www.linux-magazin.de<br />

55<br />

Relationen und Stores<br />

Baloo verwaltet Relationen zwischen<br />

zwei „eindeutig identifizierbaren Bezeichnern“<br />

(Uniquely Identifiable Identifiers).<br />

Ein File »Datei« besitzt beispielsweise<br />

den Unique Identifier »file:x«,<br />

während Akonadi für die meisten PIM-<br />

Daten einen Unique Identifier der Form<br />

»akonadi:?item=x« erstellt.<br />

Jede Relation wandert wiederum in einen<br />

eigenen, für sie passenden Data Store. Im<br />

einfachsten Fall ist das eine Tabelle mit<br />

zwei Spalten in einer SQlite-Datenbank.<br />

Das Speicherformat und das API der Data<br />

Stores schreibt Baloo absichtlich nicht<br />

vor. Das hat den Vorteil, dass sich der<br />

Data Store auf die zu speichernden Informationen<br />

maßschneidern lässt und Baloo<br />

so Daten optimal speichert.<br />

Die eigentliche Suche führen die so genannten<br />

Search Stores aus. Jeder Search<br />

Store kümmert sich nur um ganz bestimmte<br />

Daten. So sucht beispielsweise<br />

einer ausschließlich nach Dateien (File<br />

Search), während ein Kollege in E-Mails<br />

wühlt (E-Mail Search) und ein dritter in<br />

Kontakten fahndet (Contact Search). Jeder<br />

dieser Search Stores muss ein vorgegebenes<br />

API anbieten, über das sich die<br />

Suche anstoßen lässt. Zusätzlich dürfen<br />

sie aber auch noch weitere eigene APIs<br />

bereitstellen.<br />

Derzeit verwaltet Baloo selbst ausschließlich<br />

Dateien und bringt dafür einen passenden<br />

Search Store und einen Data Store<br />

mit. Die gesammelten Daten landen in einer<br />

SQlite-Datenbank. Bei der Suche hilft<br />

zusätzlich die Software Xapian, welche<br />

den gesammelten Datenbestand indexiert.<br />

Akonadi speichert bereits alle seine<br />

PIM-Daten selbst, die Suche in diesem<br />

Bestand übernimmt jeweils ein Search<br />

Store für die Kontakte und für die E-Mails<br />

[6]. Dank dieser neuen Architektur aus<br />

einzelnen Data- und Search-Stores soll<br />

Baloo nur noch wenig Speicher mit Beschlag<br />

belegen und extrem schnell Suchergebnisse<br />

liefern.<br />

Ein ungezähmter Bär auf<br />

der freien Wildbahn<br />

Bereits nach zwei Monaten Entwicklungszeit<br />

lief die neue semantische Suche<br />

so stabil, dass sich die KDE-Entwickler<br />

dazu entschlossen, Baloo anstelle von<br />

Nepomuk den KDE Applications 4.13<br />

beizulegen. Wer schon die KDE SC 4.13<br />

nutzt – beispielsweise mit Kubuntu 14.04<br />

Abbildung 2: Die Systemeinstellungen von KDE enthalten den neuen Punkt<br />

»Desktop Suche«, über den der Benutzer …<br />

Abbildung 3: … einzelne Verzeichnisse von der Behandlung durch Baloo ausschließen<br />

kann. Weitere Einstellungen sind derzeit noch nicht möglich.


Software<br />

www.linux-magazin.de Baloo 07/2014<br />

56<br />

Abbildung 4: Über die Konfigurationsdatei »$HOME/.kde/share/config/<br />

baloofilerc« lässt sich das Verhalten von Baloo steuern.<br />

Darüber hinaus hat Lindsay Mathieson<br />

den recht kargen Konfigurationsdialog<br />

überarbeitet [13]. Bei Redaktionsschluss<br />

war jedoch noch nicht bekannt, ob, wann<br />

und wie er in den KDE Applications lanvon<br />

der Heft-DVD –, sucht auch schon<br />

mit Baloo, vorausgesetzt die entsprechende<br />

Anwendung unterstützt die neue<br />

semantische Suche.<br />

Umgestellt sind bereits unter anderem<br />

die Kontact-Programme, der Dateimanager<br />

Dolphin, Gwenview und der Plasma<br />

Desktop. Den aktuellen Stand verrät die<br />

Wiki-Seite unter [7]. Steigt ein Anwender<br />

auf die KDE Applications 4.13 um, migriert<br />

diese bereits alle vorhandenen Tags,<br />

Bewertungen und Kommentare nach Baloo.<br />

Dafür zuständig ist der »nepomukbaloomigrator«.<br />

Holpriger Start mit vielen<br />

Problemen<br />

Schon kurz nach der Veröffentlichung<br />

der KDE Applications 4.13 mehrten sich<br />

in Internetforen die Problemmeldungen<br />

(etwa [8]). Offenbar erzeugt der Indexer<br />

auf einigen Systemen eine extrem hohe<br />

Last, frisst dabei mächtig viel Hauptspeicher<br />

und foltert die Festplatte. Im Gegensatz<br />

zu Nepomuk lässt sich Baloo jedoch<br />

nicht mehr abschalten.<br />

Als Workaround raten die Entwickler<br />

dazu, das Homeverzeichnis von der Suche<br />

auszunehmen (Abbildungen 2 und<br />

3). Da Baloo ausschließlich das Heimatverzeichnis<br />

betrachtet, schaltet diese<br />

Maßnahme gleichzeitig auch die Indexierung<br />

ab. Unter Umständen starten al-<br />

Listing 1: Baloo töten<br />

01 sudo mv /usr/bin/baloo_file_extractor /usr/bin/<br />

baloo_file_extractor.backup<br />

02 sudo mv /usr/bin/baloo_file_extractor /usr/bin/<br />

baloo_file_cleaner.backup<br />

03 sudo ln ‐s /bin/true /usr/bin/baloo_file_extractor<br />

04 sudo ln ‐s /bin/true /usr/bin/baloo_file_cleaner<br />

lerdings trotzdem die<br />

beiden Dienste »baloo_file_cleaner«<br />

und<br />

»baloo_file_extractor«,<br />

die munter weiter das<br />

System belasten und<br />

sogar in bestimmten<br />

Situationen vorhandene<br />

Dateien und Dokumente<br />

beschädigen<br />

können.<br />

Der Anwender sollte<br />

daher zusätzlich auch<br />

noch den automatischen<br />

Start von Baloo<br />

abschalten. Unter Kubuntu reicht dazu<br />

der folgende Befehl völlig aus:<br />

sudo mv /usr/share/autostart/baloo_file.U<br />

desktop /usr/share/autostart/baloo_file.U<br />

desktop.backup<br />

Eine andere Möglichkeit wäre, die versteckte<br />

Datei »$HOME/.kde/share/config/baloofilerc«<br />

(Abbildung 4) zu öffnen<br />

und darin »Indexing‐​Enabled=true« auf<br />

»false« zu setzen. Schließlich lässt sich<br />

der Indexer auch manuell anhalten [9]:<br />

qdbus org.kde.baloo.file /indexer suspend<br />

Dieser Befehl kann auf einigen Systemen<br />

jedoch den kompletten KDE-Desktop zu<br />

Fall bringen. Einige Nutzer griffen sogar<br />

zur ganz harten Keule und ersetzten die<br />

Baloo-Programmdateien durch Symlinks<br />

auf »/dev/true«, doch empfehlenswert<br />

scheint das nicht.<br />

Diskussionen<br />

Wer die Links wie in Listing 1 umbiegt,<br />

muss folglich mit „interessanten“ Seiteneffekten<br />

rechnen. Auf Notebooks, die gerade<br />

an einer Batterie nuckeln, pausiert<br />

Baloo übrigens automatisch. Der stets<br />

aktive Indexer sorgte auch auf der Open-<br />

Suse-Mailingliste für heftige Diskussionen<br />

[10]. Jos Poortvliet, Mitglied der<br />

KDE Marketing Working Group, sah sich<br />

schließlich zu einer Erklärung in seinem<br />

Blog genötigt.<br />

Unter dem Titel „Stürme und Wassergläser“<br />

[11] weist er zunächst den Vorwurf<br />

zurück, Baloo sei zu wenig getestet worden.<br />

Der Hauptentwickler Vishesh Handa<br />

und viele andere Helfer hätten alles dafür<br />

getan, eine stabile Suchfunktion auszuliefern.<br />

Es habe auch vor der Release<br />

explizit die öffentliche Aufforderung<br />

zum Testen gegeben [12]. Es sei daher<br />

frustrierend, dass viele Leute mit dem<br />

Finger auf die Entwickler zeigen würden.<br />

Wer keine Zeit zum Testen hätte, müsse<br />

akzeptieren, dass sein System ungetestet<br />

ist. Die KDE-Entwickler würden eine<br />

Software genau dann veröffentlichen,<br />

wenn sie auf den Systemen aller Tester<br />

laufen würde.<br />

Überwältigend – leider für<br />

das System<br />

Jos Poortvliet gesteht aber auch ein, dass<br />

die neue Suche das I/​O-System auf bestimmten<br />

Systemen „überwältigt“. Der<br />

neue Indexer kann zwar mehrere Gigabyte<br />

in wenigen Minuten indexieren, verschluckt<br />

sich aber an sehr großen Dateien.<br />

Als Beispiel nennt Jos Poortvliet Textdateien<br />

über 20 MByte. Solche Dateien<br />

klassifiziert der Indexer als „schlechte<br />

Dateien“ und fasst sie anschließend nicht<br />

mehr an. Um sich schneller durch den<br />

Dateibestand zu fräsen, bearbeitet der<br />

Indexer allerdings immer 40 Dateien in<br />

einem Schub.<br />

Baloo aus den KDE Applications 4.13<br />

verwendet dabei einen Timeout von 5<br />

Minuten. Sind die überschritten, teilt der<br />

Indexer die 40 Dateien in zwei Gruppen.<br />

Anschließend versucht er, jede der<br />

beiden Gruppen erneut zu indexieren.<br />

Beschäftigt er sich wieder 5 Minuten mit<br />

einer der beiden Gruppen, teilt er auch<br />

diese Gruppe auf. Das ganze Spiel läuft<br />

so lange, bis der Indexer auf die problematische<br />

Datei gestoßen ist.<br />

Durch den langen Timeout ist der Indexer<br />

jedoch relativ lange beschäftigt. Die Entwickler<br />

haben deshalb mittlerweile den<br />

Timeout auf 2 Minuten reduziert. Zudem<br />

soll der Indexer mit den problematischen<br />

Dateien besser umgehen können. Die Änderungen<br />

dürften die meisten Anwender<br />

jedoch erst mit der nächsten Version der<br />

KDE Applications erreichen.<br />

Mehr Konfiguration, wenn<br />

es der User wünscht


www.linux-magazin.de<br />

Baloo 07/2014<br />

Software<br />

57<br />

Abbildung 5: Der überarbeitete Konfigurationsdialog von Lindsay Mathieson bietet mehr Eingriffsmöglichkeiten.<br />

det. Im Gegensatz zur aktuellen Version<br />

erlaubt er nicht nur das Abschalten des<br />

Indexers, sondern auch das einfache Definieren<br />

von Ausnahmeregeln für Verzeichnisse,<br />

Dateien und MIME-Typen (Abbildung<br />

5). Den Suchdienst Baloo wollen<br />

die KDE-Entwickler noch erweitern und<br />

um weitere Anwendungen ergänzen. So<br />

soll es mit Balooctl ein Kommandozeilentool<br />

zum Starten und Stoppen des Dienstes<br />

geben (analog zu Nepomukctl und<br />

Akonadictl, [14]).<br />

Roadmap<br />

Geplant ist zudem eine Rechtschreibkorrektur,<br />

die Unterstützung von entfernbaren<br />

Datenträgern und das Milou-Plasmoid<br />

zu einer kompletten Suche [15]<br />

zu erweitern. Des Weiteren arbeiten die<br />

KDE-Entwickler an einer Portierung von<br />

Baloo auf die KDE Frameworks 5. Diese<br />

Version soll vollständig kompatibel zur<br />

aktuellen Version sein.<br />

Die KDE-Entwickler treiben Baloo weiter<br />

voran. Benutzer und Programmierer<br />

werden sich mit der semantischen Suche<br />

anfreunden müssen. Ob sie schließlich<br />

wirklich schneller und stabiler arbeitet,<br />

muss sie jedoch erst noch in der Praxis<br />

beweisen, wenn weitere KDE-Anwendungen<br />

sie nutzen. (mfe)<br />

n<br />

Infos<br />

[1] Nepomuk-Projekt:<br />

[http:// nepomuk. semanticdesktop. org]<br />

[2] RDF: [http:// www. w3. org/ RDF/]<br />

[3] Vishesh Handa, „Nepomuk in 4.13 and<br />

beyond“: [http:// mail. kde. org/ pipermail/​<br />

nepomuk/ 2013‐December/ 004858. html]<br />

[4] Jos Poortvliet, „KDE’s Next Generation<br />

Semantic Search“:<br />

[http:// dot. kde. org/ 2014/ 02/ 24/ kdes‐next<br />

‐generation‐semantic‐search]<br />

[5] Baloo: [https:// community. kde. org/ Baloo]<br />

[6] Baloos Architektur: [http:// community.​<br />

kde. org/ Baloo/ Architecture]<br />

[7] Von Nepomuk auf Baloo portierte (KDE-)<br />

Anwendungen: [http:// community. kde. org/​<br />

Baloo/ NepomukPort]<br />

[8] Ask Ubuntu – „How to turn off baloo“:<br />

[http:// askubuntu. com/ questions/ 437635/ h<br />

ow‐to‐turn‐off‐baloo‐in‐kde‐4‐13]<br />

[9] KDE-Forum – „How do I pause indexing?“:<br />

[https:// forum. kde. org/ viewtopic. php?​<br />

f=154& t=120047# p304335]<br />

[10] Baloo-Diskussion auf der Suse-Mailingliste:<br />

[http:// lists. opensuse. org/ archive/​<br />

opensuse‐kde/ 2014‐05/ msg00008. html]<br />

[11] Jos Poortvliet, „Teacups and Storms“:<br />

[http:// blog. jospoortvliet. com/ 2014/ 05/​<br />

teacups‐and‐storms. html]<br />

[12] „Come and help us test“:<br />

[http:// dot. kde. org/ 2014/ 03/ 12/ applications<br />

‐413‐coming‐soon‐help‐us‐test]<br />

[13] Überarbeiteter Baloo-Dialog:<br />

[https:// gitorious. org/ baloo‐kcmadv]<br />

[14] Markus Feilner, „Pannenhelfer – Kontact-<br />

Debugging“: <strong>Linux</strong> User 07/​14<br />

[15] Ausstehende Tasks:<br />

[http:// community. kde. org/ Baloo/ Tasks]


Software<br />

www.linux-magazin.de Tooltipps 07/2014<br />

58<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Firejail 0.9.4<br />

Sandboxing-Tool<br />

Quelle: [http:// l3net. wordpress. com/​<br />

projects/ firejail]<br />

Lizenz: GPLv2<br />

Alternativen: Containers, Chroot<br />

Ocserv 0.3.4<br />

VPN-Server<br />

Quelle: [http:// www. infradead. org/ ocserv]<br />

Lizenz: GPLv2<br />

Alternativen: Open VPN, Tinc<br />

Gpgpwd 0.4<br />

Passwortmanager für die Shell<br />

Quelle: [http:// random. zerodogg. org/​<br />

gpgpwd]<br />

Lizenz: GPLv3<br />

Alternativen: Yapet, Console Password<br />

Manager<br />

Das Sandboxing-Tool Firejail nutzt die<br />

Kernel-Namespaces, um den Zugriff von<br />

Prozessen auf die Rechner-Ressourcen<br />

einzuschränken. Es stellt dazu ein eigenes<br />

Verzeichnissystem, einen separaten<br />

Netzwerkstack, eigene Hostnamen sowie<br />

eine isolierte Interprozesskommunikation<br />

mit eigenen PIDs bereit.<br />

Firejail führt einzelne Kommandos aus<br />

oder arbeitet mit Konfigurationsprofilen.<br />

Da das Tool ursprünglich als Sandbox für<br />

den Browser Firefox diente, liegen dem<br />

Archiv bereits Profildateien für Firefox<br />

beziehungsweise Iceweasel bei. In der aktuellen<br />

Version 0.9.4 haben die Entwickler<br />

ebenfalls Sandboxprofile für Evince<br />

und Midori hinzugefügt. Sie eignen sich<br />

als Vorlage für eigene Entwürfe.<br />

Einrichtungswünsche nimmt das C-Programm<br />

beim Aufruf entgegen. Parameter<br />

definieren, in welches Verzeichnis Firejail<br />

beim Start wechseln soll, ob die Sandbox<br />

einen Netzwerkzugang und ein Homeverzeichnis<br />

hat. Optional weisen Anwender<br />

der Umgebung eine Schnittstelle und<br />

eine eigene IP-Adresse zu. Wer Firejail als<br />

Login-Shell für einen Account einrichten<br />

möchte, der trägt die notwendigen Optionen<br />

in die Datei »/etc/firejail/login.<br />

users« ein.<br />

★★★★★ Firejail schließt Programme sicher<br />

weg. Die Konfiguration ist intuitiv<br />

und schnell erledigt.<br />

n<br />

Der schlanke Open-Connect-VPN-Server,<br />

kurz Ocserv, verwendet das Any-Connect-VPN-Protokoll,<br />

das auch zahlreiche<br />

Cisco-Router beherrschen. Nach dem Programmstart<br />

lauscht der Server auf Port<br />

3333 auf eingehende TCP-Verbindungen.<br />

Wenn sich der Benutzer erfolgreich authentisiert<br />

hat, wandern die Daten über<br />

eine dedizierte, mit Datagram Transport<br />

Layer Security (DTLS) verschlüsselte<br />

UDP-Verbindung. Das Tool ermöglicht die<br />

Authentisierung via Zertifikat und PAM.<br />

Letzteres erwartet die Anmeldung mit<br />

dem Standard-Benutzerpasswort. Alternativ<br />

erzeugt das im Archiv enthaltene<br />

Programm »ocpasswd« eine neue Kennwortdatei.<br />

Beide Methoden sind auch<br />

kombinierbar.<br />

Wenn ein Client eine Verbindung aufgebaut<br />

hat, weist Ocserv ihm eine<br />

IP-Adresse zu und reicht die Routing-<br />

Informationen weiter. Der Server unterstützt<br />

IPv4 und IPv6. Admins schränken<br />

optional mit Cgroups den Ressourcenverbrauch<br />

ein. Dazu nutzen sie die mitgelieferte<br />

Einrichtungsdatei als Vorlage<br />

und legen sie unter »/etc/ocserv/ocserv.<br />

conf« ab. Das Archiv enthält außerdem<br />

das kleine Monitoring-Werkzeug Occtl,<br />

das den Serverstatus oder eine Liste mit<br />

aktiven Verbindungen ausgibt.<br />

★★★★★ Ocserv ist eine interessante Alternative<br />

zu den bewährten VPN-Lösungen<br />

und eignet sich besonders für alle,<br />

die bereits Systeme mit Any-Connect-<br />

VPN im Einsatz haben.<br />

n<br />

Wer nach einer Alternative zu grafischen<br />

Passwortmanagern sucht, der sollte sich<br />

Gpgpwd ansehen. Wie der Namen vermuten<br />

lässt, setzt das Tool auf Gnu PG,<br />

um die Kennwörter sicher in der verschlüsselten<br />

Datei »~/.gpgpwddb« wegzuschließen.<br />

Das Kommando »gpgpwd set«, gefolgt<br />

von einem eindeutigen Namen, trägt ein<br />

neues Passwort in die Datei ein oder aktualisiert<br />

ein bestehendes. Nachdem der<br />

Benutzer sich mit seiner Gnu-PG-Passphrase<br />

authentisiert hat, gibt er auf Aufforderung<br />

das Kennwort ein. Alternativ<br />

drückt er die Eingabetaste, und Gpgpwd<br />

schlägt ein zufälliges Passwort für den<br />

Dienst vor.<br />

Um es wieder auszulesen, ruft der Nutzer<br />

»gpgpwd get« zusammen mit dem<br />

Namen auf. Wer sich genau erinnert, der<br />

darf einen regulären Ausdruck verwenden.<br />

Findet das Tool keinen Eintrag in<br />

der Passwortdatei, stößt es selbstständig<br />

eine Suche nach ähnlichen Begriffen an.<br />

Andernfalls tippen Anwender »gpgpwd<br />

get .«, um alle enthaltenen Einträge anzuzeigen.<br />

Die Option »remove« entfernt<br />

ein Kennwort, »rename« ändert den Bezeichner<br />

für den Eintrag.<br />

★★★★★ Gpgpwd ist ein schneller und<br />

sicherer Passwortmanager, der auf das<br />

bewährte Kryptographiesystem Gnu PG<br />

setzt. Das Tool ist kinderleicht zu bedienen<br />

und arbeitet auch via SSH. n


Software<br />

www.linux-magazin.de Tooltipps 07/2014<br />

60<br />

Checkit 0.2.0<br />

Integrität von Dateien testen<br />

Quelle: [http:// dennisk. customer. netspace.​<br />

net. au/ checkit. html]<br />

Lizenz: GPLv3<br />

Alternativen: Integrit, Afick<br />

Ddpt 0.94<br />

Daten blockweise kopieren<br />

Quelle: [http:// sg. danny. cz/ sg/ ddpt. html]<br />

Lizenz: BSD<br />

Alternativen: Dd<br />

Webalizer Xtended 2.23-08-RB30<br />

Traffic-Analyse für Webserver<br />

Quelle: [http:// www. patrickfrei. ch/​<br />

webalizer]<br />

Lizenz: GPLv2<br />

Alternativen: Webalizer, Awstats, Piwik<br />

Dateisysteme wie Btr-FS oder ZFS versehen<br />

alle Dateien mit einer Prüfsumme<br />

und erkennen fehlerhafte Daten praktisch<br />

sofort. Dies ermöglicht es dem Anwender,<br />

jederzeit die Datei-Integrität zu kontrollieren.<br />

Andere Dateisysteme bieten ein<br />

solches Feature nicht von Haus aus – hier<br />

schafft Checkit Abhilfe. Das Konsolentool<br />

erzeugt, verwaltet und kontrolliert Prüfsummen<br />

im Verzeichnissystem und nutzt<br />

dazu den CRC-64-Algorithmus.<br />

Um eine Prüfsumme anzulegen, rufen<br />

Anwender »checkit ‐s« gefolgt vom Dateinamen<br />

auf. Die Option »‐r« erfasst rekursiv<br />

ganze Verzeichnisbäume. Das Tool<br />

ermittelt die Prüfsummen und schreibt<br />

das Ergebnis auf die Standardausgabe.<br />

Außerdem speichert es den CRC-Wert als<br />

ein erweitertes Attribut im Dateisystem<br />

oder optional in einer versteckten Datei.<br />

Das Programm unterstützt daher nur<br />

Dateisysteme, die erweiterte Attribute unterstützen.<br />

Dazu gehören unter anderem<br />

Ext 2, Ext 3, Ext 4, XFS, JFS und Btr-FS.<br />

Die Windows-Version des Tools arbeitet<br />

mit Vfat und NTFS.<br />

Zum späteren Vergleich rufen Benutzer<br />

das Tool mit dem Parameter »‐c« und dem<br />

Dateinamen auf. Benötigen sie die Prüfsumme<br />

einer Datei nicht mehr, entfernt<br />

die Option »‐x« sie wieder. Hat sich eine<br />

Datei verändert, müssen Anwender die<br />

Prüfsumme nicht erst löschen und neu<br />

anlegen. In diesem Fall reicht es aus, sie<br />

mit »‐o« zu aktualisieren.<br />

★★★★★ Checkit ist ein junges Projekt,<br />

das Dateisysteme um eine Integritätskontrolle<br />

mittels Prüfsummen erweitert. Da<br />

es auf der Konsole arbeitet, binden Anwender<br />

es bequem in eigene Skripte ein<br />

und automatisieren ihre Analysen. n<br />

Das Shellprogramm Ddpt überträgt<br />

Daten zwischen Dateien oder Speichermedien.<br />

Da das Tool Blöcke transferiert,<br />

eignet es sich gut für blockorientierte<br />

Geräte wie Band-, Disketten- und CD/​<br />

DVD-Laufwerke, USB-Sticks und SD-Karten<br />

sowie für andere Devices, die den<br />

SCSI-Befehlssatz unterstützen.<br />

Nicht nur der Name erinnert an das klassische<br />

Dd-Tool – die Entwickler haben<br />

auch viele Funktionen und Parameter<br />

übernommen. So passen Anwender zum<br />

Beispiel mit den Optionen »bs«, »ibs« und<br />

»obs« die Blockgröße an, auch »count«<br />

funktioniert genauso und legt die Anzahl<br />

der übertragenen Blöcke fest.<br />

Anders als Dd akzeptiert Ddpt einen<br />

Punkt als Ausgabedatei und interpretiert<br />

ihn als Null-Device. Zudem überschreibt<br />

Ddpt nicht automatisch die Ausgabedatei.<br />

Wer das möchte, der muss dies explizit<br />

mit der Angabe »oflag=trunc« einschalten.<br />

In Kombination mit »coe« (continue<br />

on error) eignet sich das Tool damit<br />

auch für Datenrettungsversuche. Mögliche<br />

Aufrufoptionen sind »iflag=coe«,<br />

»oflag=coe« oder auch »coe=1«.<br />

Weitere nützliche Parameter lenken die<br />

Ausgabe parallel in eine zweite Datei<br />

um oder nehmen eine abgebrochene<br />

Übertragung wieder auf. Auch die Datendurchsatzrate<br />

schränken Anwender<br />

bei Bedarf ein. Die Manpage und die Anleitung<br />

auf der Projektseite beschreiben<br />

alle Features und geben aussagekräftige<br />

Beispiele.<br />

★★★★★ Wer Dd oft und intensiv nutzt,<br />

der sollte einen Blick auf Ddpt werfen.<br />

Das Tool kombiniert Altbewährtes mit<br />

neuen Funktionen. Da sich die Befehlssyntax<br />

ähnelt, hält sich der Lernaufwand<br />

in Grenzen.<br />

n<br />

Webalizer wertet die Logdateien von<br />

Webservern aus und erzeugt Berichte<br />

im HTML-Format. Das Tool beachtet<br />

allerdings keine 404-HTTP-Fehlercodes.<br />

Hier springt Webalizer Xtended in die<br />

Bresche. Die Weiterentwicklung punktet<br />

außerdem mit übersichtlicheren Beschriftungen,<br />

benutzerdefinierten Tabellen und<br />

eigenen Farbschemata.<br />

Beim Aufruf nimmt das Tool die Protokolle<br />

entgegen. Es erwartet sie im Common-<br />

oder auch Combined-Log-Format,<br />

versteht Xferlog-Dateien gängiger FTP-<br />

Server sowie das W3C Extended Log File<br />

Format. Anwender geben außerdem das<br />

Verzeichnis für die Berichte und optional<br />

deren Titel an. Häufig benötigte Optionen<br />

tragen Nutzer am besten in eine Konfigurationsdatei<br />

ein. In der Voreinstellung<br />

sucht das Tool nach der Datei »webalizer.<br />

conf«, zuerst im aktuellen Verzeichnis<br />

und danach in »/etc«.<br />

Das Archiv enthält eine Beispieldatei namens<br />

»sample.conf«, die sich zur Vorlage<br />

eignet. Neben Angaben zu Verzeichnissen<br />

und zu erstellenden Statistiken ist<br />

hier auch das HTML-Grundgerüst der<br />

Berichte definiert. Wer die protokollierten<br />

IP-Adressen mit einer Geo-Datenbank<br />

abgleichen möchte, findet hier ebenfalls<br />

entsprechende Einträge.<br />

★★★★★ Webalizer Xtended ist eine<br />

gelungene Weiterentwicklung eines bewährten<br />

Analysetools, die oft vermisste<br />

Features nachrüstet. Wer die Logfiles<br />

optimal auswerten möchte, sollte die<br />

Beispielkonfiguration und die Manpage<br />

studieren. (U. Vollbracht/​hej) n


JETZT NEU<br />

AM KIOSK!<br />

Mit DVD für<br />

nur 12,80 Euro<br />

Hier gleich bestellen:<br />

medialinx-shop.de/ubuntu-spezial


Aus dem Alltag eines Sysadmin: Iwatch<br />

Aber gleich!<br />

Einführung 07 /2014<br />

Sysadmin<br />

Kürzlich stand Autor Charly vor der Aufgabe, ein Verzeichnis auf einem Server mit zwei NFS-gemounteten<br />

Clients zu synchronisieren. Das Ganze sollte schnell passieren und leicht handhabbar sein. Damit waren DRBD<br />

und Gluster-FS schon mal raus. Charly Kühnast<br />

www.linux-magazin.de<br />

63<br />

Inhalt<br />

64 Live-Kernelupdate<br />

Den <strong>Linux</strong>-Kernel ohne Reboot zu patchen,<br />

das versprechen Red Hats Kpatch<br />

und Suses Kgraft.<br />

70 Pinger<br />

Hochauflösende Netzwerküberwachung<br />

lässt sich schon mit gut durchdachten<br />

Pings bewerkstelligen.<br />

Mein Synchronisier-Setup schaut im<br />

Groben so aus: Ein Applikationsserver<br />

liest zyklisch Werte aus einer Datenbank,<br />

flicht daraus HTML-Dateien und einige<br />

Bilder und legt alles in dem Verzeichnis<br />

»/source« ab. Per NFS 4 eingehängt sind<br />

die Verzeichnisse »/dest1« und »/dest2«.<br />

Wann immer es neue Daten in »/source«<br />

gibt, sollen diese baldmöglichst in die<br />

beiden Zielverzeichnisse gelangen.<br />

Einfach und schon<br />

lange dabei<br />

Da komplexere Lösungen nicht in Frage<br />

kommen, bleibt eigentlich nur noch übrig,<br />

die Aufgabe dem Inotify-Subsystem<br />

in den Schoß zu werfen. Inotify ist seit<br />

2.6.13 Bestandteil des Kernels und bietet<br />

Userspace-Programmen eine Schnittstelle<br />

zu Dateisystem-Ereignissen an. Abseits<br />

von Incron [1] habe ich dafür bisher kaum<br />

Verwendung gefunden, aber für das zeitnahe<br />

Syncen von Verzeichnissen sollte<br />

Der Autor<br />

Charly Kühnast administriert<br />

Unix-Syste me im Rechenzentrum<br />

Niederrhein. Zu seinen<br />

Aufgaben gehören Sicherheit<br />

und Verfügbarkeit der<br />

Firewalls und der DMZ.<br />

es ideal sein – so<br />

meine Überlegung.<br />

Fehlt nur noch das<br />

passende Tool für<br />

die Aufgabe.<br />

Eine kurze Recherche<br />

brachte gleich<br />

zwei Kandidaten<br />

ans Licht: Lsyncd<br />

und Iwatch. Da zu<br />

Lsyncd bereits ein<br />

guter <strong>Linux</strong>-<strong>Magazin</strong>-Artikel<br />

[2] erschien,<br />

kon zentrie<br />

re ich mich hier<br />

auf Iwatch.<br />

Der Wächter eignet<br />

sich für den Betrieb im Vordergrund<br />

genauso wie als Daemon. Im einfachsten<br />

Fall lasse ich beispielsweise mit »iwatch<br />

‐r /var« ein Verzeichnis lediglich beobachten,<br />

ohne eine Aktion auszulösen.<br />

Iwatch meldet dann:<br />

[ 6/May/2014 20:49:30] IN_CREATEU<br />

/var/tmp/etilqs_SqorfaOvdiBaBI7<br />

[ 6/May/2014 20:49:30] IN_DELETEU<br />

/var/tmp/etilqs_SqorfaOvdiBaBI7<br />

Mit dem Parameter »‐c Aktion« weise<br />

ich Iwatch dagegen an, auf Ereignisse<br />

zu reagieren. Um der Parameterhölle zu<br />

entfliehen, erscheint mir eine Konfigurationsdatei<br />

wie in Abbildung 1 besser<br />

zu sein. Der spannende Teil der Konfiguration<br />

steht im »«-Tag. Dort<br />

bestimme ich mit »type=recursive«, dass<br />

Iwatch auch Verzeichnisse unterhalb von<br />

»/source« einbeziehen möge.<br />

Im Falle eines Dateisystem-Ereignisses<br />

startet der Mechanismus das Shellskript<br />

»/home/charly/bash/sync.sh«. Dabei<br />

übergibt Iwatch dem Skript die Variable<br />

»%f«. Darin steht der vollständige Pfad<br />

der Datei, die sich geändert hat.<br />

Abbildung 1: Iwatch lässt sich per Konfigurationsdatei besser steuern als über die Kommandozeile.<br />

Die zu überwachenden Verzeichnisse gehören in »«-Tags.<br />

Das Skript »sync.sh« wiederum ist ein<br />

schlanker Zweizeiler:<br />

#!/bin/bash<br />

rsync ‐a ‐‐delete $1 /dest1/$1 &<br />

rsync ‐a ‐‐delete $1 /dest2/$1 &<br />

Das klappt recht gut, wenn die Anzahl<br />

der zu verarbeitenden Ereignisse nicht<br />

exorbitant ansteigt. Wenn doch – wie<br />

etwa beim Syncen einer sechsstelligen<br />

Anzahl sehr kleiner Dateien, die der Server<br />

in maximaler Geschwindigkeit auf<br />

die Platte nagelt –, kommt es zu einer<br />

beachtlichen Menge Schlange stehender<br />

Rsync-Prozesse. Nicht, dass mir das<br />

schon mal passiert wäre – hust! (jk) n<br />

Infos<br />

[1] Charly Kühnast, „Aus dem Alltag eines Sysadmin:<br />

Incron“: <strong>Linux</strong>-<strong>Magazin</strong> 02/​07, S. 71,<br />

[http:// www. linux‐magazin. de/ Ausgaben/​<br />

2007/ 02/ Event‐gesteuert] (HTML) sowie<br />

auf vorliegender Delug-DVD (PDF)<br />

[2] „Tooltipps Extended: Lsyncd“:<br />

[http:// www. linux‐magazin. de/ NEWS/​<br />

Tooltipps‐Extended‐Lsyncd]


Sysadmin<br />

www.linux-magazin.de Kernel-Patcher 07/2014<br />

64<br />

Kpatch und Kgraft<br />

Erste Hilfe<br />

Den Kernel mit Security-Updates im laufenden Betrieb patchen, das ist das Ziel von zwei Projekten, mit denen<br />

derzeit Red Hat und Suse vorpreschen. Kpatch und Kgraft teilen manche Ansätze, unterscheiden sich aber<br />

auch in vielen Details und sind derzeit noch nicht für den produktiven Einsatz geeignet. Martin Loschwitz<br />

freuen. Kernel- und Treiberentwickler<br />

könnten deutlich effizienter arbeiten,<br />

wenn sie nicht nach jedem Code-Update<br />

einen Neustart durchführen müssten –<br />

so genannte Hotpatches stehen auch bei<br />

ihnen hoch im Kurs.<br />

Ksplice<br />

© Anatoliy Samara, 123RF<br />

Bei Verbesserungen des <strong>Linux</strong>-Kernels<br />

oder bei Security-Updates vertrauen<br />

Admins meist der uralten Binärprozedur:<br />

Sie installieren aktualisierte Pakete des<br />

Kernels von ihrem Distributor oder bauen<br />

sich selbst einen neuen Kern, um dann<br />

das System neu zu starten.<br />

Wer die Kernelupdates diverser Distributionen<br />

in den vergangenen Monaten und<br />

Jahren aufmerksam verfolgt hat, mag<br />

dabei schnell zu dem Schluss kommen,<br />

dass die jahrelangen, legendären <strong>Linux</strong>-<br />

Uptimes heute nur mehr mit unterlassenen<br />

Kernelpatches und damit einhergehenden<br />

Sicherheitslücken oder anderen<br />

Risiken machbar seien.<br />

Geht gar nicht mehr:<br />

Cluster rebooten<br />

Erst nach dem Reboot stehen schließlich<br />

die neuen Kernelfunktionen beziehungsweise<br />

die gewünschten Security-Fixes<br />

zur Verfügung. Dieser Vorgang, obgleich<br />

täglich tausendfach überall auf der Welt<br />

durchgeführt, wirkt zunächst völlig unspektakulär,<br />

sorgt aber im Hintergrund<br />

gelegentlich für Geräusche, die jeder<br />

Admin sich lieber ersparen würde.<br />

Gehört der neu zu startende Server zum<br />

Beispiel zu einem Cluster, muss der<br />

Administrator Sorge dafür tragen, dass<br />

Pacemaker oder ein anderer Clustermanager<br />

nicht versehentlich einen Ausfall<br />

entdeckt und Notfallmaßnahmen einleitet.<br />

Laufende Services verschiebt der<br />

Cluster-Admin in der Regel manuell vor<br />

dem Reboot auf andere Systeme.<br />

Doch der Reboot bedeutet ja nicht nur Arbeit,<br />

sondern in vielen Fällen auch Ausfallzeit,<br />

Downtimes für Services, deren<br />

Effekte der Admin abzufedern hat. Nicht<br />

zuletzt deshalb trachten IT-Verantwortliche<br />

in aller Welt danach, Neustarts zu<br />

verhindern, auch wenn „bloß ein neuer<br />

Kernel eingespielt worden ist“.<br />

Aber auch noch andere Benutzergruppen<br />

würden sich über derlei Möglichkeit<br />

Bis jetzt war das auf <strong>Linux</strong> leider Illusion.<br />

Doch vor einigen Wochen brachten sowohl<br />

Suse als auch Red Hat Lösungen auf<br />

den Markt, die das Patchen des Kernels<br />

im laufenden Betrieb möglich machen<br />

sollen. Doch weder Suse noch Red Hat<br />

haben das Prinzip erfunden: Oracle stellt<br />

mit Ksplice [1] bereits seit einiger Zeit<br />

eine Lösung dieser Art zur Verfügung,<br />

die aber unter diversen patentrechlichen<br />

Problemen leidet und deren Lizenzbedingungen<br />

nur bedingt zuversichtlich stimmen.<br />

Zudem behält Oracle das Werkzeug<br />

mittlerweile ausschließlich den eigenen<br />

Business-Kunden vor, die Open-Source-<br />

Variante von Ksplice wird seit geraumer<br />

Zeit nicht mehr entwickelt.<br />

Not invented here?<br />

Sowohl Red Hat als auch Suse bieten<br />

in Form von Kpatch [2] und Kgraft [3]<br />

Alternativen an, die Ksplice in Sachen<br />

Funktionalität ebenbürtig sein sollen.<br />

Technisch gibt es zwischen den Ansätzen<br />

große Unterschiede, auch die gebotene<br />

Funktionalität divergiert merklich. Vielleicht<br />

ist das auch der Grund dafür, dass<br />

Red Hat und Suse mit eigenen Ansätzen<br />

vorpreschen, statt sich auf die gleiche<br />

Entwicklung zu einigen.<br />

Böse Zungen schieben die Entscheidung<br />

allerdings eher auf Red Hats angeblich<br />

chronisches Not-invented-here-Syndrom,


doch dürften in diesem konkreten Fall<br />

tatsächlich technische Details den Ausschlag<br />

gegeben haben.<br />

Kgraft von Suse<br />

Kgraft kommt aus Suses eigener Entwicklungsabteilung.<br />

Mittlerweile hat das Konzept<br />

Serienreife erlangt und sich der Hersteller<br />

damit an die Öffentlichkeit gewagt.<br />

Kgraft macht sich eine ganze Reihe von<br />

Funktionen zunutze, die moderne Versionen<br />

des <strong>Linux</strong>-Kernels unterstützen,<br />

dazu gehören INT3-Trap-Calls genauso<br />

wie Ready-Copy Updates (RCU) und Memory<br />

Profiling per Mcount. Das Potpourri<br />

aus Ansätzen verleiht Kgraft am Ende die<br />

Fähigkeiten, die es braucht, um Code im<br />

Kernel on the Fly durch anderen Code<br />

zu ersetzen.<br />

Was dann folgt, ist technisch hochgradig<br />

komplex. Kgraft macht sich zum Beispiel<br />

massiv die Tatsache zunutze, dass der<br />

Profiling-Code von GCC am Anfang jeder<br />

Funktion beim Kompilieren etwas Platz<br />

lässt. In diesem Bereich liegen anfänglich<br />

Aufrufe der »ftrace()«-Funktion über<br />

einen »@__fentry__@‐Call«. Allerdings<br />

werden diese beim Systemboot durch<br />

NOP-Einträge ersetzt. Jede Funktion hat<br />

am Anfang also eine gewollte Leerstelle,<br />

eben jene »NOP«-Einträge.<br />

Kgraft nutzt genau die und ersetzt sie<br />

durch INT3-Handler, die beim Aufruf einer<br />

spezifischen Funktion ohne weitere<br />

Zwischenschritte sofort an eine andere<br />

Stelle des Kernelcodes springen können.<br />

Anders formuliert: Der Aufruf einer<br />

Funktion in einem Kernel mit Support für<br />

Kgraft führt stets dazu, dass Kgraft selbst<br />

aufgerufen wird. Kgraft sitzt also überall<br />

mit im Boot.<br />

Patches als Kernelmodule<br />

Da stellt sich sofort die Frage, wie der<br />

Code in den Kernel kommt, zu dem der<br />

Handler im Kgraft-Fall springen soll. Die<br />

Suse-Entwickler beschlossen, gepatchten<br />

Kernelcode in Form ganz normaler<br />

Kernelmodule zur Verfügung zu stellen.<br />

Damit ein Anwender also Code on the<br />

Fly ersetzen kann, braucht er ein entsprechendes<br />

Kernelmodul mit einer neueren<br />

Version der gewünschten Funktion. Nur<br />

Funktionen im Kernel lassen sich mittels<br />

Kgraft austauschen; an den internen Datenstrukturen<br />

des Kernels lässt sich über<br />

Kgraft nicht drehen.<br />

Die Kgraft-Kernelmodule lädt der Admin<br />

eines Systems genau so wie jedes andere<br />

Modul auch. Das ist praktisch, da sich<br />

Kgraft-Updates in die vorhandene Paketarchitektur<br />

vieler Distributionen integrieren<br />

lassen. Für Suse, Red Hat, Debian und<br />

Ubuntu ist es schließlich nichts Neues,<br />

Kernelfunktionen über zusätzliche Modulpakete<br />

zu liefern. Bis jetzt hat das<br />

Verfahren zwar nur Treiber betroffen, die<br />

vorher nicht im Kernel waren. Aber mit<br />

Blick auf die Interfaces, die die Kgraft-<br />

Module besitzen, sind sie identisch zu<br />

normalen Kernelmodulen.<br />

Dieses Prinzip erlaubt es, Kgraft-Patches<br />

in Form von Paketen über alle Systeme<br />

einer Installation zu verteilen und sie<br />

dort mittels »insmod« in den laufenden<br />

Kernel zu spielen. Wer Puppet oder Chef<br />

nutzt, kann den gesamten Vorgang sogar<br />

automatisieren. Viel bequemer lassen<br />

sich In-Place-Updates von Kernelfunktionen<br />

kaum noch gestalten. So sammelt<br />

sich Modul um Modul, bis der Admin in<br />

Ruhe einen Reboot durchführt. Ob dieser<br />

stetig wachsende Modulstapel irgendwelche<br />

Probleme verursacht, muss sich aber<br />

erst noch zeigen, weil Erfahrungswerte<br />

bisher fehlen.<br />

Variante drei: Red Hats<br />

Kpatch<br />

Auch Red Hat präsentiert gerade eine<br />

Lösung, die das Austauschen von Kernelcode<br />

im laufenden Betrieb ermöglicht.<br />

Bei den roten Hüten nennt sich<br />

das Ganze Kpatch [2], und so wie Suse<br />

Kgraft alleine entwickelt hat, stampfte<br />

auch Red Hat Kpatch selber aus dem<br />

Boden. Direkte Anleihen an Oracles<br />

Ksplice bestehen also in beiden Fällen<br />

nicht. Technisch folgt Kpatch in gewisser<br />

Hinsicht den grundlegenden Entscheidungen,<br />

die auch Kgraft verwendet. Und<br />

doch gibt es massive Unterschiede. E<br />

Kernel-Patcher 07/2014<br />

Sysadmin<br />

www.linux-magazin.de<br />

65


Sysadmin<br />

www.linux-magazin.de Kernel-Patcher 07/2014<br />

66<br />

Abbildung 1: Testsysteme im Einsatz: Suse 13.1 mit Kernel 3.13 und Fedora 20 mit einem nagelneuen 3.14er.<br />

Zunächst zu den Gemeinsamkeiten: Wie<br />

Suses Kgraft klinkt sich auch Kpatch in<br />

den Kernel über das Ftrace-Subsystem ein,<br />

das GCC beim Kompilieren automatisch<br />

einbezieht. Letztlich fängt Kpatch Funktionsaufrufe<br />

also auf sehr ähnliche Weise<br />

ab. Anders als Kgraft kommt Kpatch aber<br />

selbst als Kernelmodul daher, Admins<br />

brauchen den Hostkernel also nicht für<br />

den Hotpatch-Mechanismus zu patchen<br />

wie bei Suse.<br />

Das bietet beispielsweise für die Szenarien<br />

Vorteile, in denen Admins den Patchmechanismus<br />

selbst durch eine neuere<br />

Version austauschen möchten. Bei Suse<br />

impliziert das zwangsläufig einen Reboot,<br />

bei Red Hat nicht.<br />

Kpatch schiebt übrigens gleich zwei<br />

Module in den Kernel: Das »hot patch<br />

module« enthält die eigentliche Kpatch-<br />

Funktionalität und das »core module«<br />

stellt das Interface zur Verfügung, über<br />

das sich später Patches in den Kernel<br />

einspielen lassen.<br />

Auch bei Kpatch: Schon<br />

wieder Patch-Module<br />

Auch Kpatch erwartet die Updates für<br />

Funktionen in Form von Kernelmodulen,<br />

die in den Hostkernel zu laden sind. Beim<br />

01 $ diff ‐ruN orig/fs/proc/meminfo.c new/fs/proc/<br />

meminfo.c<br />

02 ‐‐‐ orig/fs/proc/meminfo.c 2014‐03‐31 05:40:15.<br />

000000000 +0200<br />

03 +++ new/fs/proc/meminfo.c 2014‐05‐11 16:33:19.<br />

148771809 +0200<br />

04 @@ ‐131,7 +131,7 @@<br />

Listing 1: »meminfo‐string.patch« für Fedora 20<br />

05 "Committed_AS: %8lu kB\n"<br />

Aufruf einer Funktion, die in neuerer Version<br />

über ein Kpatch-Patch bereitsteht,<br />

wird der Aufruf der Funktion dann zur<br />

„neuen“ Version der Funktion weitergeleitet.<br />

Das »core module« dient als zentrale<br />

Patch-Registry und weiß, ob für eine<br />

bestimmte Funktion ein Patch per Kpatch<br />

installiert ist; abhängig davon führt es<br />

alten oder neuen Code aus.<br />

Red Hat liefert übrigens mit Kpatch ein<br />

Werkzeug namens »kpatch‐build« aus,<br />

das aus einem Patch für <strong>Linux</strong> ein Update-Modul<br />

macht. Und ebenso gehört<br />

auch ein Kpatch-Utility zum Lieferumfang,<br />

das die vorhandenen Hotpatches<br />

komfortabel verwaltet. Über dieses Werkzeug<br />

lassen sich sogar Patches definieren,<br />

die nach einem Systemneustart erneut<br />

geladen werden sollen.<br />

Das klingt zwar zunächst, als konterkariere<br />

es den Kpatch-Ansatz insgesamt,<br />

ist dabei in Wirklichkeit aber sehr pfiffig:<br />

Wenn ein Admin sich eine funktionierende<br />

Kombination aus stabilem Kernel<br />

und zusätzlichen Patches gebaut hat und<br />

es fällt danach der Strom aus, sodass ein<br />

Reboot unumgänglich wird, so möchte<br />

er möglicherweise nicht gleich durch ein<br />

Kernelupdate eine zweite Baustelle aufmachen,<br />

sondern die bekante Umgebung<br />

wieder laden. Dabei hilft, wie sich das<br />

06 "VmallocTotal: %8lu kB\n"<br />

07 "VmallocUsed: %8lu kB\n"<br />

08 ‐ "VmallocChunk: %8lu kB\n"<br />

09 + "VMALLOCCHUNK: %8lu kB\n"<br />

10 #ifdef CONFIG_MEMORY_FAILURE<br />

11 "HardwareCorrupted: %5lu kB\n"<br />

12 #endif<br />

Laden von Modulen mit dem Kpatch-<br />

Utility realisieren lässt.<br />

In der Praxis<br />

Im Alltag fallen beim Vergleich beider Lösungen<br />

mehrere Details auf: So arbeitet<br />

Kpatch gründlicher, als es bei Kgraft der<br />

Fall ist. Im Kgraft-Beispiel gilt das Patch<br />

für eine Funktion nämlich nur für Aufrufe<br />

der Funktion, die nach dem Anwenden<br />

des Patch stattfinden. Funktionen, die<br />

schon vorher liefen, bleiben vom Patch<br />

unbeeinflusst.<br />

So können mehrere Versionen der gleichen<br />

Funktion im Kernelspace vorliegen.<br />

Das wird möglicherweise dann zum Problem,<br />

wenn ein Kernelpatch ein kritisches<br />

Problem behebt und davon auch zentrale<br />

Treiber wie die für Netzwerkhardware<br />

betroffen sind. Denn jene lassen sich<br />

nicht ohne Weiteres ent- und wieder neu<br />

laden, um in den Genuss der korrigierten<br />

Funktionen zu kommen.<br />

Red Hat folgt einer anderen Philosophie;<br />

ist ein Kpatch-Patch erst mal geladen,<br />

ersetzt es alle schon aktiven Funktionsaufrufe<br />

im Kernel ebenfalls durch die<br />

neue Version der Funktion, sodass das<br />

beschriebene Problem bei Red Hat gar<br />

nicht erst auftreten kann.<br />

Die folgenden Anleitungen zeigen, wie<br />

sich Kgraft auf Open Suse 13.1 und<br />

Kpatch auf Fedora in der Version 20 mit<br />

recht neuen Kerneln (Abbildung 1) in<br />

Betrieb nehmen lassen. Das gelingt zwar<br />

auch auf anderen Distributionen, doch<br />

gestaltet sich dort der Installationsaufwand<br />

deutlich umfangreicher.<br />

Angetestet: Kpatch auf<br />

Fedora<br />

Auf Fedora 20 steht zunächst die Installation<br />

einiger Zusatzpakete an. Die<br />

folgende Anleitung setzt voraus, dass<br />

alle Pakete systemweit auf dem neuesten<br />

Stand sind. Zum Einsatz kommt die zu<br />

Redaktionsschluss aktuelle Kernelversion<br />

3.14.3-200.fc20. Für ein funktionierendes<br />

Kpatch sind folgende Pakete notwendig:<br />

n »gcc«<br />

n »kernel‐devel«<br />

n »elfutils« und »elfutils‐devel«<br />

n »rpmdevtools«<br />

n »pesign«<br />

n »yum‐utils«


Abbildung 2: Vor dem Einspielen des Patch mit Kpatch (links) zeigt »/proc/meminfo« das gewohnte Bild.<br />

Nach dem Laden des Patch findet sich an gleicher Stelle »VMALLOCCHUNK«, jetzt in Großbuchstaben.<br />

Der Befehl »yum‐builddep« kümmert sich<br />

nach der Installation der genannten Pakete<br />

per »yum install« darum, dass auch<br />

die passenden Kernelheader ihren Weg<br />

auf das System finden. Wer Ccache nutzen<br />

möchte, sollte dieses Paket ebenso<br />

installieren. Danach folgt der Download<br />

von Kpatch selbst: Mittels Git lässt sich<br />

das Repo auf die lokale Platte spiegeln.<br />

»git clone https://github.com/dynup/<br />

kpatch« tut genau dies. Mit »cd kpatch<br />

&& make && make install« sorgt der<br />

Admin dafür, dass die Module zur Verfügung<br />

stehen.<br />

Um zu testen, ob Kpatch wie gewünscht<br />

funktioniert, hilft das Anwenden eines<br />

kleinen Patch. Das Red-Hat-Beispiel<br />

schlägt vor, »/proc/meminfo« so zu ändern,<br />

dass der Kernel die »VmallocChunk«-<br />

Zeile fortan durchgehend in Großbuchstaben<br />

anzeigt. Für Fedora 20 erledigt<br />

dies das Patch in Listing 1.<br />

Nach dem Editieren folgt der Prozess,<br />

der das eigentliche Kpatch-Patch baut:<br />

»Kpatch‐build meminfo‐string.patch«<br />

stößt den Prozess an. Im Anschluss<br />

muss der Admin dann seine Geduld unter<br />

Beweis stellen, denn für ein Kpatch-<br />

Modul baut das Helper-Tool im ersten<br />

Schritt den originalen Kernel, im zweiten<br />

Schritt den gepatchten, und erst im dritten<br />

Schritt wird dann aus dem Delta der<br />

beiden Trees das Kpatch-Modul gebildet.<br />

Das erklärt auch, warum der Einsatz von<br />

»ccache« sinnvoll ist.<br />

Wer erstmals mit Kpatch arbeitet, wird<br />

sich von der Dauer dieses Prozedere<br />

möglicherweise genervt fühlen, doch bei<br />

Dutzenden von Rechnern relativiert sich<br />

der Zeitverlust durch das Kompilieren eines<br />

Kernels statt der zahlreichen Reboots<br />

schnell wieder.<br />

Am Ende des Bauvorgangs steht ein<br />

»Kpatch‐meminfo‐string.ko«, das sich<br />

mit »sudo Kpatch load Kpatch‐meminfo‐string.ko«<br />

in den Kernel bugsieren<br />

lässt. Ein Blick in »/proc/meminfo« verrät<br />

anschließend, dass die Änderung<br />

tatsächlich funktioniert hat (Abbildung<br />

2). Nach dem gleichen Schema würden<br />

die Änderungen anderer Funktionen im<br />

Kernel ebenfalls funktionieren.<br />

Höhere Einstiegshürde:<br />

Kgraft auf Open Suse<br />

Erwartungsgemäß stellt sich im Test heraus,<br />

dass die Einstiegshürde für Kgraft<br />

auf Open Suse ein Stück höher liegt (Abbildung<br />

3). Das liegt daran, dass Kgraft<br />

sich nicht als Modul für <strong>Linux</strong> bauen<br />

lässt, sondern einen speziell gepatchten<br />

Kernel zwingend voraussetzt. Bevor sich<br />

Kgraft nutzen lässt, ist immer das Bauen<br />

eines Kernels angesagt.<br />

Während der verantwortliche Red-Hat-<br />

Entwickler in »README.md« des Kpatch-<br />

Github-Repository ausführliche Kpatch-<br />

Installationsanleitungen bereitstellt, fällt<br />

die Dokumentation für Kgraft vergleichsweise<br />

spärlich aus. Suse gibt zwar den<br />

Link [4] an, dort finden Interessenten<br />

die Kgraft-gepatchte Version des gerade<br />

aktuellen Suse-Kernels – aber nur im<br />

Quelltext, ausführliche Anleitungen sind<br />

nicht zu entdecken (Abbildung 4). Bei<br />

dem durchaus nicht trivialen Vorgang, einem<br />

Open-Suse-System per Selbstbau das<br />

Hirn auszutauschen, bleibt der Admin<br />

also zunächst auf sich gestellt.<br />

Wer die Dokumentation gefunden hat,<br />

startet eine wahre Bastel-Orgie: Nach einem<br />

Git-Checkout des Repository vom<br />

Entwickler Jiri Slaby steht das Kompilieren<br />

des Quelltextes an. Suse beschreibt<br />

in einem eigenen Blogeintrag unter [5],<br />

wie sich ein Kernel nach Suse-Manier<br />

herstellen lässt, trivial ist der Tausch des<br />

Kerns dennoch nicht.<br />

Und selbst im Anschluss an den erfolgreichen<br />

Start eines Selbstbau-Kernels<br />

sind die Strapazen noch nicht zu Ende.<br />

Denn ähnlich wie bei Kpatch obliegt es<br />

anschließend dem User selbst, mit Hilfe<br />

verschiedener Skripte von Slaby die passenden<br />

Moduldateien zu bauen. Am<br />

Ende des Vorgangs darf er diese in den<br />

Kernel laden.<br />

Es würde diesen Artikel sprengen, eine<br />

detaillierte Erklärung der benötigten<br />

Schritte bis zum einsatzbereiten Kgraft-<br />

System abzuliefern; wer sich für Details<br />

interessiert, inspiziert das genannte<br />

Repository von Jiri Slaby.<br />

Gleichgemacht<br />

Die Idee, Kernelpflaster on the Fly anzuwenden<br />

und nicht das Booten eines<br />

neuen Kernels zu verlangen, ist prinzipiell<br />

großartig. Denn während sich der<br />

Aufwand bei einzelnen Systemen noch<br />

in Grenzen hält, ist das koordinierte Rebooten<br />

von Hunderten oder Tausenden<br />

Nodes in großen Installationen ein Kraftakt.<br />

Da kommt es gerede recht, wenn sich<br />

eine Korrektur im laufenden Betrieb und<br />

Kernel-Patcher 07/2014<br />

Sysadmin<br />

www.linux-magazin.de<br />

67


Sysadmin<br />

www.linux-magazin.de Kernel-Patcher 07/2014<br />

68<br />

Abbildung 3: Auch Kgraft von Suse erlaubt das Laden einzelner Patches in den Kern zur Laufzeit. Doch die<br />

Einstiegshürden sind wesentlich höher.<br />

ohne großes Aufsehen installieren lässt.<br />

Bis die Technik tatsächlich beim Endanwender<br />

ankommt, wird es aber dauern.<br />

Und derzeit ist ja noch komplett unklar,<br />

wohin die Reise überhaupt geht.<br />

Vorteil Red Hat<br />

Für die Red-Hat-Lösung lassen sich gegenüber<br />

der Suse-Idee Vorteile ausmachen.<br />

Dass man den Kernel nicht patchen<br />

muss, um Live-Patches möglich zu<br />

machen, ist sicher hilfreich. Auch das<br />

Abfangen eventueller Fehler scheint bei<br />

Kpatch derzeit besser zu funktionieren,<br />

als es bei Kgraft der Fall ist.<br />

Rein äußerlich tun beide Lösungen allerdings<br />

das Gleiche, wer sich nicht mit<br />

der Thematik beschäftigt, dem fallen die<br />

Unterschiede nur bei der Bedienung auf<br />

oder bei der Installation, die bei Kpatch<br />

um vieles leichter als bei Kgraft und viel<br />

besser dokumentiert ist.<br />

Wie immer stellt sich bei Kernel-bezogenen<br />

Features freilich die Frage, wie es mit<br />

den Lösungen weitergeht. Suse wie auch<br />

Red Hat haben angekündigt, ihre Live-<br />

Patch-Lösung in absehbarer Zeit zum Bestandteil<br />

des offiziellen Kernels machen<br />

zu wollen. Damit das klappt, müssen sie<br />

allerdings das Plazet von Linus Torvalds<br />

haben, der sich in der Vergangenheit<br />

immer wieder als Kernel-Zerberus einen<br />

Namen gemacht hat.<br />

Auch ist bekannt, dass Torvalds wenig<br />

begeistert davon ist, in <strong>Linux</strong> mehrere<br />

Implementierungen für gleiche oder sehr<br />

ähnliche Features zu haben. Dass er<br />

Kgraft und Kpatch gleichermaßen durchwinkt,<br />

scheint eher unwahrscheinlich.<br />

Was wird passieren? Denkbar scheint,<br />

dass eine der zwei Lösungen sich durchsetzt<br />

und die andere verdrängt. Oder dass<br />

Torvalds auf ein Joint-Venture drängt und<br />

so eine dritte Lösung entsteht, die Vorteile<br />

beider Systeme kombiniert.<br />

Wer Kpatch oder Kgraft bereits jetzt<br />

ausprobieren will, findet weder in der<br />

Community-Version Open Suse noch in<br />

Fedora passende Pakete, es ist also im<br />

Augenblick noch massive Handarbeit angesagt<br />

– bei Suse deutlich mehr als bei<br />

Fedora. (mfe)<br />

n<br />

Infos<br />

[1] Ksplice: [https:// www. ksplice. com/]<br />

[2] Kpatch: [http:// rhelblog. redhat. com/ 2014/​<br />

02/ 26/ Kpatch/]<br />

[3] Kgraft: [https:// www. suse. com/ promo/​<br />

kgraft. html]<br />

[4] Kgraft-Tree: [https:// git. kernel. org/ cgit/​<br />

linux/ kernel/ git/ jirislaby/ kgraft. git/]<br />

[5] Suses Kernel-Howto: [https:// www. suse.​<br />

com/ communities/ conversations/ compiling<br />

‐de‐linux‐kernel‐suse‐way/]<br />

Der Autor<br />

Martin Gerhard Loschwitz<br />

arbeitet als Principal Consultant<br />

bei Hastexo. Er beschäftigt<br />

sich dort intensiv mit<br />

den Themen HA, Distributed<br />

Storage und Open Stack. In<br />

seiner Freizeit pflegt er den Clustermanager<br />

Pacemaker für Debian.<br />

Abbildung 4: Suse stellt den Kgraft-Tree bereit, liefert aber praktisch keine Dokumentation mit, die dem<br />

Admin verrät, was er damit tun soll. Am Ende ist viel Handarbeit angesagt.


Sysadmin<br />

www.linux-magazin.de Pinger 07/2014<br />

70<br />

Hochauflösende Netzwerküberwachung mit Pings<br />

Mit der Stoppuhr<br />

Die Round Trip Time (RTT) von Pings verlängert sich, wenn die Pakete Netzwerkgeräte oder lange Leitungen<br />

durchlaufen. Der Autor zeigt mit Messreihen und einem eigenen Programm, wie er damit Switches und transparente<br />

Bridges aufspürt und Kabellängen ermittelt. Rolf Freitag<br />

© Sergey Jarochkin, 123RF.com<br />

Das Ping-Kommando ist jedem <strong>Linux</strong>-<br />

Anwender vertraut. Er verwendet es, um<br />

festzustellen, ob ein bestimmter Host im<br />

Netzwerk erreichbar ist und mit welcher<br />

Paketumlaufzeit, meist Round Trip Time<br />

(RTT) genannt. Gebräuchliche Ping-Programme<br />

unter <strong>Linux</strong> wie das aus dem<br />

Iputils-Paket [1] erstellen auch Statistiken<br />

mit dem RTT-Mittelwert. Allerdings<br />

schwankt dabei der Mittelwert von Tausenden<br />

Pings so stark, dass man allein<br />

damit keine Hochauflösung im Rahmen<br />

von wenigen Mikrosekunden bis Nanosekunden<br />

erhalten kann.<br />

Dabei sind diese Feinheiten interessant,<br />

um das Netzwerk und die Geräte darin<br />

zu erkunden. Hier hilft die fachgerechte<br />

Auswertung, also das Ausfiltern<br />

von RTT-Ausreißern vor der Mittelwertberechnung,<br />

um eine Auflösung von<br />

unter einer Mikrosekunde zu erhalten.<br />

Daneben bieten einige Ping-Programme<br />

zusätzliche Features, die meist ungenutzt<br />

bleiben, beispielsweise die Möglichkeit,<br />

ein Bitmuster im Ping-Paket zu schicken<br />

und damit auch Data Rot (Datenfäule)<br />

festzustellen, also die Beschädigung von<br />

Daten im Netzwerk.<br />

Der Artikel beschäftigt sich mit dem klassischen<br />

ICMP-Ping mit IPv4. Das meiste<br />

lässt sich aber auch auf andere Pings wie<br />

Arping [2], Httping [3] und Ipmiping<br />

[4] übertragen – im Grunde auf alles,<br />

was eine RTT ergibt, etwa der Download<br />

einer kleinen Datei mit Wget oder die Zeit<br />

für das Auslesen des USB-Registers eines<br />

USB-Adapters.<br />

Störenfriede<br />

Pingen im Gigabit-LAN liefert mehrheitlich<br />

annähernd Gauß-verteilte RTT-Messwerte,<br />

die vorwiegend um 200 Mikrosekunden<br />

liegen. Daneben treten aber<br />

einige Ausreißer mit sehr viel höheren<br />

Werten zu Tage, die den Mittelwert ver-<br />

schieben. Listing 1 zeigt ein Beispiel mit<br />

nur einem Ausreißer bei 100 Messwerten.<br />

Es stammt vom Pingen zwischen<br />

zwei vier Jahre alten PCs, der eine unter<br />

Debian mit Kernel 3.1.0-1-amd64, der andere<br />

unter Ubuntu mit Kernel 3.5.0-18-generic<br />

sowie von einem Gigabit-Switch<br />

zwischen den Rechnern.<br />

Ein einzelner Ausreißer verschiebt hier<br />

den Mittelwert »avg« um über 1000 Prozent,<br />

von rund 0,2 auf über 5 Millisekunden.<br />

Wie mehrere Messungen zeigen,<br />

schwanken die RTT-Mittelwerte auch<br />

dann noch stark, wenn man die Anzahl<br />

der Pings (n) auf mehrere Tausend erhöht.<br />

Das geschieht, weil die Ausreißer<br />

nicht nur relativ groß sind, sondern zusätzlich<br />

so stark streuen, dass der Mittelwert<br />

auch bei n = 86 400 um zirka 50<br />

Prozent variiert.<br />

Diese extrem hohen Ausreißer würden<br />

bei einem Pendel mit einer Schwingungsdauer<br />

von rund 1 Sekunde (Sekundenpendel)<br />

bedeuten, dass es zu 99<br />

Prozent wirklich etwa eine Sekunde pro<br />

Schwingung benötigt, aber gelegentlich<br />

so extrem abbremst, dass es für eine<br />

Schwingung eine ganze Stunde oder länger<br />

braucht.<br />

Hochpassfilter<br />

Angesichts dessen liegt es nahe, einen<br />

Störfilter einzusetzen, der solche extremen<br />

Werte aussortiert. Der übliche Ansatz,<br />

den manche noch aus dem Physik-<br />

Praktikum an der Uni kennen, besteht<br />

darin, in erster Näherung eine Gaußverteilung<br />

der RTT-Messwerte (RTT) anzunehmen<br />

und jene Werte zu verwerfen,<br />

die vom Mittelwert (ohne Ausreißer)<br />

mehr als 3 * Sigma entfernt sind. Da sich<br />

solche Ausreißer nach unten hin nicht


Abbildung 1: Experimentell bestimmte RTT-Mittelwerte. Der Abfall (links) trat<br />

auf, als ein Gigabit-Switch durch ein Stück Adapter ersetzt wurde.<br />

zeigen und sie zudem aufgrund der geringen<br />

Größe einen geringen Einfluss hätten,<br />

braucht man nur die Ausreißer nach<br />

oben abzuschneiden, nimmt also eine<br />

Hochpass-Filterung vor.<br />

Da das Ping-Kommando aus dem Paket<br />

Iputils die Standardabweichung Sigma<br />

im Feld »mdev« liefert, genügen wenige<br />

Messungen mit jeweils ein paar Dutzend<br />

Pings ohne Ausreißer, um Sigma per<br />

Kommandozeile zu erhalten.<br />

Im verwendeten Gigabit-LAN mit einem<br />

Switch, an den mehrere Rechner angeschlossen<br />

sind, zeigte sich ein Sigma um<br />

45 Mikrosekunden. Damit empfiehlt sich<br />

das Ausfiltern von Werten oberhalb 200<br />

+ 3 * 45, also von 335 Mikrosekunden.<br />

In der Praxis sollte man zur Sicherheit<br />

etwas aufrunden, denn auch danach werden<br />

die meisten Ausreißer, die ja typisch<br />

im Bereich mehrerer 100 Millisekunden<br />

bis Sekunden liegen, noch ausgefiltert.<br />

Im Beispiel wären 400 Mikrosekunden<br />

eine gute Wahl, also das Doppelte des<br />

Mittelwerts ohne Ausreißer.<br />

Diesen Abschneide-Wert (Cut-off) kann<br />

man auch automatisch ermitteln lassen<br />

– mittels Ausreißer-Tests oder dem<br />

Bestimmen des Werts mit der höchsten<br />

Dichte der RTT – und diesen einfach mit<br />

2 multiplizieren. So etwas kann ein Programm<br />

mit einer kurzen Aufwärmphase<br />

vor der eigentlichen Messung automatisch<br />

erledigen.<br />

Nach dieser Rauschfilterung zeigt sich,<br />

dass der mittlere Fehler des Mittelwerts<br />

ungefähr Sigma dividiert durch die Quadratwurzel<br />

von n beträgt, wie bei einer<br />

Gaußverteilung zu erwarten. Dadurch<br />

wird der mittlere Fehler des Mittelwerts<br />

mit wachsendem n kleiner, bei n = 100<br />

um den Faktor 10,<br />

bei n = 10 6 um<br />

den Faktor 1000<br />

und so weiter.<br />

Für die RTT in dem<br />

gemessenen Gigabit-LAN<br />

bedeutet<br />

das, dass man sie<br />

mit einer Standardabweichung<br />

von<br />

4,5 Mikrosekunden<br />

be ziehungsweise<br />

45 Nanosekunden<br />

erhält. Die<br />

Messung ist also<br />

so hoch aufgelöst,<br />

dass sie einen zwischengeschalteten<br />

Switch oder auch ein längeres oder kürzeres<br />

Netzwerkkabel registriert.<br />

Das Programm Pinger<br />

Um diese Beobachtungen in der Praxis<br />

für die Langzeitüberwachung von Netzwerkverbindungen<br />

einzusetzen, hat der<br />

Autor das Kommandozeilen-Programm<br />

Pinger [5] geschrieben. Es ruft das auf<br />

dem System installierte Ping-Executable<br />

auf, und zwar in der aktuellen Version<br />

nur einmal pro Sekunde.<br />

Damit erreicht es im Gigabit-LAN mit dem<br />

RTT-Tagesmittel eine normalerweise ausreichende<br />

Auflösung von (bis herab zu)<br />

153 Nanosekunden, was rund 15 Metern<br />

Kabellänge entspricht. Das 1000-Sekunden-Mittel<br />

bietet eine Auflösung von (bis<br />

herab zu) 1,5 Mikrosekunden, entsprechend<br />

einem Zwanzigstel der zusätzlichen<br />

Latenz durch einen Gigabit-Switch.<br />

Zum Überwachen von 1000 Verbindungen<br />

mit 28 Byte großen Pings braucht<br />

das C-Programm nur 2 * 28 KByte/​s<br />

Bandbreite. Für eine höhere Auflösung<br />

kann der Anwender Pinger im Quelltext<br />

anpassen und schneller pingen lassen,<br />

beispielsweise jede Millisekunde.<br />

Listing 1: Ping über Gigabit-Switch<br />

01 [...]<br />

Das Programm besteht aus einem Main-<br />

Thread, der zehn Threads startet, die in<br />

jeweils einer anderen Sekunde einen Ping<br />

abschicken und auswerten. Dazu kommen<br />

ein paar Funktionen zur Auswertung<br />

und Ausgabe. Damit sich die Pings nicht<br />

verfälschen lassen, füllt das Programm<br />

sie jeweils mit einer 128 Bit langen Zufallszahl.<br />

Zudem sind sie mit dem »don’t<br />

fragment«-Flag versehen, damit Ping sie<br />

am Stück als Paket verschickt.<br />

Geglättet<br />

Pinger gibt in der aktuellen Version nur<br />

die exponentiell gleitenden Mittelwerte<br />

aus. Verglichen mit den arithmetischen<br />

Mittelwerten, also denen der n letzten<br />

Messwerte, erreicht man dadurch eine<br />

wesentlich kürzere Verzögerung bei gleicher<br />

Glättung oder umgekehrt bei gleicher<br />

Verzögerung wesentlich bessere Glättung.<br />

Der Nachteil ist, dass die exponentielle<br />

Glättung alte Werte noch längere Zeit –<br />

exponentiell abklingend – mitschleppt,<br />

während die arithmetischen Mittelwerte<br />

die alten Werte nach n Messungen nicht<br />

mehr berücksichtigen.<br />

Um kurzzeitige, mittelzeitige und langzeitige<br />

Änderungen bei der RTT und den<br />

Rückgabewerten von Ping sichtbar zu<br />

machen, erfolgt die Mittelung mit den<br />

Glättungsfaktoren 0,1 und 0,001 sowie<br />

1/​86 400 für (exponentielle) 10-Sekunden-Mittel,<br />

1000-Sekunden-Mittel und<br />

Tagesmittel. Wer möchte, kann daraus<br />

auch weitere Parameter berechnen, beispielsweise<br />

die Standardabweichung und<br />

andere Momente der Verteilungsfunktion,<br />

auf Wunsch auch geglättet.<br />

Programmstart<br />

02 64 bytes from 192.168.1.1: icmp_req=63 ttl=64 time=0.232 ms<br />

03 64 bytes from 192.168.1.1: icmp_req=64 ttl=64 time=0.158 ms<br />

04 64 bytes from 192.168.1.1: icmp_req=65 ttl=64 time=508 ms<br />

05 64 bytes from 192.168.1.1: icmp_req=66 ttl=64 time=0.204 ms<br />

06 64 bytes from 192.168.1.1: icmp_req=67 ttl=64 time=0.166 ms<br />

07 ‐‐‐ 192.168.1.1 ping statistics ‐‐‐<br />

Der Pinger-Quelltext [5] lässt sich mit<br />

der Kommandozeile aus Listing 2 in<br />

das Executable »pinger« übersetzen. Der<br />

08 100 packets transmitted, 100 received, 0% packet loss, time 98998ms<br />

09 rtt min/avg/max/mdev = 0.097/5.297/508.262/50.549 ms<br />

www.linux-magazin.de<br />

Pinger 07/2014<br />

Pinger<br />

71


Sysadmin<br />

www.linux-magazin.de Pinger 07/2014<br />

72<br />

Anwender startet das resultierende Programm<br />

als Root, um hohe Priorisierung<br />

zu erhalten. Es nimmt drei Parameter<br />

entgegen: die IP des Zielrechners, die<br />

Abschneide-RTT in Nanosekunden und<br />

die Netto-Ping-Größe in Byte:<br />

./pinger 192.168.1.1 400000 16<br />

Das Programm schreibt die Laufzeiten<br />

in »rtt*«-Dateien, die Return-Werte der<br />

Pings zur Fehlersuche in »retval*«-Dateien<br />

im Arbeitsverzeichnis. Zum Auswerten<br />

in Form eines 2-D-Plots dient das<br />

Gnuplot-Skript »plotting3.sh« [5]:<br />

./plotting3.sh rtt_10s_16B_192.168.1.1.txtU<br />

| gnuplot<br />

Es aktualisiert die Anzeige sekündlich,<br />

sodass man eine laufende Messung auch<br />

live verfolgen kann.<br />

Rückgabewerte<br />

Das Ping-Kommando liefert neben der<br />

RTT auch einen Rückgabewert, und der<br />

nimmt allerhand Werte an, weil Pong,<br />

die Antwort auf das Ping, verschiedene<br />

Nachrichten enthalten kann. Von A für<br />

»communication with destination network<br />

administratively prohibited« bis<br />

Z für »communication with destination<br />

host administratively prohibited«. Zudem<br />

gibt es weitere Fälle wie beschädigte Daten<br />

und ICMP-Fehlermeldungen.<br />

Die Ping-Programme unterscheiden die<br />

Fälle aber leider nicht besonders, sodass<br />

auch die ganz brauchbare Version aus<br />

dem Iputils-Paket nur drei verwendet,<br />

wie in der Manpage nachzulesen ist:<br />

„Empfängt Ping gar keine Antwortpakete,<br />

terminiert es mit Code 1. Bei anderen<br />

Fehlern terminiert es mit Code 2. In allen<br />

anderen Fällen beendet es sich mit dem<br />

Code 0.“<br />

Da gibt es noch Optimierungspotenzial,<br />

denn wenn ein Fehler auftritt, möchte<br />

der Anwender zumindest die Fehlerart<br />

Listing 2: Pinger kompilieren<br />

01 gcc ‐D_REENTRANT ‐Wall ‐O3 ‐lm ‐pthread ‐o pinger<br />

pinger.c && strip pinger<br />

Listing 3: Kernelmeldungen<br />

01 $ dmesg | grep ‐i eth | grep ‐i down<br />

02 [1394543.075998] e1000e: eth0 NIC Link is Down<br />

als Rückgabewert genannt bekommen.<br />

Kurz gefasst liefert das Iputils-Ping den<br />

Code 1 bei einem Timeout oder Verlust,<br />

2 bei allen anderen Fehlern und 0, wenn<br />

das Ping ohne Fehler zurückkam. Darum<br />

lassen sich verloren gegangene Pings,<br />

etwa durch Leitungsunterbrechungen,<br />

am Rückgabewert 1 erkennen und andere<br />

Fehler an 2.<br />

In der Praxis zeigen sich aber Abweichungen<br />

davon: Ist etwa das Netzwerk<br />

des Zielrechners nicht erreichbar, meldet<br />

Ping »Network is unreachable« und<br />

gibt als Rückgabewert 2 aus. Damit kann<br />

der Benutzer Leitungsunterbrechungen<br />

nicht richtig von anderen Fehlern unterscheiden,<br />

aber Unterbrechungen, beispielsweise<br />

zum Zwischenschalten von<br />

Spionageboxen, bewirken in jedem Fall<br />

einen Rückgabewert ungleich Null.<br />

Erfolgsquote<br />

Das Programm Pinger erstellt deshalb zu<br />

den Rückgabewerten ebenso wie zu den<br />

RTTs exponentiell gleitende Mittelwerte<br />

in der Einheit Prozent, sodass der Rückgabewert<br />

0 normalerweise nahe 100 liegt<br />

und die Codes 1 oder 2 bei Fehlern wie<br />

Leitungsunterbrechungen deutlich über<br />

0 ansteigen. Ein Vorteil gegenüber der<br />

Überwachung mit den üblichen Monitoring-Programmen<br />

wie etwa MRTG [6] ist,<br />

dass Pinger die Werte sekündlich ermittelt,<br />

während MRTG & Co. sie üblicherweise<br />

nur alle 5 Minuten (300 Sekunden)<br />

messen.<br />

Abgesehen davon kann der <strong>Linux</strong>er<br />

Leitungsunterbrechungen am lokalen<br />

Rechner anhand der Kernelmeldungen<br />

nachvollziehen, wie Listing 3 zeigt. Den<br />

aktuellen Status bei Ethernet erhält er mit<br />

dem Programm »ethtool«.<br />

Ähnlich verhält es sich es bei anderen<br />

Rechnerkomponenten, beispielsweise bei<br />

der Tastatur, zu der es unter anderem das<br />

Timeout-Flag »0x40« auf Port »0x64« gibt<br />

– auch bei PS/​2-Tastaturen, zu denen der<br />

Kernel keine Meldungen liefert.<br />

Elektrisches<br />

Wünschenswert wären neben diesen<br />

Informationen auch elektrische Daten,<br />

denn mit ihnen kann der Netzwerk-Admin<br />

nicht selten auch passives Leitungsanzapfen<br />

aufspüren oder Leitungsunterbrechungen<br />

genauer lokalisieren. Nur<br />

die wenigsten Netzwerkgeräte stellen<br />

sie allerdings zur Verfügung. Nur einzelne<br />

Karten mit Marvell-Chip können<br />

mit spezieller Software wie dem Marvell<br />

Virtual Cable Tester einige elektrische<br />

Daten liefern, aber die Ausgaben sind<br />

nicht sehr detailliert, sondern von der Art<br />

»Gut (Link established)«, »Fehlanpassung<br />

(Impedance Mismatch)« oder »Leitungsbruch<br />

in n Metern Entfernung« (auf zirka<br />

1 Meter genau).<br />

Etwas mehr zeigt die 3Com Advanced<br />

Server Control Suite zu Netzwerkkarten<br />

wie der 3Com 3C996B, zum Beispiel die<br />

Frequenzabhängigkeit der Kabeldämpfung<br />

sowie der Rückflussdämpfung,<br />

sodass man damit auch kleine Manipulationen<br />

wie den Austausch eines Kabels<br />

durch ein anderes gleicher Länge,<br />

aber mit anderen Eigenschaften, auch im<br />

Nachhinein nachweisen kann.<br />

Switch oder Bridge<br />

aufspüren<br />

Pinger lässt sich in der Praxis beispielsweise<br />

einsetzen, um einen Switch oder<br />

eine transparente Bridge im Gigabit-LAN<br />

aufzuspüren. Ein solches Gerät ist im<br />

Netzwerk kaum bemerkbar, weil es die<br />

Datenpakete beim Durchleiten nicht verändert.<br />

Dennoch könnte ein Angreifer<br />

damit den Datenverkehr mitschneiden<br />

(kopieren), auswerten oder manipulieren.<br />

Ein reines Mithören bleibt anhand<br />

der Daten unerkannt.<br />

Allerdings gibt es zu Daten im Netzwerk<br />

auch Metadaten wie die Latenz einer<br />

Verbindung, und ein Switch bedeutet zusätzliche<br />

Latenz: Er ist ein Verzögerungsglied<br />

mit einer Verzögerung, die mit der<br />

Paketgröße steigt. Der Grund ist, dass er<br />

ein Datenpaket erst nach vollständigem<br />

Empfangen und Verarbeiten weiterleitet,<br />

sodass zumindest die Paketempfangszeit<br />

als längere Laufzeit erkennbar wird. Theoretisch<br />

sollte man daher mit möglichst<br />

großen und unfragmentierten Datenpaketen<br />

überwachen. In der Praxis hat sich<br />

erwiesen, dass meist schon 44 Byte große<br />

Pings genügen, wie ein Test in einem<br />

Gigabit-LAN mit Switch zeigt.<br />

Abbildung 1 visualisiert die RTT zwischen<br />

zwei <strong>Linux</strong>-PCs. Anfänglich befindet<br />

sich zwischen den Rechnern ein<br />

Gigabit-Switch vom Typ D-Link DGS-


Pinger 07/2014<br />

Pinger<br />

G Abbildung 2: Größere Ping-Pakete offenbaren auch bei schnellen Switches<br />

bemerkbare Laufzeitverlängerungen.<br />

www.linux-magazin.de<br />

73<br />

E Abbildung 3: Die zwei kleinen und der große Gigabit-Switch in der unteren<br />

Bildhälfte bewirken um rund 20 Mikrosekunden längere RTTs, das blaue 50-Meter-<br />

Kabel 500 Nanosekunden, das schwarze 0,5-Meter-Kabel 5 Nanosekunden und<br />

der 4 Zentimeter lange Adapter 0,2 Nanosekunden längere Laufzeiten.<br />

1008D. Am Nachmittag wird er entfernt<br />

und durch einen nur 4 Zentimeter langen<br />

Adapter ersetzt. Im Diagramm sind<br />

über der Zeit die RTTs der sekündlichen<br />

Pings (in Millisekunden) aufgetragen,<br />

nach exponentieller Glättung mit dem<br />

Glättungsfaktor 0,001, was rund 1000<br />

Sekunden-Mittelwerten entspricht. Das<br />

Fehlen des Gigabit-Switch ist an den 30<br />

Mikrosekunden kürzeren RTTs klar zu<br />

erkennen. Dafür sind schon die tausend<br />

Pings ausreichend, die im Normalbetrieb<br />

im Hintergrund ablaufen.<br />

Kurz vor 12 Uhr am Folgetag ersetzt der<br />

Autor den Adapter durch einen Netgear-<br />

Switch GS105, der die RTT schlagartig um<br />

mehr als 20 Mikrosekunden erhöht. Der<br />

Switch TP-Link TL-SG1024 dagegen zeigt<br />

im Vergleich zum Verlängerungsadapter<br />

keinen signifikanten Unterschied in der<br />

RTT, zumindest bei den 1000-Sekunden-<br />

Mittelwerten der ersten Stunden. Danach<br />

zeigt sich nur ein Anstieg um 15 Mikrosekunden.<br />

Das bedeutet, dass dieser Switch anfänglich<br />

dem theoretischen Limit von 352 Nanosekunden<br />

Paketempfangszeit deutlich<br />

näher ist als die anderen. Hier schwanken<br />

die RTTs nur um einige Mikrosekunden,<br />

größere Ping-Pakete könnten deutlichere<br />

Ergebnisse liefern. Man benötigt aber<br />

keine Jumbo-Frames und riesige Pings,<br />

denn bereits Pings mit einer Größe von<br />

1500 Byte erweisen sich als ausreichend.<br />

Damit beträgt die Paketempfangszeit<br />

leicht messbare 12 Mikrosekunden. Die<br />

RTT-Differenz beträgt 32 Mikrosekunden,<br />

eine Änderung von 228 Mikrosekunden<br />

auf 260 Mikrosekunden, wie die Abbildung<br />

2 zeigt.<br />

Bei genauerer Betrachtung offenbart<br />

Abbildung 1 auch einen tageszeitlichen<br />

Rhythmus, weil die RTT mit dem Load<br />

Average der beteiligten Rechner und der<br />

Netzwerkauslastung ansteigt. Beispiels-


Sysadmin<br />

www.linux-magazin.de Pinger 07/2014<br />

74<br />

Abbildung 4: Ein rund 50 Meter längeres Ethernet-Kabel macht sich als Berg in<br />

der RTT-Kurve bemerkbar.<br />

thode besteht darin,<br />

Differenzmessungen<br />

durchzuführen,<br />

das heißt,<br />

über zwei verschiedene<br />

Verbindungen<br />

zu pingen<br />

und die Dif ferenzen<br />

der RTT-<br />

Mittelwerte auszuwerten.<br />

Kabellängen<br />

Mit Laufzeitanalysen<br />

lassen sich<br />

auch unterschiedliche Leitungslängen<br />

aufspüren. Datenkabel, egal ob aus Kupfer<br />

oder Glasfaser, sind stets Verzögerungsleitungen,<br />

in denen die Signale pro<br />

Nanosekunde rund 20 Zentimeter zurücklegen.<br />

Für die RTT, also die Summe<br />

aus Hin- und Rückweg, ergibt das eine<br />

Verzögerung von etwa 10 Nanosekunden<br />

pro Meter, also für ein 50 Meter langes<br />

Kabel eine halbe Mikrosekunde.<br />

Das ist viel weniger Latenz als durch<br />

einen Gigabit-Switch und zudem unabhängig<br />

von der Paketgröße, aber noch<br />

im Rahmen des Messbaren. Sekündliches<br />

Pingen kann anhand des Tagesmittels<br />

eine auf zirka 50 Meter genaue Lokalisierung<br />

vornehmen. Abbildung 3 zeigt die<br />

besprochenen Netzwerkkomponenten im<br />

Überblick.<br />

Die Werte in Abbildung 4 verdeutlichen<br />

allerdings, dass die Schwankung der Tagesmittelwerte<br />

praktisch ebenso groß ist<br />

wie die zusätzliche Latenz durch ein 50<br />

weise zeigt sich am letzten Messtag durch<br />

einen um 1 erhöhten Load Average auf<br />

einem der Rechner eine um 5 Mikrosekunden<br />

erhöhte RTT. Das Minimum liegt<br />

nachts zwischen 2 und 3 Uhr.<br />

Diese Einflüsse kann man zumindest in<br />

erster Näherung einfach rausrechnen, um<br />

die Netto-RTT bei einem Load Average<br />

und einer Netzwerkauslastung von 0 zu<br />

bestimmen und deutlich genauere Werte<br />

zu erhalten. Da sich bei nahezu gleichen<br />

Tagesabläufen auch nahezu gleiche<br />

Tagesmittel ergeben, kommt dieser Fall<br />

auch ohne solche Korrekturen aus, um<br />

eine hohe Auflösung zu erreichen. Das<br />

zeigt das nächste Beispiel.<br />

Es gibt übrigens noch Alternativen dazu,<br />

mehr Pings zu verwenden. Das Pingen<br />

mit Echtzeit-Threads, unter <strong>Linux</strong>-RT<br />

(Preemption ) mit weicher Echtzeit oder<br />

unter RTAI (Realtime Application Interface)<br />

mit harter Echtzeit, liefert ebenfalls<br />

höhere Auflösungen. Eine weitere Mestatt<br />

0,5 Meter langes Kabel. Aufgetragen<br />

ist hier die RTT in Mikrosekunden. Nach<br />

zwei Tagen hat der Autor das 0,5-Meter-<br />

Patchkabel durch ein 50 Meter langes<br />

ersetzt, das die RTT theoretisch um 0,5<br />

Mikrosekunden erhöht.<br />

Mit dem 49,5 Meter längeren Kabel zeigt<br />

sich daher eine um 0,5 Mikrosekunden<br />

erhöhte RTT. Für die ersten beiden Tage<br />

mit 0,5 Metern ergibt sich eine mittlere<br />

RTT von 172,877 Mikrosekunden, für die<br />

letzten beiden mit 50 Metern eine von<br />

173,562 Mikrosekunden, also um 685<br />

Nanosekunden mehr.<br />

Die Tagesmittelwerte schwanken deutlich,<br />

auch aufgrund der nicht konstanten<br />

Auslastung der Rechner und durch Dutzende<br />

Programme wie Ktorrent, Tor, I2P,<br />

GNU Net, Squid 3, DHCP, NTP, Kaffeine<br />

und Firefox. Der Nachweis solcher kleinen<br />

RTT-Änderungen bedarf der Mittelung<br />

mehrere Tagesmittel, wenn man nur<br />

sekündlich pingt.<br />

Da bei Ethernet ein Segment (Kollisionsdomäne)<br />

maximal 100 Meter lang sein<br />

darf und meist deutlich kürzere Segmente<br />

verwendet werden, sind in der Praxis zumindest<br />

100 Meter Auflösung problemlos<br />

erreichbar – schon mit 1000-Sekunden-<br />

Mittelwerten.<br />

Durch die Lüfte<br />

Beim WLAN sind die Messungen im<br />

Prinzip ebenso durchführbar wie im Gigabit-LAN.<br />

Allerdings zeigt sich bei der<br />

Mehrheit der WLAN-Router und Endgeräte<br />

das Problem, dass sie die Datenrate<br />

(Bandbreite) automatisch regeln, und<br />

Kommentar: Originell – aber praxistauglich?<br />

Jens-Christoph<br />

Brendel,<br />

Redakteur bei der<br />

Medialinx AG.<br />

Es ist ohne Zweifel eine originelle Idee, das Monitoring<br />

auf Ping-Laufzeiten zu gründen. Zudem<br />

wird die Idee vermutlich auch funktionieren – im<br />

Labor. In der Praxis scheinen sich aber doch ein<br />

paar Hürden aufzutürmen, die sicherlich nicht<br />

leicht übersprungen werden können. Welche<br />

Hürden sind das?<br />

Die Schwankungen in der Ping Roundtrip Time,<br />

die auf das Konto unterschiedlich ausgelasteter<br />

Server gehen, können durchaus größer sein als<br />

die Laufzeitunterschiede, die zum Beispiel ein<br />

eingeschmuggelter zusätzlicher Router verursachen<br />

würde. Das müsste zu Fehlalarmen führen<br />

– es sei denn, man setzt die Triggerschwelle<br />

so hoch an, dass nie mehr eine Auffälligkeit<br />

detektiert würde.<br />

Der Autor schlägt vor, die mittlere Serverauslastung<br />

herauszurechnen. Aber damit kommt man<br />

in gewissem Sinn vom Regen in die Traufe: Man<br />

subtrahiert dann von einer künstlich geglätteten<br />

Umlaufzeit (einer Art Mittelwert) einen<br />

anderen Mittelwert, nämlich den Durchschnitt<br />

des Tagesgangs der Lastkurve. Aber jeder Mittelwert<br />

vernichtet Information, in diesem Fall<br />

weil auch die Varianz unter den Tisch fiele. So<br />

ergibt sich ein stark idealisierter und viel zu<br />

enger Wertekorridor, der den in der Realität<br />

möglichen Ausprägungen nicht entspricht und<br />

mit etlichen Nachkommastellen bei der Zeitmessung<br />

eine Exaktheit vorspiegelt, die nicht<br />

gegeben ist.<br />

Hinzu kommt ein weiterer Aspekt: Das ICMP-<br />

Testprogramm Ping verrät nicht nur, ob ein<br />

Netzwerkgerät unter einer bestimmten Adresse<br />

erreichbar ist, sondern es erlaubt darüber hinaus<br />

eine Art Fingerprinting, das Rückschlüsse<br />

beispielsweise auf das Betriebssystem zulässt.<br />

Damit liefert es potenziellen Angreifern unter<br />

Umständen wertvolle Informationen. Administratoren,<br />

die diese nicht offenbaren möchten,<br />

verbieten ICMP-Echo-Replys per Firewallregel.<br />

Das schließt dann auch das im Artikel beschriebene<br />

Monitoring aus.


entsprechend schwankt auch die RTT.<br />

Bei den meisten Routern lässt sich das<br />

nicht abstellen, viele zeigen die Datenrate<br />

nicht einmal an. Unter <strong>Linux</strong> darf der<br />

Admin die Datenrate beim WLAN wie<br />

folgt einstellen:<br />

iwcofig wlan4 rate 24M fixed<br />

Das ändert aber nichts an der Rate des<br />

Routers. Es bleibt dem neugierigen<br />

Admin also nichts anderes übrig, als<br />

darauf zu achten, dass die vom Router<br />

angezeigte Rate während des Messens<br />

konstant bleibt.<br />

Der zweite Unterschied zum LAN liegt in<br />

der Signalgeschwindigkeit, die mit rund<br />

30 Zentimetern pro Nanosekunde um<br />

50 Prozent höher ist als im Kabel. Die<br />

gemessenen 1000-Sekunden-Mittelwerte<br />

lagen bei 0,7 Metern Distanz und mit<br />

zwei 30-dB-Abschwächern bei 0,985108<br />

Millisekunden, die aus 2,5 Kilometern<br />

Entfernung gemessenen bei 1,023676<br />

Millisekunden, also um 38,6 Mikrosekunden<br />

deutlich höher (Abbildung 5).<br />

Theoretisch sollte die Differenz nur 16,7<br />

Mikrosekunden betragen, also deutlich<br />

weniger. Hier sind offenbar noch andere<br />

Faktoren im Spiel, etwa vom Router nicht<br />

angezeigte Ratenschwankungen oder die<br />

Temperatur, denn diese lag bei 2,5 Kilometern<br />

Distanz um ‐2° C, während es bei<br />

0,7 Metern Distanz 20° C waren.<br />

Daneben hat der Autor auch getestet, ob<br />

er mit einem <strong>Linux</strong>-PC statt WLAN-Router<br />

und Ad-hoc-Modus ebenso messen<br />

kann. Hier ließen sich beide Senderaten<br />

festsetzen. Wider Erwarten zeigten<br />

sich dabei aber um den Faktor 4 stärkere<br />

Schwankungen als beim Pingen mit dem<br />

WLAN-Router.<br />

Schneller messen<br />

Wer nur kurze Messungen durchführen<br />

kann oder möchte, passt das Programm<br />

Pinger an, um entsprechend viele Pings<br />

pro Sekunde loszuschicken statt nur eines<br />

einzigen. Hierzu braucht er im Quelltext<br />

nur ein kleineres Zeitraster einzustellen,<br />

beispielsweise 1 Millisekunden für eine<br />

um den Faktor 32 höhere Genauigkeit,<br />

und entsprechend mehr Threads. Da die<br />

Zeiten der Threads eine Auflösung von<br />

einer Mikrosekunde haben, ist dafür jedoch<br />

nicht viel umzustellen.<br />

Neben dem Ansatz, Netzwerklatenzen<br />

mit Pings zu bestimmen, ist es auch<br />

möglich, Zeitstempel auszuwerten. Beim<br />

WLAN eignen sich die TSF-Zeitstempel,<br />

denn sie besitzen eine Auflösung von 1<br />

Mikrosekunde und sind sogar Jitter-frei.<br />

Allerdings ist nicht jede Hardwareplattform<br />

dafür geeignet [7].<br />

Ausblick<br />

Das Messen der Netzwerklatenz mit<br />

Pings zeigt, dass es hier noch einiges<br />

Potenzial gibt, das bisher erstaunlicherweise<br />

ungenutzt blieb. Angriffe wie das<br />

Mithören von Mobilfunk-Telefonaten mittels<br />

zwischengeschalteter IMSI-Catcher<br />

wären damit leicht, unauffällig und praktisch<br />

kostenlos aufspürbar, selbst wenn<br />

sie mit anderen Tools wie Traceroute<br />

nicht zu entdecken sind. Zudem kann<br />

man mit Pings eine grobe Lokalisierung<br />

durchführen oder umgekehrt Kabellängen<br />

bestimmen. Misst man die Abhängigkeit<br />

der RTT von der Paketlänge, lässt<br />

sich zwischen der Latenz durch Kabel<br />

oder Distanzen und der durch Geräte wie<br />

Switches unterscheiden.<br />

Im Prinzip können Angreifer Pings auch<br />

verfälschen, indem sie sie kopieren und<br />

mit gewünschter Verzögerung zurückschicken,<br />

oder sie filtern das Pong vom<br />

Zielrechner aus, um sich zu tarnen. Das<br />

ist aber wenig sinnvoll, da das Kopieren,<br />

Berechnen und Zurückschicken zusätzlichen<br />

Aufwand erfordert und es außerdem<br />

praktisch unmöglich ist, alle möglichen<br />

Arten von Pings zu manipulieren.<br />

Wer sich vor Fälschungen schützen<br />

möchte, könnte mit einem verschlüsselten<br />

Zeitstempel pingen. Auf dem Zielrechner<br />

speichert er Datum und Zeit verschlüsselt<br />

in der Datei »foo.bar«, überträgt sie mit<br />

einem Ping der Art<br />

time wget ftp://10.45.67.89/tmp/foo.bar<br />

und überprüft, ob sie mit dem richtigen<br />

Schlüssel verschlüsselt wurde und die<br />

aktuelle Zeit enthält. (mhu) n<br />

Infos<br />

[1] <strong>Linux</strong> Iputils:<br />

[http:// www. skbuff. net/ iputils/]<br />

[2] Arping: [http:// www. habets. pp. se/ synscan/​<br />

programs. php? prog=arping]<br />

[3] Httping:<br />

[http:// www. vanheusden. com/ httping]<br />

[4] Ipmiping:<br />

[http:// www. gnu. org/ software/ freeipmi/]<br />

[5] Pinger und Plotting-Skript: [https://​<br />

sslsites. de/ www. true‐random. com/​<br />

homepage/ projects/ pinger/]<br />

[6] MRTG: [http:// oss. oetiker. ch/ mrtg/]<br />

[7] Mario Haustein, „Lokalisierung durch Messung<br />

von WLAN-Signallaufzeiten“: Vortrag<br />

2011, [http:// chemnitzer. linux‐tage. de/​<br />

2011/ vortraege/ 653]<br />

www.linux-magazin.de<br />

Pinger 07/2014<br />

Pinger<br />

75<br />

Abbildung 5: RTT-Messung mit einem WLAN-Router neben einem blinkenden Headlight in 2,5 Kilometern<br />

Entfernung (Pfeil) und einer darauf gerichteten 50-Zentimeter-Yagi-Antenne.<br />

Der Autor<br />

Dr. Rolf Freitag ist Informatiker und promovierter<br />

Physiker. Derzeit arbeitet er bei einem kleinen<br />

Unternehmen in Neu-Ulm.


Hardware<br />

www.linux-magazin.de Linksys WRT 1900 AC 07/2014<br />

76<br />

Der Linksys WRT 1900 AC im Test<br />

Künftiger Klassiker?<br />

Der Linksys WRT 54 war einst Auslöser für das Open-WRT-Projekt, eine der ältesten und beliebtesten Mini-<br />

<strong>Linux</strong>-Embedded-Firmwares für VIA- und ARM-Router. Jetzt stellt Belkin den offiziellen Nachfolger vor, den WRT<br />

1900 AC. Für einen stolzen Preis bietet er moderne Hardware, aber schwache Firmware. Konstantin Agouros<br />

Nur wenige Geräte genießen unter <strong>Linux</strong>ern<br />

so eine Ausnahmestellung wie<br />

der altehrwürdig Linksys WRT 54 in all<br />

seinen Varianten. Zwölf Jahre nach der<br />

ersten Release 2002 bringt Belkin nun<br />

einen äußerlich recht ähnlich gehaltenen<br />

Nachfolger auf den Markt, dessen Innenleben<br />

viel zu bieten hat: Der Linksys<br />

WRT 1900 AC ist da.<br />

Vier Antennen, viermal LAN<br />

Wie beim WRT 54 handelt es sich bei<br />

dem Gerät um einen WLAN-Router mit<br />

vier LAN-Anschlüssen, einem Uplink<br />

und einem Webfrontend fürs WLAN<br />

(alle Details siehe Kasten „Hardware“).<br />

Doch im Gegensatz zum betagten Vorgänger<br />

rangiert der 1900er auf dem heutigen<br />

Stand der Technik, so sind etwa<br />

Gigabit-Ethernet, USB 3.0, E-SATA und<br />

aktuelle WLAN-Standards an Bord. Vom<br />

bewährten 802.11b- bis zum brandneuen<br />

802.11ac-Standard, der im 5-GHz-Band<br />

nominell mehr als 1 GBit/​s schnell sein<br />

soll, bietet der Kleine viel von dem, was<br />

das Anwenderherz begehrt.<br />

Wo schon der WRT 54 mit zwei Antennen<br />

für damalige Verhältnisse herausragende<br />

Sendeleistungen aufwies, legt Belkin jetzt<br />

noch zwei drauf und spendiert dem DIN<br />

A 4 großen Router vier schwenk- und<br />

drehbare Antennen, mit denen das Gerät<br />

sowohl im 2,4- als auch im 5-GHz Frequenzband<br />

sendet und empfängt.<br />

USB 3.0 und ein kombinierter USB-2.0-E-<br />

SATA-Anschluss machen den Router zum<br />

Medienserver mit fast beliebig viel Platz<br />

auf der Festplatte. Neu ist auch – man<br />

höre und staune – ein separater Ein- und<br />

Ausschalter, ein lange gehegter Wunsch<br />

aus der Community. Insgesamt ist das<br />

Gerät mit all der Technik breiter und etwa<br />

doppelt so schwer wie sein Vorgänger,<br />

der etwa DIN-A-5-Format-hatte.<br />

Der Admin kann das Gerät als Router<br />

mit statischer oder dynamischer IP am<br />

Internet, zum Beispiel hinter einem Ka-<br />

belmodem, oder im PPPoE-Modus als<br />

DSL-Router arbeiten lassen. Auch VPN<br />

ist bereits an Bord, doch – wie von vielen<br />

Herstellern gewohnt – nur als PPTP oder<br />

L2TP und IPsec-Passthrough. Wer mehr<br />

braucht, muss auf die freie Firmware<br />

Open WRT warten [1].<br />

Netzwerk-Konfiguration<br />

Bis dahin nutzt der Admin Belkins Firmware<br />

mit ihren fortgeschrittenen Konfigurationen:<br />

Will der Administrator<br />

WLAN und die Außenseite zu einem<br />

LAN-Segment verbinden, dann schaltet<br />

er den Router in den dafür vorgesehenen<br />

Bridgemodus oder er nutzt den 1900er als<br />

WLAN-Extender: In diesem Modus verbindet<br />

er sich (mit seinem dritten eingebauten<br />

Wifi-Adapter) mit einem weiteren<br />

WLAN und „bridget“ die eigenen SSIDs<br />

in dieses WLAN.<br />

Dabei ist es auch möglich, ein Funknetzwerk,<br />

das eigentlich nur 2,4 GHz<br />

anbietet, in beide Frequenzbereichen zu<br />

verlängern. Doch Vorsicht: Wer in diesem<br />

Szenario die auf MAC-Adressen basierende<br />

Zugriffsverwaltung nutzt, muss<br />

aufpassen und eventuell nacharbeiten.<br />

So haben wir getestet<br />

Um die Leistungsfähigkeit des Geräts zu<br />

bewerten, hat der Autor mit Iperf Tests am<br />

internen Switch, kabelgebunden von innen<br />

zu einem direkt verbundenen Rechner (außen)<br />

sowie von innen nach außen über die<br />

verschiedenen WLAN-Frequenzen und in verschiedenen<br />

Abständen durchgeführt.<br />

Die gerouteten Pakete ließ der Tester dabei<br />

mit NAT umsetzen. Um Reichweite und Beamforming<br />

zu testen, lief er dann mit laufendem<br />

Ping durch die Wohnung, um auch die Stellen<br />

einzubeziehen, die bei anderen Routern<br />

durch die Abwesenheit von WLAN glänzen.


Hardware: Linksys Dual Band Gigabit Wi-Fi Router 1900 AC<br />

Webseite des Herstellers: [http://store.linksys.com]<br />

Prozessor: 1,2 GHz, Doppelkern, ARM-basiert<br />

Speicher: 128 MByte Flash, 256 MByte DDR3-System-RAM<br />

Anschlüsse/​Schnittstellen: 1 Gigabit-WAN-Port, 4 Gigabit-LAN-Ports, 1 USB-3.0-Port, 1 E-SATA-​<br />

USB-2.0-Port<br />

Antennen: 4 externe, abnehmbare Dualband-Antennen<br />

Frequenzband: Simultanes Dualband, 2,4 GHz und 5 GHz<br />

WLAN-Support: 802.11b (bis zu 11 MBit/​s), 802.11a/​g (54 MBit/​s), 802.11n (2,4 GHz, 600 MBit/​s),<br />

802.11ac (5 GHz, 1,3 GBit/​s)<br />

Wireless-Verschlüsselung: 64-/​128-Bit-WEP-Verschlüsselung, WPA2-Personal, WPA2-Enterprise<br />

Sonstiges: Support für FAT, NFS, HFS+ auf USB-Medien (Ext nur read-only), UPnP, Samba, DLNA,<br />

FTP, Druckserver, Kinderschutz, DMZ, NAT, Portforwarding, Priorisierung, Ausschaltknopf<br />

VPN-Unterstützung: PPTP, L2TP, IPsec-Passthrough<br />

Maße: Gewicht 1,03 kg, Breite/Höhe/Tiefe 25 x 5 x 20 cm<br />

Netzteil: Eingang 100 bis 240 V, 50/​60 Hz, Ausgang 12 V mit 4 A<br />

Preis: ca. 280 Euro (in den USA 250 Dollar)<br />

Mit den vier verstellbaren Antennen<br />

strahlt das Gerät ganz ordentlich. Die<br />

Wohnung des Autors ist lang gezogen<br />

und in der Mitte befindet sich die Küche,<br />

in der ein nicht mehr ganz neuer Kühlschrank<br />

sehr störende elektrische Streustrahlung<br />

erzeugt, wenn der Motor des<br />

Kompressors anspringt. Das Netzwerkzentrum<br />

befindet sich in einem Raum direkt<br />

neben der Küche, damit bietet diese<br />

Umgebung erschwerte Bedingungen für<br />

einen WLAN-Router.<br />

WLAN-Empfang<br />

Ein echter Gigabit-Link kommt nur bei<br />

der 5-GHz-Frequenz zustande. Bei dickeren<br />

Wänden ist diese Verbindung<br />

allerdings nicht sehr stabil. Bei 10 Zentimetern<br />

Abstand zwischen Laptop und<br />

Router maß Iperf [2] satte 435 MBit/​s<br />

als Spitzenwert (siehe Kasten „So haben<br />

wir getestet“).<br />

Der eingebaute Switch erbrachte mit Iperf<br />

940 MBit/​s. Bis zu einer Entfernung von<br />

zirka 20 Zentimetern zwischen AC-Laptop<br />

und Accesspoint erzielten die Tester 435<br />

MBit/​s, wenn kein Hindernis zwischen<br />

die Geräte kam. Aber erwartungsgemäß<br />

reicht es, einmal um die Ecke zu gehen,<br />

schon sinkt die Übertragungsrate auf die<br />

Hälfte. Bei 2,4 GHz lag der Spitzenwert bei<br />

150 MBit/​s. Das alte Netbook des Autors<br />

mit Atom-CPU und USB-2-Anschlüssen<br />

brachte es mit dem bereitgestellten AC-<br />

Dongle von Linksys und dem Treiber unter<br />

[3] auch noch auf stolze 220 MBit/​s.<br />

Das ist mehr, als das im Gerät eingebaute<br />

100-MBit-Ethernet bieten kann.<br />

Eine weitere interessante Technologie,<br />

die das Gerät unterstützt, ist das Beamforming<br />

([4], Abbildung 1). Ohne eine<br />

Antenne zu bewegen, lässt sich so die<br />

Richtung von Signalen mit mehreren<br />

Antennen durch leichte Verschiebungen<br />

in den Frequenzen manipulieren, sodass<br />

eine konstruktive (verstärkende) Interferenz<br />

in der gewünschten Richtung herauskommt.<br />

Im Test zeigte sich das positiv<br />

bei der Begehung des WLAN: Die dem<br />

Autor wohlbekannten Funklöcher in der<br />

Wohnung hatten einen kurzen Aussetzer<br />

(oder eine hohe Round Trip Time) im<br />

Ping. Nachdem das Beamforming vollautomatisch<br />

nachzog, bewegte sich die<br />

Latenz wieder im vertretbaren Rahmen.<br />

Warten auf Open WRT<br />

Open WRT für dieses Gerät ist noch in<br />

Arbeit, Belkin-Mitarbeiter haben auch<br />

schon Komponenten<br />

beigesteuert,<br />

der Hersteller<br />

nennt das OSS-<br />

System auch auf<br />

seinen Datenblättern.<br />

Laut Aussage<br />

des Open-WRT-<br />

Projekts auf der<br />

Homepage entspricht<br />

die Software<br />

jedoch noch<br />

nicht seinen Qualitätsstandards,<br />

so<br />

konnte das <strong>Linux</strong>-<br />

<strong>Magazin</strong> diese<br />

Kombination noch ohne die Antennen zu bewegen.<br />

nicht testen. Daher blieb zunächst nur<br />

die Analyse der offiziellen Firmware (Update:<br />

Wenige Tage nach Redaktionschluss<br />

erschien die erste Open-WRT-Version für<br />

den WRT 1900 AC).<br />

Bei der Ersteinrichtung leitet die Firmware<br />

des Herstellers den Anwender durch<br />

einen Wizard, der sich aber auch jederzeit<br />

abbrechen lässt. Dem allgemeinen<br />

Trend folgend, bietet Linksys ein Cloudmanagement<br />

samt Konfigurations-App<br />

für gängige Mobiltelefone (Abbildung 2).<br />

Das von Belkin als Cloudmanagement<br />

beworbene Feature firmiert unter dem<br />

Namen „Linksys Smart Wi‐Fi“.<br />

Nach dem Login in der Firmware findet<br />

sich der Administrator vor der in Abbildung<br />

3 dargestellten Webseite. Sie präsentiert<br />

sich klassisch-schlicht: Auf der<br />

linken Seite steht die Navigation, im rechten<br />

Bereich stellt der Router beim Anklicken<br />

eines Eintrags die entsprechenden<br />

Inhalte dar. Der wichtigste Menüpunkt<br />

für die meisten Admins ist der dritte von<br />

unten »Konnektivität«. Er enthält alle<br />

Teile der Netzwerkkonfiguration außer<br />

den Funkparametern der WLANs.<br />

Weniger intuitiv ist die Tatsache, dass<br />

der Modus des Routers (Extender, Router,<br />

Bridge) unter dem Reiter »Interneteinstellungen«<br />

zu finden ist, der alle Parameter<br />

des externen Interface einstellt. Auch<br />

das Umsetzen des Router-Passworts und<br />

Firmware-Upgrades hätte der Autor nicht<br />

unter »Konnektivität«, sondern eher unter<br />

»Sicherheit« vermutet.<br />

Der »Netzwerk«-Bereich bietet dagegen<br />

keine Überraschungen. Das Gerät<br />

ist IPv6-fähig, was leider auch im Jahr<br />

2014 noch Erwähnung verdient. Auf der<br />

Abbildung 1: Beim Beamforming führen gezielte Phasenverschiebungen zu Interferenzen,<br />

die die effektive Signalstärke bei einem Ziel, etwa einem bestimmten<br />

Empfänger, verstärken. So lassen sich Räume leichter und besser ausleuchten,<br />

© Sybille Yates, 123RF<br />

Linksys WRT 1900 AC 07/2014<br />

Hardware<br />

www.linux-magazin.de<br />

77


Hardware<br />

www.linux-magazin.de Linksys WRT 1900 AC 07/2014<br />

78<br />

Abbildung 2: App muss sein – und Cloud erst recht:<br />

Belkin bietet auch eine App zur Konfiguration.<br />

LAN-Seite kann es DHCP-Server spielen,<br />

es ist möglich, Routen zu setzen, selbst<br />

dynamisches Routing darf der Admin mit<br />

dem betagten RIP-Protokoll anbieten oder<br />

auch externe und interne Interfaces auf<br />

VLANs mappen, was wohl den zunehmend<br />

komplizierter werdenden Heimnetzwerken<br />

Rechnung trägt.<br />

Fehleranzeige Fehlanzeige<br />

Im Bereich »Fehlerbehebung« enttäuscht<br />

die Firmware. Es gibt zwar Protokolle,<br />

aber keine Möglichkeit, einen externen<br />

Syslog-Server anzugeben, obwohl die<br />

Firmware mit dem enthaltenen Syslog<br />

das eigentlich könnte.<br />

Im WLAN-Bereich der Konfiguration können<br />

Admins das 2,4- und das 5-GHz-Netz<br />

getrennt konfigurieren. Selbst das gute<br />

alte WEP ist als Verschlüsselung dabei,<br />

aber auch WPA und WPA2 Enterprise mit<br />

Abbildung 3: Die Standard-Weboberfläche des Linksys WRT 1900 AC.<br />

Zertifikat-basierter Authentisierung gegen<br />

einen Radius-Server sind möglich. Unter<br />

diesem Menupunkt bietet der Router<br />

noch MAC-Filterung und ein WPS-Setup,<br />

nichts berauschend Neues also.<br />

Im Menüpunkt »Sicherheit« fasst der Router<br />

Firewalleinstellungen zusammen, die<br />

das Gerät selbst und das LAN schützen.<br />

Es ist hier auch möglich, einen internen<br />

Rechner als DMZ (die den Namen aber<br />

nicht verdient) freizuschalten oder eingehende<br />

Port-Weiterleitungen anzulegen.<br />

Zielgruppe Heimanwender<br />

Eine Funktion, die eher in den Homeserverbereich<br />

gehört, ist das Freigeben angeschlossener<br />

Speichermedien. Mit USB 3<br />

und E-SATA kann das Gerät hier gute Performance<br />

bereitstellen, wobei auch der<br />

vergleichsweise schnelle Prozessor hilft.<br />

Die Freigabe erfolgt über FTP, Samba<br />

oder einen DLNA-Server.<br />

Die Konfiguration ist relativ einfach, allerdings<br />

stellte sich das Gerät je nach angeschlossenem<br />

Dateisystem etwas merkwürdig<br />

an: Hat das Medium ein VFAT-<br />

Dateisystem, gibt es keine Probleme. Ext<br />

3 (in der Firmware tickt ja schließlich<br />

<strong>Linux</strong>) beherrscht der 1900er aber nur<br />

read-only. Das Gleiche gilt für Medien mit<br />

Apples HFS-Dateisystem.<br />

Außerdem sind eine Kinderschutzfunktion,<br />

die Zeitbeschränkungen oder Einschränkungen<br />

auf bestimmte Webseiten<br />

für ausgewählte Geräte erlaubt, ein Geschwindigkeitstest<br />

und eine Priorisierung<br />

für Medientraffic enthalten.<br />

Als letzte Funktion sei noch der Hotspot-<br />

Zugang genannt, bei dem Gäste über ein<br />

offenes WLAN erst an einem Webformular<br />

ihr Gerät mit einem Passwort freischalten<br />

müssen.<br />

Danach haben die<br />

Besucher Zugriff<br />

auf die Außenseite,<br />

also in der Regel<br />

das Internet.<br />

Die internen Anwender<br />

können so<br />

auch auf die Gastrechner<br />

zugreifen.<br />

Der IP-Adressenbereich<br />

der Gäste<br />

war im Test leider<br />

nicht näher konfigurierbar.<br />

Bei einer tieferen Analyse der in der Firmware<br />

installierten Pakete fiel auf, dass<br />

sie auch <strong>Linux</strong>-Komponenten enthält, die<br />

Anwender aus dem GUI heraus gar nicht<br />

konfigurieren können, etwa Open VPN<br />

oder Syslog. Das hat der Hersteller offensichtlich<br />

verbaut, ohne es seinen Kunden<br />

zugänglich machen zu wollen.<br />

Zwiegespalten: Hardware<br />

hui, Firmware pfui<br />

Hier zeigt sich das Hauptmanko des Geräts:<br />

Für einen Router dieser Preisklasse<br />

sind Benutzerführung und Ausstattung<br />

der Firmware eindeutig zu sehr an Endkunden<br />

orientiert. In diesem Preissegment<br />

gibt es eben auch Geräte für den<br />

professionellen Einsatz, die eine wesentlich<br />

höhere Flexibilität in der Netzwerkkonfiguration<br />

bieten. Da hilft nur warten:<br />

Sobald das selbst vom Hersteller im Datenblatt<br />

beworbene Open WRT für diesen<br />

Router bereitsteht, ergibt sich vermutlich<br />

eine außerordentlich leistungsstarke<br />

Kombination.<br />

Die WLAN-Hardware des Routers hinterlässt<br />

einen sehr guten Eindruck. Die Firmware<br />

mit fehlenden Funktionen wie der<br />

Anbindung an einen Logserver allerdings<br />

weniger, besonders im Verhältnis zum<br />

hohen Listenpreis von 280 Euro. Kurz<br />

nach Redaktionsschluss trudelte beim<br />

<strong>Linux</strong>-<strong>Magazin</strong> die Meldung ein, dass es<br />

unter [5] endlich einen Open-WRT-Build<br />

gibt. Ein Folgeartikel im nächsten <strong>Magazin</strong><br />

widmet sich exklusiv dieser neuen<br />

Release von Open WRT. (mfe) n<br />

Infos<br />

[1] Open WRT: [http:// openwrt. org]<br />

[2] Iperf: [http:// Iperf. sourceforge. net]<br />

[3] Treiber für den Linksys WUSB 6300:<br />

[https:// github. com/ abperiasamy/​<br />

rtl8812AU_8821AU_linux]<br />

[4] Beamforming: [https:// en. wikipedia. org/​<br />

wiki/ Beamforming]<br />

[5] Git-Repository für einen ersten Build von<br />

Open WRT für den Router: [https:// github.​<br />

com/ wrt1900ac/ opensource]<br />

Der Autor<br />

Konstantin Agouros arbeitet bei der Xantaro<br />

Deutschland GmbH als Technical Lead Security<br />

Technologies. Sein Buch über DNS/​DHCP ist bei<br />

Open Source Press erschienen.


Forum<br />

www.linux-magazin.de Recht 07/2014<br />

80<br />

Der Staat als Open-Source-Kunde: Die EVB-IT und die OSBA-Handreichung<br />

Entscheidungshilfe<br />

Die Ergänzenden Vertragsbedingungen für IT (EVB-IT) regeln in Deutschland, wie der Staat IT-Investitionen<br />

handhabt. Der <strong>Linux</strong>-Verband OSBA hat jetzt eine Anleitung für Behörden veröffentlicht, die besonderes Augenmerk<br />

auf Open-Source-Produkte legen möchten. Dabei sind viele Feinheiten zu beachten. Monika Prell<br />

aussehen. Denn der Koalitionsvertrag<br />

der großen Koalition von CDU und SPD<br />

sieht vor, den Einsatz von Open Source<br />

in Deutschland verstärkt zu fördern: Die<br />

Entwicklung quelloffener Plattformen<br />

und entsprechender Lösungen soll künftig<br />

bei geplanten IT-Vorhaben bessere<br />

Berücksichtigung finden [2].<br />

Trotz Koalitionsvertrag ist<br />

OSS noch kein Muss<br />

© Markus Feilner<br />

Über 20 Milliarden Euro hat Deutschland<br />

letztes Jahr in ITK investiert [1].<br />

Der Löwenanteil davon ging mit 13,9<br />

Milliarden Euro in den Bereich Software<br />

und Services: Ein lukrativer Markt für die<br />

IT-Branche. Der Anteil an Open-Source-<br />

Lösungen ist dabei immer noch gering,<br />

da die öffentlichen Auftraggeber vorwiegend<br />

auf proprietäre Modelle setzen. Allerdings<br />

könnte das in Zukunft anders<br />

Bei der Umsetzung hat die Koalition aber<br />

nicht freie Hand: Alle kostenpflichtigen<br />

Beschaffungen der öffentlichen Hand<br />

müssen im Wege eines transparenten<br />

Wettbewerbsverfahrens vergeben werden.<br />

Der Wettbewerb unterliegt dabei<br />

den geltenden Vorschriften des Vergaberechts<br />

(siehe Kasten „Basiswissen<br />

Vergaberecht“). Auch die Beschaffung<br />

von Open-Source-Software ist hiervon<br />

nicht ausgenommen, da zwar nicht die<br />

Lizenzgebühr der kostenpflichtige Faktor<br />

Basiswissen Vergaberecht<br />

Die Grundzüge des Vergaberechts leiten sich<br />

aus europäischen Richtlinien ab, die die einzelnen<br />

Länder der EU in unterschiedlichen<br />

Ausprägungen umsetzen. In Deutschland sind<br />

die Grundsätze im vierten Teil des GWB (Gesetz<br />

gegen Wettbewerbsbeschränkungen) und<br />

einzelnen Vergabeordnungen festgelegt, in Österreich<br />

im BVergG (Bundesvergabegesetz). In<br />

der Schweiz gilt das BöB (Bundesgesetz über<br />

öffentliches Beschaffungswesen), das sich nicht<br />

aus den europarechtlichen Vorgaben, sondern<br />

aus dem WTO-Abkommen (World Trade Organization)<br />

ableitet.<br />

Die Prinzipien<br />

Wettbewerbsprinzip: Grundsätzlich können<br />

sich alle Unternehmen am Wettbewerb, dem<br />

öffentlichen Vergabeverfahren, beteiligen. Eine<br />

große Auswahl von Angeboten verschiedener<br />

Anbieter ist ausdrücklich gewollt.<br />

Transparenzprinzip: Der geplante Auftrag muss<br />

auf einer allgemein zugänglichen Plattform öffentlich<br />

ausgeschrieben werden (Bekanntmachung).<br />

Bei Aufträgen ab 207 000 Euro netto<br />

geschätztem Auftragswert erfolgt dies über die<br />

EU-weite Plattform Ted [3], unterhalb dieses<br />

Wertes veröffentlicht [http:// www. bund. de] innerhalb<br />

Deutschlands derartige Ausschreibungen.<br />

Die Bekanntmachung nennt alle Kriterien<br />

oder verweist zumindest auf Bedingungen, die<br />

das Unternehmen, das ein Angebot abgibt, beachten<br />

und erfüllen muss.<br />

Gleichbehandlungsprinzip: Weder regional<br />

noch nach ihrer Größe noch anhand vorgegebener<br />

Lösungen oder Produkte dürfen öffentliche<br />

Ausschreiber bestimmte Unternehmen bevorzugen.<br />

Das bedeutet, alle Anbieter im nationalen<br />

und europäischen Markt müssen die gleichen<br />

Chancen haben, sich am Vergabeverfahren zu<br />

beteiligen.<br />

Wirtschaftlichkeitsprinzip: Anhand fester, vorgegebener<br />

und bekannt gemachter Kriterien<br />

ermittelt der öffentliche Auftraggeber objektiv<br />

das im Hinblick auf das Kosten-Nutzen-Verhältnis<br />

wirtschaftlichste Angebot, was nicht<br />

zwangsläufig das billigste Angebot sein muss.<br />

Rechtsschutz (Deutschland): Bei EU-weiten<br />

Aufträgen (ab 207 000 Euro netto) haben die<br />

Unternehmen die Möglichkeit, die Einhaltung<br />

der vergaberechtlichen Regeln und Prinzipien,<br />

die noch detaillierter in den jeweiligen Vergabevorschriften<br />

festgehalten sind, gerichtlich vor<br />

der Vergabekammer überprüfen zu lassen und<br />

gegebenenfalls durchzusetzen.


ist, wohl aber der Einkauf von OSS mit<br />

Weiterentwicklung oder Anpassung und<br />

integrierten Serviceleistungen.<br />

Wer nur B2B-Geschäfte gewohnt ist,<br />

muss sich also – nicht nur in Deutschland,<br />

sondern innerhalb der ganzen EU<br />

– bei Aufträgen der öffentlichen Hand<br />

umstellen. Die Auftragsvergabe unterliegt<br />

einem sehr formalen öffentlichen Vergabeverfahren.<br />

Dabei hat der Staat zu<br />

gewährleisten, dass er die Aufträge nicht<br />

beliebig an „bekannte und bewährte“ Unternehmen,<br />

sondern anhand objektiver<br />

Kriterien an das wirtschaftlichste Unternehmen<br />

erteilt. Natürlich sieht das in der<br />

Praxis erfahrungsgemäß immer wieder<br />

mal anders aus, doch ist das dann ein Fall<br />

für den Rechnungshof.<br />

Keine Änderung im<br />

laufenden Verfahren<br />

Während eines normalen Vergabeverfahrens<br />

haben die beteiligten Unternehmen<br />

nur sehr begrenzt Einfluss. Sie sind an die<br />

inhaltlichen und vertraglichen Vorgaben<br />

der öffentlichen Auftraggeber gebunden.<br />

Im Gegensatz zum B2B-Geschäft haben<br />

sie zu einem späteren Zeitpunkt grundsätzlich<br />

keine Möglichkeit mehr, Änderungen,<br />

Ergänzungen oder Streichungen<br />

an den vorgegebenen Bedingungen vorzunehmen.<br />

Das bedeutet aber auch dann Probleme,<br />

wenn für die geplante IT-Leistung vom<br />

öffentlichen Auftraggeber keine OSS-Lösung<br />

vorgesehen ist oder gar der Verweis<br />

auf zugrunde liegende Vertragsbedingungen<br />

mit Nutzungsrechten und Offenlegung<br />

des Quellcodes mit den Lizenzbedingungen<br />

der freien Software nicht<br />

vereinbar ist. Ein Unternehmen, das<br />

OSS-Lösungen anbietet, kann dann kein<br />

© zimmytws, 123RF.com<br />

Abbildung 1: Zu den normalen Verträgen kommen die ergänzenden Bestimmungen.<br />

Angebot abgeben und nicht am Wettbewerb<br />

teilnehmen, wenn die Ausschreibung<br />

der OSS-Lizenz widerspricht. Jeder<br />

Verweis des Anbieters auf eigene und<br />

damit andere Lizenzbedingungen wäre<br />

eine „Änderung der Vergabeunterlagen“<br />

– was zwangsläufig zum Ausschluss vom<br />

Verfahren führt.<br />

Ergänzende Vertrags bedingungen<br />

für IT<br />

In Deutschland gibt es sogar noch eine<br />

zweite Hürde: Hier müssen die öffentlichen<br />

Auftraggeber nicht nur das Vergaberecht,<br />

sondern beim Einkauf von IT auch<br />

zwingend ergänzende Vertragsbedingungen<br />

beachten: Nach deutschen Bundesoder<br />

Landeshaushaltsordnungen (§ 55<br />

BHO/​LHO) sind sie dazu verpflichtet, die<br />

„Ergänzenden Vertragsbedingungen für<br />

den Einkauf von IT“ (EVB-IT) als Vertragsgrundlage<br />

einzubeziehen ([4], siehe<br />

Kasten „EVB-IT“).<br />

Traditionellerweise gehen die EVB-IT<br />

grundsätzlich bei den Regelungen zu den<br />

Nutzungsrechten und bei der Offenlegung<br />

des Quellcodes und der Gestaltung<br />

der vertraglichen Regelungen von proprietären<br />

Lösungen aus. Die Vertragsmuster<br />

der EVB-IT bieten zwar explizit die<br />

Möglichkeit, Anhänge mit Erläuterungen<br />

zum Vertragsbestandteil zu machen und<br />

so auch das Überlassen von OSS einzubeziehen.<br />

Leider nutzen Behörden in<br />

Deutschland diese in Ausschreibungen<br />

noch recht selten, anders als etwa in anderen<br />

Ländern der EU [5].<br />

Ergänzungen sind nötig<br />

Für OSS-Anbieter bedeutet das: Eine Teilnahme<br />

an Vergabeverfahren in Deutschland<br />

ist nicht möglich, wenn der öffent-<br />

Recht 07/2014<br />

Forum<br />

www.linux-magazin.de<br />

81<br />

EVB-IT<br />

Die „Ergänzenden Vertragsbedingungen für<br />

den Einkauf von IT“ sind die AGB (Allgemeine<br />

Geschäftsbedingungen) der öffentlichen Hand<br />

in Deutschland für Rechtsgeschäfte im IT-<br />

Bereich.<br />

Innenministerium plus Wirtschaft<br />

Eine Arbeitsgruppe des Bundesministeriums<br />

des Innern (BMI) entwickelt sie, nach Verhandlungen<br />

verabschiedet man sie einvernehmlich<br />

mit dem Bundesverband Informationswirtschaft,<br />

Telekommunikation und neue Medien<br />

e.V. (Bitkom), der die Unternehmensseite vertritt.<br />

Mittlerweile gibt es zehn unterschiedliche<br />

Vertragstypen, die ein breites Spektrum der<br />

IT-Beschaffung abdecken, unter anderem den<br />

Kauf und die Pflege von Software (EVB-IT Typ<br />

Überlassung A, EVB-IT Pflege S), die Dienstleistungen<br />

(EVB-IT Dienstvertrag), die Lieferung<br />

nebst Installierung (EVB-IT Systemlieferung),<br />

die Erstellung eines Gesamtsystems (EVB-IT<br />

System), die Erstellung oder Anpassung von<br />

Individualsoftware (EVB-IT Erstellung), Serviceleistungen<br />

(EVB-IT Service).<br />

Die EVB-IT setzen sich aus mehreren Unterlagen<br />

zusammen:<br />

n Vertragsmuster (EVB-IT Vertrag)<br />

n Dazugehörige AGB (EVB-IT AGB)<br />

n Eventuell dazugehörige Formulare<br />

Die EVB-IT werden Vertragsbestandteil, indem<br />

der Auftraggeber auf den geltenden Vertragstyp<br />

der EVB-IT verweist – meist auf die Webseite<br />

des Bundes-CIO [4]. Da sich die EVB-IT immer<br />

aus mehreren Unterlagen zusammensetzen,<br />

benennen Experten die Verordnung meist im<br />

Plural „die EVB-IT“.


Forum<br />

www.linux-magazin.de Recht 07/2014<br />

82<br />

Abbildung 2: Im Normalfall ist Open-Source-Software erst mal außen vor, es sei denn, die öffentliche Hand<br />

kümmert sich explizit darum.<br />

liche Auftraggeber auf die geltenden<br />

EVB-IT ohne Ergänzungen verweist. Das<br />

widerspricht aber nicht nur den politisch<br />

umzusetzenden Vorgaben im Koalitionsvertrag,<br />

sondern auch dem Gleichbehandlungsprinzip<br />

im Vergaberecht.<br />

Die Anbieter von proprietären und die<br />

von OSS-Lösungen müssen die gleichen<br />

Chancen haben, sich am Wettbewerb zu<br />

beteiligen. Wenn durch die Gestaltung<br />

der Ausschreibung oder aufgrund der<br />

zugrunde liegenden Vertragsbedingungen<br />

bestimmte Anbieter ausgeschlossen<br />

werden, ist dies ohne besondere Rechtfertigung<br />

der öffentlichen Hand nicht<br />

zulässig. Die öffentlichen Auftraggeber<br />

müssen somit kompatible Formulierungen<br />

finden, die OSS neben proprietären<br />

Lösungen als gleichwertige Alternative<br />

zulassen.<br />

Die OSBA-Handreichung<br />

im Detail<br />

So sind bei den EVB-IT Erstellung (umfassen<br />

das Anfertigen oder Anpassen<br />

von Individualsoftware) und den EVB-IT<br />

System (Erstellen eines Gesamtsystems)<br />

zwingend erforderliche Anpassungen<br />

bei den Regelungen zum Customizing<br />

der freien Software nötig. Aber auch Lizenzbedingungen<br />

und Quellcode müssen<br />

Behörden im Blick behalten, wenn sie<br />

Individualsoftware überlassen oder angepasst<br />

haben wollen.<br />

Erstellen, Einbeziehen,<br />

Überlassen<br />

Die EVB-IT Typ Überlassung A gelten<br />

für das Überlassen von Standardsoftware<br />

gegen „Einmalvergütung“, also beim<br />

© Wilm Ihlenfeld, 123RF.com<br />

Kaufvertrag. Hier unterscheidet Jäger<br />

zwei Konstellationen: Einmal die Lizenzierung<br />

der gesamten Software als Open<br />

Source, zum anderen den Fall, dass es<br />

sich bei einzelnen Bestandteilen um freie<br />

Software handelt. Neben Anpassungen<br />

bei der Darstellung des Lieferumfangs<br />

ergeben sich auch hier zwingend erforderliche<br />

Änderungen bei den Nutzungsrechten<br />

und bei den außerordentlichen<br />

Kündigungsrechten.<br />

Dienstleistung einkaufen<br />

oder doch selbst pflegen?<br />

Auch bei den EVB-IT Dienstleistung<br />

sieht Ziffer 6 der AGB der EVB-IT vor,<br />

dass Anbieter den Behörden verkörperte<br />

Dienstleistungsergebnisse wie Software<br />

im Rahmen eines Dienstvertrags überlassen<br />

dürfen, sodass auch Open-Source-<br />

Software betroffen sein kann. Auch hier<br />

sind die Lizenzbedingungen von OSS<br />

gegebenenfalls entsprechend an die Vorgaben<br />

anzupassen.<br />

Wer im Staatsdienst steht und Standardsoftware<br />

selbst bearbeiten oder Programmkorrekturen<br />

von Dritten liefern<br />

lassen will, für den spielen die EVB-IT<br />

Pflege S eine Rolle. Je nach OSS-Lizenz<br />

können sich hier auch bei der „internen<br />

Nutzung“ bei einer Programmkorrektur<br />

und bei der Vergütung zur Mängelbehebung<br />

widersprechende Lizenzbedingungen<br />

ergeben.<br />

Alles in allem sind die OSBA-Handreichungen<br />

ein guter und sehr detaillierter<br />

Leitfaden für die öffentliche Hand zur<br />

Dass dies kein Hexenwerk sein muss, hat<br />

Rechtsanwalt Till Jaeger im Auftrag der<br />

Open Source Business Alliance [6] in<br />

den „Handreichungen zur Nutzung der<br />

EVB-IT beim Einsatz von Open Source<br />

Software“ dargestellt [7]. Umfassend<br />

schildern die, welche Ergänzungen oder<br />

Streichungen bei den für OSS gängigen<br />

Vertragstypen EVB-IT Erstellung, System,<br />

Typ Überlassung A, Dienstleistung und<br />

Pflege S aus der Sicht des Autors notwendig<br />

sind, und geben konkrete Formulierungsvorschläge.<br />

© orcea david, 123RF.com<br />

Abbildung 3: Auch wer seine Software selbst pflegen oder überarbeiten will, muss sich an die EVB IT halten.


Einbeziehung von OSS in die EVB-IT. Ob<br />

allerdings angesichts der formalen Hürden<br />

im Vergaberecht und den Vorgaben<br />

in den EVB-IT die Aussage von Jaeger,<br />

dass „der rechtssichere Einsatz für die<br />

Beschaffung von FOSS problemlos machbar<br />

ist“, zutrifft, ist für die Umsetzung in<br />

der Praxis eher zu bezweifeln.<br />

Geltendes Recht nervt und<br />

überfordert Entscheider<br />

Für viele deutsche Behörden gestaltet<br />

sich schon die Einbeziehung der „normalen“<br />

EVB-IT ohne Open-Source-Software<br />

nicht leicht. Sie müssen entscheiden,<br />

unter welchen der mittlerweile zehn<br />

Vertragstypen der EVB-IT das geplante<br />

IT-Vorhaben fällt. Zudem sind viele EVB-<br />

IT-Verträge mit dem Vertragsformular<br />

sowie AGB und Musterformularen ganz<br />

schön umfangreich. Die EVB-IT System<br />

beispielsweise umfassen allein 38 Seiten<br />

Vertrag und 41 Seiten AGB.<br />

Abbildung 4: Die gängige Ausschreibepraxis stellt Admins, IT-Leiter und Mitarbeiter in Behörden vor mittelgroße<br />

Aufgaben. Weil die komplex sind, fordern Experten einfachere Regeln für OSS-Ausschreibungen.<br />

Dazu kämen dann noch die sehr detaillierten<br />

Handreichungen zu OSS bei<br />

den EVB-IT nebst den vorgeschlagenen<br />

Lösungen zu den jeweils zu beachtenden<br />

unterschiedlichen Lizenzmodellen<br />

mit verschiedenen Copyleft-Effekten.<br />

Das stets zu berücksichtigen überfordert<br />

schlicht viele Dienststellen.<br />

Wie das Einbeziehen von OSS im typischen<br />

Behördenalltag gelingen kann,<br />

© stylephotographs, 123RF.com<br />

Recht 07/2014<br />

Forum<br />

www.linux-magazin.de<br />

83


Forum<br />

www.linux-magazin.de Recht 07/2014<br />

84<br />

© Sernet<br />

© Maksym Yemelyanov , 123RF.com<br />

Abbildung 5: Johannes Loxen, Geschäftsführer des<br />

Samba-Spezialisten Sernet in Göttingen.<br />

Abbildung 6: Einfache und simple Tools sind notwendig", meint die Bitkom, und beklagt, dass deren Fehlen<br />

Behörden oft in poprietären Modellen verharren lässt.<br />

schildert Johannes Loxen, Geschäftsführer<br />

des Samba-Spezialisten Sernet GmbH<br />

([8], Abbildungen 5 und 6): „Man muss<br />

einfache und leicht umzusetzende Werkzeuge<br />

an die Hand geben, denn zu komplexe<br />

und verästelte Lösungen schrecken<br />

eher ab. Das führt dann dazu, doch an<br />

proprietären Modellen festzuhalten.“<br />

Sernet verwendet bei den Verträgen mit<br />

öffentlichen Auftraggebern in Deutschland<br />

seit vielen Jahren die EVB-IT (Typ<br />

Überlassung A und Dienstleistung) bei<br />

Verträgen mit der öffentlichen Hand<br />

und hat gute Erfahrungen mit einfachen<br />

und kurz gehaltenen Lösungen oder Ergänzungen<br />

zu OSS gemacht. Auf ihrer<br />

Website hat Sernet zwei kurze Varianten<br />

als Ergänzung für sein Produkt zu den<br />

EVB-IT veröffentlicht [9].<br />

Sernet-Muster<br />

Sernet verweist öffentliche Auftraggeber<br />

bei Bedarf schon vor der Ausschreibung<br />

auf diese Muster, natürlich mit dem Hinweis,<br />

dass nicht jeder Einzelfall abgedeckt<br />

ist und man auch keine Rechtsberatung<br />

ersetzen kann und will. Aber, so Loxen:<br />

„Das Vorgehen hat sich in der Praxis bewährt.<br />

Wir verstehen es als Hilfestellung<br />

für die Behörden und geben ihnen Instrumente<br />

an die Hand, die sie dann unter<br />

Einbeziehung der ihnen bekannten EVB-<br />

IT leicht umsetzen können.“<br />

Zwar macht auch seiner Ansicht nach<br />

das formale Vergaberecht dem öffentli-<br />

chen Auftraggeber das Leben nicht wirklich<br />

leichter, doch nach diesen Hürden sei<br />

die konkrete Vertragsausführung selbst in<br />

der Regel kein Problem.<br />

Fazit<br />

Der verstärkte Einsatz von OSS ist bei der<br />

Bundesregierung in Deutschland zurzeit<br />

(wieder einmal) in lebhafter Diskussion.<br />

Die Handreichungen der OSBA kommen<br />

genau zum richtigen Zeitpunkt, um auch<br />

bei Bundesbehörden den Alternativen zu<br />

proprietären Modellen zu helfen. Leuchtturmprojekte<br />

wie das Limux der Stadt<br />

München, die bislang als einzige Großstadt<br />

in Deutschland ausschließlich auf<br />

OSS-Lösungen setzt, könnten bald Gesellschaft<br />

bekommen.<br />

Für die großen und professionellen Beschaffer<br />

in Deutschland, etwa das Beschaffungsamt<br />

des Bundesministeriums<br />

des Innern oder die Bundesagentur für<br />

Arbeit, scheinen die Handreichungen mit<br />

den konkreten Formulierungsvorschlägen<br />

zu OSS für die bestehenden Muster der<br />

EVB-IT eine wertvolle Hilfe zu sein. Ob<br />

sie eine praktikable Lösung für kleinere<br />

Dienststellen und Behörden auf Länderund<br />

Kommunal-Ebene bieten, bleibt jedoch<br />

abzuwarten. (mfe)<br />

n<br />

Infos<br />

[1] Bitkom-Studie von Tech Consult E-Analyser,<br />

November 2013:<br />

[http://www.bitkom.org/de/themen/<br />

64086_78084.aspx]<br />

[2] Koalitionsvertrag der Bundesregierung zu<br />

Open Source (S. 20, S. 159):<br />

[http:// www. spd. de/ linkableblob/ 112790/​<br />

data/ 20131127_koalitionsvertrag. pdf]<br />

[3] Ted: [http://www. ted. europa. eu]<br />

[4] EVB-IT beim Bundes-CIO: [http:// www.​<br />

cio. bund. de/ Web/ DE/ IT‐Beschaffung/​<br />

EVB‐IT‐und‐BVB/ evb‐it_bvb_node. html]<br />

[5] Gijs Hjllenius, Markus Feilner, „Abgehängt“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/13, S. 78,<br />

[http:// www. linux‐magazin. de/ Ausgaben/​<br />

2013/ 11/ Open‐Source‐in‐Europa]<br />

[6] OSBA: [http:// www. osb‐alliance. de]<br />

[7] Handreichungen: [http:// www. osb‐alliance.​<br />

de/ fileadmin/ Downloads/ EVB‐IT_Handreichungen/<br />

osb_position_evbit. pdf]<br />

[8] Sernet: [http:// www. sernet. de]<br />

[9] Sernet EVB-IT-AGB: [http:// www. sernet. de/​<br />

de/ services/ evb‐it‐agb/]<br />

Die Autorin<br />

Rechtsanwältin Monika Prell<br />

leitet den Bereich Bitkom<br />

Consult – Vergaberecht – in<br />

Berlin und unterstützt ITK-<br />

Unternehmen bei Vergabeverfahren.<br />

Für den Verband<br />

hat sie über die aktuellen EVB-IT auf Seiten der<br />

Unternehmen verhandelt und Strategien zur Einbeziehung<br />

der Nachhaltigkeit bei öffentlichen<br />

IT-Ausschreibungen umgesetzt. Monika Prell<br />

veröffentlicht fortlaufend Artikel zur aktuellen<br />

Rechtsprechung im Vergaberecht und ist Coautorin<br />

bei zahlreichen Rechtskommentaren.


Forum<br />

www.linux-magazin.de Bücher 07/2014<br />

86<br />

Bücher über funktionale Programmierung sowie Open-Source-Städte<br />

Tux liest<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> stellt zwei englischsprachige Bücher vor. Das erste widmet sich dem funktionalen Programmieren<br />

in Scala und Clojure. Das zweite überträgt Open Source auf die Kommunalpolitik Jan Stepien, Markus Feilner<br />

Die IT-Industrie lässt regelmäßig ältere<br />

Technologien neu aufleben. Dazu gehört<br />

derzeit die funktionale Programmierung,<br />

die nun für komplexe und verteilte Systeme<br />

zum Einsatz kommt. Dieser alten<br />

und zugleich neuen Schule widmet sich<br />

das englischsprachige Buch „Functional<br />

Programming Patterns“ von Michael Bevilacqua-Linn.<br />

Funktionaler Einstieg<br />

Info<br />

Michael Bevilacqua-Linn:<br />

Functional Programming<br />

Patterns in Scala<br />

and Clojure<br />

Pragmatic Programmers<br />

2013<br />

250 Seiten<br />

29 Euro (E-Book 20 Euro)<br />

ISBN 978-1-93778-547-5<br />

onale Muster zu zeigen, die Arbeiter der<br />

objektorientierten Welt kaum zu sehen<br />

bekommen.<br />

Dieses Buch demonstriert, wie der funktionale<br />

Programmierstil bestimmte Probleme<br />

in knapperem und leichter verständlichem<br />

Code löst als der objektorientierte<br />

Ansatz. Das macht es zu einer nützlichen<br />

Hilfe für Entwickler, die von der Objektorientierung<br />

kommen, ihren Horizont<br />

erweitern möchten und neue Sichtweisen<br />

suchen. Sie müssen allerdings bereits<br />

Grundkenntnisse in Clojure und Scala<br />

mitbringen – wer das Buch ohne Vorkenntnisse<br />

aufschlägt, dürfte sich mit der<br />

Syntax der Listings schwertun.<br />

Programmierer, die es gewöhnt sind, die<br />

Welt durch die objektorientierte Brille zu<br />

sehen, finden in diesem Band eine Hilfe<br />

bei den ersten Schritten in der funktionalen<br />

Welt. Wer aber bereits mit ihr<br />

vertraut ist und regelmäßig mit First-class<br />

Functions jongliert, wird hier kaum etwas<br />

Neues lernen.<br />

Open-Source-Städte<br />

Das E-Book „The foundation for an open<br />

source city“ des Red-Hat-Mitarbeiters<br />

Jason Hibbets möchte dem „weltweit<br />

wachsenden Wunsch vieler Bürger“<br />

nach mehr Offenheit und Transparenz<br />

in Behörden und Städten Rechnung tragen.<br />

Untermalt von eigenen Erfahrungen<br />

schildert der Autor, wie man als Bürger<br />

oder Verantwortlicher mehr „Open“ in<br />

die Kommune bringt.<br />

Zunächst definiert Hibbets die fünf<br />

wichtigsten Charakteristika einer Open-<br />

Source-Stadt: Teilhabe, offenes Regieren,<br />

Open Data, offene Veranstaltungen und<br />

Vernetzung. Er erzählt beispielsweise<br />

von City Camps, die er in Raleigh, North<br />

Carolina, ausrichten half. Solche „Un-<br />

Als Motivation erzählt der Autor zunächst<br />

die Geschichte eines Programmierers, der<br />

sich mit dem widerspenstigen API eines<br />

Partners plagt. Dank der funktionalen<br />

Sprache Clojure und ihren Tools gewinnt<br />

er binnen weniger Stunden die Oberhand.<br />

Anschließend stellt Bevilacqua-Linn die<br />

drei Programmiersprachen vor, die er im<br />

Verlauf des Buches verwendet. Neben<br />

Clojure sind das Java und Scala.<br />

Danach zeigt er ein sehr einfaches Java-<br />

Webframework und erläutert, wie man es<br />

in Scala oder Clojure schreiben würde. Im<br />

Weiteren dekliniert der Autor die gängigen<br />

Design Patterns der objektorientierten<br />

Programmierung durch und erklärt,<br />

welche funktionalen Idiome sich in den<br />

behandelten Sprachen für die gleichen<br />

Aufgabenstellungen eignen.<br />

Im letzten Kapitel konzentriert er sich<br />

ganz auf Scala und Clojure, um funktikonferenzen“,<br />

die die Teilnehmer selbst<br />

gestalten, fanden 2011 erstmals in der USamerikanischen<br />

Stadt und Heimat von<br />

Red Hat statt.<br />

Weiter geht es mit Tools, die helfen das<br />

Regieren transparent zu machen: Im<br />

Frage-Antwort-Stil, oft den Leser direkt<br />

ansprechend, schildert Hibbets die<br />

nächsten Schritte, beschreibt die „Open<br />

Source Government Resolution“ der City<br />

of Raleigh, zeigt, wie sich User, Konferenzen<br />

und Open-Source-Tage organisieren<br />

lassen und welche Rolle Informationsknoten<br />

spielen. Den Abschluss des gelungenen<br />

E-Books bilden ein Kapitel zu den<br />

Prinzipien einer Open-Source-Stadt sowie<br />

ein Blick in die Zukunft, die der Autor für<br />

sehr vielversprechend hält.<br />

Das mit Links und Referenzen gespickte<br />

E-Book ist der Bericht eines Open-<br />

Source-Evangelisten, der an seine Mission<br />

glaubt. Ein möglicher Kritikpunkt<br />

an seiner Argumentation ist allerdings<br />

die Zeit: Erst seit wenigen Jahren laufen<br />

die Bemühungen und Beobachtungen des<br />

Autors. Daneben stellt sich die Frage, inwiefern<br />

sich vieles, das Hibbets berichtet,<br />

auf die Gegebenheiten anderer Länder,<br />

Kontinente oder Mentalitäten übertragen<br />

lässt. In Raleigh anzufangen, der Heimat<br />

des Milliardenkonzerns Red Hat, scheint<br />

jedenfalls keine schlechte Idee.<br />

Das Manuskript gibt es übrigens auf<br />

[http://​theopensourcecity.​com] unter<br />

Creative-Commons-Lizenz. (mhu) n<br />

Info<br />

Jason Hibbets:<br />

The Foundation for an<br />

Open Source City<br />

Lulu.com, 2013<br />

160 Seiten<br />

12 Euro (E-Book 3 Euro)<br />

ISBN 978-1300923176


Know-how<br />

www.linux-magazin.de Insecurity Bulletin 07/2014<br />

88<br />

Insecurity-Bulletin: Heartbleed-Bug in Open SSL<br />

Blutendes Herz<br />

Wegen eines Programmierfehlers in Open SSL ließen Server ihre geheimen Schlüssel Byte-weise ins Internet<br />

tropfen. Eine Nachlese zum bisher aufsehenerregendsten Security-Bug des Jahres 2014. Mark Vogelsberger, Mathias Huber<br />

© Michal Boubin, 123RF<br />

Ein sicherheitsrelevanter Bug in der<br />

freien Krypto-Software Open SSL [1] hat<br />

im April 2014 für einiges Aufsehen gesorgt,<br />

auch außerhalb von Fachkreisen.<br />

Entdeckt haben ihn ungefähr zeitgleich<br />

am 7. April der Google-Mitarbeiter Neel<br />

Mehta [2] und das Team der finnischen<br />

Security-Firma Codenomicon.<br />

Da sich der Fehler in der Heartbeat-Erweiterung<br />

der Software befand, war mit<br />

einem Wortspiel rasch der Name Heartbleed<br />

geschaffen. Codenomicon stellte<br />

eine gleichnamige Website online – und<br />

der Name blieb haften [3]. Der Heart-<br />

Listing 1: Open-SSL-Patch für<br />

Heartbleed<br />

01 if (1 + 2 + payload + 16 > s‐>s3‐>rrec.length)<br />

02 return 0; /* silently discard per RFC 6520 sec. 4 */<br />

bleed-Bug mit der Kennung CVE-2014-<br />

0160 sorgte für viel Unsicherheit und<br />

eilige Serverupdates.<br />

Lebenszeichen<br />

Technisch steckt hinter der Sicherheitslücke<br />

ein recht einfacher Programmierfehler.<br />

Open SSL setzt unter anderem Transportverschlüsselung<br />

nach dem Protokoll<br />

TLS um. Aus Performancegründen ist<br />

es wünschenswert, die TLS-Verbindung<br />

zwischen Client und Server nicht ständig<br />

neu aufzubauen, sondern länger aktiv zu<br />

halten. Dazu dient die Heartbeat-Erweiterung<br />

des Protokolls nach RFC 6520. Um<br />

der Gegenseite zu versichern, dass sie die<br />

Verbindung halten, schicken sich Client<br />

und Server kleine Datenmengen hin und<br />

her. Dabei senden sie nicht nur ein paar<br />

Bytes Daten, die die Gegenstelle wieder<br />

zurückschicken soll, sondern geben auch<br />

deren Länge an.<br />

Der Programmierfehler liegt darin, dass<br />

der Empfänger die Datenlänge nicht<br />

selbst ermittelt, sondern diesen Wert<br />

ohne Prüfung von der Gegenstelle übernimmt.<br />

Schickt ein Partner nun aber lediglich<br />

1 KByte Daten als Payload, gibt<br />

aber beispielsweise 5 KByte als deren<br />

Länge an, dann liest der Empfänger über<br />

den Datenbereich der Payload hinaus und<br />

schickt weitere 4 KByte aus seinem Arbeitsspeicher<br />

durchs Netzwerk zurück.<br />

Zu viel gelesen<br />

Dieser Fehler entspricht dem bekannten<br />

Typ Read Overrun, auch als Buffer Overread<br />

oder Out-of-bounds Read bezeichnet<br />

– ein Lesevorgang über das Daten ende<br />

hinaus [4]. Im Normalfall wäre das nicht<br />

sonderlich dramatisch, denn es würde<br />

sich um zufällige Inhalte aus dem Arbeitsspeicher<br />

handeln. Open SSL implementiert<br />

allerdings seine eigene Speicherverwaltung<br />

und verwendet dabei etwa<br />

die Funktion »OPENSSL_malloc()« statt<br />

der gebräuchlichen »malloc()«.<br />

Daher enthalten die Speicherfragmente<br />

stets Daten, mit denen Open SSL arbeitet.<br />

Bei der Kryptosoftware sind das Zertifikate<br />

und Schlüssel, die eigentlich geheim<br />

bleiben sollten. Bis zu 64 KByte lassen<br />

DELUG-DVD<br />

DELUG-DVD<br />

Die DELUG-Ausgabe dieses<br />

<strong>Linux</strong>-<strong>Magazin</strong>s bringt auf DVD die Pentesting-Distribution<br />

Kali <strong>Linux</strong> in Version 1.0.6 zuzüglich<br />

Updates mit. Das installierbare Livesystem<br />

enthält unter anderem die Metasploit-<br />

Version 4.9.2 mit Client- sowie Server-seitigen<br />

Exploit-Modulen für Heartbleed.


sich pro einzelnem Heartbeat herauskitzeln.<br />

Wiederholt ein Angreifer den Vorgang<br />

oft genug, kann er sich eine ausreichende<br />

Menge Speicher verschaffen, um<br />

schließlich den privaten SSL-Schlüssel<br />

eines Servers zu rekonstruieren.<br />

Das war zunächst noch eine Vermutung<br />

und das Unternehmen Cloudflare schrieb<br />

einen Wettbewerb für den praktischen<br />

Beweis aus [5]. Kaum einen Tag später<br />

hatten ein Open-Source-Entwickler sowie<br />

ein finnischer Security-Forscher den privaten<br />

SSL-Schlüssel des Cloudflare-Testservers<br />

erbeutet. Sie brauchten dazu in<br />

dem einen Fall 2,5 Millionen, im anderen<br />

100 000 Requests.<br />

Exploits<br />

Man muss jedoch kein Security-Champion<br />

sein, um die Attacke selbst nachzuvollziehen.<br />

Für das Penetrationtest-<br />

Framework Metasploit stehen fertige<br />

Module für Angriffe gegen Server [6] und<br />

Clients [7] zur Verfügung. Der Kasten<br />

„Heartbleed mit Metasploit aufspüren“<br />

gibt eine detaillierte Anleitung, Abbildung<br />

1 zeigt den Einsatz des Exploits<br />

gegen einen lokalen Apache-Webserver<br />

mit verwundbarem SSL-Modul.<br />

Die erbeuteten Daten enthalten Mailadressen<br />

und weitere Texte, die aus Zertifikaten<br />

und Schlüsseln aus dem Verzeichnis<br />

»/etc/ssl/private« stammen. Das macht<br />

für alle öffentlichen Open-SSL-Installationen<br />

ein Update zwingend erforderlich.<br />

Unzählige Web-, SMTP-, POP- und IMAP-<br />

Server sowie SSL-VPNs, Webbrowser und<br />

Chat-Dienste nutzen die äußerst populäre<br />

Krypto-Software für sichere Verbindungen<br />

– sofern sie nicht die Konkurrenz<br />

GNU TLS verwenden.<br />

Prinzipiell sind sowohl Client- als<br />

auch Server-Anwendungen betroffen,<br />

Webbrowser verwenden das Heartbeat-<br />

Feature aber meist nicht. Als eine der<br />

ersten Notfall-Maßnahmen empfahl das<br />

Open-SSL-Projekt, seine Software mit<br />

dem Flag »‐DOPENSSL_NO_HEART-<br />

BEATS« zu übersetzen<br />

und somit das verwundbare<br />

Heartbeat-Feature zu<br />

entfernen.<br />

Heartbleed betrifft die<br />

Open-SSL-Versionen 1.0.1<br />

und 1.0.2-beta, einschließlich<br />

1.0.1f und 1.0.2-<br />

beta1. Ein Patch stand<br />

binnen eines Tages zur<br />

Verfügung. Wie Listing 1<br />

zeigt, fügt es der betroffenen<br />

Funktion »tls1_process_heartbeat()«<br />

in der<br />

SLES 11<br />

Quelltextdatei »t1_lib.c«<br />

eine If-Abfrage hinzu. Sie<br />

vergleicht die Länge der<br />

»payload«-Variablen über<br />

die »SSL3_RECORD«-<br />

Struktur (»s3‐>rrec«) mit<br />

der eigentlichen Größe<br />

der übertragenen Daten. Falls diese nicht<br />

zusammenpassen, ignoriert die Software<br />

das Paket einfach und sendet keine Antwort,<br />

womit die Attacke vereitelt ist.<br />

Die Distributionen<br />

Das Patch oder ein Update auf die Open-<br />

SSL-Versionen 1.0.1g beziehungsweise<br />

1.0.2-beta2 stopft die Sicherheitslücke.<br />

Wegen der verschiedenen Softwareversionen<br />

befand sich der Bug nicht in allen<br />

Releases von <strong>Linux</strong>-Distributionen, wie<br />

Tabelle 1 zeigt. Beispielsweise blieben<br />

Tabelle 1: Updates der <strong>Linux</strong>-Distributionen<br />

Distribution und Version Gefixtes Paket verfügbar<br />

Debian <strong>Linux</strong> 6 Squeeze (Oldstable) (nicht betroffen)<br />

Debian <strong>Linux</strong> 7.4 Wheezy (Stable) 07.04.2014<br />

Debian <strong>Linux</strong> 8.0 Jessie (Testing) 09.04.2014<br />

Ubuntu 12.04 LTS Precise 07.04.2014<br />

Ubuntu 12.10 Quantal 07.04.2014<br />

Ubuntu 13.04 Raring<br />

(nicht betroffen)<br />

Ubuntu 13.10 Saucy 07.04.2014<br />

Ubuntu 14.04 Trusty 07.04.2014<br />

(nicht betroffen)<br />

Open Suse 12.3 08.04.2014<br />

Open Suse 13.1 08.04.2014<br />

Red Hat Enterprise <strong>Linux</strong> 5 (nicht betroffen)<br />

Red Hat Enterprise <strong>Linux</strong> bis 6.4 (nicht betroffen)<br />

Red Hat Enterprise <strong>Linux</strong> ab 6.5 08.04.2014<br />

Fedora 19 08.04.2014<br />

Fedora 20 08.04.2014<br />

Insecurity Bulletin 07/2014<br />

Know-how<br />

www.linux-magazin.de<br />

89


Know-how<br />

www.linux-magazin.de Insecurity Bulletin 07/2014<br />

90<br />

Abbildung 1: Metasploit-Angriff gegen einen Apache-Webserver mit verwundbarem Open-SSL-Modul.<br />

Debian Squeeze und Suse <strong>Linux</strong> Enterprise<br />

Server 11 aufgrund ihres älteren<br />

Versionsstands verschont. Bei Red Hat<br />

Enterprise <strong>Linux</strong> waren die Anwender bis<br />

inklusive Version 6.4 sicher.<br />

Die meisten <strong>Linux</strong>-Distributionen stellten<br />

bereits am 8. April 2014, also einen Tag<br />

nach Bekanntgabe des Bugs, aktualisierte<br />

Binärpakete bereit, einige sogar noch am<br />

selben Tag. Viele Admins dürften Überstunden<br />

gemacht haben, um ihre Instal-<br />

lationen zu aktualisieren. Ist ein öffentlicher<br />

Server von Heartbleed betroffen,<br />

ist es übrigens nicht genug, die Software<br />

gegen eine reparierte Version auszutauschen.<br />

Da bestehende private Schlüssel<br />

in die Hände von Angreifern gefallen sein<br />

können, muss der Admin zudem neue<br />

Schlüssel und Zertifikate generieren und<br />

das alte Zertifikat zurückrufen.<br />

Dabei kann der Admin Heartbleed zum<br />

Anlass nehmen, um zu überprüfen, ob<br />

er beim SSL-/​TLS-Betrieb alles richtig<br />

macht. Meist steht ein Upgrade auf zeitgemäße<br />

Schlüssellängen von 2048 Bit an.<br />

Weitere Anregungen dazu liefert die empfehlenswerte<br />

Leseliste des Open-Source-<br />

Entwicklers Daniel Molkentin [8]. n<br />

Infos<br />

[1] Open SSL: [http:// www. openssl. org]<br />

[2] Open-SSL-Advisory zu Heartbleed:<br />

[https:// www. openssl. org/ news/​<br />

secadv_20140407. txt]<br />

[3] Heartbleed-Seite von Codenomicon:<br />

[http:// heartbleed. com]<br />

[4] Out-of-bounds Read: [https://cwe.mitre.<br />

org/data/definitions/125.html]<br />

[5] Cloudflare Challenge:<br />

[http:// blog. cloudflare. com/ the‐results‐ofthe‐cloudflare‐challenge]<br />

[6] Metasploit-Modul für Server: [https://​<br />

github. com/ rapid7/ metasploit‐framework/​<br />

blob/ master/ modules/ auxiliary/ scanner/​<br />

ssl/ openssl_heartbleed. rb]<br />

[7] Metasploit-Modul für Clients: [https://​<br />

github. com/ rapid7/ metasploit‐framework/​<br />

blob/ master/ modules/ auxiliary/ server/​<br />

openssl_heartbeat_client_memory. rb]<br />

[8] Daniel Molkentins TLS-/​SSL-Lese-Empfehlungen:<br />

[https:// daniel. molkentin. net/ 2014/​<br />

04/ 21/ fighting‐cargo‐cult‐the‐incompletessltls‐bookmark‐collection/]<br />

[9] Kali <strong>Linux</strong>: [http:// www. kali. org]<br />

Heartbleed mit Metasploit aufspüren<br />

Die Entwickler von Metasploit, einem freien<br />

Toolkit für Penetrationtests, reagieren rasch<br />

auf neue Sicherheitslücken. Auch im Fall von<br />

Heartbleed gab es nur wenige Tage nach der<br />

Bekanntgabe der Lücke bereits passende<br />

Exploit-Module für die in Ruby geschriebene<br />

Software – erst zum Attackieren von Servern,<br />

dann auch einen Serverdienst, der den Speicher<br />

von Clients ausliest.<br />

Je nach eingesetzter <strong>Linux</strong>-Distribution ist Metasploit<br />

nicht so einfach zu installieren. Am<br />

einfachsten probiert man es mit einer Security-<br />

Distribution wie Kali <strong>Linux</strong> [9] aus, die der DVD-<br />

Ausgabe dieses <strong>Linux</strong>-<strong>Magazin</strong>s beiliegt. Die<br />

Kali-Entwickler pflegen ein eigenes Paketarchiv<br />

für Security-Software, das auch ein regelmäßig<br />

aktualisiertes Metasploit samt Modulen enthält.<br />

Eigene Installationen sind mit dem Kommando<br />

»msfupdate« aktualisierbar.<br />

Das muss der Anwender jedoch mir Rootrechten<br />

ausführen. Nicht erschrecken: Penetration-<br />

Tester arbeiten häufig als Root, so auch beim<br />

Benutzen von Metasploit. Die Distribution Kali<br />

bootet standardmäßig ebenfalls in eine Root-<br />

Oberfläche (Defaultpasswort »toor«).<br />

Die lange Liste der installierten Metasploit-<br />

Module kann man auf der Kommandozeile mit<br />

dem Kommando<br />

mfscli | grep heart<br />

nach Exploits für Heartbleed durchsuchen. Das<br />

Testen erfolgt dann in der Metasploit-Konsole,<br />

die eine interaktive Kommandozeile mit History<br />

und Vervollständigung bereitstellt, ähnlich der<br />

Bash. Der Anwender startet sie mit »mfsconsole«<br />

und muss anschließend eine merkliche<br />

Weile warten, bis das Framework initialisiert ist<br />

und ein Prompt erscheint.<br />

Das Use-Kommando wählt das zu benutzende<br />

Modul aus, mit<br />

use auxiliary/scanner/ssl/U<br />

openssl_heartbleed<br />

aktiviert der Anwender den Scanner zum Untersuchen<br />

verwundbarer Server. Das Kommando<br />

»info« zeigt eine Kurzinformation über das<br />

Modul inklusive Autoren, relevanter Advisories<br />

sowie der wichtigsten Variablen. Letztere setzt<br />

man nach dem Muster »set VARIABLE Wert«.<br />

Beispielsweise stellt<br />

set RHOSTS 192.168.1.123<br />

die IP-Adresse eines zu scannenden Servers im<br />

lokalen Netzwerk ein. Der Befehl »run« führt<br />

den Exploit aus. Das Kommando<br />

use auxiliary/server/U<br />

openssl_heartbeat_client_memory<br />

wählt das Modul zum Angreifen verwundbarer<br />

Clients aus. Es stellt einen Serverdienst auf<br />

dem Metasploit-Host bereit. Mittels Info- und<br />

Set-Kommando lässt er sich konfigurieren,<br />

standardmäßig hört er auf alle eingehenden<br />

Anfragen. Der Befehl »run« startet anschließend<br />

den Server.<br />

Aktiviert man zudem die Einstellung »VER-<br />

BOSE«, schreibt der Server sein Ereignisprotokoll<br />

aufs Terminal. Die Tastenkombination<br />

[Strg]+[D] beendet die Metasploit-Konsole.


Programmieren<br />

www.linux-magazin.de Frosted 07/2014<br />

92<br />

Frosted prüft Python-Code<br />

Code-Korrektor<br />

Mit Python lassen sich rasch komplexe Aufgaben lösen. Einen Tipp- oder Syntaxfehler sieht der Entwickler allerdings<br />

erst, wenn ihm seine Eigenkreation zur Laufzeit um die Ohren fliegt. Abhilfe möchte Frosted schaffen,<br />

das Python-Skripte vor ihrer Ausführung auf Syntax- und andere häufige Mängel prüft. Tim Schürmann<br />

übergibt. Im folgenden Beispiel würde<br />

das Tool die Dateien »beispiel1.py« und<br />

»beispiel2.py« auf Fehler abklopfen:<br />

frosted beispiel1.py beispiel2.py<br />

© Lukow, photocase.com<br />

Der Python-Entwickler Timothy Crosley<br />

war mit dem Tool Pyflakes [1] äußerst unzufrieden.<br />

Der Quellcode des bekannten<br />

Syntaxcheckers war ihm zu komplex, zu<br />

langsam und zu schlecht dokumentiert.<br />

Darüber hinaus antwortete der Autor von<br />

Pyflakes nicht auf seine Anfragen und<br />

Verbesserungsvorschläge. Kurzentschlossen<br />

nahm Crosley den Code von Pyflakes,<br />

verbesserte ihn, behob auch noch einige<br />

Fehler und veröffentlichte das Ergebnis<br />

Anfang 2014 unter dem Namen Frosted<br />

[2], der auf Cornflakes mit Zuckerüberzug<br />

anspielt.<br />

Sein Fork verspricht bessere Prüfergebnisse<br />

und außerdem noch schlanken und<br />

einfach zu wartenden Code. Frosted deckt<br />

nicht nur Tipp- und Syntaxfehler auf,<br />

sondern macht auch auf andere Probleme<br />

aufmerksam. Zum Beispiel bemeckert es<br />

eingebundene, aber nicht weiter im Code<br />

benutzte Bibliotheken (Abbildung 1). Der<br />

Anwender darf außerdem vorgeben, welche<br />

Dateien und Fehler das Werkzeug<br />

ignorieren soll. Analysieren kann Frosted<br />

derzeit Skripte für die Python-Versionen<br />

2.4 bis 3.4.<br />

Pip, Pip, hurra!<br />

Das Programm lässt sich bequem und<br />

schnell per Pip installieren:<br />

pip install frosted ‐‐upgrade<br />

Frosted überprüft alle Python-Skripte, die<br />

man ihm bei seinem Aufruf als Parameter<br />

Damit sich Python-Anwender bei größeren<br />

Softwareprojekten nicht die Finger<br />

wund tippen müssen, gibt es den Parameter<br />

»‐r«. Frosted checkt damit nicht<br />

nur sämtliche Dateien in dem dahinter<br />

angegebenen Verzeichnis, sondern<br />

durchläuft auch rekursiv dessen Unterverzeichnisse:<br />

frosted ‐r beispiel/<br />

Das Tool verdaut selbstverständlich auch<br />

Wildcards: »frosted beispiel/*.py« würde<br />

alle Python-Skripte mit der Endung ».py«<br />

im Verzeichnis »beispiel« untersuchen.<br />

Beim Aufruf von »frosted ‐« nimmt das<br />

Tool die Dateinamen über die Standardeingabe<br />

entgegen. Dabei ist das Minuszeichen<br />

übrigens Pflicht – der Vorgänger<br />

Pyflakes lauschte hingegen auch dann<br />

an der Standardeingabe, wenn man ihn<br />

gänzlich ohne Parameter aufrief. Abschließend<br />

dürfen Python-Entwickler das<br />

Tool sogar direkt aus eigenen Python-<br />

Skripten aktivieren (siehe Kasten „Integrationshilfe“).<br />

Bitte ignorieren<br />

Über den Parameter »‐s« lassen sich einzelne<br />

Dateien oder Verzeichnisse von der<br />

Listing 1: Konfigurationsdatei<br />

»~/.frosted«<br />

01 [settings]<br />

02 skip=ausschluss1.py,unwichtig2.py<br />

03 ignore_frosted_errors=E100,W201<br />

04 run_doctests=True<br />

Abbildung 1: Frosted bemeckert bei diesem Skript nicht weiter benutzte Imports.


Prüfung ausnehmen. Im folgenden Beispiel<br />

ignoriert Frosted »beispiel.py«:<br />

frosted ‐s beispiel.py *.py<br />

Wer nicht bei jedem Aufruf den kompletten<br />

Parameter »‐s« eintippen möchte,<br />

der kann die auszuschließenden Dateien<br />

auch in der Konfigurationsdatei<br />

»~/.frosted.cfg« auflisten (dabei ist der<br />

vorangestellte Punkt im Dateinamen zu<br />

beachten). Diese Datei besitzt den Aufbau<br />

aus Listing 1.<br />

Nachsicht<br />

Hinter »skip=« stehen, jeweils durch<br />

Kommata getrennt, alle von Frosted zu<br />

ignorierenden Dateien und Verzeichnisse.<br />

Des Weiteren können Anwender das Tool<br />

anweisen bestimmte Fehler zu übersehen.<br />

Dazu tragen sie die betreffenden<br />

Fehlernummern hinter »ignore_frosted_<br />

errors=« ein. Die einzelnen Nummern<br />

trennen sie ebenfalls mit Kommata. Einige<br />

Fehlernummern sind in Tabelle 1<br />

aufgelistet.<br />

Fehlernummern mit einer Null am Ende<br />

schließen alle anderen Fehler aus einer<br />

Serie mit ein. Die Angabe der Fehlernummer<br />

E100 würde folglich alle Import-Fehler<br />

(E101, E102 und E103) unterdrücken.<br />

Die Fehlernummern lassen sich auch an<br />

der Kommandozeile hinter dem Parameter<br />

»‐i« an Frosted übergeben.<br />

Legen Entwickler die Datei »~/.frosted.<br />

cfg« im Homeverzeichnis ab, gelten ihre<br />

Vorgaben bei jedem Aufruf von Frosted.<br />

Alternativ können sie für jedes Projekt<br />

eine eigene Konfigurationsdatei erstellen<br />

und diese im zugehörigen Verzeichnis<br />

platzieren. Rufen sie Frosted dann in diesem<br />

Verzeichnis auf, verwendet es die<br />

dortige Konfigurationsdatei.<br />

Darüber hinaus wertet Frosted eine eventuell<br />

vorhandene »setup.cfg«-Datei aus.<br />

In ihr müssen Entwickler lediglich einen<br />

Abschnitt »[frosted]« hinzufügen, in<br />

dem sie dann wiederum die bekannten<br />

Einstellungen aus Listing 1 verwenden.<br />

Außerdem unterstützt das Tool den Editorconfig-Standard<br />

[3]. Setzen ihn Entwickler<br />

in ihren Projekten ein, können<br />

sie einfach im Abschnitt »*.py« der Datei<br />

»~/.editorconfig« die von Frosted verstandenen<br />

Parameter einsetzen. In jedem<br />

Fall lassen sich die Vorgaben über die<br />

bereits vorgestellten Kommandozeilen-<br />

Parameter überschreiben.<br />

Die Entwickler möchten Frosted nach<br />

und nach auch in Entwicklungsumgebungen<br />

und Texteditoren integrieren.<br />

Derzeit lässt sich das Tool allerdings nur<br />

direkt aus Vim aufrufen. Hierzu installieren<br />

Anwender das Syntastic-Plugin [4].<br />

Ausblick<br />

Die Arbeit an Frosted schreitet derzeit<br />

rasch voran: Seit Anfang des Jahres gab<br />

es bereits 16 Releases. Timothy Crosley<br />

verspricht zudem einen offenen Entwicklungsprozess,<br />

jeder soll Verbesserungen<br />

einbringen können. So steht der Quellcode<br />

offen auf Github [2] bereit. Dort<br />

können Anwender auch um Hilfe bitten<br />

oder neue Funktionen vorschlagen. Weitere<br />

Diskussionen laufen über die Python<br />

Code-Quality-Mailingliste [5]. Schließlich<br />

darf man Timothy Crosley auch direkt<br />

per E-Mail kontaktieren. (mhu) n<br />

Infos<br />

[1] Pyflakes:<br />

[https:// github. com/ pyflakes/ pyflakes]<br />

[2] Frosted: [https:// github. com/​<br />

timothycrosley/ frosted]<br />

[3] Editorconfig: [http:// editorconfig. org]<br />

[4] Syntastic:<br />

[https:// github. com/ scrooloose/ syntastic]<br />

[5] Python Code Quality Mailingliste:<br />

[https:// mail. python. org/ mailman/ listinfo/​<br />

code‐quality]<br />

Frosted 07/2014<br />

Programmieren<br />

www.linux-magazin.de<br />

93<br />

Integrationshilfe<br />

Frosted stellt ein einfaches Python-API mit drei Funktionen bereit. Über<br />

dies kann der Python-Entwickler die Prüfung aus einem Python-Skript heraus<br />

anwerfen. Dazu bindet er zunächst die von Frosted bereitgestellten<br />

Funktionen ein:<br />

from frosted.api import *<br />

Anschließend prüft der folgende Aufruf den Inhalt der Python-Datei »beispiel1.py«:<br />

check_path("beispiel1.py")<br />

Der folgende Funktionsaufruf untersucht hingegen alle Dateien in den Unterverzeichnissen<br />

von »/home/tim/beispiel/«:<br />

check_recursive(["/home/tim/beispiel"])<br />

»check_recursive« erwartet dabei eine Liste mit Verzeichnisnamen, die<br />

es jeweils rekursiv durchläuft. Der dritten Funktion im Bunde übergeben<br />

Entwickler den zu prüfenden Python-Code direkt als String:<br />

meincode= "print hello"<br />

check(meincode, "pruefung1")<br />

Den zweiten String (»pruefung1«) setzt »check« dabei vor jede Fehlermeldung.<br />

Auf diese Weise können Entwickler mehrere Prüfvorgänge einfacher<br />

auseinanderhalten. Sofern der Code aus einem anderen Skript stammt,<br />

sollten Entwickler deshalb als zweiten Parameter den zugehörigen Dateinamen<br />

angeben.<br />

Tabelle 1: Ausgewählte Fehlernummern<br />

Fehlernummer<br />

Informationen<br />

I100<br />

I101<br />

Fehler<br />

E100<br />

E101<br />

E102<br />

E103<br />

E200<br />

E201<br />

E202<br />

E203<br />

E300<br />

E400<br />

E401<br />

E402<br />

Warnungen<br />

W100<br />

W200<br />

W201<br />

Bedeutung<br />

Alle allgemeinen Informationen<br />

»Generic«<br />

Alle Import-Fehler<br />

»UnusedImport«<br />

»ImportShadowedByLoopVar«<br />

»ImportStarUsed«<br />

Alle Fehler, die sich auf Funktionen und deren<br />

Aufrufe beziehen<br />

»MultipleValuesForArgument«<br />

»TooFewArguments«<br />

»TooManyArguments«<br />

Alle Fehler, die sich auf die Definition und Benutzung<br />

von Variablen beziehen<br />

Alle Syntax-Fehler<br />

»DoctestSyntaxError«<br />

»PythonSyntaxError«<br />

Exception-Warnungen<br />

Handling-Warnungen<br />

»FileSkipped«


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 07/2014<br />

94<br />

Kontra-intuitive Entscheidungen<br />

Eine Ziege, wahrscheinlich<br />

Mathematische Rätsel mit bedingten Wahrscheinlichkeiten knackt der Fachmann mit der Bayes-Formel oder<br />

auch mit diskreten Verteilungen – erzeugt von kurzen Perl-Skripten. Michael Schilli<br />

zur rot-schwarzen, weil sie die Vorbedingung<br />

des Experiments „Eine Seite ist rot“<br />

doppelt erfüllt.<br />

Schon vor 250 Jahren hatte sich der Mathematiker<br />

Thomas Bayes bemüht, solche<br />

intuitiv fehlerträchtigen Probleme in<br />

eine Formel zu fassen, an der sich nicht<br />

rütteln lässt. Der „Satz von Bayes“ [4]<br />

beschreibt in seiner „diachronischen Interpretierung“,<br />

wie sich die Wahrscheinlichkeiten<br />

von Hypothesen im Lauf der<br />

Zeit verändern, falls in einem Experiment<br />

neue Daten auftauchen. Die Formel<br />

© Bernardo Ertl, 123RF<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​2014/07/​plus]<br />

Das bei Statistikern gut bestallte Ziegenproblem<br />

[2] eignet sich bestens, um<br />

mehr praktisch als mathematisch Begabte<br />

reihenweise zu blamieren – besonders<br />

wenn sie leidenschaftlich gegen die<br />

richtige Lösung wettern. Im Kern geht es<br />

um eine Spielshow, bei der ein Kandidat<br />

auf eine Tür deutet und der Moderator<br />

eine Tür öffnet, hinter der entweder eine<br />

Ziege oder ein Gewinn wartet (Abbildung<br />

1). Wer hätte gedacht, dass sich<br />

Wahrscheinlichkeiten in offensichtlich<br />

festgezimmerten Fernsehstudios dramatisch<br />

ändern, nur weil der Moderator eine<br />

Tür ohne Preis öffnet?<br />

Das menschliche Gehirn scheint sich<br />

schwer zu tun mit so genannten bedingten<br />

Wahrscheinlichkeiten, die zufällige<br />

Ereignisse mit Vorbedingungen beschreiben.<br />

So auch bei der schon vor 15 Jahren<br />

im Perl-Snapshot [3] gestellten Aufgabe:<br />

Gegeben ist ein Zylinder, in dem drei Karten<br />

liegen. Die erste ist vorne und hinten<br />

schwarz, die zweite vorne und hinten<br />

rot, die dritte auf der einen Seite schwarz<br />

und auf der anderen rot (Abbildung 2).<br />

Eine Karte wird gezogen. Man sieht die<br />

Vorderseite, die ist rot. Wie hoch ist die<br />

Wahrscheinlichkeit, dass auch die Rückseite<br />

der gezogenen Karte rot ist?<br />

Kontra-intuitiv<br />

Die meisten Leute antworten darauf mit<br />

„50 Prozent“, denn scheinbar gibt es<br />

zwei gleich wahrscheinliche Fälle, die<br />

rot-schwarze und die rot-rote Karte, und<br />

einmal ist die Kehrseite schwarz und einmal<br />

rot. Verrät der Kundige dem Zuhörer<br />

aber dann, dass die korrekte Lösung „66<br />

Prozent“ lautet, reagieren die meisten<br />

verblüfft. Der Kniff liegt in den Vorbedingungen<br />

des Experiments: Die rot-rote<br />

Karte zählt einfach doppelt im Vergleich<br />

P(H|D) = P(H) * P(D|H) / P(D)<br />

definiert die Wahrscheinlichkeit P einer<br />

Hypothese H, zum Beispiel „Ich habe die<br />

rot-rote Karte gezogen“, in Abhängigkeit<br />

von neu auftauchenden Daten D wie „Die<br />

Vorderseite der gezogenen Karte ist rot“<br />

(Abbildung 3).<br />

Auf der rechten Seite der Gleichung ist<br />

P(H) die Ausgangswahrscheinlichkeit der<br />

Hypothese, noch bevor neue Daten vorliegen.<br />

Bayes multipliziert sie mit P(D|H),<br />

also der Wahrscheinlichkeit, dass die Daten<br />

unter der Hypothese vorliegen. Wie<br />

wahrscheinlich ist es dann, dass der Kartenfreund<br />

tatsächlich auf eine rote Vorderseite<br />

blickt, falls er die rot-rote Karte<br />

gezogen hat?<br />

Im Nenner der rechten Seite steht schließlich<br />

mit P(D) die Wahrscheinlichkeit der<br />

vorliegenden Daten, unabhängig von irgendeiner<br />

Hypothese. Wie wahrscheinlich<br />

ist es, dass der Proband nach dem<br />

Ziehen irgendeiner Karte auf eine rote<br />

Vorderseite starrt?<br />

Bayes weiß es besser<br />

Alle drei möglichen Hypothesen – zufällig<br />

gezogene Karten – sind in diesem Experiment<br />

offensichtlich gleich wahrschein-


© Cepheus, Wikipedia<br />

Perl-Snapshot 07/2014<br />

Programmieren<br />

Abbildung 1: In der Hoffnung, das Auto zu gewinnen, wählt der Kandidat die Tür<br />

1. Der Showmaster, der weiß, hinter welcher Tür das Auto steht, öffnet daraufhin<br />

Tür 3, hinter der eine Ziege steht. Er bietet dem Kandidaten an, die Tür zu wechseln.<br />

Ist es vorteilhaft für den Kandidaten, seine erste Wahl zu ändern und sich<br />

für Tür 2 zu entscheiden? (Quelle: Wikipedia)<br />

Abbildung 2: Aus einem Zylinder mit einer schwarz-roten, einer schwarz-schwarzen<br />

und einer rot-roten Karte zieht ein Proband eine Karte.<br />

www.linux-magazin.de<br />

95<br />

lich. Also ist P(H) – die Wahrscheinlichkeit,<br />

dass die rot-rote Karte gezogen wird<br />

– gleich 1/​3, denn sie wird in einem<br />

Drittel aller Fälle gezogen. Bei Annahme<br />

dieser Hypothese ist die Kehrseite der<br />

gezogenen rot-roten Karte trivialerweise<br />

in exakt 100 Prozent aller Fälle ebenfalls<br />

rot, also ist P(D|H) = 1.<br />

Unabhängig von der Hypothese einer gezogenen<br />

Karte ist die Wahrscheinlichkeit,<br />

nach dem Ziehen auf eine rote Kartenoberseite<br />

zu blicken, 50 Prozent, ergo<br />

ist P(D) = 1/​2. Schließlich liegen im<br />

Zylinder sechs Kartenhälften, von denen<br />

drei rot und drei schwarz sind. In die<br />

Bayes-Formel eingesetzt ergibt sich für<br />

P(H|D) entsprechend 1/​3 * 1/​(1/​2) =<br />

2/​3. Die Bayes-Formel sagt also mit 66<br />

Prozent das im Experiment nachweisbar<br />

korrekte Ergebnis voraus und widerlegt<br />

die Intuition.<br />

Wahrscheinlichkeit, diskret<br />

programmiert<br />

Das etwa ein halbes Jahr alte Buch „Think<br />

Bayes“ [5] beschreibt zusätzlich zur<br />

Bayes-Formel ein numerisches Verfahren,<br />

das sich zum Experimentieren leicht<br />

in handliche Skripte fassen lässt. Dazu<br />

legt man die Hypothesen in einer statistischen<br />

Verteilung ab, speichert sie also in<br />

einem Python-Dictionary oder Perl-Hash<br />

mit ihren Ausgangswahrscheinlichkeiten,<br />

multipliziert dann die Einzelwerte<br />

mit den bedingten Wahrscheinlichkeiten<br />

eintreffender Daten unter Annahme der<br />

jeweiligen Hypothese und normalisiert<br />

die Werte für alle Hypothesen.<br />

Heraus kommt die Wahrscheinlichkeit<br />

der gesuchten Hypothese im Lichte neu<br />

eingetroffener Daten. Dieses Verfahren<br />

und speziell die abschließende Normalisierung<br />

funktionieren allerdings nur<br />

dann, wenn<br />

n höchstens eine der Hypothesen wahr<br />

ist und<br />

n es keine weiteren Möglichkeiten gibt,<br />

also mindestens eine der Hypothesen<br />

wahr ist.<br />

Listing 1 zeigt die Implementierung des<br />

Skripts »cards«, das zuletzt die gesuchte<br />

Lösung 0,666… ausgibt. Es nutzt das<br />

Modul »Distrib.pm« (Listing 2), das<br />

die Hilfsfunktionen zur Berechnung der<br />

statistischen Verteilung bereitstellt. Die<br />

Wahrscheinlichkeiten für die Hypothesen<br />

bei der Ziehung verschiedener Karten<br />

(»BB«, »BR«, »RR« für black-black, blackred,<br />

red-red) füttern die Zeilen 7 bis 9 von<br />

mit jeweils dem Wert 1/​3 ins Modul.<br />

Die hinzugekommenen Daten, also die<br />

Oberseite der tatsächlich gezogenen<br />

Karte, geben die Zeilen 11 bis 13 von<br />

Listing 1 für jede Hypothese vor und<br />

multiplizieren die eingespeisten Hypothesenwerte<br />

damit. So ist die Wahrscheinlichkeit,<br />

dass der Proband eine rote Oberseite<br />

erblickt, bei der schwarz-schwarzen<br />

Karte gleich Null. Bei der schwarz-roten<br />

Karte beträgt sie 50 Prozent, je nachdem,<br />

wie herum die Karte aus dem Zylinder<br />

herauskommt. Und die rot-rote Karte präsentiert<br />

ihm in 100 Prozent der Fälle eine<br />

rote Seite, weshalb Zeile 13 den Multiplikator<br />

auf den Wert 1 setzt.<br />

Abschließend gibt der Aufruf der Methode<br />

»prob("RR")« die normalisierte<br />

Wahrscheinlichkeit für die Hypothese<br />

„rot-rote Karte“ zurück, die 2/​3 beträgt.<br />

Moose im vorliegenden Fall<br />

nur ein Gimmick<br />

Listing 2 nutzt das CPAN-Modul Moose,<br />

um sich die Definition des Distrib-Konstruktors<br />

in Perl zu ersparen. Allerdings<br />

muss der Code stattdessen mit »has«<br />

die Klassenattribute deklarieren und initialisieren.<br />

Im vorliegenden Fall nur ein<br />

netter Gimmick, bei weiteren Attributen<br />

wäre der Code deutlich schlanker als bei<br />

manueller Klassenfahrt.<br />

Die Methode »set()« nimmt den Namen<br />

einer Hypothese (zum Beispiel »BB«) und<br />

deren A-priori-Wahrscheinlichkeit entgegen<br />

und speichert sie in dem Objektinternen<br />

Array »values«. Zum Multiplizieren<br />

eines Hypothesenwerts mit einem<br />

Listing 1: »cards«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Distrib;<br />

04<br />

05 my $distrib = Distrib‐>new();<br />

06<br />

07 $distrib‐>set( "BB", 0.33 );<br />

08 $distrib‐>set( "BR", 0.33 );<br />

09 $distrib‐>set( "RR", 0.33 );<br />

10<br />

11 $distrib‐>mult( "BB", 0 );<br />

12 $distrib‐>mult( "BR", 0.5 );<br />

13 $distrib‐>mult( "RR", 1 );<br />

14<br />

15 $distrib‐>normalize();<br />

16<br />

17 print $distrib‐>prob( "RR" ), "\n";


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 07/2014<br />

96<br />

konstanten Wert bekommt »mult()« beide<br />

übergeben, findet den bislang gespeicherten<br />

Wert in »values« und multipliziert<br />

diesen mit dem hereingereichten Wert<br />

für »$prob«.<br />

Die Methode »normalize()« iteriert über<br />

alle bislang eingespeisten Werte im<br />

Hash, summiert sie in »$sum« und dividiert<br />

dann alle Werte durch die Summe.<br />

So beträgt die neue Summe aller Wahrscheinlichkeitswerte<br />

zum Beispiel nach<br />

einer Multiplikation wieder 1. Jeder<br />

Wert lässt sich somit als Wahrscheinlichkeit<br />

zwischen 0 und 1 interpretie-<br />

ren. Am Ende findet »prob()« den Wert<br />

für eine gesuchte Hypothese, indem es<br />

den Werte-Hash mit der von Moose automatisch<br />

erzeugten Methode »values()«<br />

als Referenz hervorholt und unter dem<br />

Schlüssel der gesuchten Hypothese den<br />

dort abgelegten Wert extrahiert.<br />

Abstrakter geht’s auch<br />

Wer mehrere solcher Tests für verschiedenartige<br />

Probleme durchführt, erkennt<br />

das Muster: Nach dem Aufsetzen der<br />

Hypothesen werden die Wahrscheinlichkeiten<br />

zusätzlicher Daten stets mit allen<br />

definierten Hypothesen multipliziert. Es<br />

bietet sich darum – wie in [5] vorgemacht<br />

– an, eine von »Distrib« abgeleitete<br />

Musterklasse »HypoTest« ähnlich wie<br />

Listing 2 zu definieren, die mittels einer<br />

Methode »update()« die Werte für alle<br />

Hypothesen auffrischt.<br />

Weiter verlässt sie sich darauf, dass wiederum<br />

von ihr abgeleitete Klassen (beispielsweise<br />

»CardHypoTest« in Listing<br />

4) die abstrakte Methode »likelihood()«<br />

überladen und basierend auf der übergebenen<br />

Hypothese und den zusätzlich<br />

Listing 2: »Distrib.pm«<br />

01 use Moose;<br />

02<br />

03 has 'values' => (is => 'rw', isa =><br />

'HashRef',<br />

04 default => sub { {} } );<br />

05<br />

06 sub set {<br />

07 my( $self, $hypo, $prob ) = @_;<br />

08<br />

09 $self‐>values()‐>{ $hypo } = $prob;<br />

10 }<br />

11<br />

12 sub mult {<br />

13 my( $self, $hypo, $prob ) = @_;<br />

14<br />

15 $self‐>values()‐>{ $hypo } *= $prob;<br />

16 }<br />

17<br />

18 sub normalize {<br />

19 my( $self ) = @_;<br />

20<br />

21 my $values = $self‐>values();<br />

22 my $sum = 0;<br />

23<br />

24 for my $hypo ( keys %$values ) {<br />

25 $sum += $values‐>{ $hypo };<br />

26 }<br />

27 for my $hypo ( keys %$values ) {<br />

28 $values‐>{ $hypo } /= $sum;<br />

29 }<br />

30 }<br />

31<br />

32 sub prob {<br />

33 my( $self, $hypo ) = @_;<br />

34<br />

35 return $self‐>values()‐>{ $hypo };<br />

36 }<br />

37<br />

38 1;<br />

Listing 3: »HypoTest.pm«<br />

01 package HypoTest;<br />

02 ###########################################<br />

03 # Hypotest ‐ Testing hypotheses<br />

04 # 2014, Mike Schilli <br />

05 ###########################################<br />

06 use Moose;<br />

07 use Distrib;<br />

08 <br />

09 has 'distrib' => (<br />

10 is => 'rw',<br />

11 isa => 'Distrib',<br />

12 default => sub { Distrib‐>new() } );<br />

13 <br />

14 sub hypo_add {<br />

15 my( $self, $hypo ) = @_;<br />

16 <br />

17 $self‐>distrib()‐>set( $hypo, 1 );<br />

18 }<br />

19 <br />

20 sub update {<br />

21 my( $self, $data ) = @_;<br />

22 <br />

23 my $hypos = $self‐>distrib()‐>values();<br />

24 <br />

25 for my $hypo ( keys %$hypos ) {<br />

26 $self‐>distrib()‐>mult( $hypo,<br />

27 $self‐>likelihood( $data, $hypo )<br />

28 );<br />

29 }<br />

30 <br />

31 $self‐>distrib()‐>normalize();<br />

32 }<br />

33 <br />

34 sub print {<br />

35 my( $self ) = @_;<br />

36 <br />

37 my $values = $self‐>distrib()‐>values();<br />

38 <br />

39 for my $hypo ( keys %$values ) {<br />

40 print "$hypo: $values‐>{ $hypo }\n";<br />

41 }<br />

42 }<br />

43 <br />

44 sub likelihood {<br />

45 die "Subclass needs to override this";<br />

46 }<br />

47 <br />

48 1;<br />

Listing 4: »hypotest«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 package CardHypoTest;<br />

04 use base qw( HypoTest );<br />

05<br />

06 sub likelihood {<br />

07 my( $self, $data, $hypo ) = @_;<br />

08<br />

09 # count the number or Rs in the string<br />

10 my @matches = ( $hypo =~ /($data)/g );<br />

11 return @matches / 2.0;<br />

12 }<br />

13<br />

14 package main;<br />

15 my $suite = CardHypoTest‐>new();<br />

16<br />

17 $suite‐>hypo_add( "RR" );<br />

18 $suite‐>hypo_add( "BB" );<br />

19 $suite‐>hypo_add( "RB" );<br />

20<br />

21 $suite‐>update( "R" );<br />

22 $suite‐>print();


Perl-Snapshot 07/2014<br />

Programmieren<br />

Abbildung 3: Der Satz von Bayes definiert die Wahrscheinlichkeit einer Hypothese in Abhängigkeit von neu<br />

auftauchenden Daten. (Quelle: Wikipedia, [4])<br />

verfügbaren Daten die Wahrscheinlichkeit<br />

P(D|H) zurückgeben.<br />

Das in Listing 3 vorgestellte Framework<br />

»HypoTest« ruft diese Methode wiederholt<br />

auf, um die Werte für einzelne Hypothesen<br />

einzuholen, bevor es sie in der<br />

Verteilung »Distrib« setzt. Das Framework<br />

bietet weiterhin eine Methode »print()«,<br />

mit der es die Werte aller aktualisierten<br />

Wahrscheinlichkeiten für die jeweilige<br />

Hypothese ausgibt.<br />

Der Hypotest<br />

In Listing 4 nimmt »likelihood()« in<br />

»$data« vom Hauptprogramm den Buchstaben<br />

R entgegen – um eine gezogene<br />

Karte mit roter Vorderseite als Zusatzbedingung<br />

anzumelden – und rechnet<br />

dann basierend auf der ebenfalls hereingereichten<br />

Hypothese (»RR«, »RB«, »BB«)<br />

aus, wie wahrscheinlich es ist, dass der<br />

Proband auf eine rote Vorderseite blickt:<br />

Eine glatte 1 (also 100 Prozent) für »RR«,<br />

0,5 für »RB« und 0 für »BB«.<br />

Die Funktion setzt dazu einen regulären<br />

Ausdruck ab, der die Anzahl der Rs in<br />

der Hypothese zählt, und dividiert das<br />

Ergebnis anschließend durch 2 als Fließkommawert,<br />

damit Perl keine Integerdivision<br />

vornimmt und den Divisionsrest<br />

unterschlägt.<br />

Am Ende gibt »hypotest« die Wahrscheinlichkeiten<br />

für alle Hypothesen in der Verteilung<br />

mittels der Methode »print()« aus<br />

dem Modul »HypoTest« an und berichtet<br />

zu Recht, dass die rot-rote Karte in 2/​3<br />

aller Fälle erscheint:<br />

$ ./hypotest<br />

RB: 0.333333333333333<br />

RR: 0.666666666666667<br />

BB: 0<br />

Damit sieht der Proband, der gerade auf<br />

eine rote Vorderseite blickt und diese<br />

Karte umdreht, mit 2/3 Wahrscheinlichkeit<br />

eine ebenso rote Rückseite.<br />

Paarhufer, fassungslos<br />

Was mit Ziegen hinter Türen begann, endet<br />

mit der Erkenntnis, dass sich einfache<br />

Skripte für mathematisch fundierte Folgerungen<br />

eignen. Selbst wer beim Anblick<br />

einer Formel in Ohnmacht fällt, kommt<br />

auf seine Kosten und lernt dank weiterer<br />

Beispiele in [5] oder [6] (zwar in Python<br />

und nicht in Perl), dass statistische Alltagsprobleme<br />

mit Lösungen aufwarten,<br />

die intuitiv nicht zu erfassen sind. (jk)n<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2014/ 07/ Perl]<br />

[2] Ziegenproblem: [http:// de. wikipedia. org/​<br />

wiki/ Ziegenproblem]<br />

[3] M. Schilli, „Perl-Snapshot: Monty-Hall und<br />

andere Probleme“: <strong>Linux</strong>-<strong>Magazin</strong> 09/​99<br />

[4] Satz von Bayes: [http:// de. wikipedia. org/​<br />

wiki/ Satz_von_Bayes]<br />

[5] Allen B. Downey, „Think Bayes“: O’Reilly,<br />

2013<br />

[6] Cameron Davidson-Pilon, „Probabilistic<br />

Pro gramming & Bayesian Methods for Hackers“:<br />

[https:// github. com/​CamDavidsonPilon/​Probabilistic‐Programming‐​and‐​<br />

Bayesian‐Methods‐for‐Hackers]<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seiner seit 1997<br />

erscheinenden Kolumne<br />

forscht er jeden Monat<br />

nach praktischen Anwendungen der Skriptsprache<br />

Perl. Unter [mschilli@perlmeister. com] beantwortet<br />

er gerne Fragen.<br />

www.linux-magazin.de<br />

97


Service<br />

www.linux-magazin.de IT-Profimarkt 07/2014<br />

98<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-Profimarkt 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-Profimarkt-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-profimarkt.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-Profimarkt – 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 3 3 3 3<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de 3 3 3 3 3<br />

Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de 3 3 3 3 3<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de 3 3 3 3 3<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de 3 3 3 3 3<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com 3 3 3 3<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de 3 3 3<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de 3 3 3 3<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de 3 3 3 3 3<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de 3<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de 3 3 3 3 3<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net 3 3 3 3 3<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de 3 3 3 3 3 3<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de 3 3 3 3 3<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de 3 3 3 3 3<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de 3<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 3 3 3 3<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de 3 3 3 3<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de 3 3 3 3 3<br />

saveIP GmbH 64283 Darmstadt, Saalbaustr. 8-10 06151-666266 www.saveip.de 3 3 3 3 3<br />

<strong>Linux</strong>Haus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de 3 3 3 3 3<br />

Manfred Heubach EDV und Kommunikation<br />

Waldmann EDV Systeme + Service<br />

73730 Esslingen, Hindenburgstr. 171 0711-4904930 www.heubach-edv.de 3 3 3 3<br />

74321 Bietigheim-Bissingen, Pleidelsheimer<br />

Str. 25<br />

07142-21516 www.waldmann-edv.de 3 3 3 3 3<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de 3 3 3 3 3 3<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de 3 3 3<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

3<br />

(S.100)


Trust International Reservation Services GmbH ist ein globaler<br />

Anbieter von Reservierungssystemen und verwandten Produkten.<br />

Tausende von Hotels nutzen die Dienste von Trust International als<br />

einer der führenden Anbieter in diesem Markt. Für unser Rechenzentrum-Team<br />

im Headoffice in Frankfurt suchen wir<br />

Junior- und Senior <strong>Linux</strong><br />

Administratoren (m/w),<br />

die mit Herz und Verstand an der Konzeption, der Durchführung<br />

sowie dem Betrieb und der Verbesserung unseres<br />

<strong>Linux</strong>- sowie an Teilen unseres Netzwerk- und Sicherheitsumfelds<br />

arbeiten.<br />

Unsere Technologie: Die Trust <strong>Linux</strong>-Umgebung basiert vor allem auf<br />

Ubuntu <strong>Linux</strong>, in Verbindung mit einer Vielzahl von Anwendungen - von<br />

Java-Anwendungsservern (einschließlich J2EE), Apache über Datenbanken<br />

wie MySQL und MongoDB bis hin zu maßgeschneiderten<br />

C/C++-Anwendungen und vieles mehr. Virtualisierungstechnologien<br />

(einschließlich zentraler Speicher) werden genutzt. PCI-DSS Regeln<br />

werden angewandt.<br />

Die Aufgaben können je nach Berufserfahrung variieren, aber dazu<br />

gehören auf jeden Fall:<br />

▪ Weitere Automatisierung der <strong>Linux</strong>-Umgebung (Deployment neuer<br />

virtueller Maschinen, zentrale Konfiguration und Patch-Management,<br />

Monitoring,...) ▪ Verbesserung der Protokollierung und Log-Analyse-Infrastruktur<br />

(System- und Anwendungsprotokolle) ▪ PCI-DSS<br />

Compliance IT-Sicherheit (evtl. als Security Officer mit allen damit verbundenen<br />

Aufgaben/Rechten) ▪ Pflege/Optimierung der Datenbankumgebung<br />

(MySQL, MongoDB)<br />

Ihre Skills:<br />

▪ Sehr gute <strong>Linux</strong>-Kenntnisse (Ubuntu/Debian <strong>Linux</strong> im Besonderen),<br />

einschließlich Scripting (bash, Perl und/oder Python) sowie die<br />

üblichen <strong>Linux</strong>-Anwendungen, Tools und Daemons ▪ Kenntnisse in Puppet<br />

und OpenLDAP ▪ <strong>Gute</strong> Kenntnisse der gängigen Web-Server (Apache<br />

und nginx im Besonderen) ▪ <strong>Gute</strong> Kenntnisse der Java-Anwendungsserver-Umgebung<br />

(Tomcat) ▪ Netzwerkkenntnisse (TCP/IP, Ethernet,...) in<br />

einer LAN- und WAN-Umgebung ▪ Kenntnisse über Virtualisierungstechnologien<br />

(XenServer/XCP, Xen, KVM, VMware,...) ▪ Kenntnisse in<br />

MySQL (einschließlich Optionen für hohe Verfügbarkeit, etc.)<br />

Was wünschen wir uns von Ihnen?<br />

▪ Sie sind organisiert und gründlich ▪ Sie zeigen eine starke Kommunikationsfähigkeit<br />

und mögen die Arbeit in einem internationalen Team ▪ Sie<br />

sind bereit im Team zu arbeiten, um optimale Ergebnisse zu erzielen<br />

▪ Sie sind in der Lage sich schnell auf eine sich verändernde Umwelt<br />

einzustellen und schauen auch gerne über den Tellerrand hinaus ▪ Sie<br />

haben Ideen und möchten sie auch einbringen<br />

Ihre Erfahrung:<br />

▪ mehrjährige Erfahrung in der <strong>Linux</strong>-Server-Administration in einer<br />

100+-Server-Umgebung ▪ Erfahrung in Java-Application-Server-Umgebungen<br />

▪ Erfahrung in MySQL ▪ <strong>Gute</strong>s Verständnis, wie sinnvolle und<br />

sichere IT-Infrastruktur zu planen, zu implementieren und zu betreiben<br />

ist ▪ <strong>Gute</strong> Kenntnisse der gängigen Web-Technologien wie Web-Services<br />

Haben wir Ihr Interesse geweckt und Sie möchten unser Team verstärken?<br />

Dann überzeugen Sie uns mit Ihren aussagekräftigen Bewerbungsunterlagen<br />

an IHS-Group-IHSG0925@applications.recruiterbox.com.<br />

Weitere spannende Positionen bei Trust International z. B. C+/++<br />

Entwickler, Web Developer, etc., finden Sie auf unserer Homepage<br />

www.trustinternational.com.<br />

Wir freuen uns natürlich auch über Initiativbewerbungen!<br />

Was bieten wir Ihnen:<br />

▪ Ein sehr gutes Arbeitsklima in einem dynamischen Team ▪ Eigenverantwortliches<br />

Arbeiten ▪ Die Möglichkeiten eines internationalen<br />

Unternehmens ▪ Leistungsgerechte Bezahlung mit guten Sozialleistungen<br />

sowie Kantinen-Zuschuss, Fahrkarte etc.<br />

Ich bin gespannt auf Ihre Bewerbung und<br />

stehe für Fragen gerne zur Verfügung!<br />

Antje Grösser<br />

Manager Talent Acquisition<br />

Tel.: +49 (0)69 - 66056171<br />

agroesser@ihs-worldwide.com<br />

Trust International Hotel Reservation Services GmbH<br />

Main Airport Center (MAC)<br />

Unterschweinstiege 2-14<br />

60549 Frankfurt am Main<br />

www.trustinternational.com


main red<br />

white<br />

gradient bottom<br />

black<br />

Service<br />

www.linux-magazin.de IT-Profimarkt Markt 07/2014<br />

100<br />

IT-Profimarkt/Seminare<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 98)<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com 3 3 3 3 3<br />

<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de 3 3 3 3 3 3<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de 3 3 3 3 3<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de 3 3 3 3 3<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de 3 3 3 3 3 3<br />

Tuxedo Computers GmbH 86343 Königsbrunn , Zeppelinstr. 3 0921 / 16 49 87<br />

87 - 0<br />

OSTC Open Source Training and Consulting<br />

GmbH<br />

www.linux-onlineshop.de 3 3 3 3<br />

90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de 3 3 3 3 3 3<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de 3 3 3<br />

pascom - Netzwerktechnik GmbH &<br />

Co.KG<br />

94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net 3 3 3 3 3<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch 3 3 3<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch 3 3 3<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch 3 3 3 3 3<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com 3 3 3 3<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

n<br />

IT-Sicherheit Grundlagen<br />

Mit Prof. Dr. Tobias Eggendorfer<br />

n Holen Sie sich Infos aus erster Hand vom Forensikexperten und IT-Professor!<br />

n Bauen Sie ein verlässliches Sicherheitskonzept auf!<br />

n Überprüfen Sie Ihre IT anhand der vorgestellten Sicherheitskonzepte!<br />

MEDIALINX<br />

IT-ACADEMY<br />

powered by<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

IT-Sicherheit Grundlagen<br />

mit Prof. Dr. Tobias Eggendorfer,<br />

Hochschule<br />

Ravensburg-Weingarten<br />

299 €<br />

YOUTUBE LOGO SPECS<br />

PRINT<br />

on light backgrounds<br />

standard<br />

on dark backgrounds<br />

standard<br />

PMS 1795C<br />

C0 M96 Y90 K2<br />

PMS 1815C<br />

C13 M96 Y81 K54<br />

WHITE<br />

C0 M0 Y0 K0<br />

BLACK<br />

C100 M100 Y100 K100<br />

no gradients<br />

no gradients<br />

watermark<br />

watermark<br />

stacked logo (for sharing only)<br />

stacked logo (for sharing only)<br />

/MedialinxAcademy<br />

www.medialinx-academy.de


Basics. Projekte.<br />

Ideen. Know-how.<br />

NEU!<br />

Mini-Abo<br />

zwei Ausgaben<br />

nur 9,80 €<br />

Jetzt bestellen!<br />

www.medialinx-shop.de/raspberry-pi-geek<br />

RPG_1-4DIN_miniabo_v1.indd 1<br />

Stellenanzeige<br />

28.03.2014 14:56:50 Uhr<br />

Network<br />

Kunden im Fokus<br />

Kanban<br />

Monitoring<br />

Open Source<br />

High Availability<br />

Teamgeist<br />

Puppet<br />

Virtualisation<br />

Scalability<br />

OpenStack<br />

Ubuntu<br />

hungry<br />

Ceph<br />

ehrlich<br />

IPv6<br />

solid<br />

nine.ch ist der führende Anbieter von Managed <strong>Linux</strong> Servern in der Schweiz.<br />

Wir gewährleisten den Betrieb von Websites wie rogerfederer.com und nzz.ch.<br />

Willst du unser Team<br />

dabei unterstützen?<br />

Jetzt unter nine.ch/jobs informieren und bewerben!<br />

Nine Internet Solutions AG<br />

Albisriederstrasse 243 a<br />

8047 Zürich


Seminare<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Effiziente BASH-Skripte<br />

mit Klaus Knopper,<br />

Gründer der<br />

Knoppix-Distribution,<br />

KNOPPER.NET<br />

199 €<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 />

Einfache IMAP-Server<br />

mit Dovecot<br />

mit Peer Heinlein,<br />

Heinlein Support GmbH<br />

249 €<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_Dovecot-Schulung.indd Uhr<br />

1<br />

02.08.2013 11:53:34 Uhr<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 />

Puppet Fundamentals<br />

– das offizielle Training<br />

NETWAYS ®<br />

mit Achim Ledermüller,<br />

Netways GmbH<br />

299 €<br />

www.medialinx-academy.de<br />

X25<br />

IT-Academy_1-9_LPIC-Schulungen.indd 1<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

02.08.2013 11:53:58 IT-Academy_1-9_Netways-Schulung.indd Uhr<br />

1<br />

MEDIALINX<br />

IT-ACADEMY<br />

Python für<br />

Systemadministratoren<br />

mit Rainer Grimm,<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-Onlinetrainings<br />

Mit Experten lernen.<br />

16.09.2013 12:34:33 Uhr<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 />

News,<br />

Blogs<br />

& JoBs<br />

liNux uNd opeN source<br />

topaktuell mit unserem Newsletter<br />

www.linux-magazin.de/newsletter<br />

IT-Academy_1-9_Python-Schulung.indd 1<br />

02.08.2013 11:54:11 IT-Academy_1-9_Zarafa-Schulung.indd Uhr<br />

1<br />

02.08.2013 11:55:03 Uhr


Service<br />

www.linux-magazin.de Inserenten 07/2014<br />

104<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 11<br />

1blu AG http://​www.1blu.de 15<br />

CANDAN THE WEB COMPANY http://​www.canhost.de 57<br />

Deutsche Telekom AG http://​www.telekom.com 25<br />

embedded projects GmbH http://​www.embedded-projects.net 101<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 103<br />

Host Europe GmbH http://​www.hosteurope.de 2<br />

Ico Innovative Computer GmbH http://​www.ico.de 29<br />

IT-Administrator http://​www.it-administrator.de 87<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 39, 69, 73<br />

<strong>Linux</strong>-<strong>Magazin</strong> Online http://​www.linux-magazin.de 89, 103<br />

<strong>Linux</strong>hotel http://​www.linuxhotel.de 13<br />

<strong>Linux</strong>User http://​www.linuxuser.de 102<br />

Medialinx IT-Academy http://​www.medialinx-academy.de 33, 62,<br />

65, 100, 103,<br />

Mittwald CM Service GmbH & Co. KG http://​www.mittwald.de 17<br />

Netways GmbH http://​www.netways.de 43, 97<br />

Nine Internet Solutions AG http://​www.nine.ch 101<br />

PlusServer AG http://​www.plusserver.de 19, 53, 59,79,<br />

85, 91<br />

Raspberry Pi Geek http://​www.raspberry-pi-geek.de 40, 101<br />

Schutzwerk http://​www.schutzwerk.com 9<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 103<br />

Städel Communications http://​www.staedelcomms.com 21<br />

Thomas Krenn AG http://​www.thomas-krenn.com 108<br />

Trust Hotelreservierungen http://​www.trustinternational.com 99<br />

Tuxedo Computers GmbH http://​www.linux-onlineshop.de 107<br />

Ubuntu Spezial http://​www.ubuntu-user.de 61, 83<br />

Webtropia http://​www.webtropia.com​ 37<br />

Einem Teil dieser Ausgabe liegen Beilagen der Firmen European IT Storage Ltd. (http://​<br />

www.eurostor.com) und HACKATTACK IT SECURITY GmbH (http://​www.hackattack.com)<br />

bei. Wir bitten unsere Leser um freundliche Beachtung.<br />

Veranstaltungen<br />

02.-06.06.2014<br />

DrupalCon Austin 2014<br />

Austin, TX, USA<br />

https://austin2014.drupal.org<br />

13.-14.06.2014<br />

Texas <strong>Linux</strong> Fest 2014<br />

Austin, Texas, USA<br />

http://2014.texaslinuxfest.org<br />

17.-18.06.2014<br />

Enterprise Apps World<br />

London, UK<br />

http://www.apps-world.net/enterpriseapps/<br />

19.-22.06.2014<br />

Gulaschprogrammiernacht 2014<br />

Hochschule für Gestaltung (HfG)<br />

Karlsruhe, Germany<br />

https://entropia.de/GPN14<br />

20.-22.06.2014<br />

SouthEast <strong>Linux</strong>Fest 2014<br />

Charlotte, NC, USA<br />

http://www.southeastlinuxfest.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 />

24.-26.06.2014<br />

Magnolia Konferenz 2014<br />

Basel, Schweiz<br />

http://www.magnolia-cms.com/conference<br />

28.06.2014<br />

Pi and More 5<br />

Universität Trier<br />

http://www.piandmore.de<br />

28.-29.06.2014<br />

Maker Faire Kansas City<br />

Kansas City, MO, USA<br />

http://www.makerfairekc.com<br />

01.-02.07.2014<br />

Automotive <strong>Linux</strong> Summit<br />

Tokyo, Japan<br />

http://events.linuxfoundation.org/events/automotivelinux-summit-spring<br />

21.-27.07.2014<br />

Europython 2014<br />

Berliner Congress Center<br />

Berlin<br />

https://ep2014.europython.eu<br />

15.-17.08.2014<br />

GNU Hackers’ Meeting 2014<br />

TU München (Campus Garching)<br />

Garching<br />

https://www.gnu.org/ghm/upcoming.html<br />

18.-19.08.2014<br />

<strong>Linux</strong> Security Summit 2014<br />

Chicago, IL, USA<br />

http://kernsec.org/wiki/index.php/<strong>Linux</strong>_Security_<br />

Summit_2014<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 />

23.-31.08.2014<br />

DebConf14<br />

Portland, OR, USA<br />

http://debconf14.debconf.org<br />

05.-06.09.2014<br />

Swiss Perl Workshop 2014<br />

Olten, Schweiz<br />

http://act.perl-workshop.ch/spw2014/<br />

06.-12.09.2014<br />

Akademy 2014<br />

Brünn, Tschechien<br />

http://akademy.kde.org/2014<br />

15.-19.09.2014<br />

Linaro Connect USA<br />

Burlingame, California, USA<br />

http://www.linaro.org/connect/lcu/lcu14/<br />

19.-20.09.2014<br />

12. Kieler Open-Source- und <strong>Linux</strong>-Tage<br />

Kieler Innovations- und Technologiezentrum<br />

24118 Kiel<br />

http://www.kieler-linuxtage.de<br />

20.-21.09.2014<br />

World Maker Faire New York<br />

New York, NY, USA<br />

http://makerfaire.com<br />

22.09.2014<br />

2014 High Performance Computing for Wall Street<br />

New York, NY, USA<br />

http://flaggmgmt.com/hpc/<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 />

17.-19.10.2014<br />

Ubucon 2014<br />

Katlenburg-Lindau<br />

http://ubucon.de/2014/<br />

09.-14.11.2014<br />

USENIX LISA ’14<br />

Seattle, WA, USA<br />

https://www.usenix.org/conference/lisa14<br />

12.-13.11.2014<br />

Apps World<br />

London, UK<br />

http://www.apps-world.net/europe/


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 Zack Brown, Mela Eckenfels, Heike Jurzik (hej), Charly<br />

Kühnast, Martin Loschwitz, Michael Schilli, Tim Schürmann,<br />

Mark Vogelsberger, Uwe Vollbracht<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 />

Judith Erb, Klaus Rehfeld, Boris Schmelter (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 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 />

Zenit Pressevertrieb GmbH<br />

Medialinx AG Leserservice-Team<br />

Postfach 810580, 70522 Stuttgart<br />

Tel.: +49 711 7252 250<br />

Fax: +49 711 7252 399<br />

E-Mail: medialinx@zenit-presse.de<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 181,90 4 198,80 Sfr 235,90 4 219,90<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 im 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 />

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.2014.<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<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 Zustimmung zum Abdruck. Für unverlangt<br />

eingesandte Manuskripte kann keine Haftung übernommen werden.<br />

Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim 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 – 2014 Medialinx AG<br />

Impressum 07/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 Künftiger Klassiker? 76<br />

Zack Brown Zacks Kernel-News 20<br />

Dr. Katja Flinzner Verflixte Verwalter 42<br />

Dr. Rolf Freitag Mit der Stoppuhr 70<br />

Richard Hartmann Catering V6 26<br />

Charly Kühnast Aber gleich! 63<br />

Martin Loschwitz Erste Hilfe 64<br />

Monika Prell Entscheidungshilfe 80<br />

Michael Schilli Eine Ziege, wahrscheinlich 94<br />

Tim Schürmann Bärendienst 54<br />

Tim Schürmann Code-Korrektor 92<br />

Tim Schürmann Fokussiertes Spinnchen 50<br />

Jan Stepien Tux liest 86<br />

Mark Vogelsberger Blutendes Herz 88<br />

Uwe Vollbracht Tooltipps 58


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 08/2014 02/2013 07/2014 01/2013<br />

106<br />

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

08/2014 Dachzeile<br />

Hut ab: RHEL 7<br />

© Rancz Andrei, 123RF<br />

Die Lehren aus Heartbleed<br />

Der Open-SSL-Schock sitzt noch in den Knochen. Der Schwerpunkt<br />

der nächsten Ausgabe nutzt die Sensibilisierung und<br />

gibt Denkanstöße. So stellt er die Frage, ob mehr Projektfinanzen<br />

die Software-Sicherheit verbessern helfen und wie Funding<br />

funktioniert. In der Hauptsache gehts aber um Technik,<br />

beispielsweise um Schlüssellängen, Protokolle und Cipher-<br />

Suites, mit denen der Apache-Admin auf Nummer sicher geht.<br />

Ein weiterer Artikel macht alle prinzipiell zur Trennung Bereiten<br />

bekannt mit den wichtigsten Open-SSL-Konkurrenten.<br />

Von Heartbleed wachgerüttelten Entwicklern zeigt ein letzter<br />

Beitrag, wie sie mit Code Reviews, statischer Analyse oder<br />

Fuzzing ihrem eigenen Code die Bugs aus dem Pelz lesen.<br />

MAGAZIN<br />

Überschrift<br />

Die Tester des <strong>Linux</strong>-<strong>Magazin</strong>s haben einen Release Candidate<br />

des anstehenden Red Hat Enterprise <strong>Linux</strong> zu fassen bekommen.<br />

Anhand dessen muss Red Hat beweisen, ob Cluster-,<br />

Cloud- und HA-Features ihres neuen Hauptproduktes sowie<br />

XFS als dessen neues Defaultdateisystem, Open LMI und Docker<br />

den Subskriptionspreis wert sind.<br />

Swinging PXEs<br />

Das I-PXE-Projekt mausert sich zur ansehnlichen Alternative<br />

zum klassischen PXE. Es ergänzt das Preboot Execution Environment<br />

um Protokolle wie HTTP, I-SCSI und ATA over Ethernet,<br />

und es arbeitet wenn nötig auch drahtlos.<br />

Baukunst<br />

Meson ist ein schnelles, zuverlässiges und überdies leicht bedienbares<br />

Buildsystem. Es zimmert Software mit <strong>Linux</strong>, Windows,<br />

Mac OS X und anderen Posix-konformen Systemen. Auf<br />

Wunsch schlägt es gar Brücken zu Tools wie Valgrind oder den<br />

Werkzeugen aus Qt 5. In einem Monat ist Besichtigungstermin.<br />

Die Ausgabe 08/2014<br />

erscheint am 3. Juli 2014<br />

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

auf 07/2014<br />

Die nächste Ausgabe erscheint am 18. Juni<br />

Ruckzuck zur Website<br />

Wer nur eine Visitenkarte im Netz be nötigt oder eine kleine<br />

Vereinsseite, der braucht kein ausgewachsenes Content-Management-System.<br />

Auf Komfort brauchen Sie aber nicht zu<br />

verzichten: Wir zeigen im kommenden Schwerpunkt, wie Sie<br />

mit einem Mini-CMS, einem gut ausgestatteten Editor und ergänzenden<br />

Werkzeugen im Handumdrehen eine Webpräsenz<br />

aufsetzen, die dem heutigen Standard genügt.<br />

Skriptgesteuertes Backup<br />

Mit Obnam setzen Sie ein hand op ti mier tes Backup auf, das die<br />

Bandbreite und den Plattenplatz schont. Das Programm versteht<br />

sich auf Deltas, erlaubt das Verschlüsseln der Daten und<br />

eignet sich bestens für den Einsatz in einem Skript.<br />

© Tresure, freeimages.com<br />

Arch <strong>Linux</strong> und Derivate<br />

Noch gehört Arch <strong>Linux</strong> zu den Geheimtipps unter den Distributionen.<br />

Es verspricht durch ein User-Repository stets topaktuelle<br />

Software. Wie gut sich mit der Distribution arbeiten<br />

lässt, unter suchen wir in der nächsten Ausgabe.


Ihr<strong>Linux</strong>Spezialist<br />

<strong>Linux</strong>-Onlineshop<br />

linux@linux-onlineshop.de<br />

YOUR /HOME/SHOP<br />

3% Rabatt<br />

+++ www.<strong>Linux</strong>-Onlineshop.de +++ www.<strong>Linux</strong>-Onlineshop.de +++ www.<strong>Linux</strong>-Onlineshop.de +++<br />

<strong>Linux</strong>-Onlineshop<br />

DerName TUXEDO Computersvereintsowohldie Ansprüche alsauch dasProduktspektrum in sich:<br />

TUXEDO istim Englischen derMaßanzug.Ebensostecktdarin derNamedes<strong>Linux</strong>-Maskottchen Tux!<br />

TUXEDO Computerssind also nichtnurNotebooksund Computermit<strong>Linux</strong>-Hardware im Maßanzug,<br />

man erkenntsie schon sofortam Namen alssolche!<br />

Nurdortwo TUXEDO draufsteht,istalso auch <strong>Linux</strong>-Hardware im Maßanzug drin :)<br />

TUXEDO BU1503<br />

TUXEDO XC15 & 17<br />

+Kartenleser:6-in-1<br />

+2.0MPWebcam<br />

+beleuchteteTastatur<br />

+<strong>Linux</strong>,WindowsoderDual<br />

+auchohneGrafikkarteerh.<br />

TUXEDO UC1402<br />

TUXEDO BC/DC1704<br />

TUXEDO BU1402<br />

TUXEDO One & Six<br />

+Kartenleser:9-in-1<br />

+1.0MPWebcam<br />

+Besonderheiten:<br />

1xSATA+mSATAHDD/SSD<br />

nur1,8kginkl.Akku<br />

Geek und Nerd Shirts<br />

Über300 T-Shirts sowie<br />

Polos + Langarm + Sweats<br />

SiesehenhierlediglicheinenkleinenAusschnitaus<br />

unserem Sortiment!Sicherfinden auch Sieunter<br />

unserenfast300verschiedenenMotivendasrichtige<br />

fürsichoderalsGeschenkfürandere;-)<br />

<strong>Linux</strong> USB-Sticks<br />

4 bis 32 GB<br />

K/X/Ubuntu,Fedora,<br />

<strong>Linux</strong>Mint,Knoppix,<br />

openSUSE,Debian<br />

uvm. auf4bis32GB<br />

USB-Sticks.<br />

openSUSE 13.1<br />

2 DVDs + Handb + Addons<br />

TUXEDO Nano<br />

Flexibel,klein,leistungsstark<br />

+Flexibler,modularerAufbau:<br />

>WahlweisezusätzlichesLaufwerk<br />

(DVD-RW oderBlu-Ray-RW)<br />

>oderzusätzlicheFestplate<br />

>oderVESA-/Monitor-Halterung<br />

>oderabersokleinwienurmöglich<br />

+Klein:>220mm x197mm x63mm<br />

>stehendoderliegend<br />

+Leistungsstark:<br />

>biszuIntelCorei74770T(Haswel)<br />

>Energiesparprozessorenfür<br />

geringenStromverbrauch<br />

>SilentLüfterfürflüsterleisenBetrieib<br />

>biszu16GB ArbeitsspeicherDDR3<br />

>biszudreiHDD/SSD SATA3/6GBs<br />

>2xUSB3.0+4xUSB2.0+1xeSATA<br />

>HDMI/DVI/VGAAnschlüsse<br />

>1GbitLAN (WLAN-Stickopt.)<br />

>7.1CH HD Audio<br />

Sie sehen hierlediglich einen kleinen AuschnittunsererSonderangebote!UnsergesamtesSortimentkönnen Sie<br />

unterwww.linux-onlineshop.de einsehen!A le Preise inkl.gesetzlicherMwSt.in Höhe von 19% .<br />

w w w .<strong>Linux</strong>-Onlineshop.de<br />

Fon:+49 (0)8231 /99 19 001 Mail:linux@linux-onlineshop.de Fax:+49 (0)8231 /99 19 009<br />

Im pressum :TUXEDO ComputersGmbH ~ Zeppelinstr.3 ~ D-86343 Königsbrunn ~ AmtsgerichtAugsburg:HRB 27755

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!