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‐buerger.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 / LPIC1<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 35<br />
48565 Steinfurt<br />
Tel.: 02552 638755<br />
Fax: 02552 638757<br />
Weitere Informationen unter www.ost.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