26.02.2014 Aufrufe

Linux-Magazin Plug & Play bringts (Vorschau)

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

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

01/13<br />

Anzeige:<br />

SPEED dreams!<br />

Vergleichen lohnt sich richtig! » strato-pro.de siehe Beihefter<br />

STR1212_DE_TKS_DServer_120x17.indd 1<br />

19.11.2012 12:59:01 Uhr<br />

Tracing für Admins<br />

und Programmierer<br />

Vier Tracer im Test, die genau protokollieren,<br />

was Programme alles treiben S. 40<br />

Crowbar<br />

Dell legt ein schnelles Verwaltungs-<br />

und Deployment-<br />

Tool für <strong>Linux</strong> vor S. 66<br />

Coffeescript<br />

Dass Dropbox den Javascript-Konkurrenten<br />

nutzt,<br />

ist kein Zufall S. 88<br />

<strong>Plug</strong> & <strong>Play</strong> <strong>bringts</strong><br />

Hinter der praktischen Null-Konfig-<br />

Fassade arbeitet komplexe Technik<br />

■ UPnP sei Dank: Multimedia zwischen DLNA-<br />

Geräten und <strong>Linux</strong> verteilen S. 24<br />

■ Um Sicherheit bei UPnP braucht sich<br />

niemand sorgen – sie existiert nicht S. 30<br />

■ Netzwerk: Avahi und Zeroconf<br />

als DHCP-Alternative S. 32<br />

■ Gemeinschaft 5.0: Deployment<br />

für SIP-Telefone S. 34<br />

■ Fünf rechtskonforme E-Mail-<br />

Archivierungen im Vergleich S. 52<br />

■ Neuerungen in Ubuntu 12.10 S. 38<br />

Winterrätsel 2012 für lange Abende: Der beste Tüftler gewinnt ein Smartphone S. 72<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 5,95 4 6,70 sfr 11,90 4 7,00 4 7,95 4 7,95<br />

4 192587 305954 01


Gebirgig und top<br />

Login 01/2013<br />

Editorial<br />

Vorurteile sind nicht wartungsfrei. Hat man welche, muss man sie entweder<br />

pflegen oder revidieren. Was zum Beispiel denken Deutsche über Schweizer?<br />

Meistens nichts – es gibt ja vergleichsweise wenige davon. Und wenn doch, dann<br />

bestimmen Klischees über Banken, Steuerhinterziehung, Uhren, Armeeknarren<br />

im Kleiderschrank, hohle Gassen und Hustenbonbons das Bild.<br />

In einer komplizierten Welt haben Vorurteile natürlich eine Funktion – sie nehmen<br />

Komplexität aus dem System und helfen uns den volatilen Rest besser zu verstehen.<br />

Im günstigsten Fall sind sie richtig, dann erfüllen Vor-Urteile ihren Zweck und<br />

fungieren als eine Art Rainbow Tables fürs normale Leben. Jedes unzutreffende<br />

Vorurteil jedoch führt auf den Holzweg. Darum sind die Dinger nicht wartungsfrei,<br />

man sollte sie ab und zu überprüfen wie eine Gastherme.<br />

Jan Kleinert, Chefredakteur<br />

Gelegenheit dazu bietet die „Schweizer Open Source Studie 2012“, die dieser Tage<br />

im Land des Rütlischwurs erschienen ist (siehe Meldung Seite 15). 93 Prozent<br />

aller untersuchten Schweizer Organisationen setzen bewusst Open-Source-Software ein. Bei Behörden und<br />

großen Firmen sind es sogar 100 Prozent. Die Unterstützung offener Standards und Schnittstellen nannten die<br />

Studienteilnehmer als häufigste Ursache für die große Akzeptanz.<br />

Es bleibt festzuhalten: Schweizer setzen freie Software mit großer Selbstverständlichkeit und in ungewöhnlich<br />

hohem Maße ein. Dass dies überrascht, liegt an dem Vorurteil, das dem Schweizer an sich angesichts von Käsefondue,<br />

Minarettstreit, Kurt Felix und DJ Bobo unterstellt, keinen ausgeprägten Hang zu Innovationen zu besitzen.<br />

Offenbar falsch! Selbst in schattigsten Alpentälern blüht eine reich- und nachhaltige Open-Source-Anwenderkultur,<br />

von der sich andere Länder mit einem helvetischen Taschenmesser eine Scheibe abschneiden können.<br />

Dabei sind die Eidgenossen auch anderswo vorn dran: Das Schweizer Unternehmen Blacksocks webt RFID-Chips<br />

in Socken. Das zugehörige Lesegerät liefert die Daten an eine iPhone-App, die nach dem Waschen hilft, die Socken<br />

wieder zu Paaren vereinigen – eine Innovation auf leisen Sohlen, die Asymmetrie-bedingte Peinlichkeiten<br />

bei Bewerbungsgesprächen und One-Night-Stands verhindern hilft.<br />

Die Schweiz deckt nicht nur zwei Drittel ihres Elektrizitätsbedarfs mit Wasserkraft, auch die Nachhaltigkeit<br />

der Landwirtschaftsbetriebe ist im Vergleich zu anderen Ländern weit fortgeschritten. Es käme keiner Überraschung<br />

gleich, wenn der Apparat einer französischen Firma, der sich momentan in europaweiter Erprobung<br />

befindet, schweizweit ein Verkausschlager würde. Gemeint ist ein Hightech-Halsband für Kühe, das die Vitaldaten<br />

der Trägerin erfasst und per SMS an den Landwirt und einen Internetserver schickt.<br />

Die Bäurin oder der Bauer bekommen auf diese Weise rechtzeitig mit, dass eine Kuh kalbt oder gerade die<br />

kurze Brunstzeit beginnt. Züchter brauchen nicht mehr nächtens die Ställe zu durchstreifen oder über feuchte<br />

Weiden stolpern, sondern erfahren per SMS, dass Fränzi in den Wehen liegt oder dass sie Urs zu Bethli führen<br />

sollten, um ein neues Kälbchen zu initiieren.<br />

Den Schweizern, die Tradition und Moderne so meisterlich zu versöhnen verstehen, ist auch die Weiterentwicklung<br />

der landwirtschaftlichen SMS-Lösung zuzutrauen. Das Interesse der Paarhufer vorausgesetzt, sollten<br />

diese doch untereinander twittern und Fotos von lila Kühen austauschen oder über Agrarsubventionen bloggen<br />

können. Die Sache gelingt, sobald innovative Eidgenossen die nötige Rind-Maschine-Schnittstelle definiert<br />

haben – und natürlich stellen sie die unter eine freie Lizenz.<br />

www.linux-magazin.de<br />

3


Inhalt<br />

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

4<br />

Wer ein Multimediagerät, Telefon oder einen PC irgendwo anstöpselt will, dass sich die<br />

Funktionalität von allein einstellt. Der Schwerpunkt erklärt die Mechanismen im Hintergrund.<br />

Dabei geht es um Streaming per DLNA und UPNP sowie die desaströsen Auswirkungen auf die<br />

Netzsicherheit. Außerdem: Der Sonderweg Avahi sowie Deployment von SIP-Telefonen.<br />

Aktuell<br />

Titelthema: <strong>Plug</strong> & <strong>Play</strong> <strong>bringts</strong><br />

6 N ew s<br />

n Open Suse 12.2 für ARM<br />

n Groupware Horde in Version 5.0.0<br />

24 DLNA und UPnP<br />

Titel<br />

Dank offener Standards kann <strong>Linux</strong><br />

als Server und Client mit vielerlei<br />

Gerätschaften Multimedia-Daten teilen.<br />

32 Zeroconf<br />

Der aktuelle Stand von Avahi und Zero<br />

Configuration Networking in IPv4 und IPv6.<br />

Linus Torvalds ließ sich auf der <strong>Linux</strong> con<br />

Europe von Intels Dirk Hohndel interviewen.<br />

12 Zahlen & Trends<br />

n 23 Petaflop-Rechner in Top 500<br />

n BSI-Leitfaden auch für Ubuntu<br />

Etwas mehr: In Sonys Experia Go hat der<br />

Hersteller sogar einen DLNA-Server verbaut.<br />

30 DLNA-Sicherheit<br />

Die Sicherheitslage in UPnP-Netzen gibt<br />

Anlass zur Sorge. Nicht einmal eine<br />

Authentifizierung ist vorgesehen.<br />

Vernetzung selbst gestrickt: Avahi und Zeroconf<br />

ersetzen den heimischen DHCP-Server.<br />

34 VoIP-Telefone provisionieren<br />

Die Open-Source-Telefonanlage<br />

Gemeinschaft erlaubt es, IP-Telefone fast<br />

ohne Handarbeit zu konfigurieren<br />

Messevorbereitungen: Die Cebit 2013 gibt<br />

Open Source mehr Raum.<br />

18 Zacks Kernel-News<br />

n Erweitertes UEFI Secure Boot<br />

n Torvalds: ABI bleibt unantastbar<br />

Landschaft mit Lücken: So einfach DLNA funktioniert,<br />

so gefährlich ist es bisweilen.<br />

Die freie Telefonanlage Gemeinschaft unterstützt<br />

SIP-Telefone wie das Snom 370.<br />

20 Libre Office Conference 2012<br />

In Berlin trafen sich freie Office-Entwickler.<br />

Die Code-Beiträge zu Libre Office von Red Hat,<br />

Suse und den vielen Freiwilligen.<br />

DELUG-DVD<br />

Ubuntu 12.10<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 37<br />

Hallo Welt 1.2<br />

TOOL TOOL<br />

Das neue Quantal Quetzal in der<br />

leistungsfähigen 64-Bit-Version<br />

TOOL<br />

Gentoo-Crypt-VM<br />

TOOL<br />

Fertig eingerichtete virtuelle Appliance<br />

mit Luks-Verschlüs selung und<br />

ZFS passend zum Workshop S. 62 TOOL<br />

Der neueste Wurf der Enterprise-<br />

Wiki-Spezialisten<br />

Shell-Buch gratis<br />

E-Book mit 600 Seiten: „Klassische<br />

Shell-Programmierung“ kostenlos<br />

Video zu Crowbar


01/2013 01/2013<br />

Inhalt<br />

38 Ubuntu 12.10<br />

Nicht wegen seines bunten Federkleides,<br />

sondern wegen diverser Funktionen<br />

wie der Amazon-Suche sorgt<br />

Canonicals neuester Spross für Ärger.<br />

52 E-Mail-Archivierung<br />

Jedes Unternehmen muss seine E-Mails<br />

archivieren, sagt der Gesetzgeber.<br />

Benno, Mailarchiva, Enkive, Piler und<br />

Heinlein Elements im Überblick.<br />

84 Scala<br />

Mit wenig Schreibarbeit, Funktionen<br />

höherer Ordnung und Comprehensions<br />

erfreut Scala den Entwickler, bei Twitter<br />

& Co. zelebriert es Java-Auftritte.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

37<br />

Einführung<br />

Auf der DELUG-DVD: Ubuntu 12.10, Luks,<br />

Bluespice und ein E-Book zur Shell.<br />

38 Ubuntu 12.10<br />

Was neu ist in Quantal Quetzal?<br />

40 Bitparade<br />

Titel<br />

Vier System-Tracer im Vergleich.<br />

51 Einführung<br />

Aus dem Alltag eines Sysadmin: Charly<br />

schließt Freundschaft mit »di«.<br />

52 E-Mail-Archivierung<br />

Titel<br />

Fünf Tools zur sicheren und rechtskonformen<br />

E-Mailarchivierung im Vergleich.<br />

62 ZFS verschlüsselt<br />

Titel<br />

Workshop: Rechner mit Luks und ZFS on<br />

<strong>Linux</strong> komplett verschlüsseln.<br />

81 Insecurity Bulletin<br />

Wenn unerwünschte Bytes aus dem Kern<br />

kommen: Information Disclosure im<br />

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

Programmieren<br />

84 Scala<br />

Mainstream-taugliche funktionale<br />

Programmierung mit vielen Features.<br />

88 Coffeescript<br />

Titel<br />

Ein behutsamer, aber erstaunlich erfolgreicher<br />

Nachfolger für Javascript.<br />

Programm- und Systemabläufe aufzeichnen<br />

mit Strace, Dtrace, LTTng oder Systemtap.<br />

Bei der Kernelkonfiguration aktiviert der<br />

Admin SPL und ZFS.<br />

48 Tooltipps<br />

Ffmpeg 1.0, Htppp, Lftp 4.4, Ncdu 1.9,<br />

Netstat-Monitor und Preziplayer 1.0.<br />

66 Crowbar<br />

Titel<br />

Dells Brecheisen installiert automatisch.<br />

Forum<br />

Frischer Kaffee: Coffeescript nimmt<br />

zahlreiche Vereinfachungen vor.<br />

Online-Präsentationen mit dem Prezi <strong>Play</strong>er.<br />

Service<br />

3 Editorial<br />

100 IT-Profimarkt<br />

104 Veranstaltungen<br />

104 Inserenten<br />

105 Impressum<br />

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

72 Winterrätsel<br />

Titel<br />

Das große <strong>Linux</strong>-<strong>Magazin</strong>-Winterrätsel<br />

für lange Abende.<br />

74 Recht<br />

Infos zur GEMA, übers File sharing, zur<br />

Provider-Auskunft und mehr.<br />

78 Bücher<br />

Bücher über <strong>Linux</strong>-HA<br />

sowie über PHP-<br />

Webprogrammierung.<br />

80 Leserbriefe<br />

Auf den Punkt gebracht.<br />

94 Perl-Snapshot<br />

Permeister Schilli erweist sich als<br />

Alternativen-Künstler und nutzt Github<br />

als Content-Management-System.<br />

Der technisch unbedarfte User braucht im<br />

Perl-Git-CMS nur Textdateien zu editieren.


Aktuell<br />

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

6<br />

News<br />

<strong>Linux</strong>con Europe: Plauderstunde mit Linus<br />

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

Anfang November in Barcelona<br />

hat sich Linus Torvalds<br />

den Fragen des Publikums<br />

zu <strong>Linux</strong> und seiner Arbeit<br />

gestellt. Torvalds, der ungern<br />

Vorträge hält, ließ sich<br />

mit Intels Open-Source-Mann<br />

Dirk Hohndel zu einem Plauderstündchen<br />

auf der Bühne<br />

nieder. Hohndel eröffnete<br />

die Veranstaltung mit einem<br />

kurzen Rückblick: 21 Jahre<br />

gäbe es das freie Betriebssystem<br />

bereits – was seien die<br />

persönlichen Highlights des<br />

Erfinders?<br />

Linus Torvalds erzählte, er<br />

sei immer noch angenehm<br />

überrascht, welchen Erfolg<br />

sein Projekt hat, das er allein<br />

im stillen Kämmerchen begonnen<br />

hatte. Insbesondere<br />

die Kernel-Community mit<br />

ihren spannenden Diskussionen<br />

hält er für eine großartige<br />

Errungenschaft. Daneben<br />

verwendeten einige Projekt<br />

<strong>Linux</strong> auch für soziale Zwecke,<br />

zum Beispiel OLPC (One<br />

Laptop per Child). Er habe ursprünglich<br />

gar nicht die Welt<br />

verbessern wollen, sondern<br />

nur sein eigenes Interesse an<br />

der Technik verfolgt.<br />

Sorgen um die Zukunft seines<br />

Betriebssystems macht sich<br />

der <strong>Linux</strong>-Erfinder kaum. Er<br />

sei Optimist, stellte er lachend<br />

fest. Allenfalls bereiten ihm<br />

persönliche Auseinandersetzungen<br />

einmal eine schlaflose<br />

Nacht, fügte er an. Daneben<br />

gäbe es die juristischen Probleme,<br />

die sich im SCO-Drama<br />

über Jahre hinzogen. Das<br />

US-Patentsystem hält er für<br />

kaputt, das europäische sei<br />

weniger schlimm.<br />

Außerdem sei die Zusammenarbeit<br />

mit einzelnen Hardwareherstellern<br />

problematisch,<br />

sagte der Kernel-Chef und<br />

Ein verschmitzter und schmunzelnder Linus Torvalds (rechts) ließ sich auf der<br />

<strong>Linux</strong>con Europe zu einem Plauderstündchen mit Dirk Hohndel von Intel nieder.<br />

© Dmitri Popov<br />

spielte damit auf seine Äußerungen<br />

zu Nvidia an. Der<br />

Umgang mit den Embedded-<br />

Herstellern dagegen habe sich<br />

in den letzten Jahren gebessert.<br />

Trotz ihrer langen Produktlebenszeiten<br />

hätten viele<br />

gelernt, mit der progressiven<br />

Entwicklung des Mainline-<br />

Kernels zu leben.<br />

„Wird es vielleicht in Zukunft<br />

ein zweites revolutionäres<br />

Betriebssystem wie <strong>Linux</strong> geben?“,<br />

fragte ein Konferenzteilnehmer.<br />

Torvalds antwortete,<br />

er sehe wenig Bedarf für<br />

Innovation bei Betriebssystemen,<br />

die wichtigsten Konzepte<br />

seien bereits 30 Jahre alt.<br />

Vielleicht aber tauche demnächst<br />

ein junger Mann oder<br />

ein junge Dame auf, die ihn<br />

eines Besseren belehren.<br />

Die kommende Kernel-Release<br />

3.7, sagte Torvalds auf Nachfrage,<br />

bringe mit 64-Bit-ARM<br />

Unterstützung für eine neue<br />

Architektur. Ansonsten sieht<br />

der oberste Kernelhacker die<br />

Entwicklung gelassen. „Seit<br />

sechs Jahren machen wir nun<br />

zeitgesteuerte Releases mit<br />

etwa dreimonatigem Zyklus.<br />

Was an Features fertig ist,<br />

kommt dann in die Release.<br />

Ich brauche daher nicht besonders<br />

weit vorauszuplanen.<br />

Was in 3.8 nicht reinkommt,<br />

kommt eben in die 3.9.“ n<br />

Neues Serialisierungsformat<br />

Software-Entwickler des Online-Buchungsdienstes<br />

Booking.com<br />

haben ein neues<br />

Serialisierungsformat namens<br />

Sereal vorgestellt. Es ist vornehmlich<br />

für Perl 5 gedacht,<br />

soll sich aber auch für andere<br />

Sprachen eignen. In einem<br />

einführenden Blogeintrag<br />

schreibt der Entwickler Steffen<br />

Müller, das Team hätte<br />

zahlreiche bestehende Formate<br />

evaluiert und das bisher<br />

leistungsfähigste für Perl entwickelt.<br />

Das betreffe sowohl<br />

das Kodieren als auch das Dekodieren<br />

und die Größe der<br />

Ausgabedateien.<br />

Die Sereal-Spezifikation findet<br />

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

​Sereal]. Dort gibt es auch den<br />

Code der Referenzimplementierungen<br />

in Perl und Java unter<br />

Artistic License und GPL.<br />

Die Entwickler laden besonders<br />

die Programmierer von<br />

Perl-Modulen ein das neue<br />

Format zu nutzen. n


primeLine<br />

SOLUTIONS<br />

Collax bringt verteiltes SAN<br />

Die nahe München beheimatete<br />

Firma Collax [http://​www.​<br />

​collax.​com], einer der wenigen<br />

verbliebenen <strong>Linux</strong>-Vollsortimenter,<br />

schraubt am Storage-<br />

Backend des hauseigenen Virtualisierungs-<br />

und HA-Framework<br />

Collax V-Family. Es bestand<br />

bislang aus zwei Teilen,<br />

dem Virtualisierungsserver<br />

V-Cube und dem HA-Cluster<br />

Inter-V. Die Collax-Kunden<br />

mussten bisher die Abbilder<br />

der virtuellen Maschinen<br />

klassisch auf einem extra angeschafften<br />

hochverfügbaren<br />

Storage speichern.<br />

Das nun vorgestellte dritte Familienmitglied,<br />

Collax V-SAN,<br />

erweitert die Architektur dahingehend,<br />

dass auch der auf<br />

den Nodes vorhandene Direct<br />

Attached Storage als SAN<br />

nutzbar wird. Gerade für kleinere<br />

bis mittlere Firmen kann<br />

ein solches verteiltes Dateisystem<br />

Kostenvorteile bringen.<br />

Open Suse 12.2 für ARM<br />

Laut Hersteller gestaltet sich<br />

zudem die Administration<br />

einfach und intuitiv. Eine<br />

Funktion namens „Storage<br />

Migration“ unterstützt den<br />

Wechsel zwischen den klassischen<br />

und alternativen Storage-Architekturen.<br />

Ganz so revolutionär ist die<br />

Möglichkeit, in Collax ein<br />

Cluster-Filesystem laufen<br />

zu lassen, nicht – schon auf<br />

früheren Versionen lief mit<br />

DRBD eine Synchronisations-<br />

Software für Cluster. Mit der<br />

neuen Version professionalisieren<br />

die Bayern das Ganze,<br />

was sich auch mit einem neuen<br />

Eintrag auf der Preisliste<br />

von rund 350 Euro pro Jahr<br />

niederschlägt.<br />

Collax’ Angebot kommt vielleicht<br />

zur rechten Zeit, denn<br />

der kürzlich erschienene Windows<br />

Server 2012 wirbt im unteren<br />

Anwendersegment mit<br />

ähnlichen Features. n<br />

Das Open-Suse-Projekt hat<br />

Version 12.2 seiner <strong>Linux</strong>-<br />

Distribution für die ARM-<br />

Plattform veröffentlicht. Fast<br />

alle Open-Suse-Pakete, insgesamt<br />

über 5000, sind für die<br />

ARM-Architektur eingerichtet,<br />

schreibt Suse-Community-Manager<br />

Jos Poortvliet in<br />

seinem Announcement. Die<br />

Idee sei bereits im Sommer<br />

2011 entstanden, bei der Open<br />

Suse Conference in Nürnberg,<br />

und das ARM-Team habe nur<br />

wenig länger als ein Jahr gebraucht,<br />

um die Distribution<br />

auf die Beine zu stellen.<br />

Open Suse 12.2 für ARM lässt<br />

sich beispielsweise auf dem<br />

Beagleboard und dem Pandaboard<br />

installieren sowie in<br />

Qemu oder in einem Chroot-<br />

Environment – zumindest hat<br />

Suse das getestet und empfiehlt<br />

diese Kombinationen.<br />

Ebenso möglich seien zwar<br />

auch Calxeda Highbank,<br />

i.MX53 Loco, Cubox, das Origen<br />

Board und Efika MX, aber<br />

nur ohne Gewähr, warnt das<br />

Team.<br />

Wer mehr über Open Suse<br />

ARM herausfinden will, dem<br />

bietet das Projekt gesammelte<br />

Informationen in seinem<br />

Wiki unter [http://​en.​opensuse.​<br />

​org/​openSUSE:OpenSUSE_on_your_<br />

ARM_board]. Dort gibt es auch<br />

die Download-Adressen für<br />

die Images.<br />

n<br />

Ideal für Firewall<br />

oder Monitoring<br />

Anwendungen<br />

wie IPCop & Nagios<br />

egino s-Series 13041s-C204<br />

X 1 HE Rackmount Chassis, 4x 2,5“ Hot-<strong>Plug</strong> Einschub<br />

X 330 Watt High Efficiency (80 Plus Gold) Power Supply<br />

X 1x Intel ® Xeon ® E3-1220V2 Prozessor mit 3.1 GHz<br />

X 8 GB DDR3 1333 MHz ECC unbuffered RAM (max. 32 GB)<br />

X 4x Intel ® 8254L Gbit Ethernet, IPMI 2.0 dedicated LAN<br />

X 1x PCIe 2.0 (x16) über Riser, z.B. für zusätzliche I/O Karte<br />

X 2x 120 GB Intel ® MLC SSD, 500 MB/s read, 480 MB/s write<br />

X RAID Controller optional, Teleskopschienen inklusive<br />

X 3 Jahre Garantie inkl. Komponenten Vorabaustausch<br />

Best-Nr.: 206175<br />

790, 00 €<br />

zzgl. MwSt. und Versand<br />

Ihr zuverlässiger Server Lieferant für Datacenter,<br />

öffentliche Einrichtungen, Systemhäuser & Reseller.<br />

primeLine Solutions GmbH<br />

Dornenbreite 18a · 32549 Bad Oeynhausen<br />

Tel.: +49 5731 8694-0 · Fax: +49 5731 8694-413<br />

E-Mail: vertrieb@primeline.org<br />

Web: www.primeline-solutions.de<br />

940, 10 €<br />

inkl. MwSt. zzgl. Versand<br />

Intel, das Intel Logo, Xeon, und Xeon Inside sind Marken der Intel Corporation in den USA und anderen Ländern.<br />

E<br />

EGINO SERVER


Aktuell<br />

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

8<br />

Groupware Blue Mind 1.0 produktionsreif<br />

Die GPLv3-lizenzierte Groupware<br />

Blue Mind steht in Version<br />

1.0 zur Verfügung. Der<br />

französische Hersteller erklärt<br />

die Software damit für produktionsreif.<br />

Zuvor haben<br />

die Entwickler noch Bugfixes<br />

und kleine Verbesserungen<br />

gemacht.<br />

Der Webmailer kann nun<br />

auch mit Raumreservierungen<br />

und Einladungen umgehen,<br />

daneben existiert ein<br />

Workaround, der Abstürzen<br />

des Firefox-Browsers vorbeugen<br />

soll. Beim Kalender gibt<br />

es Bugfixes für die Monatsansicht,<br />

die Zeitzonen und den<br />

Anwendungscache. Bei der<br />

Anbindung von Thunderbird<br />

haben die Entwickler die Synchronisierung<br />

von Geburtstagen<br />

und Instant-Messaging-<br />

Adressen repariert.<br />

Blue Mind bietet eine Weboberfläche<br />

für Mail, Kontakte<br />

und Kalender. Daneben kann<br />

es als Server für Outlook und<br />

Mozilla Thunderbird dienen<br />

und lässt sich auch mit Mobilgeräten<br />

benutzen. Sämtliche<br />

Funktionen bietet der Server<br />

auch als Webservices an. Die<br />

Groupware nutzt Open-Source-Komponenten<br />

wie Postfix,<br />

Cyrus-IMAP, Hornetq und<br />

PostgreSQL.<br />

Weitere Informationen vermittelt<br />

die Website [http://​<br />

​www.​blue‐mind.​net]. Version 1.0<br />

steht in Paketrepositories für<br />

Debian, Ubuntu und Red Hat<br />

Enterprise <strong>Linux</strong> zur Installation<br />

bereit. Neben der kostenlosen<br />

Community-Edition bietet<br />

die Firma Blue Mind auch<br />

Support, Beratung, einen Active-Directory-Konnektor<br />

sowie<br />

den Betrieb als Software-as-a-<br />

Service an.<br />

n<br />

Blue Minds Kalenderanwendung unterstützt mehrere Kalender und bietet einen<br />

Offline-Modus. Mit Version 1.0 wurde die Groupware produktionsreif.<br />

Groupware Horde in Version 5.0.0<br />

Das Horde-Projekt hat seine<br />

Web-Groupware in Version<br />

5.0.0 mit zahlreichen Verbesserungen<br />

veröffentlicht. Die<br />

Anwendungen präsentieren<br />

eine komplett überarbeitete<br />

Benutzeroberfläche mit besserer<br />

Unterstützung für Mobilgeräte.<br />

Allerdings berücksichtigen<br />

sie den betagten Internet<br />

Explorer 6 nicht mehr.<br />

Verbesserungen gibt es beim<br />

Zusammenspiel mit Kolab 2<br />

sowie beim Synchronisieren<br />

mit Mobilgeräten über Active<br />

Sync. Die Mailkomponente<br />

IMP erhielt eine eigene Mailbox<br />

für Vorlagen, der Standardzeichensatz<br />

für Nachrichten<br />

ist nun UTF-8. Bei der Suche<br />

nach Mails ist nun auch<br />

die Angabe von Zeitspannen<br />

möglich. Abwesenheitsnachrichten<br />

können Platzhalter<br />

verwenden.<br />

Im Kalender Kronolith dürfen<br />

Termine nun eigene Zeitzoneneinstellungen<br />

besitzen.<br />

Der Taskmanager Nag erledigt<br />

nun auch wiederkehrende<br />

Aufgaben. Weitere Informationen<br />

finden sich unter [http://​<br />

​www.​horde.​org], wo es auch<br />

eine Demo-Installation zum<br />

Ausprobieren gibt. Horde ist<br />

in PHP umgesetzt, die Komponenten<br />

stehen unter GPL,<br />

LGPL und BSD-Lizenz. n<br />

Horde 5.0.0 akzeptiert bei der Suche nach Mails auch Zeiträume.<br />

Open Search Server 1.3 versteht sich auf OCR<br />

Open Search Server, eine freie<br />

Suchmaschine für lokale und<br />

Web-Ressourcen, ist in Version<br />

1.3 erschienen. Zu den<br />

Neuerungen gehören OCR für<br />

PDF- und Bilddateien sowie<br />

das Erstellen eines phonetischen<br />

Index. Die Video-Websites<br />

Youtube, Dailymotion<br />

und Vimeo durchsucht die<br />

Software ebenfalls und greift<br />

dazu auf deren APIs zurück.<br />

Daneben kann Open Search<br />

Server 1.3 auch Cache-Dateisysteme<br />

und Hadoop-Speicher<br />

durchsuchen.<br />

Open Search Server baut auf<br />

der Java-Suchmaschinenbibliothek<br />

Lucene auf und durchsucht<br />

zahlreiche Dateitypen<br />

wie XML, HTML, XHTML,<br />

PDF, Word, Powerpoint, RTF<br />

und auch Multimediadateien<br />

wie MP3/​4, Ogg und Flac.<br />

Weitere Infos sowie Version<br />

1.3 zum Herunterladen gibt<br />

es unter [http://​www.​open‐search<br />

‐server.​com/​community/]. n


primeLine<br />

SOLUTIONS<br />

Zum Siebenjährigen: Libvirt 1.0.0<br />

Libvirt, eine freie Bibliothek<br />

zum Verwalten virtueller Maschinen,<br />

feiert mit Version<br />

1.0.0 ihr siebenjähriges Bestehen.<br />

Der erste Commit des<br />

Open-Source-Projekts, damals<br />

per CVS, fand im November<br />

2005 statt. Anfangs bezog sich<br />

die Software nur auf den Hypervisor<br />

Xen, nun unterstützt<br />

sie eine ganze Reihe von Virtualisierungstechnologien<br />

wie<br />

KVM/​Qemu, Open VZ, User<br />

Mode <strong>Linux</strong>, LXC, Virtualbox<br />

sowie Microsofts Hyper-V und<br />

einige VMware-Produkte.<br />

Libvirt 1.0.0 arbeitet mit dem<br />

Journal von Systemd zusammen<br />

und unterstützt die Xen-<br />

Version 4.2. Daneben gibt<br />

es einen Qemu Capabilities<br />

Cache Manager und Verbesserungen<br />

beim Einsatz der<br />

QMP-Schnittstelle von Qemu.<br />

Dazu kommt die aktualisierte<br />

Dokumentation, auch haben<br />

die Übersetzerteams die Lokalisierungen<br />

der Software vorangetrieben.<br />

Eine detaillierte<br />

Liste der Neuerungen sowie<br />

Pakete zum Download gibt es<br />

unter [http://​libvirt.​org]. n<br />

High Performance<br />

File/DB/Application Server<br />

mit LSI MegaRAID FastPath<br />

für ultraschnelles SSD RAID<br />

CfP für SLAC 2013<br />

Die Firma Heinlein Support<br />

veranstaltet am 6. und 7. Juni<br />

2013 in Berlin die sechste<br />

Secure <strong>Linux</strong> Administration<br />

Conference (SLAC). Bis 31.<br />

Januar läuft der Call for Papers.<br />

Die Organisatoren wünschen<br />

sich Vorträge zu allen<br />

Aspekten eines sicheren Betriebs<br />

von <strong>Linux</strong>-Servern im<br />

Rechenzentrum. Gefragt sind<br />

unter anderem Beiträge über<br />

HA-Cluster, Konfigurationsmanagement,<br />

Server-Monitoring,<br />

Datenbank-Strategien<br />

oder allgemeine „Best Practices“<br />

in der Administration.<br />

Produktpräsentationen sind<br />

aber nicht erwünscht.<br />

Die Vorträge dauern jeweils<br />

90 Minuten, zudem können<br />

Interessierte Vorschläge für<br />

ganztägige Workshops einreichen.<br />

Weitere Informationen<br />

zur Veranstaltung sowie Kontaktmöglichkeit<br />

gibt es unter<br />

der URL [http://​www.​heinlein<br />

‐support.​de/​slac/​2013/]. n<br />

egino s-Series 23082s-C602<br />

X 2 HE Rackmount, 8x 3,5“ Hot-<strong>Plug</strong><br />

X 740 Watt redundant 80 Plus Platinum<br />

X 2x Intel ® Xeon ® E5-2620 Prozessor<br />

(insgesammt 12 Cores mit je 2.0 GHz)<br />

X 64 GB DDR3 1333 MHz ECC Reg. RAM (max. 512 GB)<br />

X 2x Intel ® i250 Gbit Ethernet, IPMI 2.0 dedicated LAN<br />

X LSI MegaRAID 9271-8i Controller, 6 Gbit/s, PCIe 3.0,<br />

1 GB DDR3 inkl. Cache Protection, FastPath Software<br />

X 4x 180 GB Intel ® MLC SSD, 4x 1.0 TB Toshiba SAS (24x7)<br />

X 3 Jahre Garantie inkl. Komponenten Vorabaustausch<br />

Best-Nr.: 206174<br />

Rosa Server 2012<br />

Der russische Softwarehersteller<br />

Rosa hat seinen Red-<br />

Hat-basierten <strong>Linux</strong>-Server in<br />

Version 2012 veröffentlicht.<br />

Die Distribution beruht auf<br />

RHEL 6 und verwendet Kernel<br />

2.6.32 und Glibc 2.12.<br />

Diese Basis ergänzt der Anbieter<br />

durch eigene Tools für das<br />

Server-Setup, eine Systemmanagement-Anwendung<br />

sowie<br />

den Rosa Directory Server. Im<br />

Paketarchiv enthalten ist Serversoftware<br />

wie Tomcat 6.6,<br />

Postfix 2.6, MySQL 5.1 und<br />

PostgreSQL 8.4 sowie Apache<br />

2.2. Das Cloud-Computing-<br />

Framework Open Stack ist in<br />

der Essex-Release an Bord.<br />

Rosa Server 2012 steht unter<br />

[http://​www.​rosalab.​com] zum<br />

Download bereit.<br />

n<br />

3690, 00 €<br />

zzgl. MwSt. und Versand<br />

Ihr zuverlässiger Server Lieferant für Datacenter,<br />

öffentliche Einrichtungen, Systemhäuser & Reseller.<br />

primeLine Solutions GmbH<br />

Dornenbreite 18a · 32549 Bad Oeynhausen<br />

Tel.: +49 5731 8694-0 · Fax: +49 5731 8694-413<br />

E-Mail: vertrieb@primeline.org<br />

Web: www.primeline-solutions.de<br />

4391, 10 €<br />

inkl. MwSt. zzgl. Versand<br />

Intel, das Intel Logo, Xeon, und Xeon Inside sind Marken der Intel Corporation in den USA und anderen Ländern.<br />

E<br />

EGINO SERVER


Aktuell<br />

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

10<br />

Kurznachrichten<br />

Smartmontools 6.0: Die Software zur Steuerung und Überwachung von<br />

SMART-fähigen Festplatten feiert ihr zehnjähriges Bestehen. Neu: Erkennung<br />

weiterer USB-Gehäuse und SSDs, Erkennung neuerer ATA-/​SATA-<br />

Versionen sowie mehr Informationen in den E-Mail-Warnungen des Daemon<br />

»smartd«. Lizenz: GPLv2 [http://​www.​smartmontools.​org]<br />

Finnix 106: Das Debian-basierte Live-<strong>Linux</strong> richtet sich an Sysadmins.<br />

Neu: Kernel 3.5 sowie Softwarestand von Debian Testing vom 24. Oktober.<br />

Neues hauseigenes Buildsystem namens Neale. Lizenz: GPL und andere<br />

[http://​www.​finnix.​org]<br />

Spacewalk 1.8: Die freie Software für das Systemmanagement dient als<br />

Grundlage für Red Hat Satellite Server. Neu: Unterstützung für Fedora 17,<br />

Integration von Suse Studio und Verträglichkeit mit Oracle XE 11g. Neue<br />

und veränderte Aufrufe in der Programmierschnittstelle. Lizenz: GPLv2<br />

[http://​www.​spacewalkproject.​org]<br />

Crux <strong>Linux</strong> 2.8: Die für i686 optimierte Distribution richtet sich an erfahrene<br />

Anwender und fügt der Upstream-Software nur wenige eigene<br />

Werkzeuge hinzu. Neu: Kernel 3.5.4 sowie aktualisierte Toolchain mit<br />

Glibc 2.16.0, GCC 4.7.2 und Binutils 2.22. Kmod löst die Module-Init-Tools<br />

ab. Lizenz: GPL und andere [http://​crux.​nu]<br />

Phpfreechat 2.0.0: Die Software ermöglicht es Webentwicklern, ihre<br />

Seiten durch ein paar Zeilen Code mit einem Chat auszustatten. Neu:<br />

Komplette Überarbeitung auf Grundlage der REST-Architektur. Dank Ajax<br />

soll sich die Oberfläche ohne Flackern aktualisieren, sparsam mit der<br />

Netzwerk-Bandbreite umgehen und sich für Desktop- und Mobilgeräte<br />

eignen. Lizenz: LGPL [http://​www.​phpfreechat.​net]<br />

Mono 3.0: Die freie Umsetzung von Microsofts Dotnet-Framework kommt<br />

für zahlreiche Anwendungen zum Einsatz. Neu: Der Compiler setzt C#<br />

5.0 vollständig um und unterstützt asynchrones Programmieren. Der<br />

neue Garbage Collector Sgen soll für bessere Performance und Skalierbarkeit<br />

sorgen. Mono liefert nun Apache-lizenzierte Webbibliotheken von<br />

Microsoft mit. Lizenz: LGPLv2 [http://​www.​mono‐project.​com]<br />

Meteor 0.5.0: Die Javascript-Bibliothek beschleunigt die Entwicklung von<br />

Webanwendungen. Neu: Mehrere Anwenderkonten und sichere Passwort-<br />

Authentifizierung. Lizenz: MIT-Lizenz [http://​meteor.​com]<br />

Asterisk 11: Der VoIP-Server setzt ein Telefonanlage in Software um. Neu:<br />

Unterstützung für Web-RTC (Websocket per SIP) und DTLS-SRTP, eine sichere<br />

Übertragungsvariante für RTP-Streams zwischen SIP- und Web-RTC-<br />

Partnern. Support für 2 Jahre. Lizenz: GPL [http://​www.​asterisk.​org]<br />

Plasma Active: Neue Basis, neue Anwendungen<br />

Das KDE-Projekt und die Firma<br />

Basyskom haben Plasma<br />

Active, ihre Umgebung für<br />

Mobilgeräte mit Touchscreen,<br />

in Version 3 freigegeben. Statt<br />

Meego bildet nun dessen Fork<br />

namens Mer den Betriebssystem-Unterbau.<br />

Damit soll sich<br />

auch die Entwicklungsumgebung<br />

rascher und einfacher<br />

aufsetzen lassen.<br />

Ein wichtiger Neuzugang bei<br />

den Anwendungen ist der Dateibrowser<br />

Files. Damit möchten<br />

die Macher Benutzern direkten<br />

Zugriff auf alle ihre Dateien<br />

ermöglichen, während<br />

andere mobile Umgebungen<br />

diesen oft hinter Applikationen<br />

verstecken. Ebenfalls neu<br />

ist Okular Active, ein E-Book-<br />

Reader, der auf seinem KDE-<br />

Namensvetter basiert und<br />

unter anderem PDF-, Epubund<br />

Open-Document-Dateien<br />

anzeigt.<br />

Mit Kontact und Calligra<br />

ent hält Plasma Active zudem<br />

einen ausgewachsenen<br />

Groupware-Client mit Kalender<br />

und Aufgabenverwaltung<br />

sowie eine freie Bürosuite mit<br />

Unterstützung für viele Dokumentenformate.<br />

Erstmals gibt es einen Addon-<br />

Store, der derzeit einige Wallpapers<br />

sowie freie E-Books<br />

aus dem Project Gutenberg<br />

anbietet. Eine neue Bildschirmtastatur<br />

auf Basis von<br />

Maliit soll den Bedienkomfort<br />

verbessern.<br />

Weitere Informationen sowie<br />

Images für ARM- und x86-Systeme<br />

finden sich unter [http://​<br />

​plasma‐active.​org]. <br />

n<br />

Plasma Active 3 besitzt einen Addon-Store, der jedoch vorläufig nur mit Wallpapers<br />

und freien E-Books bestückt ist.<br />

Wahlsoftware Pollen mit neuen Auszählungsmethoden<br />

Pollen, eine Webanwendung<br />

für Umfragen und Abstimmungen,<br />

ist in Version 1.5<br />

mit neuen Features erhältlich.<br />

Die neue Release setzt weitere<br />

Auszählungsverfahren um:<br />

Borda-Wahl, Coombs-Wahl<br />

und Instant Runoff Voting<br />

(IRV). Daneben haben die<br />

Entwickler Bugs bei der Administration<br />

und beim Erzeugen<br />

des Wählerverzeichnisses<br />

behoben und die Security verbessert.<br />

Vorübergehend sind<br />

deshalb RSS-Feed und Export<br />

außer Betrieb. Sie sollen aber<br />

in der nächsten Release zurückkehren.<br />

Pollen ist in Java umgesetzt,<br />

unter Affero GPLv3 lizenziert<br />

und in Englisch und Französisch<br />

verfügbar. Die Version<br />

1.5 steht unter [http://​maven<br />

‐site.​chorem.​org/​pollen/] als<br />

Stand alone-Server sowie als<br />

WAR-Archive für Servlet-Container<br />

zum Download bereit.<br />

(jk/​mfe/​ofr/​mhu)<br />

n


JETZT<br />

MIT DVD!<br />

MAGAZIN<br />

Sonderaktion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Jetzt schnell bestellen:<br />

• Telefon 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

• Web: www.linux-magazin.de/probeabo<br />

Mit großem Gewinnspiel unter:<br />

www.linux-magazin.de/probeabo<br />

Gewinnen Sie...<br />

eines von zwei tollen Gadgets (das Los entscheidet)<br />

Einsendeschluss ist der 15.03.2013


Aktuell<br />

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

12<br />

Zahlen & Trends<br />

Top-500-Liste zählt 23 Petaflop-Rechner<br />

Auf der Supercomputing Conference<br />

in Salt Lake City ist die<br />

40. Ausgabe der zweimal jährlich<br />

unter [http://​www.​top500.​<br />

​org] erscheinenden Top-500-<br />

Liste vorgestellt worden. Der<br />

zurzeit weltschnellste Rechner<br />

ist demnach Titan, ein<br />

Cray-XK7-System, installiert<br />

im Oak Ridge National Laboratory,<br />

das 17,59 Peta flops pro<br />

Sekunde im Linpack-Benchmark<br />

erreichte. Titan verfügt<br />

über 560 640 Prozessoren, darunter<br />

261 632 Nvidia-K20x-<br />

Beschleuniger-Kerne.<br />

Auf dem zweiten Platz findet<br />

sich der vormalige Spitzenreiter<br />

Sequoia aus dem<br />

Lawrence Livermore National<br />

Laboratory. Der schnellste<br />

Rechner Europas und der<br />

fünftschnellste der Welt ist der<br />

neue Superrechner Juqueen<br />

des Forschungszentrums Jülich,<br />

ein IBM-System.<br />

Ein halbes Jahr nach dem<br />

ersten Petaflop-Rechner Roadrunner<br />

finden sich bereits 23<br />

Petaflop-Computer auf der<br />

Liste, für die eine Maschine<br />

mindestens 76,5 Tflop/​s aufbringen<br />

musste, um aufgenommen<br />

zu werden.<br />

Dabei dominieren eindeutig<br />

Multicore-Systeme: 84,6 Prozent<br />

haben mehr als sechs<br />

Kerne pro CPU und schon fast<br />

die Hälfte mehr als acht. Bei<br />

den Prozessorherstellern führt<br />

Intel (76 Prozent) vor AMD<br />

(12 Prozent) und IBM. Bei<br />

den Interconnects setzt fast<br />

die Hälfte aller Supercomputer<br />

der Liste auf Infiniband (226).<br />

Geografisch dominieren wie<br />

in den Vorjahren die USA mit<br />

251 Rechnern in den Top 500<br />

das Geschehen, Europa bringt<br />

es auf 105 Systeme. n<br />

Als Europas schnellster Supercomputer gilt das System Juqueen am Forschungszentrum<br />

Jülich. Weltweit belegt es den fünften Platz.<br />

© Forschungszentrum Jülich<br />

ISO-Programmiersprachen ohne DIN<br />

Android-Schädlinge gezählt<br />

Deutschland zieht sich aus<br />

der Standardisierung von ISO-<br />

Programmiersprachen zurück.<br />

Das bestätigte Roman Grahle,<br />

der Vorsitzende des Programmiersprachengremiums<br />

der<br />

DIN gegenüber dem <strong>Linux</strong>-<br />

<strong>Magazin</strong>.<br />

Die „Lenkungsgremien des<br />

dem Arbeitsausschuss Programmiersprachen<br />

übergeordneten<br />

Normenausschusses<br />

für Informationstechnik und<br />

Anwendungen (NIA) mussten<br />

umfangreiche Konsolidierungsbemühungen<br />

des Haushalts<br />

des NIA vornehmen“,<br />

die in der Folge zu einer Neubewertung<br />

der Arbeiten der<br />

Ausschüsse geführt hätten,<br />

schreibt Grahle. Dabei habe<br />

man die einzelnen Ausschüsse<br />

befragt, welche Arbeiten der<br />

anderen Ausschüsse für sie<br />

relevant wären. Offenbar<br />

schnitten dabei die Programmiersprachen<br />

(NIA-01-22)<br />

schlecht ab. Analog präsentierte<br />

sich die Einschätzung<br />

der Geldgeber.<br />

Allerdings plane man, wenigstens<br />

einen Berichterstatter zu<br />

den Sitzungen des Komitees<br />

ISO/​IEC JTC 1/​ SC 22 „Programming<br />

languages, their<br />

environments and system<br />

software interfaces“ zu entsenden.<br />

n<br />

Eine fundierte Schädlingszählung<br />

in der zweiten Jahreshälfte<br />

2012 bestätigt die<br />

verbreitete Auffassung, dass<br />

Android-Geräte Ziel vielfältiger<br />

Angriffe bleiben.<br />

Den Experten des Antivirensoftware-Herstellers<br />

Kaspers ky<br />

Lab gingen zwischen Juli und<br />

September mehr als 9000<br />

neue Malware-Modifikationen<br />

für Android ins Netz – 3500<br />

mehr als im ersten Quartal<br />

2012 und 5000 weniger als<br />

im zweiten. Bei Malware-<br />

Entwicklern besonders beliebt<br />

scheinen Android 2.3.6<br />

(Gingerbread) mit 28 Prozent<br />

aller Angriffsversuche und<br />

die Version 4.0.4 (Ice Cream<br />

Sandwich), die zu 22 Prozent<br />

Ziel von Attacken war.<br />

57 Prozent aller Schadprogramme<br />

gehören zur Gruppe<br />

der SMS-Trojaner, die Kurznachrichten<br />

an kostenpflichtige<br />

Nummern schicken. Auf<br />

Platz 2 rangieren mobile Trojaner,<br />

die sensible Daten abgreifen.<br />

38 Prozent aller im<br />

dritten Quartal aktiven Schädlinge<br />

gehören zur Op-Fake-<br />

Familie, die sich als vermeintlicher<br />

Opera-Mini-Browser<br />

tarnen. Der Verbreitungsweg<br />

der mobilen Plagen beginnt<br />

gewöhnlich in alternativen<br />

Appstores.<br />

n


Gartner: Windows ist Vergangenheit<br />

In einem Webinar hat Raymond<br />

Paquet vom Strategieberater<br />

Gartner die wichtigsten<br />

zehn Technologien der<br />

nächsten Jahre vorgestellt.<br />

Android und Tablets nähmen<br />

eine wichtige Rolle ein, Windows<br />

sei Vergangenheit.<br />

Vieles, was der Gartner-Spezialist<br />

prognostiziert, klingt vertraut:<br />

Consumerization, SaaS,<br />

öffentliche, private und hybride<br />

Clouds, Rechenzentren,<br />

die dank Cloudanbindung<br />

beliebig skalieren, mobile<br />

Geräte, das flexible Management<br />

von Ressourcen, Fabricbasierte<br />

Rechenzentren, Big<br />

Data und virtuelle, Softwarekonfigurierte<br />

Netzwerke nennt<br />

er als die zukunftsträchtigsten<br />

Technologien, die die IT-Welt<br />

in den nächsten Jahren beschäftigen<br />

werden.<br />

Dabei fallen eher am Rande<br />

spektakuläre Aussagen. 53<br />

Millionen Tablets könnten<br />

Unternehmen im Jahr 2016<br />

verkaufen, die wenigsten<br />

davon werden mit Microsoft<br />

Windows betrieben. Weil<br />

auch die PC- und Desktop-<br />

Verkäufe zu Gunsten der<br />

Tablets und mobiler Geräte<br />

zurückgingen, werde Googles<br />

Android-Betriebssystem die<br />

Windows-Maschinen ebenfalls<br />

binnen drei Jahren auf<br />

dem Markt überholen, prognostiziert<br />

Gartner.<br />

Paquet spricht sogar davon,<br />

dass „ein neues Zeitalter angebrochen<br />

sei“, das vielerlei<br />

Konsequenzen nach sich<br />

zöge, etwa für Anwendungsentwickler,<br />

die verstärkt auf<br />

HTML 5 und ähnliche Technologien<br />

setzen würden. n<br />

Zahlen & Trends 01/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Cebit 2013: Mehr Platz für Open Source<br />

Wie gemacht für die Open-<br />

Source-Welt scheint das<br />

Thema der Cebit 2013: „Shareconomy“.<br />

Schließlich sind<br />

Teilen und Zusammenarbeit<br />

zwei Triebfedern der freien<br />

Software-Entwicklung. Open<br />

Source Park, Forum und eine<br />

vergrößerte Ausstellungsfläche<br />

finden sich im kommenden<br />

Jahr in Halle 6.<br />

Die Veranstaltung scheint<br />

beliebt, schon für den Park<br />

hätten bereits jetzt 90 Prozent<br />

aller Aussteller aus dem vergangenen<br />

Jahr zugesagt, lässt<br />

die Deutsche Messe wissen.<br />

„Dank IT geht es immer häufiger<br />

um den gemeinsamen<br />

Nutzen von Arbeit sowie Kreativität<br />

und weniger um den<br />

Besitz der Ergebnisse. Dabei<br />

ist die Open-Source-Branche<br />

jener Sektor innerhalb der IT,<br />

der diesen Paradigmenwechsel<br />

bisher am konsequentesten<br />

Messevorbereitungen: Die Cebit stellt im Jahr 2013 dem Thema Open Source<br />

mehr Raum zur Verfügung.<br />

und erfolgreichsten umgesetzt<br />

hat“, schreibt Peter Ganten,<br />

der Vorstand des Messepartners<br />

Open Source Business<br />

Alliance.<br />

Das Attribut Open durchzieht<br />

die Ankündigungen der Veranstalter<br />

(Deutsche Messe<br />

AG, OSBA, Medialinx AG und<br />

Pluspol). Es findet sich außer<br />

in Open Source in Open<br />

Data, Open Collaboration, in<br />

der Open Minds Economy bis<br />

zum Open Access. Details zu<br />

Programm und Möglichkeiten<br />

der Mitwirkung finden sich<br />

unter [http://​www.​cebit.​de/​de/​<br />

​ueber‐die‐messe/​programm/]. n<br />

IPfire hofft auf Crowdfunding<br />

Das Open-Source-Firewall-<br />

Projekt IPfire hat eine Crowdfunding-Plattform<br />

ins Leben<br />

gerufen, die freiwillige Spenden<br />

für eine Wunschliste<br />

mit Erweiterungen annimmt<br />

[http://​wishlist.ipfire.org].<br />

Die Begründung der Entwickler:<br />

„Wir haben keine Unternehmen,<br />

die uns regelmäßig<br />

finanziell unter die Arme<br />

greifen. Wir sind ein Team<br />

von Freiwilligen, die an diesem<br />

Projekt in ihrer Freizeit<br />

arbeiten. Im Laufe der Zeit hat<br />

das Projekt an Größe gewonnen<br />

und benötigt natürlich<br />

eine dementsprechende Infrastruktur,<br />

um funktionieren<br />

und die täglichen Aufgaben<br />

bewältigen zu können.“ Auch<br />

die Entwicklertreffen kosteten<br />

Geld, das bisher hauptsächlich<br />

von den Entwicklern<br />

selbst stamme.<br />

Ihrer Hoffnung auf Spenden<br />

begründen die Mitarbeiter mit<br />

der Enterprise-Tauglichkeit<br />

ihre r Software: Weil IPfire<br />

„viele Funktionen enthält,<br />

die in Enterprise-Umgebungen<br />

und Unternehmen gefragt<br />

sind, vermuten wir, dass<br />

etwa die Hälfte aller weltweit<br />

aktiven IPfire-Installationen<br />

in solchen Umgebungen betrieben<br />

wird. Üblicherweise<br />

würden bei Benutzung einer<br />

kommerziellen Lösung, die<br />

einen ähnlichen Funktionsumfang<br />

wie IPfire hat, hohe<br />

Lizenzgebühren anfallen – IPfire<br />

wird auch künftig kostenlos<br />

zu nutzen sein!“ n


Aktuell<br />

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

14<br />

Qt und Android<br />

Das Projekt Necessitas, das<br />

Qt-Programme fit für Android<br />

machen will, arbeitet unter<br />

den Fittichen der Qt-Stiftung<br />

weiter. Necessitas ist seit Anfang<br />

2011 als offizielles KDE-<br />

Projekt unter [http://​necessitas.​<br />

​kde.​org] zu finden. Ziel ist die<br />

Möglichkeit, Android-Apps<br />

auf Qt-Basis entwickeln zu<br />

können.<br />

Jetzt gehört Necessitas auch<br />

zur Qt Foundation, was auch<br />

den Realitätssinn der Qt-Community<br />

für die Verbreitung widerspiegelt<br />

– dass Qt-fähige<br />

Betriebssysteme wie Symbian<br />

OS und Meego absehbar eine<br />

vergleichbare Marktbedeutung<br />

wie das mobile Google-<br />

System erlangen, darf als unwahrscheinlich<br />

gelten. Auch<br />

Digia, die Trägerin der Qt-Entwicklung,<br />

will in Necessitas<br />

investieren.<br />

Mit dem aktuellen Betacode,<br />

der auf Qt 4.8 beruht, lassen<br />

sich dem Vernehmen nach<br />

schon einzelne Android-Apps<br />

übersetzen.<br />

n<br />

Neue Linaro-Mitglieder<br />

Immer mehr Big <strong>Play</strong>er engagieren<br />

sich für <strong>Linux</strong>-Server<br />

auf der ARM-Architektur.<br />

Jetzt haben sich die Branchengrößen<br />

AMD, Applied<br />

Micro, Calxeda, Canonical,<br />

Cavium, Facebook, HP, Marvell<br />

und Red Hat den bestehenden<br />

Linaro-Mitgliedern<br />

ARM, Hi Silicon, Samsung<br />

und ST-Ericsson angeschlossen.<br />

Man wolle „eine neue<br />

Arbeitsgruppe schaffen, die<br />

die Entwicklung von <strong>Linux</strong>-<br />

ARM-Servern beschleunige“,<br />

so eine Pressemitteilung. Gemeinsam<br />

ein komplettes Ökosystem<br />

für <strong>Linux</strong>-Server auf<br />

ARM-Hardware zu schaffen,<br />

das ist das Ziel der Linaro-<br />

Gemeinschaft.<br />

Die Non-Profit-Organisation<br />

arbeitet unter dem Motto<br />

„Open Source für ARM SoCs“<br />

an einem Softwarestack, der<br />

noch in diesem Jahr erscheinen<br />

soll. Zum Einsatz kommen<br />

gängige freie <strong>Linux</strong>-Tools<br />

– vom GCC bis zum Kernel –<br />

sowie diverse Treiber. n<br />

Red Hat will in China aufholen<br />

3 Milliarden Dollar Umsatz<br />

innerhalb von fünf Jahren:<br />

Das ist das Ziel, das Red Hats<br />

CEO Jim Whitehurst vorgibt.<br />

Um es zu erreichen, will der<br />

Distributor mehr in das Vertriebs-<br />

und Entwicklungsteam<br />

in China investieren.<br />

Der chinesischen News-Webseite<br />

[http://www.chinadaily.com.<br />

cn] zufolge sieht Whitehurst in<br />

China ein großes Cloud-Potenzial,<br />

größer als beispielsweise<br />

in entwickelten Ländern wie<br />

den USA. Gleichzeitig aber<br />

liege China bei Red Hats Einkommen<br />

hinter Japan, Australien<br />

und den Vereinigten<br />

Staaten.<br />

Whitehurst sieht hier große<br />

Möglichkeiten, auch Indien<br />

und Brasilien seien bei Red<br />

Hat unterrepräsentiert. Neben<br />

den traditionellen Einsatzgebieten<br />

für <strong>Linux</strong>-Server<br />

biete sich vor allem Cloud<br />

Computing an. Innerhalb von<br />

fünf Jahren wolle sein Unternehmen<br />

den Umsatz verfünffachen.<br />

In China möchte es<br />

dafür allein dieses Jahr 100<br />

neue Mitarbeiter einstellen.n<br />

Gründerhauptstadt München<br />

Bezogen auf die Einwohnerzahl<br />

werden nirgendwo sonst<br />

so viele IT-Unternehmen gegründet<br />

wie in München,<br />

Berlin liegt auf Platz zwei.<br />

Das Rhein-Main-Gebiet mit<br />

Frankfurt sowie Hamburg folgen<br />

auf den Rängen drei und<br />

vier. So lautet das Ergebnis<br />

einer Studie zur Gründungsdynamik<br />

im Bereich IT und<br />

Internettechnologien, die der<br />

Branchenverband Bitkom vorgestellt<br />

hat. Die Untersuchung<br />

hat das Zentrum für Europäische<br />

Wirtschaftsforschung<br />

(ZEW) erstellt, das Bundesministerium<br />

für Wirtschaft<br />

und Technologie sowie die<br />

Deutsche Telekom haben sie<br />

unterstützt.<br />

„Die Untersuchung räumt mit<br />

einer ganzen Reihe von Klischees<br />

über die Gründerszene<br />

auf“, sagt Bitkom-Präsident<br />

Dieter Kempf. So werden nur<br />

die wenigsten Unternehmen<br />

von Uni-Absolventen gegründet,<br />

die gerade ihren Abschluss<br />

in der Tasche haben.<br />

Das Durchschnittsalter von IT-<br />

Gründern liegt in Deutschland<br />

aktuell bei 38 Jahren, sie verfügen<br />

über 17 Jahre Berufserfahrung,<br />

davon 11 Jahre in der<br />

Branche. Gleichzeitig besitzt<br />

nur die Hälfte der Gründer<br />

(52 Prozent) überhaupt einen<br />

Universitätsabschluss.<br />

„Gründungsstorys wie bei<br />

Facebook sind in Deutschland<br />

eher noch die Ausnahme“, so<br />

Kempf. Das zeigt auch ein<br />

Blick auf die Beschäftigten in<br />

den Startups. Nur etwa ein<br />

Drittel (36 Prozent) sind Akademiker,<br />

aber die Hälfte (50<br />

Prozent) hat eine abgeschlossene<br />

Berufsausbildung. Ein<br />

Drittel der ITK-Gründungen<br />

sind der Studie zufolge Ausgründungen<br />

aus bestehenden<br />

Unternehmen. Informationen<br />

zum Nachlesen stellt der Bitkom<br />

unter [http://​www.​bitkom.​<br />

​org/​73980_73972.​aspx] bereit. n<br />

© Bitkorn/ZEW<br />

Deutschlandkarte der Gründungshäufigkeit:<br />

München, Berlin, das<br />

Rhein-Main-Gebiet und Hamburg sind<br />

am aktivsten.


Neuheiten von O’Reilly<br />

Lösungen vorprogrammiert<br />

OSB Alliance feiert Mitgliederzuwachs<br />

Die Interessenvertretung Open<br />

Source Business Alliance<br />

(OSB Alliance) berichtet stolz<br />

von den neuen Mitgliedern,<br />

die sich ihr seit der Gründung<br />

angeschlossen haben. Die Organisation<br />

ging im Sommer<br />

2011 aus dem Zusammenschluss<br />

von <strong>Linux</strong>-Verband<br />

(Live) und <strong>Linux</strong> Solutions<br />

Group (Lisog) hervor (das<br />

<strong>Linux</strong>-<strong>Magazin</strong> berichtete). In<br />

den seither vergangenen rund<br />

18 Monaten hat die Organisation<br />

nach eigenen Angaben<br />

39 neue Mitglieder gewonnen,<br />

was eine Gesamtzahl von 190<br />

Mitgliedern ergibt.<br />

„Wir begrüßen sehr herzlich<br />

die neuen Mitglieder in<br />

der Open Source Business<br />

Alliance“, erklärt deren Vorstandsvorsitzender<br />

Peter Ganten.<br />

„Dass die Entstehung<br />

unseres Vereins mit so wenig<br />

Reibungsverlusten zustande<br />

kam, war schon bemerkenswert.“<br />

Bei der Fusion hatten<br />

die Partner 103 (Live) und<br />

124 Mitglieder (Lisog) eingebracht.<br />

Das erste neue Mitglied nach<br />

der Vereinigung war die Netways<br />

GmbH aus Nürnberg, als<br />

jüngstes kam im Oktober 2012<br />

die Decoit GmbH mit Sitz in<br />

Bremen dazu. Über zwei Drittel<br />

der Mitglieder sind IT-Anbieter<br />

und ‐Berater. Daneben<br />

finden sich auch Bildungsund<br />

Forschungseinrichtungen<br />

wie die IT-Fachbereiche<br />

der Hochschule Hof und der<br />

Universität Potsdam in den<br />

Reihen der OSB Alliance. Der<br />

wirtschaftlich größte Neuling<br />

ist die AMD Advanced Micro<br />

Devices GmbH.<br />

Weitere Informationen über<br />

den Open Source Business<br />

Alliance e.V. und seine Mitglieder<br />

finden sich auf der<br />

Website unter [http://​www.​<br />

​osb‐alliance.​de]. <br />

n<br />

Das intelligente Haus<br />

Mike Riley, 248 Seiten, 2012, 34,90 €<br />

ISBN 978-3-86899-363-9<br />

Das intelligente Haus – Heimautomation mit<br />

Arduino, Android und PC zeigt Ihnen anhand<br />

von geekigen Projekten, wie Sie Ihr Haus<br />

bzw. Ihre Wohnung clever automatisieren.<br />

Für Geeks, Häuslebauer, Program mierer<br />

und Technikjünger!<br />

Das Gimp 2.8-Buch<br />

Kai Richter, 304 Seiten, 2012, 17,90 €<br />

ISBN 978-3-86899-857-3<br />

Dieses Buch bietet einen zügigen und<br />

anschaulichen Einstieg, sodass Sie sich<br />

schnell in GIMP zurechtfinden und sich ganz<br />

auf die Bearbeitung Ihrer Fotos konzentrieren<br />

können. Plattformübergreifend für Windows­,<br />

Mac­ und <strong>Linux</strong>­Nutzer geeignet.<br />

C von Kopf bis Fuß<br />

David Griffiths & Dawn Griffiths, 636 Seiten, 2012<br />

49,90 €, ISBN 978-3-86899-386-8<br />

Endlich ein neues »von Kopf bis Fuß«!<br />

Dieses Buch vermittelt nicht nur alle Basics<br />

wie die Sprachgrundlagen, Zeiger und<br />

Zeigerarithmetik sowie die dynamische<br />

Speicherverwaltung, sondern auch fortgeschrittene<br />

Themen wie Multithreading und<br />

Netzwerkprogrammierung. Mit vielen<br />

praktischen & unterhaltsamen Übungen.<br />

Open Source Studie Schweiz 2012<br />

Open Source ist weit verbreitet,<br />

könnte aber noch größere<br />

Kosteneinsparungen ermöglichen.<br />

Das ist eines der Ergebnisse<br />

der „Open Source Studie<br />

Schweiz 2012“.<br />

93 Prozent der rund 200 befragten<br />

Unternehmen und<br />

Behörden in der Schweiz<br />

nutzen bereits freie Software,<br />

stellt die Erhebung fest. Dabei<br />

ist der Open-Source-Einsatz<br />

umso wahrscheinlicher, je<br />

größer die Firma oder Organisation<br />

ist.<br />

Die Studienteilnehmer schätzen<br />

besonders offene Standards<br />

und Schnittstellen. Auf<br />

Platz zwei der Vorteile von<br />

Open Source folgt bereits die<br />

Kosteneinsparung. Für die Zukunft<br />

erwarten die Anwender<br />

Einsparungen von 10 bis 30<br />

Prozent. Mängel sehen die Befragten<br />

noch bei der Verfügbarkeit<br />

kommerzieller Open-<br />

Source-Dienstleistungen in der<br />

Schweiz, der Rechtssicherheit<br />

für Anwender sowie bei der<br />

Benutzerakzeptanz.<br />

Die Studie steht im Volltext<br />

unter [http://​www.​swissict.​ch/​<br />

​ossstudie_2012] zum kostenlosen<br />

Download bereit. Die<br />

Herausgeber sind der Verband<br />

Swiss ICT und die Swiss<br />

Open Systems User Group<br />

(CH Open). Erstellt hat den<br />

Bericht die Unternehmensberatung<br />

Ernst & Young. n<br />

O'Reillys Erfolgsreihen im Hosentaschenformat.<br />

jetzt mit neuen Bänden!<br />

<strong>Linux</strong> - kurz & gut<br />

ISBN 978-3-86899-412-4, 12,90 €<br />

Blog:<br />

community.oreilly.de/blog<br />

Google+:<br />

bit.ly/googleplus_oreillyverlag<br />

Eltern sein – kurz & geek<br />

ISBN 978-3-86899-827-6, 9,90 €<br />

O’REILLY ®<br />

www.oreilly.de<br />

Facebook:<br />

facebook.com/oreilly.de<br />

Twitter:<br />

twitter.com/oreilly_verlag


Aktuell<br />

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

16<br />

Thomas Krenn stiftet Server<br />

Der deutsche Serverhersteller<br />

Thomas Krenn hat acht Open-<br />

Source-Projekten je einen seiner<br />

Low Energy Server spendiert.<br />

Die Geförderten sind die<br />

Debian-Variante Skolelinux,<br />

das Softwareverteilungssystem<br />

M23, das Projekt Raumfahrtagentur.org,<br />

die Smart-Meter-<br />

Community Volkszaehler.org,<br />

X2go, Mapserver, Kolab und<br />

die Community-Distribution<br />

Mageia.<br />

Der Chiphersteller Intel sponsert<br />

mit und hat die energiesparenden<br />

Server mit je einer<br />

40-GByte-SSD ausgestattet.<br />

Die Open-Source-Förderung<br />

ist eine Aktion in Kooperation<br />

mit <strong>Linux</strong>hotel, Netways und<br />

Univention. Max Wittenzellner,<br />

Mitgründer der Thomas<br />

Krenn AG, sagt zur Motivation:<br />

„Viele unserer Kunden<br />

setzen Open-Source-Software<br />

für kritische IT Dienste ein –<br />

so auch wir.“ <br />

n<br />

Mehrere Softwareprojekte erhielten<br />

einen energiesparenden Atom-Server<br />

von Thomas Krenn.<br />

Apache Open Office verlässt Incubator<br />

Die Apache Software Foundation<br />

(ASF) erkennt das<br />

ihr anvertraute Open-Office-<br />

Projekt als Top-Level-Projekt<br />

an. Seit Juni 2011 befand es<br />

sich noch in der als Incubator<br />

bezeichneten Vorstufe zum<br />

Apache-Projekt. Den Quellcode<br />

hatte der Sun-Aufkäufer<br />

und Rechte-Inhaber Oracle<br />

der ASF gestiftet.<br />

Ross Gardler, Mentor des<br />

Projekts und Executive Vice<br />

President der ASF, zieht eine<br />

positive Zwischenbilanz: „Im<br />

Incubator-Prozess konnten<br />

erfahrene Apache-Entwickler<br />

das Projekt begleiten. Sie haben<br />

sowohl neuen als auch<br />

bewährten Open-Office-Entwicklern<br />

geholfen eine offene<br />

und vielfältige Community im<br />

Apache-Stil aufzubauen.“<br />

Apache Open Office ist unter<br />

[http://​openoffice.​apache.​org] zu<br />

finden. Als Apache-Projekt<br />

verwendet die Bürosuite auch<br />

die Apache-Softwarelizenz.<br />

Um das zu erreichen, mussten<br />

die Entwickler einige<br />

Bibliotheken unter inkompatiblen<br />

Lizenzen ersetzen. Im<br />

Mai 2012 veröffentlichte Open<br />

Office die Version 3.4 seiner<br />

Software in 20 Sprachen. Das<br />

größere Libre-Office-Projekt,<br />

das unter LGPL veröffentlicht,<br />

zählt über 90 Sprachen. n<br />

Tablets treiben PC-Markt<br />

Der Absatz von PCs soll in<br />

Deutsch land in diesem Jahr<br />

um fast 5 Prozent zulegen.<br />

Grundlage des Marktwachstums<br />

sind vor allem Tablet-<br />

Computer: 3,2 Millionen Geräte<br />

werden in diesem Jahr<br />

verkauft, ein Plus von 52 Prozent<br />

gegenüber dem Vorjahr.<br />

Der Verkauf von Desktop-PCs<br />

und Notebooks bleibt dagegen<br />

weitgehend stabil. Insgesamt<br />

steigt der Umsatz mit<br />

Desktop-Geräten, Notebooks<br />

und Tablet-PCs voraussichtlich<br />

um 4,9 Prozent auf 7,8<br />

Milliarden Euro.<br />

Alles in allem sollen rund 16,5<br />

Millionen Geräte verkauft werden,<br />

ein Plus von 7,3 Prozent<br />

verglichen mit dem Vorjahr.<br />

Das teilt der Hightech-Verband<br />

Bitkom auf Grundlage aktueller<br />

Berechnungen des European<br />

Information Technology<br />

Observatory (EITO) mit.<br />

Der Prognose zufolge werden<br />

in diesem Jahr 5,4 Millionen<br />

Desktop-PCs verkauft, das<br />

entspricht einem Anstieg um<br />

2,6 Prozent. Dabei zieht die<br />

Nachfrage von Privatkunden<br />

stärker an als die von Geschäftskunden.<br />

Weil die Geräte<br />

billiger werden, machen<br />

sich die steigenden Verkaufszahlen<br />

aber nicht beim Umsatz<br />

bemerkbar. Der wird mit<br />

2,4 Milliarden Euro gegenüber<br />

2011 sogar leicht zurückgehen<br />

(minus 0,7 Prozent).<br />

Die Verkaufszahlen von Notebooks-<br />

und Netbooks gehen<br />

von rund 8 Millionen Geräten<br />

im Jahr 2011 auf 7,9 Millionen<br />

zurück (-1,4 Prozent).<br />

Der Umsatz sinkt um 2,2 Prozent<br />

auf 3,9 Milliarden Euro.<br />

Grund dafür ist ein Einbruch<br />

bei den Absatzzahlen der kleinen<br />

Netbooks, die ein Minus<br />

von fast 30 Prozent melden. n<br />

Sicherheitsbehörde denkt an Ubuntu<br />

Der Anwender-Leitfaden zur<br />

sicheren PC-Nutzung ist erstmals<br />

nicht nur für Windows,<br />

sondern auch für Ubuntu und<br />

Mac OS erschienen. Das Bundesamt<br />

für Sicherheit in der<br />

Informationstechnik (BSI)<br />

hat anlässlich der IT-Sicherheitsmesse<br />

IT-SA in Nürnberg<br />

seine Dokumentensammlung<br />

zur sicheren Anwendung von<br />

Computern aktualisiert. Während<br />

bislang die „Empfehlungen<br />

zur sicheren PC-Nutzung“<br />

nur für Windows vorlagen,<br />

gibt es erstmals auch analoge<br />

Texte für Ubuntu und Mac OS<br />

(Version 1.0).<br />

Das PDF zu Ubuntu ist zusammen<br />

mit den anderen beiden<br />

Texten auf der BSI-Webseite<br />

[https://​www.​bsi‐fuer‐buer​ger.​de]<br />

im Navigationsbereich „Basisschutz<br />

für den Computer“<br />

abgelegt, außerdem auf der<br />

separaten Website „Allianz<br />

für Cyber-Sicherheit“, die das<br />

BSI zusammen mit dem Internet<br />

unternehmensverband Bitkom<br />

betreibt, in der Rubrik<br />

„Privatpersonen“.<br />

Eine praktisch identische<br />

Ubuntu-Anleitung findet sich<br />

darüber hinaus in der Sektion<br />

für Kleinunternehmen. (ake/​<br />

jcb/​jk/​mfe/​mhu)<br />

n


HURRA! GEBURTSTAG!<br />

20 JAHRE HEINLEIN & LINUX! – WIR GEBEN EINEN AUS!<br />

Die Geschichte von Heinlein Support begann im Jahr<br />

1992 mit einer 5 1/4 Zoll Festplatte (20 MByte!), einer<br />

illegalen Standleitung und den Daten der Computermailbox<br />

JPBerlin, die bereits wenig später unter <strong>Linux</strong> lief.<br />

Zu meinem 20-jährigen Dienstjubiläum erinnern wir<br />

uns an die schönsten Admin-Anekdoten: mysteriöse<br />

Setups, merkwürdige Ingenieursleistungen, sagenumwobene Management-<br />

Entscheidungen oder heldenhafte Admin-Einsätze.<br />

Doch auch Ihre Admin-Geschichten wollen wir lesen! Schreiben Sie<br />

mit, wählen Sie Ihre Favouriten. – Für die drei schönsten Geschichten<br />

spendieren wir was.<br />

Viel Spaß,<br />

Mitmachen,<br />

abstimmen & gewinnen!<br />

www.admin-stories.de<br />

Ihr Peer Heinlein<br />

www.heinlein-support.de<br />

<strong>Linux</strong> höchstpersönlich.


Aktuell<br />

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

18<br />

Zacks Kernel-News<br />

Lanyard-FS – ein einfaches Flash-Dateisystem<br />

Der Student Dan Luedtke hat<br />

der Kernel-Mailingliste ein<br />

minimalistisches Dateisystem<br />

namens Lanyard-FS (Lany-FS)<br />

vorgestellt. Es ist für kleine<br />

Flashspeicher gedacht, wie<br />

man sie an einem Schlüsselband<br />

trägt.<br />

Einige Entwickler zweifeln<br />

aber die Existenzberechtigung<br />

von Lany-FS an: Warum das<br />

Rad neu erfinden, wenn es<br />

schon derartige Dateisysteme<br />

gibt, dazu mit mehr Features?<br />

Alan Cox empfahl Dan den Artikel<br />

von Arnd Bergmann über<br />

Flashspeicher unter [http://​lwn.​<br />

​net/​Articles/​428584/].<br />

Dan weist jedoch darauf hin,<br />

dass die Projektwebsite [http://​<br />

​nonattached.​net/​lanyfs/] keine<br />

vollständige Dokumentation<br />

enthält, weil das Dateisystem<br />

Teil seiner Master-Arbeit ist.<br />

Er sei sich nicht sicher, wie<br />

viele Details er vor dem Ein -<br />

reichen veröffentlichen dürfe.<br />

Er hofft, sein einfaches Dateisystem<br />

werde gut auf dem<br />

Arduino-Board und anderen<br />

kleinen Embedded-Systemen<br />

arbeiten, die nur lesenden<br />

Zugriff auf Dateien benötigen,<br />

etwa um Multimedia-Inhalte<br />

abzuspielen. Bei FAT 32 sei er<br />

bereits an die 4-GByte-Grenze<br />

gestoßen.<br />

Al Viro kommentiert den Code<br />

und weist auf eine bedeutende<br />

Sicherheitslücke hin, denn<br />

das Lany-FS erlaubt endlose<br />

Rekursion. Damit könne ein<br />

Angreifer den Kernelstack zum<br />

Überlaufen bringen. Daneben<br />

kritisiert Al den Umgang des<br />

Dateisystems mit der Byte-<br />

Reihenfolge. An einer Stelle<br />

drehe der Code diese einfach<br />

um, anstatt sicherzustellen,<br />

dass die Variablen nur Werte<br />

mit der korrekten Endianness<br />

annehmen. Hier rät er zu<br />

mehr Sorgfalt, um ärgerlichen<br />

Bugs vorzubeugen.<br />

Außerdem schreibt er: „Ich<br />

habe ernsthafte Zweifel, dass<br />

Anwender USB-Sticks verwenden<br />

möchten, um Dateien<br />

größer als 4 GByte zu übertragen.<br />

Das dürfte sehr unpraktisch<br />

sein.“<br />

Andere unterstützen Dan.<br />

Carlos Alberto Lopez Perez<br />

von Igalia weist darauf hin,<br />

dass Microsoft sein ExFAT-<br />

Dateisystem als Lösung für<br />

dieses Anwendungsszenario<br />

durchsetzen möchte. Dies sei<br />

aber lizenzpflichtig und mit<br />

Patenten belastet. Daher sieht<br />

er Lany-FS als wünschenswerte<br />

Alternative.<br />

Arnd Bergmann lässt wissen,<br />

dass er zusammen mit einem<br />

Flash-Hersteller an einem<br />

ähnlichen Dateisystem arbeitet.<br />

Offenbar gibt es also Bedarf<br />

für Lany-FS & Co. n<br />

Dan Luedtkes Lany-FS könnte ein einfaches Dateisystem für Hardware wie das<br />

Arduino-Board werden.<br />

© arduino.cc<br />

Erweitertes UEFI Secure Boot für <strong>Linux</strong><br />

Der Red-Hat-Mitarbeiter Matthew<br />

Garrett hat einige Patches<br />

eingereicht, die die Sicherheit<br />

von <strong>Linux</strong>-Rechnern<br />

erhöhen sollen. Er möchte das<br />

Sicherheitsmodell des UEFI<br />

Secure Boot erweitern, sodass<br />

ein signiertes Betriebssystem<br />

kein unsigniertes booten<br />

kann. Alan Cox hält es aber<br />

für unmöglich, den Root-Benutzer<br />

auf Kernelebene daran<br />

zu hindern, die Kontrolle zu<br />

übernehmen. Er schreibt: „Mit<br />

einer GUI-Anwendung kann<br />

er dem Benutzer vorgaukeln,<br />

das System sei abgestürzt und<br />

neu gestartet, um Passwörter<br />

abzufischen.“<br />

Derartige Angriffe glaubt<br />

Matthew mit Hilfe des Secure<br />

Attention Key (SAK) verhindern<br />

zu können. SAK ist eine<br />

vertrauenswürdige Schlüsselkombination,<br />

die einen<br />

bekannten Login-Prozess anstößt.<br />

Sollte eine Anwendung<br />

versuchen ein Login nur vorzutäuschen,<br />

könnte SAK das<br />

System dazu zwingen, auf<br />

den vertrauenswürdigen Prozess<br />

zurückzufallen.<br />

Pavel Machek bezweifelt,<br />

dass dies funktioniert. Er argumentiert,<br />

SAK müsste dem<br />

Anwender auf allen Systemen<br />

das gleiche Aussehen präsentieren,<br />

um wiedererkennbar<br />

zu sein. Zu diesem Zweck<br />

müssten auch die grafischen<br />

Elemente wie beispielsweise<br />

das Pinguin-Logo im Kernel<br />

enthalten sein.<br />

Hier endet zwar vorerst die<br />

Diskussion, aber UEFI-Sicherheitsfeatures<br />

dürften in der einen<br />

oder anderen Form in den<br />

Kernel einziehen.<br />

n


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

ACADEMY<br />

Das ABI bleibt unantastbar<br />

Linus Torvalds hat den Kernelentwicklern<br />

jüngst eine<br />

Standpauke über Änderungen<br />

am Application Binary<br />

Interface (ABI) gehalten. Der<br />

Auslöser war ein Patch des<br />

deutschen Embedded-Entwicklers<br />

Thomas Gleixner. Es<br />

behebt Nullpointer-Probleme<br />

im Itimer-Code. Da es aber<br />

ein Detail des ABI verändert,<br />

antwortete Linus: „So funktioniert<br />

ein ABI nicht. Wenn sich<br />

die Leute auf dieses Feature<br />

verlassen, ist es Teil des ABI<br />

geworden, selbst wenn es eigentlich<br />

die Spezifikation verletzt.<br />

Die Spezifikation ist nur<br />

ein Stück Papier, es kommt<br />

darauf an, was die Anwender<br />

tatsächlich tun.“<br />

Der Manpages-Maintainer Michael<br />

Kerrisk wagte sich vor<br />

und argumentierte, mit genügend<br />

Vorlaufzeit könne eine<br />

Änderung am ABI doch vertretbar<br />

sein. Im vorliegenden<br />

Fall würde sie <strong>Linux</strong> zudem<br />

zu Free BSD und Net BSD<br />

konform machen.<br />

Hierauf zog Linus erst richtig<br />

vom Leder und stellte kategorisch<br />

fest: „Man macht keine<br />

Änderungen am ABI! Ich<br />

verstehe nicht, warum das so<br />

schwer zu kapieren ist.“ Er<br />

fährt fort, es gäbe nur wenige<br />

stichhaltige Gründe, das ABI<br />

überhaupt anzufassen, und<br />

sie seien alle extern motiviert.<br />

Der erste läge in Security-Problemen<br />

– hier hätte es Fälle<br />

gegeben, in denen die Schnittstellen<br />

zu viele Informationen<br />

preisgegeben hätten.<br />

Daneben gibt es gelegentlich<br />

Probleme mit der Implementierung<br />

von Schnittstellendetails.<br />

Linus hält sie für ein Zeichen,<br />

dass die Kernelentwickler<br />

schlecht gearbeitet haben und<br />

nachbessern müssen. Dabei<br />

geht es aber praktisch nie um<br />

normale Systemcalls, sondern<br />

um Ausnahmefälle.<br />

Schließlich führt das <strong>Linux</strong>-<br />

ABI manchmal auch dazu,<br />

dass eigentlich portable<br />

Anwendungen nicht funktionieren.<br />

Dann sollten die<br />

Kernelentwickler versuchen<br />

das Problem zu beheben, aber<br />

ohne dass etwas anderes dadurch<br />

kaputtgeht.<br />

Torvalds fügt an: „Ehrlich gesagt<br />

ist es, außer bei Security-Fragen,<br />

meistens besser,<br />

eine Kompatibilitätsschicht<br />

einzusetzen, die das alte ABI<br />

weiterhin funktionieren lässt.<br />

Das gilt selbst dann, wenn<br />

die alte Version fehlerhaft<br />

war, wie bei den vielen Versionen<br />

von »stat()«, die wir<br />

schon hatten.“ Abgesehen davon<br />

gelte grundsätzlich: Der<br />

Kernel ändert nie sein ABI.<br />

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

LPIC-1<br />

All-in-One Solution<br />

✓<br />

✓<br />

✓<br />

Stellen Sie Ihr <strong>Linux</strong>-Wissen mit<br />

einer Zertifizierung unter Beweis!<br />

Nutzen Sie die volle Flexibilität bei<br />

der Zeiteinteilung Ihrer Schulung!<br />

Holen Sie sich alles, was Sie<br />

benötigen, in einem Paket!<br />

LPIC-1 Komplettpaket* € 1.490,-<br />

*Zertifizierung als „Junior Level <strong>Linux</strong> Professional“<br />

100% flexibel!<br />

Linus Torvalds spricht sich kategorisch gegen Änderungen am ABI aus.<br />

www.academy.linuxmagazin.de/solution


Aktuell<br />

www.linux-magazin.de Libre Office Conference 01/2013<br />

20<br />

Libre Office Conference 2012 in Berlin<br />

Fliegender Start<br />

„Wir stehen erst am Anfang!“ Mit dieser Untertreibung hat Florian Effenberger in seiner Keynote die Libre<br />

Office Conference in Berlin eröffnet. Das klingt angesichts von 60 Millionen Usern unnötig bescheiden, kann<br />

doch das Projekt auch mit erstaunlichen Fakten und Erfolgsgeschichten aufwarten. Markus Feilner<br />

© Robert Paul Van Beets, 123RF.com<br />

„Wenn Du an eine Abzweigung auf Deinem<br />

Weg kommst, dann bieg ab!“ Das<br />

Zitat stammt von dem amerikanischen<br />

Baseballstar Yogi Berra, und es ist kein<br />

Zufall, dass Italo Vignoli von der Document<br />

Foundation es seiner Keynote auf<br />

der Libre Office Conference voranstellt.<br />

Die Entscheidung, Libre Office von Open<br />

Office im Grundsatz und von Sun im<br />

Besonderen abzuspalten, scheint heute,<br />

zwei Jahre später auf der Libre Office<br />

Conference 2012 betrachtet, genau die<br />

richtige gewesen zu sein.<br />

Anlass zu dieser Vermutung gibt bereits<br />

die Wahl des Veranstaltungsorts:<br />

Im repräsentativen Konferenzzentrum<br />

des Bundesministeriums für Wirtschaft<br />

und Technologie trafen sich Mitte Oktober<br />

mehrere Hundert Entwickler und<br />

Anwender (Abbildungen 1 und 2, [1]).<br />

Schon die nackten Zahlen sprechen eine<br />

deutliche Sprache: 60 Millionen Benutzer<br />

bei 90 Millionen Downloads innerhalb<br />

von nur zwei Jahren. Wohl auch weil<br />

sich darunter immer mehr Behörden und<br />

Institutionen finden, traten dieses Mal<br />

gleich zwei Bundesministerien (Innen<br />

und Wirtschaft) als Gastgeber auf.<br />

Erwartungen dämpfen<br />

Sichtlich schwer taten sich die Vertreter<br />

der Foundation damit, ihre demonstrierte<br />

Bescheidenheit angesichts der vielen Er-<br />

folge zu begründen. Die umfangreichen<br />

Statistiken, die Effenberger [2] und Vignoli<br />

[3] aufzählen, sprechen für sich:<br />

Hunderte von Sprachen unterstützt Libre<br />

Office mittlerweile, Bugs werden schneller<br />

geschlossen als je zuvor,<br />

Zahllose Erfolgsgeschichten, von München<br />

über Kopenhagen, Umbrien, Mailand,<br />

Limerick, Griechenland, Florida bis<br />

nach Chicago belegen die Beliebtheit des<br />

freien Office. 80 Prozent der Anwender<br />

benutzen übrigens Windows als Betriebssystem,<br />

10 Prozent Apples OS. Auch Vignoli<br />

hat der große Erfolg überrascht: „Es<br />

fällt schwer, zu glauben, was da in den<br />

letzten zwei Jahren alles passiert ist.“ Die<br />

Keynote des Italieners strotzt nur so von<br />

Infografiken (Abbildung 3).<br />

Den Löwenanteil der Entwicklung an<br />

Libre Office leisten Freiwillige sowie Suse<br />

und Red Hat, wobei die letzten beiden seit<br />

2011 mächtig zugelegt haben. Sowohl<br />

Wiki- als auch Bugfix-Beiträge werden<br />

mehr, während gleichzeitig die Anzahl<br />

der gemeldeten Bugs abnimmt und immer<br />

mehr (alte) deutsche Kommentare<br />

aus den Quelltexten verschwinden, berichtet<br />

Vignoli. Innerhalb nur eines Jahres<br />

sei die Anzahl der Downloads von durch-<br />

Abbildung 1: In die pompösen Hallen des Bundeswirtschaftsministeriums in Berlin hatte die Libre Office<br />

Community geladen, und die Entwickler und Anwender kamen zahlreich.<br />

© Radek Doulík


Tel. 0 64 32 / 91 39-749<br />

Fax 0 64 32 / 91 39-711<br />

vertrieb@ico.de<br />

www.ico.de/linux<br />

SEIT 1982<br />

schnittlich 250 000 auf<br />

knapp 400 000 pro Woche<br />

gestiegen, Tendenz<br />

steigend.<br />

Die Anzahl neuer<br />

Code beiträge sei heute<br />

knapp zehnmal so<br />

hoch wie noch vor<br />

zwei Jahren. Laut Vignoli<br />

engagieren sich<br />

zurzeit etwa 320 Gelegenheitsprogrammierer,<br />

150 Stammgäste<br />

und etwa 60 bezahlte<br />

Vollzeitprogrammierer<br />

im Projekt. Auch das<br />

Qualitätsmanagement<br />

lege zu: Seit Version<br />

3.4 habe das Team das Unit-Testing (in<br />

Gnumake) von zehn auf knapp 100 Tests<br />

(in 3.6) ausgeweitet, die jeweils eine<br />

ganze „Batterie“ an Untertests durchführten.<br />

Dass die Community funktioniert,<br />

zeigt sich aber auch in Hackfesten, dem<br />

Mentoring-Programm sowie vielen Events<br />

und Vorträgen der Stiftung.<br />

Ausblick<br />

Priorität auf der Roadmap hat die mobile<br />

(Android-)Variante von Libre Office, sind<br />

Tablets derzeit doch die einzige Plattform,<br />

auf der das freie Office noch nicht<br />

verfügbar ist. Außerdem steht noch das<br />

Cloud-Office auf der Liste, also das von<br />

Michael Meeks betriebene und mit Hilfe<br />

von Guacamole bewerkstelligte Office<br />

im Browser [5]. Doch auch davon abgesehen<br />

gibt es noch zahlreiche andere<br />

Baustellen, zum Beispiel die leidige Serienbrieffunktion,<br />

mit der einige der anwesenden<br />

Behördenvertreter so gar nicht<br />

glücklich sind.<br />

Wer die Konferenz<br />

besuchte oder die Vorträge<br />

online durchforstet,<br />

kann sich des<br />

Eindrucks nur schwer<br />

erwehren, dass das<br />

Vorzeigeprojekt der<br />

Open-Source-Community<br />

mächtig an Fahrt<br />

aufgenommen hat und<br />

auf dem besten Weg<br />

ist, sich in Sachen<br />

freies Office durchzusetzen.<br />

Abbildung 2: Workshops, Round Tables, Vorträge und gemeinsames Arbeiten<br />

an Libre Office stand im Mittelpunkt des dreitägigen Events.<br />

Im Gespräch mit Vertretern von Behörden<br />

zeigt sich auch, dass der Druck „von<br />

unten her“ wächst. Dem können sich offenbar<br />

auch übergeordnete Institutionen<br />

wie Wirtschafts- und das Innenministerium<br />

nicht entziehen. Vielleicht lässt sich<br />

beim nächsten Mal ja auch der eine oder<br />

andere Gastgeber, ein Staatssekretär oder<br />

gar Minister blicken. <br />

n<br />

Infos<br />

[1] Libre Office Conference Berlin:<br />

[http:// conference. libreoffice. org]<br />

[2] Florian Effenbergers Keynote:<br />

[http:// wiki. documentfoundation. org/​<br />

images/ 5/ 53/ LibOCon2012Welcome. pdf]<br />

[3] Italo Vignolis Slides: [http:// conference. libreoffice.<br />

org/ program/ wednesday‐premier<br />

‐track/ libreoffice‐the‐state‐of‐the‐project]<br />

[4] Markus Feilner, Florian Effenberger, „GTK<br />

führt Regie“: <strong>Linux</strong>-<strong>Magazin</strong> 02/​12, S. 58<br />

[5] Alle Vorträge der Konferenz:<br />

[http:// conference. libreoffice. org/ talks]<br />

Abbildung 3: Ein Diagramm aus Vignolis Keynote zeigt die Commits von Red<br />

Hat (rot), Suse (grün) und von Freiwilligen (blau) in 2011 und 2012 (außen).<br />

© Radek Doulík<br />

Innovative Computer • Zuckmayerstr. 15 • 65582 Diez<br />

Neueste Intel<br />

®<br />

Xeon<br />

® Prozes-<br />

soren. Jetzt mit<br />

bis zu 8 Kernen/16<br />

Threads pro CPU<br />

und bis zu 80%<br />

mehr Leistung!<br />

GmbH<br />

BALIOS R16A 1HE SERVER<br />

• Intel ® Xeon ® E3-1220 V2 3,1GHz S1155<br />

• 2x 4GB RAM und<br />

• 2x 1TB 24x7 SATA-2 HDD<br />

• Adaptec 6405E RC<br />

• Intel ® Remote Management<br />

• Systemtest mit Debian <strong>Linux</strong> 6<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1510, 11 1269,-<br />

Art.Nr. Bto-2988428<br />

BALIOS R25A 2HE SERVER<br />

• Intel ® Xeon ® E3-1220 V2 3,1GHz S1155<br />

• 2x 4GB RAM und<br />

• 4x 1TB 24x7 SATA-2 HDD<br />

• Adaptec 6405 + NAND BBU<br />

• Intel ® Remote Management<br />

• Systemtest mit Debian <strong>Linux</strong> 6<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1962, 31 1649,-<br />

Art.Nr. Bto-2988429<br />

BALIOS TX9A SILENT TOWER SERVER<br />

• Intel ® Xeon ® E3-<br />

1220 V2 3,1GHz<br />

S1155<br />

• 2x 8GB RAM und<br />

• 4x 1TB 24x7<br />

SATA-2 HDD<br />

• Adaptec 6405E<br />

• Intel ® Remote<br />

Management<br />

• Systemtest mit Debian<br />

<strong>Linux</strong> 6<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1700, 51 1429,-<br />

Art.Nr. Bto-2988430<br />

Intel<br />

® , Intel ® Logo, Intel ® Inside, Intel ® Inside Logo, Atom, Atom Inside,<br />

Xeon und Xeon Inside sind Marken der Intel Corporation in den USA und<br />

anderen Ländern.<br />

Alle Preise in Euro<br />

wir liefern auch<br />

nach Österreich<br />

u. in die Schweiz


1&1 DEDICATED SERVER<br />

100% SERVER-POWER NUR FÜR SIE.<br />

Die 1&1 Server-Range erfüllt jeden Wunsch. Und bietet Ihnen die Sicherheit und Erfahrung der Nummer 1:<br />

Mit über 11 Mio. Kundenverträgen, 2 Milliarden € Jahresumsatz, 5.000 Mitarbeitern und 5 Hochleistungs-<br />

Rechenzentren ist 1&1 einer der größten Webhoster weltweit. Und mit 20 Jahren Server-Erfahrung und<br />

1.500 Developern sind wir auch in Zukunft Ihr zuverlässiger Partner. Denn bei 1&1 nutzen Sie<br />

viele Vorteile, die Sie so bei keinem anderen Hoster fi nden.<br />

ECHTE SERVER-PROZESSOREN<br />

Intel ® Xeon ® E5 Server-Prozessoren der neuesten Generation<br />

oder AMD Opteron Prozessoren mit bis zu 32 Cores.<br />

PARALLELS ® PLESK PANEL 11<br />

mit unlimited Domains inklusive: Die neueste Version<br />

des besten Verwaltungstools für Ihren Server.<br />

OPTIONAL: SUSE LINUX ENTERPRISE SERVER<br />

Nur bei 1&1: Profi-<strong>Linux</strong> für Firmen und Institutionen.<br />

UNLIMITED TRAFFIC<br />

100 MBit/s Bandbreite. Ohne Zusatzkosten, ohne Drosselung.<br />

1&1 MOBILE APP<br />

Exklusiv bei 1&1: Server-Monitoring auch von unterwegs.<br />

DOMAINS | E-MAIL | WEBHOSTING | E-SHOPS | SERVER<br />

* Server XL6 3 Monate nur 49,99 €/Monat, danach 99,99 €/Monat. Server XL8 3 Monate nur 74,99 €/Monat, danach 149,99 €/Monat, Server XL12i 3 Monate nur 99,99 €/Monat,<br />

danach 199,99 €/Monat. Einrichtungsgebühr 99,– €. 12 Monate Mindestvertragslaufzeit. Preise inkl. MwSt.


50 % RABATT<br />

Server XL 6<br />

50% RABATT<br />

Server XL 8<br />

Server XL 12i<br />

AMD Hexa-Core AMD Opteron 4274<br />

6 Cores x 2,8 GHz<br />

(3,3 Turbo Core)<br />

8 Cores x 2,5 GHz<br />

(3,5 Turbo Core)<br />

Intel ® Xeon ® E5-2640<br />

Serverprozessor<br />

6 (12 HT) Cores x 2,5 Ghz<br />

(3,0 GHz Intel ® Turbo Boost)<br />

16 GB DDR3 ECC 16 GB DDR3 ECC 32 GB RAM DDR3 ECC<br />

1.000 GB HDD<br />

(2 x 1.000 SATA)<br />

1.500 GB<br />

(2 x 1.500 SATA)<br />

2.000 GB HDD<br />

(2 x 2.000 SATA)<br />

Software RAID 1 Software RAID 1 Software RAID 1<br />

99, 49, 99 nur<br />

UNLIMITED TRAFFIC mit 100 Mbit/s Bandbreite<br />

Freie Wahl aus CentOS, Debian, Ubuntu, openSUSE oder Windows (optional).<br />

Sofortige Bereitstellung Ihres Servers (maximal 24 h), 1 Monat ausprobieren.<br />

Konfi gurierbare Firewall gegen unerwünschte Zugriffe.<br />

Direkter Hardware-Austausch bei Defekten (maximal 24 h).<br />

99<br />

€/Monat*<br />

3 Monate 50%, danach 99,99 €/Monat<br />

24/7 Support per Telefon und E-Mail.<br />

149, nur74, 99 99<br />

€/Monat*<br />

3 Monate 50%, danach 149,99 €/Monat<br />

199, nur99, 99 99<br />

€/Monat*<br />

3 Monate 50%, danach 199,99 €/Monat<br />

Die 1&1 Rechenzentren werden zu<br />

100% mit Strom aus erneuerbaren<br />

Quellen betrieben was die CO 2<br />

Emission um 30.000 t pro Jahr reduziert.<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

www.1und1.info<br />

Intel, das Intel Logo, Xeon, und Xeon Inside sind Marken der Intel Corporation in den USA und anderen Ländern.


Titelthema<br />

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

24<br />

<strong>Linux</strong> als Home Entertainment Server mit UPnP und DLNA<br />

Voll im Strom<br />

Videos, Audiostreams, Fotos ... – Multimedia gewinnt erst richtig an Charme, wenn sich die Medieninhalte dank<br />

Protokollen wie UPnP und DLNA konfigurationsfrei zwischen TV-Geräten, Spielekonsolen, PCs und Smartphones<br />

verteilen. <strong>Linux</strong> als zentraler Mediaserver ist dabei ein gern gesehener Gast. Konstantin Agouros<br />

© Bonita Cheshier, 123RF.com<br />

anbieten. Dazu sendet der Client ein Paket<br />

mit der Methode »m‐search *« an<br />

die Multicast-Adresse. Das Paket enthält<br />

den SSDP-Aufruf »discover« und als Parameter<br />

der Suchanfrage („Was wird gesucht?“)<br />

findet sich in dem Paket folgender<br />

String:<br />

Teure Komplettlösungen wie Microsofts<br />

Media Center oder das geschlossene<br />

Apple Airplay halten derzeit Einzug in<br />

viele Wohnzimmer. Die verbreitetste<br />

offene Basis fürs Streaming, die Geräte<br />

fast aller Hersteller unterstützt, ist DLNA<br />

(Digital Living Network Alliance, [1]), ein<br />

von einem Industrie-Konsortium verabschiedeter<br />

Standard. Dieser Artikel zeigt,<br />

wie DLNA funktioniert, was für Protokolle<br />

darunterliegen, welche Gerätetypen<br />

es gibt, und wie sich ein <strong>Linux</strong>-PC, ein<br />

Android-Smartphone und eine <strong>Play</strong>station<br />

am Fernseher einspannen lassen.<br />

DLNA und UPnP<br />

DLNA ermöglicht unter anderem das<br />

Streamen von Medieninhalten wie Musik,<br />

Filmen und Fotos. Es sieht vor, dass<br />

sich Client und Server ohne Konfiguration<br />

finden und die Inhalte abspielen.<br />

Moderne Fernsehgeräte, Bluray-<strong>Play</strong>er<br />

oder Spielkonsolen haben DLNA-Clients<br />

in der Firmware dabei, Android Telefone<br />

einen DLNA-<strong>Play</strong>er, manche sogar einen<br />

DLNA-Server. Sollten sie nicht in der<br />

Standardinstallation enthalten sein, lädt<br />

sich der Smartphone-Besitzer nachträglich<br />

eine App aus Google <strong>Play</strong>.<br />

Damit der gewünschte „alles funktioniert<br />

einfach so“-Effekt eintritt und der Benutzer<br />

im Wohnzimmer den lokalen Server<br />

nicht über die Tasten seiner Fernbedienung<br />

eintragen muss, verwendet DLNA<br />

das Universal <strong>Plug</strong> and <strong>Play</strong> Protokoll<br />

(UPnP, [2]), das über Multicast-Pakete<br />

Dienste und Server entdeckt. Ein UPnP-<br />

Client sendet ein UDP-Paket an die Multicast<br />

Adresse 239.255.255.250, Port 1900.<br />

Diese Informationshappen sind Simple<br />

Service Discovery Protocol Pakete (SSDP,<br />

spezifiziert ebenfalls im Rahmen des<br />

UPnP-Standards, [3]).<br />

Die erste Anfrage dient dazu, Server zu<br />

finden, die Dienste im LAN per UPnP<br />

urn:schemas‐upnp‐org:device:MediaServer:1<br />

Ein Client, der per UPnP einen Internetzugang<br />

sucht, wird hier »WANIPConnection«<br />

statt »MediaServer« einsetzen,<br />

Android-Handys, die Filme oder Video<br />

senden wollen, fragen nach Geräten vom<br />

Typ »MediaRenderer«. Smartphones oder<br />

Digitalkameras mit einem DLNA-Print-<br />

Client suchen »Printer«. DLNA-fähige<br />

Drucker sind direkt mit dem Netz verbunden<br />

und antworten selbst auf die Anfragen,<br />

ein Server ist nicht notwendig.<br />

Die Webseite des DLNA-Standards listet<br />

unter [4] alle Geräte, die offizielle<br />

DLNA-Zertifizierungen erhalten haben.<br />

Die Spanne reicht vom Billig- oder Highend-TV<br />

über NAS-Geräte, Router und<br />

Fotodrucker bis zu Smartphones (Abbildung<br />

1 bis 4).<br />

Ein anderes Root-Device<br />

Ein spezieller Gerätetyp nennt sich »rootdevice«.<br />

Dieser entspricht gewissermaßen<br />

dem »*«-Platzhalter der Shell, Tools wie<br />

»upnpscan« finden damit alle Geräte im<br />

LAN-Segment, die auf UPnP reagieren.<br />

Die Antwort des DLNA-Servers enthält<br />

»HTTP/1.1 200 OK« und geht nur an den<br />

fragenden Client zurück. Sie birgt eine<br />

eindeutige ID und eine URL mit einer<br />

mittellangen XML-Datei, die dem Client<br />

gemäß DLNA-Standard weitere Informationen<br />

darüber gibt, welche Funktionen<br />

das Gerät bereitstellt. Hierin finden sich


www.linux-magazin.de<br />

Videostreaming 01/2013<br />

Titelthema<br />

25<br />

Abbildung 1: DLNA-taugliche Fernseher gibt es schon ab 300 Euro. Das Bild zeigt<br />

aber ein Gerät aus Panasonics bis zu 3000 Euro teurer VT50-Serie. Die 65-Zoll-<br />

TVs verfügen immerhin über Quad-Core-CPUs, Triple Tuner und WLAN.<br />

Abbildung 2: HPs Photosmart-Druckerserie 7510 hat die DLNA im August 2012<br />

ganz offiziell zertifiziert. Die Drucker-Scanner-Fax-Kombination für 150 Euro<br />

verspricht Auflösungen bis 9600 dpi beim Druck.<br />

auch Verwaltungsinformationen wie Hersteller<br />

und Firmwareversion des Gerätes.<br />

Listing 1 zeigt die um einige Zeilen gekürzte<br />

Version einer XML-Datei, die die<br />

<strong>Linux</strong>-Software Mini-DLNA (siehe unten)<br />

anfragenden Clients präsentiert [5].<br />

Mehr Funktionen<br />

Geräte wie ADSL-Router vereinen unter<br />

Umständen mehrere Funktionen, da der<br />

Besitzer ja auch USB-Platten anschließen<br />

kann, die die Router dann sowohl per<br />

»WANIPConnection« als auch als »MediaServer«<br />

arbeiten lassen. Bei solchen<br />

Kombigeräten findet sich in der XML-<br />

Datei ein Eintrag »deviceList«, der alle<br />

angebotenen Dienste darstellt.<br />

Zusätzlich zu den Anfragen von Clients<br />

schicken aber auch DLNA-Server regelmäßig<br />

»NOTIFY«-Nachrichten ins Netz,<br />

um anderen LAN-Teilnehmern ihre Existenz<br />

und die verfügbaren Dienste mitzuteilen.<br />

Auf Basis der erhaltenen URL<br />

setzen Clients dann eine Reihe von Soap-<br />

Calls ab, die einem »ls /« auf der logischabstrakten<br />

Ebene entsprechen.<br />

Zum Suchen nach Mediendaten dient<br />

ein Browserrequest auf die URL »/ctl/<br />

ContentDir«, als Antwort gibt es das<br />

Rootverzeichnis. Das besteht bei DLNA<br />

allerdings immer aus den Verzeichnissen<br />

»Music«, »Pictures« und »Video« oder einem<br />

Sammeldirectory »Browse Folders«.<br />

Die Abbildungen 5 und 6 zeigen das<br />

beispielhaft für den Verbund aus einem<br />

<strong>Linux</strong>-PC und einer <strong>Play</strong>station PS3 .<br />

Zwar könnte die Struktur jederzeit anders<br />

aussehen, es handelt sich ja nur<br />

um darzustellende Inhalte, doch ist diese<br />

Auswahl die Norm auf allen Geräten.<br />

Für Musik sortieren die Clients die Daten<br />

nach Künstler, Album und Genre, immer<br />

gibt es aber auch die Auswahl »Alle« und<br />

»Browse Folders« (Abbildung 3). Auch<br />

<strong>Play</strong>listen lassen sich hier ablegen, für<br />

Bilder bieten die Menüs Listen an, sortiert<br />

nach Datum, Ordnern oder Kamera.<br />

Aus dem Index<br />

Die Strukturen, die ein Client präsentiert<br />

bekommt, haben aber – abgesehen von<br />

»Browse Folders« nichts mit der Struktur<br />

der Dateien auf der oder den Festplatten<br />

zu tun. »Browse Folders« unterstützt die<br />

Ordnerstruktur in den per DLNA bereitgestellten<br />

Verzeichnissen, wobei es abhängig<br />

von der Implementierung des Mediaservers<br />

ist, wie gut dies funktioniert.<br />

© Synology<br />

© Sony<br />

© Panasonic<br />

© HP<br />

Abbildung 3: Synologys Diskstation 713 kann – wie viele andere kleine NAS-Server<br />

– auch als DLNA-Server Medien von den Festplatten streamen. Kostenpunkt:<br />

wenige hundert Euro, je nach HD-Ausstattung (bis zu 8 TByte auf zwei Platten).<br />

Abbildung 4: Das Outdoor-Handy Xperia Go von Sony gibt’s in weiß, gelb und<br />

schwarz für gut 200 Euro. Dafür erhält der Anwender viel DLNA: Das Smartphone<br />

kann als Server und Client fungieren, ist wasserfest und unkaputtbar.


Titelthema<br />

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

26<br />

Das Abspielen selbst ist nur ein simpler<br />

»GET«-Request auf die ausgewählte Datei,<br />

wobei sich in dem Request natürlich<br />

nicht der Dateiname (auf der Festplatte)<br />

sondern der Indexeintrag der Datei im<br />

Mediaserver befindet.<br />

DLNA-Komponenten im<br />

Überblick<br />

Alle Geräte für das DLNA-Protokoll lassen<br />

sich Klassen zuordnen, manche davon<br />

fallen, wie oben beschrieben, sogar<br />

in mehrere:<br />

n Digital Media Server (DMS): Der Server,<br />

auf dem die Mediendaten liegen.<br />

n Digital Media <strong>Play</strong>er (DMP): Ein<br />

Client, der beim Server Daten findet,<br />

abfragt und spielt.<br />

Abbildung 5: Eine Sony <strong>Play</strong>station findet via DLNA den Debian-Media-Server.<br />

n Digital Media Renderer (DMR): DLNA<br />

erlaubt es auch, Daten zu pushen,<br />

um beispielsweise ein Video vom Mobiltelefon<br />

zum Fernseher zu senden,<br />

anstatt dass der Fernseher das Video<br />

beim Telefon anfragen müsste. Der<br />

DMR ist der Empfänger und Darsteller<br />

von gepushten Medien.<br />

n Digital Media Controller: Der DMC ist<br />

das Gegenstück zum DMR, er pusht<br />

die Medien. Dabei müssen sie nicht<br />

lokal vorliegen, er kann sie auch von<br />

einem DMS anfragen und dann weiterleiten<br />

oder pushen.<br />

n Digital Media Printer: Auch Drucker<br />

lassen sich einbinden, etwa um Fotos<br />

vom Smartphone auszudrucken.<br />

Ein „M“ vor den geschilderten Abkürzungen<br />

macht ein Gerät zu einem mobilen<br />

DLNA-Device.<br />

Das „M“ sorgt einfach<br />

dafür, dass der Mechanismus<br />

über ein<br />

kabelloses Medium<br />

funktioniert. Allerdings<br />

gibt es im mobilen<br />

Bereich noch zwei<br />

weitere Komponenten:<br />

Die Mobile Network<br />

Connectivity Function<br />

(M-NCF) und Media<br />

Interoperability Unit (MIU). Die M-NCF<br />

soll eine Brücke zwischen mobilem und<br />

kabelgebundenem Netz bilden, MIU ist<br />

ein Konverter. Liegt das Video beispielsweise<br />

im AVI-Format vor, so können es<br />

die meisten Mobiltelefone nicht abspielen,<br />

da die integrierten <strong>Play</strong>er nur einen<br />

sehr eingeschränkten Vorrat an Formaten<br />

unterstützen. Verbindet sich der <strong>Play</strong>er<br />

aber mit der MIU, so teilt er dieser die<br />

Formate mit, die er unterstützt, und die<br />

Unit konvertiert die Filme.<br />

Mini-DLNA als Server<br />

Im zweiten Teil dieses Artikels soll ein<br />

kleiner <strong>Linux</strong>-Server mit Mini-DLNA [6]<br />

den DMS, diverse Clients den DMP darstellen.<br />

Mini-DLNA ist ein kleiner Mediaserver,<br />

der sich durch seinen geringen<br />

Ressourcenverbrauch sogar für den Embedded-Bereich<br />

eignet. Historisch stammt<br />

er auch aus dieser Ecke: Ein Angestellter<br />

von Netgear hat ihn anfangs für deren<br />

Ready-NAS-Serie entwickelt [7]. Heute<br />

gibt es sogar schon ein Webmin-Modul<br />

für das kleine Media Center [8].<br />

Installation und Konfiguration bleibenüberschaubar.<br />

Die meisten Distributionen<br />

enthalten ein fertiges Paket,<br />

sodass das eigenhändige Bauen nur in<br />

Listing 1: Mini-DLNA-XML-Description<br />

01 <br />

02 <br />

03 1<br />

04 0<br />

05 <br />

06 <br />

07 urn:schemas‐upnp‐org:device:MediaServer:1<br />

08 sarkovy<br />

09 Justin Maggard<br />

10 http://www.kernel.org/<br />

11 MiniDLNA on <strong>Linux</strong><br />

12 Windows Media Connect compatible (MiniDLNA)<br />

13 1<br />

14 http://www.kernel.org/<br />

15 12345678<br />

16 uuid:4d696e69‐444c‐164e‐9d41‐0004e208dc44<br />

17 <br />

DMS‐1.50<br />

18 http://192.168.1.1:8200/<br />

19 <br />

20 [...]<br />

21 <br />

22 <br />

23 <br />

24 urn:schemas‐upnp‐org:service:ContentDirectory:1<br />

<br />

25 urn:upnp‐org:serviceId:ContentDirectory<br />

26 /ctl/ContentDir<br />

27 /evt/ContentDir<br />

28 /ContentDir.xml<br />

29 <br />

30 <br />

31 urn:schemas‐upnp‐org:service:ConnectionManager:1<br />

<br />

32 urn:upnp‐org:serviceId:ConnectionManager<br />

33 /ctl/ConnectionMgr<br />

34 /evt/ConnectionMgr<br />

35 /ConnectionMgr.xml<br />

36 <br />

37 <br />

38 urn:microsoft.com:service:<br />

X_MS_MediaReceiverRegistrar:1<br />

39 urn:microsoft.com:serviceId:<br />

X_MS_MediaReceiverRegistrar<br />

40 /ctl/X_MS_MediaReceiverRegistrar<br />

41 /evt/X_MS_MediaReceiverRegistrar<br />

42 /X_MS_MediaReceiverRegistrar.xml<br />

43 <br />

44 <br />

45 <br />

46


Ausnahmefällen notwendig wird. Das<br />

Setup passiert in der Regel in der Datei<br />

»/ etc/ minidlna. conf«. Hier konfiguriert<br />

der Anwender den Port des Webservers,<br />

die Speicherorte der Mediendaten, das<br />

Netzwerkinterface oder die IP-Adresse,<br />

auf der der Server arbeitet sowie ein paar<br />

Tuning-Parameter (Listing 2).<br />

Video, Audio und Fotos<br />

hinterlegen<br />

Die »media_dir«-Anweisungen spezifizieren<br />

die Pfade, der Buchstabe davor gibt<br />

den Typ der Daten in dem Verzeichnis<br />

an: »V« für Video, »M« für Audio und »P«<br />

für Fotos. »inotify« veranlasst den Server,<br />

den Inotify-Mechanismus zu verwenden,<br />

um zu erkennen, wenn neue Daten in<br />

den Verzeichnissen vorliegen. Die Anweisung<br />

»strict_dlna« authorisiert den<br />

Server, große JPEG-Bilder zu skalieren,<br />

um Kompatibilität mit möglichst vielen<br />

Geräten sicherzustellen.<br />

Nach dem Start erscheint<br />

der Server auf<br />

DLNA-fähigen Mediaplayern.<br />

Die Abbildungen<br />

5 und 6 zeigen<br />

das auf der PS3,<br />

Abbildung 7 und 8 auf<br />

einem Smartphone.<br />

Als Kind der Unterhaltungsindustrie<br />

zielt DLNA natürlich<br />

in erster Linie auf die<br />

eingebetteten Clients<br />

moderner Fernseher, Spielekonsolen<br />

oder Bluray-player als Abspielgeräte.<br />

Doch auch der gängige PC kann davon<br />

profitieren: Unter den Softclients verstehen<br />

XBMC [9] und VLC [10] DLNA,<br />

wobei beide dies unter dem Menüpunkt<br />

»UPnP« anzeigen und dort natürlich die<br />

Ordnerstrukturen so darstellen, wie die<br />

eingebetteten <strong>Play</strong>er in den anderen Geräten<br />

– eben so, wie der DLNA-Dienst sie<br />

übermittelt.<br />

Abbildung 6: Die PS3 zeigt die Verzeichnisse des Debian-Servers.<br />

Android-Geräte haben in der »Alben«-Applikation<br />

einen Menüpunkt »Verbundene<br />

Medien«, der als DLNA-Client agiert. Abbildung<br />

4 zeigt die Menüstruktur. Unter<br />

I-OS gibt es im Appstore diverse <strong>Play</strong>er,<br />

zum Beispiel den ML <strong>Play</strong>er Lite. Ein von<br />

Sony für die Tests bereitgestellte Experia<br />

Go hatte sogar einen vollen DLNA-Server<br />

an Bord, der die aufgenommenen Fotos,<br />

Videos undMP3s unkompliziert via<br />

WLAN auf dem Fernseher darstellte.<br />

Videostreaming 01/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

27<br />

Die heute führenden Spezialisten stammen oft aus der "Freie Software-Szene" und schulen seit<br />

Jahren im <strong>Linux</strong>hotel. Das erklärt die Breite und Qualität unseres Schulungsangebotes:<br />

AJAX * Amavis * Android * Angriffstechniken * Apache * Asterisk * BaseX * BayesianAnalysis * Bind * C/C++ * Cassandra *<br />

CiviCRM * Cloud * Cluster * ClusterFS * CouchDB * CSS3 * CUPS * Debian * DHCP * DNS * DNSSEC * Echtzeit <strong>Linux</strong> *<br />

Embedded <strong>Linux</strong> * eXist-db * Faces * FAI * Firewall * Forensik * FreeBSD * FreeRADIUS * GeoExt * Git * Grails * GRASS *<br />

Groovy * hadoop * Hochverfügbarkeit * HTML5 * Hudson * iSCSI * IPv6 * ITSM * Java * JavaScript * Jenkins * Kernel * KVM<br />

* LDAP * LibreOffice * <strong>Linux</strong> * LPI * m23 * MacOSX * MapFish * Mapserver * Maven * Mikrocontroller * MVS/380 * MySQL *<br />

Nagios * Node.js * OpenBSD * OpenLayers * OpenOffice * openQRM * OpenVPN * OPSI * OSGi * OTRS * Perl * PHP *<br />

Postfix * PostgreSQL * Puppet * Python * QuantumGIS * R * Rails * RedHat * Routing * Request-Tracker RT * Ruby * Samba<br />

* SAN * Scala * Scribus * Shell * Sicherheit * SNMP * Spacewalk * Spamfilter * SQL * Struts * Subversion * SuSE * TCP/IP *<br />

Tomcat * Treiber * TYPO3 * Ubuntu * UML * Unix * Univention * Virenfilter * Virtualisierung * VoIP * WebGIS * Webservices *<br />

Windows Autoinstall * Windowsintegration * x2go * xen * XML * Xpath * Xquery * z/OS * Zabbix * Zend<br />

Fast 100% der Teilnehmer empfehlen uns weiter. Siehe www.linuxhotel.de<br />

Ja, wir geben es zu und haben überhaupt kein schlechtes Gewissen dabei: Unsere Schulungen machen auch Spaß ;-)


Titelthema<br />

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

28<br />

01 port=8200<br />

Mini-DLNA als Server erfüllt nur die Rolle<br />

des DMS beziehungsweise M-DMS. Das<br />

bedeutet auch, dass die verwendeten<br />

Formate eine wichtige Rolle spielen.<br />

Die PS3 verweigert den Dienst bei einer<br />

AVI-Datei, der <strong>Play</strong>er auf dem iPhone erwartungsgemäß<br />

auch bei Ogg-Files. Der<br />

Anwender muss sich also vorher Gedanken<br />

machen, in welchem Format er die<br />

Daten seinen Clients serviert. Für Videos<br />

stehen die Chancen mit MP4 als Container,<br />

H 264 als Videocodec und AAC oder<br />

MP3 als Audioodec am besten. Für Musik<br />

empfiehlt sich MP3, da dies von wirklich<br />

jedem Gerät unterstützt wird.<br />

Alternativ bietet sich ein Server an, der<br />

die Daten on the Fly umwandelt, zum<br />

Beispiel Sonys PS3 Mediaserver, der eigentlich<br />

für die <strong>Play</strong>station gedacht ist.<br />

Der Server ist vollständig in Java geschrieben,<br />

ein etwas kräftigerer Server<br />

ist also nötig.<br />

Multicast, IPv4, kein IPv6<br />

UPnP verwendet Multicast. Auch Multicast-Routing<br />

ist möglich, aber mit etwas<br />

Aufwand verbunden. Die Multicast-<br />

Pakete besitzen aber eine Time To Live<br />

(TTL) von 1. Das bedeutet, dass sie nur<br />

im selben LAN-Segment kursieren, und<br />

kein Router sie weiterleitet. Sind also<br />

LAN und WLAN auf IP-Ebene getrennt,<br />

funktioniert DLNA nicht ohne Weiteres.<br />

Dies ließe sich umgehen, wenn man einen<br />

Multicast-Proxy verwendet, der eine<br />

URL in einem anderen Netzwerksegment<br />

propagiert, etwa den des <strong>Linux</strong> UPnP<br />

Internet Gateway Projektes [12]. Theoretisch<br />

funktionieren UPnP und DLNA<br />

02 media_dir=V,/media/videos<br />

03 media_dir=P,/media/fotos<br />

04 media_dir=M,/media/music<br />

05 friendly_name=Media Centre<br />

Listing 2: »minidlna.conf«<br />

06 album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.<br />

jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/<br />

Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/<br />

thumb.jpg<br />

07 inotify=yes<br />

08 enable_tivo=no<br />

09 strict_dlna=no<br />

10 notify_interval=900<br />

11 serial=12345678<br />

12 model_number=1<br />

13 network_interfaces=eth0<br />

auch mit IPv6,<br />

und es gibt eine<br />

definierte IPv6-<br />

Multicast-IP für<br />

SSDP. Jedoch fand<br />

sich im Test keine<br />

Software, die auch<br />

auf IPv6 auf Port<br />

1900 zu lauschen<br />

in der Lage wäre.<br />

Bandbreite<br />

Die benötigte<br />

Bandbreite hängt Abbildung 7: Das Experia-Go-Smartphone<br />

von Sony erkennt den neuen,<br />

von den verwendeten<br />

Formaten und <strong>Linux</strong>-basierten DLNA-Server ...<br />

Auflösungen ab,<br />

Musik ist dabei vernachlässigbar. Ein H-<br />

264-MP4-Video mit einer Auflösung von<br />

720x404 verlangt etwa 700 KBit/​s, Ein<br />

720p-Video mit H264 High Profile ungefähr<br />

3 bis 4 MBit/s, 1080p entsprechend<br />

das Doppelte. Mehrere Tonspuren im<br />

gleichen Video erhöhen den Verbrauch.<br />

Verbindungen über Kabel sollten also<br />

keine Probleme haben, bei den erzielbaren<br />

Nettodatenraten im WLAN kann es<br />

bei hochauflösenden Videos allerdings<br />

durchaus zu Störungen kommen, wenn<br />

gleichzeitig ein Download läuft.<br />

Offene Alternative zu<br />

proprietären Formaten<br />

Für Videostreaming per DLNA muss es<br />

kein Windows Media Center sein. <strong>Linux</strong><br />

und Mini-DLNA lösen die Aufgabe, das<br />

Unterhaltungszentrum im Wohnzimmer<br />

und im Rest der vernetzten Wohnung zu<br />

befüllen, gut und mit wenig Aufwand.<br />

Achtet man dabei auf die Formatkompatibilität<br />

der beteiligten Geräte, dann<br />

steht einem ungestörten Multimediakonsum<br />

technisch nichts im Wege. Auch im<br />

professionellen Einsatz bietet sich DLNA<br />

an, etwa um eine Präsentation auf einen<br />

Großbildfernseher oder Beamer im Konferenzraum<br />

zu zaubern.<br />

DLNA ist aber nicht der einzige Standard<br />

in diesem Bereich. Apple kocht mit<br />

Airplay sein eigenes Süppchen, und mit<br />

Android 4.2 kommen die Anwender in<br />

Kontakt mit dem von der Wifi Alliance<br />

entwickelten Miracast-Dienst ([13], auch<br />

bekannt als WiFi Direct oder Widi), falls<br />

sie den Bildschirm des Android Gerätes<br />

Abbildung 8: ..., aber ohne Konverter<br />

kann es nicht alle Videoformate<br />

wiedergeben.<br />

mit dem entsprechend ausgestatteten TV<br />

teilen. DLNA ist hier im Moment durch<br />

seine Verbreitung im Vorteil, aber die Zukunft<br />

wird zeigen, welcher Standard sich<br />

durchsetzt. (mfe) <br />

n<br />

Infos<br />

[1] DLNA: [http:// www. dlna. org]<br />

[2] UPNP: [http:// www. upnp. org]<br />

[3] SSDP: [http:// en. wikipedia. org/ wiki/​<br />

Simple_Service_Discovery_Protocol]<br />

[4] DLNA-Geräte identifizieren:<br />

[http:// www. dlna. org/ consumer‐home/​<br />

look‐for‐dlna/ product‐search]<br />

[5] Mini-DLNA-XML-Description:<br />

[http:// www. upnp‐database. info/<br />

device. jsp? deviceId=202]<br />

[6] Mini-DLNA:<br />

[http:// minidlna. sourceforge. net]<br />

[7] Netgear Ready Nas:<br />

[http:// www. readynas. com]<br />

[8] MiniDLNA Webmin-Modul:<br />

[http:// minidlnawebmin. sourceforge. net]<br />

[9] XBMC: [http:// xbmc. org]<br />

[10] Video Lan Client: [http:// www. vlc. org]<br />

[11] PS3 Media Server:<br />

[http:// www. ps3mediaserver. org]<br />

[12] <strong>Linux</strong> IGD:<br />

[http:// linux‐igd. sourceforge. net]<br />

[13] Miracast: [http:// www. wi‐fi. org/ wi‐ficertified‐miracast%E2%84%A2]<br />

Der Autor<br />

Konstantin Agouros arbeitet bei der N.runs AG<br />

als Berater für Netzwerksicherheit. Dabei liegt<br />

sein Schwerpunkt im Bereich bei Telekommunikationsanbietern.<br />

Sein Buch „DNS/​DHCP“ ist bei<br />

Opensource Press erschienen.


Computerwissen für Praktiker<br />

Bekannt für Qualität<br />

Christoph Willer<br />

PC-Forensik<br />

Daten suchen und wiederherstellen<br />

Lehr- und Arbeitsbuch zur Analyse<br />

von PCs mit Windows- und <strong>Linux</strong>-<br />

Werkzeugen.<br />

• 510 Seiten • ISBN 978-3-936546-60-6<br />

• EUR 49,90 (D)<br />

Thomas Werth<br />

Penetrations-Tests<br />

Angriffe auf Dienste, Programme<br />

und Netzwerke<br />

Firewalls überwinden, SAP-Systeme<br />

kompromittieren, Webbrowser<br />

überlisten und Backdoors<br />

implementieren.<br />

• 703 Seiten<br />

• ISBN 978-3-936546-70-5<br />

• EUR 49,90 (D)<br />

Michael Van Canneyt et al.<br />

Lazarus<br />

Klassenbibliothek und IDE<br />

Plattformübergreifende GUI-Entwicklung<br />

für Windows, Mac und<br />

<strong>Linux</strong> mit Pascal.<br />

• 768 Seiten<br />

• ISBN 978-3-936546-63-7<br />

• EUR 49,90 (D)<br />

Dr. Rolf Freitag<br />

Die Kunst des Verdeckens<br />

Daten verschleiern, verschlüsseln,<br />

zerstören<br />

Alle clientseitigen Maßnahmen, den<br />

Computer und seine Inhalte vor<br />

Diebstahl und Spionage zu schützen.<br />

• 366 Seiten<br />

• ISBN 978-3-936546-65-1<br />

• EUR 29,90 (D)<br />

Probekapitel und Inhaltsverzeichnisse finden Sie auf www.cul.de. Falls das gewünschte Buch in<br />

der Buchhandlung gerade nicht vorrätig ist, bestellt sie es portofrei innerhalb von 24 Stunden.<br />

Jörg Braun<br />

Das VirtualBox-Buch<br />

Hosts und Gäste<br />

Korrekte Integration und direkter<br />

Datenaustausch für MacOS-,<br />

Windows- und Unix-Gäste.<br />

• 368 Seiten • CD-ROM<br />

• ISBN 978-3-936546-71-2<br />

• EUR 34,90 (D)<br />

Unser Gesamtprogramm<br />

finden Sie unter:<br />

Computer & Literatur Verlag<br />

C&L-Bücher erhalten Sie im gut sortierten Buch- und Fachhandel oder über<br />

www.cul.de<br />

HAWA & NÖH


Titelthema<br />

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

30<br />

Die Sicherheitslage in UPnP-fähigen Netzen<br />

Landschaft mit Lücken<br />

Wenn der Fernseher ohne Konfiguration Filme vom NAS-Speicher holt oder die <strong>Play</strong>station Fotos vom Handy,<br />

dann wandelt das lokale Netz auf den medialen Pfaden der Digital Living Network Alliance (DLNA). Der Anwender<br />

sollte sich jedoch bewusst machen, dass in seinem Netz Sicherheitslücken per Design klaffen. Ralf Spenneberg<br />

oder ein Handy, ein UPnP-Gerät, beispielsweise<br />

eine <strong>Play</strong>station 3, gefunden<br />

hat, ruft er die XML-Beschreibung des<br />

Geräts ab. Diese enthält weitere Informationen<br />

über den Hersteller und – viel<br />

wichtiger – die von dem Gerät unterstützten<br />

Funktionen und Kommandos. Die tatsächliche<br />

Steuerung erfolgt mit Hilfe von<br />

Soap-Nachrichten.<br />

Gegenseitiges Authenti fizieren<br />

ist nicht vorgesehen<br />

© Sergej Khackimullin, 123RF.com<br />

DLNA-zertifizierte Geräte müssen den<br />

Universal-<strong>Plug</strong>-and-<strong>Play</strong>-Standard (UPnP)<br />

unterstützen. Der stellt sicher, dass sich<br />

die Geräte tatsächlich automatisch finden.<br />

Ziel des Industrie-Zusammenschlusses<br />

ist, dass auch Laien die verteilten<br />

Multimediafunktionen nutzen können,<br />

ohne zuvor einen mehrtägigen Kursus<br />

für Netzwerkadministratoren zu belegen.<br />

Der Usability-zentrierte Ansatz lässt sich<br />

angesichts des angepeilten Anwenderkreises<br />

nachvollziehen. Zugleich stellt<br />

sich die Frage nach dem damit verbundenen<br />

Sicherheitsniveau.<br />

Die Funktionsweise von UPnP ([1], [2])<br />

erklärt der Hauptartikel in diesem <strong>Linux</strong>-<br />

<strong>Magazin</strong>-Schwerpunkt. Bevor ein UPnPfähiges<br />

Gerät seine Funktionalität zu entfalten<br />

vermag, benötigt es eine gültige<br />

IP-Adresse. Die kann statisch konfiguriert<br />

sein oder es bezieht sie per DHCP oder<br />

Microsofts Zeroconf-Spielart APIPA (Automatic<br />

Private IP Addressing). Danach<br />

meldet sich das DLNA-Gerät im Netz.<br />

Hierzu dient das Simple Service Discovery<br />

Protokoll (SSDP, [3]), das Microsoft,<br />

zugleich Erfinder von UPnP, bereits bei<br />

Windows ME eingeführt hatte.<br />

Die SSDP-Kommunikation erfolgt per Multicast<br />

über die Adresse 239.255.255.250<br />

und den UDP-Port 1900. Sobald ein<br />

UPnP-Gerät startet, unterrichtet es per<br />

Multicast alle Controller von seiner Existenz.<br />

Umgekehrt kann ein Controller genauso<br />

per Multicast nach UPnP-Geräten<br />

suchen.<br />

Ein SSDP-Paket initiiert lediglich eine<br />

HTTP-Anfrage. Dafür gibt es zwei Methoden:<br />

»NOTIFY« und »M‐SEARCH«. Mit<br />

der ersten teilt ein Gerät seine Existenz<br />

mit, die zweite erlaubt einem Controller<br />

nach allen erreichbaren Geräten zu suchen.<br />

Listing 1 zeigt ein Beispiel. Sobald<br />

ein Controller, zum Beispiel ein Tablet<br />

Um den Einrichtungsaufwand gering zu<br />

halten, sehen weder DLNA noch UPnP<br />

eine Authentifizierung oder Autorisierung<br />

vor. Beim Zugriff auf ein Netz mit DLNAkompatiblen<br />

Systemen darf jeder auf alle<br />

Medien zugreifen. Einzelne Geräte können<br />

lediglich den Zugriff auf bestimmte<br />

IP- oder MAC-Adressen beschränken –<br />

eine Funktion, die nur einzelne Hersteller<br />

implementiert haben.<br />

Auch Autorisierungen kennt der Standard<br />

nicht: Ein zentraler Medienserver mit<br />

Filmen für die ganze Familie schafft es<br />

nicht, Horrorvideos restriktiver zu handhaben<br />

als „Aschenputtel“. Jeder Controller<br />

und Medienplayer darf auf alle Inhalte<br />

auf den Servern zugreifen.<br />

Würde UPnP sein Wirken auf das lokale<br />

Netzwerk beschränken, so könnten viele<br />

Nutzer sicherlich trotzdem mit der fehlenden<br />

Authentifizierung und Autorisierung<br />

leben. Leider – jedenfalls aus Security-<br />

Sicht – enthält der UPnP-Standard aber<br />

auch eine Erweiterung für NAT-Router,<br />

wie sie an DSL- oder Kabelanschlüssen<br />

üblich sind.<br />

Mit diesem Internet-Gateway-Device-Protokoll<br />

(IGD, [4]) kann ein UPnP-Gerät<br />

ohne Eingreifen eines Benutzers Port-<br />

Weiterleitungen aus dem Internet in das


UPnP-Implementierungen [5]. So weisen<br />

mehrere Softwarestacks Buffer Overflows<br />

auf, über die ein Angreifer möglicherweise<br />

sogar Schadcode auf dem UPnP-<br />

Gerät installieren und ausführen kann.<br />

Sicherheit 01/2013<br />

Titelthema<br />

Abbildung 1: Normalerweise ist die UPnP-Funktion bei Routern per se deaktiviert, es besteht aber immer die<br />

Gefahr, dass unbedarfte Anwender sie anschalten.<br />

geschützte Netz aktivieren. IGD erlaubt<br />

einem Gerät<br />

n die externe (öffentliche) IP-Adresse<br />

des NAT-Routers zu ermitteln,<br />

n die externe IP-Adresse zu erneuern,<br />

n die Liste der vorhandenen Port-Weiterleitungen<br />

abzurufen sowie<br />

n die Lebensdauer von Port-Weiterleitungen<br />

hinzuzufügen, zu entfernen<br />

und zu ändern.<br />

UPnP nutzt IGD, damit Videokonferenzen,<br />

Multiplayer-Games, Filesharing-Programme<br />

und Ähnliches aus dem Internet<br />

Verbindungen ins lokale Netz aufbauen<br />

können. Die Applikationen schalten mit<br />

dem Protokoll dynamisch Verbindungen<br />

durch den NAT-Router frei. Auch ein mobiler<br />

User könnte damit aus der Ferne auf<br />

das Fotoalbum zugreifen.<br />

Erfreulicherweise ist das Protokoll bei<br />

den meisten DSL- und Kabelroutern per<br />

se deaktiviert. Die Gefahr ist jedoch groß,<br />

dass unbedarfte Benutzer bei dem Versuch,<br />

DLNA im lokalen Netz einzurichten,<br />

IGD einschalten. Dann darf jede interne<br />

UPnP-fähige Applikation und jedes<br />

Gerät Löcher durch den NAT-Router bohren<br />

(Abbildung 1). Die Router vertrauen<br />

UPnP-Geräten im Grundsatz blind.<br />

Gefährlicher Zoo<br />

Es existieren bereits mehrere Tausend<br />

DLNA-zertifizierte Gerätetypen. Alle verfügen<br />

über einen Netzwerkanschluss und<br />

UPnP-Fähigkeiten, die wiederum eine<br />

gewisse Intelligenz in dem Gerät voraussetzen:<br />

DLNA definiert Medien- und<br />

Geräteklassen wie Bilder, Audio, Video<br />

und Medienserver, <strong>Play</strong>er, Controller oder<br />

Printer. Der Angehörige einer Medienklasse<br />

muss bestimmte Formate unterstützen,<br />

ein Abspielgerät beispielsweise<br />

Jpeg-Bilder, LPCM-Musik und Mpeg-2-<br />

Videos. Weitere Codecs sind erlaubt, aber<br />

nicht zwingend.<br />

Spätestens hier stellt sich die Frage, wer<br />

die Firmware entwickelt und getestet hat.<br />

Während die Anbieter aktueller PC-Betriebssysteme<br />

immer wieder Updates zur<br />

Lösung von Sicherheitsproblemen veröffentlichen,<br />

erscheinen nur wenige Securitypatches<br />

für DLNA-Geräte wie Fernseher<br />

oder Musikanlagen – und selbst wenn, es<br />

gibt keine Gewähr, dass die Besitzer der<br />

Devices diese auch einspielen. Das trifft<br />

gerade für Geräte wie Drucker zu, wo der<br />

Anwender von Updates funktionell wenig<br />

zu erwarten hat.<br />

Eine Suche auf Securityfocus lieferte zum<br />

Redaktionsschluss 113 dokumentierte<br />

Sicherheitslücken in verschiedensten<br />

Listing 1: SSDP-»NOTIFY« eines Geräts<br />

01 NOTIFY * HTTP/1.1<br />

02 SERVER: Samsung PT1200 UPnP/1.0 Mediaserver/1.0<br />

03 CACHE‐CONTROL: max‐age=3600<br />

04 LOCATION: http://192.168.15.10:8080/description.xml<br />

05 NTS: ssdp:alive<br />

06 NT: urn:schemas‐upnp‐org:service:ConnectionManager:1<br />

Insecurity by Design<br />

UPnP und DLNA sind bestenfalls so sicher<br />

wie das Netzwerk, in dem man sie<br />

verwendet. Beide Standards bieten zu<br />

Gunsten der <strong>Plug</strong> & <strong>Play</strong>-Funktionalität<br />

keine eigenen Sicherheitsfunktionen –<br />

ein Musterbeispiel für den Zielkonflikt<br />

zwischen Usability und Security. Auch<br />

das IGD-Protokoll ist so sicher wie die<br />

Geräte, die das IGD-Protokoll für die Konfiguration<br />

der Port-Weiterleitung nutzen.<br />

Da aber die Vergangenheit gezeigt hat,<br />

dass Angreifer vielerlei Wege für den<br />

Eintritt in Heimnetzwerke finden, sollten<br />

Anwender den Einsatz von DLNA und<br />

UPnP sehr sorgfältig abwägen. (jk) n<br />

Infos<br />

[1] UPnP-Forum: [http:// www. upnp. org]<br />

[2] UPnP-Features in Windows: [http://​<br />

support. microsoft. com/ kb/ 262458/ de]<br />

[3] SSDP: [http:// de. wikipedia. org/ wiki/​<br />

Simple_Service_Discovery_Protocol]<br />

[4] IGD: [http:// upnp. org/ specs/ gw/ igd2/]<br />

[5] UPnP-Sicherheitslücken:<br />

[https:// www. google. de/ search? q=site:<br />

securityfocus. com+upnp+inurl:bid]<br />

Der Autor<br />

Ralf Spenneberg arbeitet<br />

als freier Unix- und <strong>Linux</strong>-<br />

Trainer, Berater und Autor.<br />

Mit seinem Unternehmen<br />

Open Source Training Ralf<br />

Spenneberg führt er Schulungen,<br />

Beratungen und Projekte durch. Vor wenigen<br />

Monaten erschien sein neues Buch „KVM für<br />

die Server-Virtualisierung“, das er gemeinsam<br />

mit Michael Kofler verfasst hat.<br />

07 USN: uuid:9cf8266c‐28df‐401a‐86bd‐9f6655b17d47::urn:schemas‐upnp‐org:service:ConnectionManager:1<br />

08 HOST: 239.255.255.250:1900<br />

www.linux-magazin.de<br />

31


Titelthema<br />

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

32<br />

Zero Configuration Networking<br />

In Eigenregie vernetzt<br />

<strong>Linux</strong>-Rechner lassen sich auch ohne externen DHCP- und DNS-Server automatisch vernetzen. Dieser Artikel<br />

fasst den aktuellen Stand zu Avahi und Zero Configuration Networking mit IPv4 und IPv6 zusammen. Mathias Huber<br />

© froodmat, photocase.com<br />

Ein Computer muss ans lokale Netz,<br />

sonst ist er so gut wie nutzlos. Für LANs<br />

ohne DHCP-Server brachte bereits Version<br />

4 des Internet Protocol einen Mechanismus<br />

zum automatischen Konfigurieren<br />

der Netzwerkadressen mit. Er<br />

reserviert den Block 169.254.0.0/​16 für<br />

die so genannten Link-Local-Adressen<br />

(IPv4LL). Aus diesem Bereich wählt ein<br />

Host eine zufällige Adresse und stellt mittels<br />

ARP-Proben sicher, dass sie nicht<br />

bereits vergeben ist [1]. IPv6 geht ganz<br />

ähnlich vor und verwendet dabei den<br />

Adressenbereich fe80::/​10 [2].<br />

Namensauflösung<br />

Damit sind in einem lokalen Netzwerk die<br />

Rechner zwar per IP-Adresse erreichbar,<br />

aber nicht per Namen. Das lässt sich mit<br />

einem alternativen Nameservice nachrüsten,<br />

den ursprünglich Apple bei der IETF<br />

einbrachte: Multicast DNS (MDNS, [3])<br />

arbeitet ähnlich wie der herkömmliche<br />

Nameservice, jedoch über Multicast. Dabei<br />

speichert jeder teilnehmende Computer<br />

DNS-Records und<br />

tritt der Multicast-<br />

Gruppe bei.<br />

Möchte ein Client<br />

einen Namen auflösen,<br />

schickt er seine<br />

Anfrage bei IPv4 an<br />

die Multicast-Adresse<br />

224.0.0.251, bei IPv6<br />

an ff02::fb. Ein Rechner<br />

mit dem passenden<br />

Record liefert die<br />

Antwort. In diesem<br />

Sys tem tragen alle<br />

Rech nernamen die Endung<br />

».local«.<br />

Seine Ergänzung findet<br />

dieser Mechanismus<br />

im Service Discovery (DNS-SD, [4]).<br />

Hierbei publizieren die Hosts Informationen<br />

über die Dienste, die sie anbieten. Sie<br />

nutzen dazu bestehende Standard-Datentypen<br />

des DNS wie die SRV-, TXT- und<br />

PTR-Einträge. Clients können erfragen,<br />

wer im lokalen Netzwerk etwa Druckdienste<br />

oder Instant Messaging anbietet,<br />

und erhalten aus dem DNS Hostadressen<br />

sowie Zusatzinformationen.<br />

Das Zusammenspiel von Link-Local-<br />

Adressen, MDNS und Service Discovery<br />

hat die IETF unter dem Namen Zeroconf<br />

Networking spezifiziert [5]. Dessen<br />

Umsetzung durch Apple heißt Bonjour<br />

(anfangs Rendezvous), die Open-Source-<br />

Implementierung von Lennart Poettering<br />

und Trent Lloyd nennt sich Avahi [6].<br />

Sie unterstützt mittlerweile Link-Local-<br />

Adressen sowohl unter IPv4 als auch unter<br />

IPv6. Standardmäßig ist die Version 6<br />

aber deaktiviert, weil die meisten lokalen<br />

Netzwerke IPv4 verwenden.<br />

Die Software besteht sämtliche Kompatibilitätstests<br />

zu Apples Bonjour. Da<br />

es die Apple-Implementierung auch für<br />

Windows-Rechner gibt [7], kann man<br />

Zero Configuration Networking in heterogenen<br />

Netzwerken nutzen.<br />

Die Avahi-Bibliotheken sind in zahlreichen<br />

Anwendungen im Einsatz, von<br />

Netzwerkbrowsern für Gnome und KDE<br />

bis zu Chatprogrammen und Musikplayern.<br />

Eine Übersicht und Installationshinweise<br />

bietet unter anderem eine Seite im<br />

Ubuntu-Users-Wiki [8].<br />

DHCP überall<br />

Für zu Hause oder ein Ad-hoc-Netzwerk<br />

kann Avahi eine praktische Lösung sein.<br />

Admins in professionellen Umgebungen<br />

setzen dagegen lieber einen DHCP-Server<br />

ein. Neben Adressen und der DNS-<br />

Konfiguration kann dieser nämlich noch<br />

Informationen über den NTP-Server oder<br />

einen PXE-Bootserver übermitteln. Zudem<br />

steckt in fast jedem Heimnetzwerk<br />

ein DHCP-Server, weil er bereits im DSL-<br />

Router integriert ist. <br />

n<br />

Infos<br />

[1] „Internet Protocol Version 4 Link-Local<br />

Addresses“:<br />

[http:// www. ietf. org/ rfc/ rfc3927. txt]<br />

[2] „Stateless Automatic Autoconfiguration,<br />

SLAAC“: [http://www.faqs.org/rfcs/<br />

rfc4862.html]<br />

[3] Multicast DNS (MDNS):<br />

[http:// www. multicastdns. org]<br />

[4] DNS Service Discovery (DNS-SD):<br />

[http:// www. dns‐sd. org]<br />

[5] Zeroconf Networking:<br />

[http:// www. zeroconf. org]<br />

[6] Avahi: [http:// www. avahi. org]<br />

[7] Apple Bonjour for Windows:<br />

[http:// support. apple. com/ kb/ DL999]<br />

[8] )Installationsanleitung für Ubuntu:<br />

[http:// wiki. ubuntuusers. de/ Avahi]


Probelesen<br />

ohne risiko<br />

Und Gewinnen!<br />

eines von zwei tollen Gadgets (das Los entscheidet)<br />

1. Preis: Quadrocopter -<br />

Parrot AR. Drone 2.0<br />

per Smartphone<br />

fernsteuerbar<br />

(Wert 299,- Euro)<br />

2. Preis: Mutewatch —<br />

eine wasserdichte<br />

LED-Uhr mit<br />

Touchscreen<br />

(Wert 199,90 Euro)<br />

SONDERAKTION!<br />

Testen Sie jetzt<br />

3 Ausgaben für<br />

NUR 3€*<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Mit großem Gewinnspiel unter:<br />

www.linux-user.de/probeabo<br />

* Angebot gilt innerhalb Deutschlands und Österreichs. In der Schweiz: SFr 4,50.<br />

Weitere Preise: www.linux-user.de/produkte


Titelthema<br />

www.linux-magazin.de VoIP-Telefonie 01/2013<br />

34<br />

VoIP-Telefone provisionieren<br />

Ruf-Bereitschaft<br />

IP-Telefone lassen sich fast ohne Handarbeit konfigurieren. Dieser Artikel erklärt, wie das mit der Open-Source-<br />

Telefonanlage Gemeinschaft funktioniert, und gibt einen Ausblick auf deren kommende Version 5. Sascha Daniels<br />

© nyul, 123RF.com<br />

Mit freier Software und PC-Hardware<br />

lässt sich kostengünstig eine Telefonanlage<br />

aufsetzen. Mit steigender Teilnehmerzahl<br />

wird es aber unangenehm, alle<br />

Telefone von Hand zu konfigurieren. Der<br />

kluge Admin lässt diese Aufgabe von<br />

Software erledigen. Dieser Artikel zeigt<br />

die automatische Konfiguration von SIP-<br />

Telefonen am Beispiel der freien IP-Telefonanlage<br />

Gemeinschaft [1].<br />

Ursprünglich als Anpassung von Asterisk<br />

an den deutschsprachigen Raum gedacht,<br />

stieg Gemeinschaft mit Version 4<br />

von Anfang 2012 auf Freeswitch [2] als<br />

Basis um. Diese Version bietet wie die für<br />

Dezember 2012 angekündigte Release 5<br />

Unterstützung für das Provisioning von<br />

SIP-Telefonen. Um einem Telefon mitzuteilen,<br />

woher es seine Konfiguration<br />

Listing 1: »dnsmasq.conf«<br />

01 dhcp‐range=192.168.1.1,192.168.1.100,12h<br />

02 dhcp‐option=66,https://192.178.254:443<br />

03 dhcp‐option=67,settings‐{mac}<br />

beziehen kann, kommt in der Regel ein<br />

DHCP-Server zum Einsatz.<br />

Dabei benutzt der Admin zwei Optionen<br />

des DHCP-Protokolls, die eigentlich für<br />

vom Netzwerk bootende Computer vorgesehen<br />

sind (RFC 2132). Über die Option<br />

66 (»TFTP server name«) übergibt er<br />

dem Gerät den Provisioning-Server inklusive<br />

Protokoll, beispielsweise »https://gemeinschaft.example.com«,<br />

und über die<br />

Option 67 (»Bootfile name«) den Namen<br />

der Konfigurationsdatei.<br />

In den meisten Fällen sorgt die MAC-<br />

Adresse des Telefons für die Zuordnung.<br />

Eine der Ausnahmen stellen die Openstage-Geräte<br />

von Siemens dar, da sie Option<br />

67 in dieser Form nicht unterstützen<br />

und einen Soap-artigen Mechanismus für<br />

das Provisioning verwenden.<br />

Der leicht zu konfigurierende DHCP-<br />

Server Dnsmasq [3] ist Teil von Gemeinschaft<br />

4. Er benötigt im einfachsten Fall<br />

lediglich drei Zeilen in seiner Konfiguration<br />

(Listing 1). Wer die Telefonanlage in<br />

eine bestehende Infrastruktur integriert<br />

und keine Änderungen am vorhandenen<br />

DHCP-Server vornehmen möchte, kann<br />

Dnsmasq auch als DHCP-Proxy verwenden.<br />

Um nicht alle Geräte im Netzwerk<br />

mit Optionen zu belästigen, lässt sich<br />

der DHCP-Server auch auf eine Herstellerkennung<br />

in den ersten drei Bytes der<br />

MAC-Adresse beschränken.<br />

Gemeinschaft 4 ist wegen seines Sicherheitskonzepts<br />

sehr viel restriktiver aufgebaut<br />

als die kommende Version 5. Aus<br />

diesem Grund muss der Anwender jedes<br />

neue Telefon in die Datenbank der<br />

Software eintragen, bevor das Gerät eine<br />

Konfigurationsdatei abrufen kann. Gemeinschaft<br />

5 wird ein neues Telefon automatisch<br />

in der Datenbank anlegen und<br />

mit einem neuen SIP-Account versehen.<br />

Damit entfällt der manuelle Eingriff.<br />

Die MAC macht's<br />

Über die Weboberfläche von Gemeinschaft<br />

4 gibt der Admin die MAC-Adresse<br />

des Telefons ein und wählt das Modell<br />

aus. Die MAC-Adresse ist auf den meisten<br />

Telefonen in Form eines Barcodes zu finden,<br />

der sich mit einem Scanner einlesen<br />

lässt. Danach verbindet er das Telefon<br />

mit dem Netzwerk. Die Weboberfläche<br />

zeigt nun zu jedem angelegten Telefon<br />

an, ob es bereits eine Konfigurationsdatei<br />

erhalten hat oder nicht. Diese Funktion<br />

ermöglicht vor allem bei größeren Installationen<br />

eine einfache Kontrolle der<br />

Endgeräte (Abbildung 1).<br />

Das neu angelegte Telefon erhält in der<br />

XML-Datei (Listing 2) neben den zwingend<br />

zum Betrieb notwendigen Zugangsdaten<br />

zum SIP-Server noch weitere nützliche<br />

Parameter, die nicht nur dem Administrator<br />

das Leben erleichtern. Dazu<br />

zählen drei Telefonbücher (intern, global,


Abbildung 1: Die Weboberfläche von Gemeinschaft zeigt ein neu angelegtes Telefon und dessen Status.<br />

persönlich), ein XML-Menü zum Setzen<br />

der Server-seitigen Rufumleitungen sowie<br />

ein XML-Menü, um einen User an- oder<br />

abzumelden (Hotdesking). Gemeinschaft<br />

erzeugt diese Datei automatisch.<br />

In Version 5 von Gemeinschaft kommen<br />

noch weitere Komfortfunktionen hinzu:<br />

Jeder User darf seine Funktionstasten<br />

nach Wunsch belegen. Dabei muss er<br />

sich keine Gedanken darüber machen,<br />

welches Telefonmodell er in Zukunft<br />

verwendet. Das Provisioning belegt automatisch<br />

nur Funktionen, die das jeweilige<br />

Telefon auch unterstützt. Zu den<br />

wichtigsten zählen die Überwachung<br />

von Nebenstellen mit der Möglichkeit,<br />

Gespräche zu übernehmen (BLF), das<br />

An- und Abmelden an Warteschlangen<br />

sowie die Rufumleitung.<br />

Hinter den Kulissen<br />

Hinter dem Provisioning steckt außer dem<br />

DHCP-Server auch eine Ruby-on-Rails-<br />

Anwendung. In Listing 3 landen Anfragen<br />

an die URL »http://gemeinschaft.example.com/settings‐000413271FDB«<br />

bei<br />

dem Con troller »manufacturer_snom«.<br />

Dabei hängt der Code den Parameter<br />

»mac_address=​000413271FDB« an und<br />

verlangt das Ausgabeformat<br />

XML, sofern<br />

die MAC-Adresse mit<br />

000413 beginnt.<br />

Der Controller versucht<br />

über den Parameter<br />

»mac_address«<br />

zu erfahren, ob das<br />

Telefon bereits in der<br />

Datenbank existiert,<br />

und findet im Erfolgsfall<br />

alle Daten, die für<br />

das Telefon relevant<br />

sind. Im nächsten<br />

Schritt wandelt Gemeinschaft<br />

die generisch<br />

gespeicherten<br />

Daten in das von diesem<br />

Telefon benötigte<br />

Format um und lässt sie von der View<br />

»show« ausliefern.<br />

Um ein weiteres Telefonmodell in das<br />

Provisioning aufzunehmen, sind daher<br />

drei Dinge erforderlich: Die Route zum<br />

neuen Controller, ein neuer Controller,<br />

der die MAC-Adresse entgegennimmt und<br />

die Daten für das Telefon aus der Datenbank<br />

liest, sowie eine View, um die<br />

Konfigurationsdatei im richtigen Format<br />

auszugeben. Ein Admin mit Ruby-on-<br />

Rails-Kenntnissen kann die Open-Source-<br />

Telefonanlage somit selbst erweitern. Das<br />

kann nötig sein, weil Gemeinschaft 4 nur<br />

Telefone der Reihen 3xx (Abbildung 2)<br />

und 8xx des Herstellers Snom unterstützt.<br />

Die kommende Version 5 ermöglicht das<br />

Provisioning für Geräte der Hersteller<br />

Snom, Siemens (Openstage-Reihe) und<br />

Polycom (Soundpoint-Reihe).<br />

Es gibt mehrere Möglichkeiten, ein provisioniertes<br />

Telefon über Änderungen in<br />

der Konfiguration zu informieren. Um<br />

immer eine direkte Rückmeldung vom<br />

Telefon zu erhalten, ist die sicherste Methode<br />

eine Anfrage an den Webserver<br />

des Telefons mit der Aufforderung, einen<br />

Neustart auszuführen. Das ist für den<br />

User leider unbequem, da das Telefon bei<br />

jeder Änderung für eine kurze Zeit nicht<br />

Abbildung 2: Gemeinschaft 4 unterstützt Telefone wie das Snom 370.<br />

© snom.com<br />

betriebsbereit ist. Ab Gemeinschaft 5 ist<br />

es aber möglich, alle unterstützten Telefone<br />

ohne Neustart zu provisionieren. In<br />

diesem Fall schickt die Telefonanlage eine<br />

»SIP Info«-Nachricht mit der Aufforderung,<br />

die Konfiguration neu zu laden.<br />

Ausblick<br />

Für Anfang Dezember 2012 ist die Veröffentlichung<br />

von Gemeinschaft 5 geplant.<br />

Das Image mit <strong>Linux</strong>-Betriebssystem soll<br />

sich zum Livebetrieb wie zur Installation<br />

auf Festplatte eignen. Sie bringt unter<br />

anderem ein neues GUI, frei definierbare<br />

Feature-Codes, Rufnummern-Lookup in<br />

Telefonbuch und Vorwahlen-Liste sowie<br />

ein Konferenzsystem. Außerdem verspricht<br />

sie die Clusterfähigkeit des Telefonservers.<br />

(mhu) <br />

n<br />

Infos<br />

[1] Gemeinschaft:<br />

[http:// www. amooma. de/ gemeinschaft]<br />

[2] Freeswitch: [http:// www. freeswitch. org]<br />

[3] Dnsmasq: [http:// www. thekelleys. org. uk/​<br />

dnsmasq/ doc. html]<br />

Der Autor<br />

Sascha Daniels beschäftigt sich seit 2007 mit der<br />

freien IP-Telefonanlage Gemeinschaft. Hauptberuflich<br />

arbeitet er seit über zehn Jahren als angestellter<br />

Administrator und bietet unter [http://​<br />

www. alternative‐solution. de] IT Dienstleistungen<br />

rund um <strong>Linux</strong> und Open-Source an.<br />

Listing 2: »settings.xml«<br />

01 <br />

02 <br />

03 <br />

04 on<br />

<br />

05 60<br />

<br />

06 main net stack user<br />

fkey speeddial phonebook<br />

07 https://192.168.110.89:<br />

443/settings‐000413331FDB.xml<br />

08 <br />

09 <br />

Listing 3: Controller<br />

01 match 'settings‐:mac_address' =><br />

'manufacturer_snom#show',<br />

02 :format => 'xml',<br />

03 :constraints => { :mac_address => /000413.*/<br />

}<br />

VoIP-Telefonie 01/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

35


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

ACADEMY<br />

JETZT MIT NEUEN<br />

Lernzielen! *<br />

*Anpassung der Lernziele 2012<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Besorgen Sie sich Brief und Siegel für Ihr<br />

<strong>Linux</strong>-Knowhow mit der LPI-Zertifizierung.<br />

- Training für die Prüfungen LPI 101 und 102<br />

- Training für die Prüfungen LPI 201 und 202<br />

Sparen Sie mit Paketpreisen!<br />

Auszug aus dem Inhalt:<br />

❚ Hardware-Einstellungen,<br />

Paketverwaltung<br />

❚ Arbeiten auf der Kommandozeile<br />

❚ Partitionen und Dateisysteme<br />

❚ Shell-Umgebung<br />

❚ Netzkonfiguration und -verwaltung<br />

❚ Protokolle<br />

❚ DNS-Server einrichten und verwalten<br />

❚ Verschlüsselung und Rechteverwaltung<br />

❚ Kernel kompilieren und patchen<br />

❚ RAID-Konfiguration,<br />

Logical Volume Manager<br />

❚ Web-, Proxy-, Samba-Server<br />

Mit vielen Praxisbeispielen!<br />

* Anpassung der Lernziele in 2012<br />

academy.linux-magazin.de/lpic


In eigener Sache: DELUG-DVD<br />

Ubuntu 12.10, Bluespice, Luks<br />

Einführung 01/2013 12/2010<br />

Software<br />

Auch diesen Monat bekommen DELUG-Käufer eine randvolle DVD mit exklusiven Inhalten. Von der bootet das<br />

brandneue Ubuntu 12.10 „Quantal Quetzal“, dazu gibt es exklusiv gleich zwei virtuelle Maschinen, jede Menge<br />

Software und ein E-Book über die Shell-Programmierung. Markus Feilner<br />

www.linux-magazin.de<br />

37<br />

Inhalt<br />

38 Ubuntu 12.10<br />

Unter die Haube geschaut: Was sich<br />

bei Canonicals neuestem Spross alles<br />

ändert.<br />

40 Bitparade<br />

Programm- und Systemabläufe aufzeichnen<br />

mit Strace, Dtrace, LTTng oder<br />

Systemtap.<br />

48 Tooltipps<br />

Sechs Werkzeuge im Kurztest: Ffmpeg<br />

1.0, Htppp, Lftp 4.4, Ncdu 1.9, Netstat-<br />

Monitor und Preziplayer 1.0.<br />

Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

ohne Datenträger gibt es die DELUG-<br />

Ausgabe mit Monats-DVD, bei der die<br />

Redaktion den Datenträger nach einem<br />

speziellen Konzept zusammenstellt: In<br />

einer Art modularem System enthält er<br />

Programme, ganze Betriebssysteme, virtuelle<br />

Maschinen und Tools, die in der<br />

jeweiligen <strong>Magazin</strong>-Ausgabe getestet und<br />

Abbildung 2: Kostenlos als E-Book auf der DVD:<br />

„Klassische Shell-Programmierung“ von Arnold<br />

Robbins und Nelson H. F. Beebe.<br />

besprochen werden. Zudem führt<br />

eine HTML-Oberfläche durch von<br />

der Redaktion besonders empfohlene<br />

Software.<br />

Quantal Quetzal<br />

Von der DELUG-DVD bootet die<br />

neueste Variante von Canonicals<br />

Ubuntu-<strong>Linux</strong> in der 64-Bit-Ausführung<br />

(siehe Abbildung 1). Unter<br />

der Haube werkelt ein angepasster<br />

Kernel 3.5, fürs Booten ist bereits<br />

Grub 2.00 zuständig, der auch<br />

schon Secure Boot beherrscht. Die<br />

Mesa-Bibliothek Llvmpipe soll auf<br />

Rechnern ohne Open-GL-Support<br />

sicherstellen, dass der 3-D-Desktop<br />

Unity läuft.<br />

Exklusive VMs<br />

Wer mit dem Browser auf die DVD zugreift,<br />

findet im HTML-Menü diverse exklusive<br />

Inhalte. So haben die Entwickler<br />

von Hallo Welt für das <strong>Linux</strong>-<strong>Magazin</strong><br />

eine virtuelle Maschine mit den neuesten<br />

Features der gerade veröffentlichten<br />

Version 1.2 des Enterprise-Wiki für Unternehmen<br />

und Privatleute gebaut. Wer<br />

lokal Java installiert hat, kann etwa mit<br />

dem sonst kostenpflichtigen Modul »Paste<br />

Image« Bilder per Drag & Drop aus dem<br />

Datei-Explorer in den Browser ziehen<br />

oder per Copy & Paste aus der Zwischenablage<br />

in den Text einfügen.<br />

Die zweite Virtual Appliance auf Basis<br />

eines gehärteten Gentoo-<strong>Linux</strong> demonstriert<br />

eine Installation, die auf mehreren<br />

Ebenen die enthaltenen Daten schützt:<br />

Auf einer per Luks verschlüsselten Partition<br />

läuft das Dateisystem ZFS, das mit<br />

Checksummen für größtmögliche Datenintegrität<br />

sorgt. Die VM bietet auch an,<br />

Abbildung 1: Randvoll mit neuester Software, vom Kernel bis<br />

zum Unity-Desktop: Ubuntu 12.10 „Quantal Quetzal“.<br />

alle Features von ZFS on <strong>Linux</strong> auszuprobieren,<br />

etwa das dynamische Volume-<br />

Management, Snapshots, Properties per<br />

Dateisystem, Quotas, Kompression oder<br />

die platzsparende Deduplizierung.<br />

E-Book, Video, Software<br />

Wer gute Shellskripte schreiben will,<br />

braucht mehr als nur das Wissens um die<br />

Skriptsprache. Das E-Book „Klassische<br />

Shell-Programmierung“ aus dem Hause<br />

O’Reilly (Abbildung 2) lehrt beides: die<br />

Shellsprache und den geschickten Einsatz<br />

vieler Unix-Programme. Normalerweise<br />

kostet das 600 Seiten starke E-Book<br />

20 Euro, DELUG-Käufer bekommen es<br />

kostenlos. Wem das nicht reicht, der<br />

greift zum Video über Crowbar, zu den<br />

neuesten Versionen von Libre Office oder<br />

Avahi, testet fünf verschiedene Mailarchivierungs-Softwarepakete,<br />

programmiert<br />

ein wenig mit Scala und Coffescript oder<br />

schaut sich die Werkzeuge aus Tooltipps<br />

und Bitparade genauer an.<br />

n


Software<br />

www.linux-magazin.de Ubuntu 12.10 01/2013<br />

38<br />

Ubuntu 12.10 im Test<br />

Erstflug<br />

Neues aus dem Hause Canonical: Im Oktober 2012 veröffentlichte die <strong>Linux</strong>-Firma Ubuntu 12.10 mit dem<br />

ornithologisch interessanten Namen „Quantal Quetzal“. Der Nachfolger der Long-Term-Support-Variante 12.04<br />

sorgte bereits im Vorfeld für Zündstoff in der Community. Heike Jurzik<br />

© hotshotsworldwide, 123RF.com<br />

Pünktlich zum angekündigten Termin<br />

verließ der neueste Spross der Firma<br />

Canonical das heimische Nest [1]. Die<br />

Entwickler haben – anders als sonst bei<br />

direkten LTS-Nachfolgern – keine bahnbrechenden<br />

neuen Features umgesetzt,<br />

vielmehr an zahlreichen Details gefeilt.<br />

Einige der neuen Funktionen stoßen bei<br />

Endanwendern auf wenig Gegenliebe<br />

[2], andere machen die Arbeit mit Quantal<br />

Quetzal komfortabler.<br />

Eine offensichtliche Neuerung betrifft<br />

die Verpackung: Zum ersten Mal ist das<br />

angebotene ISO-Image von Ubuntu größer<br />

als 800 MByte und passt damit nicht<br />

mehr auf eine CD. Auch der KDE-basierte<br />

Ableger Kubuntu (nicht länger von Canonical<br />

unterstützt, sondern seit dieser<br />

Release ein reines Community-Projekt)<br />

sprengt die 700-MByte-Grenze. Lediglich<br />

Lubuntu mit LXDE als Standarddesktop<br />

und Xubuntu mit Xfce liegen noch als<br />

CD-Images vor..<br />

Die offizielle Alternate-CD ist ebenfalls<br />

verschwunden; nur Lubuntu bietet sie<br />

noch an. Anders als die Desktop-CD, die<br />

einen Livebetrieb ermöglicht und einen<br />

grafischen Installer enthält, ist die Alternate-CD<br />

ein reines Installationsmedium,<br />

das Ubuntu im Textmodus auf die Platte<br />

bringt sowie LVM und Vollverschlüsselung<br />

unterstützt. Die Funktionen der Alternate-Variante<br />

sind nun Teil der DVD.<br />

Ausgebrütet<br />

Unter dem Gefieder werkelt Kernel 3.5<br />

und für den Systemstart ist Grub 2.00<br />

verantwortlich. Der Bootloader kann<br />

mit UEFI Secure Boot umgehen, was<br />

Windows-8-Anwender mit Dualboot-<br />

Plänen freuen dürfte. Ursprünglich hatten<br />

die Ubuntu-Entwickler geplant, den<br />

Bootloader Efilinux einzusetzen, da sie<br />

befürchteten, die von Grub genutzte<br />

GPLv3 könnte sie zur Veröffentlichung<br />

des Signaturschlüssels zwingen, sollte<br />

ein Canonical-OEM-Partner versehentlich<br />

Hardware ausliefern, bei der Nutzer<br />

Secure Boot nicht abschalten dürfen.<br />

Nach Gesprächen mit der Free Software<br />

Foundation, die das Copyright an Grub 2<br />

hält, stellten sich die Bedenken jedoch als<br />

ungerechtfertigt heraus [3]. Lieferanten<br />

dürfen auf mit Ubuntu vorinstallierten<br />

Geräten eigene Secure-Boot-Schlüssel<br />

verwenden.<br />

Apropos Hardware: Wer einen Rechner<br />

mit einer Grafikkarte ohne 3-D-Beschleunigung<br />

besitzt, der kann nicht länger auf<br />

die Fallback-Lösung Unity 2D zurückgreifen.<br />

Stattdessen sorgt der Mesa-3-D-Treiber<br />

LLVMpipe dafür, dass Unity und auch<br />

die Gnome-Shell die Desktopeffekte auf<br />

solchen Systemen nutzen können (Abbildung<br />

1). Auf älterer Hardware läuft diese<br />

Lösung mitunter nicht rund. Benutzern,<br />

die auf Performanceprobleme stoßen,<br />

bleibt nichts anderes übrig, als beim Vorgänger<br />

12.04 zu bleiben oder auf einen<br />

anderen Desktop auszuweichen.<br />

Buntes Federkleid<br />

Der Standarddesktop Unity ist in Version<br />

6.8 dabei und wirkt auf den ersten Blick<br />

unverändert, der Teufel steckt allerdings<br />

im Detail. Wer im Dash über die Home<br />

Lense nach etwas sucht, erhält nicht<br />

nur Feedback der üblichen Verdächtigen<br />

(Anwendungen, Dateien, Musik und so<br />

weiter), sondern sieht auch Einkaufsvor-<br />

Ubuntu 12.10<br />

Auf der Delug-DVD dieses <strong>Magazin</strong>s<br />

finden Sie die aktuelle Ubuntu-Version<br />

DELUG-DVD<br />

12.10, Codename „Quantal Quetzal“. Der Datenträger<br />

enthält die 64-Bit-Variante der<br />

neuen Ausgabe.


Abbildung 1: LLVMpipe stellt auf Hardware ohne Open-GL-Support die<br />

3-D-Beschleunigung für den Desktop bereit.<br />

schläge aus Amazons Webshop. Nach<br />

Eingabe von »Term« oder »Fire« listet die<br />

Home Lense in der oberen Hälfte zwar<br />

Terminalprogramme und den Browser bei<br />

den Programmen auf, eine Suche nach<br />

»DNS« an gleicher Stelle führt indes nicht<br />

zu Anwendungen, sondern schlägt nur<br />

Fachliteratur und Musik vor (Abbildung<br />

2). Um passende DNS-Werkzeuge zu finden,<br />

muss der Benutzer zur Anwendungen-Lense<br />

wechseln.<br />

Zuständig für den Kontakt zu Amazon<br />

ist der »unity‐shopping‐daemon« aus<br />

dem Paket »unity‐lens‐shopping«, das<br />

Anwender auch deinstallieren können.<br />

Alternativ bieten die Systemeinstellungen<br />

an, unter »Privatsphäre« die Onlinesuche<br />

abzuschalten. Mark Shuttleworth verrät<br />

in einem Blogeintrag [4], dass die Kooperation<br />

mit Amazon erst der Anfang<br />

ist. Er möchte weitere Suchmöglichkeiten<br />

integrieren, auch von Anbietern, die kein<br />

Geld in Canonicals Kassen spülen.<br />

Dass Unity hinter den Kulissen nicht nur<br />

mit dem Onlineshop kommuniziert, verrät<br />

»sudo lsof ‐i«. Die Liste zeigt wechselnde<br />

Kontakte zu Canonical-Servern an.<br />

Darunter befindet sich auch der Dienst<br />

»ubuntu‐geoip‐provider«, der Standortinformationen<br />

übermittelt. Der Versuch,<br />

die Geoclue-Komponenten zu deinstallieren,<br />

zieht unweigerlich den Verlust des<br />

Pakets »indicator‐appmenu« nach sich,<br />

das die Panelelemente bereitstellt.<br />

Aufschwung<br />

Amazon. Die Suche<br />

nach »unity‐webapps‐«<br />

fördert eine lange Liste<br />

weiterer Dienste zutage,<br />

darunter Google<br />

Mail, Facebook, Last.<br />

fm, Launchpad, Twitter,<br />

Yahoo und Youtube.<br />

Wie jedes Ubuntu-Upgrade bringt auch<br />

dieses wieder viele Programme in<br />

neuen Ausführungen mit. Firefox und<br />

Thunderbird liegen in Version 16.0.1 bei,<br />

das Officepaket Libre Office in Version<br />

3.6.2. Mit dabei sind auch eine neue<br />

Gimp-Version (2.8.2), Apache 2.2, PHP<br />

5.4.6 und Python 2.7.3.<br />

Zugvogel<br />

Nur Nautilus liegt in der älteren Version<br />

3.4.2 vor. Die Ubuntu-Macher reagieren<br />

damit auf den gerupften Dateimanager,<br />

der mit Einführung von Gnome 3.6 einige<br />

Features gelassen hat. In der überarbeiteten<br />

Oberfläche fehlen Menüs und beliebte<br />

Funktionen, dafür ist Neues in den<br />

Kontextmenüs hinzugekommen sowie ein<br />

Eintrag in der Seitenleiste für zuletzt verwendete<br />

Dateien.<br />

Anwender, die gerne die neuere Nautilus-Variante<br />

testen möchten, können ein<br />

Gnome-3-PPA einbinden [5]. Nach der<br />

Aktualisierung und dem Neustart des<br />

Dateimanagers präsentiert er sich (zusammen<br />

mit einigen anderen Gnome-<br />

Anwendungen) im neuen Gewand. Bei<br />

Nichtgefallen führt ein beherztes »sudo<br />

ppa‐purge ppa:gnome3‐team/gnome3«<br />

zurück zur 3.4.2-Variante.<br />

Ob sich der Umstieg auf Ubuntu 12.10<br />

lohnt, hängt unter anderem von der eigenen<br />

Hardware ab. Benutzer, die bisher<br />

auf Unity 2D ausweichen konnten, müssen<br />

nun mit dem LLVMpipe-Workaround<br />

vorliebnehmen oder zu einem der alternativen<br />

Desktops wechseln, falls die Performance<br />

nicht überzeugt.<br />

Gleiches gilt für alle, die sich mit der<br />

Onlineshop-Integration und den Web<br />

Apps nicht anfreunden können. Ubuntu<br />

beziehungsweise Unity wird zukünftig<br />

noch mehr dieser Funktionen und die<br />

Zusammenarbeit mit anderen kommerziellen<br />

Herstellern anstreben – schließlich<br />

steckt hinter der Distribution eine Firma<br />

mit wirtschaftlichen Interessen. Noch ist<br />

es allerdings möglich, die meisten unliebsamen<br />

Dienste abzuschalten. n<br />

Infos<br />

[1] Ubuntu-Download:<br />

[http:// www. ubuntu. com/ download]<br />

[2] Aufregung über neue Ubuntu-Features:<br />

[http:// www. linux‐magazin. de/ content/​<br />

view/ full/ 71245]<br />

[3] Blogeintrag zu Grub 2 und Secure Boot:<br />

[http:// blog. canonical. com/ 2012/ 09/ 20/<br />

quetzal‐is‐taking‐flight‐update‐on‐ubuntu<br />

‐secure‐boot‐plans/]<br />

[4] Mark Shuttleworth zur Amazon-Suche im<br />

Dash: [http:// www. markshuttleworth. com/​<br />

archives/ 1182]<br />

[5] Gnome 3: [https:// launchpad. net/​<br />

~gnome3‐team/ +archive/ gnome3]<br />

Ubuntu 12.10 01/2013<br />

Software<br />

www.linux-magazin.de<br />

39<br />

Auch der Launcher auf der linken Seite<br />

schmückt sich nun mit fremden Federn:<br />

So genannte „Web Apps“ bringen Webseiten<br />

via Browserplugin (derzeit nur<br />

über Firefox und Chromium) als eine Art<br />

Anwendung auf den Desktop. Nach Besuch<br />

der jeweiligen Webseite bietet der<br />

Browser an, sie in eine Web App zu verwandeln<br />

und so über einen Klick erreichbar<br />

zu machen. In der Voreinstellung nisten<br />

im Launcher Ubuntu One Music und<br />

Abbildung 2: Der neue Filter für die Home Lense führt zum deutschen Amazon-Shop und – wie bei dieser<br />

Suche nach »DNS« – nicht zwingend zur gesuchten Anwendung.


Software<br />

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

40<br />

Programm- und Systemabläufe aufzeichnen<br />

Verfolgungsjagd<br />

Laufende Programme verraten nur selten, was sie tatsächlich im Hintergrund anstellen. Glücklicherweise verfolgen<br />

pfiffige Werkzeuge das Treiben und protokollieren die aufgerufenen Systemfunktionen. Die vorgestellten<br />

Debugger sind für Programmierer und Administratoren gleichermaßen interessant. Tim Schürmann<br />

© SV Luma, 123RF<br />

Gleich eine ganze Werkzeugklasse hat<br />

es sich zur Aufgabe gemacht, die Abläufe<br />

und Funktionsaufrufe fertiger Programme<br />

und mitunter sogar des kompletten<br />

Systems aufzuzeichnen. Die dabei<br />

entstehenden Protokolle heißen Traces.<br />

Programmierer können mit ihnen rasch<br />

nachvollziehen, welche Funktionsaufrufe<br />

und Aktionen geradewegs zu einem Fehler<br />

oder Abbruch führen. Wiederholte<br />

Einträge in den Protokollen weisen zudem<br />

auf Race Conditions und Deadlocks<br />

hin. Die Debugger helfen ebenfalls beim<br />

Reverse Engineering und geben angehenden<br />

Kernelentwicklern einen Einblick in<br />

typische Abläufe zwischen Userspace<br />

und Betriebssystemkern.<br />

Auch Administratoren nutzen die Tools,<br />

um herauszufinden, was im System im<br />

Einzelnen vorgeht. Die Traces helfen ihnen<br />

dabei, verdächtiges Verhalten unter<br />

die Lupe zu nehmen. Um beispielsweise<br />

herauszufinden, welches Programm<br />

regelmäßig mehrere GByte große temporäre<br />

Dateien produziert, beobachten<br />

sie mit den Debuggern alle Aufrufe der<br />

Systemfunktion »open()« und zeichnen<br />

sie auf. Ein Blick in die Ausgabe der Debugger<br />

gibt anschließend Hinweise auf<br />

den Übeltäter.<br />

In dieser Bitparade treten Strace [1],<br />

LTT ng [2], Systemtap [3] und Dtrace [4]<br />

an. Den Auftakt macht der Klassiker, danach<br />

folgen die etwas mächtigeren Tools<br />

und Dtrace ist das neueste Werkzeug im<br />

Test. Alle Kandidaten klinken sich in den<br />

<strong>Linux</strong>-Kernel ein, beobachten dadurch<br />

weite Teile des Systems und behalten so<br />

etwa auch die Sockets im Auge.<br />

Teilweise schneiden die Debugger den<br />

Netzwerkverkehr mit und protokollieren<br />

die Prozessorlast beziehungsweise die<br />

Rechenzeit einzelner Aktionen. So dienen<br />

sie als Profiler für Entwickler und liefern<br />

Admins einen Hinweis auf Performance-<br />

Engpässe und Flaschenhälse. Den Quellcode<br />

der zu inspizierenden Anwendung<br />

oder des Kernels benötigen sie nicht – die<br />

Analyse funktioniert auf jedem beliebigen<br />

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

E Strace<br />

Zusammen mit den Entwicklerwerkzeugen<br />

landet bei fast allen großen Distributionen<br />

automatisch das kleine Werkzeug<br />

Strace [1] auf der Festplatte. Es protokolliert<br />

schlichtweg alle Systemaufrufe<br />

(System Calls) einer Anwendung. Dazu<br />

übergibt der Anwender auf der Kommandozeile<br />

das zu analysierende Programm,<br />

in folgendem Beispiel »test«:<br />

strace ‐o aufrufe.txt ./test<br />

Listing 1: Beispielprogramm in C<br />

01 #include <br />

09 datei = fopen("hallo.txt", "a");<br />

02 #include <br />

10 <br />

03 <br />

11 /* Text in Datei schreiben */<br />

04 int main()<br />

12 fprintf(datei, "Hallo Welt!");<br />

05 {<br />

13 <br />

06 FILE *datei;<br />

14 /* Datei schließen */<br />

07 <br />

15 fclose(datei);<br />

08 /* Datei öffnen */<br />

16 }<br />

Strace startet es und protokolliert im<br />

Standardfehlerkanal (Stderr) alle vom<br />

Programm aufgerufenen Systemfunktionen<br />

– einschließlich ihrer Parameter und<br />

Rückgabewerte – sowie alle vom zugehörigen<br />

Prozess empfangenen Signale. Um<br />

die Strace-Aufzeichnungen besser analysieren<br />

zu können, lenkt der Parameter<br />

»‐o« sie in eine Textdatei um. Der Debug-


Bitparade 01/2013<br />

Software<br />

Abbildung 2: Strace listet in dieser Statistik auf, welche Funktionen das Programm<br />

»test« wie oft aufgerufen hat und wie viele Fehler es dabei gab.<br />

www.linux-magazin.de<br />

41<br />

Abbildung 1: Strace protokolliert alle Systemaufrufe, darunter auch die<br />

Speicher manipulationen und das Laden dynamischer Bibliotheken.<br />

Abbildung 3: Wie Ltrace beweist, nutzt das kleine Programm »test« ausschließlich<br />

Funktionen aus der Standardbibliothek.<br />

ger setzt über die Aufrufoption »‐p« an<br />

einem laufenden Prozess wie etwa einem<br />

Daemon an.<br />

Abbildung 1 zeigt ein Strace-Ergebnis.<br />

In den letzten Zeilen ist gut zu erkennen,<br />

dass das kleine C-Programm aus<br />

Listing 1 eine Textdatei öffnet, »Hallo<br />

Welt!« hineinschreibt und die Datei wieder<br />

schließt. Strace protokolliert auch die<br />

zahlreichen Speichermanipulationen und<br />

die Aufrufe des dynamischen Linkers. In<br />

der Informationsflut kann es mitunter<br />

recht mühsam sein, die für einen Fehler<br />

verantwortlichen Funktionen herauszufischen.<br />

Der strikte und einfache Aufbau<br />

der Strace-Ausgabe ermöglicht es Anwendern<br />

allerdings, sie mit anderen Tools<br />

weiterzuverarbeiten und beispielsweise<br />

mit Grep nach bestimmten Funktionsaufrufen<br />

zu fahnden.<br />

Strace selbst bietet nur ein paar einfache<br />

Filter. So landen beispielsweise mit dem<br />

Ltrace<br />

Ltrace [5] arbeitet im Prinzip ähnlich wie<br />

Strace, sogar die Aufrufsyntax und die mitgelieferten<br />

Parameter sind oft gleich. Beim<br />

Aufruf übergeben die Anwender ebenfalls das<br />

Programm, das sie untersuchen möchten:<br />

»ltrace ./test«.<br />

Das Ergebnis sieht ähnlich aus wie bei Strace,<br />

nur dass Ltrace ausschließlich Funktionsaufrufe<br />

aus dynamischen Bibliotheken listet (Abbildung<br />

3). Auf Wunsch notiert das Werkzeug auch nur<br />

folgenden Kommando ausschließlich die<br />

Aufrufe der Systemfunktionen »open()«<br />

und »close()« im Protokoll:<br />

strace ‐e trace=open,close ./test<br />

Ergänzend wirft der Parameter »‐c« eine<br />

kleine Statistik aus (siehe Abbildung 2).<br />

Der Debugger liefert nicht nur Informationen<br />

zu den in den Funktionen genutzten<br />

Zeigern, sondern versucht auch sie<br />

zu dereferenzieren und die tatsächlichen<br />

Werte in das Protokoll zu schreiben. Teilt<br />

sich die zu analysierende Anwendung<br />

in mehrere Prozesse auf, schreibt er die<br />

zugehörige PID vor jeden Protokolleintrag.<br />

Auf Wunsch setzt Strace vor jeden<br />

Funktionsaufruf einen Zeitstempel und<br />

gibt so erste Hinweise auf kriechende<br />

Codepassagen.<br />

Da Strace lediglich die Systemaufrufe liefert,<br />

also die von einem Programm im<br />

Kernel aufgerufenen Funktionen erfasst,<br />

die Ausgabe bestimmter Bibliotheken. Dank<br />

des Parameters »‐S« protokolliert der Debugger<br />

genau wie Strace die Systemfunktionen<br />

und kennzeichnet diese im Trace jeweils durch<br />

vorangestelltes »SYS_«.<br />

Der Debugger konzentriert sich hauptsächlich<br />

auf die dynamisch hinzugelinkten Bibliotheken.<br />

Das Tool tritt daher in diesem Test nur außer<br />

Konkurrenz an und empfiehlt sich vor allem als<br />

Ergänzung zu Strace.<br />

greifen Anwender am besten zu Ltrace<br />

(siehe Kasten „Ltrace“), um die dynamisch<br />

hinzugelinkten Bibliotheken zu<br />

beobachten – statische bleiben außen<br />

vor. So spüren sie Fehler auf, die durch<br />

fehlende oder falsche Shared Libraries<br />

entstehen.<br />

E LTTng<br />

Seit 2005 gibt es das „<strong>Linux</strong> Trace Toolkit<br />

next generation“, kurz LTTng [2]. Es<br />

liegt mittlerweile vielen größeren Distributionen<br />

bei; aktuell ist Version 2.0. Der<br />

Debugger klinkt sich mit einem Kernelmodul<br />

in den <strong>Linux</strong>-Kern ein, ein Daemon<br />

erfasst die vom Modul gesammelten<br />

Informationen. Anwender steuern den<br />

Daemon mit dem Clientprogramm »lttng«<br />

auf der Shell.<br />

Um alle Aufrufe der Systemfunktion<br />

»sys_open()« mitzuschneiden, öffnen Anwender<br />

zunächst mit »create« eine neue<br />

Sitzung und teilen LTTng mit, die Funktion<br />

zu observieren. Ein dritter Befehl<br />

startet die eigentliche Aufzeichnung. Alle<br />

Kommandos benötigen Rootrechte:<br />

lttng create sitzung<br />

lttng enable‐event ‐‐kernel sys_open U<br />

‐‐probe sys_open+0x0<br />

lttng start<br />

Sind alle Daten notiert, weisen Anwender<br />

den Debugger über zwei weitere Befehle


Software<br />

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

42<br />

Abbildung 4: Die von LTTng produzierten Traces sind ohne Hilfsmittel und<br />

externe Programme nur schwer zu interpretieren.<br />

dazu an, die Aufzeichnung zu stoppen<br />

und die Sitzung zu beenden:<br />

lttng stop<br />

lttng destroy<br />

LTTng trägt Daten zu bestimmten Kernelereignissen<br />

zusammen oder meldet das<br />

Erreichen von im Kernel enthaltenen<br />

Tracepoints. Die dabei entstehende Datenmenge<br />

dürfen Nutzer direkt in LTTng<br />

nicht selbst (beispielsweise über Skripte)<br />

einstellen – sie erhalten also stets alle<br />

oder keine Informationen. Immerhin ist<br />

es über so genannte Kontexte möglich,<br />

Dinge detaillierter zu erfassen und beispielsweise<br />

die PID des auslösenden Prozesses<br />

oder die Anzahl der CPU-Takte für<br />

ein Ereignis zu notieren.<br />

Der Debugger beobachtet<br />

optional<br />

auch Programme<br />

im Userspace – vorausgesetzt<br />

der Anwender<br />

hat diese<br />

darauf vorbereitet.<br />

Wie das funktioniert,<br />

haben die<br />

LTTng-Entwickler<br />

zwar notiert, die<br />

Information aber<br />

an zahlreichen<br />

Stellen in der Dokumentation<br />

und<br />

in den Beispielen<br />

im Quellcode verteilt, sodass es etwas<br />

mühsam ist, entsprechende Hinweise<br />

aufzustöbern.<br />

Seinen eigenen Programmcode spickt der<br />

Benutzer mit Tracepoints, also Punkten,<br />

deren Erreichen LTTng später aufzeichnen<br />

soll. Alle dazu notwendigen Funktionen<br />

stellt die Bibliothek »lttng‐ust«<br />

bereit, die der Anwender dem Programm<br />

folgerichtig hinzulinken muss. Das weitere<br />

Vorgehen verläuft analog zur Abfrage<br />

des Kernels. So registriert der folgende<br />

Befehl beispielsweise alle Tracepoints im<br />

Userspace:<br />

lttng enable‐event ‐a ‐u<br />

Rootrechte sind für die Analyse im Userspace<br />

nicht erforderlich, wenn es sich um<br />

Abbildung 5: LTTng arbeitet über ein <strong>Plug</strong>in mit Eclipse zusammen. Im Test hat der Debugger zunächst ein<br />

paar Sekunden den Kernel belauscht, Eclipse zeigt hier den entstandenen Trace an.<br />

selbst aufgerufene Programme handelt.<br />

Anwendungen unter einer anderen Benutzerkennung<br />

verlangen wiederum den<br />

Admin-Status.<br />

Externe Mitarbeiter<br />

Alle gesammelten Informationen schreibt<br />

LTTng als CTF-Dateien [6] ins Verzeichnis<br />

»~/lttng‐traces«. Dort sortiert es sie<br />

in Unterverzeichnisse ein, die den Namen<br />

der Sitzung und einen Zeitstempel<br />

tragen. Zum Auswerten der Protokolle ist<br />

noch ein weiteres Programm erforderlich,<br />

im einfachsten Fall das Kommandozeilenwerkzeug<br />

Babeltrace [7], das CTF in Text<br />

umwandelt:<br />

babeltrace $HOME/lttng‐traces/sitzung‐U<br />

20121030‐164708 | less<br />

Je nachdem, welche Ereignisse der Debugger<br />

notiert hat und wie lange die<br />

Beobachtung lief, ergießt sich nun eine<br />

wahre Informationsflut ins Terminal<br />

(siehe Abbildung 4). Anwender filtern<br />

und durchsuchen den Text mit den gängigen<br />

Shellwerkzeugen.<br />

Die LTTng-Homepage nennt als alternative<br />

Hilfsprogramme LTTV (<strong>Linux</strong> Trace<br />

Toolkit Viewer, [8]) und ein Eclipse-<br />

<strong>Plug</strong> in [9]. Beide Werkzeuge sind sozusagen<br />

Work in Progress – die Anpassung<br />

an die neue LTTng-Version 2.0 läuft noch.<br />

LTTV nutzt zwar die Babeltrace-Bibliotheken,<br />

ließ sich im Test aber nicht dazu<br />

überreden, CTF-Dateien anzuzeigen. Das<br />

Eclipse-<strong>Plug</strong>in implementiert eine eigene<br />

CTF-Bibliothek in Java und visualisierte<br />

die LTTng-Traces hingegen problemlos<br />

(siehe Abbildung 5).<br />

E Systemtap<br />

Einen Schritt weiter als LTTng geht Systemtap<br />

[3], das gleich das ganze <strong>Linux</strong>-<br />

System beobachtet. Es klinkt sich in den<br />

Kernel ein und protokolliert vom Nutzer<br />

ausgewählte Ereignisse oder Systemaufrufe.<br />

Mit Systemtap kommen Anwender<br />

daher auch komplexen Performanceproblemen<br />

oder Fehlfunktionen auf die Schliche.<br />

Derzeit beteiligen sich vor allem Red<br />

Hat, IBM, Hitatchi und Oracle an der<br />

Entwicklung des Debuggers, der allen<br />

großen Distributionen beiliegt.<br />

Die Nutzer beschreiben in eigenen<br />

Skripten, welche Ereignisse Systemtap


im Auge behalten soll. Dazu verwenden<br />

sie die Systemtap-eigene Skriptsprache,<br />

die an C und AWK erinnert. Die fertigen<br />

Skripte mit der Endung ».stp« führt dann<br />

das Werkzeug »stap« aus. Es wandelt sie<br />

zunächst in C-Code um, erzeugt daraus<br />

ein Kernelmodul und lädt es.<br />

Damit das funktioniert, betreiben Anwender<br />

das Programm entweder mit Rootrechten<br />

oder tragen den entsprechenden<br />

Account in die Gruppe »stapdev« ein.<br />

Darüber hinaus benötigt Systemtap die<br />

Debuginformationen des Kernels. Je<br />

nach Distributionen installieren Anwender<br />

dazu ein einziges Paket nach oder<br />

aktivieren wie unter Ubuntu gleich ein<br />

komplettes Repository [10].<br />

Ereignisreich<br />

Jedes Systemtap-Skript bestimmt, auf<br />

welche Ereignisse der Debugger mit welchen<br />

Aktionen reagieren soll. Listing 2<br />

zeigt ein einfaches Beispiel, das 4 Sekunden<br />

lang alle Aufrufe der Systemfunktion<br />

»open« aufzeichnet. Dazu registriert es<br />

drei Ereignisse, die jeweils hinter »probe«<br />

stehen. Beim Start tritt automatisch das<br />

Ereignis »begin« ein. Die Aktionen, die<br />

Systemtap abarbeiten soll, stehen in den<br />

geschweiften Klammern.<br />

Listing 2 schreibt »Start Aufzeichnung«<br />

auf die Standardausgabe. Das zweite Ereignis<br />

»kernel.function("sys_open")« tritt<br />

immer dann ein, wenn ein Programm<br />

die Systemfunktion »open()« aufruft. Im<br />

Listing gibt Systemtap nur den Namen des<br />

aufrufenden Programms (»execname()«),<br />

dessen PID (»pid()«) und den Namen<br />

der betroffenen Datei (»$filename$«) aus.<br />

Selbstverständlich dürfen Anwender weitere<br />

Informationen hinzusetzen, etwa die<br />

übergebenen Argumente oder den Zugriffsmodus.<br />

Die Funktion »printf()« nutzt übrigens die<br />

Syntax der gleichnamigen C-Funktion.<br />

Sind 4 Sekunden nach dem Skriptstart<br />

verstrichen, greift schließlich das dritte<br />

Ereignis. Die zugehörige Anweisung<br />

»exit()« beendet das Skript und somit die<br />

Aufzeichnung.<br />

Einen Beispiellauf zeigt Abbildung 6.<br />

Systemtap gibt selbst einige Ereignisse<br />

vor. Weitere rüstet eine beiliegende Bibliothek<br />

nach. Sie enthält eine Sammlung<br />

von Systemtap-Skripten, den so genannten<br />

Tapsets. Sie erlauben es, sich in fast<br />

alle Bereiche des<br />

Kernels einzuhängen<br />

und damit sogar<br />

den Netzwerkverkehr<br />

aufzuzeichnen.<br />

Soll dafür<br />

beispielsweise<br />

ein Skript länger<br />

mitlaufen, verbannen<br />

Nutzer es über<br />

den „Flight Recorder<br />

Mode“ als Daemon<br />

in den Hintergrund.<br />

Die Systemtap-<br />

Skriptsprache ist<br />

sehr mächtig. So<br />

dürfen Anwender beispielsweise Zwischenergebnisse<br />

in Variablen parken,<br />

»if«-Abfragen sowie »while«- und »for«-<br />

Schleifen einsetzen. Häufig benötigte Anweisungen<br />

fassen sie in Funktionen zusammen.<br />

So genannte Aggregates helfen<br />

statistische Daten zu einem einzelnen,<br />

aussagekräftigen Wert zu gruppieren. So<br />

zählt der Debugger zum Beispiel, wie<br />

viele GByte ein Programm von der Festplatte<br />

geladen hat.<br />

Da Systemtap ein Kernelmodul erstellt,<br />

dürfen die Skripte sogar C-Code enthalten.<br />

Zahlreiche Beispielskripte finden Interessenten<br />

in der Dokumentation und im<br />

Wiki auf der Projekthomepage. Sie zeigen<br />

unter anderem, wie man Systemtap zum<br />

Profiling einsetzt oder Call-Graphen erstellt.<br />

Diese Graphen machen anschaulich,<br />

welche Funktionen andere Funktionen<br />

wann aufgerufen haben.<br />

Auch im Userspace<br />

War der Debugger ursprünglich dazu<br />

gedacht, ausschließlich den Kernel zu<br />

überwachen, stürzt er sich mittlerweile<br />

auch auf Userspace-Programme. Das geht<br />

so weit, dass das Werkzeug ein Ereignis<br />

auslösen kann, wenn beispielsweise<br />

ein Programm namens »hallo« in seinem<br />

Quellcode »test.c« die sechste Zeile erreicht<br />

hat. Das zugehörige Ereignis sieht<br />

dann so aus:<br />

process("/home/tim/hallo").statementU<br />

("*@test.c:6")<br />

Dazu muss allerdings das Programm<br />

»hallo« mit Debuginformationen gespickt<br />

sein, wie sie beispielsweise »gcc« über<br />

Abbildung 6: Ein Systemtap-Skript beobachtet in einer virtuellen Maschine unter<br />

Virtualbox 4 Sekunden lang die Systemfunktion »open()«.<br />

den Parameter »‐g« einwebt. Wer als Administrator<br />

ein bestehendes Programm<br />

wie etwa »ls« unter die Lupe nehmen<br />

möchte, der muss die Debuginformationen<br />

also erst nachinstallieren. Im Fall<br />

von »ls« beispielsweise liegen diese oft<br />

schon in einem Paket namens »coreutils‐debuginfo«<br />

vor.<br />

Darüber hinaus muss der Kernel die<br />

Utrace -Schnittstelle anbieten [11], was<br />

nur dann der Fall ist, wenn beim Übersetzen<br />

die Option »CONFIG_UTRACE«<br />

eingeschaltet war. Anwender überprüfen<br />

dies schnell auf der Kommandozeile:<br />

grep CONFIG_UTRACE /boot/config‐`uname ‐r`<br />

Erscheint keine Meldung, dann kann<br />

Systemtap keine Userspace-Programme<br />

analysieren. In den Voreinstellungen unter<br />

Debian, Ubuntu und Open Suse ist<br />

das der Fall.<br />

Einige Programme, darunter MySQL und<br />

PostgreSQL sowie einige Skriptsprachen<br />

Listing 2: Systemtap-Skript<br />

01 probe begin<br />

02 {<br />

03 print ("Start Aufzeichnung\n")<br />

04 }<br />

05 <br />

06 probe kernel.function("sys_open")<br />

07 {<br />

08 printf ("Prozess: %s [PID: %d] Datei:<br />

09 }<br />

10 <br />

%s\n", execname(), pid(), $filename$)<br />

11 probe timer.ms(4000) # nach 4 Sekunden<br />

12 {<br />

13 print ("Ende Aufzeichnung\n")<br />

14 exit ()<br />

15 }<br />

Bitparade 01/2013<br />

Software<br />

www.linux-magazin.de<br />

43


Software<br />

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

44<br />

01 BEGIN<br />

02 {<br />

wie Python, unterstützen Systemtap von<br />

Haus aus. Sie enthalten so genannte Marker,<br />

deren Erreichen ein Systemtap-Skript<br />

abfangen kann. Auf diese Weise lässt sich<br />

etwa jeder Start eines MySQL-Query protokollieren<br />

[12].<br />

Außerdem existieren Frontends für die<br />

Zusammenarbeit mit anderen Werkzeugen.<br />

Besonders interessant sind die<br />

Eclipse-<strong>Plug</strong>ins des <strong>Linux</strong> Tools Project:<br />

Die Systemtap-Erweiterung rüstet einen<br />

Editor mit Syntax Highlighting und Codevervollständigung<br />

für Systemtap-Skripte<br />

nach [13], während das Callgraph-<strong>Plug</strong>in<br />

den von Systemtap erzeugten Call-Graphen<br />

visualisiert [14].<br />

E Dtrace<br />

Das ursprünglich von Sun für das Betriebssystem<br />

Solaris entwickelte Programm<br />

Dtrace [4] arbeitet ähnlich wie<br />

Systemtap. Nutzer schreiben für diesen<br />

Debugger ebenfalls Skripte in einer C-<br />

ähnlichen Sprache namens D. Diese ist<br />

allerdings eine Eigenkreation der Dtrace-<br />

Macher und nicht verwandt mit der<br />

offiziellen Programmiersprache D. Ein<br />

Dtrace-Skript gibt vor, auf welche Ereignisse<br />

der Debugger mit welchen Aktionen<br />

reagieren soll.<br />

Listing 3 zeigt ein Beispiel, das genau<br />

wie Listing 2 alle Aufrufe der Systemfunktion<br />

»open()« protokolliert. Dabei<br />

nennt es den Programmnamen (»execname«)<br />

und den betroffenen Dateinamen<br />

(»copyinstr(arg0)«). Einen Beispiellauf<br />

demonstriert die Abbildung 7. Über 200<br />

fertige Dtrace-Skripte aus verschiedenen<br />

Anwendungsbereichen fasst das Dtrace-<br />

Toolkit zusammen [15].<br />

03 printf("Start Aufzeichnung");<br />

04 }<br />

05 <br />

06 syscall::open*:entry<br />

07 {<br />

08 printf("%s %s",execname ,copyinstr(arg0));<br />

09 }<br />

10 <br />

11 profile:::tick‐4sec<br />

12 {<br />

13 trace("Ende Aufzeichnung");<br />

14 exit(0);<br />

15 }<br />

Listing 3: Prüfsonde in Dtrace<br />

Dtrace verwendet<br />

eine recht eigenwillige<br />

Terminologie:<br />

Was Systemtap<br />

als Ereignisse<br />

kennt, bezeichnet<br />

Dtrace als Probe<br />

(häufig mit Prüfpunkt<br />

oder Prüfsonde<br />

übersetzt).<br />

Die Probes stellen<br />

im Kernel wiederum<br />

so genannte<br />

Provider bereit. So<br />

liefert der Syscall-<br />

Provider beispielsweise<br />

Probes für das Aufrufen und Beenden<br />

von Systemfunktionen. Der Prüfpunkt<br />

»open*:entry« tritt immer dann<br />

ein, wenn ein Userspace-Programm die<br />

Funktion »open()« aufruft, wie in Listing<br />

3 zu sehen ist.<br />

Alle verfügbaren Probes eines Systems<br />

listet der Befehl »dtrace ‐l« auf. Auf einem<br />

der Testrechner waren das über<br />

290 000 Einträge. Anders als Systemtap<br />

kennt dieser Testkandidat keine Schleifen<br />

und »if«-Abfragen. Dtrace kann lediglich<br />

Probes unter bestimmten Bedingungen<br />

eintreten lassen. Die Entwickler wollen<br />

mit dieser Design-Entscheidung unter<br />

anderem Endlosschleifen verhindern. Im<br />

Gegenzug bietet das Tool etwas flexiblere<br />

Aggregates.<br />

Fertige Skripte starten Nutzer mit dem<br />

Kommandozeilen-Programm »dtrace«,<br />

das Skripte in eine Art Zwischencode<br />

übersetzt, den dann ein Interpreter innerhalb<br />

des Kernels ausführt. Dadurch kann<br />

Dtrace auch Laufzeitfehler im Skript abfangen,<br />

etwa eine Division durch 0. Über<br />

so genannte Privilegien vergeben Administratoren<br />

für andere Benutzer gezielt<br />

den Zugriff auf einzelne Funktionen des<br />

Debuggers, sodass nicht zwingend Rootrechte<br />

für den Betrieb nötig sind. Die<br />

Konfiguration der Rechte geschieht unter<br />

<strong>Linux</strong> in der Konfigurationsdatei »/etc/<br />

dtrace.conf«.<br />

Auf Probe<br />

Unter <strong>Linux</strong> ist Dtrace als optionales<br />

Kernelmodul verfügbar und nicht in den<br />

Kern integriert. Das liegt unter anderem<br />

an den verschiedenen Lizenzen. Während<br />

der <strong>Linux</strong>-Kernel unter der GPL<br />

Abbildung 7: Dtrace garniert die Skriptausgaben mit weiteren Informationen und<br />

packt sie in eine Art Tabelle. Der Output steht in der rechten Spalte.<br />

steht, nutzt Dtrace die CDDL. Außerdem<br />

bietet die <strong>Linux</strong>-Portierung noch nicht<br />

den vollen Funktionsumfang des originalen<br />

Werkzeugs, auch wenn sie munter<br />

voranschreitet [16].<br />

Die meisten Probes sind allerdings schon<br />

vorhanden und funktionieren. Durch Abwesenheit<br />

glänzen momentan noch solche,<br />

für deren Einführung die Entwickler<br />

den Kernelcode verändern müssten.<br />

Dazu gehören beispielsweise Prüfsonden,<br />

die unter Solaris jetzt schon den NFS-<br />

Verkehr analysieren, also insbesondere<br />

solche aus der Gruppe der „Statically Defined<br />

Tracing Probes“.<br />

Die <strong>Linux</strong>-Version des Debuggers besitzt<br />

im Gegenzug schon jetzt einen Instruction<br />

Provider, der Instruction Level Tracing<br />

ermöglicht. Damit protokollieren<br />

Nutzer, welche Teile eines Programms<br />

ausgeführt wurden. Einen Überblick über<br />

die aktuellen Fähigkeiten von Dtrace unter<br />

<strong>Linux</strong> gibt die Datei »Status.txt«, die<br />

dem Dtrace-Quellcode-Archiv beiliegt<br />

oder unter [17] einsehbar ist.<br />

Auch wenn Dtrace für <strong>Linux</strong> kontinuierlich<br />

Fortschritte macht, liegt es immer<br />

noch nicht in einer stabilen Fassung vor.<br />

Der für die Portierung verantwortliche<br />

Entwickler Paul D. Fox glaubt zwar, dass<br />

Anwender Dtrace bereits produktiv einsetzen<br />

können, übernimmt aber letztlich<br />

keine Garantie.<br />

Zu allem Überfluss werkelt Oracle hinter<br />

halb verschlossenen Türen auch an einer<br />

eigenen <strong>Linux</strong>-Portierung, die laut Wim<br />

Coekaerts von Oracle recht weit gediehen<br />

ist [18], nach Aussage von Paul D. Fox<br />

aber einen geringeren Funktionsumfang<br />

als die von ihm betreute Variante bietet.<br />

All dies verhinderte bisher jedenfalls den


Einzug von Dtrace in die Distributionen.<br />

Wer das Werkzeug einsetzen möchte, der<br />

muss es samt Kernelmodul also selbst<br />

erstellen.<br />

Erfolgreich verfolgt<br />

Strace und Ltrace sind unkompliziert in<br />

der Handhabung, dafür aber auch recht<br />

eingeschränkt im Funktionsumfang beziehungsweise<br />

spezialisiert auf ihre jeweilige<br />

Aufgabe: Strace zeichnet Systemfunktionen<br />

auf, Ltrace kümmert sich um<br />

dynamische Bibliotheken.<br />

Systemtap klinkt sich bei Bedarf in beliebige<br />

Bereiche des Systems ein. Damit<br />

ist der Debugger zwar besonders flexibel<br />

und mächtig, erfordert allerdings auch<br />

die Einarbeitung in seine eigene Skriptsprache.<br />

Mit ihrer Hilfe lassen sich die<br />

gesuchten Informationen dann schon<br />

in Systemtap selbst bequem auswählen<br />

und aufbereiten, eine Nachbehandlung<br />

ist nicht notwendig. Zur Analyse von<br />

Userspace-Programmen muss der laufende<br />

Kernel allerdings Utrace unterstützen,<br />

was in der Voreinstellung nur selten<br />

der Fall ist.<br />

Dtrace merkt man deutlich an, dass es<br />

sich noch am Anfang der Entwicklung<br />

befindet. Dazu passt die extrem karge<br />

und unvollständige Dokumentation der<br />

<strong>Linux</strong>-Portierung. Sofern nicht zwingende<br />

Gründe für den Einsatz dieses<br />

Debuggers sprechen, sollte man daher<br />

zumindest derzeit noch Systemtap den<br />

Vorzug geben. Dtrace macht aber auf anderen<br />

Betriebssystemen, darunter Free<br />

BSD, Mac OS X und Solaris, eine bessere<br />

Figur. Anwender, die in einem heterogenen<br />

Umfeld arbeiten, können folglich<br />

ihre Skripte mitnehmen beziehungsweise<br />

wiederverwenden.<br />

LTTng hinkt der Konkurrenz etwas hinterher:<br />

Während die reine Kommandozeilennutzung<br />

die meisten nicht abschrecken<br />

dürfte, so ist doch die Auswertung<br />

der langen Traces nur mit externen Werkzeugen<br />

möglich. Die Dokumentation verdient<br />

derzeit ihren Namen nicht und ist<br />

eher eine Schnelleinführung. Wer LTTng<br />

kennenlernen möchte, der sollte in den<br />

Quellcode schauen. Programme im Userspace<br />

inspiziert der Debugger außerdem<br />

nur dann, wenn der Entwickler sie auf<br />

LTTng vorbereitet hat oder der Quellcode<br />

verfügbar ist.<br />

Allen Werkzeugen gemeinsam ist, dass<br />

sie für ihren Einsatz zumindest Grundwissen<br />

über die Arbeitsweise des Kernels<br />

verlangen. Will der Anwender nicht in<br />

der selbst produzierten Datenflut versinken,<br />

dann sollte er zudem relativ genau<br />

wissen, wonach er sucht beziehungsweise<br />

wo sich im System ein Engpass<br />

oder Problem befindet. Andernfalls artet<br />

das Ganze zu einer sinnlosen Verfolgungsjagd<br />

aus. (hej) <br />

n<br />

Infos<br />

[1] Strace:<br />

[http:// sourceforge. net/ projects/ strace]<br />

[2] LTTng: [http:// lttng. org]<br />

[3] Systemtap:<br />

[http:// sourceware. org/ systemtap]<br />

[4] Dtrace: [http:// dtrace. org/ blogs]<br />

[5] Ltrace: [http:// www. ltrace. org]<br />

[6] Common Trace Format:<br />

[http:// www. efficios. com/ ctf]<br />

[7] Babeltrace:<br />

[http:// www. efficios. com/ babeltrace]<br />

[8] LTTV: [http:// lttng. org/ lttv]<br />

[9] Eclipse-<strong>Plug</strong>in für LTTng:<br />

[http:// lttng. org/ eclipse]<br />

[10] Installation von Systemtap unter Ubuntu:<br />

[https:// wiki. ubuntu. com/ Kernel/​<br />

Systemtap]<br />

[11] Userpace-Probing unter Systemtap:<br />

[http:// sourceware. org/ systemtap/​<br />

SystemTap_Beginners_Guide/​<br />

userspace‐probing. html]<br />

[12] Systemtap-Marker in MySQL:<br />

[http:// sourceware. org/ systemtap/ wiki/​<br />

MysqlMarkers]<br />

[13] Systemtap-Editor für Eclipse:<br />

[http:// www. eclipse. org/ linuxtools/​<br />

projectPages/ systemtap]<br />

[14] Systemtap, Callgraph-<strong>Plug</strong>in für Eclipse:<br />

[http:// www. eclipse. org/ linuxtools/​<br />

projectPages/ callgraph]<br />

[15] Dtrace-Toolkit:<br />

[http:// hub. opensolaris. org/ bin/ view/​<br />

Community+Group+dtrace/ dtracetoolkit]<br />

[16] <strong>Linux</strong>-Portierung von Dtrace:<br />

[ftp:// crisp. dyndns‐server. com/ pub/​<br />

release/ website/ dtrace]<br />

[17] Status der <strong>Linux</strong>-Portierung von Dtrace:<br />

[https:// github. com/ dtrace4linux/ linux/​<br />

blob/ master/ Status. txt]<br />

[18] Oracle nennt <strong>Linux</strong> und Solaris „gleichberechtigt“:<br />

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

NEWS/ Oracle‐nennt‐<strong>Linux</strong>‐und‐Solaris<br />

‐gleichberechtigt]<br />

Managed<br />

Hosting<br />

nach ISO 9001 und ISO 27001<br />

Profitieren Sie von:<br />

aktuelle Clustertechnologie<br />

ISO 9001/27001 zertifiziertem<br />

Managed Hosting<br />

Hochsicherheits-Datacenter<br />

24/7 Service und Support<br />

umfassender Datenschutz<br />

Sicheres Hosting<br />

Professionelles Hosting mit flexiblem,<br />

persönlichem und kompetentem<br />

Support. Für mehr Performance,<br />

Sicherheit und Verfügbarkeit, jeden<br />

Tag, rund um die Uhr.<br />

Wir bieten Hostinglösungen vom<br />

Server bis zum Clustersystem inkl.<br />

Beratung, Planung und Service 24/7.<br />

hostserver.de/hosting<br />

Managed Hosting<br />

zertifiziert nach<br />

ISO 9001 : 2008/<br />

ISO 27001:2005<br />

0 30 / 420 200 24 hostserver.de<br />

Berlin Marburg Frankfurt am Main<br />

Bitparade 01/2013<br />

Software<br />

www.linux-magazin.de<br />

45


Software<br />

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

48<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Ffmpeg 1.0<br />

Multimediadateien konvertieren<br />

Quelle: [http:// ffmpeg. org]<br />

Lizenz: LGPLv2.1, GPLv2<br />

Alternativen: Perl Audio Converter<br />

Lftp 4.4.0<br />

Leistungsfähiger FTP-Client<br />

Quelle: [http:// lftp. yar. ru]<br />

Lizenz: GPLv3<br />

Alternativen: Ncftp, Jftp<br />

Netstat-Monitor 1.1rc1<br />

Netzwerkverbindungen überwachen<br />

Quelle: [https://github.com/ stalexan/​<br />

netstat-monitor]<br />

Lizenz: AGPLv3<br />

Alternativen: Netstat, Constat<br />

Audio- und Videodateien in andere Formate<br />

umwandeln, digitales Video- und<br />

Audiomaterial aufnehmen, streamen und<br />

in Containerformate verpacken – das alles<br />

und noch viel mehr leisten die Werkzeuge<br />

des Ffmpeg-Projekts, darunter das<br />

gleichnamige Kommandozeilentool, das<br />

auch das Aufnehmen und Kodieren von<br />

TV-Karten in Echtzeit unterstützt. Zudem<br />

enthalten ist Ffserver, ein HTTP-Multimedia-<br />

und RTP-/​RTSP-Streamingserver für<br />

(Live-)Übertragungen.<br />

Kürzlich veröffentlichten die Entwickler<br />

Version 1.0, die interessante neue Features<br />

enthält. Dazu zählt der Channelsplit-Audiofilter,<br />

der es ermöglicht, Audiostreams<br />

in mehrere einzelne Streams<br />

aufzuspalten. Außerdem unterstützt das<br />

Framework nun geschützte Streamingprotokolle,<br />

unter anderem RTMPS und<br />

RTMPE. Enthalten sind auch neue Dekoder<br />

zum Einlesen verschiedener Formate,<br />

beispielsweise MS ATC Screen, Opus, Canopus<br />

oder Cpia.<br />

Filterfunktionen erweitern das Portfolio.<br />

So erkennt der Edge-Detection-Filter Kanten<br />

und zeichnet diese nach, während<br />

der Concat-Filter kurze Audiosegmente<br />

durch Einfügen von Ruhe erweitert.<br />

★★★★★ Ffmpeg ist ein wahrer Tausendsassa,<br />

die Software konvertiert alle<br />

gängigen und auch eine Reihe exotischer<br />

Formate und sollte daher auf keinem<br />

(Multimedia-)Rechner fehlen. n<br />

Der freie FTP-Client für die Konsole beherrscht<br />

neben den Standardprotokollen<br />

FTP und HTTP auch deren verschlüsselte<br />

Varianten FTPS und HTTPS, FXP, SFTP,<br />

Fish und Bittorrent. Lftp bietet sogar für<br />

alle Protokolle IPv6-Unterstützung. Über<br />

»get«- und »put«-Kommandos bewegen<br />

Anwender ihre Daten. Sämtliche Befehle<br />

dürfen sie auch in einer Warteschlange<br />

parken und damit sequenziell abarbeiten.<br />

Zudem ist es möglich, Aktionen zeitversetzt<br />

auszuführen und die Bandbreite<br />

anzupassen.<br />

Die Konfiguration des FTP-Clients findet<br />

systemweit in »/etc/lftp.conf« statt.<br />

Benutzer tragen persönliche Vorlieben<br />

in »~/.lftprc« ein oder geben sie direkt<br />

beim Aufruf über Parameter an; »set ‐a«<br />

gibt einen Überblick über alle gesetzten<br />

Optionen.<br />

Die Lftp-Entwickler veröffentlichen häufig<br />

neue Versionen, so verwundert es<br />

nicht, dass sich in den letzten Jahren<br />

sehr viel getan hat. Neben der erwähnten<br />

IPv6-Unterstützung hat der Client vor allem<br />

in Hinblick auf Bittorrent Fortschritte<br />

gemacht. Hierzu zählen Erweiterungen<br />

wie Fast, DHT, PEX oder Multitracker.<br />

★★★★★ Die Funktionsvielfalt von Lftp<br />

überzeugt auf der ganzen Linie. Wer viele<br />

Daten überträgt, der profitiert vor allem<br />

von den zahlreichen Möglichkeiten zur<br />

Verbindungsverwaltung.<br />

n<br />

Netstat-Monitor beobachtet die IP-Verbindungen<br />

auf allen Interfaces und<br />

schreibt seine Informationen auf die<br />

Standardausgabe. Diese sehen ähnlich<br />

wie bei »netstat ‐alp« aus, allerdings kann<br />

Netstat-Monitor die Anzeige aktualisieren<br />

und somit auch auf neue Verbindungen<br />

oder Statusänderungen von bestehenden<br />

hinweisen. Für den Betrieb sind Rootrechte<br />

erforderlich.<br />

Jede Zeile der Netstat-Monitor-Ausgabe<br />

beginnt mit einem Zeitstempel, gefolgt<br />

vom Protokoll und dem Account. Danach<br />

kommen Start- und Zieladresse, der aktuelle<br />

Status und das laufende Programm<br />

mit allen Parametern. Die Stärke der Python-Anwendung<br />

liegt vor allem in der<br />

Filterfunktion. Anwender definieren die<br />

Regeln in einer Konfigurationsdatei und<br />

übergeben diese beim Start.<br />

Jede Regel beschreiben Nutzer in einer<br />

eigenen Sektion, die mit einem eindeutigen<br />

Namen in eckigen Klammern<br />

beginnt. Bis zu zehn Parameter filtern<br />

nach Programmnamen, PID, Benutzer,<br />

Aufrufoptionen, Hostadressen, Ports und<br />

Verbindungsstatus. Die Quellen von Netstat-Monitor<br />

bieten vordefinierte Filter.<br />

★★★★★ Netstat-Monitor beobachtet<br />

Verbindungen und beschränkt sich dank<br />

der Filter auf jene Daten, die der Anwender<br />

wirklich sucht.<br />

n


Alle AusgAben der letzten 12 MonAte<br />

Sie haben ein admin verpaSSt? Kein problem!<br />

bei uns können Sie alle ausgaben des admin magazin<br />

der letzten 12 monate ganz einfach und versandkostenfrei<br />

unter www.admin-magazin.de/einzelheft nachbestellen:<br />

admin 01/2012 admin 02/2012 admin 03/2012<br />

admin 04/2012 admin 05/2012 admin 06/2012<br />

damit Sie keine ausgabe mehr verpassen,<br />

bestellen Sie am besten gleich ein abo<br />

vom admin magazin und sparen:<br />

Telefonisch unter: 07131 / 2707 274,<br />

per Fax: 07131 / 2707 78 601 oder<br />

E-Mail: abo@admin-magazin.de,<br />

Web: www.admin-magazin.de/abo


Software<br />

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

50<br />

Httppp 1.4.0<br />

HTTP-Verbindungen analysieren<br />

Quelle: [http:// httppp. g76r. eu]<br />

Lizenz: AGPLv3<br />

Alternativen: Wireshark<br />

Ncdu 1.9<br />

Disk Usage im Ncurses-Outfit<br />

Quelle: [http:// dev. yorhel. nl/ ncdu]<br />

Lizenz: MIT/​X<br />

Alternativen: Du, Di<br />

Prezi <strong>Play</strong>er 1.0<br />

Prezi-Präsentationen offline<br />

Quelle: [https:// github. com/​<br />

TomFreudenberg/ preziplayer]<br />

Lizenz: GPL<br />

Alternativen: keine<br />

Verbindungen im Netzwerk mitschneiden<br />

ist schnell erledigt. Zeitaufwändig<br />

gestaltet sich eher die anschließende<br />

Analyse der erfassten Daten. Speziell für<br />

HTTP-Verbindungen empfiehlt sich daher<br />

Httppp (HTTP Passive Probe). Bei der<br />

Analyse der Ergebnisse beachtet das Tool<br />

vor allem die Antwortzeiten von Anfragen,<br />

Statistiken erstellt es nicht.<br />

Httppp begutachtet Mitschnitte im Libpcap-Format,<br />

wie beispielsweise Tcpdump<br />

oder Wireshark sie liefern. Das<br />

Tool filtert alle HTTP-Pakete heraus und<br />

ordnet den Anfragen die Antwortpakete<br />

zu. Außer den Standardinformationen<br />

wie Hostname, IP-Adresse und Returncode<br />

ermittelt es die Reaktionszeiten eines<br />

Servers. Im GUI navigieren Benutzer<br />

anschließend bequem durch die aufgezeichneten<br />

HTTP-Verbindungen und<br />

können die Paketdetails betrachten. Diese<br />

geben Aufschluss über die Start- und Zieladresse<br />

sowie die zugehörigen Ports und<br />

verraten, wann jeweils das erste und das<br />

letzte Byte übertragen wurde.<br />

In drei frei definierbaren Feldern zeigen<br />

Anwender weitere Daten wie etwa<br />

Referer-Informationen, SOAP-Aktionen,<br />

»POST«- oder »GET«-Statements an. Was<br />

hier genau auftaucht, steuern reguläre<br />

Ausdrücke. Beispiele und Anschauungsmaterial<br />

liefert die Projekthomepage. Zusätzlich<br />

legen Benutzer über die kleinen<br />

Pfeile neben den Feldern fest, ob der<br />

Ausdruck für empfangene oder gesendete<br />

Pakete gelten soll. Fertige Tabellen exportiert<br />

Httppp ins CSV-Format.<br />

★★★★★ Das Tool ist gut geeignet, um<br />

HTTP-Verbindungen zu analysieren. Die<br />

Oberfläche präsentiert sich übersichtlich<br />

und intuitiv gestaltet.<br />

n<br />

Um den Platzverbrauch von Dateien und<br />

Verzeichnissen auf der Konsole zu ermitteln,<br />

ist Disk Usage das Werkzeug der<br />

Wahl. Etwas mehr Komfort und Übersicht<br />

bietet allerdings Ncdu. In der Ncurses-<br />

Oberfläche navigieren Nutzer durch den<br />

Verzeichnisbaum, sortieren die Anzeige<br />

nach ihrem Geschmack und speichern<br />

die Ergebnisse sogar ab.<br />

Ohne Parameter aufgerufen berechnet<br />

das Programm den Bedarf des aktuellen<br />

Verzeichnisses samt Unterordnern. In<br />

der Voreinstellung erscheinen die größten<br />

Objekte ganz oben. Wer möchte,<br />

der kann die Sortierreihenfolge umkehren<br />

oder Inhalte alphabetisch anordnen.<br />

Eine Prozentangabe und eine Art Balken<br />

aus Rautezeichen weisen darauf hin, wo<br />

die speicherhungrigsten Komponenten<br />

liegen. Eine Aktualisierung der Anzeige<br />

ist derzeit nicht möglich. Die Navigation<br />

zu Unterverzeichnissen erfolgt über die<br />

vom Editor Vi gewohnten Tastenkombinationen.<br />

Die aktuelle Ncdu-Version unterstützt<br />

erstmalig das Abspeichern der aktuellen<br />

Zustände. Die so entstandenen Dateien<br />

dürfen Anwender jederzeit wieder mit<br />

dem Tool öffnen und damit vergangene<br />

Belegungen nachvollziehen. Das Feature<br />

bietet sich geradezu an, um mit Cron<br />

zusammen regelmäßig den Speicherverbrauch<br />

auf Servern zu protokollieren.<br />

Eine verbesserte Erkennung von Hardlinks<br />

haben die Entwickler ebenfalls<br />

implementiert. Das Werkzeug berechnet<br />

nun deren Platzbedarf korrekt und kennzeichnet<br />

sie mit einem »H«.<br />

★★★★★ Ncdu zeigt übersichtlich und<br />

strukturiert den Platzbedarf von Dateien<br />

und Verzeichnissen an. Gut gefällt vor<br />

allem die neue Speicherfunktion. n<br />

Das Präsentationstool Prezi läuft als<br />

Webanwendung im Browser und nutzt<br />

dazu die Flash-Technologie. Was aber,<br />

wenn beim Vortrag die Internetverbindung<br />

fehlt? Das Shellskript Prezi <strong>Play</strong>er<br />

schafft Abhilfe und erlaubt es Anwendern,<br />

ihre Präsentationen offline zu halten.<br />

Nach dem Start erfragt ein Dialogfenster<br />

den Ort der Präsentationsdatei,<br />

entpackt diese danach in einem temporären<br />

Verzeichnis und startet den Miniwebserver<br />

Weborf.<br />

Das folgende Auswahlmenü bietet dem<br />

Benutzer an, den Vortrag im Browser<br />

über den lokalen Webserver zu öffnen<br />

oder die gezippte Präsentationsdatei zu<br />

verkleinern beziehungsweise ein Archiv<br />

für die eigene Webseite zu erstellen. Beim<br />

Verkleinern entfernt das Werkzeug Ballast<br />

wie die ausführbare Windows-Datei<br />

»prezi.exe«, das Verzeichnis »MacOS« und<br />

so weiter. Auch eine Sicherungskopie des<br />

Originalinhalts legt Prezi <strong>Play</strong>er an. Die<br />

Präsentation läuft im Standardbrowser<br />

unter »localhost:12345«.<br />

Der <strong>Play</strong>er selbst besitzt kaum Abhängigkeiten.<br />

Außer dem erwähnten Webserver<br />

benötigt das Tool lediglich Zenity<br />

zum Erzeugen der Dialogfenster sowie<br />

Zip/​Unzip, um mit den Prezi-Archiven<br />

umzugehen. Wer Zip-Archive für die eigene<br />

Webseite bauen möchte, der sollte<br />

außerdem die Gettext-Bibliothek installieren.<br />

Alle genannten Bestandteile gehören<br />

zum Standardumfang der meisten<br />

Distributionen.<br />

★★★★★ Prezi-Vorträge ganz ohne Internetverbindung<br />

– das erlaubt dieses praktische<br />

Werkzeug. So greifen Anwender<br />

auf die beliebte Cloudsoftware jederzeit<br />

und überall zu. (U. Vollbracht/​hej) n


Aus dem Alltag eines Sysadmin: Di<br />

Di gehört dazu<br />

Einführung 01/2013<br />

Sysadmin<br />

Je häufiger Unix-Leute ein Kommando gebrauchen, desto weniger Buchstaben sollte es haben. Tatsächlich<br />

fließen »ls«, »mv«, »df«, »cp«, »ps«, »du«, »ln« und Co. wie von allein aus den Fingern. Sysadmin-Kolumnist<br />

Charly zieht einen bislang wenig bekannten Vertreter des Zwei-Tasten-Genres aus dem Hut: »di«. Charly Kühnast<br />

www.linux-magazin.de<br />

51<br />

Inhalt<br />

52 Mailarchivierung im Vergleich<br />

Fünf Softwarelösungen und eine<br />

Appliance wollen dem Admin helfen,<br />

E-Mails effizient und rechtssicher zu<br />

archivieren.<br />

62 Notebooks verschlüsseln<br />

Ein Workshop erklärt anhand einer Gentoo-Installation,<br />

wie man mit Luks und<br />

ZFS ein System als Ganzes verschlüsselt.<br />

66 Crowbar<br />

Die Firma Dell verspricht Server auf<br />

echter Hardware schneller aufzusetzen<br />

als je zuvor.<br />

Fairerweise muss ich einräumen, dass<br />

viele der Zwei-Buchstaben-Kommandos<br />

ihre kompakte Körpergröße durch eine<br />

atemberaubende Anzahl möglicher Parameter<br />

zu kompensieren versuchen. Hier<br />

macht das diesmal vorgestellte Tool Di<br />

[1] keine Ausnahme. Der Name steht für<br />

„Disk Information“ – also eine Art »df«<br />

auf Steroiden. Di liefert wie sein Vorbild<br />

Informationen über Dateisysteme,<br />

ist aber wesentlich detailversessener.<br />

Außerdem lässt sich die Ausgabe viel<br />

besser filtern.<br />

Die Abbildung 1 demonstriert die Ausgabe<br />

von »di ‐a«, eine Auflistung aller eingehängten<br />

Dateisysteme. Mit dabei sind<br />

auch die Filesysteme, die nicht physisch<br />

vorhanden sind, sondern die der Kernel<br />

in den Verzeichnisbaum halluziniert. Mit<br />

dem Parameter »‐x« kann ich Dateisysteme<br />

bestimmen, die Di ausblenden soll:<br />

»di ‐a ‐x proc« unterdrückt<br />

die Auflisting des »/proc«-<br />

Eintrags. Durch ein Komma<br />

getrennt, kann ich auch mehrere<br />

Dateisysteme angeben:<br />

di ‐a ‐x proc,tmpfs,fuse<br />

Abbildung 2: Der Parameter »‐x« hilft Dateisystem-Arten gezielt von der<br />

Anzeige auszuschließen.<br />

Di ist schlau genug, »fuse«<br />

als »fuse*« zu interpretieren.<br />

Mein unter »/sys/fs/fuse/<br />

co« eingehängtes Dateisystem<br />

vom Typ »fusectl« ist in<br />

Abbildung 2 darum gleich mit suspendiert.<br />

Umgekehrt geht es auch: Mit dem<br />

Parameter »‐I ext4« kann ich angeben,<br />

dass sich Di ausschließlich Ext4-Dateisysteme<br />

vornimmt. Auch funktioniert<br />

eine per Komma getrennte Liste, etwa »‐I<br />

ext3,vfat,proc«.<br />

Maschinen als Leser<br />

Ein anderes Beispiel: »di ‐dH ‐I ext4« zeigt<br />

die Basisinformationen für meine (einzige)<br />

Ext4-Partition an:<br />

Filesystem Mount Size Used AvailU<br />

%Used fs Type<br />

/dev/sda6 / 141.9G 19.9G 114.8GU<br />

19% ext4<br />

Von diesen Informationen interessiert<br />

mich nur der prozentuale Füllstand des<br />

Filesystems, hier 19 Prozent. Das gelingt<br />

mit dem Parameter »‐f« und ist besonders<br />

sinnvoll, wenn ich die Ausgabe in einem<br />

Skript weiterverarbeiten möchte. Also<br />

ändere den Aufruf von<br />

eben leicht ab:<br />

di ‐dH ‐I ext4 ‐n ‐f p<br />

Zurück kommt ein<br />

hübsch kompaktes<br />

»19%«. Der Parameter<br />

»‐n« unterdrückt<br />

Abbildung 1: Das Kommando »di ‐a« zeigt alle Dateisysteme inklusive<br />

der Pseudo-Filesysteme des Kernels an.<br />

die Zeile mit den Überschriften, mit<br />

»‐f p« reduziere ich die Ausgabe auf den<br />

prozentualen Wert. Hätte ich das »p« als<br />

Großbuchstaben geschrieben, bekäme<br />

ich übrigens den prozentualen Anteil<br />

freier Inodes angezeigt.<br />

Um Werte einfach weiterzuverarbeiten,<br />

eignet sich auch eine durch Komma getrennte<br />

Liste. Di weiß dies und schaltet<br />

mit einem anhängten »‐c« in einen CSV-<br />

Modus. Wenn ich »di ‐dH ‐I ext4 ‐n ‐c«<br />

eintippe, antwortet das Tool mit<br />

/dev/sda6,/,"141.9G","19.9G","114.8G",19%,U<br />

ext4<br />

Ich gebe zu, komplexere Di-Anfragen erzeugen<br />

recht schnell den Eindruck, die<br />

Katze sei über die Tastatur gerollt. Aber<br />

das ist bei den anderen Zwei-Buchstaben-<br />

Tools auch nicht anders. (jk) n<br />

Infos<br />

[1] Di: [http:// freecode. com/ projects/ diskinf]<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.


Sysadmin<br />

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

52<br />

Sichere und rechtskonforme Mailarchivierung<br />

Ordentlich verstaut<br />

Wenn die Finanzbeamten zur Buchprüfung anrücken, kann froh sein, wer seine E-Mail-Kommunikation effizient<br />

und rechtssicher archiviert. Spezielle Lösungen helfen dem Admin dabei. Dieser Artikel vergleicht fünf Softwarelösungen<br />

und eine Appliance, die auf freier Software aufbauen. Andrej Radonic<br />

© Andrey Kuzmin , 123RF.com<br />

Suche schnell auffindbar und sorgen für<br />

revisionssichere Ablage der Daten – und<br />

versprechen, sich auch an die Gesetzesvorgaben<br />

(siehe Kasten „Juristische<br />

Rahmenbedingungen für elektronische<br />

Archivierung“) zu halten.<br />

Idealerweise fügen sie sich dabei nahtlos<br />

in das Unternehmensnetzwerk ein,<br />

verstehen sich mit allen gängigen Mailservern,<br />

bieten Webzugriff, gestufte<br />

Berechtigungen und können alle Daten<br />

transparent auf gängigen Speichermedien<br />

oder sogar in spezialisierten Archivsystemen<br />

ablegen. Dabei hat der Betreiber<br />

günstigstenfalls auch die Wahl der Infrastruktur,<br />

also beispielsweise zwischen<br />

privater Cloud oder gehosteter Lösung.<br />

Verschiedene Ansätze<br />

Handelsbriefe: So stuft der Gesetzgeber<br />

mindestens einen großen Teil der E-Mail-<br />

Kommunikation ein und sorgt damit für<br />

reichlich lästige Regelungen im Unternehmen.<br />

Da greifen dann Handels- und Steuerrecht<br />

und verpflichten Unternehmen,<br />

die Kommunikation für mindestens zehn<br />

Jahre vollständig digital zu archivieren<br />

– und zwar ein- und ausgehende Mails<br />

(siehe Kasten „Rechtsgrundlagen“).<br />

Ungeahnte Tiefen<br />

Doch das bringt neben organisatorischen<br />

auch einige technische Hürden in die<br />

Firma: Viele Mails schlummern in lokalen<br />

Postfächern der User. Sind die unstrukturiert<br />

abgelegt, lassen sich relevante und<br />

nicht relevante Mails nicht ohne Weiteres<br />

unterscheiden – im schlimmsten Fall ist<br />

Handarbeit notwendig. Damit aber sind<br />

die Anforderungen an eine digitale Betriebsprüfung<br />

schon nicht mehr erfüllt.<br />

Die täglich eingehende Spam-Flut erschwert<br />

das Aussortieren zusätzlich und<br />

bläht die Datenmengen auf.<br />

Ein technisches Problem stellt die vom<br />

Gesetzgeber geforderte Revisionssicherheit<br />

dar. Diese besagt im Wesentlichen,<br />

dass ein elektronisches Dokument nicht<br />

mehr verändert werden darf. Somit muss<br />

sich verhindern lassen, dass selbst der<br />

allmächtige Root-Benutzer bewusst oder<br />

unbewusst Manipulationen vornehmen<br />

kann. Ein probates Mittel dazu liefern<br />

Kryptographie und Signaturen.<br />

Die Hersteller moderner Archivierungssoftware<br />

für E-Mails haben diese Probleme<br />

erkannt und treiben einigen<br />

Aufwand, um mit ihren Lösungen die<br />

typischen Aufgaben und Probleme zu adressieren<br />

(Tabelle 1). Sie kümmern sich<br />

um das automatisierte dauerhafte Speichern,<br />

machen die Inhalte per zentraler<br />

Die Philosophien der Hersteller sind sehr<br />

unterschiedlich: Reinen Standalone-Lösungen<br />

stehen um Mail-Archivierungsfunktionen<br />

erweiterte Dokumentenmanagement-Systeme<br />

gegenüber (etwa Agorum<br />

Core [1] oder Inovox/​Alfresco [2]),<br />

teilweise existieren auf einzelne Mail- und<br />

Rechtsgrundlagen<br />

Revisionssichere E-Mail-Archivierung regeln:<br />

n Handelsgesetzbuch §§ 238, 239, 257<br />

n Abgabenordnung (AO) § 147<br />

n Grundsätze zum Datenzugriff und zur<br />

Prüfbarkeit digitaler Unterlagen (GDPdU)<br />

n Grundsätze ordnungsgemäßer DV-gestützter<br />

Speicherbuchführung (GoBS)<br />

n Umsatzsteuergesetz (UStG)<br />

n Bundes- und Landesdatenschutzgesetze<br />

(BDSG, LDSG)<br />

n Signaturgesetz § 15<br />

n Gesetz zur Kontrolle und Transparenz im<br />

Unternehmen (KonTraG)<br />

n Sarbanes Oxley Act (SOX)<br />

n Basel-II-Richtlinie


Groupwareserver spezialisierte Lösungen<br />

wie für Microsoft Exchange, Zimbra, Kerio<br />

und Zarafa – und natürlich die großen<br />

Archivierungslösungen für alle Zwecke,<br />

die nebenbei auch E-Mails archivieren,<br />

etwa Openarchive [3].<br />

Bei den fünf in diesem Artikel betrachteten<br />

Lösungen (zwei verbreitete, zwei<br />

Newcomer und eine Appliance) ist die<br />

grundlegende Arbeitsweise immer recht<br />

ähnlich (Abbildung 1): E-Mails gelangen<br />

entweder aktiv zum Archiv (per SMTP<br />

übermittelt) oder das Archivsystem ruft<br />

sie aus Quellen ab, zum Beispiel aus dem<br />

Mailstore des E-Mail- oder Groupware-<br />

Servers.<br />

Das gelingt meist durch den POP3- oder<br />

IMAP-Abruf einer Sammel- oder mit Journaling-Mailboxen.<br />

Die Mails landen dabei<br />

dauerhaft samt Anhängen entweder im<br />

Dateisystem des Archivs oder in einer<br />

Datenbank. Tabelle 1 zeigt die Features<br />

der fünf Kandidaten Benno Mailarchiv,<br />

Mailarchiva, Enkive, Piler und Heinlein<br />

Elements Mail-Archiv.<br />

Systeme, die eher aus der DMS-Schiene<br />

kommen, integrieren Mailclients und erlauben<br />

es dem User, Mails selektiv per<br />

Knopfdruck in das Archiv zu übertragen<br />

(wie zum Beispiel in Zarafas Web-App).<br />

Alle Systeme lassen sich per Webclient<br />

administrieren und für Audits nutzen,<br />

wofür sie ein entsprechendes Rechtemanagement<br />

mitbringen.<br />

Juristische Rahmenbedingungen<br />

für die elektronische Archivierung<br />

Automatisierungszwecke.<br />

Das Management<br />

der Benutzerrechte für<br />

das in Abbildung 4<br />

dargestellte Web-GUI<br />

erledigt LDAP oder<br />

ein Active-Directory-<br />

Connector.<br />

Für Cloud-Fans ist ab<br />

der jüngst erschienenen<br />

Version 2.0 zun<br />

Originäre elektronische Daten müssen<br />

elektronisch archiviert werden<br />

n Keine Speicherung in Papierform (nicht<br />

als Ausdruck)<br />

n Elektronisch auswertbare Daten müssen<br />

elektronisch auswertbar bleiben<br />

n Anhänge müssen erhalten bleiben, und<br />

zwar im originären Format (beispielsweise<br />

als Excel-Tabelle)<br />

n Keine Formatkonvertierung<br />

n Ein nachträglicher Verlust der Daten muss<br />

unmöglich sein<br />

n Keine nachträgliche (unbemerkte) Veränderung<br />

der Daten<br />

n Datenveränderungen müssen rückgängig<br />

zu machen sein (Versionierung)<br />

n Daten müssen in angemessener Zeit verfügbar<br />

gemacht werden können<br />

n Migration auf neue Speichertechnologien<br />

muss möglich sein<br />

n Der Speicher muss dem Wachstum dauerhaft<br />

gewachsen sein<br />

Die angegebenen Systeme<br />

behaupten zwar<br />

SMTP-Server<br />

von sich, revisionssicher<br />

und gesetzeskonform<br />

gestrickt zu<br />

sein. Da nur ein Teil<br />

aus dem deutschen<br />

Rechtsraum stammt,<br />

ist vor allem bei den<br />

Produkten ausländischer Herkunft allerdings<br />

Vorsicht angebracht.<br />

E (Open) Benno Mailarchiv<br />

Benno ist Open Source, aber auch dual<br />

lizenziert. Das heißt: Es ist sowohl als<br />

freie Community-Edition Open Benno<br />

Mailarchiv, aber auch als kommerziell<br />

lizenzierte Version Benno Mailarchiv [4]<br />

erhältlich. Während die beiden Versionen<br />

erfreulicherweise datenkompatibel<br />

sind, bleibt die streng gesetzeskonforme<br />

E-Mail-Archivierung gemäß GDPdU der<br />

kommerziellen Variante vorbehalten.<br />

Ebenso sind Herstellersupport, Softwarepflege<br />

und begleitende Dienstleistungen<br />

nur für die kommerzielle Variante<br />

verfügbar.<br />

Das Benno-System versteht sich als Komplettpaket<br />

(Abbildung 2) und bevorzugt<br />

offene Standards. Für das Einsammeln<br />

der Mails nutzt es SMTP, POP3 oder<br />

Benno Core<br />

(Backend)<br />

Ablage<br />

Indexierung<br />

SMTP-Server<br />

Logging und<br />

Integrität<br />

Admintools<br />

J2SE<br />

Index<br />

Mailstore<br />

Attachments<br />

Webclient<br />

Suche<br />

Audit<br />

Abbildung 1: Aktiv oder passiv? In der Regel können die Mailarchivare<br />

sowohl Mails per SMTP annehmen (aktiv) als auch abfragen (passiv).<br />

Index<br />

Repository<br />

User-DB<br />

IMAP, sodass eine Integration mit allen<br />

verbreiteten Mailservern möglich ist (Abbildung<br />

3). Vorhandene oder ältere Mailbestände<br />

lassen sich direkt importieren,<br />

etwa aus dem Maildir-Format.<br />

Benno legt die Maildaten in Containern<br />

direkt im Dateisystem ab, der Administrator<br />

kann das Archiv in Storage-Container<br />

aufteilen, etwa nach Jahren oder<br />

Domains. Eine Verschlüsselung der Daten<br />

ist nicht vorgesehen, der Hersteller<br />

verweist nur auf verschlüsselte Dateisysteme.<br />

Handarbeit ist gefragt.<br />

Benno nimmt eine Volltextindexierung<br />

der E-Mails nebst Anlagen vor und setzt<br />

bei der Suche auf das bewährte Apache-<br />

Gespann aus Solr und Tika, sodass Anhänge<br />

in vielen Formaten (PDF, MS Office<br />

inklusive Office 2007, Open Office und<br />

andere) zügig durchsucht sind.<br />

Weil Benno wie viele Vertreter seiner<br />

Zunft auf Java setzt, liefert Tomcat die<br />

Weboberfläche aus. Ein CLI komplettiert<br />

die Administration für<br />

Benno Search<br />

(Frontend)<br />

Webclient<br />

REST-Schnittstelle<br />

Benutzerverwaltung<br />

J2EE/Spring<br />

Abbildung 2: Benno Mailarchiv ist ein Komplettpaket für Mailarchivierung<br />

und liegt in zwei Versionen vor, einer freien und einer kommerziellen.<br />

Internet<br />

MTA<br />

(Postfix, Exchange,<br />

Exim, ...)<br />

Intranet<br />

Sammelmailbox<br />

oder Journaling-<br />

Mailboxen<br />

Fetchmail<br />

Benno-SMTP<br />

Archiv<br />

Abbildung 3: Ein typisches Setup für Bennos Archiv: Der gesamte Mailverkehr wird in einer separaten Mailbox<br />

gespeichert und von Benno dort abgerufen.<br />

Mailarchivierung 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

53


Sysadmin<br />

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

54<br />

sätzlich eine Hosted Edition verfügbar,<br />

mit der sich in einer einzigen Serverumgebung<br />

viele Kundenarchive parallel<br />

betreiben lassen. Die modulare Systemarchitektur<br />

gestattet es sogar, die Kernkomponenten<br />

auf verschiedene Rechner<br />

zu verteilen.<br />

Die Installation ist einfach, Benno stellt<br />

keine großen Anforderungen an die tech-<br />

nische Basis: Java und Python müssen<br />

ebenso an Bord sein wie Tomcat, für den<br />

Betrieb des Mailarchiv-Frontends zudem<br />

PHP 5, Smarty-Templates sowie ein Apache-2-Webserver.<br />

Dann reichen das Anlegen<br />

eines »benno«-Users und das Installieren<br />

der ».jar«-Dateien. Für die kommerzielle<br />

Variante steht sogar ein Repository<br />

(Debian, Ubuntu und UCS) bereit.<br />

Der Zugriff auf die Weboberfläche erfolgt<br />

über die URL [http:// localhost:8180/​<br />

bennosearch], wo das GUI dem Admin<br />

komfortable Konfigurationsmöglichkeiten<br />

sowie ein leistungsfähiges, einfach<br />

zu bedienendes System für die Suche in<br />

den Archivdaten bietet.<br />

Benno präsentiert sich als ambitioniertes<br />

Komplettsystem auf Basis offener<br />

Tabelle 1: Fünf Produkte zur Mailarchivierung im Vergleich<br />

1<br />

= nur Community Edition<br />

2<br />

= nur kommerzielle Versionen<br />

(Open) Benno Mailarchiv Mailarchiva Enkive Piler Heinlein Elements Mail-Archiv<br />

Basis<br />

Version 2.0 v3 1.1 0.1.20 2.1<br />

Varianten<br />

Community Edition, kommerzielle<br />

Version<br />

Open Source Edition,<br />

Enterprise Edition<br />

Community<br />

Edition<br />

Open Source<br />

Edition<br />

kommerzielle Version<br />

SaaS-Modell<br />

Betriebssysteme<br />

über Partner, Hosting<br />

Edition<br />

Debian, Ubuntu, SLES,<br />

RHEL, UCS<br />

Hosting Edition<br />

Windows, <strong>Linux</strong>, BSD,<br />

Solaris, OS X<br />

Cloud Edition<br />

(geplant für 2013)<br />

<strong>Linux</strong><br />

nein<br />

<strong>Linux</strong>, BSD,<br />

Solaris<br />

nein<br />

Appliance (VM oder Hardware)<br />

Lizenz GPL 1 GPL AGPL GPL Heinlein Support<br />

Mailserver<br />

Postfix, Exim, Sendmail,<br />

Qmail<br />

ja ja ja, jeder SMTP-<br />

Server<br />

ja, jeder SMTP-<br />

Server<br />

Microsoft Exchange ja 2000, ​2003, ​2007, ​2010 2007, 2010 unbekannt ja<br />

Google nein ja 2 nein nein nein<br />

Archivierung<br />

Mail-Standards<br />

POP3, IMAP, SMTP, Maildir,<br />

Milter<br />

POP3, IMAP, SMTP, Maildir,<br />

Milter<br />

SMTP, Maildir<br />

POP3, IMAP, SMTP,<br />

Maildir, Milter<br />

ja, jeder SMTP-Server<br />

POP3, IMAP, SMTP<br />

Archivierungsregeln nein ja ja ja ja<br />

Aufbewahrungsregeln nein ja 2 ja ja geplant<br />

Verschlüsselung nein AES-256 nein Blowfish ja (Fraunhofer)<br />

Nachweis Unverändertheit<br />

Prüfsummen und Log Signatur 2 nein Signatur kryptographisch signierte<br />

Zeitstempel nach Signaturgesetz<br />

Kompression Bzip Zip nein Zlib nein<br />

Import POP3, IMAP, Maildir Maildir, PST, EML, MSG,<br />

Exchange, Google<br />

Maildir, Filedir,<br />

Mbox<br />

EML, Mailbox,<br />

PST<br />

POP3, IMAP, Maildir, Mbox,<br />

PST und weitere, konvertiert<br />

per SMTP-Stream<br />

Export EML EML, PDF 2 Mbox EML EML, Maildir, Mbox, SQL-<br />

Dump<br />

Cluster-Suche nein ja 2 ja nein ja<br />

Mandantenfähig Hosting Edition ja 2 ja nein nein<br />

Deduplizierung ja, Mails und Anhänge ja, Mails und Anhänge 2 ja, Mails und Anhänge<br />

ja, Mails und<br />

Anhänge<br />

CLI ja ja 2 nein ja nein<br />

Client/​Suche<br />

Webclient Ajax Ajax ja ja ja<br />

Volltextsuche ja ja ja ja ja<br />

Mehrsprachige Suche ja ja nein ja nein<br />

Weiterleitung ja ja nein ja ja<br />

Suche in Anhängen<br />

Word, PPT, Excel, PDF,<br />

RTF, Open Office, Zip,<br />

Gzip, Bzip2, Tar, Cpio,<br />

Ar, Metadaten aus Jpeg,<br />

Flash, MP3<br />

Word, PPT, Excel, PDF,<br />

RTF, Zip, Tar, Gz, Open<br />

Office<br />

TXT, Word, PDF,<br />

PPT<br />

Word, PPT,<br />

Excel, PDF, RTF,<br />

Zip, Tar, Gz,<br />

Open Office<br />

nein<br />

nein (geplant)<br />

Berechtigungen ja ja 2 nein ja ja, auf Domain- und ​<br />

Account ebene<br />

Audits ja ja ja ja ja


Software in Verbindung mit optionalem<br />

Herstellersupport. Für viele Zwecke mag<br />

auch die Community-Edition Open Benno<br />

ihren Zweck erfüllen, leider erschwert die<br />

fehlende Dokumentation den Umgang<br />

damit, der interessierte Admin muss sich<br />

mit diversen FAQs behelfen [4].<br />

E Mailarchiva<br />

Mailarchiva ist ein umfassendes Archivierungssystem<br />

(Abbildung 5), das speziell<br />

auf größere Umgebungen mit vielen<br />

Mailboxen ausgerichtet ist und mit guten<br />

Skalierungsfähigkeiten wirbt. Dies gilt vor<br />

allem für die voll supportete Bezahlversion,<br />

zu der sich die deutlich abgespeckte<br />

Open Source Edition gesellt.<br />

Eine der Besonderheiten von Mailarchiva<br />

[6] ist die umfassende Unterstützung für<br />

MS Exchange, die sich aber – wie viele<br />

andere fortgeschrittene Features – nur<br />

in der Enterprise-Version findet: Mailarchiva<br />

arbeitet nativ mit allen Exchange-<br />

Abbildung 4: Benno Mailarchiv ermöglicht eine effiziente und schnelle Suche.<br />

Versionen sowie multiplen Exchange-<br />

Stores. Outlook-Nutzer können auf das<br />

Archiv mit einem <strong>Plug</strong>in direkt aus dem<br />

Mailclient heraus zugreifen. Aber auch<br />

jenseits von Microsoft kontaktiert Mailarchiva<br />

viele gängige Mailserver wie<br />

Postfix, Sendmail, Qmail, I-Mail, Lotus<br />

Notes, Axigen, Communigate, Neon Insight,<br />

Zimbra, aber auch Google.<br />

Diverse Importoptionen aus Maildir, PST,<br />

EML, MSG, Exchange und Google-Formaten<br />

füllen die Archive. Die Maildaten legt<br />

die Software komprimiert im Dateisystem<br />

ab und verschlüsselt sie außerdem mit<br />

Mailarchivierung 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

55<br />

Tabelle 1: Fünf Produkte zur Mailarchivierung im Vergleich (Fortsetzung) 1 = nur Community Edition 2 = nur kommerzielle Versionen<br />

(Open) Benno Mailarchiv Mailarchiva Enkive Piler Heinlein Elements Mail-Archiv<br />

Integration, Anpassung<br />

Authentisierung<br />

Web-GUI<br />

LDAP, MS AD, Univention<br />

Corporate Server (UCS),<br />

Novell E-Directory<br />

LDAP, MS AD, NTLM,<br />

Google, I-Mail<br />

Storage Dateisystem Dateisystem Datenbank<br />

(Mongo DB)<br />

Lokalisierung Deutsch Deutsch, Englisch,<br />

Portugiesisch, Tschechisch,<br />

Chinesisch,<br />

Griechisch, Französisch,<br />

Niederländisch,<br />

Russisch, Japanisch,<br />

Koreanisch, Thai<br />

APIs<br />

REST, XML, Webservice-<br />

API mit Json-Unterstützung<br />

LDAP LDAP, MS AD LDAP, MS AD, lokale Datenbank,<br />

XML-API, Univention<br />

Corporate Server (UCS),<br />

Novell E-Directory<br />

Englisch<br />

Dateisystem<br />

Ungarisch, Englisch<br />

Webservices nein nein XML-API<br />

MySQL, PostgreSQL, Oracle<br />

(lokaler oder externer DB-<br />

Server)<br />

Deutsch, andere auf Anfrage<br />

Virenscanner nein nein nein Clam AV ja, inkl. Antispam<br />

Backup nein ja 2 nein ja Konfiguration ja, Archiv-DB<br />

per SQL-Dump<br />

Themes/​Skins nein ja 2 nein ja nein<br />

Preise<br />

Lizenzen 120 Euro pro Jahr inkl. 5<br />

Mailboxen (Small Business<br />

Edition); 18 Euro<br />

pro Mailbox und Jahr bei<br />

20 Mailboxen (Standard<br />

Edition)<br />

Support<br />

Software-Maintenance<br />

im ersten Jahr inklusive,<br />

für Folgejahre separat<br />

buchbar<br />

1200 Euro für 50 Mailboxen<br />

18 Euro pro Jahr und<br />

Mailbox-Lizenz<br />

kostenfrei kostenfrei ab 3600 Euro einmaliger<br />

Kaufpreis zur zeitlich unbeschränkten<br />

Nutzung, inkl.<br />

25 User-Lizenzen<br />

ab 500 US-$ pro<br />

Jahr je nach Anzahl<br />

Mailboxen<br />

nicht verfügbar<br />

Standard-Support: Maintenance<br />

für alle Updates und<br />

Telefon/​Mail-Support, Enterprise-Support<br />

mit 24/​7 bei 2<br />

Stunden Reaktionszeit


Sysadmin<br />

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

56<br />

Microsoft<br />

Exchange<br />

Andere Mailserver<br />

Microsoft Exchange<br />

als Mailserver<br />

GUI mit den weitreichenden Optionen<br />

der Mailbeschaffung für den Archivierungsvorgang<br />

zu beschäftigen.<br />

Mailarchiva macht einen kompletten und<br />

ausgereiften Eindruck. Deutscher Herstellersupport<br />

ist gegeben, der kostenfreie<br />

Einstieg dürfte auch über die Community<br />

Edition gut gelingen.<br />

E Enkive<br />

Active Directory<br />

LDAP<br />

Kerberos/NTLM v2/LDAP<br />

Exchange-Web-Dev- und<br />

Webservices-Import<br />

SMTP-Journaling<br />

IMAP-Journaling<br />

Enkive ist ein junges Projekt mit erst<br />

einer Major Release und ausschließlich<br />

als Open-Source-Community-Edition<br />

verfügbar. Immerhin gibt es optionalen<br />

Herstellersupport [7]. Waren die Vorversionen<br />

noch auf Alfresco DMS aufgebaut,<br />

wählten die Entwickler für die aktuelle<br />

Release ein deutlich schlankeres Java-<br />

Fundament. Enkive legt das Archiv in<br />

einer Mongo DB an und setzt auf Indri<br />

Administrator<br />

Administration<br />

via Webinterface<br />

Mailarchiva-Server<br />

Auditor<br />

Archivsuche via<br />

Webinterface oder Outlook<br />

Milter<br />

Sendmail, Postfix<br />

Abbildung 5: Mailarchiva integriert sich auch in komplexere Unternehmensnetzwerke.<br />

Audit Archive<br />

Fibre Channel<br />

End-User<br />

SAN<br />

NAS<br />

Backup-Server<br />

AES. Im Volltextindex landen auch die<br />

Inhalte der Anhänge, Formate wie PDF,<br />

Word, Excel, Powerpoint und Open Office<br />

inklusive.<br />

Das Web-GUI (Abbildung 6) bietet neben<br />

der üblichen Suchtechnik für Audits viel<br />

Komfort: Der Administrator kann hier<br />

alle wichtigen Systemparameter konfigurieren,<br />

Regeln für Archivierung und Aufbewahrung<br />

definieren, Zertifikate verwalten<br />

und das integrierte Backup anwerfen.<br />

Der Funktionsumfang reicht bis hin zum<br />

eingebauten Monitoring, das Daten im<br />

JMX-Format bereitstellt.<br />

Von Mailarchiva gibt es auch eine ISP-<br />

Edition für Hosting-Provider, die voll<br />

mandantenfähig aufgebaut ist. Sie enthält<br />

auch Funktionen für die automatisierte<br />

Abrechnung und Rechnungserstellung<br />

und will eine Komplettlösung auf die<br />

Beine stellen. Konsequenterweise bringt<br />

das US-amerikanische Produkt dann auch<br />

eine reibungslose Installation mit, bei<br />

der der Admin einfach das Setup-Archiv<br />

auspackt und ein Shellskript namens »./<br />

install« ausführt – fertig. Dann startet er<br />

den Mailarchiva-Dienst mit »sudo/etc/<br />

init.d/mailarchiva start«.<br />

Die weitere Installation und Konfiguration<br />

der Enterprise Edition nimmt er per<br />

Browser über einen Setup-Wizard vor,<br />

der auf der URL »http:// localhost:8090«<br />

lauscht. Hier vergibt er zunächst ein<br />

neues Administrator-Passwort und richtet<br />

einen privaten Key für die Verschlüsselung<br />

des Mailarchivs ein. Dann definiert<br />

er ein oder mehrere Volumes auf entsprechenden<br />

Dateisystemen, in denen er<br />

die Mails ablegen will. Jetzt beginnt die<br />

eigentliche Arbeit: Es gilt, sich per Webfür<br />

Indexierung und Volltextsuche. Als<br />

weitere Voraussetzungen für die Installation<br />

müssen Admins noch Postfix, Jsvc<br />

und Swig bereitstellen. Dabei erweist sich<br />

die Dokumentation im Wiki der Webseite<br />

als wahre Wohltat und macht den Start<br />

einfach.<br />

Um Enkive einzurichten, genügt es, das<br />

Binary abzulegen und das Startskript mit<br />

»/etc/init.d/enkive start« anzustoßen.<br />

Die zentrale Konfiguration erfolgt in der<br />

Datei »$ENKIVE_HOME/config/default/<br />

enkive.properties«. Nach dem Konfigurieren<br />

des Apache-Vhost erreicht der Admin<br />

die Enkive-Webkonsole unter »http://​<br />

localhost:8888/ ediscovery«. Diese dient<br />

vor allem der – in Abbildung 7 zu sehenden<br />

– komfortablen Suche im Archiv.<br />

Allerdings hinterlässt sie einen ein wenig<br />

trägen Eindruck.<br />

Enkive empfängt zu archivierendes<br />

Datenmaterial über SMTP-Forwarding<br />

(Abbildung 8). Für Postfix liegt ein entsprechender<br />

Enkive-Socketfilter bei, der<br />

für die automatische Weiterleitung aller<br />

Mails an das Enkive-Archiv zuständig<br />

ist. Laut Entwicklerteam soll es aber auch<br />

problemlos auch mit einigen anderen<br />

Mailservern funktionieren.<br />

Abbildung 6: Der Mailarchiva-Webclient erlaubt die vollständige Konfiguration, aber auch detaillierte Suche.<br />

Der Autor<br />

Andrej Radonic arbeitet<br />

(vor allem rund um Virtualisierung,<br />

Cloud und Groupware)<br />

als freier Journalist,<br />

Fachbuchautor und Vorstand<br />

der Intersales AG.


Abbildung 7: Das Enkive-Web-GUI ist übersichtlich, gehört aber nicht zu den flottesten.<br />

In Enkive selbst kann der Admin über<br />

ein XML-Schema Filter konfigurieren, mit<br />

deren Hilfe er entscheidet, welche Mails<br />

in das Archiv gelangen. Für die tägliche<br />

Administration des Archivs, zum Beispiel<br />

die Prüfung oder den Neuaufbau des<br />

Indri-Volltextindex, steht eine Handvoll<br />

interaktiver Bash-Skripte zur Verfügung,<br />

ein Beispiel zeigt Listing 1.<br />

Enkive ist schlank und recht einfach in<br />

den Griff zu bekommen, glänzt aber nicht<br />

durch großartigen Funktionsumfang.<br />

Hierzulande wiegt aber noch schwerer,<br />

dass es zentrale Themen wie Revisionssicherheit<br />

fast komplett links liegen lässt.<br />

Da das Projekt noch am Anfang steht, ist<br />

zu hoffen, dass die Weiterentwicklung<br />

Enkive zügig reifen lässt.<br />

E Piler<br />

Piler bezeichnet sich selbst als „Enterprise<br />

Level E-Mail Archiving Application“. Das<br />

in C geschriebene, schlanke und quelloffene<br />

Softwareprojekt überrascht angesichts<br />

der niedrigen Releasenummer<br />

0.1.20 durch eine lange Featureliste [8].<br />

Piler bringt allerdings keinen Installer<br />

mit, was dazu führt, dass der Admin<br />

eine ganze Reihe an Installationsschritten<br />

durchlaufen muss, um alle Komponenten<br />

wie Open SSL, MySQL, einen Webserver<br />

mit PHP sowie Libzip zu installieren.<br />

Zwar vereinfacht die Aufgabe, dass es<br />

sich ausschließlich um Standardpakete<br />

handelt, aber ein wenig Geduld ist schon<br />

erforderlich: Das Piler-Binary muss der<br />

Admin kompilieren, die Konfigurationsdatei<br />

editieren, einen Encryption-Key erzeugen,<br />

das Datenbankschema anlegen,<br />

das Suchsystem Sphinx aufsetzen und<br />

konfigurieren.<br />

Hat er so die Grundlagen für das Web-GUI<br />

eingerichtet, kann der Piler-Verwalter daran<br />

gehen, den SMTP-Strom anzuzapfen,<br />

um das Archiv mit Mails zu bevölkern.<br />

Bei einem Postfix-Mailserver genügt dafür<br />

schon folgender Eintrag in der Datei<br />

»main.cf«: »always_bcc = archive@piler.<br />

meine.Domain«.<br />

Pilers Archivierungsmechanismen erweisen<br />

sich als effektiv und durchdacht:<br />

Neben Archivierungs- kann der Sysadmin<br />

auch Aufbewahrungs-Regeln definieren.<br />

Piler versteht sich<br />

dabei auf die Kommunikation<br />

mit allen<br />

gängigen Mailservern.<br />

Die Maildaten legt es komprimiert, mit<br />

Blowfish verschlüsselt sowie signiert im<br />

Dateisystem ab und erfüllt damit zentrale<br />

juristische Anforderungen an ein Archivierungssystem.<br />

User-Berechtigungen für das Web-GUI<br />

lassen sich per LDAP oder Active Directory<br />

implementieren. Die Konsole gestattet<br />

eine übersichtliche und komfortable<br />

Suche (Abbildung 9), ermöglicht das<br />

Wühlen in vielen Dateiformaten und beispielsweise<br />

auch die Weiterleitung einer<br />

Mail direkt aus dem GUI heraus.<br />

Übers GUI kann der Admin zudem Archivierungsregeln<br />

definieren, die bestimmen,<br />

wann Piler eine Mail ins Archiv<br />

aufnimmt oder sie verwirft. Die Regeln<br />

können auf Betreff-Patterns, aber auch<br />

auf Parametern wie Mailgröße oder Dateityp<br />

basieren (siehe Abbildung 10).<br />

In ähnlicher Weise vermag der Admin<br />

Regeln für die Aufbewahrungsdauer zu<br />

definieren. Ausgehend von denselben Parametern<br />

legt er dabei fest, nach welcher<br />

Zeitdauer Piler die betreffenden Mails aus<br />

dem Archiv entfernt.<br />

Piler macht einen durchdachten Eindruck.<br />

Wer sich durch das etwas langwierige<br />

Setup nicht abschrecken lässt, findet<br />

ein umfassendes und dabei schlankes<br />

System vor, das viele Anforderungen an<br />

die Mailarchivierung abdeckt.<br />

E Heinlein Elements<br />

Mail-Archiv<br />

Seine Archivierungssoftware für E-Mails<br />

liefert der Hersteller Heinlein ausschließlich<br />

als Appliance, wahlweise als VM<br />

(».ovf«-Datei für VMware ESXi, läuft aber<br />

auch auf Xen) oder als Teil einer kompletten<br />

Hardware-Box. Im Kern besteht das<br />

System aus Open-Source-Komponenten<br />

und proprietärer Software und ist als<br />

Blackbox konzipiert: Die Auslieferung erfolgt<br />

mit vorkonfiguriertem Admin-User,<br />

die Erst-Konfiguration geschieht per Text-<br />

Mailarchivierung 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

57<br />

Abbildung 8: Enkive klinkt sich direkt in den Mailfluss ein.<br />

© Enkive LLC<br />

Listing 1: »mongodb‐index‐tool.sh«<br />

01 *** Index „attachment_id_index“ does not appear to exist.<br />

02 Options:<br />

03 (c)reate index in the background<br />

04 (c!)reate index in the foreground<br />

05 (s)kip this index<br />

06 (r)eport on other indexes without further prompts<br />

07 (q)uit this program<br />

08 Your choice:


Sysadmin<br />

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

58<br />

Abbildung 9: Piler hat ein schlichtes, aber durchaus effektives Web-GUI.<br />

menü auf der Konsole. Alles weitere erledigt<br />

der Archiv-Admin über das aufgeräumte<br />

Web-GUI (Abbildung 11). Andere<br />

Zugänge zum System gibt es nicht.<br />

Die Appliance leistet mehr als nur Mailarchivierung<br />

– an Bord ist ein vollwertiger<br />

IMAP-Mailserver samt Webmailer sowie<br />

integriertem Monitoring. Dazu gehören<br />

auch ein Antispam- und Antiviren-Paket<br />

sowie das Tool Mailtrace [10]. Alle Programmteile<br />

verwaltet das Web-GUI, sogar<br />

System-Updates lassen sich per Mausklick<br />

einspielen. Als SMTP-Proxy ist ein<br />

Einsatz von Heinlein Mail-Archiv vor<br />

oder an beliebigen Mailservern möglich.<br />

Das System klinkt sich in den ein- und<br />

ausgehenden Mailverkehr ein und fängt<br />

den kompletten Datenstrom ab. Damit<br />

wird der rechtlichen Anforderung Sorge<br />

getragen, alle Dokumente vollständig<br />

und ohne Verlust abzulegen.<br />

Über flexible Filterregeln steuert der<br />

Admin den zu archivierenden Inhalt (Abbildung<br />

12). Damit kann er Spam- und<br />

irrelevante E-Mails gezielt ausschließen.<br />

Da Heinlein Mail-Archiv gemäß Herstellerempfehlung<br />

stets hinter der Spam- und<br />

Virenfilterung im Mailsystem des Kunden<br />

zu platzieren ist, reduziert sich der Datenmüll.<br />

Alternativ lässt sich Mail-Archiv<br />

um die Funktion von Heinleins Antispam<br />

ergänzen.<br />

Die Archivierungsregeln – nicht, einfach<br />

oder revisionssicher archivieren<br />

– kann der Administrator auf Domainbis<br />

hinunter zur User-Ebene definieren.<br />

Die Maildaten legt das System in einer<br />

PostgreSQL-Datenbank ab. Über ein integriertes<br />

DRBD sorgt es auf Wunsch für<br />

Ausfallsicherheit.<br />

Weitaus den höchsten Aufwand aller<br />

Kandidaten treibt das Heinlein Mail-Ar-<br />

chiv im Hinblick auf die Revisionssicherheit<br />

der archivierten Mails (Abbildung<br />

13): Um diese zu gewährleisten, verwendet<br />

es Archi Soft vom Fraun hofer Institut<br />

für sichere Informationstechnologie<br />

(SIT), das alle Mails mit Signaturen stempelt.<br />

Archi Soft bildet dazu Hashbäume<br />

aller Dokumente und hasht diese einmal<br />

täglich mit dem Zeitstempel eines akkreditierten<br />

Zeitstempeldienstes. Die automatisierte<br />

Erneuerung der Signaturen<br />

sorgt dafür, dass diese auf Basis des aktuellen<br />

Verschlüsselungsverfahrens sicher<br />

und werthaltig bleiben [11].<br />

Audits erfolgen wie bei den anderen Systemen<br />

übers Web-GUI. Als Besonderheit<br />

zeigt dieses GUI die Verifikationsergebnisse<br />

direkt an. Sie belegen, inwieweit bei<br />

der jeweiligen E-Mail Revisionssicherheit<br />

und Unveränderbarkeit gegeben ist. So<br />

erhält zum Beispiel ein Dokument, das<br />

im Archiv manipuliert wurde, eine rote<br />

Kennzeichnung.<br />

Heinlein Mail-Archiv verbindet einfaches<br />

Setup, komfortable Konfiguration<br />

und Sicherheit, was die Archivierung und<br />

Rechtssicherheit angeht. Wer die juristischen<br />

Ansprüchen erfüllen will, erhält<br />

ein durchdachtes und solides System.<br />

Fazit<br />

Unternehmen finden in der freien Softwarewelt<br />

eine reichhaltige Auswahl<br />

mächtiger Lösungen für automatisierte<br />

Mailarchivierung. Damit sind die Probleme<br />

jedoch noch nicht gelöst. Zur Technik<br />

müssen sich entsprechende organisatorische<br />

Regelungen gesellen, um den<br />

Abbildung 10: Flexible Archivierungsregeln bestimmen, welche Mails den Weg ins<br />

Piler-Archiv finden sollen.<br />

Abbildung 11: Das Heinlein Elements Mail-Archiv ist ein Komplettsystem und wird<br />

ausschließlich als <strong>Linux</strong>-Appliance angeboten.


Abbildung 12: Archivierungsregeln lassen sich auch auf Mailbox-Ebene vergeben.<br />

rechtlichen Ansprüchen Genüge zu tun.<br />

Steht die Compliance an oberster Stelle,<br />

so fahren Unternehmen mit den auf deutsches<br />

Recht hin optimierten Lösungen<br />

von Benno und Heinlein am besten, zudem<br />

sind die Programme durchaus erschwinglich.<br />

(mfe) <br />

n<br />

Infos<br />

[1] Agorum: [http:// www. agorum. com/ startseite/<br />

produkte/ zusatzmodule‐fuer‐agorum<br />

‐core/ agorum‐core‐mail‐adaptor‐mailarchivierung‐e‐mails‐archivieren.<br />

html]<br />

[2] Alfresco und Inovox: [http:// www. alfresco.​<br />

com], [http:// www. inovox. de/ produkte/​<br />

email‐archivierung/ features/ index. html]<br />

[3] Openarchive: [http:// www. openarchive. net]<br />

[4] (Open) Benno Mailarchiv:<br />

[http:// www. benno‐mailarchiv. de],<br />

[http:// www. openbenno. org]<br />

[5] Benno-FAQ: [http:// www. openbenno. org/​<br />

category/ faq/]<br />

[6] Mailarchiva: [http:// www. mailarchiva. de]<br />

[7] Enkive: [http:// www. enkive. org]<br />

[8] Piler: [http:// www. mailpiler. org]<br />

[9] Heinlein Mail-Archiv: [http:// www.​<br />

heinlein‐support. de/ mail‐archiv]<br />

[10] Markus Feilner, „Postfacharbeiter“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/​12, S. 32<br />

[11] Fraunhofer-Whitepaper:<br />

[http:// sit. sit. fraunhofer. de/ studies/ de/​<br />

whitepaper‐archisoft‐2009‐de. pdf]<br />

[12] „Alles parat – E-Mails und wichtige Dokumente<br />

revisionssicher archivieren“: Titelthema<br />

<strong>Linux</strong>-<strong>Magazin</strong> 08/09, S. 27 bis 44<br />

DELUG-DVD<br />

Auf der Delug-DVD finden Sie DELUG-DVD<br />

vier der fünf in diesem Artikel beschriebenen<br />

Softwarepakete in eigenen Unterverzeichnissen,<br />

meist als Tar.gz-Archive.<br />

Abbildung 13: Ein vom Fraunhofer Institut entwickeltes Signaturverfahren gewährleistet Revisionssicherheit.


Sysadmin<br />

www.linux-magazin.de ZFS verschlüsseln 01/2013<br />

62<br />

Workshop: Rechner mit Luks und ZFS on <strong>Linux</strong> komplett verschlüsseln<br />

Vergälltes Diebesgut<br />

Kommt ein Rechner abhanden, wiegt der Umstand, dass die Daten in fremde Hände gelangen, oft schwerer als<br />

der Verlust der Hardware. Der folgende Workshop erklärt anhand einer Gentoo-Installation, wie man mit Luks<br />

und ZFS ein System als Ganzes verschlüsselt. Stefan Gregor Weichinger<br />

Be triebssystem kommt die 64-Bit-Variante<br />

von Gentoo <strong>Linux</strong> zu Ehren. 64 Bit, weil<br />

das 128-Bit-Filesystem ZFS aus der enterpreisigen<br />

Welt von Solaris kommt. Auch<br />

wenn viele es bereits täglich einsetzen,<br />

stufen seine Entwickler ZFS on <strong>Linux</strong> als<br />

Release Candidate ein. Für den Produktivbetrieb<br />

gilt die übliche Mahnung im<br />

erhöhten Maß: Ohne regelmäßige Backups<br />

lebt jeder Datenbestand gefährlich.<br />

© the rock, Fotolia<br />

Der Dummheit sind zwar sprichwörtlich<br />

keine Grenzen gesetzt. Aber niemand<br />

käme auf die Idee, den nächsten<br />

Business plan der eigenen Firma auf<br />

Facebook zu posten. Auf Laptops jedoch<br />

tragen viele ihn spazieren. Bei einer Studie<br />

[1] gaben 86 Prozent der befragten<br />

IT-Sicherheitsfachkräfte an, dass in ihrem<br />

Unternehmen mindestens ein Laptop<br />

gestohlen oder verloren wurde. In 56<br />

Prozent der Fälle kam es dabei zur Verletzung<br />

der Datensicherheit. 61 Prozent der<br />

deutschen IT-ler sa gten, der Datenverlust<br />

wiege schwerer als der materielle Schaden,<br />

nur 13 Prozent grämten sich mehr<br />

über die abgängige Hardware.<br />

Was tun? Herkömmliche <strong>Linux</strong>-Laptops<br />

verwenden zwar moderne Dateisysteme<br />

wie Ext 4 oder XFS, die für Validität der<br />

Dateien sorgen, legen die Daten aber unverschlüsselt<br />

ab – keine Hürde für einen<br />

Datendieb, der in den Besitz des Geräts<br />

gelangt ist. Techniken wie Truecrypt speichern<br />

Daten dagegen in verschlüsselten<br />

Containern, in Kombination mit einer<br />

starken Passphrase gilt das als sicher.<br />

Truecrypt kann jedoch <strong>Linux</strong>-Systeme<br />

nicht als Ganzes verschlüsseln.<br />

Dieser Artikel stellt ein nahezu komplett<br />

verschlüsseltes System vor, das auf einer<br />

stark verschlüsselten Hauptpartition<br />

läuft. Nur die kleine »/boot«-Partition<br />

mit Kernel und Initram-FS bleibt unverschlüsselt.<br />

Als Filesystem kommt das<br />

Feature-reiche ZFS on <strong>Linux</strong> (ZoL, [2])<br />

zum Einsatz. Damit ist der Speicherplatz<br />

zwischen allen ZFS-Dateisystemen dynamisch<br />

verteilbar. ZFS sorgt durch Block-<br />

Prüfsummen zudem für Datenintegrität<br />

und kann Dateien wenn nötig transparent<br />

komprimieren.<br />

Ausgehend von einem Howto von Matthew<br />

Thode [3] beschreibt der folgende<br />

Workshop den nicht immer intuitiven<br />

Weg von der Installations-DVD bis zum<br />

verschlüsselten Produktivsystems. Als<br />

Das System vorbereiten<br />

Die Installation von Gentoo erfolgt manuell<br />

per Live-CD und Shell. Der Vorgang<br />

ist, wie üblich bei dieser Distribution, gut<br />

dokumentiert [4]. Die folgende Anleitung<br />

beschränkt sich daher aufs Wesentliche.<br />

Nach dem Booten von der Live-<br />

DVD [5] legt der Admin die Partitionen<br />

an, am einfachsten ohne GPT: eine kleine<br />

Boot partition (»/dev/sda1«), dann »/dev/<br />

sda2« für den Rest.<br />

Listing 1 zeigt die nächsten Schritte. Zeile<br />

1 formatiert »/boot« als Ext 2. Zeile 2 erzeugt<br />

auf der anderen Partition ein Luksverschlüsseltes<br />

Device. Die bei diesem<br />

Schritt erfragte Passphrase sollte stark gewählt<br />

sein, da von ihr die Sicherheit des<br />

künftigen Systems abhängt. Der Rechner<br />

wird beim Booten die Passphrase abfragen<br />

und nur dann, wenn sie korrekt ist,<br />

den ZFS-Pool öffnen.<br />

Luks bietet übrigens die Möglichkeit,<br />

mehrere Passphrasen zu hinterlegen –<br />

beispielsweise eine Master-Passphrase<br />

DELUG-DVD<br />

Der Autor dieses Beitrags hat<br />

DELUG-DVD<br />

für die Delug-DVD die virtuelle Maschine bereitgestellt,<br />

anhand derer er diesen Artikel<br />

verfasst hat. Die Passphrase des Setup lautet<br />

»<strong>Linux</strong>Mag12«.


für den Administrator und eine weitere<br />

für den täglichen Betrieb.<br />

Im nächsten Schritt öffnet Luks mit der<br />

Passphrase das verschlüsselte Device.<br />

Zeile 4 legt nun auf dem Blockdevice<br />

einen ZFS-Pool an. Die verwendeten Optionen<br />

setzen die Sector Size [6], deaktivieren<br />

das Cachefile und mounten den<br />

neuen »rpool«-Pool Gentoo-konform vorläufig<br />

unter »/mnt/gentoo«. Der nächste<br />

Teil in Listing 1 legt auf dem ZFS-Pool ein<br />

Bündel einzelner Dateisysteme mit teils<br />

unterschiedlichen Eigenschaften an [7].<br />

Das funktioniert mit ZFS-Funktionen.<br />

Tausendsassa ZFS<br />

Statt die vorhandene Platte in Partitionen<br />

fixer Größe zu zerteilen, nutzt das Setup<br />

die Funktionalität von ZFS, den Speicherplatz<br />

als Pool zu verwalten. Der vorhandene<br />

Platz auf »/dev/sda2« stellt auch die<br />

Größe des ZFS-Pools namens »rpool« dar.<br />

Darin legt der Admin einzelne Dateisysteme<br />

für die verschiedenen Verzeichnisse<br />

von Gentoo <strong>Linux</strong> an, zum Teil mit abweichenden<br />

Eigenschaften (Properties),<br />

zum Beispiel mit transparenter Kompression.<br />

Dateien, die jemand dort hineinschreibt,<br />

komprimiert ZFS automatisch<br />

und transparent.<br />

Die Gestaltung und Aufteilung in besagte<br />

Dateisysteme ist ein Vorschlag, den jeder<br />

Admin an eigene Gegebenheiten anpassen<br />

sollte. Dabei geht es darum, welche<br />

Features von ZFS in Form von Properties<br />

er für einzelne Bereiche anwenden<br />

möchte. Es ist möglich, Speicherplatz für<br />

den User Root zu reservieren<br />

(Property<br />

Reservation) oder für<br />

normal berechtigte<br />

User den maximalen<br />

Speicher zu beschränken<br />

(Property Quota).<br />

Für manche Bereiche<br />

wie die ohnehin komprimierten<br />

Tarballs der<br />

Gentoo-Packages in<br />

»/usr/portage/distfiles«<br />

ergibt es keinen Sinn,<br />

Rechenleistung auf Kompression zu verschwenden,<br />

daher steht die Property<br />

Compression hier auf »off«.<br />

Weitere Properties sind das Freigeben<br />

von Dateisystemen per NFS und das<br />

platzsparende Deduplizieren von Blöcken<br />

– das benötigt allerdings RAM und andere<br />

Ressourcen, ist also für schwächere<br />

Maschinen nicht empfehlenswert. Besonders<br />

kritische Daten lassen sich mit der<br />

Property »copies« extra gut verwahren:<br />

ZFS speichert dann jeden Block mehrere<br />

Male. Sollte ein Block beim Lesen nicht<br />

mehr die ursprünglich errechnete Checksumme<br />

aufweisen, stehen die Kopien zur<br />

Verfügung, von denen sehr wahrscheinlich<br />

zumindest eine korrekt geblieben<br />

ist. Mit dem erhöhtem Speicherbedarf<br />

erkauft man sich Redundanz, ohne mehrere<br />

physische Datenträger verwenden<br />

zu müssen. (Die ZFS-Raid-Funktionalität<br />

benutzt dieser Artikel nicht.)<br />

ZFS ist nicht nur Dateisystem, sondern<br />

auch Volume-Manager ähnlich wie LVM<br />

2. Der Vorteil für den Anwender: Er muss<br />

Abbildung 1: Bei der Kernelkonfiguration aktiviert der Admin SPL und ZFS.<br />

nicht im Voraus genau planen, welche Directories<br />

wie viel Platz belegen, da er die<br />

Zuordnungen ohne Neupartitionierung<br />

nachträglich ändern kann.<br />

ZFS-Pakete freischalten<br />

Die nächsten Schritte sind Gentoo-üblich:<br />

Die Wget- und Tar-Befehle (Listing 1,<br />

Zeilen 21 und 22) entpacken ein so genanntes<br />

Stage3-Archiv ins neue System.<br />

Für die weiteren ist eine Chroot-Umgebung<br />

erforderlich. Der Bereich ab Zeile 24<br />

sorgt für passende ZFS-Meta-Informationen<br />

und der Admin wechselt mit Chroot<br />

ins neue System. In dieser Umgebung<br />

installiert und konfiguriert er die weitere<br />

Software.<br />

Die Gentoo-Entwickler stufen ZFS on<br />

<strong>Linux</strong> noch nicht als stabil ein. Daher<br />

muss man etliche Pakete gezielt erlauben<br />

(in Gentoo-Sprech: „unmasken“). Das betrifft<br />

auch SPL, den Solaris Porting Layer<br />

[8], eine Sammlung von Kernelmodulen,<br />

die Solaris-APIs unter <strong>Linux</strong> nachbilden,<br />

ZFS verschlüsseln 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

63<br />

Listing 1: System vorbereiten<br />

01 mkfs.ext2 /dev/sda1<br />

02 cryptsetup luksFormat ‐l 512 ‐c aes‐xts‐plain64 ‐h sha512 /dev/sda2<br />

03 cryptsetup luksOpen /dev/sda2 cryptroot<br />

04 zpool create ‐f ‐o ashift=12 ‐o cachefile= ‐m none ‐R /mnt/gentoo rpool<br />

/dev/mapper/cryptroot<br />

05 <br />

06 zfs create ‐o mountpoint=none ‐o compression=on rpool/ROOT<br />

07 # Rootfilesystem<br />

08 zfs create ‐o mountpoint=/ rpool/ROOT/rootfs<br />

09 zfs create ‐o mountpoint=/opt rpool/ROOT/rootfs/OPT<br />

10 zfs create ‐o mountpoint=/usr rpool/ROOT/rootfs/USR<br />

11 zfs create ‐o mountpoint=/var rpool/ROOT/rootfs/VAR<br />

12 # Portage<br />

13 zfs create ‐o mountpoint=none rpool/GENTOO<br />

14 zfs create ‐o mountpoint=/usr/portage rpool/GENTOO/portage<br />

15 zfs create ‐o mountpoint=/usr/portage/distfiles ‐o compression=off<br />

rpool/GENTOO/distfiles<br />

16 zfs create ‐o mountpoint=/usr/portage/packages ‐o compression=off<br />

rpool/GENTOO/packages<br />

17 # Home‐Directorys<br />

18 zfs create ‐o mountpoint=/home rpool/HOME<br />

19 zfs create ‐o mountpoint=/root rpool/HOME/root<br />

20 <br />

21 wget ftp://gentoo.osuosl.org/pub/gentoo/releases/amd64/autobuilds/<br />

current‐stage3‐amd64‐hardened/stage3‐amd64‐hardened‐*.tar.bz2<br />

22 tar ‐xf /mnt/gentoo/stage3‐amd64‐hardened‐*.tar.bz2 ‐C /mnt/gentoo<br />

23 <br />

24 mkdir ‐p /mnt/gentoo/etc/zfs<br />

25 cp /etc/zfs/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache<br />

26 cp /etc/zfs/zdev.conf /mnt/gentoo/etc/zfs/zdev.conf<br />

27 mount ‐t proc none /mnt/gentoo/proc<br />

28 mount ‐‐rbind /dev /mnt/gentoo/dev<br />

29 chroot /mnt/gentoo /bin/bash<br />

30 env‐update<br />

31 source /etc/profile<br />

32 export PS1="(chroot) $PS1"


Sysadmin<br />

www.linux-magazin.de ZFS verschlüsseln 01/2013<br />

64<br />

damit der unter Solaris entstandene ZFS-<br />

Code eine gewohnte Umgebung vorfindet.<br />

Daher umgeht ZFS on <strong>Linux</strong> einige<br />

Kernelfunktionen, die native <strong>Linux</strong>-<br />

Dateisysteme normalerweise nutzen. Das<br />

Unmasken der nötigen RC-Pakete gelingt<br />

durch die in Listing 2 genannten Einträge<br />

in der Datei »/etc/portage/package.<br />

accept_keywords«.<br />

Beim Bootvorgang muss der Kernel selbstständig<br />

das Luks-Device öffnen. Dazu<br />

braucht er ein statisch kompiliertes Cryptsetup-Binary<br />

in seinem Initram-FS. Daher<br />

setzt Listing 3 in der »/etc/portage/package.use«-Datei<br />

für das Paket »sys‐fs/<br />

cryptsetup« das Use-Flag »static« und<br />

noch ein paar weitere Flags für Pakete,<br />

von denen Cryptsetup abhängt.<br />

Der Befehl in Zeile 1 von Listing 4 kompiliert<br />

und installiert Cryptsetup. Aktuell<br />

ist der <strong>Linux</strong>-Kernel 3.5.7 stabil, die Patches<br />

von Matthew Thode, die er für 3.5.0<br />

gefertigt hat, lassen sich nach wie vor<br />

anwenden (Zeilen 2 bis 6).<br />

Listing 2: »package.accept_<br />

keywords«<br />

01 =sys‐apps/openrc‐0.11.1 ~amd64<br />

02 =sys‐kernel/genkernel‐3.4.44.2 ~amd64<br />

03 =sys‐kernel/spl‐0.6.0_rc11‐r1 ~amd64<br />

04 =sys‐fs/zfs‐kmod‐0.6.0_rc11‐r1 ~amd64<br />

05 =sys‐fs/zfs‐0.6.0_rc11 ~amd64<br />

01 #required by sys‐fs/cryptsetup‐1.4.1[static],<br />

required by sys‐fs/cryptsetup (argument)<br />

02 >=dev‐libs/libgcrypt‐1.5.0‐r2 static‐libs<br />

03 #required by sys‐fs/cryptsetup‐1.4.1[static],<br />

required by sys‐fs/cryptsetup (argument)<br />

04 >=dev‐libs/popt‐1.16‐r1 static‐libs<br />

05 #required by sys‐fs/cryptsetup‐1.4.1[static],<br />

required by sys‐fs/cryptsetup (argument)<br />

06 =sys‐apps/util‐linux‐2.21.2 static‐libs<br />

07 #required by sys‐fs/cryptsetup‐1.4.1[static],<br />

required by sys‐fs/cryptsetup (argument)<br />

08 =dev‐libs/libgpg‐error‐1.10 static‐libs<br />

09 <br />

10 sys‐fs/cryptsetup static<br />

01 emerge cryptsetup<br />

Listing 3: »package.use«<br />

Listing 4: Kernel installieren<br />

02 emerge sys‐kernel/genkernel<br />

03 emerge sys‐kernel/gentoo‐sources<br />

04 wget http://dev.gentoo.org/~prometheanfire/dist<br />

/kernel‐patches/linux‐3.5.0‐gfp‐vmalloc.patch<br />

‐O ‐ | patch ‐p1 ‐d /usr/src/linux<br />

05 wget http://dev.gentoo.org/~ryao/dist/<br />

linux‐3.5.0‐zfs.patch ‐O ‐ | patch ‐p1 ‐d<br />

An dieser Stelle ist es möglich, den Kernel<br />

an die eigene Hardware anzupassen.<br />

Universal-Kernel zu Beginn<br />

Doch im ersten Anlauf empfiehlt sich ein<br />

Kernel mit vielen Features, um ein garantiert<br />

lauffähiges System zu bekommen.<br />

(Einen generischen Kernel vorzuhalten<br />

lohnt auch, um bei Defekten auf anderer<br />

Hardware booten zu können.) Verlaufen<br />

erste Tests des künftigen Produktivsystems<br />

positiv, entfernt man nicht benötigte<br />

Treiber aus dem Kernel.<br />

Dieser Artikel ist bei der Arbeit an einer<br />

virtuelle Maschine entstanden. (Sie ist zu<br />

finden auf der Delug-DVD dieser Ausgabe.)<br />

Um sie möglichst vielseitig einsetzen<br />

zu können, übernehmen die Zeilen 8<br />

bis 10 (Listing 4) die Config des Kernels<br />

der Live-DVD. Jetzt geht es ans Konfigurieren<br />

des Kernels, etwa per »make menuconfig«.<br />

Wichtig ist, SPL und ZFS zu aktivieren<br />

(Abbildung 1).<br />

Das Kompilieren und Linken dauert ein<br />

bisschen. Erfahrene Gentoo-User verkürzen<br />

die Zeit, indem sie zuvor die Variable<br />

»MAKEOPTS« in die »/etc/genkernel.<br />

conf« vorhandener CPU-Kerne setzen:<br />

MAKEOPTS="‐j3" # für zwei Cores<br />

Ein »genkernel all« stößt nun den Compilerlauf<br />

an. Ebenso essenziell ist auch das<br />

Bauen des Initram-FS:<br />

genkernel ‐‐luks ‐‐zfs ‐‐disklabel initramfs<br />

Mit dessen Hilfe kann der Kernel beim<br />

Booten das Luks-Device öffnen und in<br />

der Folge den ZFS-Pool und die darin befindlichen<br />

Dateisysteme wie »/«, »/usr«,<br />

»/var« und so weiter.<br />

Der folgende Befehl installiert das Paket<br />

»sys‐fs/zfs«:<br />

emerge sys‐fs/zfs<br />

Infolge der definierten Abhängigkeiten<br />

weiß das Gentoo-Portage-System, dass<br />

/usr/src/linux<br />

06 wget http://dev.gentoo.org/~prometheanfire/dist<br />

/kernel‐patches/linux‐3.5.0‐zfs‐builtin.patch<br />

‐O ‐ | patch ‐p1 ‐d /usr/src/linux<br />

07 <br />

08 cd /usr/src/linux<br />

09 zcat /proc/config.gz > .config<br />

10 make oldconfig<br />

ZFS »sys‐kernel/spl« benötigt, und installiert<br />

es automatisch mit. Die nächsten<br />

Zeilen sorgen dafür, dass der Service<br />

»zfs« in den relevanten Runlevels aktiv<br />

wird – der erste bewirkt den Start beim<br />

Booten, der zweite exportiert den Pool<br />

beim Shutdown:<br />

rc‐update add zfs boot<br />

rc‐update add zfs‐shutdown shutdown<br />

Der Admin darf nicht vergessen das Root-<br />

Pass wort mit »passwd« zu setzen. (Das<br />

Passwort der virtuellen Maschine auf der<br />

Delug-DVD lautet »gentoo«.)<br />

Systemsetup abschließen<br />

Die weitere Installation folgt dem Weg eines<br />

klassischen Gentoo-Setup, setzt also<br />

die Systemparameter und installiert die<br />

Basisservices wie Cron und Syslog-ng.<br />

Als Bootloader eignet sich die moderne<br />

Grub-Version 2.00 genauso wie die traditionelle.<br />

Der Einfachheit halber soll hier<br />

Grub 0.97 zum Einsatz kommen:<br />

emerge grub<br />

mount /dev/sda1 /boot<br />

grub‐install /dev/sda<br />

Die Konfigurationsdatei »/boot/grub/<br />

grub.conf« in Listing 5 beinhaltet Kerneloptionen,<br />

die den verschlüsselten ZFSon-<strong>Linux</strong>-Pool<br />

korrekt öffnen.<br />

Um das System fertig für den ersten eigenständigen<br />

Bootvorgang zu machen,<br />

editiert der Admin die »/etc/fstab«. Entgegen<br />

üblichen Konventionen kommentiert<br />

er hier die Zeilen für »BOOT«, »ROOT«<br />

und »SWAP« aus, da der ZFS-Pool die<br />

Zuweisung erledigen wird. Die Befehle<br />

exit<br />

cd<br />

zfs umount ‐a<br />

verlassen die Chroot-Umgebung und hängen<br />

die Dateisysteme aus.<br />

Mountpoint präparieren<br />

Der letzte Schritt der recht umfangreichen<br />

Anleitung passt die Eigenschaft des Pool-<br />

Mountpoints an. In der Installationsumgebung<br />

war der Pool ja an »/mnt/gentoo«<br />

gemountet, in dem Produktivsystem soll<br />

dies natürlich an »/« geschehen:<br />

zfs set mountpoint=/ rpool


500<br />

400<br />

300<br />

200<br />

100<br />

0<br />

MByte/s<br />

117<br />

91<br />

473<br />

ZoL<br />

482<br />

91<br />

32<br />

427<br />

ZoL + Luks<br />

444<br />

Abbildung 2: Iozone-Benchmark-Vergleich zwischen<br />

einem ZFS-System ohne und mit Verschlüsselung.<br />

Zum Schluss: die restlichen Dateisysteme<br />

aushängen, den ZFS-Pool exportieren:<br />

umount ‐l /mnt/gentoo/dev{/shm,/pts}<br />

umount ‐l /mnt/gentoo{/boot,/proc}<br />

zpool export rpool<br />

Ein Neustart des PC oder Notebooks ohne<br />

die Live-CD zeigt den Erfolg der Mühen.<br />

Ist alles korrekt verlaufen, fragt das bootende<br />

Gentoo nach der Passphrase des<br />

Luks-Device. Bei korrekter Angabe startet<br />

der Rechner vom entschlüsselten ZFS-<br />

Pool. Wer mag, kann nun mit »zfs list«<br />

die neue Umgebung anschauen.<br />

Troubleshooting und der<br />

Umgang mit Updates<br />

Bei einer komplexen Installation wie dieser<br />

passieren Fehler. Das Reparieren eines<br />

verschlüsselten Systems per Live-Medium<br />

gestaltet sich etwas komplizierter als bei<br />

einem gängigen <strong>Linux</strong>. Zuerst bootet der<br />

Admin von der Gentoo-Live-DVD oder<br />

einem anderen 64-Bit-Live-Medium, das<br />

ZFS mitbringt. Dann öffnet er per Cryptsetup<br />

das Luks-Device:<br />

cryptsetup luksOpen /dev/sda2 cryptroot<br />

Write<br />

Rewrite<br />

Read<br />

Reread<br />

Das Öffnen des ZFS-Pools heißt in der<br />

ZFS-Terminologie »import«. Gleich passiert<br />

dies mit den Optionen »‐fN«, was<br />

Der Autor<br />

Stefan G. Weichinger betreut mit seiner Firma<br />

„Oops! linux consulting“ [http://www.oops.co.at]<br />

seit Jahren Klein- und Mittelunternehmen bei<br />

Server- und Netzwerktechnik. Ein Schwerpunkt<br />

ist das Thema Backups, er betreibt Mailserver<br />

und verbringt seine Freizeit in und auf Bergen.<br />

einerseits die Host-ID ignoriert und andererseits<br />

den Automount unterbindet:<br />

zpool import ‐fN rpool<br />

Die folgenden Kommandos mounten das<br />

System wie bei der Installation an »/mnt/<br />

gentoo« und hängen die restlichen ZFS-<br />

Filesysteme unter dieser Hierarchie ein:<br />

zfs set mountpoint=/mnt/gentoo rpool<br />

zfs mount rpool/ROOT<br />

zfs mount ‐a<br />

Ab hier vollführt der Admin die bekannte<br />

Chroot-Prozedur und kann dann das System<br />

reparieren. Vor einem neuerlichen<br />

Bootversuch darf er das Anpassen des<br />

Mountpoints per »zfs set mountpoint=/<br />

rpool« nicht versäumen.<br />

Wegen der teils irregulären SPL- und ZFS-<br />

Kernelpatches erfordern künftige Updates<br />

oder Upgrades etwas Aufmerksamkeit.<br />

Beim Eintreffen neuer Kernelversionen<br />

passiert das Patchen und Kompilieren<br />

einfach im laufenden System. Wie bei<br />

anderen Distributionen auch empfiehlt es<br />

sich, einen gut funktionierenden Kernel<br />

im System zu behalten, bis der neue keinen<br />

Anlass zu Klagen mehr bietet.<br />

Performance und Fazit<br />

Anwender von Truecrypt & Co. wissen,<br />

dass eine durchgängige Verschlüsselung<br />

beim Lesen und Schreiben vieler kleiner<br />

Dateien die Performance beeinträchtigen<br />

kann. Darum lohnt es sich, die Datenübertragungsraten<br />

des Testsystems für diesen<br />

Artikel zu betrachten. Analog zu früheren<br />

Performancetests im <strong>Linux</strong>-<strong>Magazin</strong> [9]<br />

lautet der Benchmark-Aufruf auch hier:<br />

iozone ‐r 4k ‐s 4g ‐i0 ‐i1<br />

Die Gesamtgröße 4 GByte ist der Größe<br />

der Testumgebung in der virtuellen Maschine<br />

angepasst. Abbildung 2 zeigt den<br />

direkten Vergleich zwischen einer mit Ext<br />

4 aufgesetzten Gentoo-Installation und<br />

dem gezeigten ZoL-Luks-Setup.<br />

Die gemessenen Performance-Vor- und<br />

‐Nachteile in einzelnen Disziplinen sollte<br />

man nicht überinterpretieren: Zum einen<br />

neigen Messungen in virtuellen Maschinen<br />

zu Fehlern. Zum zweiten arbeiten in<br />

modernen Laptops vielfach performante<br />

SSDs und drittens ist der Desktopbetrieb<br />

von deutlich mehr Lese- als von Schreibvorgängen<br />

gekennzeichnet.<br />

Unterm Strich legen die Erfahrungen aus<br />

diesem Artikel nahe, dass sich vom Verlust<br />

bedrohte Rechner mit etwas Aufwand<br />

im Ganzen gut verschlüsseln lassen.<br />

Das sehr moderne Setup arbeitet<br />

für den Anwender und den zuständigen<br />

Ad min transparent. Ob man den Arbeitsaufwand<br />

investieren will, lässt sich daran<br />

messen, was die eigenen Daten in den<br />

Händen Fremder bedeuten. (jk) n<br />

Infos<br />

[1] Ponemon Institute, „Business Risk of a<br />

Lost Laptop: A Study of IT Practitioners in<br />

the US, UK, Germany, France, Mexico and<br />

Brazil“, April 2009: [http:// www. ponemon.​<br />

org/ local/ upload/ fckjail/ generalcontent/​<br />

18/ file/ The%20Business%20Risk%20of%<br />

20a%20Lost%20Laptop%20(Global)%<br />

20Final%204. pdf]<br />

[2] ZFN on <strong>Linux</strong>: [http:// zfsonlinux. org]<br />

[3] Matthew Thode, „Gentoo Hardened ZFS<br />

rootfs with dm-crypt/​luks“:<br />

[http:// blog. mthode. org/ gentoo‐hardenedzfs‐rootfs‐with‐dm‐cryptluks/]<br />

[4] Anleitung zum Installieren von Gentoo:<br />

[http:// www. gentoo. org/ doc/ de/ handbook/​<br />

handbook‐amd64. xml]<br />

[5] Gentoo Live-DVD: [http:// www. gentoo. org/​<br />

news/ 20120401‐livedvd. xml],<br />

[http:// bouncer. gentoo. org/ fetch/​<br />

gentoo‐12. 1‐livedvd/ amd64/]<br />

[6] „How does ZFS on <strong>Linux</strong> handles Advanced<br />

Format disks?“:<br />

[http:// zfsonlinux. org/ faq. html# HowDoes-<br />

ZFSon<strong>Linux</strong>HandlesAdvacedFormatDrives]<br />

[7] Anleitung für Gentoo-Installation direkt in<br />

ein ZFS-Root-Filesystem: [https:// github.​<br />

com/ pendor/ gentoo‐zfs‐install/ blob/​<br />

master/ install/ GentooInstall. mdown]<br />

[8] Solaris Porting Layer:<br />

[https:// github. com/ zfsonlinux/ spl]<br />

[9] Hans-Peter Merkel, Markus Feilner, „Erste<br />

Begegnung zwischen dem <strong>Linux</strong>-Kernel und<br />

ZFS“: <strong>Linux</strong>-<strong>Magazin</strong> 02/​11, S. 86<br />

Listing 5: »grub.conf«<br />

01 default 1<br />

02 timeout 2<br />

03 <br />

04 title Gentoo <strong>Linux</strong> 3.5.7<br />

05 root (hd0,0)<br />

06 kernel /kernel‐genkernel‐x86_64‐3.5.7‐gentoo<br />

real_root=ZFS=rpool/ROOT/rootfs crypt_root=/dev/sda2<br />

dozfs=force ro<br />

07 initrd /initramfs‐genkernel‐x86_64‐3.5.7‐gentoo<br />

ZFS verschlüsseln 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

65


Sysadmin<br />

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

66<br />

Systeme verwalten und automatisch deployen mit Crowbar<br />

Dell-Werkzeug<br />

Mit nach einem Brecheisen und einem Vorschlaghammer benannter Software verspricht die Firma Dell den<br />

Admins, in Zeiten des Cloud Computing auch Server auf echter Hardware schneller aufzusetzen als je zuvor.<br />

Einen neuen Node zu Open Stack hinzufügen gelingt mit Crowbar schnell und automatisch. Martin Loschwitz<br />

© Paul Jantz, 123RF.com<br />

Chef, Puppet, Juju und MaaS: Werkzeuge<br />

fürs automatische Deployment von<br />

Software gibt es zuhauf, und sie gewinnen<br />

stetig an Zulauf. Ein Wunder ist das<br />

nicht, müssen doch Admins immer wieder<br />

Aufgaben erledigen, die sich automatisieren<br />

lassen. Das fängt bei der Neuinstallation<br />

von Servern an, die geplant und<br />

koordiniert durchgeführt sein will, denn<br />

wild gewachsene Systeme – wie früher<br />

üblich – wären mit heutigen Ressourcen<br />

nicht mehr wartbar. Deployment-Tools<br />

wie Crowbar sorgen dafür, glaubt man<br />

Entwicklern, dass die Hardware im Verbund<br />

mit der Cloud jede Individualität<br />

verliert und austauschbar wird.<br />

Abgesehen von einem oder zwei einzelnen<br />

Servern, die beispielsweise unter<br />

Open Stack als Cloudcontroller dienen,<br />

gibt es in der privaten, öffentlichen oder<br />

hybriden Wolke nur noch Computing-<br />

Knoten, die sich idealerweise gleichen<br />

wie ein Ei dem anderen – sowohl Hard-<br />

als auch Software. Im besten Fall fängt<br />

das sogar schon in dem Moment an,<br />

wenn der Techniker die neue Pizzabox<br />

ins 19-Zoll-Rack schiebt.<br />

Ein Werkzeug von Dell<br />

Crowbar [1] stammt aus der Feder des<br />

Cloud-Edge-Teams von Dell. Nicht gerade<br />

für seine Open-Source-Affinität bekannt,<br />

hat der Hersteller Crowbar nicht aus purer<br />

Nächstenliebe entwickelt: Vielmehr<br />

ist es Dells Versuch, einen Fuß in den<br />

Cloudmarkt zu bekommen. Wenn also<br />

der Absatz von Servern schon unvermeidbar<br />

sinkt, so die Logik, dann sollen<br />

bitte möglichst viele der verkauften Einheiten<br />

das Logo von Dell tragen – und da<br />

kommt Open Stack ins Spiel.<br />

Um Dell im Cloudumfeld zu positionieren,<br />

hat sich die Firma früh als vehementer<br />

Open-Stack-Unterstützer etabliert und<br />

will sich ein „wolkiges“ und „Cloud-affi-<br />

nes“ Image geben. Dell kokettiert sogar<br />

mit der Einführung einer eigenen Public<br />

Cloud. Um die Server einer Wolke möglichst<br />

leicht administrieren zu können,<br />

reichen herkömmliche Tools wie Puppet<br />

und Chef eben nicht aus. Während die<br />

sich nur darum kümmern, Konfigurationsdateien<br />

synchron auf den Servern zu<br />

verteilen, wünschen sich Cloud-Admins<br />

mehr Funktionen: Unter der Prämisse,<br />

dass das Setup jedes Computing-Knotens<br />

identisch ist, sollten sich auch die Nodes<br />

automatisch installieren lassen und per<br />

Knopfdruck zur Verfügung stehen – ein<br />

Feature, das Admins vor allem in der Anfangszeit<br />

von Open Stack [2] schmerzlich<br />

vermissten.<br />

Die Entwickler konzentrierten sich jedoch<br />

auf Basisfunktionen, die Dokumentation<br />

war unbrauchbar, das Einrichten<br />

einer Open-Stack-basierten Umgebung<br />

zumindest bis Open Stack 2011.2 (Diablo)<br />

eine nervenaufreibende Sache. Die<br />

aktuelle Version 2012.2 (Folsom) kommt<br />

zwar mit besserer Dokumentation und<br />

weniger Bugs, doch auch hier kostet das<br />

Setup eines Cloudcontrollers oder eines<br />

Computing-Node viel Zeit.<br />

Dell entwickelte das Produkt von Anfang<br />

an in der festen Absicht, Admins<br />

von Open-Stack-Umgebungen möglichst<br />

viele Arbeitsschritte abzunehmen. Freilich<br />

musste zu einer solchen Lösung ein<br />

Werkzeug gehören, das Konfigurationsdateien<br />

verwaltet. Dell entschied sich dafür,<br />

diese Aufgabe Chef [3] von Opscode<br />

anzuvertrauen. Chef (Abbildung 1) ist im<br />

US-Markt mit großem Abstand der bekannteste<br />

Konfigurationsmanager, etwa<br />

vergleichbar mit Puppet [4] hierzulande.<br />

Damit sich neue Server automatisch in<br />

Computing-Knoten für die Cloud verwandeln,<br />

mussten die Dell-Programmierer


Crowbar 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

67<br />

Abbildung 1: Crowbar enthält eine modifizierte Version von Chef, die sich um das<br />

Management von Konfigurationsdateien kümmert.<br />

Abbildung 2: Nach der Installation des Crowbar-Servers erscheint dieser als<br />

erster Eintrag im »Node Dashboard« des Crowbar-GUI.<br />

sich auch um das Betriebssystem kümmern.<br />

Crowbar hat deshalb einen Installer<br />

mit an Bord, der – einmal über PXE<br />

gebootet – die gesamte Betriebssystem-<br />

Installation automatisch abwickelt.<br />

Crowbar mit Sledgehammer<br />

Wer das Tool ausprobieren möchte, muss<br />

zunächst selbst Hand anlegen. Die Crowbar-Entwickler<br />

gehen davon aus, dass<br />

der Admin den Hauptknoten von einer<br />

separaten CD aus installiert, die zusätzlich<br />

zum Betriebssystem auf diesem auch<br />

die für Crowbar benötigten Dienste auf<br />

die Platte bringt (Abbildung 2). Die passende<br />

CD muss der Admin aber erst aus<br />

den Crowbar-Quellen bauen. Eine Anleitung<br />

auf der Crowbar-Homepage gibt<br />

Hinweise dazu.<br />

Die gute Nachricht: Die Entwickler von<br />

Crowbar legen Wert darauf, dass das<br />

Programm nicht nur eine, sondern alle<br />

gängigen Enterprise-Distributionen unterstützt.<br />

Entsprechend hat der Admin<br />

die Wahl zwischen Cent OS, RHEL, Suse<br />

und Ubuntu 12.04 LTS. Wer für erste<br />

Crowbar-Tests lieber auf ein fertiges ISO<br />

zurückgreifen möchte, findet ein als Beta<br />

markiertes Image unter [5].<br />

Das Installations-ISO von Crowbar enthält<br />

übrigens mehr als bloße Tweaks für<br />

die Routinen der unterstützten Distributionen.<br />

Neben der automatischen Installation<br />

umfasst es auch Sledgehammer<br />

(Vorschlaghammer), ein kleines <strong>Linux</strong>-<br />

System, das sich auf Computing-Knoten,<br />

die Crowbar verwalten soll, kurzzeitig<br />

einnistet und dort neben einer umfassenden<br />

Hardware-Erkennung auch einen<br />

Wartungsmodus bietet.<br />

Hier zeigt sich, dass Crowbar von Dell<br />

kommt und wie weit die Funktionen von<br />

Crowbar tatsächlich reichen: Auf Dell-<br />

Hardware ist es sogar möglich, über das<br />

Sledgehammer-Tool Bios-Updates durchzuführen.<br />

Nebenbei erklärt sich so auch,<br />

wieso der Vorschlaghammer auf Cent<br />

OS basiert: Nur für das freie Red-Hat-<br />

Pendant stehen die Dell-Update-Tools als<br />

fertige Pakete zur Verfügung.<br />

Schnell fertig<br />

Abbildung 3: Auch Nagios 3 gehört zum Installationsumfang von Crowbar und erledigt das Monitoring in der Open Stack-Wolke.<br />

Die Installation aus einem solchen Basis-ISO<br />

heraus funktioniert im Falle von<br />

Ubuntu 12.04 praktisch vollautomatisch,<br />

weil die Entwickler mit Hilfe von Preseeding<br />

alle wichtigen Fragen bereits im Voraus<br />

beantwortet haben. Ist die Systeminstallation<br />

geglückt, landet der Anwender<br />

in einem nackten <strong>Linux</strong>-System, in dem<br />

er die eigentliche Crowbar-Installation<br />

per Skript-Aufruf anstoßen muss. Auch<br />

hier erledigt eine Setup-Routine das Gros<br />

der Arbeit und meldet sich erst wieder<br />

beim Admin, wenn<br />

alle wichtigen Komponenten<br />

den Weg auf<br />

die Platte gefunden<br />

haben. Im Anschluss<br />

steht bereits das Web-<br />

GUI von Crowbar zur<br />

Verfügung.<br />

Und nicht nur das: Der<br />

Master-Server, der sich<br />

mittels Crowbar-ISO<br />

auf die Platte eines Servers<br />

bringen lässt, umfasst<br />

neben einer kompletten<br />

Chef-Installation<br />

auch TFTP- und<br />

PXE-Server, ein komplettes<br />

Nagios 3 (Abbildung<br />

3) sowie die<br />

Statistiksoftware Gan-


Sysadmin<br />

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

68<br />

glia (Abbildung 4).<br />

Die Dienste sind miteinander<br />

verbunden:<br />

Kommt beispielsweise<br />

ein neuer Knoten<br />

hinzu, erkennt Crowbar<br />

das automatisch.<br />

Es installiert mittels<br />

TFTP und DHCP das<br />

gewünschte Betriebssystem<br />

und legt den<br />

neuen Knoten auch in<br />

Nagios an.<br />

Bisher geht das allerdings<br />

nur in homogenen<br />

Umgebungen.<br />

Läuft der Crowbar-Server<br />

auf Ubuntu 12.04,<br />

so installiert Crowbar<br />

nur Clients mit diesem Betriebssystem.<br />

Positiv: Crowbar hinterlegt alle Pakete<br />

für eine solche neue Ubuntu-Installation<br />

auf dem Master-Server, sodass der Admin<br />

diese nicht für jeden Knoten neu aus dem<br />

Netz laden muss.<br />

Crowbar verwalten<br />

Alle wichtigen Funktionen für Crowbar<br />

sind direkt über dessen komfortables Webinterface<br />

per Mausklick zu erreichen. Soll<br />

ein Rechner eine neue Funktion erhalten,<br />

so ist das Crowbar-GUI dafür ebenso die<br />

richtige Anlaufstelle (Abbildung 5). Das<br />

gilt auch in Fällen, in denen der Admin<br />

einem Knoten ein frisches Betriebssystem<br />

Abbildung 4: Ganglia fertigt Statistiken über einzelne Knoten innerhalb der Wolke an, das Tool ist in Crowbar enthalten.<br />

verpasst. Auch Rechner-Reboots sind von<br />

hier aus möglich – vorausgesetzt dass das<br />

IPMI auf dem betroffenen Knoten korrekt<br />

eingerichtet ist. Was auf den ersten Blick<br />

etwas seltsam anmutet, ist die Farbgebung<br />

des Interface, die leider keine Option<br />

für hellere Farben und damit bessere<br />

Lesbarkeit bietet.<br />

Wie bereits erwähnt bieten sich dem<br />

Admin viele Möglichkeiten, auf die Konfiguration<br />

der verschiedenen Crowbar-<br />

Dienste Einfluss zu nehmen. Vielleicht<br />

ist das noch einer der größten Schwachpunkte,<br />

die Crowbar derzeit hat: Statt des<br />

einen universellen GUI müssen Admins<br />

zwischen den Frontends für Chef, Ganglia,<br />

Nagios und so weiter hin und her<br />

springen. Das bedarf einiger Gewöhnung<br />

und ist leicht nervig. Abhilfe ist nicht in<br />

Sicht, denn die Arbeit, die notwendig<br />

wäre, um alle Dienste unter einer einheitlichen<br />

Oberfläche zusammenzufassen,<br />

steht in keinem Verhältnis zum tatsächlichen<br />

Nutzen – so ungern manche<br />

Admins das auch hören.<br />

Kräftige Helfer: Barclamps<br />

Barclamps (Schraubzwingen) heißen die<br />

Skripte, die Crowbar um neue Funktionen<br />

erweitern (Abbildung 6), vergleichbar<br />

mit den Charms für Juju. Einmal auf dem<br />

Server aktiviert lässt sich ein Barclamp<br />

auf alle vorhandenen Knoten anwenden.<br />

Crowbar oder MaaS?<br />

Neben Crowbar gibt es derzeit nur eine weitere<br />

Open-Source-Software, deren Funktionsumfang<br />

vergleichbar ist: Ubuntus MaaS ([7], Abbildung<br />

7). MaaS steht für „Metal as a Service“ und<br />

will Administratoren in die Lage versetzen, per<br />

Mausklick einem Server eine spezifische Aufgabe<br />

zuzuweisen.<br />

Ubuntu only<br />

Wie Crowbar wickelt auch MaaS die Installation<br />

eines neuen Host über ein CD-Image ab. Die<br />

MaaS-Installation ist aber unmittelbarer Teil<br />

von Ubuntus Server-Installations-CD. Das macht<br />

MaaS aber auch deutlich weniger flexibel im<br />

Hinblick auf die genutzte Distribution – wer es<br />

nicht mit Ubuntu verwenden möchte, hat viel<br />

Handarbeit vor sich.<br />

MaaS versteht sich als Software, die die Konfigurationen<br />

neuer Systeme aus der Wolke auf<br />

echte Hardware überträgt. Admins haben beispielsweise<br />

die Option, im Webinterface einen<br />

»Datenbankserver mit mindestens 16 Gigabyte<br />

RAM« anzufordern, und MaaS macht im lokalen<br />

Rechnerpark eine passende Maschine ausfindig<br />

und konfiguriert sie entsprechend. Damit die<br />

Ubuntu-Entwickler das Rad nicht neu erfinden<br />

müssen, setzt MaaS auf die bewährte Technik<br />

von Juju, um gewählte Softwarekollektionen<br />

schnell zu installieren.<br />

Jünger als Crowbar<br />

Auch MaaS ist also grundsätzlich ein Framework,<br />

das zum Konfigurationsmanagement um eine<br />

bereits existierende Software herum gebaut<br />

und mit der Option ausgestattet ist, dedizierte<br />

Hardware mit entsprechenden Aufgaben zu versehen.<br />

Allerdings ist MaaS jünger als Crowbar,<br />

und anders als die Dell-Entwickler achten die<br />

von MaaS im Augenblick offenbar weniger auf<br />

Kontinuität. Die Version, die Bestandteil von<br />

Ubuntu 12.10 ist, hat einige Veränderungen im<br />

Vergleich zu der in 12.04 erfahren und lässt<br />

sich nicht mit einer Installationsanleitung für<br />

12.04 einbauen. Im Ubuntu-Wiki [8] findet sich<br />

jedoch auch eine Anleitung für 12.10 und die<br />

späteren Versionen. An dieser Stelle wird deutlich,<br />

dass Ubuntus Cloudteam aktiv an MaaS<br />

arbeitet: Die Dokumentation ist jedenfalls deutlich<br />

besser organisiert als die von Crowbar und<br />

häufig auch aktueller.<br />

Juju und Landscape-Support<br />

Wer also eine Wolke auf Grundlage von Ubuntu<br />

12.04 einsetzt, sollte auch einen Blick auf MaaS<br />

werfen und die Entscheidung davon abhängig<br />

machen, ob Chef oder Juju den persönlichen<br />

Geschmack treffen. Ubuntus Supportprogramm<br />

mit Landscape verlangt allerdings MaaS. Wer<br />

eine Wolke mit Red Hat oder Suse bauen<br />

möchte, wird eher bei Crowbar landen.


Ab Werk kommt Crowbar mit eigenen<br />

Barclamps, die Funktionen für Crowbar<br />

selbst, aber auch für Chef, Nagios & Co.<br />

enthalten. Eine ausführliche Anleitung<br />

zum Verfassen eigener Barclamps findet<br />

sich samt Video im Netz [6].<br />

Die Barclamps greifen tief in die Funktionen<br />

ein, die beispielsweise Chef zur<br />

Verfügung stellt. Die mit Crowbar ausgelieferte<br />

Version von Chef ist deshalb<br />

speziell modifiziert – ein Umstand, den<br />

die Entwickler in Crowbar 2.0 zwar beseitigen<br />

möchten. Wer aber bereits eine<br />

funktionierende Konfigurationsverwaltung<br />

auf Basis von Chef oder Puppet hat,<br />

sollte sich überlegen, ob der Umstieg auf<br />

Crowbar die Mühe wert ist.<br />

Denn Crowbar ist nicht einfach ein Aufsatz<br />

für Chef. Vielmehr setzt es Chef<br />

gezielt so ein, dass es für einen eng definierten<br />

Einsatzbereich überaus nützliche<br />

Dienste leistet – in all jenen Szenarien<br />

nämlich, in denen es darum geht, viele<br />

(fast) identische Systeme zentral zu administrieren<br />

und den Pool der verfügbaren<br />

Server schnell und leicht zu erweitern.<br />

In Cloud umgebungen funktioniert<br />

es überaus zuverlässig und nimmt den<br />

Administratoren viele der lästigen Alltagsaufgaben<br />

ab, wenn neue Systeme zu<br />

deployen sind.<br />

Usability und<br />

Dokumentation<br />

Über die Benutzerfreundlichkeit<br />

von<br />

Crowbar lässt sich<br />

vortrefflich streiten.<br />

Auf den ersten Blick<br />

wirkt es schon etwas<br />

eigenartig, sich zunächst<br />

aus den Quellen<br />

des Programms ein<br />

eigenes ISO-Image zu<br />

bauen, das anschließend<br />

als Basis für<br />

die Serverinstallation<br />

dient. Doch dieses Konzept bringt Vorteile.<br />

Denn weil Install-ISOs für Crowbar<br />

grundsätzlich an die lokalen Begebenheiten<br />

anpassbar sind, erspart diese Vorgehensweise<br />

Admins später viel Arbeit<br />

bei der unvermeidlichen Anpassung des<br />

Standard-Setups an die lokalen Bedin-<br />

Abbildung 5: Im Crowbar-GUI lassen sich Servern per Drag & Drop Funktionen<br />

zuweisen. In diesem Falle wird der Knoten zu einem MySQL-Server.<br />

Crowbar 01/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

69<br />

Alles zum ThemA Android<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

DigisuB: nur 39,90 € im Jahr (12 PDFs)<br />

Jetzt bestellen unter:<br />

www.android–user.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de<br />

+<br />

Lesen Sie News und<br />

Artikel schon 1 Woche<br />

vor dem Kiosk-Termin!


Sysadmin<br />

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

70<br />

Abbildung 6: Barclamps sind Skripte, die Crowbar um Funktionen erweitern, hier für Open Stack.<br />

gungen. In Crowbar ist das lokale Setup<br />

bereits der globale Standard.<br />

Wohltuend ist, dass die Crowbar-Entwickler<br />

zumindest in gleicher Qualität<br />

für alle drei Enterprise-Distributionen<br />

programmieren. Und ist das Image erst<br />

gebaut, erhält der Admin nützliche Webinterfaces<br />

für Crowbar, Chef, Nagios 3<br />

und Ganglia, die ihm das Deployment<br />

neuer Rechner erleichtern und Canonicals<br />

Landscape oder MaaS (siehe Kasten<br />

„Crowbar oder MaaS?“) in nur wenigen<br />

Features nachstehen.<br />

Also alles perfekt im Crowbar-Land?<br />

Nein. Die Dokumentation des Tools lässt<br />

zu wünschen übrig. Ein großer Teil ist<br />

direkt über das Wiki zu erreichen, das<br />

zum Crowbar-Github [9] gehört. Die dort<br />

erklärten Schritte funktionieren zwar unverändert<br />

bis heute, doch wird aus keinem<br />

der Texte deutlich, dass Crowbar<br />

beispielsweise auch mit Ubuntu 12.04<br />

klaglos zurechtkommt – die Rede ist stets<br />

nur von Ubuntu 10.10.<br />

Viele Erklärungen zu Crowbar finden<br />

sich überdies nur im persönlichen Blog<br />

von Rob Hirschfeld, einem der Crowbar-<br />

Entwickler [10]. Ebenfalls als hilfreich<br />

erweisen sich die verschiedenen Crowbar-Videos<br />

[11].<br />

Vereinfacht dargestellt<br />

Doch Lösungen wie Crowbar haben auch<br />

ihre Tücken: Zwar ist es mit Crowbar<br />

problemlos möglich, eine komplette<br />

Open-Stack-Umgebung per Klick aus<br />

dem Boden zu stampfen. Das entlässt<br />

den Cloud-Admin allerdings nicht aus der<br />

Verantwortung, den Umgang mit den einzelnen<br />

Open-Stack-Teilen trotzdem zu beherrschen.<br />

Im Falle eines Problems stößt<br />

er schnell an die Grenzen von Crowbar,<br />

und dann ist trotzdem wieder profundes<br />

Admin-Wissen gefragt, um die Kohle aus<br />

dem Feuer zu holen.<br />

Wer Crowbar aber als nützliches Addon<br />

zu Open Stack versteht, der vermeidet<br />

mit der Umgebung viel lästige und<br />

wiederkehrende Arbeit. Als Ersatz für<br />

eigenes Open Stack-Wissen taugt das<br />

Deployment-Tool aber keinesfalls.<br />

Derzeit arbeitet das Crowbar-Team an<br />

Crowbar 2.0, das in vielen Teilen ein<br />

komplettes Rewrite durchlaufen wird.<br />

Beim Open Stack Summit in San Diego<br />

im Oktober diskutierten die Entwickler<br />

mit der Community und holten sich<br />

Ideen dafür, wie Crowbar Dinge besser<br />

tun könnte als bisher.<br />

Beispielsweise stört die angesprochene<br />

Notwendigkeit einer gepatchten Chef-<br />

Version, auch die Verwaltung von Umgebungen<br />

mit unterschiedlichen Betriebssystemen<br />

möchten die Entwickler erweitern.<br />

Eine Liste aktueller Designziele für<br />

Crowbar 2.0 findet sich auf der Wiki-Seite<br />

unter [12]. (mfe) <br />

n<br />

Infos<br />

[1] Crowbar: [https:// github. com/​<br />

dellcloudedge/ crowbar/]<br />

[2] Stefan Seyfried, Christian Berendt, „Cactus<br />

im Anmarsch“: <strong>Linux</strong>-<strong>Magazin</strong> 05/​11, S. 72<br />

[3] Tim Schürmann, „Chefkoch“: Admin-<br />

<strong>Magazin</strong> 04/​10, S. 82<br />

[4] Gunnar Robel, „Puppenspiel“: <strong>Linux</strong>-<br />

<strong>Magazin</strong> 10/​08, S. 70<br />

[5] Beta-ISOs für Crowbar:<br />

[http:// crowbar. zehicle. com]<br />

[6] Anleitung für eigene Barclamps:<br />

[http:// robhirschfeld. com/ 2011/ 09/ 19/​<br />

create‐a‐crowbar‐barclamp/]<br />

[7] Ubuntu MaaS: [http:// www. ubuntu. com/​<br />

cloud/ orchestration/ deployment]<br />

[8] MaaS-Installation, Ubuntu 12.04: [https://​<br />

wiki. ubuntu. com/ ServerTeam/ MAAS],<br />

Ubuntu 12:10:<br />

[https:// maas. ubuntu. com/ docs/]<br />

[9] Crowbar-Wiki: [https:// github. com/​<br />

dellcloudedge/ crowbar/ wiki]<br />

[10] Blog von Crowbar-Entwickler Rob Hirschfeld:<br />

[http:// robhirschfeld. com/ crowbar/]<br />

[11] Crowbar-Trainings-Videos: [https:// github.​<br />

com/ dellcloudedge/ crowbar/ wiki/ Videos]<br />

[12] Ausblick auf Crowbar 2.0:<br />

[https:// github. com/ dellcloudedge/​<br />

crowbar/ wiki/ Crowbar‐2. 0]<br />

© Ubuntu Wiki<br />

Abbildung 7: MaaS (Metal as a Service) heißt Canonicals Alternative zu Crowbar.<br />

Der Autor<br />

Martin Gerhard Loschwitz<br />

arbeitet als Principal Consultant<br />

bei Hastexo. Er beschäftigt<br />

sich dort intensiv<br />

mit Hochverfügbarkeitslösungen,<br />

Cloud und Clustern<br />

und pflegt in seiner Freizeit den <strong>Linux</strong>-Cluster-<br />

Stack für Debian GNU/​<strong>Linux</strong>.


Admin-MAGAZIN digital<br />

Profi-Know-how immer zur Hand<br />

vorteile<br />

• Ideal für Rechercheure<br />

• bereits vor dem Kiosk-<br />

Termin als PDF lesen<br />

• kompaktes, papierloses<br />

Archiv<br />

• Sparen Sie im Abo über<br />

20% im Vergleich zum<br />

PDF-Einzelkauf!<br />

Jetzt bestellen unter:<br />

www.admin–magazin.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />

* Preise gelten für Deutschland.<br />

nur 44,90 E* pro Jahr<br />

(6 Ausgaben)


Forum<br />

www.linux-magazin.de Winterrätsel 01/2013<br />

72<br />

Das große <strong>Linux</strong>-<strong>Magazin</strong>-Winterrätsel für lange Abende<br />

Winterrätsel<br />

Wer gerne vertrackte Aufgaben löst und einen Kamin besitzt, sollte ihn an einem langen freien Abend anheizen<br />

und es sich mit dem <strong>Linux</strong>-<strong>Magazin</strong>-Winterrätsel davor gemütlich machen. Leser mit moderneren Heizungen<br />

kommen natürlich auch auf ihre Kosten. Nils Magnus<br />

Dieses Jahr dreht sich der knifflige Knobelspaß rund um <strong>Linux</strong> und<br />

Spiele. Wer meint, dass das Thema wenig ergiebig sei, kann sein Vorurteil<br />

anhand der immerhin 20 Fragen noch mal überdenken. Unter<br />

allen richtigen Einsendungen – in den meisten Jahren waren das nur<br />

wenige – verlost die Redaktion ein Android-Smartphone.<br />

1Manche Computerpioniere zweckentfremden gerne alte Hardware,<br />

um darauf mit Hilfe eines Spielchens in die Tiefen des<br />

Sonnensystems abzutauchen. Die wenigsten allerdings schreiben<br />

dazu gleich ein komplettes Betriebssystem. Wie nannte der hier<br />

gesuchte Autor seine Software?<br />

2Wer Vi liebt, verehrt auch den ähnlich zu bedienenden Spieleklassiker.<br />

Bei der Suche nach einem mächtigen Amulett passieren<br />

Coredumps. Womit hat sich der Spieler vorher gestärkt?<br />

3Virtualisierung findet auch in Computerspielen statt: Wer mal<br />

gegen grüne und violette Außerirdische antrat, fand auf einem<br />

alten Rechner den Vorgänger des Abenteuers. Dort ging es so<br />

robust zu, dass besorgte Eltern und Tierschützer eine Zensur erwirkten.<br />

Wo durfte der Hamster des Hauses fortan nicht mehr hin?<br />

4<strong>Linux</strong> eignete sich bislang wenig als Trainingsplattform für<br />

den Häuserkampf oder die Abwehr schwer bewaffneter Aliens.<br />

Welcher CEO einer Spieleplattform fand vernichtende Worte<br />

über die aktuelle Release eines proprietären Betriebssystems und<br />

starte kürzlich den Betatest seiner Software für <strong>Linux</strong>?<br />

5Obwohl der Hersteller einer Simulation seine Portierung eines<br />

erfolgreichen Spiels nicht unter einer freien Lizenz anbot,<br />

gewährte er den Teilnehmern eines Wettbewerbs Einblick in<br />

dessen Code, um ihn zu erweitern. Nach welcher Gottheit benannte<br />

sich das freigiebige Unternehmen?<br />

6Noch bevor er begann zum <strong>Linux</strong>-Kernel für Embedded-Plattformen<br />

und zu Codegeneratoren der GCC beizutragen, nahm<br />

sich der Entwickler einer virtuellen Maschine für verteilte<br />

Rollenspiele an und gab ihr den Namen seiner Spielfigur. Wie heißt<br />

der ursprüngliche Architekt der objektorientierten Spielmaschine?<br />

7Eine Softwareschmiede, die zufällig ein grundlegendes Unix-<br />

Kommando im Namen trägt, prägte lange das Genre der First<br />

Person Shooter. Welcher Technikchef der Firma hat große Teile<br />

der Game-Engines unter die GPL gestellt? Dank der freien Lizenz tut<br />

die Engine noch heute in manch modernem Spiel Dienst.<br />

8Lisp und KI nutzte ein mittlerweile aufgekauftes Unternehmen<br />

für seinen Textparser und setzte in den 1970ern erste<br />

Standards für Abenteuerspiele. Mit freien Interpretern laufen<br />

die noch heute. Welcher Buchstabe dominiert die erfolgreichste<br />

Produktreihe genauso wie den Namen der Beschreibungssprache?<br />

9Automatenspielen wie Pac Man und Donkey Kong durften in<br />

keiner Spielhalle der frühen 1980er Jahre fehlen. Im Gegensatz<br />

zu den TTL-gesteuerten Pong oder Breakout besaßen die<br />

© Albix, Fotolia.com


So funktioniert’s<br />

1<br />

5<br />

9<br />

13<br />

17<br />

Meist lassen sich die Fragen durch ein einzelnes Wort beantworten, sonst zählt das erste Wort,<br />

bei Namen der Nachname. Die Lösungsworte sind in das abgedruckte Schema einzutragen. Wichtig ist nur<br />

der jeweilige Anfangsbuchstabe. Wohin mit der 4x5-Matrix und was es zu gewinnen gibt erklärt der Kasten unten.<br />

2<br />

6<br />

10<br />

14<br />

18<br />

3<br />

7<br />

11<br />

15<br />

19<br />

4<br />

8<br />

12<br />

16<br />

20<br />

Winterrätsel 01/2013<br />

Forum<br />

neuen einen richtigen Mikroprozessor. Welches Projekt kümmert<br />

sich seit 1996 darum, Emulatoren für diese Geräte anzubieten?<br />

und Eroberungsspiele gab es 1991 bereits einige. Neu<br />

war bei einem der Spiele aber der Mehrspieler-Modus, der<br />

10Plansich<br />

eine Funktion von X11 pfiffig zunutze machte. Spieler,<br />

die wenig Wert auf Sicherheit legten, gaben vor dem Spielstart<br />

»xhost +« ein. Welches Kommando wäre besser geeignet?<br />

der aufwändigsten Simulationen, die nativ als freie Software<br />

entwickelt wurde, greift auf Wunsch sowohl auf reale<br />

11Eine<br />

Wirtschafts- und Transportdaten als auch auf Wetterinformationen,<br />

Jahreszeiten und Sonnenstände zu. Welche Skriptsprache<br />

verwendet das Projekt intern vorrangig?<br />

sich über Spiele unter <strong>Linux</strong> auf dem Laufenden halten<br />

will, kommt um eine bestimmte deutschsprachige Community-Plattform<br />

nicht herum. Sie listet seit dem Jahr 2000<br />

12Wer<br />

Nachrichten und Reviews von Spielen und Emulatoren und gibt Tipps<br />

zu Installation und Konfiguration. Wie lautet ihr Name?<br />

Projekt unter der GPL simuliert einen der erfolgreichsten<br />

Spiele-Homecomputer und große Teile seiner Familienmitglieder,<br />

die auf der gleichen CPU-Familie aufbauen. Wie<br />

13Ein<br />

lautete die Serienbezeichnung der ältesten Geräte, die ihr Hersteller<br />

vorrangig für den Büroeinsatz konzipiert hatte?<br />

langen Wurzeln eines aufwändigen Weltraumspiels, das<br />

sich lose im Orbit des Star-Trek-Universums verorten lässt,<br />

14Die<br />

gehen bis in die jungen Unix-Jahre zurück. Wie hieß die in<br />

den frühen 1990er Jahren populäre Fassung, bei der Raumfahrtfans<br />

über das Internet mitspielen durften?<br />

3-D-Spiele, die auf die Xlib setzen, sind rar gesät.<br />

1994 veröffentlichten jedoch zwei Studenten wegen einer<br />

15Native<br />

Studienarbeit ein Projekt für Solaris und <strong>Linux</strong>, das Szenekenner<br />

als freundliche Vorwegnahme von Castle Wolfenstein & Co.<br />

ansehen. In welchem Gebirge liegt die Hochschule der beiden?<br />

Vater einer bekannten <strong>Linux</strong>-CD-Distribution schlägt sich<br />

auch auf dem Brett recht wacker. Bei welcher Organisation<br />

16Der<br />

hostete er einen der ersten deutschen Schach-Server?<br />

Vielfalt des königlichen Spiels bereitet Computern bis<br />

heute Probleme. Für in Bedrängnis geratene Gruppen eines<br />

17Die<br />

anderen Spiels gibt es einen Fachbegriff, mit dem sich ein<br />

Konsolen- und Computerhersteller schmückte. Wie lautet der erste<br />

Buchstabe der Typenbezeichnung von dessen Computer-Flaggschiff?<br />

18<br />

Ein Spieledesigner, der sich auch für den Raspberry Pi<br />

stark gemacht hat, setzt bei der letzten Fortsetzung eines<br />

in der Homecomputer-Ära einflussreichen Weltraumspiels<br />

auf Crowdfunding. Von welchem Planeten stammten die fiesen Aggressoren,<br />

die im Hyperraum Weltraumhändlern auflauerten?<br />

www.linux-magazin.de<br />

73<br />

Sony Xperia U zu gewinnen<br />

Wer die aus 4x5 Lösungsbuchstaben bestehende<br />

Matrix (siehe Kasten oben) bis zum 8.<br />

Januar 2013 an [winter@linux‐magazin.​<br />

de] schickt, nimmt automatisch an einer<br />

Verlosung teil. Falls kein Einsender alles<br />

richtig austüftelt, bestimmt die Redaktion<br />

anhand der richtigen Teillösungen den besten<br />

Mitspieler.<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> veröffentlicht voraussichtlich<br />

in seiner Ausgabe 03/13 den<br />

Namen des Gewinners. Der Rechts weg ist<br />

ausgeschlossen.<br />

Als Preis für das nicht gerade einfache Rätsel<br />

winkt ein Android-Smartphone mit Ice<br />

Cream Sandwich, dessen Touchscreen-TFT-<br />

Diagonale 8,9 Zentimeter misst: das Sony<br />

Xperia U. Auf dessen Rückseite sitzt eine<br />

5-Megapixel-Kamera mit „Sony Exmore<br />

R“-Sensor, Bildstabilisator und Geotagging,<br />

die auch 720p-Videos aufzeichnet.<br />

implementierte Konsolenklassiker haben Konjunktur.<br />

Beim Remake für einen populären <strong>Linux</strong>-Desktop steuert<br />

19Neu<br />

der Spieler eine gefräßige Schlange und darf nicht an den<br />

Gartenmauern anecken. Wie lautet der Name des Spiels, der auch<br />

Bezüge zu einer 4-Bit-Ansammlung aufweist?<br />

Prozessart, deren Startsequenzen meist in »/etc/<br />

init.d« lagern, taucht auch in einem zweiteiligen Roman<br />

auf. Bei dem bleibt offen, ob es sich um<br />

20Eine<br />

eine Dystopie oder eine Utopie handelt. In der Handlung<br />

dient ein Onlinespiel als Kommunikationsplattform.<br />

Welchen Rang bekleidet dort eine Spielfigur, die als<br />

Nazi-Antagonist die Plattform verlässt? (jk)


Forum<br />

www.linux-magazin.de Rechts-Rat 01/2013<br />

74<br />

Leser fragen, der <strong>Linux</strong>-<strong>Magazin</strong>-Ratgeber antwortet<br />

Recht einfach<br />

Urheberrecht, Verträge, Lizenzen und so weiter: In der Serie „Rechts-Rat“ erhalten <strong>Linux</strong>-<strong>Magazin</strong>-Leser verständliche<br />

Auskünfte zu Rechtsproblemen des <strong>Linux</strong>-Alltags. Fred Andresen<br />

Abbildung 1: Probleme mit der GEMA hat nicht nur, wer auf Youtube einen<br />

Mashup veröffentlicht wie etwa die Suse-Entwickler. Auch für freie und<br />

anonyme Musik in Computerspielen fallen bisweilen GEMA-Gebühren an.<br />

In dieser Ausgabe geht’s um die Vermeidung<br />

von GEMA-Gebühren für freie<br />

Musik und um gewerbliches oder nicht<br />

gewerbliches Filesharing und die Folgen.<br />

Außerdem beantwortet der Rechts-Rat<br />

Fragen rund um Auskunftsansprüche<br />

gegen Internetprovider, Haftung für verwaiste<br />

Internetanschlüsse und um nachgebaute<br />

Programme für Android.<br />

GEMA-Gebühren auch<br />

ifür CC-Musik?<br />

Ich möchte für ein Online-Computerspiel richtige<br />

Musik nutzen. Dafür suche ich mir natürlich<br />

Stücke, die unter einer CC-oder anderen Lizenz<br />

kostenlos erhältlich sind. Kann ich trotzdem mit<br />

der GEMA Ärger bekommen?<br />

anonym<br />

Die GEMA ist ein wirtschaftlicher Verein<br />

kraft staatlicher Verleihung. Sie ist<br />

in Deutschland die einzige Wahrnehmungsgesellschaft<br />

für urheberrechtliche<br />

Nutzungsrechte an geschützten<br />

Werken der<br />

Musik.<br />

Neben dieser Alleinstellung<br />

genießt sie<br />

für die Rechtsdurchsetzung<br />

eine weitere<br />

Besonderheit: Hinter<br />

der GEMA-Vermutung<br />

steckt die gesetzlich<br />

bindende Annahme,<br />

dass die GEMA grundsätzlich<br />

die Wahrnehmungsbefugnis<br />

für die<br />

Rechte zur Aufführung<br />

und Vervielfältigung<br />

für alle Musikstücke<br />

hat, gleich ob inländische<br />

oder ausländische.<br />

Gleichzeitig<br />

gilt – zugunsten der GEMA – auch die<br />

Vermutung, dass jedes Musikstück urheberrechtlich<br />

geschützt ist [1].<br />

Die entsprechende Rechtslage wird meist<br />

nur als Lizenz zum Gelddrucken verstanden,<br />

ist aber nur eine Arbeitserleichterung<br />

für die historisch einzige Verwertungsgesellschaft<br />

für öffentlich aufgeführte<br />

Musik und damit Ausdruck des<br />

Schutzes der Komponisten und Texter,<br />

der Urheber der Stücke.<br />

Wie alle gesetzlichen Vermutungen kann<br />

sie entkräftet werden, allerdings nur unter<br />

sehr strengen Voraussetzungen. So<br />

hat der Nutzer eines Werkes zu beweisen,<br />

dass kein Urheberrechtsschutz für<br />

den einzelnen Musiktitel besteht oder<br />

dass die GEMA nicht zur Wahrnehmung<br />

der Rechte befugt ist. Dazu ist nötig, dass<br />

der Nutzer den tatsächlichen Urheber benennt.<br />

Nur so kann die GEMA und letztlich<br />

ein mit dem Streit befasstes Gericht<br />

die Indentität des Urhebers und seine<br />

Urheberschaft überprüfen.<br />

Achten Sie daher in jedem Fall darauf,<br />

dass Sie nicht nur lizenzfreie oder beispielsweise<br />

CC-lizenzierte Songs für Ihr<br />

Onlinespiel übernehmen, sondern ausschließlich<br />

solche, bei denen der Urheber<br />

namentlich benannt ist. Bloße Band-Namen<br />

genügen nicht! Nur auf diese Weise<br />

können Sie sicherstellen, dass die Verwertungsgesellschaften<br />

keine Ansprüche<br />

gegen Sie durchsetzen können.<br />

Filesharing und ge-<br />

iwerbliches Ausmaß<br />

Ich höre immer wieder, dass das gewerbliche<br />

Ausmaß für Urheberrechtsverletzungen, bei dem<br />

dann die höheren Abmahnkosten bezahlt werden<br />

müssen, schon mit einem einzigen Film erreicht<br />

sei. Das kann doch wohl nicht sein, oder?<br />

jd<br />

Das „gewerbliche Ausmaß“ hat zwei<br />

Folgen: Zum einen gilt in diesen Fällen,<br />

wenn es um Verstöße gegen das Urheberrecht<br />

geht, nicht mehr die Begrenzung<br />

des Erstattungsanspruchs für Abmahnkosten<br />

nach Paragraf 97a UrhG, nach<br />

dem Ersatz bei einfach gelagerten Fällen<br />

mit unerheblicher Rechtsverletzung<br />

außerhalb des geschäftlichen Verkehrs<br />

Mailen Sie uns Ihre Fragen!<br />

Im monatlichen Wechsel mit aktuellen Fachbeiträgen<br />

lässt das <strong>Linux</strong>-<strong>Magazin</strong> in der Serie<br />

„Rechts-Rat“ Leserfragen durch einen<br />

Rechtsanwalt kompetent beantworten. Was<br />

immer Sie beschäftigt oder ärgert oder was<br />

Sie einfach nur wissen möchten: Schreiben<br />

Sie eine entsprechende E-Mail an die Adresse<br />

[rechtsrat@linux-magazin. de].<br />

Die Themen dürfen von Software lizenzen bis<br />

zum Hardwarekauf reichen. Die Redaktion<br />

behält es sich vor, abgedruckte Zuschriften<br />

zu kürzen und eventuell enthaltene persönliche<br />

Daten zu ändern.


auf 100 Euro gedeckelt ist. Zum anderen<br />

betrifft das den Auskunftsanspruch gegen<br />

Provider auf Bekanntgabe der IP-Zuordnung,<br />

also auf Nennung der Person hinter<br />

dem Internetanschluss nach Paragraf<br />

101 UrhG [2].<br />

Eine Rechtsverletzung in gewerblichem<br />

Ausmaß kann nach Ansicht des Bundesgerichtshofs<br />

[3] auch vorliegen,<br />

wenn nur ein einziges urheberrechtlich<br />

geschütztes Werk veröffentlicht wird.<br />

Entweder weil dieses eine Werk besonders<br />

wertvoll ist (etwa ein Computerprogramm<br />

für mehrere 100 Euro) oder wenn<br />

eine hinreichend umfangreiche Datei<br />

innerhalb ihrer relevanten Verwertungsphase<br />

veröffentlicht wird – also in dem<br />

Zeitraum, in dem der Urheber das größte<br />

finanzielle Interesse an der Wahrung seiner<br />

Rechte hat.<br />

Als hinreichend umfangreiche Datei gelten<br />

jedenfalls ein ganzes Musikalbum<br />

oder ein Spielfilm, unabhängig davon,<br />

auf wie viele Teil-Dateien der Inhalt tatsächlich<br />

verteilt ist. Die relevante Verwertungsphase<br />

für Musik oder Filme lässt<br />

sich nur im Einzelfall bestimmen. Für aktuelle<br />

Pop-Musik gehen die Gerichte von<br />

einem Zeitraum nicht unter einem halben<br />

Jahr aus; für Filme kann sich dieser aufgrund<br />

der mehrstufigen Vermarktungsstrategie<br />

sogar erheblich verlängern.<br />

i Provider-Auskunft<br />

ohne Hindernisse?<br />

Kann der Auskunftsanspruch gegen einen Internetprovider<br />

nur bei gewerblichen Rechtsverletzungen,<br />

also bei mehreren oder schwerwiegenden<br />

Verstößen, oder auch bei geringeren<br />

Verstößen, also bei einmaligen Rechtsverletzungen,<br />

durchgesetzt werden?<br />

jd<br />

Der BGH sieht diese Frage klar: Nach<br />

Paragraf 101 UrhG hat ein Geschädigter<br />

auch dann Anspruch auf Auskunft gegen<br />

einen Dritten, wenn er nur dessen in<br />

gewerblichem Ausmaß erbrachte Dienstleistungen<br />

nutzte. Mit anderen Worten:<br />

Um die IP-Adresse eines Filesharers von<br />

dessen Provider zu erfragen, muss der<br />

Filesharer nicht in gewerblichem Umfang<br />

gegen das Urheberrecht verstoßen haben,<br />

jeder einfache Verstoß genügt. Es kommt<br />

vielmehr darauf an, ob der Provider seine<br />

Dienstleistungen in gewerblichem Umfang<br />

erbringt.<br />

In seiner Entscheidung [3] zitiert der<br />

BGH ausführlich aus den Entwürfen und<br />

Materialien zum Gesetzesentwurf, der<br />

die EU-Richtlinie zum Schutz geistigen<br />

Eigentums ins deutsche Recht umsetzen<br />

soll, lässt aber alle Passagen unberücksichtigt,<br />

in denen dort klargestellt wird,<br />

dass auch der Auskunftsanspruch gegen<br />

den Provider „auf jeden Fall dann vorgesehen<br />

werden muss, wenn die Rechtsverletzung<br />

in gewerblichem Ausmaß vorgenommen<br />

worden ist“.<br />

Anders ausgedrückt: Der Gesetzgeber<br />

wollte den Auskunftsanspruch gegen<br />

Rechts-Rat 01/2013<br />

Forum<br />

www.linux-magazin.de<br />

75<br />

3 AusgAben für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Neu!<br />

Kennenlernangebot:<br />

3 AusgAben<br />

für nur 5,90 E<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Forum<br />

www.linux-magazin.de Rechts-Rat 01/2013<br />

76<br />

© Alevtina Huzova, 123RF.com<br />

Abbildung 2: Wer haftet für Urheberrechtsverletzungen, wenn die ganze Familie einen Internetanschluss teilt?<br />

Provider auf Fälle „gewerblichen Ausmaßes“<br />

beschränken, hat das Gesetz aber<br />

anders formuliert – und der BGH hat’s<br />

entdeckt. Die Folge: Auch wegen geringer<br />

Rechtsverletzungen besteht künftig der<br />

Auskunftsanspruch gegen den Provider.<br />

Filesharing oder<br />

iUrlaub?<br />

Wir haben ein Schreiben einer Kanzlei bekommen,<br />

nach dem über unseren Familien-PC über<br />

eine Tauschbörse bestimmte Songs angeboten<br />

worden seien und wir dafür nun an die Plattenfirma<br />

bezahlen sollen. Laut der Aufstellung<br />

waren wir aber an vielen Tagen, an denen das<br />

angeblich war, nachweisbar (per Hotelrechnung)<br />

im Urlaub. Was sollen wir tun?<br />

Familie K.<br />

Nur wenn alle Familienmitglieder, die den<br />

Rechner und damit den Internetanschluss<br />

benutzen, nachweislich zu Zeiten, zu denen<br />

der Upload oder das Angebot von<br />

Musik über die Tauschbörse erfolgt sind,<br />

abwesend waren und niemand sonst den<br />

Internetanschluss nutzen konnte (Vorsicht<br />

bei WLAN-Routern!), wäre das<br />

geeignet, die Beweiswirkung der Aufstellung<br />

zu erschüttern. In der Regel gehen<br />

die Gerichte von glaubhaften Daten aus,<br />

die die Rechteverwerter von Dienstleistern<br />

erhalten, die sich auf die Ermittlung<br />

von IP-Adressen von Tauschbörsen-Benutzern<br />

spezialisiert haben.<br />

Allerdings wissen auch die deutschen Gerichte<br />

inzwischen von einer ganzen Reihe<br />

schwarzer Schafe, also von Software, an<br />

deren fehlerfreier Funktionsweise Zweifel<br />

bestehen. Soweit die Rechteverwerter<br />

die Zuordnung der IP-Adressen zu Ihrem<br />

Anschluss und das Filesharing-Angebot<br />

zu einem bestimmten Datum mit einem<br />

„Protokoll“ beweisen wollen, dürfen Sie<br />

als Anspruchsgegner das übrigens jederzeit<br />

mit Nichtwissen bestreiten. Bestreiten<br />

mit Nichtwissen bedeutet, dass<br />

man – entgegen der Gepflogenheit des<br />

Prozessrechts – zwar nicht konkret abweichende<br />

Tatsachen vorzutragen hat,<br />

aber auch ohne solche zweifeln darf:<br />

„Das stimmt nicht!“ statt „Nein, es war<br />

vielmehr so …“<br />

Die Rechtsprechung dazu ist uneinheitlich<br />

und noch in der Entwicklung: Während<br />

das Oberlandesgericht Hamburg<br />

noch in 2010 der Ansicht war, dass einfaches<br />

Bestreiten die „Indizwirkung“ der<br />

IP-Ermittlungsprotokolle nicht ohne Weiteres<br />

entkräften könne (Beschluss vom<br />

03.11.2010 – Az: 5 W 126/​10), sieht das<br />

OLG Köln dieses Jahr die Sache anders:<br />

Die Art und Weise, wie ein Kläger an die<br />

Zuordnung der IP komme, müsse vom<br />

Gericht nachvollzieh- und überprüfbar<br />

sein. Da die technischen Verfahren und<br />

Abläufe und besonders deren Wirksamkeit<br />

nicht verborgen bleiben dürften,<br />

müsse sich zumindest ein unabhängiger<br />

Sachverständiger ein Bild von der Software<br />

und deren Funktion machen.<br />

Es scheint, als ob die Gerichte in der<br />

Zwischenzeit dazugelernt hätten und<br />

nicht mehr blind und unkritisch die Angaben<br />

der Rechteverwerter, genauer der<br />

für diese tätigen Ermittler, übernehmen.<br />

Es lohnt sich in jedem Fall, sofern jeder<br />

Zugang über den betroffenen Internetanschluss<br />

zu bestimmten Zeiten ausgeschlossen<br />

werden kann, an denen der<br />

illegale Filetransfer erfolgt sein soll, dies<br />

auch vor Gericht zu bestreiten.<br />

Glaubt der Richter nicht mehr blind an<br />

die Angaben des „Protokolls“, muss ein<br />

Sachverständiger Einblick in die Funktionsweise<br />

des jeweils eingesetzten<br />

Programms nehmen. Eventuell bewegt<br />

das bei weniger seriösen Ermittlern den<br />

Rechteverwerter schon zur Aufgabe seiner<br />

Ansprüche. Wenn nicht, können Fehler<br />

im Protokoll natürlich ohne Weiteres<br />

dazu führen, dass auch alle anderen dort<br />

aufgeführten Daten und IP-Zuordnungen<br />

als möglicherweise fehlerhaft nicht mehr<br />

ausreichen, die geltend gemachten Ansprüche<br />

zu begründen.<br />

Übrigens: Auch wer einen WLAN-Router<br />

für den Internetzugang einsetzt, kann<br />

anhand der von diesem Gerät festgehaltenen<br />

Daten nachweisen, ob und wann<br />

zu bestimmten Zeiten ein Zugang erfolgt<br />

sein kann: Voraussetzung ist natürlich,<br />

dass die entsprechenden Log-Funktionen<br />

aktiviert sind und dass die Protokolle<br />

auch gesichert werden.<br />

Nachbildung oder<br />

iPlagiat?<br />

Darf man Software „nachbauen“? Also Funktionen<br />

eines bekannten Programms, etwa für<br />

Android-Apps, nachprogrammieren?<br />

Steve L.<br />

Sofern Sie keinen Code übernehmen,<br />

sondern lediglich Funktionalität nachbilden,<br />

begehen Sie keine Urheberrechtsverletzung,<br />

da sich der urheberrechtliche<br />

Schutz nur auf Ausdrucksformen und<br />

nicht auf Ideen, Verfahren, Arbeitsweisen<br />

oder mathematische Konzepte als solche<br />

erstreckt, also nicht auf Computerprogramme<br />

in Gänze.<br />

Der Europäische Gerichtshof hält nur<br />

Quellen und Objektcode eines Computerprogramms<br />

für dessen Ausdrucksformen.<br />

Der Autor<br />

RA Fred Andresen ist Mitglied der Rechtsanwaltskammer<br />

München und der Arbeitsgemeinschaft<br />

Informationstechnologie im Deutschen Anwaltverein<br />

(DAVIT).


fläche unabhängig<br />

da von als eigene geistige<br />

Schöpfung bereits<br />

vom Urheberrecht geschützt<br />

sei [5].<br />

Es spricht also nichts<br />

dagegen, die Funktionen<br />

eines bekannten<br />

Programms in der Eigenentwicklung<br />

einer<br />

Android-App oder<br />

auch in Software für<br />

den <strong>Linux</strong>-Desktop<br />

Abbildung 3: Kopie oder nicht? Bei Software ist das Nachbauen erlaubt, nachzubilden. Die<br />

Code zu übernehmen dagegen unter Umständen strafbar!<br />

GNU-Tools folgen seit<br />

vielen Jahren diesem<br />

In Bezug auf die grafische Benutzeroberfläche<br />

sieht der Gerichtshof keine Möglichkeit<br />

der Vervielfältigung, sondern nur<br />

ein Element des Programms, mit dessen<br />

Hilfe die Anwender die Programmfunktionen<br />

nutzen. [4]<br />

Allerdings hat der EuGH auch entschieden,<br />

Prinzip und stellen zum beträchtlichen<br />

Teil freie Versionen von bekannten Unix-<br />

Programmen dar. Allerdings sollten Sie<br />

die Bedienungsoberfläche nicht einfach<br />

kopieren, weil die schon geschützt sein<br />

könnte. Bei der Entwicklung der Mobil-<br />

App sollte jedoch ohnehin eine Neuge-<br />

dass eine grafische Benutzerober- staltung fällig werden. (mfe) <br />

n<br />

© fotum, 123RF.com<br />

Infos<br />

[1] AG Frankfurt, Urteil vom 27.08.2012 –<br />

32 C 1286/​12-48: [http:// www. lareda.​<br />

hessenrecht. hessen. de/ jportal/ portal/ t/​<br />

s15/ page/ bslaredaprod. psml?& doc. id=<br />

JURE120015956%3Ajuris‐r01& showdoccase<br />

=1& doc. part=L]<br />

[2] Urheberrechtsgesetz:<br />

[http:// www. gesetze‐im‐internet. de/ urhg/]<br />

[3] BGH, Beschluss vom 19.04.2012 – 1 ZB 80/​11:<br />

[http:// juris. bundesgerichtshof. de/​<br />

cgi‐bin/ rechtsprechung/ document. py?​<br />

Gericht=bgh& Art=en& Datum=Aktuell& nr=<br />

61400& linked=bes& Blank=1& file=<br />

dokument. pdf]<br />

[4] EuGH, Urteil vom 2.5.2012 – C-406/​10:<br />

[http:// medien‐internet‐und‐recht. de/​<br />

volltext. php? mir_dok_id=2399]<br />

[5] EuGH, Urteil vom 22.12.2010 – C-393/​09:<br />

[http:// curia. europa. eu/ juris/ document/​<br />

document. jsf? text=& docid=83458&​<br />

pageIndex=0& doclang=DE& mode=req&​<br />

dir=& occ=first& part=1]<br />

Rechts-Rat 01/2013<br />

Forum<br />

www.linux-magazin.de<br />

77<br />

Digitales aBO<br />

linuxUser: Das Monatsmagazin für die Praxis<br />

DigisUB *<br />

nur 56,10 €<br />

im Jahr (12 PDFs)<br />

* Digitales Abo, jederzeit kündbar<br />

Jetzt Bestellen Unter:<br />

www.linux-user.de/digisub<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de


Forum<br />

www.linux-magazin.de Bücher 01/2013<br />

78<br />

Bücher über <strong>Linux</strong>-HA sowie über PHP-Webprogrammierung<br />

Tux liest<br />

Der Fortschritt in der <strong>Linux</strong>-Welt hat einem Cluster-Buch zu einer modernisierten dritten Auflage verholfen.<br />

Das weite Feld der Webprogrammierung mit PHP versucht das zweite Werk aufzurollen. Udo Seidel, Gunnar Wrobel<br />

Hochverfügbarkeit mit <strong>Linux</strong> hat zwar<br />

eine wechselhafte Geschichte, seit Pacemaker<br />

& Co. befindet sich das HA-Schiff<br />

aber in ruhigeren Gewässern. In der dritten<br />

Auflage seines Clusterbau-Buches<br />

zeigt Michael Schwartzkopff, wie Hochverfügbarkeit<br />

mit dem freien Betriebssystem<br />

funktioniert.<br />

Immer bereit<br />

Info<br />

Michael Schwartzkopff:<br />

Clusterbau: Hochverfügbarkeit<br />

mit <strong>Linux</strong><br />

O’Reilly, 3. Auflage, 2012<br />

420 Seiten<br />

45 Euro<br />

ISBN: 978-3-86899-358-5<br />

Die rasche und teilweise turbulente Entwicklung<br />

des ursprünglichen Heartbeat-<br />

Projekts macht die Aktualisierung eines<br />

solchen Buches unumgänglich. Auch die<br />

Technikbasis wandelt sich: Cluster-Interconnects<br />

über serielle Schnittstellen sind<br />

nicht mehr zeitgemäß und finden daher<br />

hier auch keine Beachtung.<br />

Die Forderung „Das System muss immer<br />

verfügbar sein“ ist einfach formuliert,<br />

doch die Umsetzung hat einige Hürden zu<br />

überwinden. Michael Schwartzkopff führt<br />

sehr schön ins Thema Hochverfügbarkeit<br />

ein. Zunächst erklärt er Begriffe wie „immer“<br />

oder „Dienst“. Das nächste Kapitel<br />

widmet sich der Installation und deckt<br />

die wichtigsten <strong>Linux</strong>-Distributionen wie<br />

Debian, Ubuntu, Red Hat und SLES ab.<br />

Dieser Abschnitt endet mit dem Aufbau<br />

eines Mini-Clusters – für ungeduldige Leser,<br />

so der O-Ton des Autors.<br />

Anschließend beschreibt Schwartzkopff<br />

das Einrichten von Ressourcen und erklärt<br />

dabei die XML-Konfigurationsdateien.<br />

Den Abschluss bilden fortgeschrittene<br />

Konfigurationen wie Gruppen oder<br />

Klone von Ressourcen. Bei der Verwaltung<br />

von Clustern stellt der Autor neben<br />

der Kommandozeile auch ein Java-GUI<br />

und die High Availability Web Konsole<br />

(HAWK) vor.<br />

Die Beispielszenarien umfassen einen<br />

hochverfügbaren NFS-Server und virtuelle<br />

Rechner als Cluster-Ressourcen. Neu<br />

ist das Kapitel über die Infrastruktur, welches<br />

das HA-Konzept über die Server-<br />

Grenzen hinaus erweitert.<br />

Für rund 45 Euro erhält der Leser eine<br />

umfassende Dokumentation zum Thema<br />

Hochverfügbarkeit mit <strong>Linux</strong>. Wer noch<br />

die erste Auflage von 2008 besitzt, sollte<br />

diese nun beiseitelegen und die aktuelle<br />

Ausgabe kaufen.<br />

Webprogrammierung<br />

Das weite Feld der Webprogrammierung<br />

beschreitet Arno Hollosi mit „Leistungsstarke<br />

PHP-Anwendungen“. Das<br />

Buch kombiniert Funktionalität wie den<br />

Umgang mit Geodaten, Zeitzonen und<br />

Internationalisierung mit Aspekten moderner<br />

Webanwendungen wie Ajax oder<br />

Websockets. Die einzelnen Kapitel sind<br />

auf den fortgeschrittenen Webprogrammierer<br />

zugeschnitten und mit Beispielcode<br />

garniert.<br />

Dabei nehmen die PHP-spezifischen Teile<br />

des Buches aber grob geschätzt nur 30<br />

Prozent des Umfangs ein. Es ist selbstverständlich,<br />

dass bei der Arbeit mit Technologien<br />

wie Ajax oder Websockets eine<br />

gute Menge Code in Javascript anfällt und<br />

die Datenbank-Kapitel SQL-Code präsentieren.<br />

Die PHP-Beispiele selbst kümmern<br />

sich um die rudimentäre Umsetzung auf<br />

der Server-Seite.<br />

Die Vielfalt der Themen macht es schwer,<br />

zu bestimmen, wem dieses Buch zu empfehlen<br />

ist. Wer beispielsweise eine Webanwendung<br />

programmiert, die vor allem<br />

mit Geodaten hantiert, wäre mit ein oder<br />

zwei Büchern zum Thema besser beraten.<br />

Dieses Problem gilt für die meisten<br />

Kapitel: Sie bleiben gefangen zwischen<br />

dem Versuch, einen Einblick zu liefern,<br />

und der Hoffnung, als umfassende Lösungshilfe<br />

zu dienen.<br />

Der zweite Teil des Werks kümmert sich<br />

um die Performance-Optimierung in Bereichen<br />

wie HTTP, HTML, PHP, Caching<br />

und Datenbanken. Das formlose Nebeneinander<br />

dieser Themen kann aber nicht<br />

überzeugen. Ein ganzheitlicher Blick auf<br />

die Optimierung einer Webanwendung<br />

und der Brückenschlag zwischen den<br />

Themen wäre um Längen hilfreicher als<br />

die bloße Auflistung von Optimierungstechniken.<br />

Am ehesten bedient dieser Titel jene Leser,<br />

die einen Überblick über fortgeschrittene<br />

Aspekte der Webprogrammierung<br />

suchen. Leider sind die Kapitel aber an<br />

vielen Stellen zu technisch und detailliert,<br />

als dass sich das Buch mit diesem Fokus<br />

leicht lesen ließe. Mangelndes Fachwissen<br />

kann man Hollosi aber keinesfalls<br />

vorwerfen: Jeder Webprogrammierer, ob<br />

fortgeschritten oder nicht, dürfte in dem<br />

Buch Informationen finden, die für ihn<br />

neu sind. (mhu) <br />

n<br />

Info<br />

Arno Hollosi:<br />

Von Geodaten bis<br />

NoSQL: Leistungsstarke<br />

PHP-Anwendungen<br />

Hanser, 2012<br />

530 Seiten<br />

35 Euro<br />

ISBN: 978-3-446-42995-6


Einfach auf LINUX<br />

umsteigen!<br />

DigiSub-Mini * : 2 digitale Ausgaben Easy<strong>Linux</strong>!<br />

5€<br />

FÜR 2 AUSGABEN<br />

IHRE VORTEILE<br />

❱<br />

❱<br />

❱<br />

❱<br />

Easy<strong>Linux</strong> ist ideal<br />

für Windows-Umsteiger<br />

mit Schritt-für-Schritt-<br />

Anleitungen zum Erfolg<br />

2x Testen ohne Risiko,<br />

das DigiSub-Mini ist<br />

jederzeit kündbar!<br />

Nutzbar auf Notebook<br />

und PC, Tablet oder<br />

Smartphone!<br />

JETZT GLEICH BESTELLEN!<br />

n Tel.: 07131 / 2707 274 n Fax: 07131 / 2707 78 601<br />

n URL: www.easylinux.de/abo n E-Mail: abo@easylinux.de<br />

*geht ohne Kündigung in ein digitales Jahresabo mit 4 Ausgaben pro Jahr über und ist jederzeit kündbar!


Forum<br />

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

80<br />

Auf den Punkt gebracht<br />

Leserbriefe<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-­magazin.­de].<br />

Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

Mail-Attachments<br />

10/​12, S. 61: Vielen Dank an Charly für<br />

den netten Artikel zum Mailen auf der<br />

Kommandozeile. Auf meinem Ubuntu<br />

ist »/usr/bin/mail« ein Link zu »heirloom‐mailx«,<br />

denn das beherrscht Anhänge.<br />

Sie lassen sich mit »mail ‐a Datei«<br />

hinzufügen.<br />

Irgendwann hatte ich mich mal geärgert,<br />

dass ich auf dem einen System (Suse)<br />

Anhänge verschicken konnte und auf<br />

einem anderen (Debian) nicht. Bis ich<br />

herausfand, dass Suse ein schlaueres<br />

Mailtool installiert. Seitdem verwende ich<br />

überall Heirloom-Mailx. Es steht unter<br />

SLES, Ubuntu und RHEL zur Verfügung,<br />

während Biabam nur in den Ubuntu-Paketarchiven<br />

steckt.<br />

Übrigens erklärt die Seite [http://​­mmj.​<br />

­dk/​­biabam/] schon in der ersten Zeile,<br />

was Biabam bedeutet: „Biabam Is A Bash<br />

Attachment Mailer.“<br />

Schlomo Schapiro, per E-Mail<br />

Restore im Eigenbau<br />

11/​12, S. 36: Ich wollte Arch <strong>Linux</strong> auf<br />

meinem Lenovo-Netbook updaten. Da<br />

ich den Rechner selten benutze, war der<br />

Stand allerdings ein halbes Jahr alt und<br />

die Aktualisierung schlug fehl. Nebenbei<br />

las ich den Artikel „Daten ausgraben“,<br />

und so kam ich auf die Idee, das Update<br />

über einen Restore zu erledigen.<br />

Ich versuchte mit Hilfe des Artikels einen<br />

Clone-Server aufzusetzen, was mir<br />

schließlich mit Fedora 14 gelang. Der<br />

PXE-Code von Lenovo scheint nicht der<br />

beste zu sein, deswegen dauerte es eine<br />

Weile, bis er das 99 MByte große Initram-FS<br />

übers Netzwerk geladen hatte.<br />

Außerdem baute ich das Kickfile nach,<br />

doch leider ohne Erfolg: Es brach immer<br />

ab und danach wollte Anaconda ein<br />

Fedora-System installieren.<br />

Daraufhin erstellte ich ein Konzept für<br />

einen selbst gemachten Clone-Server. Dabei<br />

sollte das Initram-FS möglichst klein<br />

sein. Zudem verzichtete ich auf einen<br />

Webserver und setzte auf NFS. Außerdem<br />

wollte ich eine Hochsprache verwenden,<br />

am liebsten Ruby.<br />

Mit Hilfe von »ldd« ermittelte ich alle<br />

benötigten Bibliotheken und legte mit<br />

folgendem Befehl eine Ramdisk an, die<br />

nur 25 MByte umfasst:<br />

find . ‐print0 | cpio ‐‐null ‐ovU<br />

‐‐format=newc | gzip ‐9 >U<br />

/tmp/initrd.cpio.gz<br />

Den Großteil der Ruby-Skripte wollte ich<br />

nicht in der Ramdisk haben, stattdessen<br />

legte ich sie auf NFS ab. Lediglich<br />

»start.rb«, das Kernelparameter entgegennimmt,<br />

ist im Initram-FS enthalten.<br />

Außerdem mountet es die NFS-Freigabe<br />

nach »/mnt/nfs« und lädt von dort die<br />

restlichen Ruby-Module.<br />

Das Modul »restore.rb« liest aus der Datei<br />

»disk.layout« die Partitionsinformation,<br />

formatiert die Festplatte, hängt die Partitionen<br />

ein und startet das Kopieren per<br />

Rsync. Daneben installiert es Grub und<br />

hängt die Partitionen wieder aus. Anschließend<br />

arbeitet »start.rb« weiter und<br />

veranlasst den Reboot. Im ersten Test<br />

dauerte ein Restore 80 Minuten. Das Modul<br />

»act.rb« dient dazu, den Rechner auf<br />

den aktuellen Stand zu bringen, danach<br />

folgt ebenfalls ein Neustart. Im Test dauerte<br />

ein Abgleich, der Firefox, Thunderbird,<br />

Libre Office und ein paar kleinere<br />

Tools hinzufügte, 7 Minuten.<br />

Die verwendeten Skripte habe ich mitgeschickt,<br />

sie sind noch ausbaufähig und<br />

haben die eine oder andere Macke. Sollte<br />

großes Interesse an meiner Arbeit bestehen,<br />

bin ich gerne bereit, das Projekt<br />

unter GPLv2 zu veröffentlichen.<br />

Sandy Marko Knauer, per E-Mail.<br />

Die Skripte stehen unter [http://​­www.​<br />

­linux‐magazin.​­de/​­static/​­listings/​­magazin/​­2013/​­01/​­leserbriefe/]<br />

zum Download<br />

bereit. Der Clone-Server im Artikel<br />

lief unter Fedora 17. (mhu)<br />

Bücher digitalisieren<br />

12/​12, S. 102: Zu Mike Schillis „Papierbuch<br />

am Ende“: Wie genau laufen<br />

Scannen und OCR ab? Macht Mike das<br />

auch alles unter <strong>Linux</strong> oder nimmt er<br />

Windows- oder Mac-Software? Ist das<br />

automatisch – also Buch füttern und am<br />

Abend wiederkommen? Wie viel manuelle<br />

Arbeit muss man investieren?<br />

Aaron Digulla, per E-Mail<br />

Der Scanner funktioniert via Sane oder<br />

Simple-Scan zwar unter <strong>Linux</strong>, aber das<br />

OCR fehlt dann, und mir ist keine gute<br />

Open-Source-OCR-Software bekannt.<br />

Zurzeit nehme ich deswegen mein Macbook<br />

zum Einscannen. Zur Software von<br />

Fujitsu muss ich noch anmerken, dass<br />

sie einiges zu wünschen übrig lässt, was<br />

den Arbeitsablauf und das Auflösen von<br />

Papierstaus angeht. Dass man mangels<br />

Open-Source-Lizenz nichts daran ändern<br />

kann, nervt gewaltig.<br />

Zur manuellen Arbeit: In dem Video unter<br />

[http://​­www.​­youtube.​­com/​­watch?​­v=uP4NbFaYZVI]<br />

ist zu sehen, wie’s geht.<br />

Die meisten Bücher zieht der Scanner ein,<br />

ohne sich zu verhaspeln, bei Zeitschriften<br />

und Glanzpapier muss ich oft manuell<br />

eingreifen. (Mike Schilli)<br />

n


Insecurity Bulletin: Information Disclosure im <strong>Linux</strong>-Kernel<br />

Bytes aus dem Kern<br />

Insecurity Bulletin 01/2013<br />

Know-how<br />

Die Reihe „Insecurity Bulletin“ widmet sich Sicherheitsproblemen in <strong>Linux</strong> und Open-Source-Software. Dabei<br />

dienen aktuelle Schwachstellen als Anschauungsmaterial. In dieser Folge geht es um eine Sicherheitslücke im<br />

»binfmt_misc«-Mechanismus des <strong>Linux</strong>-Kernels. Mark Vogelsberger<br />

www.linux-magazin.de<br />

81<br />

Mit dem »binfmt_misc«-Mechanismus<br />

erkennt der <strong>Linux</strong>-Kernel beliebige ausführbare<br />

Dateien und übergibt sie dem<br />

passenden Userland-Programm. Bei<br />

Skripten ist das einfach, denn in der ersten<br />

Zeile steht ein Shebang wie »#!/bin/<br />

bash«. Bei Binärdateien verwendet die<br />

»binfmt_misc«-Technik deren erste Bytes<br />

als Erkennungsmuster, die so genannte<br />

Magic Number.<br />

Die Zuordnung zwischen Muster und Interpreter<br />

ist in einer Datenbank auf dem<br />

System abgelegt. Unter <strong>Linux</strong> befindet<br />

sie sich standardmäßig in »/proc/sys/fs/<br />

binfmt_misc« im Proc-Dateisystem. Eine<br />

nähere Beschreibung ist beispielsweise<br />

im Slackware-Wiki nachzulesen [1].<br />

Geklaute Bytes<br />

Eine kürzlich entdeckte Schwachstelle in<br />

der Funktion »load_script()« der Kernel-<br />

Quelltextdatei »fs/binfmt_script.c« erlaubt,<br />

dass ein lokaler Angreifer Bereiche<br />

des Kernelspeichers auslesen kann [2].<br />

Der Entdecker, ein Hacker mit dem Pseudonym<br />

Halfdog, hat auch ein Shellskript<br />

als Proof-of-Concept-Exploit veröffentlicht<br />

(Listing 1).<br />

Dieser Code erzeugt mehrere Skripte, die<br />

sich gegenseitig aufrufen. Das bringt den<br />

Kernel durcheinander. Am Ende gelingt<br />

es dem Exploit, bestimmte Bereiche des<br />

Kernelstacks zu lesen und in eine Ausga-<br />

Infos<br />

[1] »binfmt_misc« im Slackware-<br />

Wiki: [http://docs.slackware.com/<br />

howtos:hardware:binfmt_misc]<br />

[2] Beschreibung und Exploit-Code: [http://​<br />

www. halfdog. net/ Security/ 2012/ <strong>Linux</strong><br />

KernelBinfmtScriptStackDataDisclosure/]<br />

bedatei zu schreiben. Das Problem<br />

tritt auf, weil der Kernel bei jedem<br />

»load_script()«-Aufruf den Interpreter<br />

auf dem Stackframe ablegt. In<br />

Listing 1 ruft sich das Programm<br />

immer wieder selbst auf.<br />

Zum Schutz dagegen ist im Kernel-<br />

Quelltext »BINPRM_MAX_RECUR-<br />

SION« als maximale Rekursionstiefe<br />

eingebaut. Ist diese erreicht,<br />

kehrt die Funktion »load_script()«<br />

zurück, ohne etwas zu tun. Dabei<br />

behandelt der Code den auf die<br />

Interpreter zeigenden Stackpointer<br />

»bprm‐>interp« nicht korrekt.<br />

Deshalb zeigt dieser schließlich auf<br />

eine ungültige Adresse, wird also<br />

zu einem so genannten Dangling<br />

Pointer.<br />

Das wäre eigentlich unproblematisch, da<br />

er nicht mehr benötigt wird, weil die maximale<br />

Rekursionstiefe erreicht ist. Sollte<br />

aber die Kerneloption »CONFIG_MODU-<br />

LES« gesetzt sein, so wird der Speicher,<br />

auf den »bprm‐>interp« zeigt, an »exec<br />

args« angehängt. So erhält ein Angreifer<br />

Lesezugriff auf den Kernelstack.<br />

Listing 1: Proof of Concept<br />

01 #!/bin/bash<br />

02 [...]<br />

03 # Copyright (c) 2011 halfdog <br />

04 [...]<br />

05 fileNum=0<br />

06 filePrefix=$'\r'"file‐AAAAAAAAAAAAAAAAAAAAAAAA<br />

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />

AAAAAAAAAA"<br />

07 <br />

08 while [ "${fileNum}" != 60 ]; do<br />

09 lastNum="${fileNum}"<br />

10 lastName="${filePrefix}‐${lastNum}"<br />

11 let fileNum=fileNum+1<br />

12 fileName="${filePrefix}‐${fileNum}"<br />

Halfdog hat auf der Kernel-Mailingliste<br />

mit Entwicklern wie Kees Cook und<br />

Randy Dunlap diskutiert, wie sich das<br />

Problem durch ein Patch für »fs/binfmt_<br />

script.c« schließen lässt. Bis Redaktionsschluss<br />

gab es allerdings noch keine<br />

verabschiedete Lösung. Das Sicherheitsproblem<br />

hat die CVE-Nummer 2012-4530<br />

zugeteilt bekommen. (mhu) n<br />

13 cat


Programmieren<br />

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

84<br />

Funktionale Programmierung in Scala<br />

Mainstream-tauglich<br />

Die Programmiersprache Scala setzt die Kunst des funktionalen Programmierens pragmatisch um. Mit wenig<br />

Schreibarbeit, Funktionen höherer Ordnung und Comprehensions erfreut sie den Entwickler, im Orchester mit<br />

Java zelebriert sie bei Twitter & Co. spektakuläre Auftritte. Mathias Huber<br />

fand am Programming Methods Laboratory<br />

der École Polytechnique Fédérale<br />

De Lausanne (EPFL) statt, wo Professor<br />

Odersky bis heute die Sprache weiterentwickelt<br />

und pflegt [3]. Scala steht unter<br />

einer BSD-artigen Open-Source-Lizenz<br />

und lässt sich auf <strong>Linux</strong>-Distributionen<br />

wie Debian, Ubuntu oder Open Suse aus<br />

dem Paketarchiv installieren.<br />

Ein minimales Scala-Programm sieht aus<br />

wie Listing 1. Es besteht aus einem Objekt<br />

mit einer »main()«-Methode. Quelltextdateien<br />

in Scala übersetzt der Scala-<br />

Compiler zu Java-Klassen:<br />

© Michal Bednarek, 123RF.com<br />

01 object HelloWorld {<br />

02 def main(args: Array[String]) {<br />

03 println("Hello, world!")<br />

04 }<br />

05 }<br />

Listing 1: »HelloWorld.scala«<br />

Funktionale Programmiersprachen wie<br />

Lisp oder Haskell verlassen nur höchst<br />

selten ihr eigenes Ökosystem. Wer nicht<br />

gerade Emacs-Erweiterungen schreibt<br />

oder den Fenstermanager Xmonad verwendet,<br />

kommt mit ihnen kaum in Berührung.<br />

Die Programmiersprache Scala<br />

[1] dagegen ist weitgehend mit Java interoperabel<br />

und kompiliert zu Bytecode<br />

für die JVM.<br />

Damit wird sie für den IT-Mainstream<br />

tauglich. Das zeigt auch ihr Einsatz bei<br />

Internetunternehmen wie Twitter, Linked<br />

In oder Foursquare, die Teile ihrer Produktivsysteme<br />

in Scala umgesetzt haben.<br />

Am Abend des 7. November 2012<br />

bescherten die US-Wahlen Twitter einen<br />

neuen Rekord mit rund 10 000 Tweets<br />

pro Sekunde. Die in einer Mischung aus<br />

Scala und Java umgesetzte Serversoftware<br />

bewältigte die Spitzenlast ohne<br />

Ausfälle [2].<br />

Javas Großnichte<br />

Die Verwandtschaft mit Java war Scala bereits<br />

in die Wiege gelegt. Ihr Erfinder, der<br />

deutsche Informatiker Martin Odersky,<br />

arbeitete ab 1995 zusammen mit Philip<br />

Wadler an einer funktionalen Sprache für<br />

die Java-VM. Die Resultate finden sich in<br />

Java Generics und dem Java-Compiler<br />

»javac«. Daneben entwickelte er nach ein<br />

paar Umwegen ab 2001 Scala, die 2003<br />

die offizielle Veröffentlichung erfuhr. Sie<br />

scalac HelloWorld.scala<br />

Das Ergebnis lässt sich mit der JVM ausführen:<br />

scala ‐classpath . HelloWorld<br />

Daneben gibt es wie bei traditionellen<br />

funktionellen Sprachen eine interaktive<br />

Kommandozeile mit der Read Eval Print<br />

Loop (REPL). Das Kommando »scala« eröffnet<br />

die Sitzung (Abbildung 1). Eine<br />

weitere Variante besteht darin, Scala-<br />

Code in ein Shellskript zu verpacken, das<br />

ihn an das Scala-Utility weiterreicht. Im<br />

Hintergrund kompiliert dieses den Quelltext<br />

und führt ihn mit dem installierten<br />

JDK aus. Listing 2 schreibt „Hallo“ zusammen<br />

mit dem ersten Kommandozeilen-Argument<br />

auf das Terminal.<br />

Auf der Basis von Eclipse gibt es eine<br />

integrierte Scala-Entwicklungsumgebung<br />

[4]. Sie stammt von der Firma Typesafe,<br />

deren Chefarchitekt Martin Odersky ist<br />

und die zahlreiche Produkte und Dienstleistungen<br />

rund um die Programmiersprache<br />

anbietet. Die Open-Source-IDE<br />

validiert den Code während der Eingabe,<br />

hilft beim Formatieren und Überarbeiten<br />

und stößt den Übersetzungsvorgang an.


Abbildung 1: Zwiegespräch: Scala besitzt eine interaktive Kommandozeile.<br />

Daneben integriert sie Unit-Tests (Abbildung<br />

2). Für die Umgebungen Netbeans,<br />

Intelli-J sowie Emacs und Vim existieren<br />

ebenfalls Scala-Erweiterungen.<br />

Scala ist eine funktionale Programmiersprache.<br />

Das heißt, sie konzentriert sich<br />

auf Funktionen und ihre Rückgabewerte.<br />

Diese Funktionen geben bei gleicher Eingabe<br />

stets das gleiche Ergebnis aus. Ihr<br />

Verhalten lässt sich daher mit Unit-Tests<br />

auf Korrektheit prüfen, bevor der Entwickler<br />

sie zu einer größeren Anwendung<br />

zusammensetzt.<br />

Zudem vermeidet es die funktionale Programmierung,<br />

den Wert bestehender Variablen<br />

zu ändern. Der Scala-Compiler<br />

setzt dieses Prinzip praktisch um. Die<br />

Zeilenfolge<br />

val x = 3<br />

x = 4<br />

quittiert er mit einer Fehlermeldung. Das<br />

Vermeiden eines solchen Mutable State<br />

macht funktionale Sprachen für die parallele<br />

und nebenläufige Programmierung<br />

interessant: Wenn kein Thread den Zustand<br />

eigenmächtig ändert, passt am<br />

Ende alles wieder zusammen. Diese Eigenschaft<br />

macht Scala<br />

laut Odersky zu einer<br />

hervorragenden Sprache<br />

für die Multicore-<br />

Ära: Im Idealfall reiche<br />

es, ».par« an ein Array<br />

anzuhängen [5].<br />

Scala erlaubt als pragmatische<br />

Spra che jedoch<br />

Ausnahmen:<br />

Ausschließlich die mit<br />

»val« zugewiesenen<br />

Werte sind unveränderlich,<br />

stellt der Programmierer stattdessen<br />

»var« voran, darf er den Wert ändern.<br />

Die Programmiersprache erlaubt auch<br />

gelegentlich den imperativen Programmierstil<br />

– schließlich gibt es Aufgaben,<br />

die dieser am besten löst.<br />

Lisp-Erbe<br />

Ansonsten atmet alles an Scala den funktionalen<br />

Geist von Lisp, Scheme und Haskell:<br />

Funktionen behandelt die Sprache<br />

als Bürger erster Klasse. Sie dürfen allerorten<br />

definiert sein, auch als innere<br />

Funktionen innerhalb anderer. Daneben<br />

kann der Programmierer sie wie jeden<br />

anderen Wert behandeln und auch als<br />

Eingabe oder Rückgabe für andere Funktionen<br />

verwenden [6].<br />

Die kurze Interaktion in Abbildung 3<br />

zeigt mehrere funktionale Charakteristika:<br />

Funktionen höherer Ordnung wie<br />

Map nehmen andere Funktionen als Argumente<br />

entgegen. In diesem Fall ist das<br />

die anonyme Funktion »x => x * 2«, die<br />

einen Wert auf sein Doppeltes abbildet.<br />

Map wendet sie auf jedes Element der<br />

Liste an. Statt der Multiplikation könnte<br />

der Programmierer auch eine Funktion<br />

übergeben, die jedes Element potenziert,<br />

seine Quadratwurzel zieht oder eine andere<br />

Operation vornimmt.<br />

Im Unterschied zu Java erlaubt Scala<br />

auch die Infix-Notation »li map f«, die<br />

sich in machen Fällen leichter liest als<br />

»li.map(f)«. Ebenfalls bemerkenswert:<br />

Scala ist statisch typisiert, und dennoch<br />

braucht der Anwender den Datentyp<br />

nicht immer anzugeben. Der Compiler<br />

beherrscht Typeninferenz und bemerkt<br />

im Beispiel automatisch, dass die Elemente<br />

der Liste vom Typ Integer sind.<br />

Rekursion<br />

Wo imperative Sprachen For- und<br />

While-Schleifen verwenden, um mehrere<br />

Elemente zu verarbeiten, benutzt<br />

Scala Rekursion. Dies demonstriert die<br />

Funktion »myReverse()« in Listing 3, die<br />

die Reihenfolge der Element einer Liste<br />

umkehrt. Zu diesem Zweck nimmt sie<br />

das erste Element (»l.head«) und hängt<br />

es an den verbleibenden Teil (»l.tail«)<br />

der Liste an. Anschließend ruft sich die<br />

Funktion in Zeile 3 selbst auf, mit dem<br />

Listenrest als Parameter, um auch diesen<br />

umzukehren. Mit jedem Durchgang der<br />

Rekursion kürzt die Funktion »head()«<br />

die verbleibende Liste um ein Element,<br />

bis sie schließlich leer ist. Damit wird<br />

die Bedingung »l.isEmpty« wahr und die<br />

Rekursion endet.<br />

Beim Einsatz von Rekursion muss der<br />

Programmierer diese so genannte Abbruchbedingung<br />

richtig definieren,<br />

wenn er nicht durch Endlosschleifen den<br />

Speicher zum Überlauf bringen will. Die<br />

Funktion in Listing 3 funktioniert im Üb-<br />

Scala 01/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

85<br />

Listing 2: Scala als Skript<br />

01 #!/bin/sh<br />

02 exec scala "$0" "$@"<br />

03 !#<br />

04 <br />

05 println("Hallo " + args(0))<br />

Abbildung 2: Auf der Basis von Eclipse gibt es eine Scala-IDE, die das Kompilieren und Testen vereinfacht.<br />

Listing 3: Rekursion<br />

01 def myReverse[T](l: List[T] ): List[T] = {<br />

02 if (l.isEmpty) l<br />

03 else myReverse(l.tail) :+ l.head<br />

04 }<br />

05 <br />

06 val l = List(1,2,3,4)<br />

07 myReverse(l)


Programmieren<br />

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

86<br />

rigen für Listen, die einen beliebigen Elementtyp<br />

enthalten, sei es eine Ganzzahl,<br />

ein Buchstabe, wiederum eine Liste oder<br />

ein selbst gemachter Datentyp. Der Platzhalter<br />

»T« fungiert als Typenparameter. Er<br />

stellt auch sicher, dass die umgedrehte<br />

Liste den Elementtyp beibehält.<br />

Objektorientiert<br />

Um Ordnung in Datentypen und Funktionen<br />

zu bringen, verwendet Scala wie<br />

Java Objektorientierung. Die Standardbibliothek<br />

genauso wie maßgeschneiderter<br />

Code definieren Klassen wie etwa »List«,<br />

aus denen man durch Instanzierung konkrete<br />

Objekte wie etwa die Liste »l« in<br />

Listing 2 erzeugt. Klassen bündeln die<br />

Eigenschaften der Objekte und enthalten<br />

zudem Methoden, also jene Funktionen,<br />

die angeben, was der Programmierer mit<br />

einem Objekt anstellen darf.<br />

Ein hierarchisches System von über- und<br />

untergeordneten Klassen regelt die Vererbung:<br />

Subklassen erben Eigenschaften<br />

und Methoden von den übergeordneten.<br />

Scala kennt auch abstrakte Klassen, die<br />

sich nicht selbst instanzieren lassen. Sie<br />

dienen lediglich dazu, gemeinsame Eigenschaften<br />

und Methoden auf ihre Unterklassen<br />

zu vererben.<br />

01 abstract class GeoObject {<br />

02 def symbolize: String<br />

03 }<br />

04 <br />

05 class Point extends GeoObject {<br />

06 def symbolize: String = "."<br />

07 }<br />

08 <br />

09 class Circle(r: Double) extends GeoObject {<br />

10 def symbolize: String = "O"<br />

11 def area: Double = r * r * 3.14<br />

12 }<br />

13 <br />

14 val p = new Point<br />

15 val c = new Circle(2.0)<br />

16 <br />

17 p.symbolize<br />

18 c.symbolize<br />

19 c.area<br />

Listing 4: Abstrakte Klasse<br />

Abbildung 3: Funktionen lassen sich in Scala wie<br />

gewöhnliche Objekte behandeln und auch an andere<br />

Funktionen übergeben.<br />

In Listing 4 ist eine abstrakte Klasse<br />

»GeoObject« für geometrische Objekte<br />

definiert. Sie schreibt ihren Unterklassen<br />

vor, die Methode »symbolize()« umzusetzen.<br />

Das tun »Point« und »Circle«,<br />

indem sie jeweils einen Punkt oder den<br />

Buchstaben O ausgeben. Zudem besitzt<br />

»Circle« noch eine weitere Methode zur<br />

Berechnung der Kreisfläche.<br />

Scala benutzt Mehrfachvererbung mittels<br />

so genannter Traits, die fast genauso wie<br />

abstrakte Klassen notiert werden. Sie entsprechen<br />

in etwa den Interfaces in Java.<br />

Eine Scala-Klasse kann zwar nur eine<br />

einzige übergeordnete Klasse beerben,<br />

aber mehrere Traits.<br />

Collections<br />

Die gebräuchlichsten Datentypen fasst<br />

Scala unter dem Begriff Collections zusammen.<br />

Sie lassen sich mit dem Vokabular<br />

von ein paar Dutzend Methoden<br />

bearbeiten [7]. Dazu gehört die Liste als<br />

klassisches Arbeitspferd der funktionalen<br />

Programmierung (Abbildung 4). Aufgrund<br />

ihres Aufbaus aus Zellen macht sie<br />

den Zugriff auf das erste Element schnell,<br />

am Ende oder in der Mitte aber langsam.<br />

Scala stellt der Liste daher den »Vector«<br />

zur Seite, der ebenso wie sie selbst eine<br />

Unterklasse der »Sequence« darstellt.<br />

Der Vektor besitzt ein ausgeglicheneres<br />

Zugriffsmuster, da er eine Baumstruktur<br />

verwendet, die sich für Random Access<br />

besser eignet.<br />

Daneben gibt es in Scala »Range«, eine<br />

Sequenz von Ganzzahlen in festem Abstand.<br />

Die Notation ist denkbar prägnant:<br />

Mit »2 until 50 by 2« kann der<br />

Programmierer etwa alle geraden Zahlen<br />

bis ausschließlich 50 beschreiben. Die<br />

Typen String und Array leiht sich Scala<br />

von Java, weshalb sie nicht fest in der<br />

Scala-Hierarchie verankert sind.<br />

Die Geschwister der Sequences sind »Set«<br />

und »Map«, die ebenfalls zu den Collections<br />

gehören. Ein Set enthält im Unterschied<br />

zur Liste keine doppelten Elemente<br />

und lässt sich mit Operationen der<br />

Mengenlehre abfragen und bearbeiten.<br />

Die »Map« besteht aus Schlüssel-Wert-<br />

Paaren. Sie stellt nicht nur eine Collection<br />

dar, sondern auch eine Funktion. Eine<br />

Map mit der Definition<br />

val descriptor = Map (0 ‐> "Stdin", 1 ‐>U<br />

"Stdout", 2 ‐> "Stderr" )<br />

lässt sich daher wie eine Funktion auf<br />

einen Schlüssel anwenden. Der Aufruf<br />

»descriptor(2)« ergibt die Standardfehlerausgabe.<br />

Eine besondere Scala-Sequenz ist der<br />

»Stream«. Er ähnelt der Liste, doch der<br />

zweite Teil seiner Zellen wird nur bei<br />

Bedarf ausgewertet. Solange keine andere<br />

Funktion sie als Argumente benötigt,<br />

Listing 5: For-Comprehension<br />

01 for {<br />

02 i


Abbildung 6: Wenige Zeilen Scala genügen, um das Einmaleins als For-<br />

Comprehension zu formulieren.<br />

berechnet Scala diesen Teil auch nicht.<br />

Die Strategie der Lazy Evaluation, in<br />

der Sprache Haskell standardmäßig eingesetzt,<br />

kann der Scala-Programmierer<br />

auch für andere Typen wählen, indem<br />

er schreibt:<br />

lazy val x = Ausdruck<br />

Lazy Streams ermöglichen es dem Programmierer,<br />

mit unendlichen Sequenzen<br />

zu arbeiten, ohne dass der Rechner<br />

heiß läuft. Solange er lediglich einen Teil<br />

der Sequenz weiterverarbeitet, evaluiert<br />

Scala auch nur diesen. Abbildung 5 zeigt<br />

zusammenfassend den Aufbau der Typen<br />

»Stream«, »List« und »Vector«.<br />

Gib Zucker<br />

Eine effiziente Möglichkeit, in Scala Collections<br />

zu definieren, bieten die so genannten<br />

For-Comprehensions. Nach dem<br />

Schlüsselwort »for« folgen in geschweiften<br />

Klammern ein oder mehrere Generatoren,<br />

die Sequenzen erzeugen. Nach der<br />

Klammer kommen »yield« und der Ausdruck<br />

für das gewünschte Ergebnis.<br />

Was sich in der Theorie wenig greifbar<br />

anhört, ist in der Praxis verständlich und<br />

praktisch: Listing 5 formuliert mit einer<br />

For-Comprehension das gute alte Einmaleins.<br />

Die Generatoren »i« und »j« erzeugen<br />

je eine Sequenz der Zahlen 1 bis 9, der<br />

Yield-Ausdruck kombiniert<br />

alle zu dem bekannten<br />

Grundschul-<br />

Sprüchlein.<br />

Die als zweite genannte<br />

Range »j« wird<br />

schneller durchlaufen<br />

als »i«, darum steht sie<br />

in dem traditionellen<br />

Einmaleins-Sprüchlein<br />

auch am Anfang (siehe<br />

Abbildung 6). Innerhalb<br />

der geschweiften<br />

Klammern im Listing dürfte außerdem<br />

noch ein Filter stehen.<br />

Mit solchen Comprehensions kann der<br />

Scala-Programmierer seine Daten, die er<br />

typischerweise in Collections speichert,<br />

wirkungsvoll kombinieren, umformen<br />

und filtern. Sie sind eigentlich nur Syntactic<br />

Sugar, eine anwenderfreundliche<br />

Notation für eine Kombination aus den<br />

Funktionen »map()«, »flatMap()« und<br />

»filter()«, in die sie der Compiler übersetzt.<br />

Daher eignen sich alle Collections,<br />

die diese Methoden umsetzen, zur Verarbeitung<br />

mit Comprehensions.<br />

Frameworks<br />

Hiermit sind einige Features und Konstrukte<br />

von Scala beschrieben, aber<br />

längst nicht alle. Eine Tour auf der Scala-<br />

Homepage [8] stellt weitere vor, beispielsweise<br />

Mixins, Closures und Pattern<br />

Matching. Aus kleinen Bausteinen sind<br />

zudem leistungsfähige Bibliotheken und<br />

Frameworks entstanden. Dazu gehört<br />

Akka [9], ein Concurrency-Framework,<br />

das ähnlich wie die Programmiersprache<br />

Erlang das Actor-Konzept umsetzt. Für<br />

Webanwendungen stehen <strong>Play</strong> [10] und<br />

Lift zur Verfügung.<br />

Ein eigenes Buildtool existiert auch, es<br />

heißt SBT (Simple Build Tool, [11]) und<br />

ist selbstverständlich in Scala implementiert.<br />

Zum Einstieg in die Programmiersprache<br />

eignet sich beispielsweise das Tutorial<br />

beim Scala-Anwender Twitter [12].<br />

Das Standardwerk zur Sprache hat deren<br />

Erfinder Martin Odersky zusammen mit<br />

zwei Kollegen veröffentlicht [13]. Daneben<br />

gibt es von ihm ein unvollendetes<br />

Werk namens „Scala By Example“ [14],<br />

das auf der Homepage der Programmiersprache<br />

als PDF herunterzuladen ist. n<br />

Infos<br />

[1] Scala: [http:// www. scala‐lang. org]<br />

[2] Twitters Engineering Blog, „Bolstering<br />

our infrastructure“: [http://​<br />

engineering. twitter. com/ 2012/ 11/​<br />

bolstering‐our‐infrastructure. html]<br />

[3] Programming Methods Laboratory der<br />

EPFL: [http:// lamp. epfl. ch]<br />

[4] Scala-IDE: [http:// scala‐ide. org]<br />

[5] Martin Odersky, „Working Hard to Keep<br />

It Simple“: [http:// www. youtube. com/​<br />

watch? v=3jg1AheF4n0]<br />

[6] Rainer Grimm, „Raus aus der akademischen<br />

Nische: Funktionale Programmierung“:<br />

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

Online‐Artikel/ Funktionale<br />

‐Programmierung‐1‐Grundzuege]<br />

[7] Scala-Collections:<br />

[http:// docs. scala‐lang. org/ overviews/​<br />

collections/ introduction. html]<br />

[8] „A Tour of Scala“: [http:// www. scala‐lang.​<br />

org/ node/ 104]<br />

[9] Akka: [http:// akka. io]<br />

[10] <strong>Play</strong>: [http:// www. playframework. org]<br />

[11] SBT: [http:// www. scala‐sbt. org]<br />

[12] Twitters Scala School: [http:// twitter.​<br />

github. com/ scala_school/]<br />

[13] Martin Odersky, Lex Spoon, Bill Venners,<br />

„ Programming in Scala, Second Edition“:<br />

Artima, 2010<br />

[14] Martin Odersky, „Scala By Example“:<br />

[http:// www. scala‐lang. org/ sites/ default/​<br />

files/ linuxsoft_archives/ docu/ files/​<br />

ScalaByExample. pdf]<br />

Scala 01/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

87<br />

»Vector«<br />

1<br />

»List«<br />

[...]<br />

»Stream«<br />

2<br />

[...]<br />

1 ?<br />

3 »Nil« 1 2 3<br />

Abbildung 5: Der Aufbau wichtiger Scala-Datentypen: Die Liste erlaubt raschen Zugriff auf das erste Element, der Vektor nimmt auch große Sequenzen auf und<br />

schafft ein ausgeglichenes Zugriffsmuster. Der Stream verwendet Bedarfsauswertung und verrät seine Elemente erst, wenn sie angefordert werden.


Programmieren<br />

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

88<br />

Coffeescript statt Javascript<br />

Kurz und kräftig<br />

Zahlreiche Sprachen versuchen das in die Jahre gekommene Javascript zu verbessern oder sogar abzulösen.<br />

Dazu gehört das recht frische Coffeescript. Es nimmt einige behutsame, aber effiziente Vereinfachungen vor,<br />

lässt sich in Javascript-Code übersetzen und ist damit erstaunlich erfolgreich. Tim Schürmann<br />

© manun, photocase.com<br />

01 # Coffeescript<br />

02 autos =<br />

03 bmw:<br />

04 farbe: "Blau"<br />

05 baujahr: 1990<br />

06 vw:<br />

07 farbe: "Rot"<br />

08 baujahr: 1988<br />

An den Weihnachtsfeiertagen des Jahres<br />

2009 hatte Jeremy Ashkenas alle Hände<br />

voll zu tun. Mit großem Eifer veröffentlichte<br />

er hintereinander mehrere Versionen<br />

einer neuen Programmiersprache. Sie<br />

sollte einfacher zu lesen sein als Javascript<br />

und sich doch in Javascript-Code übersetzen<br />

lassen. Bereits zwei Jahre später<br />

integrierte das Ruby-on-Rails-Projekt die<br />

zwischenzeitlich Coffeescript [1] getaufte<br />

Sprache. Im September 2012 verkündete<br />

schließlich die Firma Dropbox, sie habe<br />

den kompletten Javascript-Code ihres<br />

Listing 1: Definition mit<br />

Einrückungen<br />

Browser-Clients nach Coffeescript portiert<br />

[2]. Die vom Cloudspeicherdienst<br />

vorgelegten Zahlen beeindrucken: Der<br />

Code des Dropbox-Clients schrumpfte<br />

um etwa 21 Prozent.<br />

Sanft verbessert<br />

Coffeescript ist allerdings keine komplett<br />

neu entwickelte Sprache. Jeremy<br />

Ashkenas hat sich einfach das gute alte<br />

Javascript genommen, darin ein paar<br />

komplexere Konstrukte gegen besser lesbare<br />

Abkürzungen ausgetauscht und das<br />

Ganze noch mit etwas Haskell und Ruby<br />

gewürzt. So darf der Programmierer beispielsweise<br />

anstelle von<br />

alert("Hallo Welt!");<br />

einfach kurz und knapp<br />

alert "Hallo Welt!"<br />

schreiben. Damit ist Coffeescript-Code einerseits<br />

wesentlich kompakter und somit<br />

leichter zu warten, andererseits können<br />

Programmierer bestehenden Javascript-<br />

Code einschließlich existierender Frameworks<br />

direkt in Coffeescript weiterverwenden.<br />

Wie im Fall von »alert« sind<br />

einige der kürzeren Schreibweisen optional,<br />

die meisten jedoch Pflicht.<br />

Da Coffeescript-Code zurzeit nicht direkt<br />

in Browsern läuft, stellen die Spracherfinder<br />

einen Compiler bereit, der Coffeecript-Code<br />

in normales Javascript überführt.<br />

Der dabei erzeugte Code soll für<br />

Menschen gut lesbar sein, beim Test mit<br />

Javascript Lint [3] nicht durch Syntaxfehler<br />

oder Warnungen auffallen, in jeder<br />

Javascript-Laufzeitumgebung funktionieren<br />

und zumindest genau so schnell sein<br />

wie äquivalenter, per Hand geschriebener<br />

Javascript-Code.<br />

Das alles versprechen zumindest Jeremy<br />

Ashkenas und seine mittlerweile<br />

zahlreichen Helfer. Als Bonus liegt dem<br />

Compiler noch ein kleiner Interpreter bei,<br />

der Coffeescript-Programme direkt auf<br />

der Kommandozeile ausführt. Wie man<br />

die Werkzeuge unter <strong>Linux</strong> zum Laufen<br />

bringt, verrät der Kasten „Installation“.<br />

Im Browser<br />

Die ersten Gehversuche mit Coffeescript<br />

kann der Neugierige aber auch direkt im<br />

Web machen. Dazu klickt er auf der Coffeescript-Homepage<br />

auf »Try Coffeescript«<br />

und hinterlegt seinen Code im blauen<br />

Fenster, der so genannten Coffeescript-<br />

Konsole. Diese übersetzt schon während<br />

des Tippens im Hintergrund den Code<br />

und zeigt das Resultat auf der rechten<br />

Seite an. Ein Klick auf »Run« führt die<br />

Eigenkreation schließlich aus.<br />

Wie das einfache Hallo-Welt-Beispiel weiter<br />

oben zeigt, darf der Coffeescript-Coder


das Semikolon am Zeilenende weglassen,<br />

der Zeilenumbruch dient als Ersatz.<br />

Auch die geschweiften Klammern haben<br />

ausgedient: Wie in Python klären Einrückungen,<br />

zu welchem Block eine Zeile<br />

gehört. Wie übersichtlich man damit ein<br />

Objekt definiert, zeigt Listing 1, den daraus<br />

erzeugten Javascript-Code Listing 2.<br />

Variablen darf der Programmierer direkt<br />

benutzen, das passende »var« ergänzt<br />

Coffeescript beim Kompilieren. Wie in<br />

Shellskripten leitet das Hash-Zeichen »#«<br />

einen Kommentar ein.<br />

Zahlenfolgen darf man prägnant als Bereich<br />

schreiben. So steht etwa »[1..10]«<br />

für die Zahlen von 1 bis 10. Diese Notation<br />

lässt sich in Coffeescript dazu verwenden,<br />

elegant Teile aus einem Array<br />

auszuschneiden. Ein Beispiel dafür zeigt<br />

Listing 3. Zwei Punkte zwischen den Positionsangaben<br />

– also »[1..3]« – übernehmen<br />

auch die Position 1 und die Position<br />

3 mit ins neue Array, bei drei Punkten<br />

– »[1...3]« – wandert das Element an Position<br />

3 (in Listing 3 der »BMW«) nicht<br />

mit in das neue Array.<br />

Funktional<br />

In Funktionsaufrufen darf man die Klammern<br />

weglassen. Den Ausdruck<br />

console.log fakultaet x<br />

übersetzt Coffeescript in »console.<br />

log(fakultaet(x))«. Für die Deklaration<br />

von Funktionen gibt es zudem eine<br />

vereinfachte Schreibweise. So fällt das<br />

Schlüsselwort »function« weg und der<br />

Rückgabewert steht hinter einem Pfeil<br />

»‐>«. Ebenso darf der Programmierer<br />

Argumente mit Standardwerten belegen.<br />

Coffeescript macht aus der Zeile<br />

quadrieren = (x = 2) ‐> x * x<br />

das Javascript aus Listing 4. Coffeescript-<br />

Funktionen dürfen beliebig viele Argumente<br />

übergeben bekommen. In Listing<br />

5 muss man die Funktion »a« mindestens<br />

mit zwei Argumenten aufrufen, etwa<br />

»a 1,2«. Diese beiden Zahlen landen in<br />

den Variablen »x« und »y«. Alle weiteren<br />

übergebenen Werte wandern in das Array<br />

»rest«. Die drei Punkte (Splats) zeigen<br />

an, dass der Aufrufer hier beliebig viele<br />

Werte übergeben darf. Listing 5 liefert<br />

somit als Ausgabe »3,4,5,6«.<br />

Möchte der Programmierer die Inhalte<br />

von zwei Variablen »a« und »b« vertauschen,<br />

benötigt er normalerweise eine<br />

dritte als Zwischenspeicher. Coffeescript<br />

kennt jedoch eine kürzere Notation:<br />

[a, b] = [b, a]<br />

Sie weist die Variableninhalte auf der<br />

rechten Seite den Variablen auf der linken<br />

zu. Auf der rechten Seite darf sogar ein<br />

beliebiges Array stehen. Dieses Konzept<br />

namens Destructuring Assignment soll<br />

übrigens auch in einer der nächsten Versionen<br />

des Standards Ecmascript Einzug<br />

halten [5].<br />

Mit dieser Notation lassen sich außerdem<br />

auch Funktionen schreiben, die mehrere<br />

Werte zurückgeben. Listing 6 zeigt den<br />

Trick: Dort gibt die Funktion »adresse«<br />

einfach ein Array mit den entsprechenden<br />

Werten zurück, die Coffeescript in<br />

der zweiten Zeile den Variablen »name«,<br />

»strasse« und »ort« zuweist. Wem jetzt<br />

der Kopf schwirrt, der sollte einen Blick<br />

auf den resultierenden Javascript-Code in<br />

Abbildung 2 werfen.<br />

Packstation<br />

Das Schlüsselwort »do« führt eine Funktion<br />

sofort aus. Ein einfaches Beispiel gibt<br />

Listing 7, die Javascript-Übersetzung<br />

zeigt Listing 8: Die Variable »quadrat«<br />

enthält dort nicht etwa eine Funktion,<br />

die »x * x« ausrechnet, sondern das Ergebnis<br />

»9«. Damit das funktioniert, stülpt<br />

»do« der Funktion »x * x« zunächst eine<br />

leere Funktion über, leitet dann alle Argumente<br />

weiter und startet das entstandene<br />

Konstrukt. Auf diese Weise lassen sich<br />

Listing 2: Javascript-Code zu<br />

Listing 1<br />

01 // Javascript<br />

02 var autos;<br />

03 <br />

04 autos = {<br />

05 bmw: {<br />

06 farbe: "Blau",<br />

07 baujahr: 1990<br />

08 },<br />

09 vw: {<br />

10 farbe: "Rot",<br />

11 baujahr: 1988<br />

12 }<br />

13 };<br />

Listing 3: Arrays manipulieren<br />

01 autos = ["VW", "Mercedes", "Ferrari", "BMW"]<br />

02 <br />

03 rennwagen = autos[1..3]<br />

04 formel1 = autos[1...3]<br />

05 <br />

06 alert rennwagen<br />

07 alert formel1<br />

Coffeescript 01/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

89<br />

Installation<br />

Der Coffeescript-Compiler ist selbst in Coffeescript<br />

geschrieben. Das hat den Vorteil, dass<br />

man ihn sogar in einem Browser ausführen<br />

kann. Der Kommandozeileninterpreter nutzt<br />

jedoch das Javascript-Framework Node.js [4].<br />

Zur Installation sind daher unbedingt Node.js<br />

sowie der Node Package Manager (»npm«) erforderlich.<br />

Einige Distributionen, etwa Ubuntu,<br />

halten beides vor. Sobald die Pakete eingespielt<br />

sind, genügt zur Installation der Coffeescript-<br />

Werkzeuge das Kommando:<br />

sudo npm install ‐g coffee‐script<br />

Den Quellcode der Werkzeuge gibt es zusätzlich<br />

auf der Coffeescript-Homepage [1].<br />

Um auf der Kommandozeile Coffeescript-Code<br />

auszuführen, legt ihn der Programmierer in einer<br />

Datei mit der Endung ».coffee« ab und lässt<br />

den Interpreter darauf los (Abbildung 1):<br />

coffee hallo.coffee<br />

An dieser Stelle gibt es allerdings zwei kleine<br />

Stolpersteine: Zunächst startet der Interpreter<br />

das Programm »node«, das unter einigen<br />

Distributionen jedoch »nodejs« heißt. Wer eine<br />

entsprechende Fehlermeldung erhält, muss<br />

entweder per Hand einen Symlink einrichten<br />

oder noch einmal einen Blick in den Paketmanager<br />

werfen: Ubuntu bietet für diese Zwecke<br />

eigens das Paket »nodejs‐legacy« an.<br />

Des Weiteren stehen auf der Kommandozeile<br />

nicht alle Javascript-Funktionen bereit. Das gilt<br />

insbesondere für solche Exemplare, die auf ein<br />

Fenster angewiesen sind, etwa »alert()«. Um<br />

dem Interpreter ein „Hallo Welt“ zu entlocken,<br />

muss der Programmierer ihn daher mit dem<br />

Coffeescript-Code<br />

conosole.log "Hallo Welt"<br />

füttern. Den Compiler weckt er schließlich noch<br />

über den Parameter »‐c«:<br />

coffee ‐c hallo.coffee<br />

Der aus »hallo.coffee« erzeugte Javascript-<br />

Code landet dabei in der Datei »hallo.js«.


Programmieren<br />

Coffeescript 01/2013<br />

übrigens auch Closures basteln. Apropos<br />

Verpacken: Um bei der Zusammenarbeit<br />

mit vorhandenem Javascript-Code<br />

nicht in Probleme zu laufen, verpackt<br />

Coffeescript den kompletten Code noch<br />

einmal in eine anonyme Funktion »(func-<br />

tion(){ ... })();«. Das verhindert zwar,<br />

dass Variablen versehentlich global werden,<br />

wer jedoch Variablen außerhalb von<br />

Coffeescript anbietet, muss sie beispielsweise<br />

als Eigenschaften dem »window«-<br />

Objekt anhängen.<br />

90<br />

01 var quadrieren;<br />

02 <br />

03 quadrieren = function(x) {<br />

04 if (x == null) {<br />

05 x = 2;<br />

06 }<br />

07 return x * x;<br />

08 };<br />

01 a = (x, y, rest...) ‐><br />

02 alert rest<br />

03 <br />

04 a 1,2,3,4,5,6<br />

01 var quadrat, x;<br />

02 x = 3;<br />

03 <br />

04 quadrat = (function(x) {<br />

05 return x * x;<br />

06 })(x);<br />

07 <br />

08 alert(quadrat);<br />

01 var quadrat, x;<br />

02 x = 3;<br />

03 <br />

04 quadrat = (function(x) {<br />

05 return x * x;<br />

06 })(x);<br />

07 <br />

08 alert(quadrat);<br />

Listing 5: Splats<br />

01 adresse = () ‐> ["hans", "musterstr", "musterdorf"]<br />

02 [name, strasse, ort] = adresse()<br />

03 alert name<br />

01 var ps;<br />

02 <br />

03 if (bmw || mercedes) {<br />

04 ps = 230;<br />

05 }<br />

Listing 4: Übersetzte Funktion<br />

»quadrieren«<br />

Listing 6: Destructuring<br />

Assignment<br />

Listing 7: Einsatz von »do«<br />

Listing 8: Javascript-Code zu<br />

Listing 7<br />

Listing 9: Übersetzte »if«-Abfrage<br />

Alles unter Kontrolle<br />

Auch bei »if«-Abfragen fallen die geschweiften<br />

Klammern weg, den Rumpf<br />

trennt in Zweifelsfällen ein »then«:<br />

if [...] then [...] else [...]<br />

Zusätzlich zu den aus Javascript bekannten<br />

logischen Operatoren wie »&&«<br />

oder »||« bietet Coffeescript die besser<br />

lesbaren »and«, »or«, »is« und »not« an.<br />

Den Vergleichsoperator »==« ersetzt der<br />

Coffescript-Compiler immer in »===«<br />

sowie »!=« in »!==«. Außerdem darf<br />

der Programmierer bei Einzeilern eine<br />

schlanke Postfix-Notation verwenden.<br />

Listing 9 zeigt das Javascript zu der folgenden<br />

Zeile:<br />

ps = 230 if bmw or mercedes<br />

Vergleichsoperatoren kann der Entwickler<br />

wie in Python hintereinanderhängen<br />

und damit rasch testen, ob etwa die Temperatur<br />

im erträglichen Bereich liegt:<br />

if (15 > temperatur < 30) then [...]<br />

Wie findet der Programmierer heraus, ob<br />

eine Variable »x« existiert? Coffeescript<br />

bietet dafür den praktischen Fragezeichen-Operator<br />

an. Der liefert »true«,<br />

wenn die Variable schon existiert und<br />

zudem nicht »null« ist:<br />

if x? then x = 1<br />

Dieser Operator hilft auch dabei, in hintereinandergeschalteten<br />

Aufrufen »null«-<br />

Referenzen „aufzusaugen“:<br />

autonr = garage.oeffnen?().auto?.U<br />

kennzeichen()<br />

Sollte ein Objekt (wie das »auto«) oder<br />

eine Funktion (wie »garage.oeffnen()«)<br />

nicht existieren, liefert der ganze Ausdruck<br />

»undefined« zurück, es entsteht<br />

also kein Type-Error.<br />

Fallunterscheidungen lassen sich in<br />

Javascript durch das kompakte »switch«<br />

ersetzen. In Coffeescript hat sich dieses<br />

der Klammern, der Breaks und des<br />

Default entledigt, Listing 10 zeigt ein<br />

Abbildung 1: Zunächst führt der Interpreter das<br />

Skript »hallo.coffee« aus, dann übersetzt es der<br />

Compiler in Javascript-Code.<br />

Beispiel. Coffeescript ersetzt die »for«-<br />

Schleifen aus Javascript durch ein »for<br />

[...] in«. Die Zeile<br />

alert auto for auto in ["bmw", "vw", "opel"]<br />

verwandelt der Compiler in Listing 11.<br />

Wie dort zu sehen ist, durchläuft das Programm<br />

das Array mit den Autonamen.<br />

Dabei steckt es den aktuellen Namen in<br />

die Variable »auto«, die es wiederum an<br />

die Funktion »alert« übergibt.<br />

For-Comprehensions<br />

Ergänzend erlaubt es »for [...] in«, so<br />

genannte Comprehensions aufzubauen,<br />

also Funktionen, die aus einer Liste eine<br />

neue generieren. Das folgende Beispiel<br />

durchläuft die Zahlen 1 bis 10 in durch<br />

die Angabe »by 2« erzwungenen Zweierschritten.<br />

Jede der Zahlen 1, 3, 5, 7, 9<br />

quadriert Coffeescript (»x*x«) und speichert<br />

schließlich alle Ergebnisse im Array<br />

»quadrate«:<br />

quadrate = (x*x for x in [1..10] by 2)<br />

Das per »alert quadrate« ausgegebene Ergebnis<br />

lautet damit »1,9,25,49,81«. Alternativ<br />

kann man auch die Eigenschaften<br />

von Objekten durchlaufen. Die Zeilen aus<br />

Listing 12 führen zur Ausgabe »BMW ist<br />

Blau, VW ist Rot«. Das Listing zeigt auch<br />

noch eine weitere, von Ruby abgeschaute<br />

Notation: »#{farbe}« ersetzt Coffeescript<br />

innerhalb des Strings durch den Inhalt<br />

der Variablen »farbe«, analog gilt dies<br />

für die »marke«. Auf diese Weise lassen<br />

sich elegant komplexere Zeichenketten<br />

zusammensetzen.<br />

Während die alte »for«-Schleife aus<br />

Javascript zumindest in der aktuellen


Version von Coffeescript nicht existiert,<br />

kennt die Sprache sehr wohl noch die<br />

»while«-Schleife. Besteht sie nur aus einer<br />

Zeile, lässt sie sich in Postfix-Notation<br />

verwenden. In folgendem Beispiel würde<br />

»while« so lange »gasgeben()« aufrufen,<br />

wie »geschwindigkeit« kleiner als »maximum«<br />

ist:<br />

gasgeben() while geschwindigkeit < maximum<br />

In Coffeescript darf man die »while«-<br />

Schleife aber auch als Ausdruck verwenden,<br />

der ein Array mit den Ergebnissen<br />

aus jedem Schleifendurchlauf zurückgibt.<br />

Listing 13 zeigt ein Beispiel dafür: Die<br />

»while«-Schleife durchläuft einfach die<br />

Zahlen von 9 bis 1 und steckt sie in<br />

einen String. Alle so erzeugten Strings<br />

landen zum Schluss wiederum im Array<br />

»countdown«. Bequeme Programmierer<br />

dürfen schließlich noch »until« anstelle<br />

von »while not« sowie »loop« anstelle von<br />

»while true« schreiben.<br />

Rückgabewerte<br />

Listing 13 liefert einen Wert zurück, obwohl<br />

nirgends ein »return« steht. Dies ist<br />

möglich, da Coffeescript alle Anweisungen<br />

als Ausdruck (Expression) ansieht.<br />

Funktionen geben immer automatisch ihren<br />

letzten Wert zurück – vorausgesetzt<br />

der Coffeescript-Programmierer setzt<br />

nicht selbst »return« ein. Darüber hinaus<br />

Abbildung 2: Die Coffeescript-Konsole im Browser: Die Elemente des von »adresse()« zurückgelieferten<br />

Array landen jeweils in den Variablen »name«, »straße« und »ort«.<br />

kann er Variablenzuweisungen innerhalb<br />

eines Ausdrucks vornehmen, was zu lustigen<br />

Zeilen wie der folgenden führt:<br />

sieben = (fuenf = 5) + (zwei = 2)<br />

Einige Anweisungen in Javascript wie<br />

»break« oder »continue« lassen sich nicht<br />

in einen Ausdruck überführen. Nutzt man<br />

diese in Coffeescript, übernimmt sie der<br />

Compiler einfach ins fertige Javascript.<br />

Wer solche Anweisungen einsetzt, muss<br />

folglich wissen, was er tut.<br />

Dank des Schlüsselworts »class« lassen<br />

sich auch Klassen in Coffeescript kompakter<br />

und vor allem lesbarer aufschreiben.<br />

Listing 14 zeigt dafür ein Beispiel. Die<br />

Klasse »Punkt« besitzt dort einen Kons-<br />

Listing 10: Fallunterscheidung mit<br />

»switch«<br />

01 sprache = "DE"<br />

02 switch sprache<br />

03 when "EN" then alert "Hello!"<br />

04 when "DE", "AT" then alert "Tag!"<br />

05 else alert "Sprache unbekannt"<br />

Listing 11: Übersetzte<br />

»for«-Schleife<br />

01 var auto, _i, _len, _ref;<br />

02 <br />

03 _ref = ['bmw', 'vw', 'opel'];<br />

04 for (_i = 0, _len = _ref.length; _i < _len; _i++) {<br />

05 auto = _ref[_i];<br />

06 alert(auto);<br />

07 }<br />

Coffeescript 01/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

91<br />

MAGAZIN<br />

nUr<br />

MiT dVd!<br />

SondErAkTion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Gleich bestellen...<br />

• Telefon: 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@linux-magazin.de<br />

Mit großem Gewinnspiel (Infos unter: www.linux-magazin.de/probeabo *Preis gilt für Deutschland


Programmieren<br />

Coffeescript 01/2013<br />

92<br />

truktor, der zwei Argumente übergeben<br />

bekommt. Das »@« sorgt im Konstruktor<br />

dafür, dass Coffeescript die übergebenen<br />

Werte direkt den Attributen namens »x«<br />

und »y« zuweist. Der Rumpf des Konstruktors<br />

kann somit leer bleiben (nach<br />

dem Pfeil folgt eine Leerzeile).<br />

01 autos = BMW: "Blau", VW: "Rot"<br />

02 <br />

03 daten = for marke, farbe of autos<br />

04 " #{marke} ist #{farbe}"<br />

05 <br />

06 alert daten<br />

01 zaehler = 10<br />

02 countdown = while zaehler ‐= 1<br />

03 "#{zaehler} Bier sind noch über."<br />

04 alert countdown<br />

01 class Punkt<br />

02 constructor: (@x, @y) ‐><br />

03 <br />

04 zeichne: ‐><br />

05 alert "Position: " + @x + ", " + @y<br />

06 <br />

07 class Rechteck extends Punkt<br />

08 constructor: (a, b, @breite) ‐><br />

09 super a,b<br />

10 <br />

11 zeichne: ‐><br />

12 alert "Breite: " + @breite<br />

13 super<br />

14 <br />

15 form = new Rechteck 1,2,3<br />

16 form.zeichne()<br />

01 Einkauf = (kunde, produkt) ‐><br />

02 @kunde = kunde<br />

03 @produkt = produkt<br />

04 <br />

05 $('.shopping_cart').bind 'click', (event) =><br />

06 @kunde.kauft @produkt<br />

01 cp = require 'child_process'<br />

02 <br />

03 build = (callback) ‐><br />

04 coffee = cp.spawn 'coffee', ['‐c', 'src']<br />

05 <br />

06 task 'build', 'Kompiliere unter src/', ‐><br />

07 build()<br />

Listing 12: Iteration über<br />

Eigenschaften<br />

Listing 13: Erweiterte<br />

»while«-Schleife<br />

Listing 14: Klassen und Vererbung<br />

Listing 15: Doppelpfeil-Operator<br />

Listing 16: Cakefile<br />

Allgemein ist die Notation »@x« eine<br />

Kurzschreibweise für »this.x«. Davon<br />

macht auch die Methode »zeichne« Gebrauch.<br />

Die Klasse »Rechteck« ist von<br />

»Punkt« abgeleitet, »super« ruft jeweils die<br />

entsprechende Methode in der Oberklasse<br />

auf – »super« in der Methode »zeichne«<br />

ruft folglich die Methode »zeichne« der<br />

Klasse »Punkt« auf. Zum Schluss erzeugt<br />

Listing 14 noch ein neues »Rechteck«<br />

und ruft dessen Methode »zeichne« auf.<br />

Konstruktoren tragen den Namen ihrer<br />

Klasse, in Listing 14 ist »form.constructor.name«<br />

daher »Rechteck«.<br />

Schlaue Callbacks<br />

In Javascript-Code bezeichnet »this« immer<br />

das Objekt, an das die gerade ablaufende<br />

Funktion gebunden ist. Das führt<br />

zu Problemen, wenn Event-Handler und<br />

Callback-Funktionen zum Einsatz kommen:<br />

Wird die Callback-Funktion aufgerufen,<br />

verweist »this« auf genau jenes<br />

DOM-Element, welches das Ereignis<br />

erzeugt hat. Der Programmierer müsste<br />

folglich auf den Einsatz von »this« innerhalb<br />

der Callback-Funktion verzichten –<br />

oder er nutzt in Coffeescript den Doppelpfeil.<br />

Dann zeigt »this« auf das Objekt, in<br />

dem die Callback-Funktion definiert ist.<br />

Ein Beispiel dafür liefert Listing 15.<br />

Kuchen backen<br />

Zusammen mit Compiler und Interpreter<br />

wandert bei der Coffeescript-Installation<br />

auch das rudimentäre Buildtool »cake«<br />

auf die Festplatte. Analog zu Make wertet<br />

es eine Steuerdatei namens »Cakefile«<br />

aus, die eine oder mehrere Aufgaben<br />

(Tasks) vorgibt. Das »Cakefile« selbst ist<br />

wieder ein Coffeescript, der Programmierer<br />

darf somit auch entsprechenden Code<br />

darin unterbringen.<br />

Listing 16 liefert ein Beispiel für eine solche<br />

Datei. Es holt zunächst ein Hilfsobjekt<br />

hinzu und definiert dann eine Funktion<br />

»build«, die den »coffee«-Compiler alle<br />

Coffeescript-Dateien im Unterverzeichnis<br />

»src« übersetzen lässt. Abschließend definiert<br />

es noch eine Task namens »build«,<br />

die einfach nur die Funktion »build()«<br />

aufruft.<br />

Um diese Task anzustoßen, ruft der Entwickler<br />

»cake build« im Verzeichnis mit<br />

dem Cakefile auf, »cake« ohne Parameter<br />

zeigt nur die vorhandenen Tasks und deren<br />

Beschreibung an. Letztere lautet in<br />

Listing 16 »Kompiliere unter src/«.<br />

Fazit<br />

Die Macher versprechen nicht zu viel:<br />

Coffeescript-Code ist gegenüber Javascript<br />

in weiten Teilen leichter lesbar<br />

und erstaunlich kompakt – manchmal<br />

allerdings auch zu kompakt. So brauchen<br />

viele Programmierer etwas Übung, bis<br />

sie auf einen Blick erkennen, wer in der<br />

Anweisung »rechne x, (i) ‐> quadrat i«<br />

wen aufruft. Glücklicherweise hilft hier<br />

die vorzügliche Coffeescript-Konsole im<br />

Web, die den Code schon direkt beim<br />

Tippen in Javascript übersetzt.<br />

Der Umstieg von Dropbox auf Coffeescript<br />

beweist, dass die neue Sprache<br />

alltagstauglich ist. Eine Liste mit weiteren<br />

Coffeescript-Anwendungen liefert<br />

das Wiki des Projekts [6]. Ausführlichere<br />

Informationen zur Sprache und Syntax<br />

enthält das kostenlose Buch „Smooth<br />

Coffeescript“ [7]. Das Werk „The Little<br />

Book on Coffeescript“ darf man nur in<br />

einer älteren, aber immer noch weitestgehend<br />

gültigen Auflage im Internet kostenfrei<br />

lesen [8]. Die offiziell verfügbare<br />

Anleitung auf der Coffeescript-Homepage<br />

ist kurz und knackig, richtet sich aber an<br />

Javascript-Programmierer – und genau<br />

die sollten aufgrund der vielen Vorteile<br />

unbedingt reinschnuppern. (mhu) n<br />

Infos<br />

[1] Coffeescript: [http:// coffeescript. org]<br />

[2] Dropbox-Tech-Blog, „Dropbox dives into<br />

Coffeescript“: [https:// tech. dropbox. com/​<br />

2012/ 09/ dropbox‐dives‐into‐coffeescript/]<br />

[3] Javascript Lint:<br />

[http:// www. javascriptlint. com]<br />

[4] Node.js: [http:// nodejs. org]<br />

[5] „Destructuring Assignment in ECMA-<br />

Script“: [http:// wiki. ecmascript. org/ doku.​<br />

php? id=harmony:destructuring]<br />

[6] Projekte und Anwendungen, die Coffeescript<br />

nutzen: [https:// github. com/​<br />

jashkenas/ coffee‐script/ wiki/ In‐The‐Wild]<br />

[7] E. Hoigaard, „Smooth Coffeescript“:<br />

[http:// autotelicum. github. com/​<br />

Smooth‐CoffeeScript/]<br />

[8] Alex MacCaw, „The Little Book on Coffeescript“:<br />

[http:// arcturo. github. com/ library/​<br />

coffeescript/]“


12 x Android User<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

Top-Prämie SIchern!<br />

www.android–user.de/abo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de<br />

?<br />

Neu!<br />

und nur für<br />

Eine der<br />

kurze Zeit!<br />

beliebten<br />

ANdroid-sammelfiguren<br />

aus der Aktuellen Serie 03<br />

gratis Zu jedem ABo! *<br />

JETZT Bestellen!<br />

*Angebot gilt solange der Vorrat reicht


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 01/2013<br />

94<br />

Github zweckentfremden<br />

Alternativer Gebrauch<br />

Github mit seiner einfach zu bedienende Weboberfläche lässt sich über seine Code-Archiv-Funktion hinaus<br />

für ganz und gar artfremde Dinge benutzen. Perlmeister Schilli zum Beispiel pflanzt mit Github ein Contentmanagement-System<br />

für einfache Webseiten in die Landschaft. Michael Schilli<br />

© jock+scott, photocase.com<br />

Auf Github.com arbeitet die Open-<br />

Source-Gemeinde an ihren Projekten,<br />

und die ehemalige Startup-Firma aus<br />

San Francisco hat auf diese Weise einige<br />

Berühmtheit erlangt. Mittlerweile stellen<br />

sich sogar finanzielle Erfolge ein. Auch<br />

gilt die Firma im erweiterten Silicon Valley<br />

schon als Vorzeigebeispiel dafür, wie<br />

man talentierte Entwickler anlockt [2].<br />

So nimmt es nicht Wunder, dass die in<br />

der offenen Basisversion kostenlos angebotenen<br />

Repositories, der damit verbundene<br />

Plattenplatz und zuverlässiges<br />

Webhosting für allerlei Daten herhalten,<br />

die bei der Verleihung des Titels „Open-<br />

Source-Projekt des Jahres“ niemand auf<br />

dem Zettel hat.<br />

Wer hat sich nicht schon darüber geärgert,<br />

dass auf einem neuen Rechner die<br />

eigenen, über Jahre gepflegten Konfigurationsdateien<br />

wie ».bashrc« oder ».vimrc«<br />

noch nicht installiert sind? Da diese Dateien<br />

selten Geheimnisse enthalten, hat<br />

es sich eingebürgert, sie auf Github in<br />

einem Repository namens »dotfiles« einzubunkern.<br />

Wer jetzt in einer unterkonfigurierten<br />

Umgebung strandet, braucht<br />

nur einen Browser, um die vertrauten<br />

Dateien von einer leicht zu findenden<br />

Internetseite nachzuholen.<br />

Hosting für lau<br />

Aber es geht noch mehr. Nicht jeder<br />

Github-Nutzer weiß zum Beispiel, dass<br />

Entwickler dort auch ganz normale<br />

Webseiten hosten können. Wer auf dynamisch<br />

generierte Inhalte verzichtet<br />

und sich auf HTML, Javascript und Fotos<br />

beschränkt, kann mit einem kostenlosen<br />

Github-Account durchaus eine private<br />

Webseite zusammenstellen und online<br />

halten [3]. Vermeintlicher Nachteil: Auf<br />

Github gehostete Inhalte sind öffentlich<br />

als Open Source zugänglich – aber das<br />

sind sie auf einer statischen Webseite<br />

implizit sowieso.<br />

Für seine Website legt der Github-Nutzer<br />

in einem neu angelegten Repository einen<br />

neuen Branch namens »gh‐pages«<br />

an, stellt eine Datei »index.html« hinein<br />

und führt ein »git commit« mit anschließendem<br />

»push« aus. Jetzt darf er<br />

unter »http://Username.github.com/<br />

Repository‐Name« staunend mit ansehen,<br />

wie seine neue Website auf einmal im<br />

Internet steht. Das Ganze ist kostenlos,<br />

und die Github-Infrastruktur hält die Site<br />

zuverlässig am Laufen.<br />

Abbildung 1 zeigt den im Github-Repository<br />

»perlsnapshot« im Zweig »gh‐pages«<br />

angelegten „Sourcecode“ einer statischen<br />

HTML-Seite. Github erzeugt daraus automatisch<br />

– unmittelbar nach einem Push<br />

– eine auf einem öffentlich zugänglichen<br />

Webserver liegende und unter einer recht<br />

kurzen URL abrufbare Projektseite, Abbildung<br />

2 zeigt sie.<br />

Los geht’s mit einem Klon<br />

Um den erforderlichen Branch »gh‐pages«<br />

in einem neu generierten Repository<br />

anzulegen, klont<br />

git clone git@github.com/user/repo.git<br />

dieses zunächst, und der User führt im<br />

Branch »master« einen einzigen Commit<br />

aus, zum Beispiel den einer Readme-Da-<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​plus/​2013/01]


Abbildung 1: Github.com eröffnet Technikmuffeln<br />

die Möglichkeit, Textdateien direkt im Browser zu<br />

editieren und hosten zu lassen.<br />

tei. Den für die Projektseite notwendigen<br />

Branch »gh‐pages« erzeugt:<br />

git checkout ‐b gh‐pages<br />

In diesem Branch legt der Webentwickler<br />

die Datei »index.html« und eventuell von<br />

dort referenzierte Bilder ab, zum Beispiel<br />

in einem Unterverzeichnis »fig«, und zimmert<br />

sie mit »git add« und »git commit«<br />

im Repository fest. Die neuesten Branch-<br />

Daten landen mit<br />

git push origin gh‐pages<br />

bei Github. Der Dienst stößt daraufhin<br />

die automatische Seitengenerierung an.<br />

Grafisch und intuitiv<br />

Natürlich weiß jeder Software-Entwickler,<br />

der sein Geld wert ist, wie er »git« von der<br />

Kommandozeile aus zu bedienen hat und<br />

Updates ins Github-Repository hochlädt.<br />

Diese Fähigkeit technikmuffligem Personal<br />

beizubringen, wäre harte Arbeit. Zum<br />

Glück bietet Github jedermann eine leicht<br />

zu bedienende Weboberfläche, die auf<br />

Knopfdruck Textdateien im Repository<br />

anzupassen hilft.<br />

Ein Klick auf den »Edit«-Button in Abbildung<br />

1, und schon präsentiert der<br />

Abbildung 2: Technisch und optisch ein Highlight:<br />

Die automatisch von Github aus der Source im<br />

Branch »gh‐pages« generierte Projektseite.<br />

Abbildung 3: Der Webhook auf Github schickt eine Nachricht an einen beliebigen<br />

Webserver, falls Änderungen am Repository erfolgen.<br />

Browser ein intuitiv bedienbares Editierfenster,<br />

in das der User seine Änderungen<br />

am HTML-Code der Webseite eintippt.<br />

Zum Schluss drückt er »Save« und trägt<br />

optional noch einen Änderungskommentar<br />

ins Nachrichtenfeld ein. Github löst<br />

daraufhin einen Commit im Github-Repository<br />

mit der aktuellen Textversion aus<br />

und hält die Änderung damit samt Historie<br />

fest. Das Verfahren funktioniert allerdings<br />

nur bei Textdateien, Fotos checkt<br />

man entweder von der Kommandozeile<br />

oder mittels einer der auch für <strong>Linux</strong> verfügbaren<br />

grafischen Git-Frontends ein.<br />

Wo ist der Web-Haken?<br />

Dynamische Webseiten à la PHP bietet<br />

das Verfahren nicht, da der Github-<br />

Webserver keinen passenden Interpreter<br />

offeriert. Wem aber HTML zu unhandlich<br />

erscheint und wer lieber kompakte Plaintexte<br />

wie in einem Contentmanagement-<br />

System verwaltet, das die Rohinhalte automatisch<br />

mit HTML umrankt, dem wird<br />

im Folgenden geholfen.<br />

Nach jedem erfolgreichen »push« von<br />

lokalen Commits ins öffentliche Github-<br />

Repository springt der Github-Server<br />

konfigurierte Service-Hooks an [4]. So<br />

erfährt zum Beispiel der Continuous-Integration-Service<br />

Travis-ci.org über einen<br />

Post-Receive-Webhook sofort von Änderungen<br />

im Entwicklungsbaum und kann<br />

die Testsuite anwerfen, um zu sehen, ob<br />

der Build mit dem neuesten Code noch<br />

funktioniert [5].<br />

Unter »Admin« und der Sektion »Service<br />

Hooks« darf der Repository-Besitzer einen<br />

so genannten Webhook definieren, den<br />

Github jedes Mal anspringt, falls neue<br />

Commits per »git push« im Online-Repository<br />

gelandet sind (Abbildung 3). So<br />

erfahren fremde Webseiten allgemein von<br />

den Änderungen. Als so genannte Payload<br />

(bezahlte Fracht)<br />

legt Github jedes Mal<br />

Json-formatierte Metadaten<br />

bei, die darüber<br />

Auskunft geben, in<br />

welchem Repository<br />

Änderungen eingingen,<br />

welche Dateien<br />

betroffen waren und<br />

wie die SHA1-IDs vor<br />

und nach dem Commit<br />

aussehen.<br />

Dabei darf in einem Push nicht nur ein<br />

Commit ankommen, es sind sogar mehrere<br />

erlaubt. Für jeden findet sich ein<br />

Eintrag im Feld »commits«, das ein Array<br />

von Einzel-Commits enthält. Abbildung<br />

4 zeigt die Json-Daten nach einer Commit-Push-Kombination<br />

der Projektseite<br />

»index.html«. Ein in Perl geschriebenes<br />

CGI-Skript wie das in Listing 1 nimmt<br />

den Request entgegen, fieselt mit einem<br />

Json-Parser interessante Details heraus<br />

und startet dazu passende Aktionen.<br />

Contentmanagement<br />

für Arme<br />

Listing 1 implementiert ein simples Contentmanagement-System,<br />

das seine Sourcen<br />

auf Github ablegt. Es baut mit Perls<br />

auf dem CPAN erhältlichen »Tem plate«-<br />

Modul Textbausteine mit Templates zusammen<br />

und bietet sie auf dem ei ge nen<br />

Webserver an. Auch Technik-Laien schaffen<br />

es, auf dem Github-UI die Textdateien<br />

»001.txt«, »002.txt« und so weiter zu editieren<br />

(Abbildung 5).<br />

Die Texte enthalten Anweisungen zum<br />

Einbinden von Template-Dateien, die<br />

einleitende und abschließende HTML-<br />

Abbildung 4: Die Payload des Commit im Json-<br />

Format signalisiert der Website, welche Dateien<br />

sich im Repository verändert haben.<br />

Perl-Snapshot 01/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

95


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 01/2013<br />

96<br />

Abbildung 5: Diese sehr einfache Textdatei editiert<br />

der technisch unbedarfte User.<br />

Sequenzen einbinden (Abbildung 6),<br />

ohne den User mit technischen Details<br />

zu belasten. Klickt er den »Save«-Button<br />

an, speichert Github die Änderungen im<br />

Repository ab und feuert den Webhook<br />

auf das CGI-Skript eines privaten Webservers<br />

ab. Das Skript findet über die<br />

Json-Daten heraus, welche ».txt«-Datei<br />

sich verändert hat, frischt seinen lokalen<br />

Klon des Repository auf und wirft für die<br />

betreffenden Dateien den Template-Generator<br />

an. Das Diagramm in Abbildung 7<br />

zeigt den Ablauf.<br />

Alles protokolliert<br />

Der Hostingservice könnte zwar bei jedem<br />

Push alle Textdateien durchforsten<br />

und neue Seiten generieren, aber bei<br />

Tausenden von Dateien spart der Web-<br />

Abbildung 6: Der Template-Header enthält den<br />

HTML-Markup, der dem User erspart bleibt.<br />

hook mit den detaillierten Änderungsinformationen<br />

viel Zeit. Das Skript in<br />

Listing 1 legt der Entwickler ausführbar<br />

im CGI-Verzeichnis des Webservers ab<br />

und konfiguriert das Github-Repository<br />

im Admin-Bereich mit der URL als Webhook,<br />

wie Abbildung 3 zeigt.<br />

Listing 1 definiert in den Zeilen 11 bis 18<br />

die lesende URL hin zum Original-Repository<br />

von Github<br />

(»$github_repo«) und<br />

die Pfade zu dem lokalen<br />

Repo-Klon (»$repo<br />

_dir«) und dem Zielverzeichnis<br />

(»$target_ Website<br />

dir«), von dem aus der<br />

Webserver die fertigen<br />

Make<br />

HTML-Dateien an die<br />

an dockenden Browser<br />

ausliefert.<br />

Damit Interessierte nachvollziehen können,<br />

was das CGI-Skript so treibt und wo<br />

Fehler auftreten, schaltet Zeile 20 das Log-<br />

4perl-Modul an und lässt die Applikation<br />

die Arbeitsschritte in der Logdatei »gpr.<br />

log« im Homeverzeichnis des Webserver-<br />

Users mitprotokollieren. Wie Abbildung<br />

8 zeigt, loggen nicht nur die explizit im<br />

Code sichtbaren Log4perl-Anweisungen<br />

(»DEBUG«, »INFO« und so weiter), sondern<br />

auch die im Sysadm::Install-Modul<br />

versteckten. So schreibt das Skript mit,<br />

welche Git-Befehle mit »tap« und »sysrun«<br />

gelaufen sind, welchen Returncode<br />

sie zurücklieferten und was sie auf Stdout<br />

und Stderr zum Besten gaben.<br />

Aufgefrischter Klon<br />

Um an den Inhalt der aktualisierten Textdateien<br />

zu gelangen, muss das Skript in<br />

Zeile 35 einen lokalen Klon des Github-<br />

Repository anlegen, falls dieser noch<br />

Webhosting<br />

Post-Receive-Hook<br />

Pull-Update<br />

Github<br />

Edit<br />

Submit<br />

Abbildung 7: Githubs Webhook benachrichtigt die Website, die wiederum die<br />

neuen Sourcen von Github abholt und daraus formatierte Webseiten backt.<br />

Listing 1: »github‐push‐receiver.cgi«<br />

01 #!/usr/bin/perl ‐w<br />

02 use strict;<br />

03 use CGI qw( :all );<br />

04 use Log::Log4perl qw(:easy);<br />

05 use JSON qw( from_json );<br />

06 use Sysadm::Install qw( :all );<br />

07 use File::Basename;<br />

08<br />

09 my( $home ) = glob "~";<br />

10<br />

11 my $target_dir =<br />

12 "$home/htdocs/perlsnapshot";<br />

13 my $repo_dir =<br />

14 "$home/perlsnapshot.git";<br />

15 my $github_repo =<br />

16 # read‐only<br />

17 "git://github.com/mschilli" .<br />

18 "/perlsnapshot.git";<br />

19<br />

20 Log::Log4perl‐>easy_init( {<br />

21 file => ">>$home/gpr.log",<br />

22 level => $DEBUG,<br />

23 });<br />

24<br />

25 print header( 'text/txt' );<br />

26<br />

27 my $json = param( 'payload' );<br />

28<br />

29 if( !defined $json ) {<br />

30 LOGDIE "Parameter payload missing";<br />

31 }<br />

32<br />

33 if( ! ‐d $repo_dir ) {<br />

34 cd dirname $repo_dir;<br />

35 tap qw( git clone ), $github_repo,<br />

36 basename $repo_dir;<br />

37 cdback;<br />

38 }<br />

39<br />

40 # Get latest update from Github<br />

41 cd $repo_dir;<br />

42 tap "git", "pull", "origin", "master";<br />

43 cdback;<br />

44<br />

45 my $payload = from_json( $json );<br />

46<br />

47 cd $repo_dir;<br />

48<br />

49 for my $commit (<br />

50 @{ $payload‐>{ commits } } ) {<br />

51<br />

52 INFO "Commit found: $commit‐>{ id }";<br />

53<br />

54 for my $file (<br />

55 @ { $commit‐>{ modified } } ) {<br />

56<br />

57 INFO "Modified: $file";<br />

58<br />

59 if( $file =~ m#^(\d{3}\.txt)$# ) {<br />

60<br />

61 ( my $html_file = $file ) =~<br />

62 s/\.txt$/.html/;<br />

63<br />

64 sysrun "tpage $file " .<br />

65 ">$target_dir/$html_file";<br />

66 }<br />

67 }<br />

68 }<br />

69<br />

70 print "OK\n";<br />

71 DEBUG "Finished";


Abbildung 8: Die Logdatei zeigt an, was nach dem Push auf dem Webhoster<br />

passiert ist. So lassen sich eventuell auftauchende Fehler schnell finden.<br />

nicht im Zuge vorheriger Skript aufrufe<br />

bereits entstanden ist. Andernfalls<br />

kommt Zeile 42 zum Tragen und führt<br />

ein Update zur neuesten Version durch.<br />

Die Funktionen »cd« und »cdback« des<br />

CPAN-Moduls Sysadm::Install helfen dabei,<br />

in Verzeichnisse hinein- und nach<br />

getaner Arbeit wieder herauszuspringen.<br />

Die aus dem Modul »JSON« exportierte<br />

Funktion »from_json()« dekodiert die im<br />

CGI-Parameter »payload« ankommenden<br />

Json-Daten und legt sie als Perl-Datenstruktur<br />

in »$payload« ab.<br />

Vorsicht Angreifer!<br />

Beim Auswerten der eingehenden Daten<br />

ist darauf zu achten, dass keineswegs sichergestellt<br />

ist, dass der Json-Salat wirklich<br />

von Github kommt. Angreifer könnten<br />

das Web-offene CGI-Skript nutzen,<br />

um den Webserver zu attackieren. Deshalb<br />

ist es wichtig, sämtliche Daten – die<br />

Namen der modifizierten Github-Dateien<br />

beispielsweise – auf Herz und Nieren zu<br />

prüfen, bevor das Skript sie weiterverarbeitet<br />

oder sie gar Kommandozeilentools<br />

übergibt. Der Schalter »‐T« kann sicherstellen,<br />

dass zumindest regulärere Ausdrücke<br />

die Daten inspizieren. Doch auch<br />

dieses Verfahren findet nicht alle Lücken,<br />

die Verantwortung liegt letztendlich beim<br />

Programmierer.<br />

Die For-Schleife ab Zeile 49 iteriert über<br />

alle Commits der vorher auf Github eingegangenen<br />

Push-Daten. Die editierten<br />

Dateien legt Github im Json-Array unter<br />

dem Eintrag »modified« ab, und die<br />

For-Schleife ab Zeile 54 nudelt sie alle<br />

durch. Passt eine Datei in das Schema<br />

»nnn.txt«, wirft Zeile 64 den Template-<br />

Expander »tpage« an.<br />

Der Expander liegt dem Modul Template<br />

bei und kombiniert – entsprechend der<br />

Tem plate-Anweisung<br />

»[% PROCESS %]« –<br />

die Header-, Footerund<br />

Textdateien zu<br />

fertigen HTML-Dateien.<br />

Letztere landen<br />

wegen der Redirekt-<br />

Anweisung im Shellkommando<br />

im Verzeichnis<br />

»htdocs« des<br />

Webservers. Gespeicherte<br />

Fotos muss der<br />

Nutzer selbst dorthin<br />

kopieren. Alternativ könnte das ebenfalls<br />

Template beiliegende Skript »ttree« den<br />

gesamten Baum kopieren.<br />

Mit etwas mehr Aufwand, als ihn dieser<br />

Artikel anstellt, könnten sich Entwickler<br />

beliebige Webseiten aus Github-Repositories<br />

generieren lassen. Die Vorteile ei ner<br />

Versionsverwaltung liegen auf der Hand,<br />

und die leicht zu bedienende Github-<br />

Oberfläche lädt Technik-nahe und ‐ferne<br />

Berechtigte gleichmaßen dazu ein, Tippfehler<br />

im Browser sofort zu korrigieren.<br />

Kurze Zeit später erscheint alles wie<br />

durch Zauberhand im Web. (jk) n<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2013/ 01/ Perl]<br />

[2] „The GitHub hiring experience“:<br />

[https:// github. com/ blog/ 1269‐the<br />

‐github‐hiring‐experience]<br />

[3] Github: Instantly Beautiful Project Pages:<br />

[https:// github. com/ blog/ 1081‐instantly<br />

‐beautiful‐project‐pages]<br />

[4] Github – „Post-Receive Hooks“:<br />

[https:// help. github. com/ articles/​<br />

post‐receive‐hooks]<br />

[5] Michael Schilli, „Continuous Integration<br />

ohne Klimmzüge“: <strong>Linux</strong>-<strong>Magazin</strong> 06/​12,<br />

S. 94, [http:// www. linux‐magazin.​de/ Heft<br />

‐Abo/ Ausgaben/ 2012/ 06/ Perl‐Snapshot]<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seinen seit 1997<br />

erscheinenden Snapshots<br />

forscht er jeden Monat<br />

nach praktischen Anwendungen der Skriptsprache<br />

Perl. Unter [mschilli@perlmeister. com] beantwortet<br />

er gerne Fragen.<br />

das magazin<br />

für ubuntuanwender!<br />

digisub-mini * :<br />

2 digitale ausgaben<br />

ubuntu user!<br />

iHre VOrteiLe<br />

5€<br />

FÜR 2 AUSGABEN<br />

● Hilfe für ein- und umsteiger bei<br />

den ersten schritten mit ubuntu<br />

● zusatzwissen rund um<br />

ubuntu und seine derivate<br />

● 2x testen ohne risiko, das<br />

digisub-mini ist jederzeit kündbar!<br />

● nutzbar auf notebook und PC,<br />

tablet oder smartphone!<br />

Jetzt gLeiCH besteLLen!<br />

● tel.: 07131 / 2707 274<br />

● fax: 07131 / 2707 78 601<br />

● urL: www.ubuntu-user.de/abo<br />

● e-mail: abo@ubuntu-user.de<br />

* geht ohne Kündigung in ein digitales Jahresabo<br />

mit 4 ausgaben pro Jahr über und ist jederzeit kündbar!


Service<br />

www.linux-magazin.de IT-Profimarkt 01/2013<br />

100<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

<strong>Linux</strong>-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? Der IT-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 />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Schlittermann internet & unix support 01099 Dresden, Tannenstr. 2 0351-802998-1 www.schlittermann.de √ √ √ √<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de √ √ √ √ √<br />

Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de √ √ √ √ √<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de √ √ √ √ √<br />

Hostserver GmbH 10405 Berlin, Winsstraße 70 030-47375550 www.hostserver.de √<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de √ √ √ √ √<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com √ √ √ √<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de √ √ √<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de √ √ √ √<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de √ √ √ √ √<br />

iTechnology GmbH 22083 Hamburg, Osterbekstrasse 90b 040 / 69 64 37 20 www.itechnology.de √ √ √ √<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de √<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de √ √ √ √ √<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de √ √ √ √ √<br />

primeLine Solutions GmbH 32549 Bad Oeynhausen, Dornenbreite 18a 05731/​86940 www.primeline-solutions.de √ √ √ √<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net √ √ √ √ √<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10 G 0521-95945-0 www.marcant.net √ √ √ √ √ √<br />

Hostserver GmbH 35037 Marburg, Biegenstr. 20 06421-175175-0 www.hostserver.de √<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de √ √ √ √ √ √<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de √ √ √ √ √<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.de √<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de √ √ √ √<br />

Sigs Datacom GmbH 53842 Troisdorf, Lindlaustraße 2c 02241-2341-201 sigs-datacom.de √<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de √ √ √ √<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de √ √ √ √ √<br />

saveIP GmbH 64283 Darmstadt, Schleiermacherstr. 23 06151-666266 www.saveip.de √ √ √ √ √<br />

LAMARC EDV-Schulungen u. Beratung GmbH 65193 Wiesbaden, Sonnenberger Straße 14 0611-260023 www.lamarc.com √ √ √ √<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de √ √ √ √ √<br />

<strong>Linux</strong>Haus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de √ √ √ √ √<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de √ √ √ √<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

(S.102)


Markt<br />

Embedded <strong>Linux</strong><br />

Beratung - Schulung - Entwicklung<br />

… alles nur eine Frage der Lastverteilung !<br />

BalanceNG ®<br />

#1<br />

#2<br />

●<br />

Der Software Load-Balancer für <strong>Linux</strong> und Solaris<br />

●<br />

Voll virtualisierbar<br />

●<br />

Keine zusätzliche Hardware erforderlich<br />

●<br />

Security made in Germany:<br />

Garantiert frei von versteckten “Backdoors”<br />

#3<br />

#4<br />

Alle Informationen unter: www.BalanceNG.net<br />

Inlab Software GmbH<br />

Josef-Würth-Str. 3<br />

82031 Grünwald<br />

Tel: 089 / 64911420<br />

http://www.inlab.de<br />

Mainline <strong>Linux</strong><br />

MX 53 / MX6<br />

www.pengutronix.de<br />

+49 (5121) 20 69 17 - 0<br />

Single Core<br />

Dual Core<br />

Quad Core<br />

<strong>Linux</strong> Portierung - Web - AJAX - Qt - Echtzeit<br />

Online-Archiv<br />

NUR<br />

4E<br />

pRo MoNat<br />

Bestellen Sie unter:<br />

www.admin-magazin.de/archiv<br />

ADMIN_1-4-DIN_Online_Archiv_NEU.indd 1<br />

22.05.2012 17:19:21 Uhr


Service<br />

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

102<br />

IT-Profimarkt / Stellen<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 100)<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Seminaranbieter 5 = Software 6 = Beratung<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Waldmann EDV Systeme + Service<br />

74321 Bietigheim-Bissingen,<br />

07142-21516 www.waldmann-edv.de √ √ √ √ √<br />

Pleidelsheimer Str. 25<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />

<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />

OSTC Open Source Training and Consulting GmbH 90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de √ √ √ √ √ √<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de √ √ √<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net √ √ √ √ √<br />

fidu.de IT KG 95448 Bayreuth, Ritter-v.-Eitzenb.-Str. 19 0921 / 16 49 87 87 - 0 www.linux-onlineshop.de √ √ √ √<br />

Computersysteme Gmeiner 95643 Tirschenreuth, Fischerhüttenweg 4 09631-7000-0 www.gmeiner.de √ √ √ √ √<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch √ √ √<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch √ √ √<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch √ √ √ √ √<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com √ √ √ √<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

n<br />

Hier startet iHr UBUNtU!<br />

● JaHres-aBo FÜr NUr E 26,90<br />

●<br />

iMMer Mit aKtUeLLster<br />

UBUNtU-DistriBUtioN aUF DVD<br />

15%<br />

sparen<br />

MeiNe VorteiLe:<br />

JETZT auch<br />

als PDF<br />

ErhälTlich!<br />

● Ich erhalte vier Ausgaben des<br />

Ubuntu Users frei Haus für<br />

e 26,90* statt e 31,60<br />

● Das Abonnement ist jeder zeit<br />

kündbar. Ich gehe kein Risiko ein<br />

● Aktuell informiert mit allen Neuigkeiten<br />

rund um das Thema Ubuntu<br />

Jetzt Bestellen: www.ubuntu-user.de<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@ubuntu-user.de


Seminare / Markt<br />

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

ACADEMY<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

Besorgen Sie sich Brief und<br />

Siegel für Ihr <strong>Linux</strong>-<br />

Knowhow mit der<br />

LPI-Zertifizierung.<br />

- Training für die Prüfungen<br />

LPI 101 und 102<br />

- Training für die Prüfungen<br />

LPI 201 und 202<br />

Sparen Sie mit<br />

paketpreiSen!<br />

JETZT MIT NEUEN<br />

LErNZIELEN! *<br />

*ANpAssUNg dEr LErNZIELE 2012<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

DiD you<br />

know?<br />

OpenSource Training Ralf Spenneberg<br />

Schulungen direkt vom Autor<br />

Wege aus der Lizenzfalle mit Samba 3/4<br />

3 Tage 29.01. ­ 31.01.2013<br />

Virtualisierung mit KVM<br />

3 Tage 29.01. ­ 31.01.2013<br />

Monitoring mit Nagios, Munin & Co<br />

5 Tage 28.01. ­ 01.02.2013<br />

Snort IDS/IPS Technology<br />

4 Tage 05.02. ­ 08.02.2013<br />

Hacking Webapplications<br />

4 Tage 12.02. ­ 15.02.2013<br />

<strong>Linux</strong> System Administration / LPIC­1<br />

5 Tage 18.02. ­ 22.02.2013<br />

<strong>Linux</strong> Storage Lösungen<br />

2 Tage 12.03. ­ 13.03.2013<br />

High Availability und Loadbalancing<br />

2 Tage 14.03. ­ 15.03.2013<br />

Apache 2.x Webserver Administration<br />

4 Tage 25.03. ­ 28.03.2013<br />

Freie Distributionswahl:<br />

Opensuse, Fedora, Debian Squeeze,<br />

CentOS oder Ubuntu LTS<br />

Ergonomische Arbeitsplätze<br />

Umfangreiche Schulungsunterlagen mit<br />

Übungen<br />

Seminare/Markt 01/2013<br />

Service<br />

www.linux-magazin.de<br />

103<br />

academy.linux-magazin.de/lpic<br />

Am Bahnhof 3­5<br />

48565 Steinfurt<br />

Tel.: 02552 638755<br />

Fax: 02552 638757<br />

Weitere Informationen unter www.os­t.de<br />

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

M-Academy_1-9h_Anzeige_LPIC-Mike_v3.indd 1<br />

ür<br />

ACADEMY<br />

Online-Training<br />

Erfolgreicher Einstieg in<br />

WordPress 3<br />

mit Hans-Georg Esser, Chefredakteur Easy<strong>Linux</strong><br />

Ansprechende Webseiten, Blogs und<br />

Shops einfach selber erstellen<br />

❚ Installation in 5 Minuten<br />

❚ Designs ändern<br />

❚ Optimieren für Suchmaschinen<br />

❚ Funktionen erweitern<br />

❚ Benutzerrechte festlegen<br />

❚ Geld verdienen mit Werbung<br />

❚ Besucher analysieren<br />

❚ Sicherheit und Spam-Schutz<br />

20%<br />

12.10.2012 14:41:16 Uhr<br />

Treue-Rabatt für<br />

Abonnenten<br />

X25<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/wordpress<br />

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

-9h_Anzeige_wordpress_v02.indd 1<br />

ACADEMY<br />

Erleichtern Sie sich Ihre<br />

tägliche Arbeit mit (Auszug):<br />

❚ einheitlichen Dokumentenvorlagen<br />

❚ automatischen Formatierungen<br />

❚ generierten Inhaltsverzeichnissen<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/openoffice<br />

18.04.2011 11:18:15 Uhr<br />

Online-Training<br />

mit Hans-Georg Esser, Chefredakteur Easy<strong>Linux</strong><br />

OpenOffice -<br />

Arbeiten mit Vorlagen<br />

Mit vielen<br />

Praxisbeispielen<br />

WusstEn siE’s?<br />

<strong>Linux</strong>-<strong>Magazin</strong> und <strong>Linux</strong>User<br />

haben ein englisches<br />

Schwester magazin!<br />

Am besten, Sie informieren gleich<br />

Ihre <strong>Linux</strong>-Freunde in aller Welt...<br />

www.linux-magazine.com<br />

©mipan, fotolia<br />

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

ACADEMY<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

mit Tobias Eggendorfer<br />

Themen:<br />

- physikalische Sicherheit<br />

- logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

- Sicherheitskonzepte<br />

- Sicherheitsprüfung<br />

Inklusive Benutzer- und<br />

Rechteverwaltung, Authentifizierung,<br />

ACLs sowie wichtige<br />

Netzwerkprotokolle und mehr!<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit<br />

M_Academy_1-9h_Anzeige_openoffice-Mike.indd 1<br />

12.04.2011 15:08:54 Uhr<br />

LMI_3-9h_german_2910-2012.indd 1<br />

29.10.2012 LM-Academy_1-9h_Security-Mike.indd 9:56:27 Uhr<br />

1<br />

12.04.2011 14:00:35 Uhr


Service<br />

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

104<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 22<br />

ADMIN http://​www.admin-magazin.de 49, 71, 101<br />

Android User GY http://​www.android-user.de 69, 75, 93<br />

C&L Computer- u. Literaturverlag GmbH http://​www.cul.de 29<br />

Deutsche Messe AG http://​www.cebit.de 2<br />

Easy<strong>Linux</strong> http://​www.easylinux.de 79<br />

embedded projects GmbH http://​www.embedded-projects.net 101<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 103<br />

German Unix User Group (GUUG) e.V. http://​www.guug.de/​ 59<br />

Heinlein Professional <strong>Linux</strong> Support GmbH http://​www.heinlein-support.de 17<br />

Hostserver GmbH http://​www.hostserver.de 45<br />

Ico Innovative Computer GmbH http://​www.ico.de 21<br />

Inlab Software GmbH http://​www.inlab.de 101<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

http://​www.academy.linux-magazin.de<br />

19, 36, 103, 103, 103, 103<br />

<strong>Linux</strong>-Onlineshop.de http://​www.linux-onlineshop.de 107<br />

<strong>Linux</strong>User http://​www.linuxuser.de 33, 77<br />

O’Reilly Verlag GmbH & Co KG http://​www.oreilly.de 15<br />

Pengutronix e.K. http://​www.pengutronix.de 101<br />

PlusServer AG http://​www.plusserver.de 46, 60, 82, 98<br />

PrimeLine Solutions http://​www.primeline-solutions.de/​ 7, 9<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 103<br />

Strato AG http://​www.strato.de 1<br />

Thomas Krenn AG http://​www.thomas-krenn.com 108<br />

<strong>Linux</strong> <strong>Magazin</strong>e http://​www.linux-magazine.com 103<br />

Ubuntu User http://​www.ubuntu-user.de 97, 102<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 27<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 11, 91<br />

Einem Teil dieser Ausgabe liegt eine Beilage der Firma Strato AG<br />

(http://​www.strato.de) bei. Wir bitten unsere Leser um freundliche Beachtung.<br />

Veranstaltungen<br />

26.10.2012-09.04.2013<br />

Concurso Univ. de SwL – Desarrollo<br />

National, Spain<br />

http://www.concursosoftwarelibre.org<br />

24.11.-24.12.2012<br />

14. <strong>Linux</strong>Day 2012 Dornbirn<br />

Dornbirn, Österreich<br />

http://www.linuxday.at<br />

04.-07.12.2012<br />

AnDevCon IV<br />

Burlingame, CA, USA<br />

http://www.andevcon.com/AndevCon_IV/index.html<br />

09.-14.12.2012<br />

LISA '12<br />

San Diego, CA, USA<br />

http://www.usenix.org/events/lisa12/<br />

10.-12.12.2012<br />

PHP Summit The Ultimate PHP Event<br />

Park Inn by Radisson Berlin-Alexanderplatz<br />

Berlin<br />

www.php-summit.de<br />

28.-30.12.2012<br />

Exceptionally Hard & Soft Meeting<br />

Berlin<br />

http://ehsm.eu<br />

17.-18.01.2013<br />

Univention Summit 2013<br />

Bremen<br />

http://www.univention.de<br />

28.01.-02.02.2013<br />

<strong>Linux</strong> Conf Au<br />

Canberra, Australien<br />

http://linux.conf.au<br />

29.-30.01.2013<br />

Cloud Expo Europe 2013<br />

Olympia National Hall, London<br />

http://www.cloudexpoeurope.com<br />

29.-30.01.2013<br />

Cloud Expo Europe<br />

London, UK<br />

www.cloudexpoeurope.com<br />

02.-03.02.2013<br />

Fosdem<br />

Brüssel<br />

https://fosdem.org/2013/<br />

05.-06.02.2013<br />

M-Days<br />

Frankfurt<br />

http://www.m-days.com<br />

07.-08.02.2013<br />

Apps World North America<br />

San Francisco, CA<br />

http://www.apps-world.net/northamerica<br />

19.-20.02.2013<br />

DFN Workshop Sicherheit in vernetzten Systemen<br />

Hamburg<br />

http://www.dfn-cert.de<br />

22.-24.02.2013<br />

SCaLE 11x<br />

Los Angeles, CA, USA<br />

http://www.socallinuxexpo.org/scale11x/<br />

26.02.-01.03.2013<br />

GUUG FFG 2013<br />

Fachhochschule Frankfurt am Main<br />

Frankfurt am Main, Deutschland<br />

http://www.guug.de/veranstaltungen/ffg2013/<br />

26.02.-01.03.2013<br />

GUUG-Frühjahrsfachgespräch<br />

Frankfurt<br />

http://www.guug.de/veranstaltungen/ffg2013<br />

05.-09.03.2013<br />

Cebit<br />

Hannover<br />

http://www.cebit.de<br />

16.-17.03.2013<br />

Chemnitzer <strong>Linux</strong>-Tage 2013<br />

Chemnitz, Deutschland<br />

http://chemnitzer.linux-tage.de<br />

16.-17.03.2013<br />

Chemnitzer <strong>Linux</strong>-Tage<br />

Chemnitz<br />

http://chemnitzer.linux-tage.de/2013/<br />

02.-22.04.2013<br />

Concurso Univ. de SwL – Evaluación<br />

Sevilla, Spain<br />

http://www.concursosoftwarelibre.org<br />

20.04.2013<br />

Grazer <strong>Linux</strong>tage 2013<br />

Graz, Österreich<br />

http://www.linuxtage.at<br />

10.-11.05.2013<br />

Concurso Univ. de SwL – Final<br />

Granada, Spain<br />

http://www.concursosoftwarelibre.org<br />

22.-25.05.2013<br />

<strong>Linux</strong>Tag 2013<br />

Berlin, Deutschland<br />

http://www.linuxtag.org<br />

13.-19.07.2013<br />

Akademy 2013<br />

Bilbao, Spain<br />

http://akademy2013.kde.org


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,<br />

Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />

Anika Kehrer (ake), Peter Kreußel, Charly Kühnast,<br />

Martin Loschwitz, Michael Schilli, Tim Schürmann,<br />

Mark Vogelsberger, Uwe Vollbracht, Arnold Zimprich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Klaus Manuel Rehfeld, Mike Gajer, Judith Erb (Art Director)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linux-magazin.de (tle)<br />

<strong>Linux</strong> <strong>Magazin</strong>e International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linux-magazin.de<br />

www.medialinx-shop.de<br />

www.linux-magazin.de/Produkte<br />

Veronika Kramer<br />

abo@linux-magazin.de<br />

Tel.: 07131/27 07 274<br />

Fax: 07131/27 07 78 601<br />

CH-Tel: +41 43 816 16 27<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 5,95 4 6,70 Sfr 11,90 (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 63,20 4 71,50 Sfr 99,96 4 75,40<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 5,95 4 5,95 Sfr 7,70 4 5,95<br />

DigiSub (12 Ausgaben) 4 63,20 4 63,20 Sfr 78,50 4 63,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />

DELUG-DVD)<br />

3<br />

mit ADMIN-Abo und beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei<br />

Verlän gerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen 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 />

Michael Seiter, mseiter@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung USA Ann Jesse, ajesse@linux-magazine.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Eric Henry, ehenry@linux-magazine.com<br />

Tel.:+1 785 917 0990<br />

Pressevertrieb<br />

Druck<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 und Medienservice 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 – 2012 Medialinx AG<br />

Impressum 01/2013<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 Voll im Strom 24<br />

Fred Andresen Rechtsrat 74<br />

Zack Brown Zacks Kernel-News 18<br />

Sascha Daniels Ruf-Bereitschaft 34<br />

Charly Kühnast Di gehört dazu 51<br />

Martin Loschwitz Dell-Werkzeuge 66<br />

Andrej Radonic Ordentlich verstaut 52<br />

Michael Schilli Alternativer Gebrauch 94<br />

Tim Schürmann Kurz und kräftig 88<br />

Tim Schürmann Verfolgungsjagd 40<br />

Dr. Udo Seidel Tux liest 78<br />

Ralf Spenneberg Landschaft mit Lücken 30<br />

Mark Vogelsberger Bytes aus dem Kernel 81<br />

Uwe Vollbracht Tooltipps 48<br />

Stefan Gregor Weichinger Vergälltes Diebesgut 62<br />

Gunnar Wrobel Tux liest 78


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 02/2013 01/2013<br />

106<br />

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

02/2013 Dachzeile<br />

Open Vswitch<br />

© crstrbrt, 123RF<br />

Netzwerk-Dateisysteme im Test<br />

Nach Ausgabe 7/​2012, die sich lokale Dateisysteme vorgeknöpft<br />

hatte, nimmt das <strong>Linux</strong>-<strong>Magazin</strong> 2/​2013 Netzwerk-Filesysteme<br />

ins Visier. Über die mittlerweile recht unübersichtliche<br />

Gruppe gibt es eine Menge Funktionsdetails zu berichten. Insbesondere<br />

gehören Clustermöglichkeiten bei den Neulingen<br />

zum guten Ton, wenn sie gegen NFS und Samba einerseits und<br />

gegen SAN-Kisten andererseits etwas reißen wollen.<br />

Für IT-Verantwortliche, die den Unmut von Anwendern über<br />

langsame Zugriffe ertragen müssen, steht die Performance an<br />

erster Stelle. Die <strong>Magazin</strong>-Redaktion wird keinen Aufwand<br />

scheuen, um anhand lang laufender Benchmarks Sieger und<br />

Verlierer unter den Dateisystemen für die Ferne zu küren.<br />

MAGAZIN<br />

Überschrift<br />

Der Software-Switch erlaubt es dem Virtualisierungs-Admin,<br />

auf einem Host mehrere virtuelle Netzwerk interfaces zu vernetzen.<br />

Wie bei einem echten Switch legt er dabei VLANs,<br />

Spiegelports, und Layer-3-Tunnel zwischen Netzwerkinseln an.<br />

Die Protokolle Netflow und Openflow gibt's obendrauf.<br />

Mitnahme-Effekte<br />

Android führt mit Abstand die Hitliste der Smartphone-Betriebssysteme<br />

an. Die nächste „Kern-Technik“ beleuchtet, welche<br />

Änderungen die Entwickler für den Mobileinsatz am <strong>Linux</strong>-Kernel<br />

vorgenommen haben, und was es mit Wakelocks,<br />

Binder und dem anonymen Shared Memory auf sich hat.<br />

Auf den Zeiger gehen<br />

Die neuen Smart Pointer helfen dem Programmierer, die recht<br />

anspruchsvolle Speicherverwaltung von C++11 zu automatisieren.<br />

Welche Smart Pointer gibt es? Wie setzt man sie sinnvoll<br />

ein? Was ist der Unterscheid zur Garbage Collection? Der achte<br />

Teil der Artikelreihe zum C++-Nachfolger liefert Antworten.<br />

Die Ausgabe 02/2013<br />

erscheint am 3. Januar 2013<br />

Ausgabe 01/2013<br />

erscheint am 20.12.2012<br />

© Hberends, sxc.hu<br />

TV und Video-Editoren<br />

Kaum etwas ist so gut in Bild und Ton dokumentiert,<br />

wie die Komödien und Tragödien<br />

des Alltags. Angesichts dieser Vielfalt an<br />

Multimedia-Material gehören Programme<br />

zum Schneiden und Bearbeiten zur Grundausstattung<br />

jedes <strong>Linux</strong>-PCs. Aber die Software<br />

allein kann kein gutes Ergebnis erzielen.<br />

Dazu braucht es auch das Wissen um die richtigen Tricks und<br />

Kniffe. Neben Video-Editoren nehmen wir in der kommenden Ausgabe<br />

auch Hard- und Software zum Fernsehen unter die Lupe.<br />

Glanzlichter setzen<br />

Geheimnisvolle Glanzlichter, ex treme Kontraste – der richtige Effekt<br />

an der richtigen Stelle verleiht selbst einem sonst eher langweiligen<br />

Foto die rechte Würze. Das Duo PaintSupreme und IFX-Supreme verpasst<br />

Ihren Fotos die gewisse Note – ob mit den klassischen Werkzeugen<br />

der Bildbearbeitung, mit einem gänzlich neuen Element im<br />

Bild oder mit einer Transformation.<br />

Kindersicherung<br />

Wer für Kinder einen Zugang zum Netz bereitstellt, der tut gut daran,<br />

die Inhalte zu kontrollieren – <strong>Linux</strong>User erklärt wie: Mit einer Kombination<br />

aus dem Proxy Squid sowie dem Paketfilter im <strong>Linux</strong>-Kernel<br />

setzen Sie eine Firewall auf, die Sie mit wenigen Handgriffen an die<br />

neuen Bedingungen anpassen.<br />

Stellarium: Blick zum Nachthimmel<br />

Der Sternenhimmel in einer<br />

warmen Sommernacht ist<br />

nicht mit einem Blick auf den<br />

PC-Bildschirm zu vergleichen.<br />

Läuft allerdings auf dem Computer<br />

die freie Astronomie-<br />

Software Stellarium, dann<br />

sehen Sie weit mehr, als das<br />

abendliche Firmament Ihnen<br />

bietet – und das von jedem<br />

virtuellen Punkt der Erde.


Ein vollwertiger Server,<br />

im Taschenbuchformat!<br />

Green-IT<br />

Stromverbrauch: ca. 6 - 9 Watt<br />

Unauffällig<br />

Klein und absolut geräuschlos<br />

Kein PC<br />

Echte Serverkomponenten 24/7 zertifiziert<br />

Low Energy Server<br />

Bestens geeignet für Anwendungs- und<br />

Softwareentwickler - ebenso als Firewalllösung oder<br />

Router und aufgrund der geringen Größe für den<br />

mobilen Einsatz. Dank des sparsamen Verbrauchs<br />

ist der LES ebenfalls als kleiner Webserver praktisch.<br />

Sparen Sie im Jahr über 100 Euro an<br />

Stromkosten gegenüber einem vergleichbaren<br />

Server auf Atombasis.<br />

Nur bei Thomas<br />

Krenn ab:<br />

€<br />

499,–<br />

www.thomas-krenn.com/les_499<br />

TRY<br />

&<br />

BUY<br />

Diesen und andere Thomas Krenn Server<br />

können Sie auch per Try & Buy testen<br />

DE: +49 (0) 8551 9150 - 0<br />

CH: +41 (0) 848207970<br />

AT: +43 (0)732 - 2363 - 0<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen und Behörden. Druckfehler, Irrtümer und Änderungen in Preis und Ausstattung<br />

vorbehalten. Unsere Versandkosten richten sich nach Gewicht und Versandart - mehr unter: www.thomas-krenn.com/versandkosten.Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!