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 />
Gasterweiterungen 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