25.02.2014 Aufrufe

ADMIN Magazin Groupware (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Jetzt<br />

mit<br />

<strong>ADMIN</strong><br />

IT-Praxis & Strategie<br />

Besseres SSL<br />

Zukunftssicher mit Perfect<br />

Forward Secrecy<br />

Nameserver<br />

mit PowerDNS<br />

Software für GUTE zusammenarbeit im Team<br />

<strong>Groupware</strong><br />

E-Mails, Kalender migrieren<br />

Social Software im Check<br />

<strong>Groupware</strong> Tine getestet<br />

OpenStack-Cloud<br />

Das neue „Havana“-Release<br />

Malware-Analyse<br />

in der Praxis<br />

vSphere 5.5 –<br />

was ist neu?<br />

13.10<br />

Saucy Salamander<br />

12/2013 Dezember<br />

Endian-Switchboard<br />

Sichere Fernwartung und<br />

Standortvernetzung<br />

SSD für MS SQL<br />

Zugriff im Turbo-Modus<br />

www.admin-magazin.de<br />

Apache 2.4.6<br />

Tuning für den Klassiker<br />

D EUR 9,80<br />

A EUR 10,80 - BeNeLux EUR 11,25<br />

CH sfr 19,60 - E / I EUR 12,75<br />

4 196360 509805 12


Service<br />

Editorial<br />

3<br />

Four-Letter-Word<br />

Liebe Leserinnen und Leser,<br />

In der Open-Source-Szene heißt das böse F-Wort mit vier Buchstaben: Fork.<br />

Wo es fällt, ist es ein Indikator für Schwierigkeiten. Ziemlich häufig hörte<br />

man es in den letzten Jahren im Nagios-Umfeld.<br />

Nagios war einst ein Freizeitprojekt, das aber schon vor zehn Jahren weit<br />

verbreitet war und zunehmend komplexer wurde. Wiewohl Open Source,<br />

ließ sich auch damals bereits Geld damit verdienen, etwa indem man es als<br />

Dienstleister in Kundenprojekten installierte oder Schulungen anbot. Nur<br />

Ethan Galstad, der Erfinder und Chefentwickler, hatte davon einstweilen nichts.<br />

Das mag ihn bewogen haben 2007 seine eigene Firma Nagios Enterprises zu gründen. Ein Schritt, der<br />

aber bald zu Problemen führte: Zahlreiche Entwickler beklagten, von ihnen eingereichte Patches blieben<br />

unbesehen liegen, die Weiterentwicklung der Community-Version sei eingeschlafen, die Firma konzentriere<br />

sich nur noch auf zahlende Kunden, lange bestehende Probleme blieben ungelöst.<br />

So kam es 2009 zum ersten Fork, das Projekt Icinga spaltete sich ab. Außerdem startete mit Shinken eine<br />

Neu-Implementierung in Python. Nagios erwuchs Konkurrenz. Nicht zufällig entbrannte im Jahr darauf<br />

ein über Rechtsanwälte und via Internet geführter, erbitterter Streit um Markenrechte und Domains.<br />

Nagios überlebte das alles und existierte als freie Software fort, die weiter stark von der Beteiligung der<br />

Community profitierte, darunter namentlich von dem beim Monitoring-Spezialisten OP5 beschäftigten<br />

Andreas Ericsson. Ebendieser Ericsson, pikanterweise noch im vergangenen Jahr von Nagios Enterprises<br />

selbst zum „Nagios Most Valuable Professional“ gekürt, wurde nun plötzlich von seinen Juroren<br />

geschasst. Er wurde aus der Entwicklung ausgesperrt, von der Teamliste gestrichen, und die Developer-<br />

Foren konvertierten flugs in firmeneigene, moderierte Diskussionsrunden. Bitter enttäuscht startet er<br />

nun einen weiteren Nagios-Fork: Naemon.<br />

Man könnte meinen, man sähe der Selbstdemontage eines ehemals erfolgreichen Open-Source-Projekts<br />

zu. Alles in allem ist verblüffenderweise das Gegenteil der Fall. Der Wettbewerb hat das Geschäft belebt.<br />

Von Icinga gibt es mittlerweile zwei Varianten sowie ein neues und ein neuestes Web-Interface neben der<br />

klassischen Ansicht. Mit Naemon entsteht eine Alternative, die explizit auf eine Datenbank verzichtet.<br />

Zusätze und Plugins aller Art sprießen wie Pilze aus dem Boden. Es gibt alternative GUIs, Lastverteiler,<br />

Konfigurationstools, Visualisierer und vieles mehr. Die Nagios-Ableger blühen und gedeihen.<br />

Wir lernen: Mag es auch vorkommen, dass ein Anbieter untergeht – der Anwender gewinnt, wenn sich die<br />

besten Ideen ums Überleben streiten. Auch dafür steht das Four-Letter-Word Fork.<br />

@ leserbriefe@admin-magazin.de www.facebook.com/adminmagazin www.twitter.com/admagz<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


<strong>ADMIN</strong><br />

IT-Praxis & Strategie<br />

<strong>Groupware</strong>ab Seite 34<br />

n Login<br />

8 Vorgelesen<br />

Hochverfügbarkeit und Wireshark.<br />

10 Branchen-News<br />

Neues von Firmen und Projekten.<br />

14 OSMC 13<br />

Updates in Sachen Monitoring.<br />

16 Admin-Story<br />

Migration virtueller Maschinen.<br />

20 Betriebssysteme<br />

Systementwicklung gestern, heute<br />

und morgen.<br />

n Schwerpunkt<br />

34 Social Software<br />

Sind soziale Netzwerke eine<br />

Alternative zu <strong>Groupware</strong>?<br />

40 <strong>Groupware</strong>-Migration<br />

Ein Portal verspricht die automatische<br />

Migration von E-Mails, Terminen<br />

und Aufgaben.<br />

44 Tine 2.0<br />

Die Versionen „Kristina“ und „Collin“<br />

der Tine-<strong>Groupware</strong> im Test.<br />

n Netzwerk<br />

24 PowerDNS<br />

Die Alternative zu BIND.<br />

30 Apache<br />

Neuheiten in Apache 2.4.6.<br />

34<br />

Social Software<br />

Enterprise 2.0 oder<br />

nutzloser Hype?<br />

24<br />

PowerDNS<br />

Leistungsfähiger und<br />

flexibler Nameserver.<br />

Service<br />

3 Editorial<br />

4 Inhalt<br />

6 Heft-CD<br />

114 Impressum und <strong>Vorschau</strong><br />

Ausgabe 12-2013<br />

Admin<br />

www.admin-magazin.de


Service<br />

Inhalt<br />

5<br />

84<br />

sicherer<br />

Schlüsselverlust ohne<br />

82SSL<br />

schlimme Folgen.<br />

GnuPG<br />

E-Mail-Verschlüsselung<br />

im Mailclient einrichten.<br />

Seite 6<br />

13.10<br />

Saucy Salamander Server<br />

n Know-how<br />

56 Git-Annex<br />

Datenverwaltung mit Git-Annex.<br />

60 Speicherfehler<br />

Memory Errors unter Linux erkennen<br />

und beobachten.<br />

62 Windows Server 2012 R2<br />

Was ist neu im Windows Server<br />

2012 R2?<br />

n Security<br />

68 Endian-Switchboard<br />

VPN und mehr: Remote-Zugriff mit<br />

dem Endian-Switchboard.<br />

78 Malware-Analyse<br />

Statische und dynamische Code-<br />

Analyse nimmt Schadsoftware<br />

unter die Lupe.<br />

82 SSL-Verschlüsselung<br />

Mehr Sicherheit mit Perfect<br />

Forward Secrecy.<br />

n Basics<br />

84 GnuPG<br />

E-Mail-Verschlüsselung mit Open-<br />

PGP sicher einrichten.<br />

88 <strong>ADMIN</strong>-Tipps<br />

Die monatlichen Praxistipps.<br />

n Test<br />

90 SQL-Acceleration<br />

Die Beschleunigerkarte ZD XL SQL<br />

Accelerator von OCZ im Test.<br />

n Virtualisierung<br />

94 OpenStack Havana<br />

Einen Cocktail an Neuerungen<br />

bietet das neue Havana-Release<br />

von OpenStack.<br />

100 vSphere 5.5<br />

VMware vSphere 5.5: Die wichtigsten<br />

Neuerungen im Überblick.<br />

n FreeX<br />

106 GELI<br />

Festplattenverschlüsselung<br />

in FreeBSD.<br />

56<br />

Git-Annex<br />

Synchronisation und Verwaltung von<br />

Daten mit dem Git-Tool.<br />

94<br />

OpenStack Havana<br />

Neuestes Release des Cloud-<br />

Computing-Frameworks.<br />

Admin<br />

Ausgabe 12-2013


6<br />

Service<br />

Heft-CD<br />

CD kaputt?<br />

Wir schicken Ihnen kostenlos eine Ersatz-CD<br />

zu, E-Mail genügt: info@admin-magazin.de<br />

Ubuntu 13.10 Saucy Salamander Server Edition<br />

Heft-CD<br />

Auf dem beiliegenden Datenträger finden Sie die neueste Version<br />

der Ubuntu-Server-Version 13.10 Saucy Salamander.<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30771<br />

n Speziell auf Server ausgerichtete<br />

Variante der beliebtesten Linux-<br />

Distribution.<br />

n Basierend auf Debian<br />

n Mit der neuesten Openstack-Version<br />

Havana<br />

n Mit dem Orchechstrierungstool Juju<br />

n Vordefinierte Pakete für typische<br />

Serverdienste<br />

Legen Sie einfach die DVD in das Laufwerk<br />

ein und starten Sie den Rechner.<br />

Möglicherweise müssen Sie noch im<br />

BIOS die richtige Boot-Reihenfolge<br />

einstellen. Danach können Sie Ubuntu<br />

13.10 Saucy Salamander Server Edition<br />

auf dem Rechner als Betriebssystem<br />

installieren. n<br />

antonino mirabile, 123RF<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


8<br />

Login<br />

Bücher<br />

Galina Peshkova, 123RF<br />

Bücher über High Availability unter Linux und Netzwerkanalyse mit Wireshark<br />

Vorgelesen<br />

Bücher stehen immer zur Lektüre bereit, ein Linux-Cluster nicht.<br />

Deshalb ist diesen Monat Hochverfügbarkeit ein Buchthema; ein anderes<br />

ist Netzwerkanalyse mit Wireshark. Oliver Frommel, Carsten Schnober<br />

Wenn man den Linux-Entwicklern eines<br />

nicht vorwerfen kann, dann ist es Stillstand.<br />

Für die Welt der Hochverfügbarkeit<br />

dokumentiert das ganz<br />

treffend die zweite Auflage<br />

des Buchs von Oliver Liebel.<br />

Eine ganze Menge hat<br />

sich seit des ersten Erscheinens<br />

geändert und all dies<br />

ist in der neuen Ausgabe<br />

dokumentiert. Tatsächlich<br />

schreibt Liebel über ein<br />

Feld, das sich im permanenten<br />

Wandel befindet,<br />

weshalb er um seine Aufgabe nicht zu<br />

beneiden ist. An vielen Stellen schwirrt<br />

dem Leser der Kopf, angesichts einer<br />

Vielzahl von konkurrierenden, sich<br />

teilweise ablösenden und doch wieder<br />

funktional überschneidenden Software-Paketen.<br />

Im Zentrum geht es um die Pacemaker-Software,<br />

die das Hirn eines<br />

Hochverfügbarkeits-Clusters darstellt.<br />

Die Kommunikation der mit dem Buch<br />

aufgebauten HA-Gebilde findet über<br />

Corosync statt. Das dazu passende Storage<br />

stellt der Autor vorzugsweise über<br />

DRBD zur Verfügung, geht aber auch<br />

auf die modernen verteilten Dateisysteme<br />

GlusterFS und vor allem Ceph<br />

ausführlich ein. Genauso aktuell ist die<br />

recht ausführliche Betrachtung des<br />

Linux-Dateisystems Btrfs, das der Autor<br />

für die Zukunft favorisiert. Für aktuelle<br />

Installationen rät er angesichts des<br />

Entwicklungszustands jedoch ab. Das<br />

gleiche gilt für Version 9.x von DRBD,<br />

der ein eigenes Kapitel gewidmet ist.<br />

Die Vielzahl der Details beim Setup<br />

eines hochverfügbaren Clusters ist<br />

verwirrend, und der Autor geht sie alle<br />

durch. Das sorgt für eine nicht<br />

einfach verdaubare Lektüre,<br />

aber auch für ein umfassendes<br />

Praxis-Handbuch zum Cluster-<br />

Setup. Ohne die vielen Beispiele<br />

am Rechner nachzuvollziehen,<br />

wird man an dem Buch<br />

wenig Freude haben, dafür ist<br />

es zu praxisorientiert.<br />

Wie schon bei der ersten Auflage<br />

ist der Schreibstil nicht<br />

jedermanns Sache. Des Guten zuviel<br />

sind aber absatzlange<br />

Exkurse in die Tagespolitik,<br />

Science Fiction<br />

und Motorradclubs, die<br />

schwer zu überspringen<br />

sind und das Verständnis<br />

eher erschweren.<br />

Wireshark 101<br />

Das Programm Wireshark<br />

hilft schon seit 1998 bei der Analyse<br />

von Netzwerken mit allen Details,<br />

bis 2006 unter dem Namen Ethereal.<br />

Nun ist die deutsche Ausgabe des<br />

Buchs »Wireshark 101 – Einführung in<br />

n Hochverfügbarkeit<br />

Oliver Liebel<br />

Linux Hochverfügbarkeit<br />

Galileo Press, 848 Seiten,<br />

49,90 Euro<br />

2., akt. und erw. Auflage 2013<br />

ISBN 978-3-8362-2542-7<br />

die Protokollanalyse« von Laura Chappell<br />

im mitp-Verlag erschienen.<br />

Die Autorin gibt auch Wireshark-Kurse<br />

und das spiegelt sich im Buch mit seinen<br />

abschließenden Übungsaufgaben<br />

wieder. Die bis ins letzte Untermenü<br />

ausgeführten und übersetzten Optionen<br />

und Beschreibungen geben ihm<br />

dazu einen referenzartigen Charakter.<br />

Der Nachteil des Detailreichtums liegt<br />

in teils langen Auflistungen mit wenig<br />

Informationsgehalt, die das Buch noch<br />

mehr zu einem Nachschlagewerk als zu<br />

einem sequenziell zu lesenden Stück<br />

machen.<br />

Vor der Beschreibung von Wire shark<br />

selbst gibt das Buch eine kurze Einführung<br />

in die grundlegenden Konzepte<br />

und die Terminologie moderner Netzwerktechnik.<br />

Leider fehlen praktische<br />

Hinweise etwa auf die korrekte<br />

Rechtevergabe für Wireshark;<br />

bei der Linux-Installation ist<br />

gar von zwingender manueller<br />

Übersetzung aus dem Quellcode<br />

die Rede, obgleich die meisten<br />

Distributionen fertige Wireshark-<br />

Binaries anbieten.<br />

Dennoch liefert »Wireshark 101«<br />

eine nützliche Einführung; wer<br />

die Paketflüsse in einem beliebigen<br />

Netzwerk untersuchen möchte, findet<br />

eine ausführliche Bedienungsanleitung<br />

für das Standardwerkzeug. n<br />

n Wireshark 101<br />

Laura Chappell<br />

Wireshark 101 –<br />

Einführung in die Protokollanalyse<br />

mitp, 352 Seiten,<br />

44,99 Euro<br />

1. Auflage, 2013<br />

ISBN: 978-3-8266-9713-5<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


10<br />

Login<br />

News<br />

Neue Software und Produkte<br />

Branchen-News<br />

Samba 4.1 veröffentlicht<br />

Mit Version 4.1 haben die Samba-Entwickler<br />

eine ganze Reihe von Verbesserungen in ihre<br />

Software integriert, mit der sich ein Active-Directory-Controller<br />

in freier Software nachbilden<br />

lässt. Neu ist etwa der Support von verschlüsselten<br />

Verbindungen über das SMB3-Protokoll<br />

in den Samba-Client-Tools. Beim Samba-Server<br />

wurde die Datenbank-Replikation im Domain-<br />

Controller-Modus verbessert. Sie soll nun<br />

schneller und zuverlässiger ablaufen.<br />

Der Support für serverseitiges Kopieren von<br />

Dateien auf Shares beschleunigt Kopiervorgänge,<br />

wenn die angebundenen Clients dies<br />

unterstützen, etwa in Windows 2012. Noch weiter<br />

beschleunigt wird dieser Vorgang durch ein<br />

neues VFS-Modul, das das Linux-Dateisystem<br />

Btrfs in Samba integriert. Btrfs selbst befindet<br />

sich allerdings noch im Entwicklungsstadium,<br />

deshalb steht dieses Feature unter Vorbehalt.<br />

Digital Attack Map visualisiert<br />

DDoS-Angriffe<br />

Aus einer Zusammenarbeit von Google Ideas und<br />

Arbor Networks ist die Digital Attack Map hervorgegangen,<br />

die unter der Adresse [http:// www.​<br />

digitalattackmap. com/] zu finden ist. Sie stellt<br />

die Daten über DDoS-Angriffe grafisch dar, die Arbor<br />

mit seinem ATLAS Threat Monitor gesammelt<br />

hat. Aktualisiert wird der Bestand täglich.<br />

Zusammen mit der Digital Attack Map hat Google<br />

unter dem Überbegriff „Free Expression Tools“<br />

noch zwei weitere Projekte vorgestellt. Das eine<br />

ist eine Browser-Erweiterung namens uProxy, die<br />

es Anwendern ermöglichen soll, sich gegenseitig<br />

zuverlässige und gegen Abhören geschützte Verbindungen<br />

ins Internet bereitzustellen. Entwickelt<br />

wurde uProxy von der Universität Washington<br />

und Brave New Software. Unterstützt wurde das<br />

Projekt von Google Ideas.<br />

Das zweite „Free Expression Tool“ firmiert unter<br />

dem Namen „Google Shield“ und erlaubt es Website-Betreibern,<br />

ihre Inhalte über das Google-Netz<br />

anzubieten. Damit sollen sie besser vor Angriffen<br />

aus dem Internet geschützt sein. Für den Dienst<br />

ist derzeit noch eine Einladung nötig, die man auf<br />

der Webseite des Project Shield anfordern kann.<br />

eBay eröffnet Data Center mit Brennstoffzellen<br />

Die Firma eBay hat im US-amerikanischen Bundesstaat Utah ein Data Center eröffnet,<br />

das mit Brennstoffzellen betrieben wird. Damit will eBay den Ausstoß an<br />

Kohlendioxid wie auch die Betriebskosten<br />

für das Rechenzentrum<br />

senken. Die<br />

Festoxid-Brennstoffzellen<br />

(SOFC) werden<br />

von der Firma Bloom<br />

Energy hergestellt und<br />

verwenden als Brennstoff<br />

Erdgas, das über<br />

eine elektrochemische<br />

Reaktion Strom erzeugt.<br />

Andere Kunden<br />

von Bloom sind etwa<br />

Nokia, Google, Adobe<br />

und NTT.<br />

Ursprünglich war geplant,<br />

dafür Biogas zu verwenden. Eine dauerhafte Versorgung konnte damit<br />

aber laut eBay nicht gewährleistet werden. Dank der hohen Zuverlässigkeit der<br />

Brennstoffzellen-Technologie, kann eBay bei dem neuen Data Center auf die<br />

sonst üblichen Diesel-Generatoren zur Backup-Stromversorgung verzichten.<br />

Dem Ziel, bis zum Jahr 2015 wenistens acht Prozent des eigenen Energieverbrauchs<br />

aus „saubereren Quellen“ zu decken, will Ebay damit ein Stück näher<br />

kommen.<br />

Bloom Energy<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Mirantis veröffentlicht OpenStack-<br />

Distribution<br />

Die Firma Mirantis hat eine aktuelle Version ihrer OpenStack-<br />

Software-Distribution herausgegeben. Es handle sich um die<br />

„erste OpenStack-Distribution für den Enterprise-Markt ohne<br />

Lock-in“, also ohne Bindung an einen spezifischen Hersteller,<br />

so Mirantis in seiner Ankündigung. Der Grund dafür sei laut<br />

Mirantis-Chef Adrian Ionel, dass die Firma keine eigenen Pläne<br />

hinsichtlich Software-Vertrieb verfolge. Man sei vielmehr nur<br />

darauf konzentriert „Kunden dabei zu helfen, mit OpenStack<br />

erfolgreich zu sein.“ Tatsächlich besteht das Geschäft von<br />

Mirantis darin, Kunden, zu denen etwa AT&T, Cisco WebEx,<br />

Comcast, Dell, The Gap, NASA, NTT Docomo, PayPal, Red Hat,<br />

Sprint und Verizon gehören, bei der Einführung von OpenStack<br />

zu unterstützen.<br />

Die OpenStack-Pakete von Mirantis sind für die Linux-Distributionen<br />

von Red Hat, CentOS und Ubuntu ausgelegt und<br />

basieren noch auf dem Grizzly-Release von OpenStack. Die<br />

eben erschienene Version „Havana“ soll am 11. November als<br />

Mirantis-Distribution verfügbar sein. Über die Kernpakete von<br />

OpenStack hinaus enthält die Distribution auch das grafische<br />

Deployment-Tool Fuel, das Mirantis im März dieses Jahres<br />

freigegeben hat. Enthalten sind außerdem die Komponenten<br />

Savanna, das einen Hadoop-Cluster basierend auf OpenStack<br />

realisiert, und Murano, das einfaches Windows-Deployment<br />

ermöglicht. Neben der Standard-Storage-Komponente „Swift“<br />

unterstützt die Mirantis-Version von OpenStack auch das verteilte<br />

Dateisystem Ceph.<br />

Der behaupteten Offenheit zum Trotz erfordert ein Download<br />

der Mirantis-OpenStack-Distribution unter [http:// software.​<br />

mirantis. com/] die vorherige Registrierung.<br />

Weed-FS: neues Dateisystem für große<br />

Datenmengen<br />

Unter dem Namen Weed-FS gibt es ein neues Dateisystem, das<br />

für sehr große Datenmengen ausgelegt ist, die von Anwendungen<br />

oft gelesen werden. Dabei orientiert es sich an der Storage-<br />

Methode, die Facebook beim Speichern von Fotos verwendet<br />

und in dem Papier „Finding a needle in Haystack: Facebook's<br />

photo storage“ dargelegt hat. Der Schlüssel zu hoher Lese-<br />

Performance liegt dabei in der Minimierung und der Verteilung<br />

von Metadaten, die nach den Untersuchungen Facebooks auf<br />

konventionellen Dateisystemen wie NFS zu einem großen Overhead<br />

führen.<br />

Weed-FS verzichtet wie die Haystack-Software auf die klassische<br />

Posix-File-Semantik, also beispielsweise auf die Vergabe<br />

von Dateirechten. Stattdessen arbeitet Weed-FS als einfacher<br />

Key-Value-Storage, der über mehrere Rechner verteilt ist. Auch<br />

die Metadaten zu jedem Objekt, die nur etwa 40 Byte umfassen,<br />

liegen im Hauptspeicher der Knoten und nicht auf dem Master-<br />

Server, der somit nicht zu einem Engpass beim Zugriff werden<br />

kann. Weed-FS ist in Go geschrieben und steht als freie Software<br />

unter der Apache-2.0-Lizenz. Der Code ist unter [https://​<br />

code. google. com/ p/ weed‐fs/] zu finden.<br />

www.admin-magazin.de


Neues Entwicklerkit für IPv6 im Internet<br />

der Dinge<br />

Die Firma Libelium bietet ein neues Entwicklerkit für Projekte<br />

an, in denen Sensoren und andere Kleinelektronik<br />

per IPv6 ans Internet angebunden wird. Das<br />

dafür vorgesehene Protokoll 6LoWPAN (IPv6 over<br />

Low power Wireless Personal Area Networks) wird von<br />

einer Arbeitsgruppe der IETF entwickelt.<br />

Das 6LoWPAN-Developer-Kit basiert auf der Waspmote-Plattform<br />

von Libelium, die über das neue Protokoll Sensoren ans Internet anbinden<br />

kann. Derzeit gibt es dafür bereits mehr als 60 Sensoren, etwa für Emissionsmessung,<br />

Strahlungsmessung, Smart Metering und GPS. Die Software für das Kit namens<br />

Mote Runner steuert IBM Zürich bei. Sie enthält verschiedene Bibliotheken zur Programmierung<br />

und eine Eclipse-basierte grafische Entwicklungsumgebung. Der Preis für das Kit startet<br />

bei etwa 2500 Euro und enthält bereits etwa 20 Sensoren.<br />

IPv6 soll die Grundlage für das sogenannte Internet der Dinge (Internet of Things) legen, das<br />

von diversen Herstellern und Consultants als neues Hype-Thema propagiert wird: Bis zum Jahr<br />

2020 wird sich die Zahl der ans Internet angeschlossenen Geräte von heute 2,5 Milliarden auf<br />

30 Milliarden erhöhen, meinen die Analysten von Gartner. Der Router-Hersteller Cisco, der das<br />

Thema aggressiv vorantreibt, geht gar von 50 Milliarden Geräten aus (siehe dazu die Infografik<br />

des Herstellers links). Wie realistisch solche Zahlen sind und wie etwa die damit verbundenen<br />

Sicherheitsfragen gelöst werden sollen, ist unklar. Mehr Informationen zum 6LoWPAN-Kit sind<br />

unter [http:// www. libelium. com/ products/ waspmote‐mote‐runner‐6lowpan] zu finden.<br />

Oracle kündigt neue In-Memory-Option an<br />

Auf der hauseigenen Konferenz und Messe<br />

OpenWorld in San Francisco hat Oracle als bedeutendste<br />

Neuerung im Datenbankbereich<br />

eine In-Memory-Option vorgestellt. Oracle<br />

vereinigt dabei zwei schon seit Längerem<br />

existierende Technologien: Die Ablage kompletter<br />

Tabellen im Hauptspeicher und ein<br />

spaltenorientiertes Ablageformat (Columnar<br />

Format). Die neue Option, die mit dem ersten<br />

Patch Release von Oracle 12 im ersten Quartal<br />

2014 verfügbar sein wird, zeichnet sich durch<br />

zwei wesentliche Vorteile aus: Zum einen<br />

kann die gesamte Infrastruktur der Oracle-<br />

Datenbank etwa in den Bereichen Backup,<br />

Hochverfügbarkeit und Security mit der<br />

neuen Option verwendet werden. Das ergibt<br />

einen großen Wettbewerbsvorteil gegenüber<br />

In-Memory-Konkurrenzprodukten, die für<br />

diese Gebiete erst Lösungen neu entwickeln<br />

müssen. Zum anderen können bestehende<br />

Anwendungen ohne Änderung von dem möglichen<br />

Geschwindigkeitszuwachs profitieren.<br />

Ein einfacher SQL-Befehl kann einer bestehenden<br />

Tabelle eine In-Memory-Speicherstruktur<br />

hinzufügen (und sie auch wieder entfernen).<br />

Das spaltenorientierte Format hat dabei einen<br />

ähnlichen Effekt wie ein Index und kann<br />

Zugriffe insbesondere aus Analytics- und<br />

Reporting-Anwendungen um den Faktor 100<br />

beschleunigen. Restriktionen bezüglich der<br />

verwendbaren SQL-Konstrukte gibt es nicht.<br />

Eine zeitintensive Datenmigration findet nicht<br />

statt. Scale-Out-Lösungen wie Oracle RAC<br />

können weiter benutzt werden.<br />

Mod-Statistics: SNMP für Apache<br />

Ein neues Modul für den Apache-Webserver ermöglicht es, Variablen und Statistiken über SNMP<br />

(Simple Network Monitoring Protocol) auszulesen. Mod-Statistics ist jetzt in Version 1.0 verfügbar<br />

und implementiert damit bereits den Support für das kommende HTTP-2.0-Protokoll. Die<br />

Software besteht aus einem Apache-Modul und einer Extension für Net-SNMP. Die verfügbaren<br />

SNMP-Variablen sind in der APACHE2-MIB (Management Information Base) definiert. Zur aktiven<br />

Alarmierung kann Mod-Statistics auch SNMP-Traps verschicken. Der Quellcode ist unter<br />

[http:// sourceforge. net/ projects/ apachestatistics/] zu finden.<br />

Quelle: Cisco<br />

Admin<br />

www.admin-magazin.de


Login<br />

News<br />

13<br />

Neuer Flash-Speicher von Dell<br />

Ab sofort sind die neuen Flash-optimierten Lösungen des Dell-Compellent-<br />

Systems verfügbar, deren entscheidender Vorteil hohe Speicherkapazitäten bei<br />

niedriger Latenzzeit und hoher Leistung ist. Die Flash-optimierte Lösung des<br />

Dell-Compellent-Systems ist die erste Storage-Lösung ihrer Klasse, die eine intelligente<br />

Datenanordnung bietet – entweder unter Einbeziehung unterschiedlicher<br />

Flash-Technologien oder kombiniert mit herkömmlichen Festplatten. Mit diesem<br />

zukunftsweisenden Ansatz können Unternehmen alle wichtigen Daten auf einem<br />

Flash-Speicher bereitstellen. Das ist schneller und billiger als mit einem vergleichbaren<br />

herkömmlichen 15K-Festplattensystem. Die Anwender profitieren von<br />

automatisch arbeitenden Tiering-Funktionen, die gleichzeitig für eine hohe Performance<br />

sorgen.<br />

Die neue Software in der Version 6.4 des Dell Compellent Storage Center schreibt<br />

die Daten zunächst auf hochperformante und hochverfügbare SLC-Drives. Werden<br />

die Daten seltener benötigt, verlagert sie die Software automatisch auf Second-<br />

Tier-MLC-Drives und schließlich auf kostengünstige Festplatten mit großen Speicherkapazitäten.<br />

Dieser Tiering-Ansatz, der unterschiedliche Flash-Speicher mit<br />

herkömmlichen Festplatten kombiniert, ermöglicht im Vergleich zu reinen Flash-<br />

Arrays, die nicht hinsichtlich Kosten oder Performance optimiert sind, Kostensenkungen<br />

um bis zu 80 Prozent. Gleichzeitig werden hohe I/O-Transaktionsraten und<br />

niedrige Latenzen erreicht. Ein weiterer Vorteil ist die nahtlose Integration in eine<br />

einheitlich zu managende Lösung.<br />

n Info<br />

Neueste nachrichten<br />

immer auf<br />

www.admin-magazin.de<br />

Weiterführende Links und<br />

Informationen zu den<br />

News finden Sie unter:<br />

www.admin-magazin.de/qr/30772<br />

Drahtlose Datenübertragung mit 100<br />

GBit pro Sekunde im Labor<br />

Schnelle Glasfasernetze sind in Deutschland eine Rarität. Das<br />

liegt vor allem daran, dass dafür jedes Dorf und jedes Haus mit<br />

neuen Kabeln versorgt werden müsste. Langfristig könnten die<br />

hohen Kosten für die Anbindung an schnelle Netzwerke sinken,<br />

indem die Datenübertragung statt über Glasfaser drahtlos erfolgt.<br />

Wie das Fachjournal Nature Phonetics in seiner neuen Ausgabe<br />

berichtet, haben Karlsruher Forscher nun erstmals Daten<br />

mit 100 GBit pro Sekunde übertragen, wenn auch nur über eine<br />

Strecke von 20 Metern.<br />

Der superschnelle Datentransfer setzt dabei auf eine sehr hohe<br />

Trägerfrequenz von 247,5 Gigahertz, auch weil der Frequenzbereich<br />

zwischen 100 Gigahertz und 30 Terahertz noch weitgehend<br />

ungenutzt ist. Zur Umsetzung der Rekordgeschwindigkeitsübertragung<br />

fassen die Forscher zunächst mehrere Bits zu<br />

sogenannten Datensymbolen zusammen und übertragen diese<br />

dann gleichzeitig. Das erlaube die direkte Umwandlung von<br />

Datenströmen aus faseroptischen Systemen in hochfrequente<br />

Funksignale, sagt der Erfinder des Verfahrens, Professor Dr. Jürg<br />

Leuthold, der inzwischen an der Eidgenössischen Technischen<br />

Hochschule (ETH) Zürich forscht.<br />

Im Mai hatte das Team bereits im Rahmen des Forschungsprojekts<br />

Millilink Daten zwischen zwei Hochhäusern mit einem<br />

Abstand von etwa einem Kilometer übertragen. Dabei erreichten<br />

sie eine Datenrate von immerhin 40 GBit pro Sekunde.<br />

Wann die Experimente zu einsatzfertigen Produkten führen,<br />

bleibt abzuwarten. Die Karlsruher Forscher verweisen allerdings<br />

darauf, dass die nun erreichten Übertragungsraten noch vor kurzem<br />

erst für das Jahr 2015 für möglich gehalten wurden.<br />

Anzeige<br />

www.admin-magazin.de


14<br />

Login<br />

OSMC<br />

Copyright, 123RF<br />

Viel Neues in Sachen Monitoring<br />

OSMC 2013<br />

Nagios ist zwar seit einiger Zeit aus dem Namen der Konferenz verbannt, aber<br />

längst nicht aus dem Programm. Auf der OSMC 2013 drehten sich viele Sessions<br />

um das prominente Monitoring-Tool und seine Ableger. Jens-Christoph Brendel<br />

Traditionell der letzte Vortrag am ersten<br />

Tag, sehr gut besucht und wie immer<br />

deutlich länger als auf der Agenda<br />

ausgewiesen: So präsentierte auch in<br />

diesem Jahr wieder Bernd Erk, einer<br />

der beiden Netways-Geschäftsführer,<br />

Neues rund um Icinga. Dabei ging es<br />

zuerst um einige Neuerungen in Icinga<br />

1, der größere Teil der Präsentation<br />

aber bezog sich auf das parallel von<br />

Grund auf neu in C++ entwickelte Icinga<br />

2. Das inkludiert inzwischen einen<br />

Cluster-Stack, der sich sowohl für Lastverteilung<br />

wie für Hochverfügbarkeit<br />

nutzen lässt und es ermöglicht, dass<br />

die stark modularisierte Applikation<br />

Funktionen beliebig auf einzelne Hosts<br />

eines Clusters verteilen kann.<br />

Als weitere große Neuerung wurde ein<br />

völlig neues Web-Interface vorgestellt,<br />

dass sich für alle Backends eignen soll<br />

und mit dem Ziel antritt, schneller, einfacher<br />

und leichter bedienbar zu sein.<br />

Dazu geht es beispielsweise sparsamer<br />

mit Informationen um und zeigt dem<br />

Nutzer nur Dinge, auf die er tatsächlich<br />

reagieren muss. Weiter ausgebaut<br />

wurde auch die Icinga-Dokumentation,<br />

für die nun anstelle von DocBook die<br />

einfachere Auszeichnungssprache<br />

Markdown zum Zuge kommt.<br />

Neuer Nagios-Fork<br />

In einem Vortrag zuvor sollte es eigentlich<br />

um Neuerungen in Nagios 4.1 und<br />

5 gehen, die überraschendste Erkenntnis<br />

dieser Session war aber, dass der<br />

Referent, der bekannte langjährige<br />

Nagios-Maintainer Andreas Ericsson,<br />

gar nicht mehr an Nagios arbeitet,<br />

sondern mit seinem eigenen Nagios-<br />

Fork Naemon an den Start geht. Nagios<br />

Enterprises hatte ihn kurzerhand vor<br />

die Tür gesetzt. Was immer die Gründe<br />

dafür gewesen sein mögen – allein die<br />

Tatsache, dass gleichzeitig das ehedem<br />

öffentliche Developer-Forum in ein moderiertes<br />

Portal verwandelt wurde, ist<br />

ein weiterer Fingerzeig dafür, dass dort<br />

der Offenheit nicht mehr die höchste<br />

Priorität eingeräumt wird.<br />

Um Nagios ging es aber wie immer<br />

nicht ausschließlich: Rihard Olups demonstrierte<br />

Zabbix, Luca Deri sprach<br />

über Network Traffic Monitoring<br />

mit »ntopng«, Georg Kostner stellte<br />

End User Experience Monitoring mit<br />

Al’exa vor und Jeff Gehlbach Neues in<br />

OpenNMS.<br />

Ein weiterer Schwerpunkt seit Jahren<br />

ist die Automatisierung: Sei es mithilfe<br />

von Puppet (Bernd Strößenreuther und<br />

Sascha Brechmanm), sei es durch das<br />

automatische Erzeugen von Konfigurationsfiles<br />

durch das coshsh-Framework<br />

(Gerhard Laußer) oder mithilfe von<br />

Adagios (Páll Sigurdsson). Neben der<br />

Vorstellung solcher Tools hatten nicht<br />

zuletzt auch wieder praktische Fallstudien<br />

Platz im Programm, etwa durch<br />

das IT-Team der bayerischen Landeshauptstadt<br />

München.<br />

Niemand fährt wegen der Schnittchen<br />

zu einer Konferenz. Dass aber das<br />

Catering, die Unterbringung und die<br />

gesamte Konferenzorganisation auch<br />

in diesem Jahr wieder vorzüglich funktionierten,<br />

verdient erwähnt zu werden,<br />

schafft es doch eine angenehme Atmosphäre<br />

für den Gedankenaustausch. Wo<br />

man sich gut aufgehoben fühlt, kommt<br />

man gerne wieder. n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


16<br />

Login<br />

Admin-Story<br />

Migration virtueller Maschinen<br />

Wandervogel<br />

Lin Yan, 123RF<br />

Für die Verwaltung von virtuellen Systemlandschaften kommt in vielen Datacentern immer noch<br />

vSphere vom Platzhirsch VMware zum Einsatz. Mit oVirt steht jedoch eine ausgewachsene Open-Source-<br />

Alternative zur Verfügung. Auch die Migration der virtuellen Systeme stellt mittlerweile kein Hexenwerk<br />

mehr dar. Thorsten Scherf<br />

Das Management-Framework oVirt [1]<br />

ist für die Verwaltung von virtuellen Maschinen<br />

auf Basis des KVM-Hypervisors<br />

ausgelegt (Abbildung 1). Mitte September<br />

ist die Version 3.3.0 erschienen, die<br />

eine Menge Features enthält, sodass<br />

das Framework mittlerweile eine ernste<br />

Alternative auch für eingefleischte<br />

VMware-Administratoren sein sollte.<br />

Zu den wichtigsten Features zählen<br />

sicherlich:<br />

n Live-Migration virtueller Systeme<br />

n Storage-Live-Migration<br />

n Online-Snapshots von virtuellen<br />

Systemen<br />

n Umfangreiche RESTful-API zur Automatisierung<br />

von Aufgaben<br />

n Support für iSCSI-, FCoE-, NFS- und<br />

Gluster-Backend-Speicher<br />

Eine Quick-Start-Anleitung zur Konfiguration<br />

der Software befindet sich<br />

unter [2]. An dieser Stelle soll es darum<br />

gehen, bestehende virtuelle Maschinen<br />

auf die neue KVM-basierte Umgebung<br />

zu migrieren.<br />

Virtuelle Maschinen verfügen immer<br />

über eine entsprechende Datei, in der<br />

das System näher spezifiziert ist. In VMware-Umgebungen<br />

ist das die VMX-Datei<br />

einer Maschine, in Libvirt-basierten<br />

Umgebungen handelt es sich um eine<br />

XML-Datei, die das System beschreibt.<br />

Die dort enthaltenen Informationen<br />

werden dann jeweils in die Datenbank<br />

des Management-Systems geladen und<br />

stehen dort jedem Host zur Verfügung.<br />

Möchte man nun Systeme aus einer Virtualisierungsumgebung<br />

in eine andere<br />

migrieren, so müssen beide natürlich<br />

die Beschreibung der zu migrierenden<br />

Systeme lesen und verstehen können.<br />

Aus diesem Grunde wurde das Open<br />

Virtual Machine Format (OVF) eingeführt.<br />

OVF wurde im Jahre 2011 als<br />

offizieller ISO-Standard anerkannt und<br />

unterstützt eine Vielzahl von Virtualisierungslösungen,<br />

beispielsweise Red<br />

Hat Enterprise Virtualization, VMware,<br />

Linux z/​VM und auch VirtualBox. OVF<br />

wird auch gerne dazu genutzt, Software-Appliances<br />

als virtuelle Systeme<br />

zu verteilen.<br />

Sollen Systeme aus einer bestehenden<br />

VMware-Umgebung in die neu aufgebaute<br />

oVirt-Umgebung umgezogen<br />

werden, so besteht eine Möglichkeit<br />

darin, die Systeme aus der alten<br />

Umgebung zu exportieren und in ein<br />

OVF-Archiv zu verpacken und dann in<br />

der neuen Umgebung zu importieren.<br />

VMware beherrscht das Exportieren aus<br />

vSphere heraus, bietet mit dem OVF-<br />

Tool aber auch ein Kommandozeilen-<br />

Interface an, mit dem sich der Export<br />

automatisieren lässt.<br />

Nicht lückenlos<br />

An dieser Stelle könnte man meinen,<br />

alles ist gut und wir sind ja fast fertig.<br />

Leider ging es aber bisher nur um eine<br />

Seite der Medaille. Versucht man nun<br />

nämlich das OVF-Archiv in die oVirt-<br />

Umgebung zu importieren, so schlägt<br />

das fehl. Das Tool »engine‐image‐uploader«<br />

verweigert seinen Dienst. Der<br />

Import in eine VMware-Umgebung<br />

klappt jedoch reibungslos.<br />

In der OVF-Definition steht zwar beschrieben,<br />

wie eine virtuelle Maschine<br />

in dem Archiv zu definieren ist, es gibt<br />

allerdings keinerlei Aussage darüber,<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Login<br />

Admin-Story<br />

17<br />

Ziel-Umgebung zu gewährleisten.<br />

Das Tool »virt‐v2v«<br />

lässt sich aus dem<br />

Standard-Software-<br />

Repository eines aktuellen<br />

Fedora- oder<br />

Red-Hat-Enterprise-<br />

Linux-Systems installieren.<br />

Vor der<br />

eigentlichen Migration<br />

sind allerdings einige<br />

Voraussetzungen zu<br />

erfüllen, etwa auf oVirt-<br />

Seite eine NFS-basierte<br />

Export-Domäne, die<br />

während der Migration<br />

das OVF-Archiv aufnimmt.<br />

Von hier aus<br />

lässt sich die migrierte Maschine dann<br />

in einen beliebigen Cluster innerhalb<br />

der oVirt-Datacenter schieben.<br />

Ein weiterer wichtiger Punkt betrifft die<br />

Netzwerk-Konfiguration. In der oVirtwelches<br />

Disk-Format zu verwenden<br />

ist. Das Format muss also kompatibel<br />

sein mit dem, was der Hypervisor in<br />

der Zielumgebung unterstützt. Leider<br />

unterstützt oVirt zwar QCOW und RAW,<br />

nicht aber das von VMware verwendete<br />

VMDK-Format. Was also tun? Anstatt<br />

nun lange am Archiv herumzubasteln,<br />

um das Disk-Format zu konvertieren,<br />

kann man auf eine alternative Lösung<br />

zurückgreifen.<br />

Seit einiger Zeit existiert das Tool<br />

»virt‐v2v«. Dieses ist in der Lage,<br />

Maschinen zwischen verschiedenen<br />

Umgebungen zu migrieren und das erzeugte<br />

OVF-Archiv so anzupassen, dass<br />

ein Import in der gewünschten Zielumgebung<br />

reibungslos funktioniert. Allerdings<br />

kommt es noch besser: Das Tool<br />

führt nicht nur einen einfachen Import<br />

der virtuellen Maschine durch, stattdessen<br />

injiziert es der zu migrierenden<br />

Maschine auch noch VirtIO-Treiber, um<br />

die bestmögliche Performance in der<br />

Abbildung 1: oVirt ist auf die Verwaltung von virtuellen Maschinen auf<br />

KVM-Basis ausgelegt.<br />

Umgebung sind entweder die gleichen<br />

Netze wie in der VMware-Umgebung<br />

anzulegen oder ein Mapping für die<br />

notwendigen Netze einzurichten. Das<br />

Mapping erfolgt in der Datei »/etc/


18<br />

Login<br />

Admin-Story<br />

n Listing 1: Konfiguration<br />

01 <br />

02 <br />

03 <br />

04 <br />

06 <br />

n Info<br />

n Autor<br />

virt‐v2v.conf«. Ist beispielsweise das<br />

Netz »vm‐infra« auf der VMware-Seite<br />

vorhanden und soll dieses mit dem<br />

Netz »ovirt‐infra« in der neuen Umgebung<br />

verknüpft werden, so ist hierfür<br />

die folgende Option in der Konfigurationsdatei<br />

zu definieren. Das äußere Netz<br />

bezieht sich auf die alte, das innere auf<br />

die neue Umgebung:<br />

<br />

<br />

<br />

Damit die notwendigen Pakete, also die<br />

VirtIO-Treiber inklusive der eventuellen<br />

Abhängigkeiten, während der Migration<br />

in die Maschine injiziert werden können,<br />

sind diese im einfachsten Fall auf<br />

dem System zur Verfügung zu stellen,<br />

von dem das Migrationstool »virt‐v2v«<br />

aufgerufen wird. Überlicherweise handelt<br />

es sich hierbei um den Ordner<br />

»/var/lib/virt‐v2v/software/«, allerdings<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30776<br />

Thorsten Scherf arbeitet als<br />

Principal Consultant für Red Hat<br />

EMEA. Er ist oft als Vortragender<br />

auf Konferenzen anzutreffen.<br />

Wenn ihm neben der Arbeit und<br />

Familie noch Zeit bleibt, nimmt er<br />

gerne an Marathonläufen teil.<br />

lässt sich in der Datei »/var/lib/virt‐v2v/<br />

virt‐v2v.db« auch ein alternativer Ordner<br />

im Tag »path‐root« definieren. In<br />

der »virt‐v2v.db«-Datei werden auch<br />

sämtliche Software-Pakete aufgeführt,<br />

die während der Migration injiziert<br />

werden. Welche das sind, ist natürlich<br />

vom Betriebssystem und dessen Version<br />

abhängig. Das Beispiel in Listing 1<br />

verdeutlicht dies für ein RHEL5-System.<br />

Wird dieses auf die oVirt-Umgebung<br />

migriert, so müssen die im Tag »dep<br />

name« vorhandenen Pakete installiert<br />

sein, damit die Installation der VirtIO-<br />

Treiber funktioniert. Ist dies nicht der<br />

Fall, so werden die fehlenden Pakete<br />

zuerst installiert – entweder aus dem<br />

Dateisystem des Migrationshosts oder<br />

online aus dem Red Hat Network, wenn<br />

die Maschine dort denn registriert ist.<br />

Treiber, die nicht für den Boot-Vorgang<br />

der Maschine benötigt werden, lassen<br />

sich auch zu einem späteren Zeitpunkt<br />

einbinden. Hier ist es dann auch möglich,<br />

ein ISO-Image mit den benötigten<br />

Treibern an die Maschine anzuhängen<br />

und die Treiber von dort zu installieren.<br />

Vorsicht: Treiber<br />

Zum Abschluss sollte man noch darauf<br />

achten, dass man ein aktuelles Backup<br />

der zu migrierenden Maschinen hat<br />

und dass sich keine VMware-spezifische<br />

Software mehr auf den Systemen befindet.<br />

Ich habe schon öfters erlebt, dass<br />

Maschinen nicht korrekt starten, wenn<br />

vor der Migration die VMware-Tools<br />

nicht entfernt wurden.<br />

Der eigentliche Migrationsvorgang lässt<br />

sich dann mit dem folgenden Kommando<br />

anstoßen. Dieses ist im Idealfall<br />

auf einem dedizierten Migrationshost<br />

aufzurufen:<br />

virt‐v2v ‐ic esx://esx.example.com/U<br />

?no_verify=1 ‐o rhev ‐os storage.example.U<br />

com:/ovirt‐exportdomain ‐‐network ovirt‐U<br />

infra vm‐name<br />

Die Option »‐ic« gibt hier den ESX-Host<br />

an, von dem die Maschine migriert werden<br />

soll. Alternativ könnte hier auch<br />

ein Xen- oder KVM-Host stehen. Die<br />

Angabe von »no_verify=1« sorgt dafür,<br />

dass auch ungültige X.509-Zertifikate<br />

(beispielsweise selbstsignierte) vom<br />

Tool »virt‐v2v« akzeptiert werden. Mittels<br />

»‐o« wird die Zielumgebung spezifiziert.<br />

Die Angabe »rhev« bezieht sich<br />

hier auf das Enterprise-Produkt Red<br />

Hat Enterprise Virtualization; oVirt stellt<br />

dessen Upstream-Variante dar. Die<br />

Storage-Domäne, in die das OVF-Archiv<br />

importiert wird, bekommt das Tool mittels<br />

der Option »‐os« übergeben. Das<br />

Netzwerk sollte das sein, für welches in<br />

der Konfigurationsdatei ein Mapping<br />

eingerichtet wurde und schließlich wird<br />

die zu migrierende Maschine als letztes<br />

Argument übergeben.<br />

Zur Authentifizierung auf dem ESX-Host<br />

kann der Benutzername und das Passwort<br />

interaktiv übergeben werden. Für<br />

die Migration mehrerer Systeme bietet<br />

es sich allerdings an, die Account-Daten<br />

für den Zeitraum der Migration in der<br />

Datei »$HOME/.netrc« zu speichern. Sie<br />

hat folgendes Format:<br />

machine esx.example.com login root U<br />

password redhat<br />

Hat die Migration der Maschine funktioniert,<br />

taucht sie schließlich innerhalb<br />

der oVirt-Export-Domäne auf und lässt<br />

sich über das webbasierte Management-Tool<br />

in einen der vorhandenen<br />

oVirt-Cluster importieren. Nach einem<br />

Neustart der migrierten Maschine in<br />

der neuen Umgebung sollte sichergestellt<br />

werden, dass sie wie erwartet<br />

funktioniert. Erst dann kann man guten<br />

Gewissens die Maschine auf der alten<br />

Umgebung löschen und auch das OVF-<br />

Archiv aus der oVirt-Export-Domäne<br />

entfernen.<br />

Für die Migration von sehr vielen Systemen<br />

skaliert die hier vorgestellte<br />

Methode natürlich nicht sonderlich gut.<br />

Hier bietet es sich an, eine Lösung auf<br />

Basis von »virt-v2v« in Kombination<br />

mit der RESTful-API des oVirt-Managers<br />

zu entwickeln. Das oVirt-Wiki zeigt<br />

einige Beispiele dafür, wie eine Kombination<br />

aus Kommandozeilen-Tools<br />

(hier das Tool virt-v2v) zusammen mit<br />

der RESTful-API des oVirt-Managers<br />

aussehen könnte. Bleibt zum Schluss<br />

nur noch, viel Spaß bei der Migration<br />

der virtuellen Maschinen auf die offene<br />

Management-Plattform oVirt zu wünschen.<br />

(ofr) n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


20<br />

Login<br />

Betriebssysteme<br />

Innovation in der Betriebssystementwicklung<br />

Fata Morgana<br />

Virtualisierung bringt Fahrt in<br />

die Entwicklung von Betriebssystemen,<br />

stellt aber auch gewohnte<br />

Konzepte grundsätzlich<br />

in Frage. Oliver Frommel<br />

david manno, 123RF<br />

Wenn man sich heute in eine technische<br />

Universität begibt und eine Vorlesung<br />

zum Thema Betriebssysteme<br />

besucht, hat sich im Grunde gegenüber<br />

früher wenig verändert. Das ist<br />

vielleicht kein Wunder, denn auch die<br />

Rechnerarchitektur ist seit vielen Jahrzehnten<br />

die gleiche. Mit ihr und ihren<br />

Beschränkungen müssen Betriebssysteme<br />

umgehen und etwa Hauptspeicher<br />

und CPU-Zeit auf quasi-gleichzeitig<br />

laufende Prozesse verteilen. An<br />

den Prinzipien hierfür hat sich seit den<br />

siebziger Jahren mit Unix wenig geändert,<br />

aber mit etwas Glück steht heute<br />

wenigstens Linux auf dem Lehrplan.<br />

Kein Wunder, dass angesichts dessen<br />

Rob Pike vor 15 Jahren die These von<br />

der Belanglosigkeit der Forschung im<br />

Bereich der Systemsoftware formuliert<br />

hat [1]. Vermutlich wurde sie auch aus<br />

dem Frust darüber genährt, dass sein<br />

eigenes Plan-9-System [2] zwar recht<br />

revolutionär war, aber außerhalb elitärer<br />

Zirkel kaum je Fuß fassen konnte.<br />

Jedenfalls vertritt Pike die Theorie,<br />

dass es etwa im Bereich der Betriebssysteme<br />

kaum relevante Forschung<br />

gebe und etwa Linux, das damals bereits<br />

im Mainstream angekommen war,<br />

gegenüber dem alten Unix nichts Neues<br />

zu bieten habe. Innovation sei dagegen<br />

eher noch bei Microsoft zu finden.<br />

Keine Rollle spielt allerdings in Pikes<br />

Betrachtungen eine Technologie, die<br />

gerade ein Jahr vorher auf der Bildfläche<br />

erschienen war: VMware hatte<br />

1999 das erste Virtualisierungsprodukt<br />

auf den Markt gebracht. Zwar gibt es<br />

Virtualisierung schon seit den sechziger<br />

Jahren, aber die Technologie war<br />

bis dahin auf die Partitionierung von<br />

Großrechnern wie IBMs System/​370<br />

beschränkt. Erst mit VMware begann<br />

der Virtualisierungstrend auf konventionellen<br />

Servern und Desktops, der bis<br />

heute nachschwingt.<br />

Revolution Virtualisierung<br />

Richtig interessant wurde das Ganze<br />

dann um das Jahr 2005 herum, als die<br />

beiden CPU-Hersteller Intel und AMD<br />

auch Hardware-Support zur Virtualisierung<br />

in ihre Chips integrierten. In<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Linux/KVM<br />

OS V<br />

Apps<br />

Apps<br />

Libs<br />

Libs<br />

App<br />

Linux<br />

Linux<br />

Libs<br />

JVM<br />

Qemu<br />

OS V<br />

OS V<br />

Linux−Kernel<br />

KVM<br />

KVM<br />

Xen<br />

Hardware<br />

Hardware<br />

Abbildung 1: OSv läuft auf verschiedenen Hypervisor-Systemen und ist ein minimalistisches<br />

OS, das einzelne Anwendungen hostet.<br />

der Linux-Welt dominierte lange der<br />

Xen-Hypervisor das Geschäft, aber<br />

er erfordete einen eigenen Kernel<br />

und fand lange keinen Einzug in den<br />

Entwicklerzweig von Linus Torvalds.<br />

Die Linux-Kernel-Entwickler schlugen<br />

derweil einen anderen Weg ein, den sie<br />

für besser erachteten: einen Hypervisor<br />

namens KVM (Kernel Virtual Machine),<br />

der selbst als Teil des Linux-Kernels<br />

lief. Es ist wohl nicht übertrieben zu behaupten,<br />

dass KVM heute der De-facto-<br />

Standard für Virtualisierung unter Linux<br />

ist. So ist es etwa die zugrunde liegende<br />

Technologie für die Virtualisierungslösung<br />

in Red Hat Enterprise Linux.<br />

Selbst einige Kernel-Entwickler aus<br />

dem Solaris-Umfeld waren offensichtlich<br />

von der Tauglichkeit oder<br />

zumindest der Popularität von KVM<br />

beeindruckt und haben die komplette<br />

Infrastruktur auf den Solaris-Kernel<br />

portiert. So kann die Firma Joyent jetzt<br />

auch virtuelle KVM-Maschinen anbieten,<br />

die auf dem hauseigenen, Solarisbasierten<br />

SmartOS laufen [3].<br />

Interessanterweise haben nun gerade<br />

die Entwickler von KVM einen neuen<br />

Weg eingeschlagen und im Oktober<br />

ein neues Betriebssystem mit dem<br />

Namen OSv vorgestellt, das sie als<br />

„Cloud OS“ vermarkten. Hinter dem<br />

Projekt stecken maßgebliche Köpfe der<br />

Linux-Welt, etwa der KVM-Erfinder Avi<br />

Kivity, der KVM-Projektmanager Dor<br />

Laor sowie die Kernel-Programmierer<br />

Glauber Costa, Nadav Har’El und Pekka<br />

Enberg. Zusammen haben sie die Firma<br />

Cloudius gegründet, die OSv als freie<br />

Software veröffentlicht hat.<br />

Minimal<br />

Dass OSv unter einer BSD-Lizenz steht<br />

und nicht, wie etwa der Linux-Kernel,<br />

unter der GPL, weist schon darauf hin,<br />

dass das neue Betriebssystem von<br />

FreeBSD abgeleitet ist. Allerdings haben<br />

die Entwickler auch große Teile des<br />

neuen Kernels selbst geschrieben. OSv<br />

ist für den Betrieb auf Hypervisor-Systemen,<br />

insbesondere KVM, optimiert<br />

und verzichtet deshalb auf viele Funktionen<br />

moderner Betriebssysteme, etwa<br />

die Aufteilung in Kernel- und Userspace<br />

oder unterschiedliche Adressräume.<br />

Der damit erzielte Wegfall von Kontextwechseln<br />

soll zu höherer Performance<br />

führen. Anwendungen wie die Java Virtual<br />

Machine werden aus dem gleichen<br />

Grund direkt in das Betriebssystem<br />

integriert. Das minimalistische OS soll<br />

jeweils nur eine Anwendung hosten,<br />

www.admin-magazin.de<br />

Admin


22<br />

Login<br />

Betriebssysteme<br />

n Info<br />

Klassisches OS<br />

Anwendung<br />

Runtime/Library<br />

Betriebssytem−Kernel<br />

Hypervisor<br />

Hardware<br />

verzichtet dazu weitgehend auf die von<br />

Unix bekannten Security-Features und<br />

überlässt sie dem Hypervisor (Abbildung<br />

1). Auch die von Linux und Unix<br />

bekannte Konfiguration des Betriebssystems<br />

fällt mit dem neuen Konzept<br />

weg.<br />

Alles schon dagewesen?<br />

Denkt man ein bisschen über die Architektur<br />

von Hypervisor und minimalistischen<br />

Gastsystemen nach, erinnert<br />

sie möglicherweise an einen alten<br />

Bekannten: den Microkernel. Auch<br />

hier beschränkt sich der eigentliche<br />

Betriebssystemkern auf sehr wenige<br />

Funktionen. Andere Teile des Betriebssystems<br />

laufen als weniger privilegierte<br />

Prozesse im Userspace und können somit<br />

bei Fehlfunktionen nicht das ganze<br />

System in den Abgrund reißen. Bekanntlich<br />

hat der Informatik-Professor<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30859<br />

Mirage<br />

Anwendung<br />

Mirage Runtime<br />

Hypervisor<br />

Hardware<br />

Uni−<br />

kernel<br />

Abbildung 2: Mirage ist ein experimentelles Cloud-OS, das anwendungsspezifische Images aus<br />

Ocaml-Runtime und Applikation auf dem Xen-Hypervisor laufen lässt.<br />

Andrew Tanenbaum Linux schon in den<br />

Anfangszeiten dafür kritisiert, nicht das<br />

Microkernel-Prinzip umzusetzen, sondern<br />

auf einen monolithischen Kernel<br />

zu setzen.<br />

Jetzt schleicht sich der Microkernel –<br />

wenn man so will – über die Virtualisierungstechnologie<br />

wieder ein.<br />

Letztlich ist es mit der zunehmenden<br />

Verbreitung von Cloud-Architekturen<br />

nur konsequent, wie bei OSv das „Cloud<br />

OS“ und die Gastsysteme jeweils auf<br />

ein Minimum zu reduzieren, statt immer<br />

wieder aufs Neue die gleichen<br />

Systemteile zu replizieren. In konventionellen<br />

Linux-Installationen wird diese<br />

Idee zum Teil durch Container-Technologien<br />

wie OpenVZ und LXC umgesetzt,<br />

doch deren Realisierung ist kompliziert.<br />

Volle Virtualisierung, aber dafür mit<br />

stark abgespeckten Systemen, scheint<br />

demgegenüber der einfachere Weg zu<br />

sein.<br />

Wunschbild<br />

Einen ähnlichen Weg wie OSv schlägt<br />

auch das Mirage OS [5] ein, das als<br />

Bare-Metal-Hypervisor Xen einsetzt,<br />

auf dem hochspezialisierte Gastsysteme<br />

laufen, die in einer Hochsprache<br />

(OCaml) statt C geschrieben sind. Auch<br />

diese sogenannten Unikernel besitzen<br />

wie eine Instanz von OSv nur einen<br />

flachen Adressraum und können auf<br />

Wunsch sogar read-only gesetzt werden.<br />

Letzteres ist nur eine von vielen<br />

Sicherheitsmaßnahmen, die bei derart<br />

verteilten Architekturen sicherlich noch<br />

wichtig werden.<br />

Eine offene Frage ist bei solchen Ansätzen<br />

noch, wie Anwendungen, die je<br />

in einem eigenen Minimal-OS laufen,<br />

miteinander kommunizieren sollen.<br />

Lösungen dafür gibt es natürlich eine<br />

Reihe, etwa aus dem Bereich verteilter<br />

Webanwendungen. Beispiele sind<br />

Messaging-Systeme wie ActiveMQ,<br />

RabbitMQ und der Java Messaging Service.<br />

Sie entsprächen dann in etwa der<br />

Infrastruktur für Interprozesskommunikation,<br />

wie die Microkernel sie bieten.<br />

Wie sich das auf die Performance eines<br />

Gesamtsystems auswirkt, wird erst die<br />

Praxis zeigen. Eine Unterstützung durch<br />

den Hypervisor wäre hierbei vermutlich<br />

hilfreich.<br />

Nimmt man all diese Dinge zusammen,<br />

entsteht am Ende eine Art Baukasten-<br />

System, bei dem der Hypervisor oder​<br />

Microkernel Steckplätze bereitstellt, in<br />

die der Infrastrukturbetreiber einzelne<br />

Bausteine steckt, die aus einem Micro-<br />

OS zusammen mit je einer Anwendung<br />

bestehen. Weitere Bauteile sind dann<br />

gewissermaßen die Leitungen, die<br />

diese Bausteine verbinden. Eine solche<br />

Architektur wird beispielsweise schon<br />

heute von den in Ubuntu implementierten<br />

Charms des Juju-Systems eingesetzt.<br />

Ausblick<br />

Es wird sicher noch einige Zeit vergehen,<br />

bis das Mirage OS reif für den<br />

Echtwelteinsatz ist. Eine günstigere<br />

Prognose ist vermutlich dem OSv beschieden,<br />

das sich weniger weit weg<br />

vom Mainstream bewegt, aber trotzdem<br />

einen neuartigen Ansatz verfolgt,<br />

der interessant erscheint. Mindestens<br />

diese beiden Beispiele zeigen aber,<br />

dass durch die immer weitere Verbreitung<br />

von Virtualisierungstechnologie<br />

auch Türen aufgestoßen werden, die<br />

neue Perspektiven im Bereich der Systemprogrammierung<br />

eröffnen. n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


24<br />

Netzwerk<br />

PowerDNS<br />

Nameserver mit PowerDNS<br />

Geballte Power<br />

Joe Belanger, 123RF<br />

Der BIND-Server ist die Standardsoftware für den Betrieb eines Nameservers. Der PowerDNS-Server ist<br />

eine Alternative, die einen Kompatibilitätsmodus zu BIND besitzt, aber auch mit zahlreichen Datenbank-<br />

Backends eigene Wege geht. Joseph Guarino<br />

Glücklicherweise leben wir nicht mehr<br />

in den Zeiten des Arpanets, als Administratoren<br />

große Host-Dateien von<br />

n Tabelle 1: PowerDNS-Features<br />

Autoritativer DNS-Server<br />

Caching DNS-Server<br />

API zum Anlegen und Ändern von Zonen und Records<br />

Webbasiertes Admin-Frontend<br />

BIND-kompatible Datenspeicherung in Files (optional)<br />

Datenbank-Backends: DB2, Firebird, Interbase, LDAP,<br />

MySQL, Microsoft SQL Server, Oracle, PostgreSQL,<br />

SQLite, Sybase (optional)<br />

IPv4, IPv6, UDP/​TCP, DNSSEC, DNS64<br />

Loadbalancing / Failover<br />

SNMP<br />

Remote abfragbare Statistiken<br />

Eingebauter Webserver (optional)<br />

Debugging-Tools<br />

Lua-Skripting<br />

Plattformen: Linux, BSD, Unix<br />

Rechner zu Rechner kopieren mussten,<br />

um andere Knoten im Netz zu erreichen.<br />

Heute haben wir das Domain<br />

Name System (DNS), das einen hierarchischen<br />

Namensraum implementiert,<br />

der Host- und Domainnamen auf IP-Adressen<br />

abbildet. Der De-facto-Standard<br />

für die entsprechende Nameserver-<br />

Software ist BIND (Berkeley Internet<br />

Name Domain), der schon seit den<br />

achtziger Jahren existiert und durch<br />

seine zahlreichen Sicherheitslücken bekannt<br />

wurde. Mit Version 9 wurde BIND<br />

von Grund auf neu geschrieben, um ein<br />

sicheres Fundament für den Domain<br />

Name Service zu schaffen.<br />

Eine Alternative zu BIND ist PowerDNS<br />

[1], das zuerst als kommerzielles Produkt<br />

existierte, bevor die gleichnamige<br />

Firma die Software unter der GPL-Lizenz<br />

freigab. Sein überschaubarer Code<br />

und der Fokus auf Sicherheit, Skalierbarkeit<br />

und Zuverlässigkeit machen<br />

PowerDNS zu einem guten Kandidaten<br />

bei der Auswahl eines Nameservers.<br />

Komponenten<br />

PowerDNS besteht grundsätzlich aus<br />

zwei Komponenten: dem autoritativen<br />

Nameserver und dem Recursor. Andere<br />

Nameserver vereinen die beiden<br />

Funktionen, aber bei PowerDNS lassen<br />

sich beide auch getrennt voneinander<br />

betreiben. Ein autoritativer Nameserver<br />

ist in etwa das, wonach es klingt:<br />

ein Nameserver, der für eine bestimmte<br />

Domain die wichtigen Informationen in<br />

einer sogenannten Zone führt, einer Art<br />

administrativer Einheit im DNS-System<br />

(nicht unbedingt identisch mit einer<br />

Domain). Autoritative Domainserver<br />

gibt es in zwei Ausführungen:<br />

n Der »Primary Name Server«, der oft<br />

auch Master genannt wird, ist die<br />

ursprüngliche und definitive Quelle<br />

für die alle Zonen-Einträge einer<br />

Domain.<br />

n Der »Secondary Name Server«, auch<br />

Slave genannt, führt die gleichen<br />

Informationen, bezieht sie aber vom<br />

Master-Server.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Netzwerk<br />

PowerDNS<br />

25<br />

Der Recursor von PowerDNS dient im<br />

Gegensatz dazu nur als Cache für die<br />

rekursiven Anfragen von Clients an<br />

DNS-Server im Internet. Der eigene PowerDNS-Server<br />

ist also nicht autoritativ<br />

für die angefragten DNS-Informationen,<br />

sondern nur die erste Anlaufstelle, die<br />

gegebenenfalls die Informationen aus<br />

dem eigenen Cache holt.<br />

Der Recursor bietet eine ganze Reihe<br />

von Features, so implementiert er<br />

selbstverständlich alle relevanten<br />

Standards, zum Beispiel auch DNS64<br />

[2]. Darüber hinaus implementiert er<br />

besondere Maßnahmen, um etwa DNS-<br />

Spoofing zu verhindern: Das Fälschen<br />

von DNS-Informationen, das Angreifer<br />

für Man-in-the-Middle-Angriffe verwenden.<br />

Er kann DNS-Abfragen abfangen,<br />

umleiten und NXDOMAIN-Antworten<br />

verschicken, wenn eine Domain nicht<br />

existiert. Zur Steuerung gibt es das Tool<br />

»rec_control«, das auch Statistiken für<br />

MRTG und RRD ausgeben kann. Seit<br />

Version 3.1.7 können Anwender sogar<br />

eigene Lua-Skripts schreiben, die Anfragen<br />

verarbeiten. Zugriff bietet der<br />

Recursor sowohl lokal als auch remote.<br />

Neu konfigurieren lässt sich der Recursor<br />

auch ohne Neustart. Tabelle 1 fasst<br />

noch einmal die wesentlichen Features<br />

von PowerDNS zusammen.<br />

zustellen, ist keine gute Idee. Installiert<br />

ist der PowerDNS-Recursor auf Ubuntu<br />

schnell:<br />

sudo apt‐get install pdns‐recursor<br />

Nun müssen Sie die mitgelieferte Konfiguration<br />

in »/etc/powerdns/recursor.<br />

conf« anpassen. Um der Kürze willen<br />

sind in Listing 1 nur die geänderten Variablen<br />

abgedruckt. Nach einem Neustart<br />

per »sudo service pdns‐recursor<br />

restart« ist der Recursor einsatzbereit.<br />

Steuern lässt sich der Recursor mit<br />

dem kleinen Tool »rec_control«. So<br />

testet der Befehl »rec_control ping«,<br />

ob der Server läuft. Alle Variablen fragt<br />

der Aufruf von »rec_control get‐all« ab,<br />

während »rec_control get Variable«<br />

einen bestimmten Wert ermittelt. Diese<br />

Werte können Sie beispielsweise in ein<br />

Programm wie RRDTool einspeisen, um<br />

Statistiken und Diagramme zu erstellen.<br />

Beenden lässt sich der Server mit<br />

»rec_control quit«.<br />

Master<br />

Wie schon erwähnt kann PowerDNS<br />

diverse Datenbanken als Backend nutzen.<br />

Zunächst soll es aber erst einmal<br />

darum gehen, einen Nameserver in<br />

BIND-kompatibler Konfiguration zu<br />

betreiben. Das bietet sich zum Beispiel<br />

an, wenn man von einer existierenden<br />

BIND-Installation auf PowerDNS migrieren<br />

möchte. Die beiden Server, der<br />

Master und der Slave, sollen öffentlich<br />

zugänglich sein und müssen deshalb<br />

auf Rechnern – oder auch virtuellen<br />

Maschinen – außerhalb der firmeneigenen<br />

Firewall betrieben werden. Der<br />

folgende Befehl installiert die nötige<br />

Software auf einer Ubuntu-Maschine:<br />

sudo apt‐get install pdns‐server<br />

Die Konfiguration für den Primary-DNS<br />

von »example.com«, die in »/etc/powerdns«<br />

gespeichert wird, ist in Listing 2<br />

zu sehen. Außer der Vorwärtsauflösung<br />

von Namen zu IP-Adressen sollte man<br />

sich auch um den umgekehrten Weg,<br />

also die Zuordnung von IP-Adressen<br />

zu Namen, den sogenannten Reverse<br />

Lookup kümmern. Das geht aber nur,<br />

wenn man überhaupt die DNS-Autori-<br />

Backends<br />

PowerDNS bietet eine ganze Reihe<br />

von Möglichkeiten, um die Zonendaten<br />

zu speichern. Das können wie bei<br />

BIND einfache Dateien sein, die dank<br />

eines Kompatibilitätsmodus sogar im<br />

BIND-Format abgefasst sein dürfen. Alternativ<br />

gibt es eine Vielzahl von Datenbank-Backends,<br />

etwa für MySQL und<br />

PostgreSQL. Dieser Artikel beschränkt<br />

sich darauf, die Konfiguration im BIND-<br />

Modus sowie die Administration mit<br />

dem Poweradmin-Web-Frontend und<br />

MySQL vorzuführen. Als Beispielplattform<br />

dient im weiteren Verlauf Ubuntu<br />

12.04, das Sie erst einmal mit dem<br />

Paketmanager aktualisieren sollten,<br />

wenn Sie die Beispiele nachvollziehen<br />

wollen.<br />

Einen Recursor, wie er im Folgenden<br />

entsteht, sollte man im lokalen Netz<br />

hinter einer Firewall platzieren. Ihn<br />

öffentlich zugänglich im Internet auftät<br />

für den eigenen IP-Adressen-Block<br />

hat. Sonst muss man sich an seinen<br />

Provider wenden. Prinzipiell funktionieren<br />

die meisten Dienste auch ohne<br />

das umgekehrte Mapping, allerdings<br />

dauert dann beispielsweise das Login<br />

auf einem Rechner länger, wenn der<br />

entsprechende Dienst einen Reverse<br />

Lookup versucht und dann bis zum Timeout<br />

wartet.<br />

n Listing 1: »recursor.conf«<br />

01 allow‐from=192.168.1.0/24<br />

02 # The 'allow‐from' address specifies the network<br />

address space you want to service queries to<br />

with your PowerDNS recursor. Note you can use<br />

comma‐separated individual IPs or networks in<br />

CIDR notation.<br />

03 #<br />

04 local‐address=192.168.1.10<br />

05 # 'local‐address' specifies the address or<br />

addresses on which the recursor is to listen for<br />

queries.<br />

06 #<br />

07 version‐string=Wait, this ain't no host file<br />

08 # Give out bogus version information when<br />

queried with 'dig @ns1.example.com ‐c<br />

09 CH ‐t txt version.bind'. I'd rather add some<br />

mystery. =)<br />

n Listing 2: »example.com.zone«<br />

01 example.com. 84600 IN SOA ns1.example.<br />

com. hostmaster.example.com. (<br />

02 2013062901 ; serial<br />

03 21600 ; refresh (6 hours)<br />

04 900 ; retry (15 minutes)<br />

05 604800 ; expire (1 week)<br />

06 3600 ; minimum (1 hour)<br />

07 )<br />

08 NS ns1.example.com<br />

09 NS ns2.example.com<br />

10 MX 10 mail.example.com<br />

11 ns1 A 192.168.1.10<br />

12 ns2 A 192.168.1.11<br />

13 mail A 192.168.1.13<br />

14 www A 192.168.1.14<br />

n Listing 3: »bindbackend.conf«<br />

01 options {<br />

02 directory "/etc/powerdns";<br />

03 };<br />

04 zone "example.com" {<br />

05 type master;<br />

06 file "example.com.zone";<br />

07 };<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


26<br />

Netzwerk<br />

PowerDNS<br />

Die Konfigurationsdatei »/etc/powerdns/bindbackend.conf«<br />

bestimmt,<br />

welche Zonen der PowerDNS-Server<br />

lädt. Sie ist in Listing 3 zu sehen. In<br />

der Hauptkonfigurationsdatei »/etc/<br />

powerdns/pdns.conf« stehen ein<br />

paar grundlegende Variablen, die die<br />

Funktion des Nameservers bestimmen<br />

(»launch=bind«), und die Verweise auf<br />

weitere Konfigurationsdateien, etwa<br />

die eben entstandene BIND-Konfiguration.<br />

Die relevanten Zeilen sind in<br />

Listing 4 wiedergegeben. Ein Neustart<br />

per »sudo service pdns restart« lässt<br />

den Server die Konfiguration neu einlesen.<br />

Zum gleichen Ziel führt es, dem<br />

Server mit dem Kill-Befehl ein HUP-<br />

Signal zu schicken.<br />

Secondary<br />

Für den Anfang sind die Arbeitsschritte<br />

auf dem »Secondary Name Server«<br />

die gleichen wie auf dem Master:<br />

»pdns‐server« installieren und die<br />

Konfigurationsdatei »/etc/powerdns/<br />

bindbackend.conf« anlegen. Letztere<br />

unterscheidet sich nur in einem<br />

Punkt von der Master-Konfiguration<br />

in Listing 3: Beim Slave steht in Zeile 5<br />

statt »master« eben »slave«. Der Slave-<br />

Server soll außerdem mit eigenen Userund<br />

Group-IDs laufen, weshalb Sie die<br />

Besitzrechte der Konfigurationsdateien<br />

anpassen müssen:<br />

sudo chown ‐R pdns:pdns /etc/powerdns<br />

Dementsprechend finden sich Userund<br />

Group-ID auch in der Konfigurationsdatei<br />

»/etc/powerdns/pdns.conf«,<br />

die in Listing 5 zu sehen ist. Ein weiterer<br />

Unterschied zur Master-Konfiguration<br />

ist hier die Anweisung »slave=yes«.<br />

Haben Sie auch die Secondary-Konfiguration<br />

per Neustart des Service oder<br />

HUP-Signal neu eingelesen, können<br />

Sie den Dienst testen, zum Beispiel<br />

mit dem Dig-Befehl. Wie das aussehen<br />

könnte, zeigt der Kasten »DNS testen«.<br />

Analog zum Recursor steuern Sie Master-<br />

und Slave-Server mit einem Utility<br />

namens »pdns_control«.<br />

Mit MySQL<br />

Wie erwähnt kann PowerDNS auch verschiedene<br />

Datenbanken als Backend<br />

verwenden. Im Rest des Artikels geht<br />

es deshalb um die Konfiguration mit<br />

MySQL, die auch die Verwaltung von<br />

PowerDNS mit der Web-GUI »Poweradmin«<br />

erlaubt. Die Installation des<br />

Servers läuft wie oben beschrieben,<br />

allerdings lautet der Launch-Modus<br />

dieses Mal »gmysql«. Er verlangt nach<br />

weiteren Variablen wie dem Datenbanknamen,<br />

dem Benutzernamen für<br />

die Datenbank und dem Passwort. Die<br />

relevanten Zeilen sind in Listing 6 wiedergegeben.<br />

n Listing 4: »pdns.conf« (Ausschnitt)<br />

01 allow‐axfr‐ips=192.168.1.11<br />

02 # IP Address allowed to perform AXFR.<br />

03 #<br />

04 bind‐check‐interval=300<br />

05 # Tell server how often to check for zone changes.<br />

06 #<br />

07 launch=bind<br />

08 bind‐config=/etc/powerdns/bindbackend.conf<br />

09 # Tell PowerDNS to launch with BIND back end using the specified<br />

configuration f<br />

10 ile.<br />

11 #<br />

12 local‐address=192.168.1.10<br />

13 # Specifies the local IP on which PowerDNS listens.<br />

14 #<br />

15 master=yes<br />

16 # Tells PowerDNS to run this as the primary server. This primary<br />

server will sen<br />

17 d out a special notify packet to notify the secondary or slave of<br />

updates.<br />

18 #<br />

19 setgid=pdns<br />

20 # Sets Group ID to pdns for improved security<br />

21 #<br />

22 setuid=pdns<br />

23 # Sets user id to pdns for improved security<br />

24 #<br />

25 version‐string=anonymous<br />

26 # No server version is divulged via dig query (e.g., dig @ns1.<br />

example.com ‐c CH ‐<br />

27 t txt version.bind). I'd rather make script kiddies work harder.<br />

=)<br />

n Listing 5: Secondary-Konfiguration<br />

01 launch=bind<br />

02 bind‐config=/etc/powerdns/bindbackend.conf<br />

03 # Tell PowerDNS to launch with BIND back end using the specified<br />

configuration<br />

04 file<br />

05 #<br />

06 bind‐check‐interval=300<br />

07 # Tell server how often to check for zone changes<br />

08 #<br />

09 local‐address=192.168.1.11<br />

10 # Specifies the local IP on which PowerDNS listens<br />

11 #<br />

12 setgid=pdns<br />

13 # Sets Group ID to pdns for improved security<br />

14 #<br />

15 setuid=pdns<br />

16 # Sets user id to pdns for improved security<br />

17 #<br />

18 slave=yes<br />

19 # Variable identifies this server as a secondary or slave server<br />

20 #<br />

21 version‐string=anonymous<br />

22 # No server version is divulged via a dig inquiry (e.g., dig @<br />

ns1.example.com ‐<br />

23 c CH ‐t txt version.bind). Oh, the mystery!<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Netzwerk<br />

PowerDNS<br />

27<br />

Die im Beispiel konfigurierte Datenbank<br />

»pdns« müssen Sie in MySQL selbst anlegen,<br />

zum Beispiel im MySQL-Monitor<br />

»mysql« oder in einem Web-Frontend<br />

wie PHP-MyAdmin oder Chive [3].<br />

Dort vergeben Sie auch die Lese- und<br />

Schreibrechte für den MySQL-Benutzer<br />

»puser« beziehungsweise »puser@localhost«,<br />

wie MySQL ihn meistens verlangt.<br />

Das passende SQL-Schema für<br />

die Datenbank ist in Listing 7 zu sehen.<br />

Login<br />

Zwar könnten Sie nun PowerDNS direkt<br />

über die Datenbank verwalten,<br />

allerdings nur mit eigenen Skripts oder<br />

etwa einem SQL-Frontend wie PHP-<br />

MyAdmin. Weil das ziemlich mühsam<br />

ist, ist es gut, dass es mit Poweradmin<br />

[4] ein fertiges Web-Frontend gibt, das<br />

die Angelegenheit vereinfacht. Neben<br />

MySQL und Apache setzt es außerdem<br />

PHP sowie die PHP-Pakete »session«,<br />

»gettext«, »mcrypt«, »PEAR« und<br />

»PEAR::MDB2« voraus. Haben Sie das<br />

Poweradmin-Paket heruntergeladen,<br />

entpacken Sie es im Document Root<br />

des Webservers. Für die Benutzer-ID,<br />

unter der der Webserver läuft, muss<br />

die Konfiguration von Poweradmin<br />

schreibbar sein.<br />

Unter der Adresse »http://primary/<br />

Poweradmin/install/index.php« ist<br />

im Browser die Installationroutine zu<br />

n DNS testen<br />

finden. Zuerst wählen Sie die Sprache,<br />

bevor sie die Zugangsdaten zur PowerDNS-Datenbank<br />

eingeben müssen<br />

(Abbildung 1). Poweradmin verwendet<br />

einen zweiten MySQL-Account, den<br />

Sie im nächsten Schritt konfigurieren.<br />

Anschließend gibt das Installationspro-<br />

Wenn der PowerDNS-Dienst läuft, können Sie ihn auf der Kommandozeile desselben Rechners testen:<br />

primary:~$dig +norecurs @127.0.0.1 ns1.example.com A<br />

dig +norecurs @127.0.0.1 ns1.example.com A<br />

; DiG 9.9.2‐P1 +norecurs @127.0.0.1 ns1.example.com A<br />

; (1 server found)<br />

;; global options: +cmd<br />

;; Got answer:<br />

;; ‐>>HEADER


28<br />

Netzwerk<br />

PowerDNS<br />

Abbildung 1: Eingabe der MySQL-Konfigurationsdaten.<br />

Abbildung 2: Editieren einer Zone.<br />

n Info<br />

gramm einen SQL-Befehl aus, mit dem<br />

Sie den Account auf der Kommandozeile<br />

im MySQL-Monitor anlegen. Das<br />

Verzeichnis »install« können Sie nach<br />

erfolgreicher Installation löschen.<br />

Das Poweradmin-Interface erreichen<br />

Sie nun unter »http://primary/Poweradmin/index.php«.<br />

Dort legen Sie<br />

zunächst eine neue Master-Zone an, für<br />

die Sie die nötigen Basisinformationen<br />

eingeben. Anschließend zeigen Sie<br />

sich mit »List zones« die Zonen an und<br />

wählen mit »Edit« die neue Zone zum<br />

Editieren aus (Abbildung 2).<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30863<br />

Die GUI ist recht einfach gestrickt und<br />

füllt für die nötigen Konfigurationswerte<br />

schon Defaults ein. Sich ein bisschen<br />

mit den Grundlagen von DNS zu<br />

beschäftigen, etwa den Record-Typen<br />

A (AAAA), CNAME und so weiter, sowie<br />

Werten wie der Time-to-live (TTL), kann<br />

auf jeden Fall nicht schaden.<br />

Zuverlässigkeit und<br />

Sicherheit<br />

Für einen zuverlässigen Dienst ist Redundanz<br />

ein Muss. Ein derart wichtiger<br />

Service wie DNS sollte mindestens<br />

zweifach vorhanden sein – sonst brauchen<br />

Sie vermutlich mehr als zwei<br />

Aspirin, um mit den Kopfschmerzen<br />

fertig zu werden, die ihnen ein unzuverlässiger<br />

DNS-Service bereitet. Wer eine<br />

Datenbank als Backend verwendet,<br />

sollte selbstverständlich auch sie hochverfügbar<br />

auslegen.<br />

Wie es im Zusammenhang mit BIND<br />

schon anklang, ist DNS ein häufiges<br />

Opfer von Angriffen. Weil Zugangsbeschränkungen<br />

oft auf Hostnamen<br />

basieren, lohnt es sich für Angreifer,<br />

DNS-Informationen zu manipulieren.<br />

Auch laufen DNS-Server immer mit<br />

Superuser-Rechten, weil sie Zugang zu<br />

privilegierten Ports haben, die unter<br />

Unix Root-Rechte erfordern. Das macht<br />

Exploits interessant, die sich über Buffer<br />

Overflows durch manipulierte DNS-<br />

Anfragen ausnutzen lassen.<br />

Das beste Mittel dagegen ist, seine<br />

Software immer auf dem Laufenden zu<br />

halten. Auch eine vernünftige Firewall-<br />

Konfiguration für den DNS-Server ist<br />

kein Fehler, um andere Angriffspunkte<br />

zu minimieren. Schließen Sie alle<br />

Ports außer den Ports 22 (für das SSH-<br />

Login), 53/​TCP und 53/​UDP. Wollen<br />

Sie das Web-Frontend verwenden,<br />

öffnen Sie noch den Port 80. Besser ist<br />

es allerdings, stattdessen gleich den<br />

Webserver mit HTTPS zu konfigurieren<br />

und Port 443 zu verwenden. DNSspezifische<br />

Maßnahmen für höhere<br />

Sicherheit sind, TSIG/​TKEY und DNSSEC<br />

zu verwenden. Mit TSIG/​TKEY sichern<br />

Sie Zone-Transfers ab, mit DNSSEC<br />

erschweren Sie das sogenannte Cache<br />

Poisoning.<br />

Community<br />

Wie bei anderen Open-Source-Projekten<br />

gibt es auch für PowerDNS eine<br />

Reihe von Möglichkeiten, Hilfe zu erhalten<br />

wie beispielsweise Mailinglisten,<br />

Foren und IRC. Auch kommerziellen<br />

Support bietet die hinter PowerDNS<br />

stehende Firma an, die auch die<br />

Community rund um PowerDNS am<br />

Laufen hält. Wer sich selbst einbringen<br />

möchte, hat dafür reichlich Gelegenheit.<br />

Offene Punkte sind derzeit etwa:<br />

Support für OS X, Solaris-Pakete, Backends<br />

testen, Regression-Tests schreiben<br />

und Bug-Tickets verwalten. Alleine<br />

die zahlreichen Web-Frontends zu katalogisieren,<br />

wäre schon ein nützlicher<br />

Dienst an der Power DNS-Gemeinschaft.<br />

All diese Aufgaben bieten einen guten<br />

Einstieg in ein aktives und attraktives<br />

Open-Source-Projekt, das hilft, einen<br />

unverzichtbaren Dienst des Internets zu<br />

betreiben. (ofr) n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


30<br />

Netzwerk<br />

Apache 2.4.6<br />

Neuheiten in Apache 2.4.6<br />

Comeback<br />

Der Apache-Webserver ist nicht tot, nur etwas eingerostet.<br />

Damit das nicht so bleibt, haben die Entwickler<br />

ihn in Version 2.4 gründlich überholt. Oliver Frommel<br />

Wenn man den monatlich erscheinenden<br />

Statistiken von Netcraft glauben<br />

darf, ist Apache immer noch der am<br />

weitesten verbreitete Webserver im<br />

ganzen World Wide Web (Abbildung 1).<br />

Schon länger legt die Konkurrenz in<br />

Form von Nginx zwar stetig zu, ist aber<br />

doch noch meilenweit von den beinahe<br />

knapp 47 Prozent entfernt, mit denen<br />

Apache weiterhin das Feld dominiert.<br />

Dennoch haben auch die Apache-<br />

Entwickler die Kritik an ihrer Software<br />

vernommen, sie sei veraltet und zu<br />

schwerfällig, und den Webserver in der<br />

Version 2.4 gründlich überarbeitet [1].<br />

n Listing 1: Makro<br />

01 <br />

02 <br />

03 ServerName www.$domain<br />

04 <br />

05 DocumentRoot /var/www/vhosts/$name<br />

06 ErrorLog /var/log/httpd/$name.error_log<br />

07 CustomLog /var/log/httpd/$name.access_<br />

log combined<br />

08 <br />

09 <br />

10 <br />

11 Use VHost admin admin‐magazin.de<br />

12 Use VHost linuxmagazin linux‐magazin.de<br />

Da sind zunächst einmal viele Kleinigkeiten,<br />

die das Leben eines Apache-<br />

Adminstators erleichtern können. Das<br />

beginnt bei der Möglichkeit, in der<br />

Server-Konfiguration Variablen zu definieren,<br />

die sich später an anderer Stelle<br />

wiederverwenden lassen. So legt im<br />

folgenden Beispiel die erste Zeile eine<br />

Variable »$host« fest, die anschließend<br />

verwendet wird:<br />

Define $host www.google.com<br />

<br />

ErrorLog /var/log/httpd/${host}.log<br />

Ähnlich funktioniert Mod-Macro, das<br />

es bereits vorher als externes Modul<br />

gab, das aber seit der eben erschienenen<br />

Version 2.4.6 fester Bestandteil<br />

des Apache-Pakets ist [2]. Ein Makro<br />

funktioniert ähnlich wie eine Funktion<br />

in einer Programmiersprache: Man definiert<br />

es zusammen mit Variablen, die<br />

im Rumpf des Makros vorkommen. Will<br />

man das Makro verwenden, ruft man<br />

es mit den konkreten Werten auf, die<br />

ins Makro eingesetzt werden. Listing 1<br />

illustriert die Anwendung.<br />

Geändert hat sich auch die Syntax für<br />

die Definition namensbasierter virtueller<br />

Hosts. Die bisher dafür verwendete<br />

Anweisung »NameVirtualHost« gibt<br />

es nämlich nicht mehr. Stattdessen<br />

können Administratoren sich nun auf<br />

die Definition der virtuellen Hosts<br />

beschränken. Listing 2 und Listing 3 zeigen<br />

den Unterschied. Diese scheinbar<br />

kleine Änderung ist laut der Apache-<br />

Entwickler eine große Sache, denn der<br />

alte Weg der Konfiguration führte zu<br />

einer Vielzahl von Problemen, wenn der<br />

»NameVirtualHost« nicht zu einem »VirtualHost«<br />

passte.<br />

Noch mehr Komfort bei der Konfiguration<br />

entsteht durch die Möglichkeit,<br />

mit logischen Bedingungen wie »If«,<br />

»ElseIf« und »Else« einzelne Abschnitte<br />

ein- und auszuschalten. Hierbei können<br />

sowohl selbstdefinierte Variablen wie<br />

auch die vorbelegten Servervariablen<br />

zum Einsatz kommen. Ein Beispiel dafür<br />

ist in Listing 4 zu sehen. Die gleiche<br />

Funktion, nämlich die Umleitung auf<br />

den WWW-Host, wurde bisher meistens<br />

mit Rewrite-Regeln umgesetzt, erforderte<br />

aber dafür kompliziertere Konstruktionen.<br />

Lediglich mit den Anführungszeichen<br />

muss man beim neuen<br />

Weg etwas aufpassen.<br />

Weitere Änderungen der Syntax gibt es<br />

etwa bei der Override-Konfiguration,<br />

die nun eine feiner abgestufte Kontrolle<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Netzwerk<br />

Apache 2.4.6<br />

31<br />

Oleksandr But, 123RF<br />

dessen erlaubt, was an Zugriffen auf<br />

ein bestimmtes Webverzeichnis erlaubt<br />

ist. Genauso wurde der Zugriffsschutz<br />

per Require von Grund auf überarbeitet.<br />

Statt der simplen, alten Anweisungen<br />

»allow« und »deny« gibt es nun<br />

die Option, logische Bedingungen zu<br />

verschachteln und damit den Zugriff<br />

im Einzelnen zu kontrollieren. Dabei<br />

berücksichtigt der Apache-Server auf<br />

Wunsch die Zugriffsmethode (GET/​PUT<br />

und so weiter), Umgebungsvariablen,<br />

IP-Adresse/​Hostname und auch selbst<br />

gesetzte Variablen, die der Administrator<br />

sogar in eigenen Expressions<br />

auswerten kann. Die beiden neuen<br />

Direktiven »RequireAll« und »RequireAny«<br />

gruppieren die Bedingungen<br />

als logische Und- respektive Oder-<br />

Verknüpfung. Ermöglicht wird all dies<br />

durch das Modul »mod_authz_core«.<br />

Ein umfangreiches Beispiel aus der<br />

Apache-Dokumentation ist in Listing 5<br />

zu sehen.<br />

Neue Module<br />

Eine ganze Reihe weiterer neuer Module<br />

erweitert den Funktionsumfang<br />

von Apache beträchtlich. Zum Teil gab<br />

es sie – wie im Fall von »mod_proxy_<br />

html« – schon vorher, sie wurden nun<br />

aber in die Apache-Core-Distribution<br />

eingegliedert. Experimentell ist derzeit<br />

noch der Support für die Skriptsprache<br />

Lua, mit der sich nun eigene Apache-<br />

Webanwendungen schreiben lassen.<br />

Ein <strong>ADMIN</strong>-Artikel hat über das Modul<br />

n Listing 2: Virtual Host (alt)<br />

01 NameVirtualHost *:80<br />

02 <br />

03 <br />

04 ServerName www.admin‐magazin.de<br />

05 ...<br />

06 <br />

07 <br />

08 <br />

09 ServerName www.linux‐magazin.de<br />

10 ...<br />

11 <br />

n Listing 3: Virtual Host (neu)<br />

01 <br />

02 ServerName www.admin‐magazin.de<br />

03 ...<br />

04 <br />

05 <br />

06 <br />

07 ServerName www.linux‐magazin.de<br />

08 ...<br />

09 <br />

bereits einmal ausführlich berichtet [3].<br />

Die beiden Module »mod_fcgi« und<br />

»mod_scgi« ermöglichen es, Anwendungen<br />

einzubinden, die das Fast-CGIbeziehungsweise<br />

das SCGI-Protokoll<br />

implementieren. Dies geschieht über<br />

Mod-Proxy, während sich mit dem<br />

Mod-Proxy-Balancer gleich auch noch<br />

Anzeige<br />

Abbildung 1: Obwohl Nginx ständig neue Anwender für sich gewinnt, ist Apache weiterhin<br />

der dominierende Webserver.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


32<br />

Netzwerk<br />

Apache 2.4.6<br />

n Listing 4: Konditional<br />

01 <br />

02 Redirect permanent / http://www.<br />

admin‐magazin.de<br />

03 <br />

n Listing 5: Zugriffsschutz<br />

01 <br />

02 <br />

03 <br />

04 Require user superadmin<br />

05 <br />

06 Require group admins<br />

07 Require ldap‐group<br />

cn=Administrators,o=Airius<br />

08 <br />

09 Require group sales<br />

10 Require ldap‐attribute<br />

dept="sales"<br />

11 <br />

12 <br />

13 <br />

14 <br />

15 Require group temps<br />

16 Require ldap‐group cn=Temporary<br />

Employees,o=Airius<br />

17 <br />

18 <br />

19 <br />

n Listing 6: Logging per Directory<br />

01 LogLevel info<br />

02 <br />

03 LogLevel debug<br />

04 <br />

n Info<br />

Loadbalancing realisieren lässt. Eine<br />

Liste der wichtigsten neuen Module in<br />

Apache 2.4 ist in Tabelle 1 zu sehen.<br />

Fehler in der Konfiguration sind nun<br />

generell leichter aufzuspüren, weil<br />

sich das Loglevel per Modul und per<br />

Verzeichnis einstellen lässt (Listing 6).<br />

Darüber hinaus gibt es jenseits des<br />

alten Debug-Loglevels noch die neuen<br />

Loglevel »trace1« bis »trace8«. Um für<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30856<br />

ein spezifisches Modul das Logging zu<br />

kontrollieren, stellt man es dem Loglevel<br />

voran: »LogLevel info ssl:warn«.<br />

n Tabelle 1: Neue Module<br />

Modul<br />

mod_auth_form<br />

mod_log_debug<br />

mod_lua<br />

mod_proxy_express<br />

mod_proxy_fcgi<br />

mod_proxy_html<br />

mod_proxy_scgi<br />

mod_ratelimit<br />

mod_remoteip<br />

mod_sed<br />

mod_session<br />

Performance<br />

Der neue Apache-Server ist von Grund<br />

auf stärker modularisiert als seine<br />

Vorgänger. So sind nun erstmals die sogenannten<br />

Multiprocessing-Module, die<br />

das Verhalten bei der Verarbeitung von<br />

HTTP-Requests bestimmen, dynamisch<br />

ladbar. Früher gab es nur das Prefork-<br />

Modul, das beim Start des Webservers<br />

eine gewisse Anzahl von Prozessen<br />

startete und für neue Verbindungen<br />

neue Kindprozesse startete. Dann<br />

kam das Threading-Modul hinzu, das<br />

die Thread-basierte Verarbeitung von<br />

Anfragen ermöglichte. Bisher mussten<br />

diese beiden Module aber immer fest<br />

einkompiliert werden, was dazu führte,<br />

dass es in Linux-Distributionen zwei<br />

verschiedene Pakete dafür gibt, etwa<br />

»apache‐mpm‐prefork« und »apache‐mpm‐worker«.<br />

Jetzt kann der Administrator per Konfigurationsdatei<br />

bestimmen, welches<br />

MPM-Modul verwendet wird. Darüber<br />

hinaus gibt es noch ein neues Threadbasiertes<br />

Modul namens »event«,<br />

das Event-basierte Verarbeitung von<br />

Requests implementiert. Es existiert<br />

schon eine Zeit lang und hat sich dabei<br />

bewährt, sodass es nun sogar die bisherige<br />

Default-Konfiguration »prefork«<br />

abgelöst hat. Unter Linux verwendet<br />

es den Systemcall »epoll«, unter BSD-<br />

Systemen die KQueue-Infrastruktur.<br />

Verbessern soll das neue Event-Modul<br />

die Performance vor allem bei vielen<br />

HTTP-Keepalive-Verbindungen. Dabei<br />

halten Server und Webbrowser die<br />

einmal aufgebaute TCP-Verbindung<br />

aufrecht und schicken darüber mehrere<br />

HTTP-Requests. Das verringert den<br />

Overhead von immer neuen Verbindungseröffnungen,<br />

bindet aber auf<br />

dem Server dauerhaft Ressourcen, gerade<br />

wenn im Fall des Prefork-Moduls<br />

ein kompletter Kindprozess durch die<br />

Verbindung blockiert ist.<br />

Aufgeholt<br />

Das Rennen der Webserver geht weiter.<br />

Apache 2.4 bringt eine Vielzahl neuer<br />

praktischer Module mit und vereinfacht<br />

die Konfiguration, die gleichzeitig aber<br />

auch neue Optionen bietet. Durch die<br />

Änderung der Architektur können Administratoren<br />

nun das Prozessmodul<br />

per Konfiguration bestimmten und<br />

müssen nicht länger bei der Installation<br />

zwischen Prefork- und Worker-Modul<br />

wählen. Als Alternative zu den beiden<br />

gibt es nun als neuen Default-Modus<br />

das Event-Modul, das bei den heute<br />

üblichen Keepalive-Verbindungen den<br />

Webserver weniger belastet. n<br />

Funktion<br />

Authentifizierung über HTML-Forms<br />

Frei konfigurierbares Logging zu Debugging-Zwecken<br />

Integriert den Interpreter der Lua-Skriptsprache in den Webserver<br />

(experimenteller Support)<br />

Vereinfachte Konfiguration für Reverse Proxies.<br />

Backend für die Anbindung von Webanwendungen über FastCGI-<br />

Protokoll<br />

Ändert bei Proxy-Konfiguration den HTML-Quelltext, zum Beispiel<br />

URLs<br />

Backend für die Anbindung von Webanwendungen über das SCGI-<br />

Protokoll<br />

Bandbreitenlimitierung für Clients<br />

Unterstützung für die Remote-IP-Variable beim Einsatz von Proxy<br />

und Loadbalancer<br />

On-the-Fly-Änderungen des HTTP-Response-Body nach Art des<br />

Unix-Tools »sed«<br />

Speichert Client-Sessions, etwa über Cookies oder Datenbank<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


alphaspirit, 123RF<br />

Sind soziale Netzwerke eine <strong>Groupware</strong>-Alternative?<br />

Soziale Unternehmen<br />

Atos verbannt die interne E-Mail zugunsten sozialer Netzwerke. Facebook und Twitter haben das Internet- und<br />

Kommunikationsverhalten einer ganzen Generation verändert. Können die Business-orientierten Konkurrenten<br />

und Nachahmer Ähnliches im Unternehmen erreichen? Carsten Schnober<br />

Social Enterprise statt <strong>Groupware</strong>?<br />

Enterprise 2.0? Wer mit Facebook und<br />

Twitter vor allem eine Gefahr für die<br />

Produktivität der Internet-surfenden<br />

Mitarbeiter verbindet, verkennt die mitunter<br />

nützlichen Methoden, die dahinter<br />

stecken: Wenn sich das Freizeitkommunikationsverhalten<br />

von Internet-<br />

Benutzern massenhaft so schnell auf<br />

die immer noch relativ jungen Dienste<br />

einstellen konnte, liegt es nahe, deren<br />

Methoden und Techniken auch im Unternehmen<br />

auszuprobieren.<br />

Bei distanzierter Betrachtung stellt sich<br />

allerdings ohnehin heraus, dass etwa<br />

Facebook trotz auf den ersten Blick<br />

sehr unterschiedlicher Herangehensweise<br />

in puncto Funktionalität eine<br />

erstaunlich große Schnittmenge mit<br />

klassischen <strong>Groupware</strong>-Anwendungen<br />

bildet. Die Benutzer schreiben Nachrichten<br />

an einen definierbaren Empfängerkreis,<br />

organisieren Ereignisse<br />

mit Orts- und Zeitangaben und laden<br />

Teilnehmer dazu ein; dank Skype-Integration<br />

gibt es bei Facebook inzwischen<br />

sogar Telefon- und Videokonferenzen<br />

zwischen den Teilnehmern.<br />

Gedrängel auf dem Markt<br />

Den möglichen Nutzen für die Kommunikation<br />

und Koordination haben<br />

zahlreiche Anbieter erkannt und bieten<br />

auf Unternehmen gemünzte soziale<br />

Netzwerke an. Die Angebote unterscheiden<br />

sich teils sehr und eine Grenze<br />

zwischen sozialen Unternehmensnetzwerken,<br />

<strong>Groupware</strong>, Dokumentenverwaltung<br />

und Aufgabenplaner lässt sich<br />

selten scharf ziehen. Deshalb wäre ein<br />

Test mit objektiven Kriterien nicht so<br />

umsetzbar, dass er bei der Entscheidungsfindung<br />

hilft. Stattdessen gibt<br />

Tabelle 1 einen Überblick über die<br />

verschiedenen Kategorien und Herangehensweisen<br />

mit beispielhaften<br />

Vertretern.<br />

Yammer<br />

Der weltweit – wenn auch nicht unbedingt<br />

in Deutschland – bekannteste<br />

Dienst der Kategorie Social Business<br />

Network heißt »Yammer« (siehe Abbildung<br />

1) und stellt in puncto Oberfläche<br />

und Funktionalität einen typischen<br />

Vertreter der Branche dar. Microsoft<br />

kaufte die seit 2008 operierende Firma<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Soziale Netzwerke<br />

35<br />

Abbildung 1: Yammer aus dem Hause Microsoft als ein „Facebook fürs<br />

Unternehmen“ unter vielen.<br />

Abbildung 2: Tibbr versucht sich mit optischen Feinheiten von Facebook<br />

abzuheben.<br />

letztes Jahr für 1,2 Milliarden US-Dollar<br />

und arbeitet seither daran, Yammer in<br />

andere Lösungen wie Sharepoint und<br />

sein Online-Office-Paket Office 365 zu<br />

integrieren.<br />

Die Beschreibung „Facebook für Firmen“<br />

trifft für Yammer ebenso zu wie<br />

für viele andere Produkte. Denn ihre<br />

Oberflächen erinnern eindeutig an das<br />

den meisten Internet-Usern vertraute<br />

Original-Facebook. Häufig unterscheiden<br />

sie sich lediglich in Details wie der<br />

Farbgebung und der Anordnung typischer<br />

Komponenten um den zentral<br />

platzierten Activity Stream.<br />

Yammer, Tibbr (Abbildung 2) und andere<br />

wandeln auf einem schmalen<br />

Grat: Schließlich wollen sie von dem<br />

durchschlagenden Erfolg von Facebook<br />

profitieren, andererseits müssen sie<br />

sich auch von dem als Produktivitätskiller<br />

verschrienen, reinen Unterhaltungsprodukt<br />

abgrenzen.<br />

Kollegen statt Freunde<br />

So heißt es dann im Statusfeld nicht<br />

„Was machst du gerade?“, sondern<br />

„Woran arbeitest du gerade?“ und man<br />

verbindet sich nicht mit Freunden,<br />

sondern mit Mitarbeitern; das Ergebnis<br />

ähnelt dennoch der Facebook-Oberfläche.<br />

Auch die Auswahl der potenziellen<br />

Leser eines Status-Updates beschränkt<br />

man auf Basis der Gruppenzugehörigkeit.<br />

Wie Facebook-Benutzer es<br />

ebenfalls bereits kennen, strukturieren<br />

sich solche Gruppen frei, Mehrfachmitgliedschaften<br />

sind beispielsweise kein<br />

Problem.<br />

Die Firmenzugehörigkeit schlussfolgert<br />

Yammer aus der bei der Registrierung<br />

beim Yammer-Dienst angegebenen<br />

E-Mail-Adresse: Nutzer mit derselben<br />

Domain landen automatisch im selben<br />

Yammer-Firmennetzwerk, das abgeschottet<br />

von anderen Unternehmen<br />

funktioniert. Innerhalb eines Netzwerks<br />

bieten die meisten Produkte eine<br />

Einteilung in verschiedene Teams an,<br />

damit in diesen Einheiten etwa Abteilungen<br />

gezielt und meist von außen<br />

abgeschottet miteinander kommunizieren<br />

können.<br />

Gruppendynamik<br />

Innerhalb der Gruppen teilen sich<br />

Mitarbeiter neben den stromförmig<br />

verlaufenden Konversationen und<br />

Kommentaren (Activity Stream) meist<br />

zusätzliche Ressourcen, etwa Dateien<br />

oder Notizen. Die Dateiverwaltung<br />

beschränkt sich dabei bei den meisten<br />

Angeboten auf ein Minimum, häufig<br />

weil die Hersteller zusätzlich Dienste<br />

wie ein kollaboratives Dokumentenmanagment<br />

anbieten und nicht mit ihren<br />

eigenen Produkten konkurrieren möchten.<br />

Bei Yammer etwa lassen sich Microsoft-Office-Dateien<br />

online betrachten,<br />

aber nicht bearbeiten. Im Fall von<br />

PDFs und den gängigen Bildformaten<br />

gilt das gleiche, allerdings macht Yammere<br />

erstere beim Hochladen durch ein<br />

unzuverlässiges, automatisches Schrifterkennungsverfahren<br />

unfreiwillig<br />

unlesbar. Andere Office-Formate, wie<br />

das standardisierte Open-Document-<br />

Format, auf das unter anderem Libre-<br />

Office und OpenOffice setzen, betrachtet<br />

Yammer lediglich als Binärdateien<br />

und stellt sie anderen Benutzern zum<br />

Download zur Verfügung.<br />

Keine Konkurrenz aus dem<br />

eigenen Haus<br />

Gerade bei Yammer verwundert die eingeschränkte<br />

Funktionalität in diesem<br />

Bereich nicht, schließlich ist Yammer-<br />

Betreiber Microsoft auch Hersteller der<br />

am weitesten verbreiteten Office-Suite<br />

und bietet mit Office 365 darüber hinaus<br />

einen passenden Online-Service<br />

an. Dass das Zusammenspiel zwischen<br />

den verschiedenen Microsoft-Angeboten<br />

gewünscht ist, spiegelt sich auch<br />

in der Preisgestaltung wieder: Die<br />

Yammer-Basisversion ist kostenlos, für<br />

3 US-Dollar pro User und Monat erhält<br />

man ein paar zusätzliche Administrations-<br />

und Sicherheitsfunktionen, mit<br />

denen man beispielsweise Gruppen<br />

von Mitarbeitern automatisch registriert<br />

oder Netzwerkmonitoring und<br />

Nutzungsanalyse betreibt. Interessanter<br />

sind in der Praxis die Bundles mit<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


36<br />

<strong>Groupware</strong><br />

Soziale Netzwerke<br />

Sharepoint und Office 365, die mit mindestes<br />

4 beziehungsweise 8 US-Dollar<br />

pro Monat und User zu Buche schlagen.<br />

Ähnliche Pakete gibt es auch bei der<br />

Konkurrenz, wodurch das soziale Netzwerk<br />

häufig Stück für Stück dem individuellen<br />

Bedarf zugeführt wird.<br />

Von groß bis sehr groß<br />

Ein in Sachen Funktionalität anspruchsvolleres<br />

Publikum adressieren<br />

unter anderem die beiden Marktführer<br />

IBM und Jive mit ihren sozialen<br />

Netzwerkprodukten »Connections«<br />

beziehungsweise »Jive Social Intranet«.<br />

Beide präsentieren Pakete mit sehr<br />

flexibel konfigurierbarem Umfang.<br />

IBM Connections umfasst auf Wunsch<br />

etwa die <strong>Groupware</strong> IBM Notes, das aus<br />

Lotus Notes und Lotus Domino hervorgangen<br />

ist, unter anderem mit Kalender,<br />

To-Do-Listen und Dokumentenverwaltung.<br />

Dazu kommen Sametime für<br />

die Termin abstimmung, Anbindungen<br />

an Microsoft Office und Outlook sowie<br />

an Blackberry-, Apple- und Android-<br />

Smartphones. Auch der Application-<br />

Server Websphere steht bereit.<br />

Auch bei Jive stellt die Schnittstelle zu<br />

anderen Produkten einen wichtigen<br />

Punkt dar. Neben anderen Jive-Business-Diensten<br />

von CRM über Marketing<br />

bis IT-Infrastruktur gibt es auch hier<br />

eine Anbindung an die verbreiteten<br />

Microsoft-Produkte Office, Outlook und<br />

Sharepoint.<br />

SAP und Novell haben mit ihren etwas<br />

weniger etablierten Produkten Vibe<br />

beziehungsweise Jam die gleiche Zielgruppe<br />

im Visier. Aufgrund der hohen<br />

Flexibilität der vier Lösungen Vibe,<br />

Jam, Jive und IBM Connections geben<br />

deren Hersteller keine allgemeine Auskunft<br />

über die Preise. Denn die hängen<br />

außer von der Paketzusammenstellung<br />

auch vom Umfang der Installation ab,<br />

die üblicherweise auf lokalen Servern<br />

im Firmennetz (On-Premise) stattfindet.<br />

Somit fällt auch ein Vergleich mit<br />

Online-Diensten schwer; eine lokale<br />

Installation bietet die Vorteile besserer<br />

Kontrolle und einer verlässlichen Netzwerkanbindung,<br />

erfordert aber auch<br />

eine IT-Infrastruktur, deren Umfang womöglich<br />

über das bei kleineren Firmen<br />

übliche Maß hinausgeht.<br />

Service pur<br />

Andere Anbieter hingegen bieten ihre<br />

Lösungen ausschließlich nach dem<br />

SaaS-Prinzip an. Chatter, Podio, Asana<br />

und Yammer setzen darauf, dass ihre<br />

Kunden es wertschätzen, eine fertige<br />

Installation vorzufinden. Dabei liegen<br />

sowohl der Vor- als auch der Nachteil<br />

darin, dass Wartung, Aktualisierung<br />

und beispielsweise Sicherheitsvorkehrungen<br />

vollständig der Kontrolle<br />

des jeweiligen Anbieters unterliegen.<br />

Das bedeutet außer den Gebühren für<br />

den Dienst keine weiteren Kosten für<br />

IT-Infrastruktur. Mitarbeiter können sofort<br />

von jedem Internet-Anschluss aus<br />

auf das firmeneigene Portal zugreifen.<br />

Andererseits setzt eine reine Cloud-<br />

Lösung ein hohes Maß an Vertrauen<br />

in den Anbieter voraus, der immerhin<br />

einen großen Teil der firmeninternen<br />

Kommunikation verarbeitet.<br />

Die Kosten für die genannten Dienste<br />

bewegen sich jeweils zwischen 3 und 9<br />

US-Dollar pro Benutzer und Monat, wobei<br />

Podio eine kostenlose Lite-Variante<br />

für bis zu fünf Mitarbeiter anbietet. Ihr<br />

fehlt allerdings die Möglichkeit zur Zugriffskontrolle<br />

und Rechteverwaltung.<br />

Preise und Pakete<br />

Generell machen es einem die meisten<br />

Anbieter schwer, den endgültigen Preis<br />

n Tabelle 1: Soziale Netzwerke fürs Unternehmen<br />

Name Preis/​User/​Monat (SaaS) Projekte/​Tasks Chat Status-Updates Activity Stream Team-Kalender Blog<br />

Jive individuell ja ja – ja – ja<br />

IBM Connections individuell ja ja ja ja ja ja<br />

Novell Vibe individuell ja ja – ja ja ja<br />

SAP Jam individuell ja ja ja ja – –<br />

Exo individuell – – ja ja ja –<br />

Offiria – ja ja ja ja ja ja<br />

Elgg – – – – ja – ja<br />

Yammer USD 3-8 – ja ja ja – –<br />

Podio USD 0-9 ja – ja ja ja –<br />

Chatter USD 0-15 – ja ja ja optional –<br />

Asana USD 3-8 ja – ja ja – –<br />

Tibbr Individuell – ja ja ja ja –<br />

BlueKiwi EUR 5-8 ja ja ja ja – ja<br />

Swabr EUR 3-5 – – ja ja – –<br />

Coyo EUR 1,25-4 – ja ja ja – –<br />

Kona USD 0-10 ja – ja ja ja –<br />

Mangoapps USD 0-8 ja ja ja ja optional optional<br />

Telligent USD 3-9 – ja (Plus) ja ja ja ja<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Soziale Netzwerke<br />

37<br />

abzuschätzen. Die Preise der SaaS-Lösungen<br />

berechnen sich normalerweise<br />

pro User und Monat, wobei sie gewöhnlich<br />

wiederum von der Gesamtzahl der<br />

Mitarbeiter abhängen. Dabei gibt es<br />

nicht zwangsläufig Mengenrabatt, der<br />

Höchstsatz liegt bei einigen Angeboten<br />

im Bereich zwischen 100 und 500<br />

Usern; sowohl mehr als auch weniger<br />

Mitarbeiter können zu kostengünstigeren<br />

Pro-User-Preisen führen.<br />

Verhandlungssache<br />

Bei sehr großen Kunden geben sich<br />

die Hersteller verhandlungsbereit: Ab<br />

etwa 1000 Nutzern endet meist der Bereich<br />

der pauschal festgelegten Preise<br />

zugunsten individuell ausgehandelter<br />

Angebote, häufig mit Training und Support.<br />

Gesamtpreis und Paketumfang<br />

sind Verhandlungssache, es lohnt sich<br />

also für größere Firmen durchaus, mit<br />

den Anbietern in direkten Kontakt zu<br />

treten, ihre Angebote zu vergleichen<br />

und gegebenenfalls nachzuverhandeln.<br />

Die bereits angesprochenen Bundles<br />

verschiedener Produkte spielen auch<br />

hier eine wichtige Rolle, so gibt es etwa<br />

beim Chatter-Hersteller Salesforce<br />

beim Kauf einer CRM-Lizenz, die mit<br />

mindestens 25 US-Dollar pro User und<br />

Monat zu Buche schlägt, Chatter-Accounts<br />

für bis zu 500 Mitarbeiter gratis<br />

dazu.<br />

Frei und kostenlos<br />

Am preiswertesten fallen natürlich freie<br />

Open-Source-Programme aus. Exo<br />

(Abbildung 3), Offiria (Abbildung 4) und<br />

Elgg stehen zum kostenlosen Download<br />

zur Verfügung und lassen sich auf<br />

einem beliebigen Webserver installieren.<br />

Bei den letzteren beiden handelt es<br />

sich um quelloffene PHP-Programme,<br />

die in Java geschriebene Exo-Plattform<br />

setzt auf einen Application-Server wie<br />

Tomcat auf. Die kostenlose Community-Edition<br />

unterscheidet sich auch<br />

funktional von der Enterprise-Version:<br />

Letztere enthält zusätzlich eine integrierte<br />

Entwicklungsumgebung sowie<br />

Cluster-Unterstützung, Monitoring- und<br />

High-Availability-Funktionen. Die mit<br />

der Community-Edition funktional<br />

gleichwertige Express-Ausgabe unterscheidet<br />

sich lediglich durch den zusätzlich<br />

erhältlichen Support und einen<br />

Zugang zum Kundenportal. Die beiden<br />

kommerziellen Versionen lassen sich<br />

wiederum »on premise« installieren<br />

und kosten zwischen 1200-8000 US-<br />

Dollar, abhängig von der Nutzerzahl.<br />

Bei Offiria und Elgg handelt es sich<br />

um klassische Open-Source-Projekte.<br />

Für Elgg stellen Drittanbieter fertige<br />

Hosting-Lösungen zur Verfügung,<br />

man benötigt lediglich eine beliebige<br />

Infrastruktur mit einem je nach Benutzeraufkommen<br />

ausreichend leistungsstarken<br />

Webserver und eine MySQL-<br />

Datenbank, um Elgg zu betreiben.<br />

Geographisches<br />

Die einzigen originär europäischen<br />

Vertreter im Überblick heißen Swabr<br />

und BlueKiwi. Ersteres wird in Berlin<br />

entwickelt und steht für „Schwarzes<br />

Brett“. Bei Swabr steht die Kommunikation<br />

im Vordergrund, während sich die<br />

Oberfläche darüber hinaus auf ein Minimum<br />

reduziert; es lässt sich eher mit<br />

Twitter als mit Facebook vergleichen,<br />

die Benutzerschnittstelle liegt optisch<br />

dazwischen.<br />

Bei BlueKiwi handelt es sich um<br />

Produkt, das ursprünglich ein französisches<br />

Startup entwickelte. Der<br />

Software-Gigant Atos kaufte es 2012<br />

auf, wohl auch für den betriebsinternen<br />

Bedarf. Im selben Jahr gab Atos<br />

Wiki Foren private Gruppen Microblogging Profile Mobile On-Premise Integration<br />

ja – ja ja ja ja ausschließlich Sharepoint, MS Office,<br />

Outlook, Salesforce<br />

ja ja ja ja ja ja ausschließlich Sharepoint, MS Office,<br />

Outlook, WebSphere<br />

ja ja ja ja ja ja ausschließlich MS Office, Groupwise<br />

– ja ja ja ja ja ausschließlich –<br />

ja ja ja – ja ja gratis/​ab USD 1200,- –<br />

– – ja – ja ja ja, Open-Source –<br />

– – ja – ja als Erweiterung ja, Open-Source –<br />

– – ja – ja ja nein Sharepoint, Office 365<br />

– – ja – ja ja nein –<br />

– – ja – ja ja nein Sharepoint<br />

– – ja – ja ja nein –<br />

– – – – ja ja optional LinkedIn<br />

– – ja – ja ja – –<br />

– – ja – ja ja optional –<br />

ja – ja – ja ja optional, einmalig EUR –<br />

1200-62 000<br />

– – ja – ja ja nein –<br />

ja – ja ja ja ja optional Sharepoint<br />

ja ja ja – ja ja optional –<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


38<br />

<strong>Groupware</strong><br />

Soziale Netzwerke<br />

Abbildung 3: Die kostenlose Community-Edition von Exo läuft auch<br />

auf einem lokalen Application-Server.<br />

Abbildung 4: Beim PHP-Projekt Offiria ist der Quellcode frei; wie Elgg<br />

benötigt es nur einen Web-Server mit PHP-Modul.<br />

n Info<br />

nämlich bekannt, dass es die E-Mail als<br />

Produktivitätshindernis betrachtet und<br />

dieses Medium deshalb bis 2014 aus<br />

der internen Kommunikation zugunsten<br />

sozialer Netzwerke komplett zu<br />

verbannen gedenkt.<br />

Nie wieder E-Mail?<br />

Atos-Chef Thierry Breton, von 2005 bis<br />

2007 auch französischer Finanzminister,<br />

zeigte bei der Begründung für Atos’<br />

so genannte Null-E-Mail-Strategie Argumente<br />

für die Nutzung sozialer Netzwerke<br />

statt traditioneller Kommunikationssoftware<br />

auf, die auch in anderen<br />

Firmen tragen können. So erhielten<br />

Atos-Angestellte teilweise mehr als 100<br />

E-Mails pro Tag und verbrachten bis zu<br />

20 Wochenstunden damit, sie zu lesen<br />

und zu beantworten. Dazu kommt, dass<br />

junge Mitarbeiter E-Mail-Programme<br />

wie Outlook oder Thunderbird häufig<br />

nicht mehr kennen. Sie greifen auf E-<br />

Mails über die Webschnittstellen von<br />

Microsoft, Yahoo, Google und vielen<br />

anderen zu – ebenso wie auf Facebook<br />

und Twitter.<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/31082<br />

Salesforce kam in einer Studie zu einem<br />

ähnlichen Ergebnis, nämlich dass<br />

die meisten Arbeits-E-Mails für ihre<br />

Empfänger irrelevant seien. 70 Prozent<br />

der Befragten gaben an, dass sie für<br />

die eigene Arbeit nutzlose E-Mails erhielten.<br />

Solche Argumente sind es, die<br />

soziale Netzwerke fürs Unternehmen<br />

interessant machen, denn sie kehren<br />

die Logik des Informationstransfers<br />

um. Statt allen möglicherweise interessierten<br />

Kollegen Neuigkeiten aktiv<br />

zuzuschicken, woraufhin sich jeder von<br />

ihnen damit wenigstens einen Moment<br />

lang befassen muss, besteht das Konzept<br />

sozialer Netzwerke darin, Daten<br />

abrufbereit für diejenigen parat zu halten,<br />

die sie tatsächlich benötigen.<br />

Ob solche Thesen in der Praxis zutreffen,<br />

bleibt ebenso im Einzelfall abzuwägen<br />

wie die möglichen Lösungsansätze.<br />

Denn das Gegenargument lautet, dass<br />

ein kompetenter Umgang mit E-Mails<br />

durchaus möglich ist, während ein soziales<br />

Netzwerk ebenfalls nicht vollautomatisch<br />

funktioniert; es lebt von seinen<br />

Benutzern. In der Praxis bietet sich in<br />

den meisten Fällen wohl eine Kombination<br />

aus beiden an.<br />

Anderweitig sozial<br />

Neben den in Tabelle 1 wiedergegebenen<br />

Lösungen hält der Markt noch jede<br />

Menge spezialisierter Cloud-Werkzeuge<br />

bereit, viele davon aufs Unternehmen<br />

gemünzt oder zumindest für typische<br />

Firmenabläufe nutzbar. An dieser<br />

Stelle kommt zum Beispiel Trello ins<br />

Spiel, dass mit schlichten Boards und<br />

darauf frei verschiebbaren virtuellen<br />

Karteikärtchen unter anderem Scrum-<br />

Entwickler anspricht; sie lassen sich<br />

natürlich auch für jeden anderen<br />

Zweck gebrauchen. Ebenso gut hätte<br />

auch Basecamp in der Übersicht landen<br />

können, das sich um gemeinsames<br />

Projektmanagement in der Cloud<br />

kümmert. Doch solcherlei spezialisierte<br />

Lösungen finden sich hier trotz der ausgesprochen<br />

schwierigen Abgrenzung<br />

nicht wieder.<br />

Mengenlehre<br />

Die vielen Schnitt- und Untermengen<br />

bei den verfügbaren Angeboten zeigen<br />

auch, dass das Schwierigste an<br />

der Entscheidung die Spezifikation<br />

der eigenen Anforderungen ist. Wer<br />

ausschließlich ein Scrum-Board für die<br />

Entwicklung oder eine Projektverwaltung<br />

benötigt, für den sind Angebote<br />

wie Jive und IBM Connections überflüssig.<br />

Gleichzeitig ist zu beachten, dass<br />

einige bezahlte Angebote einen Vertrag<br />

mit mindestens einjähriger Laufzeit<br />

voraussetzen, sodass vor einer solchen<br />

Bindung zu prüfen ist, ob die eigenen<br />

Ansprüche sich innerhalb dieser Zeit<br />

doch noch ausdehnen oder auch einschränken<br />

können. n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


40<br />

<strong>Groupware</strong><br />

E-Mail-Migration<br />

Ein Portal verspricht die automatische Migration von E-Mails, Terminen und Aufgaben<br />

Kein Umzugsstress<br />

Fabian Schmidt, 123RF<br />

Auf der einen Seite locken neue Features oder ein besserer Support,<br />

doch auf der anderen Seite wirkt ein starkes Trägheitsmoment: Was<br />

wird aus meinen Mails, Aufgaben und Terminen, wenn ich den Service-Provider<br />

wechsele? Ein Portal hilft beim Umzug. Jens-Christoph Brendel<br />

Was also wird aus den Bestandsdaten<br />

bei einem Providerwechsel? „Ganz<br />

einfach“ – das ist jedenfalls die Antwort<br />

der Karlsruher audriga GmbH, die ein<br />

Self-Service-Portal für E-Mail-Umzüge<br />

betreibt. Sie verspricht, dass der Anbieterwechsel<br />

damit schnell, einfach und<br />

sicher gelingt. Das <strong>ADMIN</strong>-<strong>Magazin</strong> hat<br />

den Service getestet.<br />

Erster Versuch<br />

Ausgangspunkt für unseren Versuch<br />

war ein E-Mail-Konto bei Strato, mit<br />

dem wir zu Host Europe umziehen<br />

wollten. Quelle und Ziel sind selbstverständlich<br />

austauschbar und wurden<br />

von uns rein zufällig gewählt, ohne dass<br />

wir damit irgendeine Aussage über die<br />

Servicequalität der Anbieter verbinden<br />

wollen. Das Zielkonto muss dabei über<br />

das IMAP-Protokoll erreichbar sein.<br />

n Ein Anwender berichtet: Von Zimbra zu Exchange<br />

Der Lahn-Kinderkrippen e.V. betreibt als gemeinnütziger Verein mehrere<br />

Kindertagesstätten und nutzt 17 <strong>Groupware</strong>-Konten für interne Zwecke<br />

und um mit den Eltern zu kommunizieren. Ursprünglich setzte der Verein<br />

auf eine Hosted-Zimbra-Lösung, wollte aber wegen häufiger Ausfälle<br />

zu Microsoft Exchange Online wechseln.<br />

Zunächst versuchte man die Sache mit einem IT-Dienstleister anzugehen,<br />

der die 22 GByte an existierenden E-Mails, Kontakten und Kalenderdaten<br />

ex- und dann wieder importieren wollte. Das erwies sich allerdings<br />

als zu aufwendig und zu kostenintensiv. Schließlich stießen die<br />

Kindergärtner auf den SaaS-Migrationsdienst www.groupware-umzug.<br />

de als Alternative.<br />

Nach erfolgreichem Testlauf mit einem Konto lief dann die komplette<br />

Umstellung an einem Wochenende durch. Dazu wurden die Passwörter<br />

der Nutzer zurückgesetzt und der MX-Eintrag der Domain geändert. Die<br />

Migration der 17 Konten richtete man über die webbasierte Oberfläche<br />

des audriga-Dienstes ein. Aufgrund der Erfahrungen mit Zimbra ließ<br />

man vorsichtshalber immer nur einen Umzugsauftrag laufen, sodass<br />

der vollautomatische Datentransfer knapp 48 Stunden dauerte. Der<br />

verantwortliche Admin bei Lahn-Kinderkrippen<br />

konnte dabei den Umzugsstatus anhand der<br />

von audriga automatisch generierten Protokolle<br />

jederzeit nachvollziehen.<br />

Die Umzüge liefen wie geplant und ohne große<br />

Schwierigkeiten durch. Nur eine kleine Anzahl von E-Mails wurde aufgrund<br />

von Verbindungsproblemen und trotz mehrfacher automatischer<br />

Wiederholung nicht übertragen. Diese Daten wurden später manuell anhand<br />

der Protokolle des Umzugs nachgezogen. Da der Standardordner<br />

für »Gesendete E-Mails« in Quelle und Ziel unterschiedlich benannt war,<br />

waren zudem die gesendeten Nachrichten im neuen Postfach zunächst<br />

nicht am erwarteten Ort.<br />

Insgesamt schätzt Lahn-Kinderkrippen die Vorteile des automatisierten<br />

SaaS-Umzugs gegenüber der Lösung des IT-Dienstleisters hoch ein.<br />

Weniger Arbeitsaufwand und um den Faktor fünf verminderte Kosten<br />

standen am Ende zu Buche. Alle Daten ließen sich in weniger als einem<br />

Manntag migrieren. Die automatisch zur Verfügung gestellten Protokolle<br />

ermöglichten außerdem eine zuverlässige Kontrolle.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

E-Mail-Migration<br />

41<br />

Wir haben es vorher mit einer bunten<br />

Auswahl an gelesenen, ungelesenen<br />

und gesendeten Mails versehen, mit erledigten,<br />

unerledigten und wiederkehrenden<br />

Aufgaben sowie mit einer Reihe<br />

fiktiver Kontakte (Abbildung 1).<br />

Das Ausgangskonto muss übrigens<br />

nicht bei einem öffentlicher Provider<br />

beheimatet sein, man kann mithilfe des<br />

Portals auch von seinem eigenen Mailserver<br />

zu einem Hoster umziehen. Wer<br />

mitsamt der Domain migrieren will,<br />

sollte mit den Mails beginnen – mit einem<br />

Delta-Umzug können später die in<br />

der Zwischenzeit aufgelaufenen Mails<br />

nachgeholt werden.<br />

Bevor man mit dem Umzug beginnt,<br />

sollte man sich die Adressen der beteiligten<br />

Anbieter (oder des eigenen<br />

IMAP-Servers) sowie die Namen und<br />

Passwörter der Accounts zurechtlegen.<br />

Aus Sicherheitsgründen und im Interesse<br />

des Datenschutzes empfehlen sich<br />

temporäre Passwörter für den Umzug,<br />

die ihre Nutzer später wieder ändern<br />

können. Auch ist es ratsam, zunächst<br />

mit einem Account zu beginnen und<br />

den Rest erst dann in Angriff zu nehmen,<br />

wenn sich beim Testfall keine<br />

Probleme ergeben haben.<br />

Im ersten Schritt muss man dann auf<br />

dem Zielsystem für jeden umzuziehenden<br />

Account ein leeres Pendant<br />

anlegen. Danach gibt man im Browser<br />

die Adresse des Umzugs-Portals ein.<br />

Nachdem die Nutzungsbedingungen<br />

akzeptiert sind – denen zufolge audriga<br />

übrigens nur dann in voller Höhe<br />

haften würde, wenn Vorsatz oder die<br />

Verletzung einer schriftlichen Garantie<br />

Abbildung 1: Ein Beispiel-Kontakt im umzuziehenden Strato-Account.<br />

der Geschäftsleitung vorliegen würde<br />

– wählt man Quell- und Zielsystem.<br />

Eine Reihe großer Provider (Strato,<br />

1&1, GMX, Google Mail, Host Europe,<br />

Web.de und Yahoo!Mail) sind voreingestellt.<br />

Danach werden die Daten zu<br />

den umzuziehenden Accounts eingegeben<br />

(Abbildung 2). Die Gültigkeit der<br />

Passwörter muss via Klick auf einen<br />

entsprechenden Button geprüft werden.<br />

Dabei übermittelt das Portal die<br />

Logindaten SSL-verschlüsselt an einen<br />

Rechner in Amazons AWS-Cloud, in der<br />

der Umzugsservice läuft. Dieser Rechner<br />

wiederum wählt sich dann in Quellund<br />

Zielkonten ein.<br />

Noch ein paar Klicks und Eingabe einer<br />

E-Mail-Adresse, an die ein Protokoll<br />

der Aktion gemailt werden soll, und es<br />

kann losgehen (Abbildung 3). Während<br />

des Umzugs informiert ein Fortschritts-<br />

Abbildung 2: Hier werden die Daten zum Account<br />

hinterlegt, der migriert werden soll.


42<br />

<strong>Groupware</strong><br />

E-Mail-Migration<br />

Abbildung 3: Vor dem Umzug schätzt das Portal auch<br />

die voraussichtliche Dauer der Aktion.<br />

Abbildung 4: Ein Fortschrittsbalken zeigt an, wie<br />

weit der Umzug bereits gediehen ist.<br />

n Mail von Google<br />

… Vor Kurzem hat jemand versucht, sich mit Ihrem<br />

Passwort in Ihrem Google-Konto xxxxxxxx@gmail.<br />

com anzumelden. Dieser Nutzer hat dazu eine Anwendung<br />

wie einen E-Mail-Client oder ein Mobilgerät<br />

verwendet.<br />

Der Anmeldeversuch wurde aufgrund der Möglichkeit<br />

unterbunden, dass es sich um einen Hacker handelt,<br />

der versucht, auf Ihr Konto zuzugreifen. Bitte<br />

lesen Sie die Details zu diesem Anmeldeversuch:<br />

Samstag, 19. Oktober 2013 11:13 Uhr UTC IP-Adresse:<br />

54.247.175.161 (ec2-54-247-175-161.eu-west-1.compute.amazonaws.com.)<br />

Standort: unbekannt<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30687<br />

balken über den Status (Abbildung 4).<br />

Schon vor Umzugsbeginn erhält der<br />

zuvor angegebene E-Mail-Adressat erst<br />

eine Bestell-, dann eine Auftragsbestätigung<br />

und nach Beendigung einen<br />

kurzen Schlussbericht.<br />

Die Kür<br />

Das alles funktionierte im ersten Anlauf<br />

reibungslos, allerdings war der<br />

getestete Fall insofern recht einfach,<br />

als dass beide Partner Open Xchange<br />

als <strong>Groupware</strong>-Applikation in ihren<br />

Angeboten einsetzen. Damit sind die<br />

zu übertragenden Felder auf beiden<br />

Seiten identisch. In vielen Fällen wird<br />

es dagegen auch ganz unterschiedliche<br />

oder zumindest unterschiedlich benannte<br />

Felder geben oder auch Felder<br />

mit gleichem Namen, die aber verschiedene<br />

Datenformate oder ‐typen<br />

erwarten oder aber verschiedene Mechanismen<br />

kennen, etwa um Kontakte<br />

zu gruppieren.<br />

Um diesen Fall nachzustellen, wollten<br />

wir ein Gmail-Konto zu Web.de transferieren.<br />

Die erste Hürde bestand schon<br />

darin, dass Web.de nicht in der Auswahlliste<br />

der Zielplattformen auftaucht<br />

(wohl aber als Quelle). Die Ausgangsund<br />

Endpunkte der Migration sind also<br />

offenbar weitgehend, aber nicht vollkommen<br />

austauschbar. Einige Anbieter<br />

eignen sich vor allem deswegen nicht<br />

als Zielplattform, weil sie entweder<br />

nur POP3 statt IMAP anbieten oder beispielsweise<br />

mit großen Datenmengen<br />

nicht gut klarkommen.<br />

Im Fall von web.de wird IMAP zwar<br />

nicht garantiert, funktioniert aber. Hier<br />

kann man »imap.web.de« auf eigene<br />

Gefahr von Hand eingeben. Gesagt,<br />

getan. Dann ergab sich aber die zweite<br />

Schwierigkeit: Google wertete den<br />

Login-Versuch beim obligatorischen<br />

Prüfen des Passworts während der<br />

Konfiguration als Hacker-Angriff und<br />

unterband ihn. Das wissen wir aus einer<br />

entsprechenden Mail von Google (siehe<br />

Kasten »Mail von Google«). Audriga<br />

informiert den Anwender nur durch<br />

das rote Kreuz anstelle des grünen Häkchens<br />

als Zeichen des Misserfolgs beim<br />

Prüfen des Passworts.<br />

Warum genau Google hier einen Hacker<br />

vermutet, ist nicht genau nachvollziehbar,<br />

aber Anhaltspunkte könnten sein:<br />

Die IP-Adresse wurde noch nie für ein<br />

Login verwendet und sie gehört auch<br />

nicht zu einem ISP, Mobilfunker oder<br />

einem bekannten Unternehmensnetz;<br />

der Browser ist unbekannt oder der<br />

geografische Standort kann nicht ermittelt<br />

werden. Andere Provider mögen<br />

andere Vorsichtsmaßnahmen treffen<br />

und beispielsweise das Datenvolumen<br />

begrenzen.<br />

Fazit<br />

Was kann man daraus lernen? Noch vor<br />

allen potenziellen Migrationsproblemen<br />

müssen die beteiligten Provider<br />

die Prozedur überhaupt zulassen. Dass<br />

sie das tun, ist nicht automatisch sicher.<br />

Allerdings schätzt audriga, dass<br />

nur ein einstelliger Prozentsatz der<br />

Google-Migrationen mit dem geschilderten<br />

Problem konfrontiert ist und<br />

das sind dann auch eher kostenlose<br />

Konten. Außerdem arbeitet audriga daran,<br />

die Migrationsserver des Dienstes<br />

für deutsche Nutzer zu einem deutschen<br />

Anbieter zu verlegen, aber auch<br />

das würde das Problem voraussichtlich<br />

nicht hundertprozentig lösen.<br />

Wenn die Migration möglich ist, kommt<br />

es darauf an, wie verschieden Quelle<br />

und Ziel sind – stimmen die Datenstrukturen<br />

weitgehend überein, kann<br />

man mit einer sicheren und zügigen<br />

Übertragung rechnen. Der Umzugsdienst<br />

kann dann in größerem Maß helfen,<br />

Kosten und Mühe zu sparen.<br />

Zaubern kann er aber nicht. Schon gesendete<br />

Mails landen oft in einem auf<br />

der Zielseite anders benannten Ordner.<br />

Hier wäre ein Mapping noch einfach,<br />

doch kann selbst bei diesem simplen<br />

Beispiel der Name des Ordners auch<br />

vom E-Mail-Client abhängen.<br />

In jedem Fall versucht audriga alle<br />

Da ten der Quelle automatisch in ein<br />

bedeutungsgleiches Feld des Ziels<br />

zu verschieben, auch wenn die Benennung<br />

differiert. Es wird aber nicht<br />

in jedem Fall möglich sein, Daten zu<br />

übernehmen, die keinen Platz in der<br />

Datenstruktur der Zielplattform haben.<br />

Zumindest erfolgt dann immer ein<br />

Vermerk im Protokoll. In diesen Fällen<br />

kä me man allerdings auch mit einer<br />

manuellen Methode nicht viel weiter. n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


klaikungwon sudsawat, 123RF<br />

Tine 2.0 Kristina und Collin im Test<br />

Fast ein<br />

Alleskönner<br />

Tine ist eine seit 2008 entwickelte, webbasierte Kollaborationslösung, die beim Backend und Frontend konsequent<br />

auf Web-2.0-Technologie setzt. Ihr Web-Interface fühlt sich wie eine native Anwendung an. Wir haben uns<br />

die <strong>Groupware</strong>-Funktionen der Community-Version angeschaut. Thomas Drilling<br />

Tine 2.0 verfügt über klassische <strong>Groupware</strong>-Funktionen<br />

hinaus auch über Module<br />

für CRM, Verkaufsunterstützung,<br />

n Tine-2.0-Collin-Neuerungen<br />

Kurz vor Redaktionsschluss erschien die aktuelle Version<br />

"Collin" von Tine 2.0 mit interessanten Neuerungen.<br />

So erlaubt es der Active-Directory-Support, dass<br />

Anwender aus Tine heraus Benutzerkonten im Active<br />

Directory anlegen und verwalten können. Ferner<br />

haben die Entwickler den CalDAV- und CardDAV-Support<br />

noch verbessert. Außerdem kann Tine jetzt gegenüber<br />

OwnCloud-Clients als Synchronisationsserver<br />

auftreten. Ferner lassen sich an sämtliche <strong>Groupware</strong>-Daten<br />

jetzt Dateien anhängen, etwa an einen<br />

Termin im Kalender, die dann bei der automatisch<br />

versandten Mail mitgeschickt werden. Ebenfalls neu<br />

ist, dass Admins den maximalen Zeitraum begrenzen<br />

können, innerhalb dessen sich zurückliegende<br />

Termine mit Smartphones synchronisieren lassen,<br />

was vor allem die CPU-Last bei großen Installationen<br />

verringern soll. Außerdem funktioniert das Anmelden<br />

an Tine anstelle der Kombination Benutzername und<br />

Passwort jetzt auch mit einem Zertifikat.<br />

Zeiterfassung und eine Dateiablage<br />

sowie eine VoIP-Integration mit Asterisk<br />

und Sipgate. Ferner enthält Tine einen<br />

eigenen E-Mail-Client und lässt sich in<br />

der jüngst erschienenen Version Collin<br />

auch in ein Active Directory einbinden.<br />

Ferner ist es mit Tine möglich, mithilfe<br />

des OwnCloud-Clients auf die Dateiablage<br />

zuzugreifen. Außerdem unterstützt<br />

Tine das Synchronisieren mobiler<br />

Geräte via CalDAV, CardDAV und Active-<br />

Sync, was die Lösung zum Rundumwohlfühlpaket<br />

für kleine Unternehmen<br />

im SOHO- und SMB-Segment macht.<br />

Genau genommen ist Tine also weit<br />

mehr als eine <strong>Groupware</strong>-Lösung und<br />

versteht sich als Plattform, die sämtliche<br />

Aspekte der internen Koordination<br />

eines Unternehmens abbilden soll. Die<br />

Community-Variante [1] der momentan<br />

aktuellen Version 2013.10.1 (Collin)<br />

steht auf der Projektseite zum Herunterladen<br />

[2] zur Verfügung und ist unter<br />

Version 3 der GNU Affero General Public<br />

License (AGPL) veröffentlicht. Ferner<br />

gibt es eine Demo-Version [3] für einen<br />

schnellen ersten Blick. Unterstützung<br />

für die Community-Version gewährleistet<br />

die rege Entwickler- und Nutzer-<br />

Gemeinschaft in Form von Forum [4]<br />

und Wiki [5].<br />

Historisches<br />

Die Bezeichnung 2.0 im Produktnamen<br />

ist insofern irreführend, als dass es<br />

keine Version 1.0 gab. Die einzelnen<br />

Releases von Tine 2.0 tragen Datumsbezeichnungen<br />

und Code-Namen, wie<br />

etwa Neele (1/​2011), Maischa (07/​2011),<br />

Milan (03/​2012) oder Joey (10/​2012).<br />

Installiert haben wir die Versionen Kristina<br />

(2013.03.8) vom März dieses Jahres<br />

und das brandaktuelle Collin-Release,<br />

das kurz vor Redaktionsschluss erwartungsgemäß<br />

erschien und mit Unterstützung<br />

für Active Directory und Own-<br />

Cloud aufwarten kann (siehe Kasten).<br />

Die Bezeichnung »2.0« soll zum einem<br />

auf die verwendeten Web-Technologien<br />

(Web 2.0, AJAX) hinweisen, ist aber<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Tine<br />

45<br />

auch als Fingerzeig auf die Tatsache<br />

zu verstehen, dass sich Tine 2.0 als<br />

Neuauflage von e<strong>Groupware</strong> versteht.<br />

So war Tine 2.0 ursprünglich als »e<strong>Groupware</strong><br />

2.0« geplant und sogar für<br />

kurze Zeit ein offizielles Subprojekt<br />

von e<strong>Groupware</strong>. Allerdings spaltete<br />

sich das Tine-Projekt wegen interner<br />

Unstimmigkeiten im Februar 2008 von<br />

e<strong>Groupware</strong> ab, ist aber dennoch kein<br />

Fork, weil Tine von Grund auf neu entwickelt<br />

wurde.<br />

Open Source und Kommerz<br />

Federführend für die Entwicklung von<br />

Tine ist Produktmanager Lars Kneschke<br />

– kein Unbekannter in der Entwicklung<br />

von Open-Source-<strong>Groupware</strong>-Lösungen.<br />

Kneschke hat seit 2000 an der<br />

Entwicklung zahlreicher Open-Source-<br />

<strong>Groupware</strong>-Lösungen mitgearbeitet<br />

und das Tine-2.0-Projekt 2007 gemeinsam<br />

mit Cornelius Weiss bei der Hamburger<br />

Metaways Infosystems GmbH [6]<br />

ins Leben gerufen.<br />

Cornelius Weiss ist seit 2008 bei Metaways<br />

als Abteilungsleiter im Bereich<br />

Software für die Entwicklungsleitung<br />

von Tine 2.0 zuständig. Metaways ist<br />

ein 2001 mit Fokus auf Hosting und<br />

Software-Entwicklung im Kontext von<br />

Open Source gegründeter IT-Spezialist,<br />

der unter anderem kommerzielle<br />

Unterstützung [7] für Tine 2.0 sowie<br />

diverse Hosting-Varianten [8] der Lösung<br />

anbietet. Obwohl Metaways Tine<br />

finanziert, ist es ein echtes Community-<br />

Projekt mit einer stetig wachsenden<br />

Nutzergemeinschaft, die aktiv zur Mitarbeit<br />

[9] aufruft und mittlerweile viele<br />

externe Entwickler einbindet.<br />

Die Symbiose aus Community-Projekt<br />

und dem Sponsoring durch Metaways<br />

beschert der Lösung eine Reihe von<br />

Vorteilen. Der gesicherte finanzielle<br />

Entwicklungshintergrund erlaubte<br />

es den Tine-Machern beispielsweise<br />

von Beginn an, Software-Ergonomie<br />

als wichtigen Faktor für die Akzeptanz<br />

einer Unternehmens-Software einzubeziehen.<br />

Bekanntlich scheitern technisch<br />

ausgezeichnete Projekte nicht selten<br />

an Mitarbeitern, die die Software nicht<br />

benutzen wollen, was insbesondere für<br />

eine <strong>Groupware</strong>-Lösung fatal ist. Daher<br />

erlaubte es man sich bei Metaways,<br />

Abbildung 1: Das webbasierte Setup prüft, ob die Installationsvoraussetzungen erfüllt sind.<br />

beim Entwickeln der Funktionen sowie<br />

beim GUI-Design externe Experten<br />

der Open-Source-Usability-Labs [10]<br />

hinzuzuziehen. Die sind selbst keine<br />

Techniker, sondern verstehen sich als<br />

Anwälte der Benutzer und begleiten<br />

den gesamten Entwicklungsprozess mit<br />

Ratschlägen, die dazu dienen sollen,<br />

die Software für Anwender besser benutzbar<br />

zu machen.<br />

Ein weiterer wichtiger Punkt in der<br />

Tine-Entwicklung bestand im Anspruch,<br />

von Anfang an eine hohe<br />

Code-Qualität zu bieten, denn immerhin<br />

handelt es sich etwa bei den<br />

ERP- und CRM-Modulen um Software,<br />

die unternehmenskritische Daten<br />

verwaltet. Das Tine-Team setzt daher<br />

auf automatisierte Tests auf Basis des<br />

Test-Framework JUnit. Die dreistufigen<br />

Tests umfassen das Backend, die<br />

Domain-Logik und externe APIs. Beim<br />

Backend-Test geht es etwa darum, ob<br />

SQL- und LDAP-Abfragen und Dateizugriffe<br />

wie geplant funktionieren. Die<br />

Tests der Domain-Logik und Zugriffskontrolle<br />

im zweiten Schritt stellen<br />

quasi eine Referenz für die interne API<br />

dar, während im dritten Schritt die<br />

externen APIs getestet werden, auf die<br />

die Clients zugreifen.<br />

Technologie<br />

Das Backend von Tine ist komplett in<br />

PHP unter Zuhilfenahme des Zend-<br />

Frameworks geschrieben und nutzt<br />

zum Speichern der Daten eine SQL-<br />

Datenbank. Der Zugriff erfolgt über<br />

einen beliebigen Webserver. Die Client-<br />

Komponente, das Web-Frontend, ist<br />

mithilfe des ExtJS-Frameworks in<br />

Javascript implementiert. Die AJAX-<br />

Technologie impliziert einige typische<br />

Vorteile, aber auch Besonderheiten<br />

in puncto Look&Feel im Vergleich mit<br />

auf HTML 5 basierenden Lösungen wie<br />

Zarafa WebApp. Die Kommunikation<br />

mit dem Server erfolgt per JSON-RPC,<br />

sodass wie für AJAX-Anwendungen<br />

üblich nur die anzuzeigenden Daten<br />

übertragen werden, aber kein HTML.<br />

Allerdings ist AJAX nur zum Teil für die<br />

hohe Reaktionsgeschwindigkeit der<br />

GUI verantwortlich. Auch der Einsatz<br />

der In-Memory-Datenbank Redis trägt<br />

dazu bei, dass Tine viele Aufgaben<br />

asynchron erledigen kann.<br />

Voraussetzungen<br />

Die Tine-2.0-Community-Version benötigt<br />

als PHP-Anwendung einen Webserver<br />

mit diversen (gängigen) PHP-<br />

Erweiterungen sowie eine Datenbank.<br />

Im Test haben wir MariaDB (MySQL)<br />

und einen aktuellen Apache verwendet.<br />

Tine läuft aber auch mit anderen Webservern<br />

und Datenbanken (PostgreSQL,<br />

Oracle). Wir konnten die Software<br />

problemlos sowohl auf einem recht<br />

konservativen Ubuntu 12.10 mit MySQL<br />

5.5, als auch unter einem aktuellen Fedora-19-System<br />

mit MariaDB in Betrieb<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


46<br />

<strong>Groupware</strong><br />

Tine<br />

Tine installieren<br />

Tine muss als waschechte PHP-Anwendung<br />

im eigentlichen Sinne nicht<br />

installiert werden. Der Admin muss lediglich<br />

den gesamten Inhalt der als ZIP-<br />

Datei »tine20-allinone_2013.10.1.zip«<br />

zum Herunterladen angebotenen<br />

Community-Version im Document-<br />

Root-Verzeichnis des Webservers [/ var/​<br />

www/ html] entpacken. Das Archiv extrahiert<br />

bei der Version Kristina direkt<br />

ins angegebenen Verzeichnis und erzeugt<br />

kein Unterverzeichnis wie bei der<br />

neuen Version Collin. Wer auf seinen<br />

Webserver ausschließlich Tine betreibt,<br />

kann dann via [http:// Hostname/ tine20.​<br />

php] auf die <strong>Groupware</strong> zugreifen. Wer<br />

mehrere Web-Anwendungen betreibt,<br />

muss in einen Ordner installieren oder<br />

virtuelle Hosts verwenden. Der Admin<br />

ist selbst verantwortlich, die Installation<br />

möglichst sicher zu gestalten, etwa<br />

durch Verwenden des Nutzers und der<br />

Gruppe Apache und Anpassen der Datei<br />

».htaccess«.<br />

Metaways bietet in seinem Installations-HowTo<br />

auch Installationspfade für<br />

Ubuntu und Fedora auf Basis von Metaways<br />

zur Verfügung gestellten Repos<br />

an. Das erleichtert zwar das Installieren<br />

von Apache, MySQL und PHP mitsamt<br />

der benötigten Abhängigkeiten und<br />

kümmert sich unter Ubuntu/​Debian<br />

auch um das MySQL-Root-Passwort,<br />

entbindet den Admin aber nicht davon,<br />

die benötigte Datenbank nebst Benutzern<br />

anzulegen und eine initiale Konfiguration<br />

von Tine 2.0 vorzunehmen.<br />

Ubuntu- und Debian-Nutzer können<br />

durch Hinzufügen des Repos mit<br />

Abbildung 2: Erst wenn die Datenbank existiert und läuft, lässt sich das Setup fortsetzen.<br />

echo "deb https://packages.tine20.org/U<br />

ubuntu $(lsb_release -sc) stable" >U<br />

/etc/apt/sources.list.d/tine20org.list<br />

n Listing 1: PHP-Konfiguration<br />

01 U<br />

/etc/apt/sources.list.d/tine20org.list<br />

und dem Importieren des für das Deb-<br />

Repo erforderlichen Admin-gpg-Keys<br />

mit<br />

apt-key adv --recv-keys --keyserver<br />

keys.gnupg.net 7F6F6895<br />

durch Eingeben von »apt‐get‐update ;<br />

apt‐get install tine20« (Ubuntu-Admins<br />

mit sudo) das Meta-Paket »Tine20« installieren.<br />

Das wiederum sorgt für das<br />

Installieren von Apache, PHP, MySQL<br />

und der Daten der Tine-Applikation,<br />

legt den administrativen MySQL-User<br />

an und fragt nach einem Namen nebst<br />

Passwort für den für das Tine-Setup<br />

benötigten Datenbank-Nutzer. Auch<br />

für Fedora stellt Metaways ein Repo zur<br />

Verfügung. Der Admin muss dazu eine<br />

passende Paketquellen-Beschreibung<br />

[tine20.org]<br />

name=Tine20.org repository<br />

baseurl=http://packages.tine20.orgU<br />

/fedora/$releasever/$basearch<br />

enabled=1<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Tine<br />

47<br />

#metadata_expire=7d<br />

gpgcheck=1<br />

gpgkey=http://packages.tine20.orgU<br />

/fedora/repo‐key.asc<br />

unter »/etc/yum.repos.d/tine.repo«<br />

speichern und dann den von Metaways<br />

zur Verfügung gestellten Public-Key<br />

importieren:<br />

rpm ‐‐import http://packages.tine20.orgU<br />

/fedora/repo‐key.asc<br />

Nach einem eventuellen Update der<br />

Systembasis mit »yum ‐y update« lässt<br />

sich die Software ebenfalls komfortabel<br />

mit »yum« installieren: »yum install<br />

tine20«.<br />

Wir haben uns dennoch für die gezippte<br />

Download-Version unter Fedora<br />

19 entschieden und das Archiv im Document-Root<br />

des Apache-Webservers<br />

entpackt. Bei der manuellen Installation<br />

unter Fedora sind wie erwähnt<br />

– soweit noch nicht geschehen – die<br />

Pakete mariadb, php sowie die PHP-Erweiterungen<br />

php-gd und php-mycrypt<br />

und für eine gesicherte Verbindung<br />

zum Webserver gegebenenfalls das Paket<br />

mod_ssl zu installieren. Das gelingt<br />

mit »yum install php‐extension«.<br />

Tine konfigurieren<br />

Tine ist zwingend auf eine Datenbank<br />

angewiesen, ohne die die weitere<br />

Konfiguration der Anwendung nicht<br />

funktioniert. Während Debian-basierte<br />

Distributionen den administrativen<br />

MariaDB/​MySQL-Account im Lauf der<br />

Installation mittels »debconf« anlegen,<br />

muss der Admin dieses unter Fedora<br />

selbst tun:<br />

mysqladmin ‐u root password <br />

Der administrative Datenbank-Account<br />

muss nicht zwingend »root« heißen und<br />

ist nicht mit dem Root-System-User<br />

identisch. Wahlweise kann der Admin<br />

mit »/usr/bin/mysql_secure_installation«<br />

auch eine sichere Konfiguration<br />

von MariaDB anstoßen. Der Ablauf des<br />

Skriptes ist selbsterklärend. Anschließend<br />

muss der Admin die von Tine<br />

benötigte Datenbank und einen Nutzer<br />

anlegen, der volle Zugriffsrechte auf<br />

die Datenbank hat und für das initiale<br />

sowie ein gegebenenfalls wiederholtes<br />

Setup von Tine benötigt wird. Dazu<br />

wechselt der Admin durch Eingeben<br />

von »mysql ‐p passwort« in den interaktiven<br />

Datenbank-Modus. Hier legt er<br />

zum Beispiel mit<br />

CREATE DATABASE tine20db DEFAULT U<br />

CHARACTER SET 'UTF8';<br />

eine Tine-2.0-Datenbank mit dem Namen<br />

tine20db, sowie mit<br />

GRANT ALL PRIVILEGES ON tine20db.* TOU<br />

'tine20user'@'localhost' IDENTIFIED BY U<br />

'tine20pw';<br />

einen Datenbank-Benutzer tine20user<br />

nebst Passort tine20pw an, der volle<br />

Rechte an der Datenbank hat. Beide<br />

Befehlszeilen sind mit dem Semikolon<br />

abzuschließen. Ist das erledigt, kann<br />

sich der Admin um die PHP-Basis-Konfiguration<br />

für Tine<br />

kümmern.<br />

PHP-Config<br />

erstellen<br />

Dazu ist im Prinzip<br />

eine Config-Datei<br />

»/var/www/html/<br />

config.inc.php« zu<br />

erstellen, die im<br />

Wesentlichen Informationen<br />

darüber<br />

enthält, wie die<br />

Verbindung zur Datenbank<br />

erfolgt. Die<br />

Datei muss für den<br />

Webserver-User lesund<br />

schreibbar sein.<br />

Wer die Konfiguration<br />

komplett manuell<br />

erledigen möchte,<br />

kann sich dazu an<br />

der mitgelieferten<br />

Beispielkonfiguration<br />

»config.inc.php.<br />

dist« orientieren,<br />

diese den eigenen<br />

Gegebenheiten<br />

entsprechend bearbeiten<br />

und unter<br />

der Bezeichnung<br />

»config.inc.php« im<br />

Document-Root speichern. Der Admin<br />

kann aber auch eine minimale »config.<br />

inc.php«-Datei mit Inhalt aus Listing 1<br />

verwenden, die es erlaubt, die weitere<br />

Konfiguration im Web-Interface zu erledigen.<br />

Die Datei muss den administrativen<br />

Zugang zur Datenbank sowie den eben<br />

angelegten Tine-Setup-User nebst<br />

Passwort enthalten. Dieser Setup-User<br />

wird für den initialen Teil des grafischen<br />

Tine-Setups benötigt sowie für<br />

spätere Änderungen am Basis-Setup,<br />

etwa zum Installieren zusätzlicher<br />

Anwendungen. Den für die spätere<br />

Administration von Tine benötigten<br />

Admin-User legt der Admin im weiteren<br />

Verlauf des Tine-Setups fest. Mit dieser<br />

Minimal konfiguration sollte es möglich<br />

sein, die Setup-Oberfläche von Tine<br />

2.0 mit der URL [http:// Server/ setup.​<br />

php] im Browser aufzurufen und sich<br />

mit den Account-Daten des oben definierten<br />

Setup-Users anzumelden. Nach<br />

Anzeige<br />

www.admin-magazin.de


48<br />

<strong>Groupware</strong><br />

Tine<br />

Abbildung 3: Die neue Tine-2.0-Version Collin lässt sich in ein Active Directory einbinden.<br />

dem Login darf der Admin zuerst die<br />

Lizenzvereinbarung und das Privacy-<br />

Agreement der Community-Version<br />

mit einem Click auf »Accept Terms<br />

and Conditions« abnicken. Das ist<br />

notwendig, weil das Gesamtpaket von<br />

Tine 2.0 aus zahlreichen Komponenten<br />

mit einer Vielzahl unterschiedlicher<br />

Open-Source-Lizenzen besteht. Danach<br />

kann der Admin mit »Setup Checks«<br />

die Umgebung testen, was im Idealfall<br />

Abbildung 4: Das Mailserver-Setup ist für viele Funktionen in Tine essenziell.<br />

viele grüne Häckchen zeigen sollte (Abbildung<br />

1).<br />

Im Menü »Config Manager« kann der<br />

Admin dann die beschriebenen Parameter<br />

für den Datenbank-Zugriff<br />

verifizieren. Stimmt hierbei irgendwas<br />

nicht, läuft die Datenbank nicht oder<br />

wurden die Tine-Datenbank und der<br />

Tine-Setup-Nutzer noch nicht angelegt,<br />

signalisiert das Setup-Programm dies<br />

im Bereich Database mit einem roten<br />

Kreuz statt des grünen Häkchens (Abbildung<br />

2).<br />

Darunter kann der Admin auf Wunsch<br />

»Logging«, »Caching« und »Queueing«<br />

aktivieren und eine Reihe von Pfaden<br />

seinen persönlichen Wünschen anpassen.<br />

Hat der Admin Tine 2.0 mithilfe eines<br />

Repositories installiert, sind an dieser<br />

Stelle keine Änderungen erforderlich.<br />

Ist die Konfigurationsdatei für den<br />

Webserver nicht beschreibbar, ist<br />

links oben der Link »Config file is not<br />

writeable« hervorgehoben und die folgenden<br />

Menüpunkte sind ausgegraut.<br />

In diesem Fall kann der Admin die<br />

Konfiguration mit »Download config<br />

file« lokal herunterladen und selbst auf<br />

dem Webserver platzieren. Ist dagegen<br />

alles in Ordnung, sollte der nächste<br />

Menüpunkt »Authentication | Accounts«<br />

anwählbar sein. Nach dessen Auswahl<br />

ist dann auch links oben der Link<br />

»Save config on install« anklickbar<br />

und der Umweg des Herunterladens<br />

der Konfiguration entfällt. Jetzt ist es<br />

an der Zeit, im Bereich »Initial Admin<br />

User« den eigentlichen administrativen<br />

Tine-Admin-Account nebst Passwort<br />

anzulegen.<br />

Die Seite erschließt noch ein Füllhorn<br />

weiterer Konfigurations-Optionen, die<br />

aber fast alle mit brauchbaren Werten<br />

vorbelegt sind, etwa ob das Tine-<br />

Backend Benutzer via SQL, LDAP oder<br />

IMAP authentifizieren soll. Die neue<br />

Version Collin kann Benuterkonten<br />

auch in einem Active Directory ablegen<br />

(Abbildung 3). Ferner kann und<br />

muss der Admin bei einer manuellen<br />

Installation hier bei Bedarf noch Weiterleitungsregeln<br />

etwa für ActiveSync,<br />

CalDAV und CardDAV einrichten, was<br />

aber je nach eingesetztem Webserver<br />

variiert.<br />

Erst wenn der initiale Tine-Admin-Account<br />

angelegt wurde, stehen die beiden<br />

letzten Menüpunkte »Email« und<br />

»Applications Manager« zur Verfügung.<br />

Spätestens jetzt sollte die <strong>Groupware</strong><br />

aber bereits zugreifbar sein. Das Menü<br />

»Email« dient schließlich zum Konfigurieren<br />

von IMAP- und SMTP-Servern.<br />

Auch hier zeigt sich Tine sehr flexibel<br />

und erlaubt zum Beispiel je nach Bedarf<br />

neben Standard-IMAP das Konfigu-<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Tine<br />

49<br />

rieren von DBmail, Cyrus, Dovecot und<br />

Postfix. Genauso vielseitig sieht es im<br />

Bereich unterstützter SMTP-Server mit<br />

Postfix/​MySQL oder Postfix/​LDAP aus<br />

(Abbildung 4).<br />

Das Konfigurieren eines Mailservers ist<br />

für den Einsatz von Tine 2.0 zwar nicht<br />

zwingend erforderlich, ohne Mailserver<br />

funktionieren aber verständlicherweise<br />

keine Termineinladungen, Kalenderalarme<br />

und so weiter. Im Menü »Applications<br />

Manager« schließlich kann der<br />

Admin die verfügbaren Tine-2.0-Anwendungen<br />

installieren. Standardmäßig<br />

sind nur die klassischen <strong>Groupware</strong>-<br />

Funktionen in Form der Applikationen<br />

»Tinebase«, »Adressbook« und »Admin«<br />

installiert. Einige Anwendungen weisen<br />

Abhängigkeiten zu anderen auf, was in<br />

der Spalte »Depends on« ersichtlich ist<br />

(Abbildung 5).<br />

Ist das erledigt, gelangt der Admin mit<br />

dem Link »Go to Tine 2.0 login« rechts<br />

oben oder über das Kontextmenü der<br />

jeweiligen Anwendung zum eigentlichen<br />

Goupware-Login.<br />

Abbildung 5: Hier installiert der Admin (auch später) die verfügbaren Tine-Anwendungen.<br />

Erste Schritte in Tine<br />

Wer sich nicht direkt aus dem Setup an<br />

der <strong>Groupware</strong> anmeldet, tut dies im<br />

normalen Betrieb über die URL [http://​<br />

Tine‐Server/ tine20], es sei denn, der<br />

Admin hat die Software in ein Unterverzeichnis<br />

installiert. Je nachdem welche<br />

Art der Benutzerauthentifizierung der<br />

Admin im Setup-Teil konfiguriert hat,<br />

ist es jetzt möglich, sich an der Tine-<br />

Weboberfläche anzumelden. Hat der<br />

Admin keine Authentifizierung via<br />

LDAP, AD oder IMAP konfiguriert, nutzt<br />

Tine die eigene Benutzerverwaltung<br />

auf Basis der MySQL-Datenbank. Das<br />

bedeutet, dass es beim ersten Login<br />

ausschließlich möglich ist, sich mit<br />

dem eben angelegten, initialen administrativen<br />

Benutzer anzumelden.<br />

Tine 2.0 arbeitet vollständig Tabbasiert,<br />

das heißt, jede einzelne Anwendung<br />

wie das per Default gestartete<br />

Adressbuch erscheint auf einem<br />

eigenen Reiter. Mit einem Klick auf den<br />

Reiter »Tine 2.0« öffnet sich ein Untermenü,<br />

das wahlweise das Starten der<br />

übrigen installierten Anwendungen<br />

wie Kalender und Aufgaben ermöglicht<br />

oder das Öffnen des Admin-Moduls sowie<br />

der Einstellungen. Darüber hinaus<br />

kann der Admin beziehungsweise der<br />

gerade angemeldete Benutzer hier sein<br />

Passwort ändern, sein Profil bearbeiten<br />

und sich von der <strong>Groupware</strong> abmelden<br />

(Abbildung 6).<br />

Neue Benutzer legt der Admin im<br />

Admin-Modul gleich im ersten Menüpunkt<br />

»Benutzer« fest. Das sind dann<br />

solche, die Tine-intern gegen die<br />

MySQL-Datenbank authentifiziert werden.<br />

Soll dagegen grundsätzlich gegen<br />

einen Verzeichnisdienst oder mithilfe<br />

eines existierenden IMAP-Servers authentifiziert<br />

werden, muss der Admin<br />

die beschriebene Setup-Prozedur wiederholen<br />

und die dazu notwendigen<br />

Änderungen vornehmen.<br />

Einen neuen Benutzer fügt der Admin<br />

mit dem Symbolleisten-Eintrag »Benutzer<br />

hinzufügen« hinzu. Gleiches gilt<br />

für Gruppen. Die in der Symbolleiste<br />

verfügbaren Einträge variieren je nach<br />

in der Baumstruktur links gewählten<br />

Eintrag. Allerdings kann der Admin jede<br />

gewünschte beziehungsweise häufig<br />

benötigte Ansicht mit der gleichnamigen<br />

Schaltfläche als Favorit speichern.<br />

Der Benutzerdialog erscheint dann<br />

in einem Unterdialog in einem neuen<br />

Browser-Fenster, der wieder Tab-basiert<br />

ist (Abbildung 7).<br />

Tine 2.0 im Alltag<br />

Sponsor Metaways und das Tine-<br />

Entwickler-Team betonen, dass Tine<br />

durch den Einsatz von reichlich AJAX-<br />

Technologie so konzipiert ist, dass<br />

es sich wie eine native Applikation<br />

anfühlt. Das ist vielleicht etwas übertrieben<br />

und im Web-2.0-Zeitalter auch<br />

keine Besonderheit, schaut man sich<br />

Abbildung 6: Das Hauptmenü erschließt den Zugang<br />

zu den anderen installierten Modulen.<br />

Abbildung 7: Die Benutzerverwaltung im Admin-<br />

Modul.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


50<br />

<strong>Groupware</strong><br />

Tine<br />

im Hintergrund, sodass der in den<br />

meisten Web-Anwendungen obligatorische<br />

Klick auf den Refresh-Button des<br />

Browsers entfällt. Ferner lassen sich<br />

etwa Kontakte oder Termine mit nur einem<br />

Klick anlegen. Außerdem können<br />

Nutzer zum Beispiel wie bei anderen<br />

Programmen mit [CTRL+F] ins Suchfeld<br />

springen. Weiter ist es mit Tine komfortabel<br />

möglich, nahezu beliebige Daten<br />

miteinander zu verknüpfen, was eine<br />

leistungsfähige Suche ermöglicht. Tine<br />

kann über sämtliche Anwendungen suchen.<br />

So ist es beispielsweise kein Problem,<br />

alle Kontakte aus dem Adressbuch<br />

zu filtern, die mit einem offenen<br />

Lead im CRM-Modul verknüpft sind.<br />

Abbildung 8: Das komfortable Verschieben von Terminen via Drag&Drop.<br />

an, was die Konkurrenz in dieser Hinsicht<br />

zu bieten hat (Stichwort HTML5).<br />

Trotzdem entspricht das Look&Feel der<br />

Oberfläche in der Tat eher einer nativen<br />

Anwendung als einer herkömmlichen<br />

Web-Applikation.<br />

Das gilt übrigens nicht für die Module<br />

»Setup« und »Admin«, in denen<br />

es keine Kontextmenüs und keine<br />

Drag&Drop-Funktionalität gibt, was<br />

sich aber verschmerzen lässt. So aktualisiert<br />

Tine beispielsweise die Ansichten<br />

zahlreicher Komponenten automatisch<br />

Abbildung 9: Das differenzierte Konfigurieren von Wiederholungen und Terminserien.<br />

Kalender<br />

Termine lassen sich in Tine wahlweise<br />

via Doppelklick oder Kontextmenü mit<br />

nur einem Klick sehr elegant anlegen,<br />

löschen und bearbeiten sowie ebenso<br />

elegant via Drag&Drop kopieren. Gleiches<br />

klappt auch per Kontextmenü.<br />

Selbstverständlich funktioniert das<br />

Bearbeiten auch per Doppelklick,<br />

wobei Tine beim Kopieren via Kontextmenü<br />

gleich den Termin-Editor<br />

öffnet. Das Verlängern oder Verkürzen<br />

eines Termins funktioniert ebenfalls<br />

via Drag&Drop. Darüber hinaus stehen<br />

für das Hinzufügen, Bearbeiten und<br />

Löschen auch die gleichnamigen Buttons<br />

in der Symbolleiste zur Verfügung<br />

(Abbildung 8).<br />

Im Reiter »Wiederholungen« lassen sich<br />

sehr komfortabel Terminserien einrichten.<br />

Ferner lässt sich jedem Termin der<br />

Status »nicht blockierend«, »vorläufig«<br />

und/​oder »privat« zuweisen. Neben<br />

einer Beschreibung kann der Nutzer<br />

jeden Termin zusätzlich mit einer Notiz<br />

oder mit selbst definierbaren Tags verknüpfen<br />

(Abbildung 9).<br />

Ferner lässt sich die Editor-Ansicht zwischen<br />

»Organisator« und »Teilnehmer«<br />

umschalten und mit »Gespeichert in«<br />

kann der Nutzer flexibel entscheiden,<br />

in welchem Kalender der Termin neben<br />

dem voreingestellten persönlichen<br />

Kalender gespeichert wird, etwa dem<br />

»Gemeinsamen Kalender« oder in den<br />

Kalendern anderer Benutzer. Zudem<br />

führt Tine zu jedem Termin im gleichnamigen<br />

Reiter eine »Historie«, die sich<br />

auch komfortabel durchsuchen und<br />

filtern lässt (Abbildung 10).<br />

Die Historie vermerkt sogar, ob ein Teilnehmer<br />

einen Termin akzeptiert oder<br />

abgelehnt hat. Die Kalenderansicht<br />

insgesamt ist dank farbiger Tags sehr<br />

übersichtlich. Teilnehmer können Termine<br />

mit »Meine Antwort setzen« zusagen,<br />

absagen oder vorläufig zusagen,<br />

wobei sich auch als vorläufig markierte<br />

Termine farblich kennzeichnen lassen.<br />

Die Verknüpfung mit dem Adressbuch<br />

ist durchgängig und transparent. Klickt<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


52<br />

<strong>Groupware</strong><br />

Tine<br />

Kann Tine in der vom Nutzer gerade gewählten<br />

Ansicht im Kalender vermerkte<br />

Termine nicht anzeigen, weist das<br />

Programm darauf hin. Legt der Nutzer<br />

einen Termin in der Vergangenheit an<br />

oder verlängert einen vergangenen<br />

Termin via Drag&Drop, klappt sofort ein<br />

Dialog auf, in dem Tine fragt, was mit<br />

dem Termin geschehen soll und bietet<br />

an, diesen zu aktualisieren (Abbildung<br />

12).<br />

Die Kalenderfunktion reagiert zudem<br />

mit Popups zutreffend auf Terminüberschneidungen<br />

oder beschäftigte Teilnehmer<br />

(Abbildung 13).<br />

Löscht der Nutzer einen Termin aus<br />

einer Terminserie, bietet Tine ebenfalls<br />

in einem Popup das Konfigurieren von<br />

Ausnahmen an (Abbildung 14).<br />

Die in der aktuellen Version sehr komfortable<br />

und schnelle Kalenderfunktion<br />

sowie die hervorragende Integration<br />

mit dem Adressbuch und dem E-Mail-<br />

Modul ist auf die Redis-Unterstützung<br />

zurückzuführen, die erst in der Version<br />

Kristina vervollständigt wurde. Von der<br />

kompakten und schnellen In-Memory-<br />

Datenbank Redis profitiert in erster<br />

Linie die Kalenderfunktion. Die arbeitet<br />

dank der auf Redis basierenden optimierten<br />

Queue-Verwaltung viel effizienter,<br />

weil sie zum Beispiel den zugehörigen<br />

E-Mail-Versand asynchron abarbeitet.<br />

Damit ist zum Beispiel das sofortige<br />

Eintragen von Terminänderungen in<br />

den Kalender möglich – noch während<br />

sich der Queue-Manager um das Versenden<br />

von Nachrichten kümmert. Die<br />

gute Integration von Adressbuch und<br />

E-Mail-Funktion ist unter anderem auch<br />

beim Erstellen von Massen-Mailings<br />

nützlich.<br />

Abbildung 10: Tine führt im Reiter Historie penibel Buch.<br />

der Nutzer für einen neuen Teilnehmer<br />

auf den kleinen Abwärtspfeil zum Auffalten<br />

des Adressbuchs, klappt sofort<br />

der Adressbuchdialog zum Durchsuchen<br />

auf. Gleiches gilt beim Hinzufügen<br />

eines »Organisators« für die Liste der<br />

registrierten Tine-Nutzer (Abbildung<br />

11).<br />

In der Seitenleiste links lassen sich Termine<br />

auf die Schnelle nach »Favoriten«<br />

wie »Ich bin der Organisator« »Erwarte<br />

Antwort« und »Abgelehnt« filtern. Außerdem<br />

zeigt Tine hier etwaige Teilnehmer<br />

an.<br />

Selbstverständlich gibt es auch eine<br />

Alarmfunktion. Ferner lassen sich<br />

Einladungen zu Terminen unmittelbar<br />

im E-Mail-Programm bestätigen oder<br />

absagen, ohne dass der Teilnehmer<br />

den betreffenden Termin erst selbst im<br />

Kalender heraussuchen muss. Außerdem<br />

kann der Anwender auf Wunsch<br />

immer bestimmte Kalender anzeigen<br />

lassen, unabhängig davon, welche Filter<br />

gerade aktiviert sind. Darüber hinaus<br />

können Nutzer jederzeit Listen und<br />

Kalender ausdrucken. Bei den Kalender-Layouts<br />

gibt es wie gewohnt eine<br />

Tages-, Wochen- und Monats-Ansicht.<br />

E-Mail<br />

Ist das E-Mail-Modul nicht installiert,<br />

taucht es zunächst auch nicht im<br />

Admin-Modul auf. Nicht installierte<br />

Module lassen sich nachträglich nur<br />

im Setup-Programm »http://Server/<br />

setup.php« installieren, an dem man<br />

sich nicht mit dem Admin-, sondern<br />

dem eingangs erwähnten Setup-<br />

Account anmeldet. Startet der Admin<br />

oder für E-Mail berechtigte Nutzer den<br />

E-Mail-Client zum ersten Mail, muss er<br />

zunächst mit der Schaltfläche »Konto<br />

hinzufügen« ein neues E-Mail-Konto<br />

anlegen. Den E-Mail-Client haben wir<br />

angesichts der Tatsache, dass sich Nutzer<br />

nur ungern von ihrem gewohnten<br />

Client trennen, nur oberflächlich angeschaut,<br />

auch wenn für den Tine-Mailer<br />

die gute Integration mit dem Rest des<br />

Programms spricht.<br />

Der Funktionsumfang geht in Ordnung,<br />

ist aber im Vergleich zu Thunderbird<br />

oder Outlook nicht überragend. So<br />

Abbildung 13: Ist ein Teilnehmer beschäftigt,<br />

weist Tine via Popup darauf hin.<br />

Abbildung 11: Die Verknüpfung zwischen<br />

Kalender und Adressbuch.<br />

Abbildung 12: Mit Popups macht Tine auf<br />

Unstimmigkeiten aufmerksam und bietet<br />

einen Workaround an.<br />

Abbildung 14: Das komfortable Reagieren<br />

auf Lösch-Ausnahmen.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


<strong>Groupware</strong><br />

Tine<br />

53<br />

kann der Nutzer etwa beim Senden einer<br />

E-Mail eine Lesebestätigung anfordern,<br />

wobei der Empfänger, sofern er<br />

ebenfalls den Tine-E-Mail-Client nutzt,<br />

die Bestätigung explizit erlauben muss<br />

(Abbildung 15).<br />

Tine legt automatisch einen Papierkorb<br />

an, wenn der Nutzer eine E-Mail löscht.<br />

Außerdem lassen sich mit Sieve Filterregeln<br />

festlegen, die direkt auf dem<br />

Mailserver ausgeführt werden (Abbildung<br />

16).<br />

Darüber hinaus können Tine-Anwender<br />

im E-Mail-Client das automatische<br />

Versenden von Abwesenheits-Mails<br />

konfigurieren. Die Funktion dazu findet<br />

sich wie diejenige zum Erstellen von Filterregeln<br />

im Kontextmenü des betreffenden<br />

E-Mail-Kontos (Abbildung 17).<br />

Beantwortet der Anwender eine Mail,<br />

die außer an ihn selbst an andere Empfänger<br />

adressiert ist, mit »Allen antworten«,<br />

streicht der Tine-E-Mail-Client<br />

automatisch die eigene E-Mail-Adresse<br />

aus der Empfängerliste.<br />

Clients und Schnittstellen<br />

Dass die Entwickler mit der Fokussierung<br />

auf die webbasierte Oberfläche<br />

und dem gut integrierten, eigenen<br />

E-Mail-Client einen nicht vorhandenen<br />

Outlook-<strong>Groupware</strong>-Connector rechtfertigen,<br />

ist – vorsichtig ausgedrückt<br />

– sehr selbstbewusst. Schließlich geht<br />

es bei der Outlook-Unterstützung nicht<br />

um zusätzliche Funktionen, sondern<br />

um die Weiterverwendbarkeit des<br />

gerade im Unternehmen beliebtesten<br />

<strong>Groupware</strong>-Clients. In puncto<br />

Exchange-Unterstützung verweisen die<br />

Entwickler allerdings auf den Support<br />

durch Metaways. Immerhin sieht es im<br />

Bereich der sonstigen von Tine unterstützen<br />

Clients und Schnittstellen sehr<br />

gut aus. Tine unterstützt alle Outlook-<br />

Versionen einschließlich MS Outlook<br />

2013 als E-Mail-Client und auch die<br />

Kalenderanwendung von Mac OS X<br />

Mountain Lion. Bereits seit Milan können<br />

Tine-Nutzer, die trotzdem einen<br />

nativen Client verwenden, via CalDAV<br />

und CardDAV auf ihre Daten zugreifen.<br />

Insofern unterstützt Tine auch Thunderbird,<br />

Apple iCal und alle iOS-Geräte.<br />

Dank WebDAV-Support funktionieren<br />

auch sämtliche WebDAV-Clients,<br />

Abbildung 15: Der E-Mail-Editor von Tine.<br />

einschließlich KDE und ab Tine 2.0<br />

Collin auch OwnCloud-Clients. Zudem<br />

können Tine-Anwender auch VCards<br />

importieren.<br />

ActiveSync<br />

Besonders hervorzuheben ist die gute<br />

ActiveSync-Unterstützung von Tine 2.0.<br />

Für Kenner und Nutzer einer Vorgängerversion<br />

von Tine ist zudem erwähnenswert,<br />

dass der ActiveSync-Support<br />

mit Kristina dank einer Verbesserung<br />

der Synchronisationslogik deutlich<br />

schneller geworden ist und auf den<br />

Smartphones weniger CPU-Leistung<br />

und Speicher benötigt. Ferner bietet<br />

die neue, erweiterte ActiveSync-Oberfläche<br />

die Möglichkeit, Sicherheitsrichtlinien<br />

anzulegen. So können Unternehmen<br />

beispielsweise verbindlich<br />

vorschreiben, dass Nutzer auf Mobilgeräten<br />

Passwörter verwenden müssen<br />

oder Daten auf verlorengegangenen<br />

Smartphones per Remote-Zugriff<br />

löschen. Neben der guten ActiveSync-<br />

Implementierung verfügt Tine auch<br />

über diverse Import-Skript-Schnittstellen,<br />

die das Importieren von Daten<br />

aus anderen Anwendungen einfacher<br />

machen. Admins können auf Basis der<br />

Schnittstellen Import-Programme in<br />

nahezu beliebigen Sprachen schreiben.<br />

Speziell die Importfunktion für e<strong>Groupware</strong><br />

erstreckt sich sogar auf die Berechtigungen<br />

aller Benutzer, Termine,<br />

Kontakte und Kategorien.<br />

Abbildung 16: Via Sieve lassen sich Filterregeln auf<br />

dem Server definieren.<br />

Tine aus Admin-Sicht<br />

Tine-Administratoren können zudem<br />

Berechtigungen für Ressourcen<br />

vergeben und damit regeln, welche<br />

Benutzer welche Ressourcen nutzen<br />

können. Außerdem implementiert Tine<br />

auf Administrationsebene eine eigene<br />

Ordnerverwaltung. Ferner führt Tine<br />

2.0 ein Protokoll sämtlicher Änderungen,<br />

die von Benutzern an den Daten<br />

vorgenommen wurden. So hat der<br />

Administrator jederzeit die Möglich-<br />

Abbildung 17: Tine-Nutzer können auch<br />

eine Abwesenheitsbenachrichtigung<br />

konfigurieren.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


54<br />

<strong>Groupware</strong><br />

Tine<br />

Abbildung 18: Die filterbaren Zugriffs-Logs im Admin-Modul.<br />

n Info<br />

keit, Änderungen wieder rückgängig<br />

zu machen. Er kann sogar Änderungen<br />

eines Benutzers in einem bestimmten<br />

Zeitraum einschränken. Darüber hinaus<br />

gibt es im Admin-Modul ein filterbares<br />

Zugriffs-Log (Abbildung 18).<br />

Fazit<br />

Wir haben in Anbetracht des Heftschwerpunktes<br />

sämtliche Module, die<br />

über reine <strong>Groupware</strong>-Funktionen hinausgehen,<br />

ausgeblendet. Allein mit den<br />

aus dem Modul zur Personalverwaltung<br />

bezogenen Informationen könnten<br />

kleine Firmen theoretisch problemlos<br />

ihre Gehaltsabrechnung füttern.<br />

Ebenfalls für Firmen interessant ist das<br />

Snom-Webserver-Backend, das zum<br />

Beispiel Telefonate aus Tine heraus<br />

ermöglicht.<br />

Dem erklärten Ziel der Tine-Entwickler,<br />

<strong>Groupware</strong>-, CRM- und ERP- unter einer<br />

gemeinsamen, plattformunabhängigen<br />

Oberfläche zu vereinen, ist Tine 2.0<br />

Collin recht nahe. Allgemein ist Tine<br />

eine relativ einfach zu installierende<br />

<strong>Groupware</strong>, die ohne Berücksichtigung<br />

von Altlasten auf moderne Webtechnik<br />

setzt und sich daher im Browser weitgehend<br />

wie eine native Anwendung<br />

anfühlt. Der Aufwand beim Installieren<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/31081<br />

des Community-Version bewegt sich<br />

im Rahmen des Üblichen und ist sogar<br />

geringer, als beim Installieren der freien<br />

Versionen von Open-Xchange oder<br />

Zarafa.<br />

In puncto Geschwindigkeit ist kaum<br />

ein Unterschied zu einer nativen Anwendung<br />

zu spüren. Nicht nur der bestehenden<br />

Möglichkeiten der Synchronisierung<br />

mit mobilen Geräten wegen<br />

ist die Software auch für Unternehmen<br />

mit Außendienstmitarbeitern interessant.<br />

Diese können mit praktisch allen<br />

aktuellen Smartphones jederzeit auf<br />

Termine, Kontakte, E-Mails und Aufgaben<br />

zugreifen. Diverse Clients und Synchronisationsmöglichkeiten<br />

bietet zwar<br />

auch die Konkurrenz, bei Tine sind aber<br />

sämtliche Funktionen ohne zusätzliche<br />

Module oder Programmteile, die bei<br />

anderen kostenpflichtig lizenziert werden<br />

müssten, nutzbar.<br />

Dank der stetigen Weiterentwicklung<br />

wächst auch die Community. Auch<br />

im Bereich zahlender Kunden kann<br />

Sponsor Metaways auf prominente<br />

Referenzen wie etwa das Deutsche<br />

Museum und das Ecologic Institute<br />

Berlin [12] verweisen. Dass sich die<br />

Tine-Entwickler eine ganze Menge<br />

Gedanken gemacht haben, ist allenthalben<br />

sicht- und spürbar. Nicht nur,<br />

dass man mit aufwendigen Tests eine<br />

Code-Qualität sicherstellt, die den<br />

produktiven Einsatz in Unternehmen<br />

erlaubt, Tine hat auch in puncto Usability<br />

einiges zu bieten. Das gilt nicht nur<br />

für die erwähnte AJAX-Unterstützung<br />

mit Drag&Drop-Funktionen und Kontextmenüs,<br />

die Tine das Feeling eine<br />

nativen Anwendung verleihen, sondern<br />

auch für die Art und Weise, wie Funktionen<br />

implementiert sind und wie die<br />

Benutzerlogik gestaltet ist. Hier waren<br />

Entwickler am Werk, die die Interessen<br />

und Bedürfnisse ihrer Nutzer kennen.<br />

Fairerweise muss man aber auch<br />

einräumen, dass die Tine-Entwickler<br />

angefangen mit ihren ersten Design-<br />

Studien im Jahr 2007 die Möglichkeit<br />

hatten, den gesamten Code unter Einbeziehung<br />

neuester Webtechnologien<br />

neu zu entwerfen und dennoch von den<br />

Erfahrungen zu profitieren.<br />

Open-Xchange und Zarafa schleppen<br />

zumindest auf Code-Seite über<br />

die Jahre auch Altlasten mit. Open-<br />

Xchange hat zum Beispiel in den letzten<br />

Jahren zuerst sein Backend modularisiert<br />

und erst mit der OX-App-Suite<br />

im vergangenen Jahr ein zeitgemäßes<br />

HMTL5-Frontend nachgeschoben.<br />

Zarafa bot und bietet sein klassisches<br />

AJAX-Frontend »Webaccess« und das<br />

modernere HTML5-Frontend »WebApp«<br />

parallel an.<br />

Tine 2.0 war übrigens im Jahr 2008<br />

Finalist im »SourceForge Community<br />

Choice Awards« in der Kategorie<br />

»bestes neues Projekt« und im Jahr<br />

2009 Finalist bei der »Les Trophées du<br />

Libre« in der Kategorie »Professional«.<br />

Doch wo viel Licht ist, ist auch Schatten.<br />

Wo etwa Sponsor und Entwickler<br />

von Tine neue Kunden akquirieren wollen,<br />

ist ihr Problem. Der Markt scheint<br />

mit Exchange, Domino/​Notes, Zimbra,<br />

Scalix, OX, Zarafa & Co auf den ersten<br />

Blick gut gesättigt. Allerdings haben<br />

gerade kleine Unternehmen oft noch<br />

keine <strong>Groupware</strong>-Lösung im Einsatz,<br />

sehen Studien zufolge aber in der<br />

Benutzbarkeit gemeinsamer Kalender<br />

immer noch ein erstrebenswertes Ziel.<br />

Metaways muss also entweder Kunden<br />

finden, die noch keine <strong>Groupware</strong><br />

einsetzen oder Exchange/​Outlook-<br />

Nutzer zum Umstieg bewegen. Durch<br />

Micro-softs Aufgabe seines Small<br />

Business Servers bieten sich da sogar<br />

Chancen. Leider ist bei Tine in Bezug<br />

auf die Exchange-Migration oder die<br />

Zusammenarbeit mit Outlook und/​<br />

oder Exchange keine Strategie erkennbar.<br />

(jcb) n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


56<br />

Know-how<br />

Git-Annex<br />

Dmitri Stalnuhhin, 123RF<br />

Datenverwaltung mit Git-Annex<br />

Git wird groß<br />

Git-Annex ist eine überaus nützliche Erweiterung von Git. In puncto Synchronisation und Datenverwaltung<br />

wartet es mit innovativen Konzepten auf. Datei-Inhalte brauchen nicht mehr auf jedem System vorhanden<br />

zu sein, Git-Annex holt sie bei Bedarf von anderen Repositories. Georg Schönberger<br />

Git-Annex [1] erscheint auf den ersten<br />

Blick paradox. Es verwaltet Dateien in<br />

einem Git-Repository, ohne die Datei-<br />

Inhalte selbst ins Repository einzuspielen.<br />

Dennoch ist es möglich, neue<br />

Dateien und Änderungen an Dateien zu<br />

verfolgen und im Git-Stil zu pflegen. Da<br />

sich die Inhalte nie direkt im Repository<br />

befinden, bleiben Probleme mit großen<br />

Dateien dort aus. Joey Hess, der<br />

Entwickler von Git-Annex, führt zwei<br />

typische Anwendungsfälle an:<br />

1. Der Archivar besitzt verschiedene<br />

Offline-Geräte, über die er seine Daten<br />

verteilt. Am Client-System verwaltet er<br />

seine Dateien mit Git-Annex, ohne dass<br />

dort alle Daten vorliegen. Git-Annex<br />

protokolliert, an welchem Ort sich welche<br />

Daten befinden und der Archivar<br />

holt sie nötigenfalls auf sein Client-<br />

System.<br />

2. Der Nomade ist viel unterwegs und<br />

wählt als Daten-Repositories einen<br />

Online-Server und einen USB-Stick. Bei<br />

Bedarf lädt er Daten vom Server auf<br />

den USB-Stick herunter oder synchronisiert<br />

sie direkt aufs Client-System, je<br />

nachdem wo Speicherplatz verfügbar<br />

ist. Benötigt der besagte Nomade<br />

Daten nicht mehr, „droppt“ er sie, auf<br />

dem Online-Server bleibt aber alles<br />

vorhanden.<br />

Die Beispiele vom Archivar und vom<br />

Nomaden vermitteln einen ersten<br />

Eindruck, was Git-Annex ermöglicht.<br />

Offline-Archive und Synchronisation<br />

bilden jedoch nur einen kleinen Teil der<br />

möglichen Einsatzzwecke. Komplexere<br />

Setups zwischen mehreren Systemen,<br />

Servern oder Festplatten sind ebenfalls<br />

machbar.<br />

Der Git-Annex-Entwickler beschreibt<br />

auch, was Git-Annex nicht ist: Ohne<br />

den Einsatz zusätzlicher Tools ist es<br />

kein Backup-System, auch wenn es<br />

eine Rolle in einem effizienten Archivierungs-<br />

oder Sicherheitssystem spielen<br />

kann.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Know-how<br />

Git-Annex<br />

57<br />

Installation<br />

Die Git-Annex-Installation bringt keine<br />

Schwierigkeiten mit sich. Die gängigsten<br />

Distributionen wie Debian, Ubuntu<br />

und Fedora stellen fertige Pakete zur<br />

Verfügung. Diese hinken der aktuellen<br />

Entwicklungsversion allerdings häufig<br />

hinterher. Debian und Ubuntu 13.04<br />

stellen über ihre Repositories Git-Annex<br />

in Version 3.2 bereit, die aktuelle Version<br />

4.2 ist erst seit Ubuntu-Version<br />

13.10 an Bord.<br />

Wer distributionsunabhängig die<br />

jeweils aktuelle Version verwenden<br />

möchte, findet für Linux ein vorkompiliertes<br />

Tar-Archiv unter [2]. Für die<br />

Installation reicht es, den entpackten<br />

Ordner »git‐annex‐linux« zum Pfad<br />

hinzuzufügen. Listing 1 führt alle erforderlichen<br />

Schritte für die Installation<br />

von Git-Annex auf. Für eine endgültige<br />

Installation pflegt man diese permanent<br />

ein, etwa über einen PATH-Eintrag<br />

in der Bash-Konfiguration.<br />

Interne Struktur<br />

Git-Annex verwaltet Datei-Bäume, ohne<br />

dabei die Datei-Inhalte selbst ins Repository<br />

einzuspeisen. Ein Key-Value-<br />

Verfahren unter Zuhilfenahme symbolischer<br />

Links realisiert die Trennung<br />

von Dateinamen und ‐inhalten. Wird<br />

eine Datei zum Repository hinzugefügt,<br />

erstellt eine Hash-Funktion einen Key<br />

aus Datei-Inhalt und Metadaten. Der<br />

Dateiname zeigt dann über einen symbolischen<br />

Link auf diesen Key.<br />

Der Datei-Inhalt – genannt Value – wird<br />

der Datei von nun an über den Key<br />

zugeordnet. Die Form der Key-Value-<br />

Dateiverwaltung per symbolischem<br />

Link im sogenannten indirekten Modus<br />

demonstriert Listing 2. Bevor die Datei-<br />

Inhalte synchronisiert wurden, zeigt<br />

der Link ins Leere. Die Datei- und Ordnerstruktur<br />

ist dennoch vorhanden und<br />

veränderbar – das heißt, Dateinamen<br />

werden unabhängig von ihrem Inhalt<br />

verändert.<br />

Einen Nachteil bringt dieses Vorgehen<br />

im indirekten Modus mit sich: Datei-<br />

Inhalte lassen sich nicht direkt bearbeiten.<br />

Zum Öffnen und Bearbeiten einer<br />

Datei wird das Kommando »git‐annex<br />

unlock« verwendet. Es löst den symbolischen<br />

Link auf und stellt die Datei di-<br />

Abbildung 1: Die Synchronisation zweier Git-Annex-Repositories via SSH.<br />

rekt zur Verfügung. Der darauf folgende<br />

Befehl »git commit« konvertiert sie<br />

automatisch wieder in einen Git-Annex-<br />

Link. Auf den ersten Blick wirkt diese<br />

Prozedur umständlich, sie schützt aber<br />

vor dem irrtümlichen Löschen einer<br />

Datei.<br />

Der direkte Modus bietet zwar die komfortable<br />

Möglichkeit, Dateien direkt<br />

zu bearbeiten, aber die Git-Annex-<br />

Sicherheitsfunktionen fallen dann weg.<br />

Deshalb starten Git-Annex-Repositories<br />

normalerweise im indirekten Modus.<br />

n Listing 1: Installation der Linux-Binaries<br />

Ausnahmen bilden Repositories unter<br />

Windows, auf allen FAT-Dateisystemen<br />

und jene, die über die Weboberfläche<br />

mit dem Git-Annex-Assistant erzeugt<br />

werden (Abbildung 2). Außerdem<br />

schaltet man mit den Kommandos<br />

»git‐annex indirect« und »git‐annex direct«<br />

manuell vom einen Modus in den<br />

anderen.<br />

Erste Schritte<br />

Ein Repository mit Git-Annex zu erstellen<br />

ist einfach:<br />

01 $ wget 'http://downloads.kitenet.net/git‐annex/linux/current/git‐annex‐standalone‐amd64.tar.gz'<br />

02 $ tar xzf git‐annex‐standalone‐amd64.tar.gz<br />

03 $ PATH="$PATH:$HOME/git‐annex.linux"<br />

04 $ git‐annex version<br />

05 git‐annex version: 4.20131003‐gbe0b734<br />

06 build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP Feeds Quvi TDFA<br />

07 key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SHA256 SHA1 SHA512 SHA224 SHA384 WORM<br />

URL<br />

08 remote types: git gcrypt S3 bup directory rsync web webdav glacier hook<br />

n Listing 2: Git-Annex im indirekten Modus<br />

01 $ ls ‐l<br />

02 total 8<br />

03 lrwxrwxrwx 1 gschoenb gschoenb 198 Oct 9 12:30 debhelper‐slides.pdf ‐> .git/annex/objects/32/64/<br />

SHA256E‐[...].pdf<br />

n Listing 3: Neue Datei im Repository<br />

01 $ cp ~/Downloads/debhelper‐slides.pdf .<br />

02 $ git‐annex add .<br />

03 add debhelper‐slides.pdf (checksum...) ok<br />

04 (Recording state in git...)<br />

05 $ git commit ‐a ‐m "Added slides"<br />

06 [master (root‐commit) 761a810] Added slides<br />

07 1 file changed, 1 insertion(+)<br />

08 create mode 120000 debhelper‐slides.pdf<br />

09 $ ls ‐la<br />

10 [...]<br />

11 debhelper‐slides.pdf ‐> .git/annex/<br />

objects/32/64/SHA256E‐[...].pdf<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


58<br />

Know-how<br />

Git-Annex<br />

Abbildung 2: Die Konfiguration eines Repository auf<br />

einer USB-Festplatte mit dem Git-Annex-Assistant.<br />

n Info<br />

n Autor<br />

$ git init<br />

Initialized empty Git repository in<br />

/home/alice/example/.git/<br />

$ git‐annex init "Alice"<br />

init Alice ok<br />

(Recording state in git...)<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30768<br />

Georg Schönberger arbeitet als Technology Specialist<br />

bei der Thomas-Krenn.AG und ist Autor des<br />

Thomas-Krenn-Wikis. Seine Arbeitsschwerpunkte<br />

reichen von Informationssicherheit über Monitoring-<br />

Plugins bis hin zu Performance-Tests.<br />

Der Befehl »git‐annex add« versioniert<br />

eine neue Datei, dadurch verwandelt<br />

sie sich in einen symbolischen Link<br />

(siehe Listing 3).<br />

Wie beschrieben befinden sich die<br />

Datei-Inhalte selbst nicht im Git-Annex-<br />

Repository. Ansonsten unterscheidet<br />

sich dieses nicht von anderen Git-<br />

Repositories. Es kann ebenfalls auf<br />

anderen Systemen geklont werden,<br />

ebenso kommen bei Bedarf Remote-<br />

Repositories hinzu.<br />

Das lokale Repository ist somit nur ein<br />

Anfang bei einer Vielzahl möglicher<br />

komplexer Konfigurationen. Abbildung<br />

1 skizziert ein Setup für die Synchronisation<br />

zweier Repositories über eine<br />

SSH-Verbindung. Diese direkte Verbindung<br />

eröffnet für die beiden Beispielbenutzer<br />

Alice und Bob die folgenden<br />

Möglichkeiten:<br />

Alice fügt in ihrem Repository Dateien<br />

mit Git-Annex hinzu. Mit »git‐annex<br />

sync« synchronisiert sie es mit Bob.<br />

Dieser erhält dabei im ersten Schritt<br />

statt der Datei nur einen unvollständigen<br />

symbolischen Link. Möchte er auch<br />

die dazugehörigen Datei-Inhalte haben,<br />

holt er sie mit »git‐annex get« aus Alices<br />

Repository.<br />

Alice kopiert mit »git‐annex copy« Dateien<br />

inklusive Daten zu Bob. Ruft dieser<br />

nun »git‐annex sync« auf, findet er<br />

gleich die vollständige Datei vor.<br />

Git-Annex stellt beim Austausch der<br />

Daten sicher, dass jede Datei immer<br />

mindestens einmal vorhanden ist. Solange<br />

eine der Parteien die Inhalte einer<br />

Datei besitzt, kann die andere Seite<br />

sie „droppen“, also die Daten „fallen<br />

lassen“ und nur den Dateinamen beziehungsweise<br />

den symbolischen Link<br />

behalten. Die Konfiguration der minimalen<br />

Gesamtzahl notwendiger Kopien<br />

lässt sich auch erhöhen; im Beispiel<br />

würde Git-Annex dann sicherstellen,<br />

dass die Datei sich sowohl in Alices als<br />

auch in Bobs Repository befindet.<br />

Der Assistent<br />

Git-Annex lässt sich zwar vollständig<br />

über die Kommandozeile konfigurieren,<br />

doch für die einfachere Benutzung<br />

bietet es auch eine Weboberfläche<br />

an. Sie ermöglicht die Konfiguration<br />

mehrerer Repositories inklusive automatischer<br />

Synchronisation in wenigen<br />

Schritten. Abbildung 2 zeigt das<br />

Konfigurationsmenü eines Repository<br />

auf einer externen USB-Festplatte. Es<br />

fungiert im nachfolgenden Beispiel<br />

als Datenarchiv – Dateien im Ordner<br />

»archive« werden automatisch auf die<br />

externe Platte synchronisiert. Dazu<br />

wird das Repository der USB-Platte der<br />

Gruppe »small archive« zugeordnet.<br />

Neben »small archive« definiert Git-<br />

Annex neun weitere Gruppen. Sie<br />

legen fest, welche Daten bevorzugt<br />

im Repository bleiben und welche in<br />

die anderen Repositories umziehen.<br />

Diese Entscheidungen trifft Git-Annex<br />

aufgrund von Regeln, die den Gruppen<br />

zugeordnet sind. Im Falle von »small<br />

archive« werden alle Datei-Inhalte des<br />

Ordners »archive« lokal „gedroppt“ und<br />

ins USB-Archiv überspielt. Der Assistant<br />

läuft als Hintergrunddienst und übernimmt<br />

die automatische Synchronisation.<br />

Das folgende Beispiel verschiebt<br />

die Datei »debian‐packaging‐turorial.<br />

pdf« ins Archiv; ein symbolischer Link<br />

bleibt im lokalen System bestehen, die<br />

Datei-Inhalte befinden sich auf der externen<br />

USB-Festplatte:<br />

$ git‐annex whereis .<br />

whereis debian‐packaging‐tutorial.<br />

pdf (1 copy)<br />

11ac0193‐a14b‐41f8‐942f‐fecf30ee7ed4<br />

‐‐ here (Alice)<br />

ok<br />

$ mv debian‐packaging‐tutorial.pdfU<br />

archive/<br />

$ git‐annex whereis .<br />

whereis archive/<br />

debian‐packaging‐tutorial.pdf (1 copy)<br />

be012dc6‐5548‐4135‐89c7‐5fb31b9d4f9f<br />

‐‐ lexar (USB Archiv)<br />

ok<br />

Der Git-Annex-Assistant kopiert auch<br />

den Datei-Inhalt, wenn der Benutzer<br />

eine Datei wieder aus dem Archiv<br />

herausnimmt. Dadurch entsteht eine<br />

transparente Synchronisation zwischen<br />

lokalem Repository und dem Archiv auf<br />

der Festplatte.<br />

Remote spezial<br />

Eine weiteres Unterscheidungsmerkmal<br />

von Git-Annex sind die speziellen<br />

Remote-Repositories. Sie lassen sich<br />

wie andere Git-Annex-Repositories erstellen,<br />

allerdings anschließend nicht<br />

mit Git verwenden, denn sie bauen auf<br />

verschiedene Protokolle wie Rsync,<br />

Webdav und XMPP auf, verwandeln<br />

Amazon S3 in ein Git-Annex-Repository,<br />

und lassen sich mittels Libgcrypt [3]<br />

verschlüsseln.<br />

Ob Archivar oder Nomade: Git-Annex<br />

verwendet Git-Repositories effektiv.<br />

Es synchronisiert große Dateien, ohne<br />

Server übermäßig zu belasten. Die<br />

detailreichen Konfigurationsmöglichkeiten<br />

erlauben eine sinnvolle Verwendung<br />

des Speicherplatzes und das Tool<br />

fungiert mit wenigen Handgriffen sogar<br />

als Teil einer Backup-Strategie. (csc) n<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Maxim Kazmin, 123RF<br />

Speicherfehler unter Linux erkennen und beobachten<br />

Kippende Bits<br />

Weil Hauptspeicher wichtig ist, benutzen viele Systeme Fehlerkorrekturmechanismen (ECC). Sie erkennen<br />

und berichtigen Einzelbitfehler. Linux kann Informationen darüber sammeln und ausgeben. Jeff Layton<br />

ECC (Error Correcting Code) ist eine<br />

Schlüsseltechnologie, um in einem<br />

Rechnersystem Daten zu schützen<br />

und Fehler zu erkennen. Dabei kann<br />

Standard-ECC-Memory, wie es heute in<br />

vielen Systemen verbaut wird, Einzelbitfehler<br />

erkennen und beheben.<br />

Doppelbitfehler werden zwar ebenfalls<br />

erkannt, können aber nicht ausgeglichen<br />

werden.<br />

Das Umkippen eines einzelnen Bits in<br />

einem Byte kann dramatische Folgen<br />

haben. Wenn beispielsweise in einem<br />

Byte mit dem Wert 156 (10011100) das<br />

zweite Bit kippen würde (11011100),<br />

ergäbe sich ein Wert von 220. ECC kann<br />

diesen Fall entdecken und berichtigen,<br />

sodass der Anwender nichts davon<br />

merkt. Würden allerdings zwei Bits<br />

ihren Wert ändern, würde das zwar<br />

bemerkt, das Ergebnis wäre dann aber<br />

eine Machine Check Exception, die in<br />

einen Systemabsturz mündet.<br />

Solche umkippenden Bits werden von<br />

elektrischen oder magnetischen Störungen<br />

verursacht. Einem Wikipedia-<br />

Artikel [1] und einer Studie über Einzelbitfehler<br />

im RAM [2] zufolge, gehen die<br />

meisten kippenden Bits auf das Konto<br />

der kosmischen Hintergrundstrahlung<br />

(hauptsächlich Neutronen). Die zwischen<br />

2007 und 2009 ermittelten Fehlerraten<br />

schwanken zwischen 1010 und<br />

1017 Fehler pro Bitstunde (Unterschied:<br />

sieben Größenordnungen!). Der niedrigere<br />

Wert entspricht einem Fehler pro<br />

Gigabit pro Stunde. Der höhere Wert<br />

ungefähr einem Fehler pro Gigabit in<br />

1000 Jahren.<br />

Eine Studie von Google (siehe Kasten<br />

„Korrigierbare Fehler“) deutet darauf<br />

hin, dass Fehler im realen Leben viel<br />

häufiger sind. Diese Fehlerraten zu beobachten<br />

ist wichtig, denn sie sind ein<br />

genereller Indikator für Speicherfehler.<br />

n Korrigierbare Fehler<br />

Google hat einmal reale Speicherfehler untersucht [3]. Sie fanden heraus,<br />

dass ein Drittel der beteiligten Rechner und mehr als acht Prozent<br />

der DIMMs während eines Jahres korrigierbare Speicherfehler aufwiesen.<br />

Das entsprach einer Beobachtung von Google, derzufolge es zu 25<br />

000 bis 75 000 korrigierbaren Fehlern pro einer Milliarde Gerätestunden<br />

pro Megabit kommt (oder 250 bis 750 Fehlern pro Gigabit pro Jahr). Das<br />

ist viel mehr als die zuvor als hoch angenommene Fehlerrate von einem<br />

Fehler pro Gigabit pro Jahr.<br />

Die Studie erbrachte noch weitere interessante Ergebnisse:<br />

n Hat ein DIMM korrigierbare Fehler, ist es 13 bis 228 mal wahrscheinlicher,<br />

dass im selben Monat weitere Fehler auftreten.<br />

n In 70 bis 80 Prozent der Fälle gehen einem nicht korrigierbaren<br />

Fehler korrigierbare Fehler voraus. Korrigierbare Fehler erhöhen die<br />

Wahrscheinlichkeit für nicht korrigierbare Fehler um einen Faktor 9<br />

bis 400.<br />

n Das Auftreten korrigierbarer Fehler nimmt mit dem Alter zu, aber<br />

nicht korrigierbare Fehler nehmen mit dem Alter ab. Korrigierbare<br />

Fehler nehmen ab einem Alter von 10 bis 18 Monaten zu.<br />

n DIMMs neuerer Generationen verhalten sich weder besser noch<br />

schlechter als ihre Vorgänger.<br />

n Die Temperatur hat einen verblüffend geringen Effekt.<br />

n Die Speicherfehlerraten korrelieren mit der Auslastung.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


60<br />

Know-how<br />

Speicherfehler<br />

n Listing 1: Memory-Controller<br />

login2$ ls ‐s /sys/devices/system/edac/mc/mc0<br />

total 0<br />

0 ce_count 0 csrow1 0 csrow4 0 csrow7 0 reset_counters 0 size_mb<br />

0 ce_noinfo_count 0 csrow2 0 csrow5 0 device 0 sdram_scrub_rate 0 ue_count<br />

0 csrow0 0 csrow3 0 csrow6 0 mc_name 0 seconds_since_reset 0 ue_noinfo_count<br />

Linux und Speicherfehler<br />

Der Autor dieses Beitrags arbeitete<br />

vor Jahren an einem Projekt namens<br />

Bluesmoke mit, das ein Kernel-Modul<br />

schaffen wollte, das Hardware-Fehler<br />

erkennen und melden sollte. Dabei<br />

ging es nicht allein um Speicherfehler,<br />

sondern um alle möglichen Fehler im<br />

Cache, beim DMA, bei der Temperaturregelung,<br />

auf dem Bus und so weiter.<br />

Der offizielle Name des Projekts war<br />

EDAC (Error Detection And Correction,<br />

siehe [5]).<br />

Viele Jahre lang schrieben Enwickler<br />

EDAC-Module für die verschiedensten<br />

Chipsätze. Das geschah zunächst außerhalb<br />

des Kernels, aber seit Kernel<br />

2.6.16 ist EDAC dort integriert. Seit<br />

2.6.18 erscheint EDAC auch im Sys-<br />

Filesystem unter »/sys/devices/system/<br />

edac«.<br />

Eine der besten Informationsquellen<br />

über EDAC ist das EDAC-Wiki [6]. Die<br />

Seite beschreibt den Einstieg und listet<br />

n Listing 2: Csrows und Channels<br />

01 Channel 0 Channel 1<br />

02 ==============================<br />

03 csrow0 | DIMM_A0 | DIMM_B0 |<br />

04 csrow1 | DIMM_A0 | DIMM_B0 |<br />

05 ==============================<br />

06 <br />

07 ==============================<br />

08 csrow2 | DIMM_A1 | DIMM_B1 |<br />

09 csrow3 | DIMM_A1 | DIMM_B1 |<br />

10 ==============================<br />

andere Ressourcen über EDAC (FAQs,<br />

Mailing-Listen und so weiter) auf. Hier<br />

soll es vor allem darum gehen, welche<br />

nützlichen Informtionen EDAC liefern<br />

kann. Für die Beispiele kommt ein<br />

Dell PowerEdge R720 zum Einsatz, der<br />

über zwei Prozessoren und 128 GByte<br />

Hauptspeicher verfügt. Während der<br />

Tests lief er unter CentOS 6.2.<br />

Zunächst muss man sich vergewissern,<br />

dass die EDAC-Module geladen sind:<br />

login2$ lsmod | grep edac<br />

sb_edac 18104 0<br />

edac_core<br />

53053 1 sb_edac<br />

Sind die Module geladen, kann man als<br />

Nächstes das Verzeichnis »/sys/devices/<br />

edac« untersuchen:<br />

login2$ ls ‐s /sys/devicesU<br />

/system/edac<br />

insgesamt 0<br />

0 mc<br />

Wenn hier nur das device »mc« auftaucht,<br />

überwacht EDAC nur den<br />

Memory-Controller. Schaut man tiefer<br />

in die Verzeichnisstruktur<br />

login2$ ls ‐s /sys/devices/system/edac/U<br />

mc<br />

insgesamt 0<br />

0 mc0 0 mc1<br />

kommen die beiden Komponenten<br />

»mc0« und »mc1« zum Vorschein. Listing<br />

1 zeigt, was man sieht, wenn man<br />

in das Verzeichnis »mc0« schaut.<br />

Die beiden Memory-Controller dieses<br />

Systems verwalten eine Reihe von<br />

DIMMs, die in Zeilen (Chip Select, »csrow«)<br />

und einer Kanaltabelle (»chx«)<br />

organisiert sind (mehr Details dazu in<br />

der EDAC-Dokumenttion [7]). Wie Listing<br />

2 zeigt, kann es mehrere Csrows<br />

und mehrere Channels geben. Ihre<br />

Anzahl hängt vom Motherboard und<br />

der Art der Speicher-Controller und<br />

DIMMs ab.<br />

Ein Beispiel<br />

Für dieses Beispiel hat jeder Memory-<br />

Controller acht Csrows und eine Kanaltabelle.<br />

Eine Vorstellung vom Layout<br />

vermittelt Listing 3.<br />

Im Beispiel verfügt jeder Kanal (0 und<br />

1) über vier Speicherkanäle (0 bis 3)<br />

und zwei DIMMs pro Kanal (0 und 1). In<br />

jedem »csrow«-Unterverzeichnis finden<br />

sich dann eine Reihe weiterer Control-<br />

und Attribut-Files mit folgender<br />

Bedeutung:<br />

n ce_count: Die Gesamtzahl korrigierbarer<br />

Fehler (correctable errors, ce)<br />

in dieser Csrow.<br />

n ch0_ce_count: Die Gesamtzahl korrigierbarer<br />

Fehler auf diesem DIMM<br />

in Kanal 0.<br />

n ch0_dimm_label: Label des DIMM.<br />

Das kann sehr nützlich sein, um<br />

nach einer Kernel Panic die Ursache<br />

des nicht korrigierbaren Fehlers<br />

zu finden. Die DIMM-Labels sollten<br />

nach dem Booten zugewiesen werden<br />

und Informationen enthalten,<br />

die zu dem physischen Slot führen.<br />

n dev_type: Attribut-File, das Informationen<br />

über den Typ des DIMM<br />

enthält. Der Wert ist typischerweise<br />

x1, x2, x4 oder x8.<br />

n Listing 3: Memory-Controller-Layout<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label<br />

CPU_SrcID#0_Channel#0_DIMM#0<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow1/ch0_dimm_label<br />

CPU_SrcID#0_Channel#0_DIMM#1<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow2/ch0_dimm_label<br />

CPU_SrcID#0_Channel#1_DIMM#0<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow3/ch0_dimm_label<br />

CPU_SrcID#0_Channel#1_DIMM#1<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow4/ch0_dimm_label<br />

CPU_SrcID#0_Channel#2_DIMM#0<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow5/ch0_dimm_label<br />

CPU_SrcID#0_Channel#2_DIMM#1<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow6/ch0_dimm_label<br />

CPU_SrcID#0_Channel#3_DIMM#0<br />

login2$ more /sys/devices/system/edac/mc/mc0/csrow7/ch0_dimm_label<br />

CPU_SrcID#0_Channel#3_DIMM#1<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Know-how<br />

Speicherfehler<br />

61<br />

n edac_mode: Attribut-File, das den<br />

Typ der Fehlererkennung und ‐korrektur<br />

enthält.<br />

n mem_type: Enthält den Speichertyp<br />

einer Csrow.<br />

n size_mb: Attribut-File, das die Größe<br />

des Memorys in einer Csrow enthält.<br />

n ue_cont: Enthält die Gesamtzahl<br />

nicht korrigierbarer Fehler, die in<br />

einer Csrow aufgetreten sind.<br />

Einige Attribut-Files in »/sys/devices/<br />

system/edac/mc/mc0« können sehr<br />

nützlich sein. Sie beziehen sich auf den<br />

gesamten Controller:<br />

n ce_count: Die Gesamtzahl korrigierbarer<br />

Fehler dieses Controllers.<br />

n ce_noinfo_count: Die Gesamtzahl<br />

korrigierbarer Fehler, aber ohne<br />

Information, welchen DIMM-Slot sie<br />

betroffen haben.<br />

n mc_name: Der Typ des benutzten<br />

Memory-Controllers.<br />

n reset_counters: Ein nur beschreibbares<br />

Kontroll-File, das alle Fehler-<br />

Zähler dieses Memory-Controllers<br />

zurücksetzt. Das passiert, sobald<br />

man einen Wert in das File schreibt.<br />

n sdram_scrub_rate: Ein Attribut-File<br />

für die Speicherreinigung. Der enthaltene<br />

Wert repräsentiert eine Rate<br />

in Bytes pro Sekunde.<br />

n seconds_since_reset: Anzahl der<br />

Sekunden seit dem letzten Zähler-<br />

Reset.<br />

n size_mb: Menge des Speichers, den<br />

dieser Controller verwaltet.<br />

n ue_count und ue_noinfo_count:<br />

Wie oben, hier aber pro Controller.<br />

Die Werte des Beispielsystems zeigt<br />

Listings 4 und 5. Der letzte Reset liegt<br />

demnach 27 759 752 Sekunden oder<br />

ungefähr 321 Tage zurück. Der Speicher-Controller<br />

verwaltet 64 GByte und<br />

es gab weder korrigierbare noch nicht<br />

korrigierbare Fehler.<br />

Empfehlungen für den Admin<br />

Das EDAC-Modul hinterlegt im Sys-<br />

Filesystem eine große Menge an Daten<br />

über Speicherfehler. Auch wenn man<br />

erwartet, dass sich solche Fehler nicht<br />

oft ereignen, sollte man seine Rechner<br />

regelmäßig darauf überprüfen. Schon<br />

mit einem einfachen Skript (Listing 6)<br />

n Listing 4: mc0/​csrow0<br />

login2$ ls ‐s /sys/devices/system/edac/mc/mc0/csrow0<br />

total 0<br />

0 ce_count 0 ch0_dimm_label 0 edac_mode 0 size_mb<br />

0 ch0_ce_count 0 dev_type 0 mem_type 0 ue_count<br />

lassen sich die entsprechenden Files<br />

leicht auslesen. Es gibt auch bereits ein<br />

Nagios-Plugin [8] für diesen Zweck. Im<br />

High-Performance-Computing-Umfeld<br />

könnte man das Skript etwa in Ganglia<br />

integrieren [9].<br />

Findet man auf diese Weise korrigierbare<br />

Fehler, heißt das nicht, dass der<br />

DIMM schlecht ist. Allerdings sollte man<br />

ihn im Auge behalten, um reagieren zu<br />

können, wenn die Fehlerrate ansteigen<br />

sollte. (jcb) n<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/31284<br />

n Listing 5: Werte des Beispielsytems<br />

login2$ more /sys/devices/system/edac/mc/mc0/ce_count<br />

0<br />

login2$ more /sys/devices/system/edac/mc/mc0/ce_noinfo_count<br />

0<br />

login2$ more /sys/devices/system/edac/mc/mc0/mc_name<br />

Sandy Bridge Socket#0<br />

login2$ more /sys/devices/system/edac/mc/mc0/reset_counters<br />

/sys/devices/system/edac/mc/mc0/reset_counters: Permission denied<br />

login2$ more /sys/devices/system/edac/mc/mc0/sdram_scrub_rate<br />

login2$ more /sys/devices/system/edac/mc/mc0/seconds_since_reset<br />

27759752<br />

login2$ more /sys/devices/system/edac/mc/mc0/size_mb<br />

65536<br />

login2$ more /sys/devices/system/edac/mc/mc0/ue_count<br />

0<br />

login2$ more /sys/devices/system/edac/mc/mc0/ue_noinfo_count<br />

0<br />

n Listing 6: Angepasstes Nagios-Plugin<br />

01 #!/bin/bash<br />

02 #<br />

03 # Original script: https://bitbucket.org/darkfader/nagios/src/<br />

c9dbc15609d0/check_mk/edac/plugins/edac?at=default<br />

04 <br />

05 # The best stop for all things EDAC is http://buttersideup.com/<br />

edacwiki/ and the edac.txt in the kernel doc.<br />

06 <br />

07 # EDAC memory reporting<br />

08 if [ ‐d /sys/devices/system/edac/mc ]; then<br />

09 # Iterate all memory controllers<br />

10 for mc in /sys/devices/system/edac/mc/* ; do<br />

11 ue_total_count=0<br />

12 ce_total_count=0<br />

13 for csrow in $mc/csrow* ; do<br />

14 ue_count=`more $csrow/ue_count`<br />

15 ce_count=`more $csrow/ce_count`<br />

16 if [ "$ue_count" ‐gt 1 ]; then<br />

17 ue_total_count=ue_total_count+$ue_count;<br />

18 fi<br />

19 if [ "$ce_count" ‐gt 1 ]; then<br />

20 ce_total_count=ce_total_count+$ce_count;<br />

21 fi<br />

22 done<br />

23 echo " Uncorrectable error count is $ue_total_count on<br />

memory controller $mc "<br />

24 echo " Correctable error count is $ce_total_count on<br />

memory controller $mc "<br />

25 done<br />

26 fi<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


62<br />

Know-how<br />

Windows Server 2012 R2<br />

Elena Elisseeva, 123RF<br />

Neues in Windows Server 2012 R2<br />

Herbstputz<br />

Letzten Monat ist die neueste Version des Serverprodukts von Microsoft erschienen. Dieser Artikel gibt<br />

einen Übersicht über die Neuerungen in Windows Server 2012 R2. Thomas Joos<br />

Mit Windows Server 2012 R2 bringt<br />

Microsoft den Nachfolger von Windows<br />

Server 2012 auf den Weg. Die neue Version<br />

bietet zahlreiche Neuerungen, vor<br />

allem im Bereich der Virtualisierung.<br />

Windows Server 2012 R2 ist die Serverversion,<br />

die optimal mit Windows 8.1<br />

zusammenarbeitet. Im Gegensatz zum<br />

Client-Update ist der Server allerdings<br />

nicht kostenlos verfügbar. Ausnahme<br />

ist die kostenlose Virtualisierungslösung<br />

Hyper-V Server 2012 R2. Diese bietet<br />

im Bereich der Virtualisierung alle<br />

Funktionen, die auch die Vollversion<br />

von Windows Server 2012 R2 besitzt.<br />

Wie bereits Windows Server 2012 ist<br />

auch die neue Version in den beiden<br />

Editionen Standard und Datacenter zu<br />

haben. Auch in Windows Server 2012<br />

R2 gibt es keine Enterprise-Edition<br />

mehr. Die Editionen Standard und Datacenter<br />

unterscheiden sich nicht mehr<br />

im Funktionsumfang, sondern nur noch<br />

bei der Lizenzierung. Cluster lassen sich<br />

zum Beispiel seit Windows Server 2012<br />

auch mit der Standard-Edition aufbauen.<br />

Das Lizenzmodell hat Microsoft<br />

im Vergleich zu Windows Server 2012<br />

nicht angepasst, die Preise dagegen<br />

schon. So ist die Datacenter-Edition<br />

etwa ein Drittel teurer als der Windows<br />

Server 2012. Bei der Standard-Edition<br />

bleibt allerdings der Preis gleich. Microsoft<br />

rechtfertigt die Preiserhöhung vor<br />

allem durch die zahlreichen neuen Features<br />

im Bereich der Virtualisierung.<br />

Neues Lizenzmodell<br />

Neu in Windows Server 2012 R2 ist die<br />

Möglichkeit, auf Basis von Enterprise<br />

Agreements bestimmte Lizenzen zu erwerben,<br />

die im Betrieb zusammen mit<br />

Windows Azure Kosten sparen sollen.<br />

Lizenzen von Windows Server 2012 R2<br />

sind direkt an die physische Hardware<br />

gebunden. Jede Lizenz deckt weiterhin<br />

zwei physische Prozessoren ab. Kunden<br />

dürfen mit der Standard-Edition<br />

außerdem bis zu zwei virtuelle Server<br />

auf dem lizenzierten Host betreiben.<br />

Beim Einsatz der Datacenter-Edition<br />

dürfen Anwender so viele virtuelle<br />

Server auf dem Host betreiben, wie die<br />

Hardware hergibt. Welche Edition man<br />

am besten einsetzt, muss man einfach<br />

ausrechnen. Als Faustregel lohnt sich<br />

die Anschaffung der Datacenter-Edition<br />

für alle, die auf einem Server mit zwei<br />

Prozessoren mehr als 14 virtuelle Server<br />

betreiben. Die Datacenter-Edition<br />

kostet 6155 US-Dollar, die Standard-<br />

Edition 882 US-Dollar.<br />

Weiterhin gibt es die Editionen Essentials<br />

und Foundation. Windows Server<br />

2012 R2 Essentials erlaubt die Anbindung<br />

von bis zu 25 Benutzern ohne zu-<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Know-how<br />

Windows Server 2012 R2<br />

63<br />

Standard und Datacenter<br />

als Serverrolle<br />

zur Verfügung (Absätzliche<br />

Client-Zugriff-Lizenzen (CALs).<br />

Beim Einsatz von Windows Server 2012<br />

R2 Foundation darf auf dem Server nur<br />

ein Prozessor verbaut sein. Auch hier<br />

sind bei bis zu 15 Benutzern keine CALs<br />

notwendig. Der Preis für die Essentials-<br />

Edition wurde auf etwa 501 Dollar<br />

erhöht. Foundation ist direkt an die<br />

Hardware gebunden, da diese Edition<br />

nur als OEM-Version verfügbar ist.<br />

Für die Editionen Standard und Datacenter<br />

benötigen Anwender weiterhin<br />

CALs. Auch in Windows Server 2012<br />

R2 lassen sich diese benutzerbasiert<br />

oder pro Gerät erwerben, können aber<br />

weiterhin aufgesplittet werden. Es ist<br />

aber erlaubt, auch mit den CALs von<br />

Windows Server 2012 auf R2-Server<br />

zuzugreifen.<br />

Dieses Entgegenkommen gilt auch für<br />

die erweiterten Serverdienste wie die<br />

Rechteverwaltung und die Remote-<br />

Desktop-Dienste. Das heißt, Unternehmen,<br />

die bereits Windows Server 2012<br />

umfassend lizenziert und im Einsatz haben,<br />

müssen nur neue Serverlizenzen<br />

kaufen und können ihre Server direkt<br />

auf Windows Server 2012 R2 aktualisieren.<br />

Cloud und Virtualisierung<br />

überall<br />

Windows Server 2012 R2 soll noch<br />

Cloud-orientierter sein als Vorgängerversionen.<br />

Neben der Möglichkeit, Server<br />

über Windows Azure Online Backup<br />

in der Cloud zu sichern, arbeitet Hyper-<br />

V in Windows Server 2012 R2 eng mit<br />

Windows Azure Virtual Machines zusammen.<br />

In System Center Virtual Machine<br />

Manager 2012 R2 lassen sich die<br />

beiden Systeme parallel anbinden und<br />

virtuelle Server zwischen Netzwerk und<br />

Cloud verschieben. Außerdem arbeitet<br />

Hyper-V eng mit dem neuen Windows-<br />

Azure-Wiederherstellungs-Manager<br />

zusammen. Dieser ermöglicht Cloudbasierte<br />

Replikation und Sicherungen<br />

von virtuellen Servern auf Basis von<br />

Hyper-V oder Windows Azure Virtual<br />

Machines.<br />

Dank Datendeduplizierung lassen sich<br />

bereits in Windows Server 2012 doppelte<br />

Dateien auf Dateiservern finden<br />

und eliminieren. Mit Windows Server<br />

2012 R2 ist das jetzt auch auf virtuellen<br />

Festplatten möglich.<br />

Das kann auf Hyper-V-<br />

Hosts mit vielen virtuellen<br />

Servern deutlich<br />

Platz einsparen.<br />

VHDX-Dateien können<br />

Anwender in Windows<br />

Server 2012 R2 jetzt<br />

auch als iSCSI-Ziel zur<br />

Verfügung stellen, Windows<br />

Server 2012 unterstützt<br />

in diesem Bereich<br />

nur VHD-Dateien<br />

mit maximal 2 TByte.<br />

Verwalten lassen sich<br />

diese Bereiche jetzt<br />

in der PowerShell 4.0,<br />

da einige zusätzliche<br />

Commandlets integriert<br />

wurden.<br />

Eine weitere Verbesserung von Dateiservern<br />

in Windows Server 2012 R2<br />

ist die effizientere Verwendung von<br />

SSD-Festplatten. Diese lassen sich<br />

zusammen mit anderen Festplatten in<br />

Speicherpools zusammenfassen, was<br />

die Gesamtleistung eines Dateiservers<br />

deutlich beschleunigen kann. Windows<br />

Server 2012 kann bereits Netzwerkkarten<br />

zu Teams zusammenfassen. In<br />

Windows Server 2012 R2 hat Microsoft<br />

diese Funktionen deutlich erweitert<br />

und vereinfacht. Auch im Bereich Hyper-V<br />

lassen sich Netzwerkteams jetzt<br />

leichter und stabiler betreiben.<br />

Essenziell<br />

Windows Server 2012 R2 Essentials<br />

lässt sich in der neuen Version virtualisieren<br />

und so mit<br />

anderen Servern gemeinsam<br />

auf einem<br />

Virtualisierungshost<br />

betreiben. Außerdem<br />

stehen die Funktionen<br />

von Windows Server<br />

2012 R2 Essentials,<br />

zum Beispiel die Möglichkeit<br />

der Sicherung<br />

der Client-Rechner auf<br />

den Server oder der<br />

Remote-Webzugriff,<br />

auch in den Editionen<br />

Abbildung 1: Windows Server 2012 R2 Essentials lassen sich jetzt auch<br />

als Serverrolle für Niederlassungen einsetzen.<br />

bildung 1). Auf diesem Weg können<br />

Unternehmen Niederlassungen mit der<br />

Serverrolle bestücken. Beim Betrieb<br />

als Serverrolle kann der Server auch<br />

Mitgliedsserver sein und andere Domänencontroller<br />

nutzen. Als alleinstehender<br />

Server arbeitet Windows Server<br />

2012 R2 Essentials immer als Domänencontroller.<br />

Hyper-V in neuer Version<br />

Die neue Hyper-V-Version bietet alle<br />

Vorteile von Windows Server 2012 und<br />

erweitert diese noch. Zunächst lassen<br />

sich virtuelle Server in Windows Server<br />

2012 R2 auf drei Knoten replizieren,<br />

ohne einen Cluster zu betreiben – in<br />

Windows Server 2012 waren hier nur<br />

zwei Knoten möglich. Darüber hinaus<br />

kann Windows Server 2012 R2 den Da-<br />

Abbildung 2: Im erweiterten Sitzungsmodus sind virtuelle Server<br />

deutlich effizienter als mit Windows Server 2012 zu verwalten.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


64<br />

Know-how<br />

Windows Server 2012 R2<br />

Abbildung 3: Bei der Erstellung von VMs können Sie in Windows Server<br />

2012 R2 die Generation 2 aktivieren. Das kann virtuelle Server deutlich<br />

beschleunigen.<br />

tenverkehr bei der Live-Migration komprimieren.<br />

Dadurch beschleunigt sich<br />

die Übertragung von virtuellen Servern<br />

zwischen Cluster-Knoten deutlich.<br />

Außerdem nutzt die Live-Migration<br />

in Windows Server 2012 R2 in sehr<br />

schnellen Netzwerken »Remote Direct<br />

Memory Access« (RDMA). Diese Funktion<br />

kann sehr schnell die Inhalte des<br />

Arbeitsspeichers zwischen den Hosts<br />

verschieben. Die Technik beschleunigt<br />

die Live-Migration enorm. Hyper-V in<br />

Windows Server 2012 R2 unterstützt<br />

jetzt 4 TByte Arbeitsspeicher und bis<br />

zu 320 Prozessoren auf dem Host.<br />

Diese Grenze erreicht VMware erst mit<br />

der neuen Version 5.5 von vSphere. Die<br />

Verwaltung virtueller Server findet im<br />

Abbildung 4: Auch Windows Server 2012 R2 profitiert von den Verbesserungen<br />

der Oberfläche in Windows 8.1.<br />

Hyper-V-Manager über<br />

VM-Connect statt. In<br />

Windows Server 2012<br />

R2 arbeitet Hyper-V<br />

dazu mit dem RDP-<br />

Protokoll. Dieses müssen<br />

Sie nur einmal pro<br />

Hyper-V-Host aktivieren<br />

und können es auf<br />

allen angebundenen<br />

virtuellen Servern nutzen.<br />

Die Vorteile sind<br />

die höhere Auflösung,<br />

Drag-and-Drop zwischen<br />

Host und VM sowie die Möglichkeit,<br />

auch USB-Geräte in der Sitzung<br />

nutzen zu können. Natürlich lassen sich<br />

die erweiterten Sitzungen auch deaktivieren<br />

und an die eigenen Bedürfnisse<br />

anpassen (Abbildung 2).<br />

Virtuelle Festplatten auf Basis von<br />

VHDX-Dateien dürfen eine Größe von 64<br />

TByte erreichen. Im Gegensatz zu VMware<br />

vSphere 5.5 kann Windows Server<br />

2012 R2 diese Festplatten im laufenden<br />

Betrieb verbinden, abtrennen und<br />

die Größe der virtuellen Festplatten<br />

anpassen. Außerdem können Administratoren<br />

virtuelle Festplatten jetzt mehreren<br />

Servern auf einem Hyper-V-Host<br />

zuordnen (Shared VHDX). Für virtuelle<br />

Festplatten lassen sich jetzt auch Bandbreitenbegrenzungen<br />

vorgeben, ähnlich wie<br />

bei den erweiterten<br />

Features für virtuelle<br />

Switche. Das verhindert,<br />

dass ein virtueller<br />

Server eine virtuelle<br />

Festplatte zu stark auslastet.<br />

Hier lässt sich<br />

auch die Shared-VHDX-<br />

Funktion aktivieren.<br />

Ab Windows Server<br />

2012 R2 können Admins<br />

virtuelle Server<br />

im laufenden Betrieb<br />

exportieren und dabei<br />

auch die Snapshots<br />

berücksichtigen und<br />

mitnehmen. Ebenfalls<br />

neu ist die Generation-<br />

2-VM in Windows Server<br />

2012 R2 (Abbildung<br />

3). Diese nutzt keine<br />

emulierte Hardware<br />

mehr und beherrscht UEFI. Das beschleunigt<br />

virtuelle Server deutlich.<br />

Man kann bereits bei der Erstellung<br />

der VM auswählen, ob diese den<br />

Generation-2-Modus unterstützen soll.<br />

Diesen Modus unterstützen aber nur<br />

die Betriebssysteme Windows Server<br />

2012/​2012 R2 und Windows 8/​8.1. Allerdings<br />

bietet Microsoft auch für virtuelle<br />

Linux-Gäste Neuerungen. Diese laufen<br />

in Windows Server 2012 R2 deutlich<br />

schneller und unterstützen jetzt auch<br />

den dynamischen Arbeitsspeicher.<br />

Bereits mit Windows Server 2012<br />

hat Microsoft die Möglichkeiten der<br />

Netzwerk-Switche für Hyper-V deutlich<br />

erweitert und verbessert. Mit Hyper-V<br />

Network Virtualization (HNV) können<br />

Unternehmen einzelne virtuelle<br />

Netzwerke vom physischen Netzwerk<br />

trennen. Die virtuellen Server in diesen<br />

Netzwerken gehen davon aus, in<br />

einem echten physischen Netzwerk<br />

zu laufen. In Windows Server 2012 R2<br />

hat Microsoft diese Möglichkeit noch<br />

erweitert und HNV deutlich verbessert<br />

und beschleunigt. Wer sich noch nicht<br />

mit HNV auseinandergesetzt hat, findet<br />

im Microsoft Technet [1] umfassende<br />

Anleitungen dazu. Hyper-V Network<br />

Virtualization (HNV) unterstützt ab Windows<br />

Server 2012 R2 auch dynamische<br />

IP-Adressen.<br />

Windows 8.1<br />

Windows Server 2012 R2 und Windows<br />

8.1 arbeiten perfekt zusammen. Viele<br />

Richtlinieneinstellungen für Windows<br />

8.1, zum Beispiel die Möglichkeit, den<br />

Startbildschirm zu exportieren, zu<br />

importieren und Vorlagen zu erstellen,<br />

lassen sich nur mit Windows Server<br />

2012 R2 umsetzen. Über Gruppenrichtlinien<br />

können Administratoren<br />

die Veränderung des Startbildschirms<br />

anpassen (Abbildung 4). Wie Windows<br />

8.1 verfügt Windows Server 2012 R2<br />

jetzt ebenfalls wieder über einen Startknopf.<br />

Dieser öffnet zwar kein klassisches<br />

Startmenü, bietet aber über das<br />

Kontextmenü die Möglichkeit, Server<br />

zu verwalten und neu zu starten. Das<br />

erspart vor allem bei Remote-Desktop-<br />

Sitzungen einiges an Arbeit. Da Bitlocker<br />

in allen Editionen von Windows<br />

8.1 verfügbar ist, können Unternehmen<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Know-how<br />

Windows Server 2012 R2<br />

65<br />

diese Technik zentral über Gruppenrichtlinien<br />

steuern.<br />

Um Windows Server 2012 R2 mit Windows<br />

8.1 zu verwalten, bietet Microsoft<br />

die Remote-Server-Verwaltungstools<br />

(Remote Server Administration Tools,<br />

RSAT) zum Download an. Mit den Tools<br />

installieren Sie auf einer Arbeitsstation<br />

mit Windows 8.1 alle Verwaltungsprogramme,<br />

die zur Verwaltung von Windows<br />

Server 2012 R2 notwendig sind.<br />

Mit den Tools verwalten Sie auch die<br />

Serverdienste in Windows Server 2012.<br />

Verwalten lassen sich die neuen Server-<br />

Versionen auch mit System Center 2012<br />

R2, das Microsoft gleichzeitig mit Windows<br />

Server 2012 R2 veröffentlichen<br />

will.<br />

Windows Server 2012 R2 verfügt generell<br />

über die gleiche Oberfläche wie<br />

Windows 8.1, bootet aber automatisch<br />

in den Desktop. Die Startseite ist hier<br />

nur optional. Befindet man sich auf der<br />

Startseite, reicht es, den Begriff zu einem<br />

bestimmten Element (App, Datei,<br />

Einstellung und so weiter) einzutippen.<br />

Bereits während der Eingabe wird automatisch<br />

die Suchleiste aktiviert. Der<br />

eingetippte Text erscheint automatisch<br />

im Suchfeld. Hier gibt der Anwender<br />

den Suchbegriff ein; im linken Bereich<br />

der Startseite erscheint das Ergebnis.<br />

Wichtige Systemprogramme zeigt Windows<br />

Server 2012 R2 im sogenannten<br />

Schnellmenü in der linken unteren<br />

Bildschirmecke an, die man über die<br />

Tastenkombination [Windows]+[X] erreicht.<br />

Alternativ führt ein Klick mit der<br />

rechten Maustaste auf den Startknopf<br />

ans Ziel. Klickt man auf der Startseite<br />

mit der rechten Maustaste auf eine<br />

App-Kachel, lässt sie sich von der<br />

Startseite in die Alle-Apps-Ansicht verschieben.<br />

Umgekehrt kann man Apps<br />

über ihr Kontextmenü in der Alle-Apps-<br />

Ansicht oder auf dem Desktop an die<br />

Startseite anheften. Die App bleibt aber<br />

weiterhin auf dem Server verfügbar.<br />

Über ein separates Tool [2] können Anwender<br />

das Schnellmenü auch bearbeiten<br />

und Befehle hinzufügen, entfernen<br />

und gruppieren.<br />

Abbildung 5: Nutzen der neuen Einstellungsmöglichkeiten<br />

in Windows Server 2012 R2.<br />

Bildschirmecken und<br />

PowerShell<br />

Diverse Einstelloptionen sind in<br />

Windows Server 2012 R2 über das<br />

Kontextmenü der Taskleiste und die<br />

neue Registerkarte »Navigation« in<br />

den Eigenschaften zu finden. Wir listen<br />

nachfolgend alle Optionen auf, auch<br />

diejenigen, die in Windows 8.1 sinnvoll<br />

sind:<br />

n Bewegt man die Maus in die rechte<br />

obere Ecke, zeigt Windows die<br />

Charmsbar an. Sie lässt sich auch<br />

mit [Windows]+[C] anzeigen (Abbildung<br />

5).<br />

n Beim Klicken auf die obere linke<br />

Ecke zwischen den zuletzt verwendeten<br />

Apps wechseln – mit einem<br />

Klick links oben in die Ecke kann der<br />

Anwender zwischen den gestarteten<br />

Windows-Apps umschalten. An<br />

dieser Stelle hat man aber nicht die<br />

Möglichkeit, zwischen Anwendungen<br />

auf dem Desktop zu wechseln.<br />

Diese fasst Windows in der Desktop-<br />

App zusammen.<br />

n Beim Rechtsklick auf die untere<br />

linke Ecke oder beim Drücken von<br />

[Windows]+[X] »Eingabeaufforde-


66<br />

Know-how<br />

Windows Server 2012 R2<br />

Abbildung 6: Mit den Arbeitsordnern können Anwender Daten des Servers mit dem Notebook synchronisieren<br />

– ähnlich wie Offline-Dateien.<br />

rung« im Menü durch »Windows<br />

PowerShell« ersetzen – diese Option<br />

ersetzt die Eingabeaufforderung<br />

über das Kontextmenü des Startknopfes<br />

mit der Möglichkeit, die<br />

PowerShell zu starten.<br />

n Beim Anmelden anstelle der Startseite<br />

den Desktop anzeigen – mit<br />

dieser Option zeigen Windows 8.1<br />

und Windows Server 2012 R2 nach<br />

dem Start den Desktop an.<br />

n Desktop-Hintergrund auf der Startseite<br />

verwenden – ist diese Option<br />

aktiviert, zeigt die Startseite das<br />

gleiche Hintergrundbild an wie der<br />

Desktop. Dadurch entsteht der Eindruck,<br />

dass die Startseite durchsichtig<br />

ist. Dazu muss aber das Feature<br />

der Desktop-Darstellung in Windows<br />

Server 2012 R2 über den Server-<br />

Manager installiert sein.<br />

n Beim Drücken der Windows-Logo-<br />

Taste immer die Startseite in der<br />

Hauptanzeige starten – blendet die<br />

Startseite immer auf dem Hauptmonitor<br />

ein, wenn mehrere Monitore<br />

angeschlossen sind. Bewegt man<br />

den Mauszeiger in die linke untere<br />

Ecke des zweiten Bildschirms, öffnet<br />

sich auf diesem die Startseite.<br />

n Beim Aufrufen der Startseite automatisch<br />

die Ansicht »Alle Apps«<br />

anzeigen – zeigt nicht die Startseite<br />

an, sondern die Alle-Apps-Ansicht.<br />

Zusammen mit der Option »Desktop‐Apps<br />

in der Ansicht "Alle Apps"<br />

als Erstes auflisten, wenn nach Kategorie<br />

sortiert ist«, ergibt sich eine<br />

Ansicht ähnlich wie ein Startmenü.<br />

Nur ist dieses Menü über den kompletten<br />

Monitor verteilt.<br />

n Beim Suchen in der Ansicht »Alle<br />

Apps« überall suchen – diese Option<br />

ist nur aktiv, wenn Sie die Option<br />

»Beim Aufrufen der Startseite automatisch<br />

die Ansicht „Alle Apps“<br />

anzeigen« aktivieren.<br />

n Desktop-Apps in der Ansicht »Alle<br />

Apps« als Erstes auflisten, wenn<br />

nach Kategorie sortiert ist – zeigt bei<br />

der Sortierung nach Kategorie in der<br />

Alle-Apps-Ansicht Programme des<br />

Desktops zuerst an.<br />

n In Windows Server 2012 R2 können<br />

Anwender in der Alle-Apps-Ansicht,<br />

die man über das Kontextmenü<br />

der Startseite startet, die Anzeige<br />

kategorisieren lassen. Dazu dient<br />

der Pfeil in der oberen Spalte. Die<br />

Alle-Apps-Ansicht lässt sich auch<br />

über den neuen Pfeil erreichen, der<br />

sich auf der Startseite links unten<br />

befindet.<br />

In Windows 8.1 und Windows Server<br />

2012 R2 exportiert das Commandlet<br />

»export‐startlayout« der PowerShell<br />

das Aussehen und die Konfiguration<br />

der Startseite in eine Datei. Das Commandlet<br />

»import‐startlayout« importiert<br />

die Einstellungen. Man kann diese<br />

Funktion auch dazu nutzen, auf lokalen<br />

Rechnern das Aussehen der Startseite<br />

vorzugeben. Dazu passt man zunächst<br />

die Startseite an, exportiert sie als XML-<br />

Datei und hinterlegt sie bei den Anwendern<br />

als Standardseite. Die Verteilung<br />

ist auch über Gruppenrichtlinien mit<br />

Windows Server 2012 R2 möglich. Der<br />

Befehl »get‐help Commandlet« zeigt<br />

eine Hilfe zum neuen Commandlet an.<br />

Administratoren in Unternehmensnetzwerken<br />

können sogar Veränderungen<br />

an der Startseite untersagen. Dazu gibt<br />

es ebenfalls in den Richtlinien von Windows<br />

8.1 und Windows Server 2012 R2<br />

die Option Startseitenlayout. Diese finden<br />

sich über »gpedit.msc« im Bereich<br />

»Benutzerkonfiguration\Administrative<br />

Vorlagen\Startmenü und Taskleiste«.<br />

In diesem Bereich können Admins die<br />

vorher exportierte Layout-Datei hinterlegen.<br />

Das funktioniert auch für lokale<br />

Rechner und lokale Richtlinien.<br />

Wer zu viel an der Startseite geändert<br />

hat und mit dem Ergebnis nicht zufrieden<br />

ist, kann auf den Standard nach<br />

der Installation zurückgehen. Dazu genügt<br />

es, im Explorer die folgenden Dateien<br />

zu löschen: »%Local AppData%\<br />

Microsoft\Windows\appsFolder.<br />

itemdata‐ms« und »%LocalAppData%\<br />

Microsoft\Windows\appsFolder.itemdata‐ms.bak«.<br />

Es ist natürlich auch möglich,<br />

die Dateien zu verschieben oder<br />

umzubenennen. Das hat den Vorteil, sie<br />

später wieder aktivieren zu können.<br />

Arbeitsplatznetzwerke und<br />

Arbeitsordner in Windows 8.1<br />

Mit Windows 8.1 bietet Microsoft zahlreiche<br />

Neuerungen für professionelle<br />

Anwender. Microsoft will mit Windows<br />

8.1 vor allem den Bring-Your-Own-<br />

Device-Ansatz (BYOD) von Unternehmen<br />

unterstützen. Ohne dass ein<br />

Windows 8.1-PC oder Tablet Mitglied<br />

einer Domäne ist, kann der Computer<br />

im Netzwerk oder über das Internet auf<br />

Unternehmensressourcen zugreifen.<br />

Außerdem ist es möglich, dass Anwender<br />

Daten in einem bestimmten Verzeichnis<br />

auf dem Client speichern und<br />

dieser Ordner mit Servern synchronisiert<br />

wird. Der Vorteil dabei ist, dass der<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Know-how<br />

Windows Server 2012 R2<br />

67<br />

Inhalt der Arbeitsordner auf den Server<br />

gesichert und auf allen Rechnern des<br />

Anwenders zur Verfügung gestellt wird<br />

(Abbildung 6). Für jeden Benutzer kann<br />

Windows Server 2012 R2 einen Unterordner<br />

anlegen, in dem die Daten des<br />

Anwenders gespeichert werden und auf<br />

den nur der entsprechende Anwender<br />

Zugriff hat.<br />

Workplace Join geht in die gleiche<br />

Richtung und ermöglicht Anwendern<br />

auch ohne Domänenmitgliedschaft,<br />

auf Unternehmensressourcen zuzugreifen.<br />

Im Netzwerk muss dazu Windows<br />

Server 2012 R2 bereitgestellt sein. Das<br />

TechNet-Video auf [3] demonstriert die<br />

neuen Möglichkeiten der Workplace<br />

Folders.<br />

Administratoren können – ähnlich wie<br />

bei Exchange ActiveSync – Sicherheitsrichtlinien<br />

für Arbeitsplatznetzwerke<br />

und Arbeitsordner festlegen. Wenn sich<br />

ein Anwender zu einer Ressource mit<br />

seinem Gerät verbindet, muss er bestätigen,<br />

dass er diese Richtlinien einhält.<br />

So können Administratoren zum Beispiel<br />

festlegen, dass das Benutzerkonto<br />

auf dem zugreifenden Rechner besonders<br />

sicher sein muss.<br />

Viele Einstellungen für Windows 8.1,<br />

wie Arbeitsordner, Startseite und den<br />

App-Store, können Administratoren<br />

nur über Gruppenrichtlinien oder den<br />

Server-Manager vorgeben, wenn sie einen<br />

Server mit Windows Server 2012 R2<br />

einsetzen. Um Arbeitsordner für Windows<br />

8.1 bereitzustellen, müssen auf<br />

dem entsprechenden Dateiserver mit<br />

Windows Server 2012 R2 die Serverrolle<br />

»Datei‐/Speicherdienste\Datei‐ und<br />

iSCSI‐Dienste\Arbeitsordner« installiert<br />

sein. Die Arbeitsordner in Windows<br />

Server 2012 R2 lassen sich alternativ<br />

auch mit der PowerShell installieren.<br />

Dazu dient das Commandlet »Add‐WindowsFeature<br />

FS‐SyncShareService«.<br />

Wenn die Serverrolle installiert ist,<br />

steht im Server-Manager der Bereich<br />

»Datei‐ und Speicherdienste\Arbeitsordner«<br />

zur Verfügung. In diesem<br />

Fenster findet sich ein Assistent, der<br />

bei der Einrichtung der Arbeitsordner<br />

hilft. Mit ihm legen Administratoren<br />

die Verzeichnisse auf den Dateiservern<br />

fest, die Anwender über Arbeitsordner<br />

verwenden können. Es gibt auch<br />

die Möglichkeit, über den Assistenten<br />

bestimmten Benutzern und Gruppen<br />

den Zugriff zu gestatten. Unterhalb des<br />

Ordners auf dem Server legt Windows<br />

Server 2012 R2 automatisch Unterordner<br />

für die Benutzerkonten an. Auf die<br />

Unterordner haben nur die entsprechenden<br />

Anwender Zugriff. Nach der<br />

Einrichtung des Arbeitsordners muss<br />

der Administrator dann nur noch die<br />

entsprechenden Benutzerkonten in die<br />

Gruppe mit aufnehmen. Auch die Richtlinieneinstellungen<br />

lassen sich hier<br />

steuern. Ist der Ordner angelegt, wird<br />

er im Server-Manager angezeigt.<br />

Während der Einrichtung legt man<br />

fest, welche Ordner man auf dem lokalen<br />

Server über Arbeitsordner zur<br />

Verfügung stellt und welche Benutzer<br />

Zugriff auf die Arbeitsordner erhalten<br />

sollen. Damit der Zugriff stabil funktioniert,<br />

sollte man am besten Freigaben<br />

verwenden, auf die Anwender auch im<br />

internen Netzwerk über SMB zugreifen.<br />

Dann können Anwender nicht nur über<br />

die Arbeitsordner-Technologie in Windows<br />

8.1 auf den Inhalt des Ordners<br />

zugreifen, sondern auch mit einer normalen<br />

Freigabe. Alle freigegebenen Arbeitsordner<br />

sind im Server-Manager zu<br />

sehen, wo man über das Kontextmenü<br />

die Einstellungen bearbeiten und die<br />

Freigabe entfernen kann.<br />

Ohne SSL<br />

Standardmäßig erlauben Windows<br />

8.1 und Windows Server 2012 R2 den<br />

Zugriff auf Arbeitsordner nur über<br />

SSL. Das heißt, auf dem Client müssen<br />

Zertifikate und SSL angepasst und<br />

konfiguriert werden. Wer in Testumgebungen<br />

oder in Umgebungen, die ohne<br />

SSL-Zugriff funktionieren sollen, ohne<br />

SSL-Verbindungen mit Arbeitsordnern<br />

arbeiten möchte, muss auf den Clients<br />

einen Registry-Schlüssel setzen. Am<br />

besten geht das mit dem folgenden Befehl<br />

in der Befehlszeile:<br />

Reg add HKLM\SOFTWARE\Microsoft\WindowsU<br />

\CurrentVersion\WorkFolders /v AllowUnsecureU<br />

Connection /t REG_DWORD /d 1<br />

Mit einem weiteren Eintrag wird die<br />

Verbindung zum Server mit dem Arbeitsordner<br />

hergestellt:<br />

Reg add HKCU\Software\Microsoft\WindowsU<br />

\CurrentVersion\WorkFolders /v ServerUrl /tU<br />

REG_SZ /d http://Arbeitsordnerserver<br />

Um Zugriff auf den Arbeitsordner zu<br />

erhalten, startet man den Assistenten<br />

über »Systemsteuerung\System und<br />

Sicherheit\Arbeitsordner«. Das Programm<br />

erwartet den vollständigen<br />

Anmeldenamen des Anwenders, zum<br />

Beispiel »thomas.joos@contoso.int«.<br />

Man kann an dieser Stelle auch die<br />

E-Mail-Adresse verwenden, wenn man<br />

mit Exchange Server 2013 arbeitet. In<br />

diesem Fall muss der vollständige Anmeldename<br />

des Anwenders aber entsprechend<br />

angepasst werden.<br />

Nach der Anmeldung über den Anmeldenamen<br />

oder die E-Mail-Adresse<br />

verbindet der Server im Netzwerk den<br />

Anwender mit seinem Arbeitsordner.<br />

Wenn der PC nicht Mitglied der Domäne<br />

ist, erscheint noch ein Anmeldefenster.<br />

Hier muss der Anwender sich<br />

mit seinem Benutzernamen an der<br />

Domäne anmelden. Allerdings gilt das<br />

nur dann, wenn der Rechner noch kein<br />

Mitglied der Domäne ist. Wenn Sie die<br />

Arbeitsordner angepasst haben, bindet<br />

Windows diese im Explorer an. Alle Daten<br />

im Arbeitsordner synchronisiert der<br />

Client mit dem Server. Bindet man andere<br />

Rechner an den gleichen Arbeitsordner<br />

an, werden die Daten ebenfalls<br />

auf diesen Rechner synchronisiert. Das<br />

Kontextmenü eines Arbeitsordners im<br />

Explorer startet die Synchronisierung<br />

mit dem Server. (ofr) n<br />

n Info<br />

n Autor<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30866<br />

Thomas Joos ist freiberuflicher IT-Consultant und<br />

seit über 20 Jahren in der IT tätig. Neben seinen<br />

Projekten schreibt er praxisnahe Fachbücher und<br />

Fachartikel rund um Windows und andere Microsoft-<br />

Themen. Online trifft man ihn unter [http://​<br />

thomasjoos. spaces. live. com].<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


68<br />

Security<br />

Endian-Switchboard<br />

Remote-Zugriff mit dem Endian-Switchboard<br />

Sichere Fernsteuerung<br />

Die Fernwartung von technischen Systemen ist nicht nur bequem, sondern birgt auch Risiken. Dieser Artikel gibt<br />

einen Überblick über die Gefahren und stellt mit dem Endian-VPN-Switchboard ein System zum Aufbau einer effizienten<br />

Fernwartungsumgebung vor. Thomas Zeller<br />

Tatiana Popova , 123RF<br />

Die Steuerung und Fernwartung von<br />

Industrieanlagen wie Windparks, Kraftwerken<br />

oder Produktionsmaschinen<br />

über das Internet ist eine seit Jahren<br />

etablierte Praxis mit hohen Zuwachsraten.<br />

Das ist kein Wunder, denn so lassen<br />

sich Anlagen effizient und vor allem<br />

kostengünstig vom Hersteller warten.<br />

Doch spätestens seit des erfolgreichen<br />

Angriffs von „Stuxnet“ auf die Steuerungstechnik<br />

der iranischen Urananreicherungsanlage<br />

in Natanz sollten<br />

Verantwortliche stets ein wachsames<br />

Auge auf die Sicherheit haben.<br />

SCADA<br />

Für die Überwachung, Steuerung und<br />

Optimierung technischer Prozesse mit<br />

IT-Unterstützung hat sich der Begriff<br />

SCADA (Supervisory Control and Data<br />

Acquisition) inzwischen fest etabliert.<br />

Beschrieben wird damit in erster Linie<br />

ein Netzleitsystem für das Sammeln<br />

und Analysieren von Echtzeitdaten in<br />

Industrieanlagen. Egal ob beim Energieerzeuger,<br />

der Wasseraufbereitung,<br />

Smart Grid oder PKW-Produktion –<br />

praktisch kein Industriezweig kommt<br />

heute mehr ohne derartige Systeme<br />

aus.<br />

Neben ihrer Funktion als Datensammler<br />

bieten SCADA-Systeme in der<br />

Regel auch eine Fernwartungsschnittstelle.<br />

Sie erlaubt es Administratoren<br />

mit entsprechender Software, zum Beispiel<br />

Siemens STEP 7, über (IP-)Netzwerke<br />

auf Industriesteuerungen und<br />

Automatisierungssysteme wie<br />

etwa Simatic S7 zuzugreifen.<br />

Selbstverständlich müssen<br />

Zugriffe, die derart weitreichende<br />

Manipulationsmöglichkeiten<br />

gestatten, entsprechend<br />

abgesichert<br />

werden. Denn schließlich sind hier unter<br />

Umständen Gesundheit und Leben<br />

von Personen in Gefahr, beispielsweise<br />

wenn ein Industrieroboter eine mechanische<br />

Bewegung ausführt, solange<br />

sich ein Mensch im Gefahrenbereich<br />

aufhält. Dass es mit der Absicherung<br />

von Industriesteuerungen in der Praxis<br />

aber nicht sehr weit her ist, belegen<br />

zahlreiche Beispiele.<br />

So veröffentlichte beispielsweise das<br />

Research-Team (Project Basecamp) des<br />

auf SCADA-Sicherheit spezialisierten<br />

amerikanischen Beratungsunternehmens<br />

„Digital Bond“ im Rahmen des<br />

alljährlichen SCADA Security Scientific<br />

Symposium – kurz S4 – eine schier<br />

unüberschaubare Anzahl von Sicherheitslücken<br />

in verschiedenen Industriesteuerungen<br />

[1]. Korrespondierend<br />

zu den Sicherheitslücken in den Produkten<br />

so prominenter Hersteller wie<br />

General Electric, Schneider Electric und<br />

RA Allen-Bradley stellt Project Basecamp<br />

unter [2] auch gleich den Link<br />

zu passenden Metasploit-Modulen zur<br />

Verfügung, mit denen sich diese Lücken<br />

ausnutzen lassen.<br />

Der menschliche Faktor<br />

Doch nicht immer sind Sicherheitslücken<br />

in den Produkten das Problem,<br />

sondern die Menschen, die diese Produkte<br />

einsetzen. So lassen sich mit einer<br />

entsprechend formulierten Google-<br />

Suchanfrage („Google Hacking“) unschwer<br />

Systeme im Internet aufspüren,<br />

für deren Nutzung es überhaupt keiner<br />

Authentifizierung bedarf. Populärstes<br />

Beispiel sind IP-Kameras. Deren Videostreams<br />

kann man häufig ohne Authentifizierung<br />

aus dem Internet abrufen,<br />

manche lassen sich sogar vollständig<br />

steuern. Dazu sucht man mit dem »inurl«-<br />

oder »intitle«-Parameter in Google<br />

www.admin-magazin.de


Security<br />

Endian-Switchboard<br />

69<br />

einfach nach typischen Begriffen,<br />

die die Web-Interfaces der Kameras<br />

verwenden, zum Beispiel »Live View«,<br />

»Axis« oder »video server« (Abbildung<br />

1). Hier ein paar Beispiele:<br />

allintitle:"Network Camera NetworkU<br />

Camera"<br />

inurl:/view.shtml<br />

intitle:axis intitle:"video server"<br />

intitle:liveapplet<br />

Kritisch oder gar gefährlich kann es<br />

werden, wenn derartige Nachlässigkeiten<br />

in Kombination mit Sicherheitslücken<br />

in der Steuerung von Anlagen<br />

– nicht nur im Industrieumfeld – auftreten.<br />

So wurde im Frühjahr dieses Jahres<br />

beispielsweise bekannt, dass zahlreiche<br />

Heizungsanlagen vom Typ eco-<br />

Power 1.0 des Herstellers Vaillant über<br />

das Internet dem Missbrauch offen<br />

stehen. Diese Heizungsanlagen können<br />

vom Besitzer über eine iPad-App<br />

oder über ein Web-Interface gesteuert<br />

werden, zum Beispiel um die Temperatureinstellungen<br />

zu ändern oder einzelne<br />

Komponenten beziehungsweise<br />

die ganze Anlage abzuschalten.<br />

Über eine Sicherheitslücke im Web-<br />

Interface ließen sich die Passwörter im<br />

Klartext auslesen. Da sich die Anlagen<br />

an einem DynDNS-Dienst des Herstellers<br />

anmelden, konnten Anlagen durch<br />

Ausprobieren im Netz einfach ermittelt<br />

werden [3][4]. Die Kollegen von Heise-<br />

Security entdeckten gar Steuerungen<br />

größerer Einrichtungen und Organisationen,<br />

darunter eine Brauerei, ein<br />

Fußballstadion und eine Justizvollzugsanstalt<br />

[5].<br />

Kritische Infrastrukturen<br />

Unter dem Begriff Kritische Infrastruktur<br />

(KRITIS) [6] fasst das Bundesinnenminsterium<br />

Institutionen und Einrichtungen<br />

mit wichtiger Bedeutung für das<br />

staatliche Gemeinwesen zusammen.<br />

Dazu gehören zum Beispiel Versorgungsunternehmen<br />

aus den Bereichen<br />

Energie, Ernährung, Gesundheit und<br />

des Transportwesens, aber auch Banken,<br />

Versicherungen und natürlich<br />

staatliche Stellen wie Regierung, Justiz<br />

und Katastrophenschutz. Die Politik<br />

diskutiert bereits seit Längerem eine<br />

Abbildung 1: Bereits über eine Google-Suche lassen sich viele Geräte aufspüren, die mit dem Internet<br />

verbunden sind, zum Beispiel Überwachungskameras.<br />

Meldepflicht für IT-Angriffe auf kritische<br />

Infrastrukturen und hat im Frühjahr<br />

2013 den Entwurf eines Gesetzes zur<br />

Erhöhung der Sicherheit informationstechnischer<br />

Systeme vorgelegt [7].<br />

Schützenhilfe erhält der Innenminister<br />

dabei von der EU-Kommission, die<br />

mit der Cyber Security Directive ebenfalls<br />

einen entsprechenden Vorschlag<br />

erarbeitet hat [8]. Derlei Aktivitäten<br />

dokumentieren deutlich, wie hoch die<br />

Gefahr für elektronische Angriffe auf<br />

kritische Infrastrukturen von der Regierung<br />

eingeschätzt wird.<br />

Wie real die Gefahr für Industrieanlagen<br />

im Netz tatsächlich ist, bestätigt auch<br />

der Versuch des amerikanischen Sicherheitsexperten<br />

Kyle Wilhoit. Dieser<br />

hat in seinem Keller eine absichtlich<br />

unsicher konfigurierte Wasserpumpenstation<br />

aufgebaut, die sich nach außen<br />

hin als Kontrollsystem einer kleinstädtischen<br />

Wasserversorgung darstellte.<br />

Das Ergebnis: Schon nach wenigen<br />

Tagen lockte der Honeypot zahlreiche<br />

SCADA-Hacker an. Die vollständige Geschichte<br />

kann man unter [9] nachlesen.<br />

Auf dem Silbertablett<br />

Die Diskussion wird noch zusätzlich<br />

befeuert, da sich mit dem Internet verbundene<br />

Systeme heute ganz besonders<br />

leicht aufspüren lassen. So wertet<br />

die Suchmaschine Shodan [10] die<br />

Banner von Web-, FTP-, SSH-, Telnetund<br />

SNMP-Servern aus. Auf diese Weise<br />

kann man dann ganz gezielt nach verwundbaren<br />

Versionen von Serverdiensten<br />

suchen. Weiß man beispielsweise,<br />

dass Version 1.3.3c des populären<br />

ProFTPd-Servers über eine gravierende<br />

Sicherheitslücke verfügt, genügt es,<br />

Shodan mit folgendem String auf die<br />

Suche zu schicken: »ProFTPd 1.3.3c«.<br />

Kurze Zeit später präsentiert Shodan<br />

eine umfangreiche Liste von Servern,<br />

die diese Version installiert haben.<br />

Das Suchergebnis lässt sich dann<br />

noch weiter eingrenzen, so etwa auf<br />

bestimmte Länder, Städte oder sogar<br />

Organisationen. Shodan unterbreitet<br />

dafür auch gleich die passenden Vorschläge,<br />

indem es die »Top Countries«,<br />

»Top Cities« und »Top Organizations«<br />

auflistet (Abbildung 2). So kann man<br />

sich beispielsweise alle bei einem bestimmten<br />

Provider gehosteten Systeme<br />

anzeigen lassen, die diese verwundbare<br />

Serverversion einsetzen.<br />

Fernwartung und Sicherheit<br />

Ein wesentliches Motiv für die Vernetzung<br />

von Industrieanlagen mit dem<br />

Internet ist die Fernwartung. Über<br />

Fernzugriff auf die SPS oder den Steuerungsrechner<br />

haben Experten dann un-<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


70<br />

Security<br />

Endian-Switchboard<br />

Abbildung 2: Die Spezialsuchmaschine Shodan wertet die Banner von Geräten im Internet aus. Auf<br />

diese Weise lassen sich leicht verwundbare Server oder Steuerungssysteme ausfindig machen.<br />

abhängig von ihrem Standort jederzeit<br />

die Kontrolle über das Steuerungssystem<br />

von Anlagen. Insbesondere Anlagen<br />

an schwer zugänglichen Orten, wie<br />

etwa Offshore-Windturbinen vor der<br />

Küste oder Ölfördertürme in der Wüste<br />

– profitieren von der Fernwartung. Aber<br />

auch Produktionsbetriebe erhalten<br />

auf diese Weise wesentlich schnellere<br />

Unterstützung bei Störungen, wenn der<br />

Wartungstechniker nicht erst anreisen<br />

muss.<br />

Die klassischen Fernwartungskonzepte,<br />

zum Beispiel über Modem- oder ISDN-<br />

n Wie funktioniert eine Industriesteuerung?<br />

Maschinen und Anlagen in der Industrie werden heute meist über speicherprogrammierbare Steuerungen<br />

(SPS beziehungsweise „Programmable Logic Controller“, kurz PLC) geregelt oder gesteuert<br />

und sind damit das zentrale Element für den Betrieb des jeweiligen Maschinen- oder Anlagentyps.<br />

SPS-Systeme werden in unterschiedlichen Bauformen (zum Beispiel als PC-Steckkarte oder modulare<br />

Baugruppe) von vielen Herstellern angeboten. Bekannte Hersteller sind zum Beispiel Siemens,<br />

Saia-Burgess, ABB, Schneider Electric und General Electric. Einen guten Überblick über die Hersteller<br />

von SPS-Systemen bietet [11].<br />

Die SPS arbeitet mit einem eigenen Betriebssystem (Firmware) und verfügt über Ein- und Ausgänge,<br />

an denen Sensoren und Aktoren angeschlossen sind. Die Sensoren liefern Informationen aus der<br />

Maschine an die SPS, mithilfe der Aktoren steuert und regelt die SPS die angeschlossene Maschine.<br />

Sensoren und Aktoren werden in aktuellen Anlagen entweder über ein Bus-System (beispielsweise<br />

Feldbus) oder über ein Netzwerk (zum Beispiel Profi-Net) mit den Maschinen verbunden (Abbildung<br />

3). In vielen Fällen wird die SPS mit der entsprechenden Programmiersoftware direkt angesprochen.<br />

Alternativ kann aber auch ein Steuerungsrechner mit der SPS verbunden werden, mit dem sich das<br />

Wartungspersonal für Arbeiten an der SPS verbindet.<br />

Direkteinwahl, sind seit Jahren auf<br />

dem Rückzug. Grund sind einerseits<br />

die hohen Kosten für Punkt-zu-Punkt-<br />

Verbindungen und das Vorhalten der<br />

entsprechenden Infrastruktur sowie<br />

die niedrigen Datenübertragungsraten.<br />

Andererseits schreitet die Vernetzung<br />

von Industrieanlagen beispielsweise<br />

mit Produktionsplanungs- und Steuerungssystemen<br />

(PPS) ohnehin stetig<br />

voran, sodass die Isolation dieser Netze<br />

im Zeitalter des „Internets der Dinge“<br />

wohl bald endgültig der Vergangenheit<br />

angehört.<br />

Natürlich birgt die Vernetzung von Anlagen<br />

mit anderen lokalen Netzen, zum<br />

Beispiel dem Office-Netzwerk sowie<br />

dem Internet, erhebliche Risiken. So<br />

muss unbedingt sichergestellt werden,<br />

dass zwischen den beteiligten Netzen<br />

tatsächlich auch nur die erwünschte<br />

Kommunikation stattfindet und nur<br />

berechtigte Benutzer Zugang zur Anlagensteuerung<br />

erhalten. Daher ist<br />

es ratsam, diese Netze zunächst mit<br />

Hilfe einer Firewall zu trennen. Ein<br />

entsprechend angepasstes Regelwerk<br />

vorausgesetzt, lassen sich die Anlagen<br />

durch den Einsatz einer Firewall auch<br />

wirkungsvoll vom Internet abkoppeln,<br />

sodass sie von dort nicht mehr direkt<br />

erreichbar sind. Auch Google und Shodan<br />

haben dann keine Chance mehr,<br />

diese Anlagen im Internet aufzuspüren.<br />

Abbildung 4 verdeutlicht das dahinter<br />

liegende Prinzip.<br />

Die Grenzen von VPN<br />

Da Firewallsysteme zumeist auch ein<br />

VPN-Gateway enthalten, ist es naheliegend,<br />

den Fernwartungszugriff auf die<br />

Anlage künftig über VPN abzuwickeln.<br />

Das funktioniert auch gut, allerdings<br />

nur solange an allen Standorten das<br />

gleiche VPN-Protokoll eingesetzt wird<br />

und sich die Netzadressen an den<br />

Standorten nicht überschneiden.<br />

Die Praxis sieht also meist anders aus,<br />

denn für den Netzbetrieb (und damit<br />

für die Firewall) zeichnet in der Regel<br />

die IT-Abteilung des jeweiligen Anlagenbetreibers<br />

verantwortlich. Die Techniker<br />

des Anlagenherstellers, die sich<br />

per Fernwartung auf die Maschinensteuerung<br />

aufschalten wollen, sehen<br />

sich daher schnell mit einem Wust un-<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

Endian-Switchboard<br />

71<br />

terschiedlicher VPN-Protokolle und Clients<br />

konfrontiert. Diese können meist<br />

nicht parallel auf einem Arbeitsplatzrechner<br />

installiert werden, sodass man<br />

oft gezwungen ist, auf virtuelle Rechner<br />

mit der zum jeweiligen Kunden passenden<br />

VPN-Konfiguration auszuweichen.<br />

Hinzu kommt noch ein wichtiger Sicherheitsaspekt:<br />

Sowohl auf Seiten des<br />

Fernwarters als auch auf Seiten des Anlagenbetreibers<br />

müssen die Firewalls<br />

die benötigten Protokolle passieren<br />

lassen. Und spätestens, wenn ein Fernwarter<br />

zwei Notfälle an unterschiedlichen<br />

Standorten betreut, die LAN-seitig<br />

zufällig das gleiche private IP-Netzwerk<br />

verwenden, muss einer der Kunden<br />

warten.<br />

Ein zusätzliches Problem tritt auf,<br />

wenn nicht jeder Mitarbeiter des<br />

Fernwartungsteams auf alle verfügbaren<br />

Anlagen zugreifen dürfen soll,<br />

beispielsweise weil bestimmte Anlagen<br />

nur von zertifiziertem Personal<br />

gewartet werden dürfen oder wenn die<br />

Sicherheitsbestimmungen ein Rollenkonzept<br />

fordern. Zwar können Firewalls<br />

prinzipiell auch den Traffic innerhalb<br />

von VPN-Verbindungen filtern, Regeln<br />

lassen sich hier aber nur auf Basis von<br />

IP-Adressen und Ports – nicht auf Benutzerebene<br />

– erzeugen.<br />

Intelligente Konzepte sind<br />

gefragt<br />

Für die Fernwartung sind daher Konzepte<br />

gefragt, mit denen sich diese<br />

(sicherheits)technischen Hürden überwinden<br />

lassen. Im Wesentlichen muss<br />

das Konzept den folgenden<br />

Anforderungen genügen:<br />

n Einsatz eines sicheren,<br />

Firewall-freundlichen<br />

und möglichst verbreiteten<br />

VPN-Protokolls;<br />

n nach Möglichkeit kein<br />

Öffnen der Firewall für<br />

eingehende Verbindungen<br />

erforderlich;<br />

n Management mehrerer<br />

gleicher IP-Netze an verschiedenen<br />

Standorten;<br />

n Berechtigungskonzept<br />

für Geräte und Benutzer.<br />

Während OpenVPN die<br />

ersten beiden Anforderungen in geradezu<br />

vorbildlicher Weise erfüllt, wird<br />

es bei den Anforderungen drei und<br />

vier schon schwieriger. Hier kommen<br />

Speziallösungen wie das Endian-VPN-<br />

Switchboard [12] ins Spiel.<br />

Endian-VPN-Switchboard<br />

Dabei handelt es sich um einen VPN-<br />

Concentrator, der als Software-Erweiterung<br />

zu der bekannten Open-Source-<br />

Firewall des Südtiroler Unternehmens<br />

Endian [13] erhältlich ist. Im Vordergrund<br />

stehen die VPN-Funktionalität<br />

und das Berechtigungssystem für Geräte<br />

(Gateways), Endpoints (Wartungsobjekte)<br />

und Benutzer (Fernwarter).<br />

Der VPN-Concentrator nimmt dabei<br />

immer nur eingehende Verbindungen<br />

entgegen, denn der Verbindungsaufbau<br />

wird immer von den beteiligten Endpunkten<br />

initiiert. Das bringt einen enormen<br />

Sicherheitsgewinn mit sich, weil<br />

Abbildung 4: Ein Mindestmaß an Sicherheit bietet die Trennung des Steuerungs- oder<br />

SPS-Netzes der Industrieanlage vom Office-Netz mithilfe einer Firewall. Die Firewall<br />

verhindert auch, dass die Netzwerke direkt aus dem Internet erreichbar sind.<br />

Abbildung 3: Schematische Darstellung eines SCADA-Systems.<br />

weder die Netze der Wartungsobjekte<br />

noch das Netz der Fernwarter für eingehende<br />

Verbindungen geöffnet werden<br />

muss. In einer gedachten Stern-Topologie<br />

bildet das Endian-Switchboard<br />

damit das Zentrum des Sterns.<br />

Ist die VPN-Switchboard-Komponente<br />

lizenziert, taucht in der Web-GUI der<br />

Firewall ein zusätzlicher Menüpunkt<br />

auf, unter der diese Funktionen<br />

aktiviert werden können. Die UTM-<br />

Funktionen der Firewall stehen im<br />

VPN-Switchboard natürlich ebenfalls<br />

zur Verfügung. So kann beispielsweise<br />

der Netzwerkverkehr im VPN auch<br />

mit dem Intrusion-Detection-System<br />

analysiert und gefiltert werden. Gemeinsame<br />

Basis für die Vernetzung unterschiedlicher<br />

Anlagenstandorte per<br />

VPN ist der OpenVPN-Server auf dem<br />

Endian-Switchboard. Als Gegenstelle<br />

n Standortvernetzung<br />

Die hier für die Fernwartung von Industrieanlagen<br />

formulierten Anforderungen treffen auch auf andere<br />

Szenarien zu. Müssen beispielsweise mehrere bisher<br />

unabhängige Standorte eines Unternehmens via VPN<br />

vernetzt werden, findet man häufig auch dort die<br />

gleichen IP-Netze an mehreren Standorten.<br />

Die Einführung einer User-basierten Berechtigungsstruktur<br />

mit zentralem Benutzermanagement bringt<br />

auch anderen Organisationen viele Vorteile, zum<br />

Beispiel um Kunden oder Lieferanten selektiv Zugang<br />

zu bestimmten Systemen oder Diensten zu gewähren.<br />

Auch die Vernetzung mobiler Außenstellen<br />

(Speditionen, Polizei, Rettungsdienste, Militär), Fillialbetriebe,<br />

medizinische Einrichtungen (Telemedizin)<br />

und das „Internet der Dinge“ können von diesem<br />

Ansatz profitieren.<br />

Quelle: Wikipedia<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


72<br />

Security<br />

Endian-Switchboard<br />

Abbildung 5: Ein VPN-Concentrator wie das Endian-Switchboard bietet ein zentrales Berechtigungssystem<br />

für Gateways sowie Benutzer und kann auch mit dem Problem umgehen, dass mehrere<br />

Standorte die gleichen IP-Netze verwenden.<br />

auf Anlagenseite kommt prinzipiell jedes<br />

OpenVPN-fähige Endgerät in Frage,<br />

das Verbindungen über ein TAP-Device<br />

und Preshared Key (PSK) mit Benutzernamen<br />

und Passwort aufbauen kann.<br />

Viele (Industrie-)Router-Modelle, zum<br />

Beispiel [14],[15] und [16], bringen bereits<br />

einen OpenVPN-Client mit, sodass<br />

man hier nicht auf einen Hersteller festgelegt<br />

ist. Endian bietet mit seinen 4i-<br />

Modellen der Endian-Firewall ebenfalls<br />

geeignete Endgeräte an. Diese lassen<br />

Abbildung 6: Der OpenVPN-Server des Endian Switchboard ist über den HTTPS-Port TCP/​443 erreichbar,<br />

die Größe des VPN-Subnetzes sollte dem geplanten Umfang der Installation Rechnung<br />

tragen.<br />

sich zusätzlich komfortabel über das<br />

Endian-Switchboard provisionieren und<br />

mithilfe eines USB-Sticks am Remote-<br />

Standort automatisch konfigurieren.<br />

Für den Remote-Zugriff durch das<br />

Wartungspersonal liefert Endian mit<br />

dem Switchboard einen kostenfreien<br />

Software-Client (Endian-4i-Connect-Client)<br />

aus. Dieser ist derzeit leider nur für<br />

Windows erhältlich, eine Mac- und eine<br />

Linux-Version sind nach Angaben des<br />

Herstellers aber in Arbeit. Das Fernwartungspersonal<br />

verbindet sich mithilfe<br />

des Clients dann zum Endian-Switchboard<br />

und erhält dort – abhängig von<br />

der individuellen Zugriffsberechtigung<br />

– Zugang zu den verbundenen Anlagensteuerungen.<br />

Bevor es um die Einrichtung des Systems<br />

geht, gibt es zuerst noch einen<br />

Überblick über ein typisches Fernwartungsszenario<br />

mit dem Endian-Switchboard.<br />

Dabei darf Fernwarter A lediglich<br />

auf Industrieanlage A und Fernwarter<br />

B auf Industrieanlage B zugreifen<br />

(Abbildung 5). Sind entsprechend viele<br />

Anlagenstandorte, Fernwarter und Endpoints<br />

vorhanden, lassen sich die Zugriffsberechtigungen<br />

komfortabel auf<br />

Basis von Gruppenrechten vergeben.<br />

OpenVPN-Concentrator mit<br />

Firewall<br />

Wie schon kurz angesprochen, ist das<br />

Endian-Switchboard eine Software-<br />

Erweiterung zur Endian-Firewall und<br />

ist damit entweder als Hardware-<br />

Appliance oder als Software für den<br />

Betrieb auf eigener physischer oder<br />

virtueller Hardware erhältlich. Administratoren,<br />

die bereits Erfahrung mit der<br />

Endian-Firewall oder anderen IPCOP-<br />

Abkömmlingen haben, werden sich in<br />

der Basiskonfiguration sofort zurechtfinden.<br />

Die Endian-Firewall arbeitet mit<br />

einem durch Farben gekennzeichneten<br />

Zonenmodell für die unterschiedlichen<br />

Netzbereiche. Grün kennzeichnet dabei<br />

das interne Netzwerk, rot ist für die<br />

WAN-Anbindung zuständig.<br />

Für den Betrieb als VPN-Concentrator<br />

werden mindestens diese beiden<br />

Zonen benötigt. Optional bietet die<br />

Endian-Firewall aber noch zwei weitere<br />

Zonen für die Anbindung eines<br />

Wireless-LAN (blau) und einer oder<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

Endian-Switchboard<br />

73<br />

mehrerer DMZs (orange) an. In unserem<br />

Test-Szenario erhält die grüne Schnittstelle<br />

eine IP-Adresse aus dem LAN<br />

192.168.0.15 und das WAN-Interface<br />

(rot) eine offizielle IP-Adresse aus dem<br />

vom Provider bereitgestellten IP-Pool.<br />

VPN-Server vorbereiten<br />

Im nächsten Schritt aktivieren Sie unter<br />

»VPN | OpenVPN Server | OpenVPN Server<br />

enabled« den OpenVPN-Server und<br />

vergeben ein eigenes privates Subnetz<br />

für das Fernwartungs-VPN. Wählen Sie<br />

die Netzgröße entsprechend großzügig,<br />

damit Sie später genügend Luft für die<br />

Anbindung von Außenstellen und Fernwartungspersonal<br />

haben. Im Beispiel<br />

soll folgendes Netz zum Einsatz kommen:<br />

10.0.0.0/​16 (Host Range: 10.0.0.1<br />

bis 10.0.255.254 = 65 534 Hosts); das<br />

sollte für längere Zeit ausreichen.<br />

Stellen Sie nun unter »Advanced« das<br />

Protokoll auf TCP und den Port auf 443<br />

um, damit der OpenVPN-Server Verbindungen<br />

auf dem HTTPS-Port entgegennimmt<br />

(Abbildung 6).<br />

OpenVPN-Verbindungen können auch<br />

über einen HTTP-Proxy laufen, sodass<br />

der VPN-Server später auch von Anlagennetzen<br />

oder Clients erreichbar ist,<br />

die sich hinter einer (weiteren) Firewall<br />

befinden. Stellen Sie nun noch den Authentication-Typ<br />

auf »PSK« und laden<br />

Sie das CA-Zertifikat sowie den VPN-<br />

Client vom Switchboard herunter. Die<br />

Konfiguration des OpenVPN-Servers<br />

auf dem VPN-Concentrator ist damit<br />

bereits abgeschlossen.<br />

Switchboard-Konfiguration<br />

Wechseln Sie zum Menüpunkt »Virtual<br />

Switchboard | Settings« und tragen<br />

Sie die offizielle IP-Adresse in das Feld<br />

»OpenVPN server public IP address«<br />

ein, unter der das VPN über das Internet<br />

erreichbar sein soll. Bleibt das<br />

Feld leer, übernimmt das Switchboard<br />

automatisch die IP-Adresse vom WAN-<br />

Interface. Als nächstes benötigen Sie<br />

ein weiteres virtuelles Subnetz und<br />

aktivieren deshalb »Enable automated<br />

virtual subnet assignment« – in unserem<br />

Test-Szenario ist dies das IP-Netz<br />

172.16.0.0/​10. Aus diesem Netz erhalten<br />

später die Endpoints – das sind<br />

die Systeme hinter den VPN-Gateways<br />

Abbildung 7: Das Herzstück des Endian-Switchboard bildet die Gateway- und Benutzerverwaltung.<br />

Hier werden die VPN-Gegenstellen sowie die dahinter betriebenen Endpunkte definiert und festgelegt,<br />

über welche Protokolle diese angesprochen werden dürfen.<br />

in den Außenstellen – typischerweise<br />

also die Industriesteuerung oder der<br />

Steuerungsrechner – ihre virtuellen<br />

Adressen. Speichern Sie den Dialog mit<br />

dem »Save«-Button, bevor Sie in den<br />

nächsten Konfigurationsbereich »Actions«<br />

wechseln.<br />

In Aktion<br />

Unter Actions versteht das Endian-<br />

Switchboard die Protokolle, mit denen<br />

der Fernwarter später auf die jeweiligen<br />

Endpoints zugreifen kann. Typischerweise<br />

kommen hier HTTP, RDP, VNC,<br />

SSH oder Telnet zum Einsatz. Prinzipiell<br />

können hier aber auch andere Protokolle<br />

definiert werden, solange sie sich<br />

durch einen VPN-Tunnel transportieren<br />

lassen. Endian-Switchboard unterscheidet<br />

bei den Actions nur zwei generelle<br />

Typen: URLs und Programme. Mit<br />

einer Action vom Typ URL lassen sich<br />

Webadressen entweder auf dem Endpoint<br />

selbst sowie dem internen oder<br />

externen Interface des VPN-Gateways<br />

in der Außenstelle aufrufen. Dazu ist im<br />

Feld »Action URL« lediglich der entsprechende<br />

Platzhalter anzugeben:<br />

%DEVICE_IP%<br />

%SERVER_EXTERNAL%<br />

%SERVER_INTERNAL%<br />

Actions vom Typ »Programm« dienen<br />

hingegen dazu, auf dem Rechner des<br />

Fernwarters installierte Applikationen<br />

direkt aus dem Client zu starten und<br />

der Applikation gleich die korrekten Parameter<br />

(IP-Adresse) zu übergeben. Um<br />

beispielsweise den TightVNC-Viewer<br />

mit der IP-Adresse eines Endpoints<br />

aufzurufen, geben Sie folgenden Kommandopfad<br />

und Kommandoargumente<br />

an:<br />

Command path: %PROGRAM_PATH%\TightVNCU<br />

\tvnviewer.exe<br />

Command args: ‐host=%DEVICE_IP% ‐port=U<br />

5900<br />

Über die »Action Profiles« können die<br />

auf diese Weise definierten Actions in<br />

Gruppen zusammengefasst werden. So<br />

lassen sich diese später komfortabel<br />

einzelnen Benutzern oder auch kompletten<br />

Benutzergruppen zuweisen<br />

(Abbildung 7).<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


74<br />

Security<br />

Endian-Switchboard<br />

Abbildung 8: Über die Benutzerprofile können den Benutzern Rollen<br />

zugeordnet werden. Diese Rollen entscheiden beim späteren Login<br />

mit dem Client darüber, welche Berechtigung der Benutzer auf bestimmten<br />

Gateways und Endpoints erhält.<br />

Unter »Benutzer« legen Sie die Credentials<br />

für die Fernwartungsbenutzer an.<br />

Die hier definierten Zugangsdaten müssen<br />

also später für den Verbindungsaufbau<br />

im Software-VPN-Client eingetragen<br />

werden. Abhängig von ihrer Berechtigung<br />

können die Benutzer dann<br />

direkt über die Client-Verbindung mit<br />

den für sie freigegebenen Protokollen<br />

(Actions) auf die Fernwartungsobjekte<br />

(Gateways beziehungsweise Endpoints)<br />

zugreifen.<br />

Benutzerrollen<br />

Folgende Benutzerberechtigungen stehen<br />

zur Verfügung:<br />

n »Superuser«: Vollzugriff.<br />

n »Can create groups«: Der Benutzer<br />

darf Benutzergruppen erstellen, ändern<br />

und löschen.<br />

n »Can manage Actions«: Der Benutzer<br />

darf weitere Actions & Zugriffsprotokolle<br />

erstellen, ändern und löschen.<br />

n »Can use API«: Der Benutzer darf die<br />

API verwenden.<br />

n »Push route to GREEN / BLUE /<br />

ORANGE zone«: Legt die Netze fest,<br />

in die Routen übertragen werden.<br />

Nachdem die Benutzer im System<br />

angelegt wurden, lassen sie sich in<br />

Gruppen organisieren<br />

(Abbildung 8). Dabei<br />

unterscheidet das<br />

Switchboard zwischen<br />

Berechtigungen für die<br />

Gruppe selbst (Administrator<br />

oder Member)<br />

und solchen für den<br />

Zugriff auf Gateways<br />

und auch Gateway-<br />

Gruppen (Regular User<br />

oder Manager). So<br />

können die Berechtigungen<br />

der Benutzer<br />

noch feiner abgestuft<br />

gesetzt werden: Beispielsweise<br />

darf ein<br />

Gruppen-Administrator<br />

zwar weitere<br />

Benutzer anlegen, aber<br />

eben keine Zuweisung<br />

von Benutzern zu Gateways<br />

vornehmen.<br />

Gateways,<br />

Groups & Connections<br />

Zu guter Letzt müssen Sie jetzt noch<br />

die Gateways sowie die Endpoints im<br />

Switchboard anlegen. Zur Erinnerung:<br />

Unter einem Gateway versteht das<br />

Switchboard ein (Open)VPN-Device,<br />

das in einer Außenstelle für den Zugang<br />

zu den Endpoints sorgt. Die Zugangsdaten,<br />

die Sie hier für ein Gateway<br />

definiert haben, müssen also später<br />

zusammen mit dem CA-Zertifikat auf<br />

dem VPN-Router in der Außenstelle als<br />

Einwahl-Credentials hinterlegt werden.<br />

Auch die Gateways können wieder zu<br />

Gruppen zusammengefasst werden, die<br />

sich dann Benutzern beziehungsweise<br />

Benutzergruppen zuordnen lassen.<br />

Diese Einstellung nimmt man entsprechend<br />

unter »Member of gateway<br />

groups« beziehungsweise »User permissions<br />

on this gateway« vor.<br />

Im Menü »Endpoints« werden nun<br />

noch die eigentlichen Fernwartungsobjekte<br />

definiert, im Normalfall also<br />

die Industriesteuerung oder der zugehörige<br />

Steuerungsrechner. Wählen Sie<br />

zunächst die gewünschte Größe für das<br />

virtuelle Endpoint-Netzwerk (maximale<br />

Anzahl Wartungsobjekte) und klicken<br />

Sie auf »Add Row«, um ein neues Wartungsobjekt<br />

oder Endpoint anzulegen.<br />

Jedem Endpoint ordnen Sie dann die<br />

IP-Adresse zu, die das Gerät im jeweiligen<br />

Netzwerk erhält. Unter »Action Profiles«<br />

wählen Sie die Protokolle aus der<br />

Liste aus, über die das Device später<br />

vom Fernwarter erreicht werden kann.<br />

Jeder Endpoint lässt sich zudem auch<br />

einzeln aktivieren beziehungsweise<br />

deaktivieren.<br />

Wenn Sie alle Endpunkte hinter ihren<br />

Gateways angelegt haben, werden sie<br />

unter dem Menüpunkt »Connections«<br />

im Switchboard-Menü übersichtlich<br />

angezeigt. Dazu klicken Sie einfach auf<br />

den kleinen grünen Pfeil vor dem jeweiligen<br />

Gateway, um die Liste zu öffnen.<br />

Hier ist nun auch ersichtlich, unter welcher<br />

virtuellen IP-Adresse der Endpoint<br />

über das VPN für den Fernwarter zu<br />

erreichen ist (virtuelle IP aus dem Pool<br />

für die Endpoints) und welcher Benutzer<br />

die Verbindung gegebenfalls aktuell<br />

bereits verwendet.<br />

Außenstellen anbinden mit<br />

OpenVPN<br />

Für die Anbindung von Außenstellen –<br />

in Switchboard-Notation »Gateways«<br />

genannt – ist lediglich ein OpenVPNfähiges<br />

Endgerät erforderlich, das den<br />

TAP- und PSK-Modus unterstützt. Die<br />

meisten Industrie-Router und viele<br />

Open-Source-Firewallsysteme erfüllen<br />

diese Voraussetzungen. So auch die<br />

Endian-Firewall, einschließlich der<br />

kostenfreien Community-Edition [17].<br />

Die kommerziellen Endian-Firewall-<br />

Appliances können über das Switchboard<br />

auch automatisch provisioniert<br />

und dann per USB-Stick am Einsatzort<br />

konfiguriert werden. Für unseren Test<br />

kamen zwei Endian-Systeme zum<br />

Einsatz, die zur besseren Nachvollziehbarkeit<br />

für andere Geräte im Folgenden<br />

manuell konfiguriert werden.<br />

Nach der Inbetriebnahme der Firewall<br />

an einem DSL-Anschluss mit dynamischer<br />

IP-Adresse und der Einbindung<br />

ins lokale Netz (Default-IP-Adresse<br />

192.168.0.15), ist lediglich noch die<br />

VPN-Verbindung zu konfigurieren. Dazu<br />

wechseln Sie nach »VPN | OpenVPN<br />

Client (Gw2Gw)« und tragen unter »Verbinden<br />

mit« die öffentliche IP-Adresse<br />

des Endian-Switchboards und – Achtung,<br />

Falle! – nach einem Doppelpunkt<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

Endian-Switchboard<br />

75<br />

zusätzlich den Port 443 ein. Laden Sie<br />

das CA-Zertifikat vom Switchboard auf<br />

die Firewall hoch und geben Sie jenen<br />

Benutzernamen und das Passwort an,<br />

die Sie dem Gateway im Switchboard<br />

zugeordnet haben. Nun müssen Sie<br />

unter »Erweiterte Tunnelkonfiguration«<br />

noch den Gerätetyp »TAP« und als<br />

Protokoll »TCP« auswählen. Nachdem<br />

Sie diese Einstellungen gespeichert haben,<br />

baut die Firewall den VPN-Tunnel<br />

selbstständig zum Switchboard auf.<br />

Die VPN-Verbindung taucht auf dem<br />

Switchboard dann unter »VPN | Open-<br />

VPN Server | Connection status and<br />

control« mit ihrer realen (öffentlichen)<br />

und der IP-Adresse aus dem VPN-Pool<br />

auf (Abbildung 9).<br />

Endian-4i-Connect-Client<br />

Nachdem die Außenstelle(n) und damit<br />

die dahinterliegenden Geräte nun per<br />

VPN an das Switchboard angebunden<br />

sind, können sich jetzt die Fernwarter<br />

über den Endian-4i-Connect-Client<br />

mit dem Switchboard verbinden. Für<br />

die Verbindungsaufnahme tragen Sie<br />

die öffentliche IP des Switchboard im<br />

Client ein, Benutzername und Passwort<br />

haben Sie zuvor auf dem Switchboard<br />

im Bereich »Virtual Switchboard |<br />

Users« definiert. Sofern Sie keinen<br />

HTTP-Proxy einsetzen, über den die<br />

OpenVPN-Verbindung transportiert<br />

werden soll, ist am Client nichts weiter<br />

Abbildung 9: VPN mal einfach: Geräte, die einen OpenVPN-Client mit TAP- und PSK-Unterstützung<br />

mitbringen, lassen sich mit wenigen Mausklicks an das Endian-Switchboard anbinden.<br />

einzustellen. Der 4i-Connect-Client<br />

stellt eine Kombination aus VPN-Client<br />

und Browser dar, der – in Abhängigkeit<br />

von der Berechtigung des jeweiligen<br />

Benutzers – die Einstellungen aus<br />

dem Switchboard-Menü eins zu eins<br />

in den Client überträgt (Abbildung 10).<br />

Dort können diese dann auch editiert<br />

werden. Auf dem Karteireiter »Verbindungen«<br />

werden nach dem Verbindungsaufbau<br />

die per VPN verbundenen<br />

Außenstellen sowie die dahinterliegenden<br />

Geräte (Endpoints) angezeigt. Das<br />

Wartungspersonal kann sich nun per<br />

Klick auf das »Connect«-Icon mit den<br />

Gateways verbinden und erhält damit<br />

auch Zugriff auf die Endpoints. Dazu<br />

kommen die im Switchboard als »Action«<br />

definierten Protokolle oder URLs<br />

zum Einsatz.


76<br />

Security<br />

Endian-Switchboard<br />

Abbildung 10: Der Fernwarter verbindet sich über den Endian-4i-Connect-Client mit dem Switchboard und wählt aus der Liste den Endpoint aus,<br />

mit dem er sich verbinden möchte, zum Beispiel per Remote-Desktop-Protokoll auf einen Windows-Steuerungsrechner.<br />

n Info<br />

n Autor<br />

Die Preise für die Erweiterungssoftware,<br />

die aus einer Endian-Firewall ein<br />

Endian-Switchboard machen, standen<br />

zum Redaktionsschluss noch nicht fest.<br />

Das Lizenzmodell für die Switchboard-<br />

Komponente sieht eine Lizenzierung<br />

auf Basis der aktivierten VPN-Tunnel<br />

vor. Darunter fallen sowohl die Tunnel,<br />

die von den Gateways an den<br />

Außen standorten zum Switchboard<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30402<br />

Thomas Zeller ist IT-Consultant<br />

und beschäftigt sich seit über<br />

15 Jahren mit IT-Sicherheit<br />

und Open Source. Er ist Autor/<br />

Co-Autor der Bücher „OpenVPN<br />

kompakt“ und „Mindmapping mit<br />

Freemind“. Im richtigen Leben ist<br />

er IT-Unternehmer und Geschäftsführer<br />

eines mittelständischen IT-<br />

Systemhauses und verantwortet<br />

dort auch den Geschäftsbereich<br />

IT-Sicherheit.<br />

aufgebaut als auch jene, die vom Fernwartungspersonal<br />

mit dem Software-<br />

Client genutzt werden. Hinzu kommen<br />

die Anschaffungskosten für die Hardware-<br />

oder Software-Appliance und für<br />

Software-Wartung und Support. Der<br />

Einstiegspreis für die Endian-Appliances<br />

liegt bei 775 Euro (Endian Mini)<br />

beziehungsweise 990 Euro (Endian 4i<br />

Edge 300) plus Maintenance.<br />

Fazit<br />

Das Endian-Switchboard ist ein<br />

VPN-Concentrator mit erweiterten<br />

n Sonderfunktionen per API<br />

Eine äußerst interessante Ergänzung des<br />

Endian-VPN-Switchboards stellt die mitgelieferte<br />

Programmierschnittstelle (API)<br />

dar. Durch den Einsatz der API lässt sich<br />

die Funktionalität des Switchboards auch<br />

ohne den Endian-4i-Connect-Client, zum<br />

Beispiel in eigenen Applikationen, nutzen.<br />

Das macht im Fernwartungsumfeld<br />

durchaus Sinn, denn hier kommt häufig<br />

Spezialsoftware für die Kommunikation<br />

mit den Steuerungsanlagen zum Einsatz.<br />

Die API verwendet HTTPS für die Kommunikation.<br />

Dabei werden Requests an das Switchboard<br />

entweder als HTTPS-GET oder<br />

Funktionen. Das damit realisierbare<br />

VPN-Konzept stellt überall dort einen<br />

interessanten Lösungsansatz dar,<br />

wo Standorte mit überlappenden IP-<br />

Adressbereichen vernetzt und Benutzer<br />

mit verschiedenen Rollen über ein<br />

restriktives Zugriffskonzept eingebunden<br />

werden sollen. Sämtliche VPN-<br />

Verbindungen werden am Switchboard<br />

an zentraler Stelle zusammengeführt,<br />

sodass die Firewalls an den per VPN<br />

angebundenen Standorten nicht für<br />

eingehende Verbindungen geöffnet<br />

werden müssen. (ofr) n<br />

HTTPS-POST-Wert gesendet, die Rückmeldung<br />

des Switchboard auf gültige Requests<br />

erfolgt dann JSON-encoded. JSON<br />

(Javascript Object Notation) ist ein kompaktes<br />

Datenformat für den Austausch<br />

von Daten zwischen Anwendungen in<br />

Textform.<br />

Um die API zu aktivieren, muss man auf<br />

der Settings-Seite des Switchboard zunächst<br />

einen API-Key erzeugen. Dieser<br />

Key wird dann zusammen mit dem Benutzernamen<br />

und Passwort eines berechtigten<br />

Benutzers (benötigt Superuser- und<br />

API-Rechte) an das Switchboard übertragen,<br />

um dort Befehle auszuführen.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


78<br />

Security<br />

Malware-Analyse<br />

Malware analysieren und bekämpfen<br />

Code-<br />

Kontrolle<br />

Unter Linux gibt es ausgefeilte Werkzeuge,<br />

die die Einfallstore für Malware bloßstellen.<br />

Andrew Henderson<br />

Anan Kaewkhammul , 123RFa<br />

Die potenzielle Gefahr von Malware<br />

bleibt eine Sorge, die viele Computer-<br />

Benutzer umtreibt. Der Desktop-PC,<br />

das Smartphone bis hin zu den netzwerkfähigen<br />

Kleingeräten rund ums<br />

Haus und Büro sind potenziell anfällig<br />

für tausende Rootkits, Spyware und<br />

Trojaner. So schnell Antivirenhersteller<br />

neue Methoden entwickeln, um Malware<br />

zu entdecken und abzuwehren, so<br />

schnell entwickeln Virenhersteller neue<br />

Methoden, um diese Absicherungen zu<br />

umgehen.<br />

Linux-Benutzer profitieren seit Langem<br />

von der minimalen Aufmerksamkeit,<br />

die Virenentwicklern ihrem Betriebssystem<br />

schenken. Zwar existiert Malware<br />

auch für ihre Plattform, aber die<br />

meisten Linux-Systeme bleiben ihr<br />

verschlossen, denn eine der großen<br />

Stärken quelloffener Software besteht<br />

in der Geschwindigkeit, mit der sicherheitsrelevante<br />

Fehler bemerkt, diagnostiziert<br />

und repariert werden. Diese<br />

gute Reaktionsfähigkeit begrenzt das<br />

Zeitfenster, in dem bösartige Software<br />

Anfälligkeiten ausnutzen kann. Nur<br />

wenn es einer Malware gelingt, einen<br />

Benutzer mit Superuser-Rechten zur<br />

freiwilligen Installation zu überreden<br />

oder ein System nicht korrekt konfiguriert<br />

oder aktualisiert ist, kann sie einen<br />

Linux-Rechner infizieren.<br />

Windows-Benutzer haben weniger<br />

Glück. Auf über einer Milliarde PCs<br />

weltweit laufen verschiedene Windows-<br />

Varianten und seine sehr große Verbreitung<br />

macht das Betriebssystem zu<br />

einem verlockenden Ziel für Virenentwickler.<br />

Die Größe und Komplexität der<br />

Windows-Codebasis sowie Verzögerungen<br />

bei der Fehlerbehebung führen zu<br />

einladenden Einfallstoren für Malware-<br />

Programmierer.<br />

Doch Windows stehen zwei ungewohnte<br />

Verbündete im Kampf gegen<br />

Malware zur Seite: Linux und Open-<br />

Source-Software. Zahlreiche Linux-<br />

Tools kommen zum Einsatz, um Analysen<br />

von Windows-Malware zu erstellen<br />

und Software-Qualität zu erhöhen. Entwickler<br />

verwenden diese Werkzeuge,<br />

um besseren und sichereren Code zu<br />

schreiben, während sie Forschern zu<br />

neuen Erkenntnissen über die Vorgehensweise<br />

von Malware verhelfen.<br />

Diese Software-Analysewerkzeuge fallen<br />

in zwei Kategorien: statische und<br />

dynamische. Statische Tools untersuchen<br />

den Binär- oder den Sourcecode<br />

eines Programms, um herauszufinden,<br />

wie es strukturiert ist und wie es auf bestimmte<br />

Eingabewerte reagiert. Dynamische<br />

Analysewerkzeuge beobachten<br />

eine Software hingegen während der<br />

Ausführung, um ihr Laufzeitverhalten<br />

direkt unter die Lupe zu nehmen. Beide<br />

Methoden haben ihre Stärken und<br />

Schwächen, sind aber in jedem Fall<br />

sehr nützlich, um unbekannte Software<br />

zu untersuchen. Dieser Artikel führt die<br />

für die Analyse verwendeten Konzepte<br />

ein und zeigt einige Werkzeuge, mit<br />

denen Sicherheitsforscher Malware<br />

analysieren.<br />

Statische Analyse<br />

Statische Softwareanalyse gibt es<br />

schon sehr lange und viele ihrer Methoden<br />

gehören zum Standardrepertoire<br />

von Entwicklern: Denn bereits<br />

das Kompilieren von Quellcode stellt<br />

eine Form der statischen Analyse dar.<br />

Jeder Compiler setzt während des<br />

Übersetzens auch Analysetechniken<br />

ein, um doppelt verwendete Variablen-,<br />

Klassen- und Funktionsnamen, falsch<br />

typisierte Zuordnungen, uninitialisierte<br />

Variablen und unerreichbare Anweisungen<br />

zu entdecken.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

Malware-Analyse<br />

79<br />

Das CLang-Frontend [1] für die LLVM-<br />

Compiler-Infrastruktur verfügt über<br />

einen leistungsfähigen statischen<br />

Analyser, der sehr detaillierte Compiler-<br />

Fehler und ‐Warnungen ausgibt. Analyse-Plugins<br />

[2] erweitern inzwischen<br />

die ohnehin hilfreiche Standardanalysekomponente<br />

von GCC. Unterstützung<br />

für sie liefert GCC ab Version 4.5.<br />

Jedes Programm enthält Gruppen<br />

von Anweisungen, die es sequenziell<br />

ausführt, wenn keine Exceptions oder<br />

Sprünge auftreten. Bei der Ausführung<br />

arbeitet das Programm diese Anweisungen<br />

als logische Blöcke ab, in der<br />

Compiler-Terminologie heißen sie<br />

»Basic Blocks«. Ist die Ausführung eines<br />

Basic Blocks abgeschlossen, geht die<br />

Kontrolle an einen anderen über und<br />

der Programmablauf geht dort weiter.<br />

Das Ende eines Basic Blocks liegt typischerweise<br />

an einer Sprunganweisung<br />

oder an einer bedingten Verzweigung.<br />

Die statische Analyse versucht all<br />

diese Basic Blocks zu entdecken und<br />

zu bestimmen, an welchen Stellen die<br />

Kontrolle von einem zum nächsten<br />

übergeht. Diese Information wird gesammelt<br />

und als Control Flow Graph<br />

(CFG) repräsentiert, der den Gesamtablauf<br />

eines Programms beschreibt.<br />

Listing 1 zeigt eine einfache C-Funktion<br />

und Abbildung 1 den CFG, der ihre<br />

Basic Blocks und ihren Kontrollfluss<br />

beschreibt.<br />

Die statische Analyse dieser Funktion<br />

teilt den Code in die drei Basic Blocks<br />

A, B und C auf. Der Graph zeigt, dass<br />

der Kontrollfluss A und C garantiert<br />

durchläuft, weil diese beiden Basic<br />

Blocks Ein- und Ausgang der Funktion<br />

bilden. B muss gar nicht, kann aber<br />

auch mehrere Male ausgeführt werden.<br />

Die Visualisierung des Kontrollflusses<br />

in dieser Beispielfunktion ist einfach,<br />

doch bei komplexeren Funktionen<br />

ergeben die CFGs schnell ein weniger<br />

überschaubares Bild.<br />

Alle Daten, die in eine Funktion hineinfließen,<br />

entstammen irgendeiner<br />

bestimmten Quelle, beispielsweise<br />

einer Datei, Netzwerkkommunikation<br />

oder Eingabegeräten wie der Tastatur<br />

oder Maus. Daten, die aus einer nicht<br />

vertrauenswürdigen Quelle stammen,<br />

beispielsweise einer Netzwerkverbin-<br />

dung, gelten ebenfalls als nicht vertrauenswürdig.<br />

Manche Basic Blocks enthalten heikle<br />

Anweisungen, etwa Speicherzuweisungen,<br />

Dateizugriffe oder Socket-<br />

Kommunikation. Wenn Daten aus einer<br />

unsicheren Quelle mit solchen Aufrufen<br />

interagieren, besteht die Möglichkeit<br />

eines kompromittierbaren Basic Block.<br />

Die CFG-Visualierung hilft dabei, Blöcke<br />

aufzuspüren, die nicht vertrauenswürdige<br />

Daten generieren, Systemaufrufe<br />

tätigen und herauszufinden, wie diese<br />

miteinander verbunden sind. Darin besteht<br />

das Hauptziel statischer Analyse:<br />

Wo und wie können nicht vertrauenswürdige<br />

Daten möglicherweise störanfällige<br />

Ereignisse auslösen?<br />

Ist der Quellcode verfügbar, ist die statische<br />

Analyse relativ unkompliziert,<br />

denn er liefert eine vollständige und<br />

eindeutige Definition der Datentypen,<br />

Funktionsaufrufe und Kontrollflussstrukturen.<br />

Allerdings bleibt der Quellcode<br />

von Malware oft verborgen. Um<br />

ihr Verhalten zu analysieren, muss<br />

also der Binär-Code genügen. Zwar ist<br />

die schrittweise Analyse der binären<br />

Anweisungen möglich, wie zahlreiche<br />

Malware-Studien bewiesen haben,<br />

doch die Analyse auf der Ebene einer<br />

Quellcode-Repräsentation des dekompilierten<br />

Binär-Codes bringt häufig<br />

mehr Erkenntnisse.<br />

Dazwischen steht jedoch die schwierige<br />

Aufgabe, die Quellcode-Repräsentation<br />

aus einer Binärdatei zu generieren. Ein<br />

Decompiler muss erkennen, in welchen<br />

Abschnitten Code steht, wo die Daten<br />

lagern sowie komplexe Datentypen<br />

rekonstruieren. Kein Decompiler generiert<br />

Quellcode in der Qualität des originären<br />

Codes, aus dem die Binärdatei<br />

kompiliert wurde. Manuelles Eingreifen<br />

ist häufig unverzichtbar, um die Rückübersetzung<br />

vollständig und eindeutig<br />

abzuschließen. Für Linux existieren<br />

mehrere Open-Source-Decompiler, unter<br />

denen Boomerang [3] die wohl besten<br />

Ergebnisse liefert. Das Programm<br />

befindet sich unter aktiver Entwicklung<br />

und generiert vergleichsweise guten C-<br />

Code aus ausführbaren Binärdateien.<br />

Bytecode-basierte Java-Klassen sind<br />

deutlich einfacher zu dekompilieren<br />

als native Binaries, weil ihre Bytecode-<br />

i ≤ num<br />

Anweisungen umfangreiche Kontextinformationen<br />

enthalten, zum Beispiel<br />

zu Vererbung und Datentypen. Zum<br />

Dekompilieren von Java-Klassen verwenden<br />

viele Sicherheitsforscher das<br />

Open-Source-Werkzeugset Soot [4]; es<br />

gibt daneben aber zahlreiche weitere<br />

Linux-Tools.<br />

Dare (Dalvik Retargetting, [5]) verwandelt<br />

die »dex«-Dateien einer Android-<br />

n Listing 1: Eine einfache C-Funktion<br />

A<br />

B<br />

C<br />

01 int simple(int num)<br />

02 {<br />

03 /* Anfang Block A */<br />

04 int i;<br />

05 printf("Block A\n");<br />

06 /* Ende Block A */<br />

07 for (i = 1; i num<br />

Ausgangsfunktion<br />

i > num<br />

Abbildung 1: Der Control Flow Graph (CFG) für die C-<br />

Funktion »simple« in Listing 1.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


80<br />

Security<br />

Malware-Analyse<br />

Dalvik-VM in Java-».class«-Dateien. Für<br />

Java-Bytecode ausgelegte Tools verarbeiten<br />

und dekompilieren diese weiter.<br />

Dynamische Analyse<br />

Auch wenn statische Analyse viele<br />

Strukturen offenlegt, löst sie selten<br />

Probleme, die mit der Parallelisierung<br />

mehrerer Threads zusammenhängen.<br />

Könnte statische Analyse in diesem<br />

Bereich helfen, dann gäbe es bereits<br />

Compiler, die Race Conditions und andere<br />

typische Probleme in der parallelen<br />

Programmierung erkennen würden.<br />

Des Weiteren liegt Malware gewöhnlich<br />

in Form komprimierter oder verschlüsselter<br />

Binaries vor, was eine weitere<br />

Hürde für die Dekompilierung und statische<br />

Analyse einschiebt.<br />

Derlei Beschränkungen machen die Beobachtung<br />

des Laufzeitverhaltens, die<br />

dynamische Analyse, in manchen Fällen<br />

zur einzigen Möglichkeit, Malware<br />

zu analysieren. Die dynamische Analyse<br />

findet auf vielen verschiedenen Ebenen<br />

statt, von der Beobachtung gelegentlich<br />

ausgelöster Events eines einzelnen<br />

Prozesses bis hin zur schrittweisen Ausführung<br />

einzelner Anweisungen unter<br />

Protokollierung sämtlicher auf dem<br />

System laufender Prozesse.<br />

Das gibt der dynamischen Analyse ein<br />

großes Potenzial, aber auch Nachteile.<br />

So kann sie ausschließlich die Teile<br />

eines Programms beobachten, die tatsächlich<br />

ausgeführt werden, während<br />

das bösartige Verhalten während der<br />

Analyse möglicherweise verborgen<br />

bleibt und das Ergebnis nutzlos macht.<br />

Die mit der Analyse einhergehenden<br />

Monitoring-Instrumente verbrauchen<br />

darüber hinaus erhebliche Rechnerressourcen<br />

und verschlechtern damit<br />

die Performance von Anwendungen<br />

und dem System drastisch. 2005 führte<br />

eine Gruppe von Forschern eine neue<br />

Abbildung 2: Die Zustände des Datenspeichers und des damit verknüpften Shadow Memory vor<br />

und nach einer Additionsoperation.<br />

Methode der dynamischen Analyse ein,<br />

die sogenannte »Dynamic Taint Analysis«,<br />

die die Spur verfolgt, die Daten<br />

aus nicht vertrauenswürdigen Quellen<br />

hinterlassen. Das Verfahren zeigt einen<br />

Ausweg aus dem aussichtslosen Unterfangen<br />

auf, jede neue Malware beim<br />

ersten Erscheinen in freier Wildbahn zu<br />

analysieren, um speziell darauf ausgerichtete<br />

Gegen-Software zu entwickeln;<br />

immerhin kann sich deren Anzahl auf<br />

mehrere Tausend an einem Tag belaufen.<br />

Stattdessen schützt die Dynamic-<br />

Taint-Analysis-Methode einen Rechner,<br />

indem sie unsichere Daten auf ihrem<br />

Weg durch das System verfolgt. Wird<br />

die Ausführung unterbunden, bevor<br />

suspekte Daten zu einer gefährlichen<br />

Aktion führen, wird Malware neutralisiert,<br />

ohne dass deren Implementation<br />

und Design im Detail bekannt sind.<br />

Dynamic Taint Analysis stuft eine nicht<br />

vertrauenswürdige Datenquelle als<br />

verunreinigt (»tainted«) ein. Sie markiert<br />

alle Daten, die eine solche Quelle<br />

produziert ebenfalls als verunreinigt.<br />

Diese Markierungen (»Taint Tags«) halten<br />

fest, aus welcher Quelle die Daten<br />

stammen. Stellen, an denen davon<br />

Gefahr ausgehen könnte, heißen analog<br />

dazu »Taint Sinks«. Jede Bewegung<br />

der verdächtigen Daten wird verfolgt,<br />

also auch ihre Kopien und Transformationen.<br />

Das System protokolliert auch,<br />

wenn ein solches Datenobjekt und<br />

damit auch die entsprechende Markierung<br />

zerstört wird. Erreicht ein markierter<br />

Datensatz ein Taint Sink, stoppt das<br />

System die Ausführung und die Analyse<br />

beginnt.<br />

Allerdings besteht eine gewisse Gefahr<br />

darin, die Verunreinigungsmarkierungen<br />

im selben Speicherbereich<br />

abzulegen wie die gewöhnlichen<br />

Anwendungsdaten, weil andere Anwendungen<br />

sie dort überschreiben<br />

könnten. Ebenso problematisch ist es,<br />

die Markierungen gemeinsam mit den<br />

markierten Daten selbst zu speichern:<br />

Falls die Daten in ein Prozessorregister<br />

verschoben werden, fehlt dort ein Platz<br />

für die Zusatzinformation.<br />

Um diese Probleme zu umgehen, werden<br />

die Verschmutzungsmarkierungen<br />

in ein sogenanntes Shadow Memory<br />

ausgelagert. Mit dieser Technik hält<br />

die Analyse-Software an jedem Ort,<br />

der potenziell nicht vertrauenswürdige<br />

Daten verwaltet, einen Schattenspeicher<br />

bereit, in denen die zugehörigen<br />

Markierungen lagern. Das betrifft in der<br />

Regel Arbeitsspeicher, CPU-Register<br />

sowie Ein- und Ausgabegerätpuffer,<br />

aber kann auch beispielsweise für die<br />

Festplatte gelten.<br />

Eine einzelne Markierung steht für<br />

die Art der Verunreinigung, deren ein<br />

einzelner Datensatz verdächtig ist. Die<br />

Beschaffenheit der kleinsten Dateneinheit<br />

hängt vom Bedarf der Analyse<br />

ab. In vielen Fällen genügt es, eine<br />

Markierung pro Byte Daten bereitzuhalten.<br />

Eine sehr genaue Analyse kann<br />

es hingegen erfordern, jedes Bit zu<br />

markieren.<br />

Auch die Anzahl der Markierungstypen<br />

variiert: Für einige Analysen genügt<br />

die Information, dass es sich um nicht<br />

vertrauenswürdige Daten handelt. In<br />

anderen Fällen ist eine Markierung von<br />

Nöten, die darüber hinaus die Datenquelle<br />

speichert. Im extremsten Fall<br />

käme also eine eigene Markierung für<br />

jedes einzelne Daten-Bit zum Einsatz,<br />

das ins System gelangt; das bläht allerdings<br />

das Shadow Memory auf.<br />

Abbildung 2 zeigt ein Beispiel dafür,<br />

wie Daten sich durch den Speicher bewegen.<br />

Ein Byte steht für einen Datensatz,<br />

wie auch das damit verbundene<br />

Taint Tag. Nun kommt eine Operation<br />

zur Ausführung, die den Inhalt der<br />

Speicheradressen 0x1000 und 0x1002<br />

addiert. Das Ergebnis landet abschließend<br />

wieder an der Adresse 0x1000. Die<br />

Daten an 0x1002 sind jedoch als nicht<br />

vertrauenswürdig markiert. Das hat zur<br />

Folge, dass nach vollzogener Addition<br />

auch 0x1000 markiert wird, weil die<br />

verdächtigen Daten aus 0x1002 darauf<br />

Einfluss genommen haben. Im weiteren<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

Malware-Analyse<br />

81<br />

Verlauf pflanzt sich diese Markierung<br />

nun bei allen Operationen fort, die die<br />

Daten aus 0x1000 verwenden.<br />

Der Weg der verunreinigten Daten von<br />

der Quelle bis zum Taint Sink gibt viele<br />

Erkenntnisse darüber preis, wie Malware<br />

ein System kompromittiert. So<br />

lässt sich sowohl die Quelle bösartiger<br />

Daten bestimmen, als auch jede Kopie<br />

der Daten verfolgen. In der Praxis hat<br />

sich diese Art der Analyse zu einem<br />

nützlichen Sicherheitswerkzeug entwickelt,<br />

das inzwischen zum Repertoire<br />

von Perl, PHP, Lua, Python und Ruby<br />

gehört. Sicherheitsbewusste Entwickler<br />

dieser Sprachen setzen die Technik ein,<br />

um ihre Software mit einem zusätzlichen<br />

Sicherheitscheck zu versehen, der<br />

auch bisher ungeahnten, zukünftigen<br />

Attacken standhält.<br />

Ein gutes Beispiel eines dynamischen<br />

Analyse-Tools auf Prozessebene ist<br />

Intels Pin [6]. Dabei handelt es sich um<br />

ein Framework für die binäre Vermessung<br />

von Prozessen auf x86-Plattformen.<br />

Es heftet sich an laufende Prozesse<br />

an, etwa wie der GDB-Debugger,<br />

und führt dann Prozessoranweisungen<br />

schrittweise aus.<br />

Pin ist erweiterbar und enthält zu diesem<br />

Zweck eine Reihe von Bibliotheken<br />

und Build-Skripts, die die Entwicklung<br />

von Pin-Plugins, sogenannter Pintools,<br />

in C/​C++ unterstützen. Pintools stellen<br />

Callback-Funktionen bereit, die Pin<br />

dann zur Laufzeit eines Prozesses vor<br />

der Ausführung einzelner Anweisungen<br />

aufruft. Dieser Ansatz erlaubt die<br />

Entwicklung von Analysewerkzeugen<br />

für Einsatzzwecke wie das Protokollieren<br />

von Anweisungen, Profiling, die<br />

beschriebene Taint Analysis und zur<br />

Validierung von Argumenten.<br />

Bei der Entwicklung dynamischer<br />

Analysewerkzeuge auf Systemebene<br />

empfiehlt es sich, auf Hypervisoren wie<br />

Xen und VMware oder Emulatoren wie<br />

Qemu und Bochs zu setzen. Denn wenn<br />

Analysesoftware in derselben Umgebung<br />

wie eine Malware läuft, könnte<br />

diese das Analyseprogramm entdecken<br />

und es außer Funktion setzen oder sich<br />

verbergen. Nutzt man Virtualisierung,<br />

um die Analyse von der Malware zu<br />

isolieren, besteht diese Gefahr der Manipulation<br />

nicht. Des Weiteren bringt<br />

der Einsatz virtueller<br />

Maschinen den Vorteil<br />

mit sich, dass man<br />

den Zustand von CPU-<br />

Registern, Stapel- und<br />

Heap-Speichern sowie<br />

Peripheriegeräten<br />

jederzeit beobachten<br />

kann.<br />

Decaf<br />

Das Dynamic Executable<br />

Code Analysis<br />

Framework (Decaf) [7]<br />

stellt eine vollständige<br />

dynamische Analyseplattform<br />

bereit.<br />

Forscher und Hobby-<br />

Programmierer treiben<br />

Secondary<br />

Storage<br />

Shadow<br />

Buffer<br />

Shadow<br />

Buffer<br />

DECAF<br />

ihre Entwicklung aktiv voran. Sie setzt<br />

auf Qemu [8] und kann sich eines ausgiebigen<br />

Funktionsumfangs rühmen,<br />

darunter eine Plugin-API für die Entwicklung<br />

eigener Analysewerkzeuge.<br />

Der Overhead bei der Ausführung fällt<br />

bei Decaf vergleichsweise klein aus und<br />

Decaf funktioniert auch mit neueren<br />

Betriebssystemen wie Windows 8.<br />

Abbildung 3 illustriert die Decaf-<br />

Architektur: Das zu analysierende<br />

Gastsystem läuft stets in einer virtuellen<br />

Maschine. Sie verwendet<br />

einen emulierten Prozessor und eine<br />

Speicherverwaltungseinheit (MMU).<br />

Die emulierten Hardware-Geräte, beispielsweise<br />

Festplatte, Netzwerkkarte,<br />

Tastatur und Maus, präsentiert Decaf<br />

dem Gastbetriebssystem als physische<br />

Geräte. Das Gastsystem hat also keinen<br />

Anhaltspunkt anzunehmen, dass es in<br />

einer virtuellen Maschine läuft.<br />

Das Architekturdiagramm zeigt auch<br />

die Shadow-Speicher, in denen Decaf<br />

Markierungen speichert. Sie befinden<br />

sich außerhalb der virtuellen Maschine,<br />

um Manipulationen durch das Gastbetriebssystem<br />

zu verhindern. Die Speicherverwaltung<br />

des Gastsystems steht<br />

mit einem Shadow-RAM außerhalb der<br />

virtuellen Maschine in Verbindung. Dort<br />

landen Taint Tags für Daten, die sich im<br />

Arbeitsspeicher der virtuellen Maschine<br />

befinden. Manche Peripheriegeräte<br />

wie die Netzwerkkarte verfügen über<br />

Shadow Buffers, die interne Sende- und<br />

Empfangspuffer abbilden.<br />

Shadow<br />

RAM<br />

IDE Block<br />

Virtual Device<br />

NE2000<br />

Virtual Device<br />

Other Virtual<br />

Devices<br />

Shadow CPU<br />

Registers<br />

Gast-VM<br />

Gast-OS<br />

IDE Driver<br />

NIC Driver<br />

Other Device<br />

Drivers<br />

CPU<br />

Registers<br />

Abbildung 3: Die Gesamtarchitektur von Decaf.<br />

Sekundärspeicher wie eine Festplatte<br />

verfügt ebenfalls über einen eigenen<br />

Shadow Buffer, um die dort gespeicherten<br />

Daten zu markieren und zu<br />

verfolgen. Auch wenn Dateizugriffe<br />

bei einer Systemanalyse in manchen<br />

Fällen bedeutungslos sind, bleibt dieser<br />

Shadow Buffer wichtig, weil durch<br />

den Auslagerungsspeicher auch Daten<br />

aus dem Arbeitsspeicher dort landen<br />

können. Tritt dieser Fall ein, muss<br />

Decaf auch die Taint-Markierungen zu<br />

den betroffenen Daten in den Shadow<br />

Buffer jener Platte kopieren. Das gilt<br />

auch umgekehrt: wandern die Daten<br />

vom ausgelagerten Speicher zurück ins<br />

RAM, muss Decaf auch hier die Taint-<br />

Markierungen in das Shadow Memory<br />

zurückkopieren.<br />

Die Zukunft<br />

Stetig zunehmende Rechnergeschwindigkeiten<br />

und wachsende Ressourcen<br />

erlauben auch immer komplexere Software-Analysen.<br />

Die Verfügbarkeit freier<br />

Tools für diesen Zweck gibt Forschern<br />

und Entwicklern einen großen Vorteil<br />

im Kampf gegen Malware und bei der<br />

Entwicklung sicherer Software. (csc) n<br />

n Info<br />

RAM<br />

MMU<br />

CPU<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30861<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


82<br />

Security<br />

SSL<br />

Thomas LENNE, 123RF<br />

SSL-verschlüsselte Verbindungen<br />

Perfect! Forward Secrecy<br />

Durch der Enthüllungen über die weltweite Überwachung durch Geheimdienste gerät ein SSL/​TLS-Feature in den<br />

Blickpunkt, das die Sicherheit SSL-verschlüsselter Verbindungen erhöht: Perfect Forward Secrecy. Markus Manzke<br />

Mit dem etwas unverbindlich klingenden<br />

Begriff der Folgenlosigkeit<br />

wird im Krypto-Jargon das englische<br />

Perfect Forward Secrecy (PFS) übersetzt.<br />

Gemeint ist damit, dass Angreifer<br />

aus einem aufgedeckten geheimen<br />

Langzeitschlüssel nicht auf damit ausgehandelte<br />

Sitzungsschlüssel eines<br />

Kommunikationskanals schließen und<br />

ihn so mithören können [1]. Die Folgen<br />

einer solchen Schwachstelle sind also<br />

eingrenzbar. Gerade bei der SSL-Verschlüsselung<br />

von HTTP-Verbindungen<br />

kann man diese Eigenschaft ausnutzen.<br />

Zu Beginn einer SSL-Session handeln<br />

die Kommunikationspartner Session-<br />

Keys aus, mit der dann die gesammte<br />

Session verschlüsselt wird. Bei den<br />

gängigen Methoden (RSA) wird der<br />

Private-Key des Servers benutzt, um<br />

den Session-Key zu generieren – mit<br />

dem Seiteneffekt, dass sich aufgezeichnete<br />

SSL-Verbindungen mit dem<br />

Private-Key des Servers im Nachhinein<br />

entschlüsseln lassen oder aber Man-inthe-Middle-Angriffe<br />

möglich sind. Das<br />

Problem liegt darin, dass der Private-<br />

Key des Servers sowohl für Authentifizierung<br />

und Verschlüsselung benutzt<br />

wird. Authentizität ist aber nur für den<br />

Moment der Kommunikationsaufnahme<br />

wichtig, während die Verschlüsselung<br />

für Jahre sicher sein sollte.<br />

Als Alternative dazu bietet sich der<br />

Diffie-Hellmann-Algorithmus an. Durch<br />

Einsatz dieses Verfahrens werden für<br />

jede SSL-Session Keys generiert, die<br />

sich nicht aus dem Private-Key des<br />

Servers herleiten lassen und somit eine<br />

spätere Entschlüsselung nur durch<br />

Brute-Force-Brechen des Session-Keys<br />

möglich ist. PFS ermöglicht, dass heutige<br />

SSL-verschlüsselte Kommunikation<br />

zukünftig sicher ist, auch wenn der<br />

Private-Key des Servers irgendwann<br />

kompromittiert werden sollte.<br />

SSL und PFS<br />

SSL unterstützt PFS über zwei Algorithmen:<br />

Diffie-Hellman (DHE) und Elliptic<br />

Curve Diffie-Hellmann (ECDHE). Eine<br />

genaue Beschreibung der beiden Methoden<br />

liefern die Artikel „SSL/​TLS &<br />

Perfect Forward Secrecy“ von Vincent<br />

Bernat [2] und „Deploying Forward Secrecy“<br />

von Ivan Ristic [3].<br />

Ob die Algorithmen in der installierten<br />

OpenSSL-Version verfügbar sind, zeigt<br />

Listing 1 exemplarisch für ECDHE, unter<br />

[4] gibt es eine Übersicht unterstützter<br />

Methoden für einzelne Linux-Distributionen.<br />

ECDHE ist erst mit der OpenSSL-<br />

Version 1.x verfügbar, DHE auch in<br />

älteren Versionen.<br />

Werden die benötigten Algorithmen<br />

von der installierten OpenSSL-Version<br />

nicht unterstützt, muss man OpenSSL<br />

für die eigene Plattform kompilieren<br />

[5]. Nginx zum Beispiel bietet die<br />

Möglichkeit an, die OpenSSL-Quellen<br />

beim Kompilieren mit anzugeben und<br />

statisch einzubinden: »./configure ...<br />

‐‐with‐openssl=/pfad/zum/openssl_<br />

sourcecode« [6],[7].<br />

Der höhere Aufwand beim Generieren<br />

der Session-Keys geht mit Performance-Einbußen<br />

einher: DHE-Algorith<br />

men sind langsamer als ECDHE-Algorithmen,<br />

dafür steht ECDHE nicht<br />

überall zur Verfügung: in OpenSSL erst<br />

ab 1.x. In älteren Browsern und ​Clients<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Security<br />

SSL<br />

83<br />

kann die Unterstützung fehlen. Performance-Tests<br />

[2,8] belegen Einbrüche<br />

von 25 bis 50 Prozent bei DHE gegenüber<br />

ECDHE.<br />

Wenn man also SSL-verschlüsselte<br />

Webseiten betreibt, eine möglichst<br />

große Anzahl unterschiedlicher Betriebssysteme<br />

und Browser unterstützen<br />

und für alle Besucher PFS aktivieren<br />

will, wirkt sich dies auf die Performance<br />

der SSL-Verbindungen aus.<br />

Mit PFS kann jede SSL-fähige Kommunikation<br />

abgesichert werden, unter<br />

anderem für Webserver, Mailserver und<br />

Stunnel-Installationen. Webserver-Setups<br />

lassen sich via SSLLabs’ SSL Server<br />

Test [9] überprüfen, ein im Sommer<br />

neu hinzugefügter Test überprüft die<br />

PFS-Fähigkeit des Servers. Eine Anmerkung<br />

dazu: Wird serverseitig nur ECDHE<br />

angeboten, erscheinen in der Handshake-Auswertung<br />

zwar Browser, die<br />

PFS beherrschen, da ältere Clients aber<br />

nur DHE-Algorithmen kennen, wird der<br />

Zusatz „PFS“ in der Zusammenfassung<br />

nicht angezeigt. Unter Protocol Details<br />

erscheint der Zusatz: „Forward secrecy:<br />

With modern browsers“.<br />

Während für Web-Applikationen der<br />

Einsatz von PFS empfehlenswert ist,<br />

kann diese Maßnahme bei statischen<br />

Inhalten wie CSS, Javascript, Bildern<br />

und Icons unterbleiben. Dafür kann<br />

man performantere Algorithmen aus-<br />

n Listing 1: Algorithmen in OpenSSL<br />

Abbildung 1: Gut gemacht: Ein perfektes Ergebnis bei den Test der SSLLabs.<br />

wählen, wenn die Informationen nicht<br />

sonderlich schützenswert sind.<br />

PFS hat im Web noch keine weite Verbreitung<br />

gefunden, mit Stand Oktober<br />

2013 unterstützen gerade einmal 4,2<br />

Prozent der populärsten Webseiten<br />

neuere PFS-Algorithmen (ECDHS),<br />

während 54 Prozent der untersuchten<br />

Webserver PFS nicht anboten [10].<br />

Konfiguration<br />

Die Konfiguration von PFS ist für jeden<br />

Dienst verschieden und benötigt<br />

mindestens zwei Optionen: der Server<br />

muss die am meisten bevorzugte Cipher<br />

Suite auswählen können, einzelne<br />

01 $ openssl ciphers ‐v | grep ECDHE<br />

02 <br />

03 ECDHE‐RSA‐AES256‐GCM‐SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD<br />

04 ECDHE‐ECDSA‐AES256‐GCM‐SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256)<br />

Mac=AEAD<br />

05 ECDHE‐RSA‐AES256‐SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384<br />

06 ECDHE‐ECDSA‐AES256‐SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384<br />

07 ECDHE‐RSA‐AES256‐SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1<br />

08 ECDHE‐ECDSA‐AES256‐SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1<br />

09 ECDHE‐RSA‐DES‐CBC3‐SHA SSLv3 Kx=ECDH Au=RSA Enc=3DES(168) Mac=SHA1<br />

10 ECDHE‐ECDSA‐DES‐CBC3‐SHA SSLv3 Kx=ECDH Au=ECDSA Enc=3DES(168) Mac=SHA1<br />

11 ECDHE‐RSA‐AES128‐GCM‐SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD<br />

12 ECDHE‐ECDSA‐AES128‐GCM‐SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128)<br />

Mac=AEAD<br />

13 ECDHE‐RSA‐AES128‐SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256<br />

14 ECDHE‐ECDSA‐AES128‐SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256<br />

15 ECDHE‐RSA‐AES128‐SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1<br />

16 ECDHE‐ECDSA‐AES128‐SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1<br />

17 ECDHE‐RSA‐RC4‐SHA SSLv3 Kx=ECDH Au=RSA Enc=RC4(128) Mac=SHA1<br />

18 ECDHE‐ECDSA‐RC4‐SHA SSLv3 Kx=ECDH Au=ECDSA Enc=RC4(128) Mac=SHA1<br />

Cipher Suites und deren Anordnung<br />

müssen konfigurierbar sein.<br />

Für die Webserver Apache und Nginx<br />

gibt es mehrere Anleitungen [11,7], in<br />

Listing 2 und 3 sind die wesentlichen<br />

Optionen aufgeführt, die bei SSL Labs<br />

[9] zu einem perfekten Ergebnis führen<br />

(Abbildung 1). (ofr) n<br />

n Listing 2: Apache-Konfiguration<br />

01 SSLProtocol all ‐SSLv2 ‐SSLv3<br />

02 SSLHonorCipherOrder on<br />

03 SSLCipherSuite "EECDH+ECDSA+AESGCM<br />

EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \<br />

04 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384<br />

EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \<br />

05 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5<br />

!EXP !PSK !SRP !DSS"<br />

n Listing 3: Nginx-Konfiguration<br />

01 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;<br />

02 ssl_prefer_server_ciphers on;<br />

03 ssl_ciphers "EECDH+ECDSA+AESGCM<br />

EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \<br />

04 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384<br />

EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \<br />

05 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5<br />

!EXP !PSK !SRP !DSS";<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/31120<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


84<br />

Basics<br />

OpenPGP<br />

Iaroslav Neliubov, 123RF<br />

E-Mail-Verschlüsselung mit OpenPGP sicher einrichten<br />

Einfach, sicher, mailen!<br />

Verschlüsselt kommunizieren ist schwierig? Nein, überhaupt nicht! Die Einrichtung braucht fünf Minuten. Und<br />

ab und an müssen Sie eventuell ein Passwort eingeben oder einen Schlüssel per Drag-and-Drop in ein Programm<br />

werfen. Machbar, oder? Mit diesem Artikel sicher! Till Spiegel<br />

Ihre E-Mails können jederzeit vom<br />

Bundesnachrichtendienst und der NSA<br />

mitgelesen werden. Angeblich halten<br />

gültige Gesetze die treuen Gesetzeshüter<br />

davon ab, alle Nachrichten mitzuschneiden.<br />

Wer das nicht mehr glauben<br />

mag und lieber auf Nummer sicher<br />

gehen möchte, sollte seine E-Mails<br />

verschlüsseln. Am besten alle E-Mails,<br />

mindestens aber so viele wie möglich.<br />

Aktuelle OpenPGP-Software kann so<br />

stark verschlüsseln, dass auch die NSA<br />

keine Chance hat. Das bestätigt sogar<br />

Edward Snowden.<br />

Jeder, der PGP in der vergangenen Jahren<br />

schon mal ausprobiert hat, erinnert<br />

sich meist ungern an das komplizierte<br />

Prozedere und die vielen Fachbegriffe.<br />

Dank weiterentwickelter Software ist<br />

die Handhabung aber mittlerweile sehr<br />

einfach. Die Fachbegriffe klärt dieser<br />

Artikel noch mal in kurzer Form.<br />

Angenommen, Sie haben ein neues,<br />

noch geheimes Projekt gestartet und<br />

n Schlüssel, Zertifikate und Co.<br />

Beim Thema »Verschlüsselung« gibt es zahlreiche Fachbegriffe, die<br />

meist munter durcheinander genutzt werden. Die Wichtigsten sind:<br />

Fingerprint: Als Fingerprint wird eine (relativ kurze) Buchstabenfolge<br />

bezeichnet, die man aus einem Schlüssel berechnet. Ist der Fingerprint<br />

vor und nach dem Verschicken eines Schlüssels gleich, hat sich der<br />

Schlüssel nicht verändert. Die Zahlenfolge kann man persönlich, per<br />

Telefon, Brief oder Fax weiterreichen.<br />

GnuPG: Ist die Abkürzung für Gnu Privacy Guard. Diese Software implementiert<br />

Verschlüsselungstechniken nach dem OpenPGP-Standard<br />

und ist unter der Gnu Public Licence frei verfügbar. »GPG« ist dabei das<br />

Kommandozeilen-Tool, das viele Programme mit schicken Oberflächen<br />

oder Plugins für Mail-Programme unter der Haube verwenden.<br />

Schlüssel: Im engeren Sinn ist ein Schlüssel eine einfache, aber lange<br />

Zahlenfolge. Mit ihrer Hilfe werden Daten so verändert (verschlüsselt),<br />

dass man sie auch unter großen Mühen nicht mehr lesbar machen<br />

kann. Im weiteren Sinne ist ein Schlüssel nicht nur die lange Zahlenfolge,<br />

sondern enthält auch noch zusätzliche Daten (Metadaten) wie<br />

Besitzer, Erstellungsdatum, E-Mail-Adressen, Verfallsdatum und Verschlüsselungsverfahren.<br />

Signieren: Das meint den Vorgang des digitalen Unterschreibens einer<br />

E-Mail oder Datei. Mit dem privaten Schlüssel wird eine Prüfsumme<br />

einer Mail verschlüsselt und mitgeschickt. Der Empfänger kann diese<br />

Signatur mit Ihrem öffentlichen Schlüssel entschlüsseln und die Prüfsumme<br />

vergleichen. Stimmt Sie, kann er sicher sein, dass die EMail von<br />

Ihnen stammt und unverändert ist. Dies erledigt Ihr E-Mail-Programm<br />

vollautomatisch.<br />

Zertifikat: Mehr oder minder das gleiche wie ein Schlüssel, ergänzt um<br />

zahlreiche Metadaten und Prüfsummen.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Basics<br />

OpenPGP<br />

85<br />

wollen mit Ihrem Geschäftspartner<br />

sicher per E-Mail kommunizieren. Wenn<br />

Ihr Partner an Sie eine E-Mail schickt,<br />

muss sichergestellt sein:<br />

n dass die E-Mail wirklich vom Partner<br />

stammt und nicht von jemand, der<br />

sich für ihn ausgibt;<br />

n dass niemand an der E-Mail rumgefummelt<br />

und sie verändert hat;<br />

n dass niemand außer Ihnen die E-<br />

Mail lesen kann.<br />

Um alle drei Ziele zu erreichen, bedient<br />

man sich einer Verschlüsselung mit<br />

zwei Schlüsseln. Dank ausgeklügelter<br />

mathematischer Verfahren gilt dabei:<br />

Verschlüsselt man etwas mit dem einen<br />

Schlüssel, kann man es nur mit dem<br />

jeweils anderen wieder entschlüsseln.<br />

Ein Schlüssel allein reicht zum Ver- und<br />

Entschlüsseln nicht aus.<br />

Privat und öffentlich<br />

Einer der beiden Schlüssel heißt »privat«.<br />

Er verbleibt bei einem persönlich<br />

und ist mindestens so wichtig wie die<br />

PIN der eigenen Bankkarte. Er darf den<br />

oder die eigenen Rechner nicht verlassen.<br />

Schlimmer noch: Sie müssen ihn<br />

absolut sicher verwahren. Ist er weg,<br />

können Sie keine der Mails mehr lesen,<br />

die man verschlüsselt an Sie geschickt<br />

hat oder noch schicken wird. Ein sicheres<br />

Backup ist daher unabdingbar.<br />

Der zweite Schlüssel nennt sich »öffentlich«.<br />

Diesen gilt es an alle zu<br />

verteilen, die einem etwas vertraulich<br />

schicken möchten. Um die Verbreitung<br />

zu vereinfachen, gibt es Schlüsselserver<br />

(Key-Server, ähnlich wie Download-<br />

Server für Software), auf denen sich<br />

öffentliche Schlüssel hinterlegen lassen<br />

und auf denen jeder nach öffentlichen<br />

Schlüsseln anderer suchen kann. Wer<br />

Daten sicher an Sie schicken möchte,<br />

sucht sich Ihren öffentlichen Schlüssel<br />

und kann damit eine Nachricht an Sie<br />

verschlüsseln, die nur Sie entschlüsseln<br />

können (mit dem privaten Schlüssel).<br />

Tiefergehende Informationen zu diesem<br />

Thema finden Sie im Artikel über<br />

GnuPG in der letzten <strong>ADMIN</strong>-Ausgabe<br />

[1] und im Kasten »Schlüssel, Zertifikate<br />

und Co«.<br />

Bevor es losgehen kann, muss die<br />

Basis-Software installiert ein. Dies ist<br />

»GnuPG«, eine Freeware unter Gnu<br />

Public Licence, die den offiziellen<br />

OpenPGP-Standard implementiert.<br />

Unter Linux ist GnuPG bei allen großen<br />

Distributionen bereits installiert. Unter<br />

Windows ist dazu das Tool-Paket »GPG-<br />

4Win« (Abbildung 1) [2] zu laden und<br />

zu installieren. Mac-User können auf<br />

die jüngst erst aktualisierte und sehr<br />

schöne »GPGSuite« [3] zurückgreifen.<br />

Beide Tool-Pakete enthalten eine gut<br />

ans Betriebssystem angepasste Schlüsselverwaltung<br />

inklusive grafischer<br />

Oberfläche.<br />

In GPG4Win heißt die Schlüsselverwaltung<br />

»Kleopatra« – ein Zugriff per<br />

Kommandozeile ist damit überflüssig.<br />

Im Paket ist auch ein Plugin für Outlook<br />

bis zur Version 2013. Es gibt aber ein<br />

paar Einschränkungen, die man sich als<br />

Outlook-Nutzer durchlesen sollte [2].<br />

Beim Mac muss man die GPGSuite lediglich<br />

über den mitgelieferten Installer<br />

auf die Platte heben lassen. Dazu gehört<br />

auch das Plugin für Apples »Mail«,<br />

dass sich nahtlos in Mail einfügt.<br />

Die folgende Beschreibung wendet<br />

sich an Thunderbird-User. Die Schritte<br />

lassen sich aber entsprechend mit<br />

Kleopatra (Windows), GPGTools (Mac)<br />

und GPA (Linux) vornehmen, falls man<br />

einen anderen E-Mail-Client nutzt, für<br />

den es keine eingebaute Schlüsselverwaltung<br />

gibt.<br />

Abbildung 1: Unter Windows stellt GPG4Win die<br />

Grundfunktionen für GnuPG zur Verfügung.<br />

Ersteinrichtung<br />

Um GnuPG in Thunderbird nutzen<br />

zu können, braucht man das Plugin<br />

»Enigmail« (Abbildung 2). Nach Auswahl<br />

von »Add‐ons« im Menü des<br />

Mail-Programms und Wechsel auf den<br />

Reiter »Add‐ons suchen«, tippen Sie<br />

»Enigmail« in das Suchfeld. Als erstes<br />

Addon sollte »Enigmail 1.5.2« erscheinen.<br />

Nach dem Klick auf »Installieren«<br />

und einem Neustart von Thunderbird<br />

ist die Software startbereit. Im Menü<br />

erkennen Sie das an dem neuen Punkt<br />

»OpenPGP«.<br />

Enigmail hat eine Schlüsselverwaltung<br />

eingebaut. Sie greift auf die gleichen<br />

Schlüssel zu wie etwa Kleopatra oder<br />

Abbildung 2: Enigmail für Thunderbird rüstet die fehlende GnuPG-Unterstützung für den frei verfügbaren<br />

E-Mail-Client nach.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


86<br />

Basics<br />

OpenPGP<br />

Abbildung 3: Mit diesen (wenigen) Daten erzeugt Enigmail die<br />

notwendigen Schlüssel.<br />

GPGTools. Sie können also durchaus<br />

mal die eine und mal die andere Verwaltung<br />

verwenden. Die Schlüssel liegen<br />

bei Linux und Mac OSX in ».gnupg«<br />

im Home-Verzeichnis, unter Windows 7<br />

in »Appdata\Roaming\gnupg«.<br />

Schlüssel erzeugen<br />

Nach Auswahl des Menüpunktes<br />

»OpenPGP | Schlüssel verwalten...«<br />

erscheint ein noch leeres Fenster. Über<br />

die Menüpunkte »Erzeugen | Neues<br />

Schlüsselpaar...« öffnet sich das Fenster<br />

»OpenPGP‐Schlüssel erzeugen«. Hinter<br />

»Benutzer‐ID« wählen Sie den E-Mail-<br />

Account aus, für den die Schlüssel erzeugt<br />

werden sollen. Später lassen sich<br />

dem Schlüssel weitere E-Mail-Adressen<br />

hinzufügen. Bei »Passphrase« ist ein<br />

Passwort einzugeben, dass sehr sicher<br />

sein sollte. Die Passphrase schützt<br />

Ihren privaten PGP-Schlüssel. Sie müssen<br />

diese Passphrase später eingeben,<br />

wenn Thunderbird eine an Sie gerichtete<br />

E-Mail entschlüsseln möchte oder<br />

Abbildung 4: Die Schlüsselverwaltung ist der zentrale Ort, in<br />

dem Sie private und öffentliche Schlüssel bearbeiten können.<br />

Sie eine E-Mail unterschreiben<br />

(signieren). Sie sollten<br />

sich diese also gut merken<br />

können, aber dennoch auch<br />

Zahlen, Großbuchstaben<br />

und Satzzeichen verwenden.<br />

Sie dürfen sie auf keinen Fall<br />

vergessen.<br />

Das »Kommentar«-Feld kann<br />

leer bleiben. Was Sie hier eintragen,<br />

ist später für andere<br />

sichtbar. Da wir gerade die<br />

Master-Schlüssel erzeugen,<br />

sollten diese nicht ablaufen.<br />

Ein Haken vor »Schlüssel<br />

läuft nie ab« ist sinnvoll. Mit<br />

dem Klick auf »Schlüsselpaar<br />

erzeugen« startet die Berechnung<br />

(Abbildung 3). Derweil<br />

sollte man die Maus bewegen und<br />

einige Tasten drücken, dies erhöht die<br />

»Zufälligkeit« der Generierung.<br />

Am Ende möchte Enigmail ein Widerrufszertifikat<br />

erzeugen. Das ist auf<br />

jeden Fall sinnvoll. Nur damit lässt sich<br />

später einmal der öffentliche Schlüssel<br />

für ungültig erklären (das geht dann<br />

auch ohne Passphrase, falls diese das<br />

eigene Gehirn verlassen hat).<br />

E-Mail-Adressen ergänzen<br />

Oft hat man nicht nur eine E-Mail-<br />

Adresse, sondern derer mehrere. Man<br />

muss nun nicht für jede E-Mail-Adresse<br />

ein Schlüsselpaar erzeugen: Stattdessen<br />

lassen sich den Schlüsseln weitere<br />

E-Mail-Adressen hinzufügen. Dazu<br />

klickt man doppelt auf den Schlüssel.<br />

Es erscheint das Fenster »Schlüsseleigenschaften«.<br />

Wählen Sie links unten<br />

bei »Aktion wählen« den Punkt »Benutzer‐ID<br />

verwalten«. Über »Hinzufügen«<br />

ergänzen Sie weitere E-Mail-Adressen.<br />

Im Kommentar-Feld lassen sich Bemerkungen<br />

wie »Büro« oder »Privat«<br />

eingeben, die andere<br />

Nutzer darauf hinweisen,<br />

welche E-Mail-Adresse für<br />

was zu verwenden ist.<br />

OpenPGP und GnuPG kennen<br />

keinen Generalschlüssel<br />

oder Hintertürchen, um an<br />

Ihre Schlüssel zu gelangen,<br />

wenn Sie die Passphrase<br />

vergessen. Die Passphrase<br />

ist also sehr sicher aufzubewahren.<br />

Daher ist ein Backup vor allem<br />

des privaten Schlüssels extrem wichtig.<br />

Ohne ihn können sie nichts mehr unterschreiben<br />

oder entschlüsseln. Wer<br />

ihn in die Hände bekommt, kann sich<br />

für Sie ausgeben. Ein Festplatten-Crash<br />

oder Wasserschaden (Hochwasser)<br />

kann schon einen Verlust herbeiführen.<br />

Backup anlegen<br />

Das Backup ist einfach: Wählen Sie in<br />

der Schlüsselverwaltung (Abbildung<br />

4) Ihren neuen Schlüssel und anschließend<br />

den Menüpunkt »Datei | Exportieren«<br />

aus. Per Klick auf »Geheime<br />

Schlüssel exportieren« werden privater<br />

und öffentlicher Schlüssel gesichert.<br />

Die Datei (und das Widerrufszertifikat)<br />

sollten Sie auf eine CD brennen oder<br />

einen USB-Stick schreiben und in einen<br />

Safe oder Bankschließfach legen.<br />

Nach dem Schließen der Schlüsselverwaltung<br />

können Sie bereits die<br />

erste verschlüsselte Mail verschicken<br />

– bisher aber nur an sich selbst, da in<br />

der Schlüsselverwaltung als einziger<br />

öffentlicher Schlüssel Ihr eigener vorhanden<br />

ist.<br />

Erzeugen Sie eine neue leere Mail. In<br />

der Button-Leiste sehen Sie das Schloss<br />

mit dem Text »OpenPGP«. Wenn Sie<br />

das Menü dazu aufklappen, sollten die<br />

Punkte »Nachricht unterschreiben« und<br />

»PGP/MIME verwenden« bereits ausgewählt<br />

sein. Wenn Sie im »An«-Feld Ihre<br />

E-Mail-Adresse eintragen (für die es<br />

auch einen öffentlichen Schlüssel gibt),<br />

können Sie auch »Nachricht verschlüsseln«<br />

auswählen.<br />

Ob eine E-Mail unterschrieben und<br />

verschlüsselt verschickt wird, zeigen<br />

das Bleistift- und das Schlüsselsymbol<br />

rechts unten im Fenster an. Sind sie<br />

gelb, ist die zugehörige Aktion aktiviert.<br />

Nach dem Verschicken und Aktualisieren<br />

der Mail-Liste ist die verschlüsselte<br />

Mail wieder da. Wenn Sie sie anklicken,<br />

zeigt Thunderbird sie an (Abbildung 3).<br />

Ein grüner Balken über der Mail weist<br />

darauf hin, dass die Mail korrekt unterschrieben<br />

ist und entschlüsselt werden<br />

konnte. Über das Popup-Menü»Details«<br />

lassen sich weitere Infos einblenden.<br />

Jetzt stellt sich natürlich die Frage:<br />

Wie kommt man an die öffentlichen<br />

Schlüssel anderer – und zwar so, dass<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Basics<br />

OpenPGP<br />

87<br />

sie einen unverändert erreichen? Dazu<br />

gibt es zwei Wege: Mithilfe des Partners<br />

oder über einen Schlüsselserver.<br />

Schlüssel tauschen<br />

Fordern Sie einfach einen E-Mail-<br />

Partner auf, Ihnen seinen öffentlichen<br />

Schlüssel als Attachment zuzusenden<br />

(ohne Verschlüsselung). Er soll seine<br />

Mail aber signieren (digital unterschreiben).<br />

Wenn die Mail bei Ihnen<br />

ankommt, zeigt Thunderbird sie mit<br />

einem gelben Balken und dem Hinweis<br />

an, dass die Unterschrift nicht überprüft<br />

werden konnte (noch ist der öffentliche<br />

Schlüssel ja nicht importiert).<br />

Speichern Sie den Schlüssel als Datei,<br />

öffnen Sie die OpenPGP-Schlüsselverwaltung<br />

und wählen Sie »Datei | Importieren«,<br />

um den Schlüssel zu übernehmen.<br />

Wenn Sie im Thunderbird-Mailfenster<br />

jetzt die E-Mail deselektieren<br />

und anschließend wieder anklicken,<br />

hat der gelbe Balken auf hellblau gewechselt.<br />

Dort steht jetzt, dass die Unterschrift<br />

korrekt ist, aber Thunderbird<br />

ihr noch nicht vertraut.<br />

Wählen Sie im Popup-Menü »Details«<br />

den Punkt »Schlüsseleigenschaften«<br />

aus. In der sechsten Zeile von oben<br />

sehen Sie eine Buchstabenziffernfolge,<br />

die »Fingerabdruck« (Englisch: Fingerprint)<br />

heißt. Rufen Sie Ihren Freund per<br />

n Mobile Apps<br />

Die eingebauten mobilen E-Mail-Apps<br />

von iOS und Android sind nicht auf PGP<br />

oder GnuPG vorbereitet. Unter iOS gilt<br />

es dafür die zusätzliche App »iPGMail«<br />

(für 1,79 Euro) zu installieren. Verschlüsselte<br />

Anhänge können an iPGMail übergeben<br />

und dort entschlüsselt werden.<br />

Verschlüsselte Mails lassen sich direkt<br />

mit iPGMail verschicken. Die Schlüssel<br />

selbst kann man per iTunes auf das Gerät<br />

bringen. Insgesamt ist diese Lösung<br />

aber noch recht unbequem.<br />

Unter Android geht das besser. Die App-<br />

Kombination heißt »APG« und »K‐9«<br />

oder sein kommerzieller Bruder »Kaiten«.<br />

Man sollte zuerst das GPG-Tool<br />

APG installieren und dann den E-Mail-<br />

Client K-9, anschließend die E-Mail-<br />

Konten in K-9 einrichten und schließlich<br />

die privaten Schlüssel in APG per USB<br />

importieren (nicht per Mail).<br />

Abbildung 5: Drei verschiedene Mails: Mal unverschlüsselt, nur signiert oder auch noch unterschrieben.<br />

Die Symbole zeigen den jeweiligen Status an.<br />

Telefon oder Smartphone an und lesen<br />

Sie ihm den Fingerabdruck vor. Ist er<br />

identisch mit seinem Fingerabdruck,<br />

haben Sie wirklich seinen öffentlichen<br />

Schlüssel unverändert per E-Mail<br />

bekommen. Um das für Thunderbird<br />

zu dokumentieren, gilt es jetzt den<br />

Schlüssel zu unterschreiben. Wählen<br />

Sie unten links unter »Aktion wählen«<br />

den Punkt »Unterschreiben«. Im darauf<br />

erscheinenden Dialog ist »Ich habe<br />

es sehr genau geprüft« auszuwählen.<br />

Wenn Sie nach dem Schließen der<br />

Schlüsselverwaltung eine andere Mail<br />

und dann wieder die Ihres Freundes<br />

anklicken, ist der Balken grün.<br />

Schlüsselserver nutzen<br />

Wenn Sie wissen, dass Ihr Freund seinen<br />

Schlüssel auf einen Schlüsselserver<br />

geschickt hat, geht es noch einfacher,<br />

sich den Schlüssel zu besorgen. Öffnen<br />

Sie die Schlüsselverwaltung und<br />

wählen Sie den Menüpunkt »Schlüsselserver<br />

| Schlüssel suchen...« aus. Im<br />

Suchfeld geben Sie den Namen (ohne<br />

Umlaute) oder die E-Mail-Adresse<br />

ein. Anschließend wählen Sie aus der<br />

Liste den passenden Eintrag aus und<br />

übernehmen den Schlüssel in Ihre<br />

Schlüsselverwaltung. Welchen der<br />

angebotenen Schlüsselserver Sie dabei<br />

verwenden, ist fast egal, da diese<br />

sich untereinander abgleichen. Sie<br />

können Ihren öffentlichen Schlüssel<br />

übrigens auch ganz einfach auf einen<br />

Schlüsselserver hochladen, indem Sie<br />

ihn auswählen und das Menü »Schlüssel‐Server<br />

| Schlüssel hochladen« auswählen.<br />

Sie werden dann nach einem<br />

Server gefragt. Belassen Sie es bei dem<br />

Vorschlag. Danach können andere Ihren<br />

öffentlichen Schlüssel suchen und<br />

importieren.<br />

Fazit<br />

Hat man sich einmal die Mühe gemacht,<br />

GnuPG einzurichten, kann man<br />

fortan ganz einfach sichere E-Mails<br />

verschicken. Die Unbequemlichkeit<br />

beschränkt sich dabei auf das Eingeben<br />

einer Passphrase und Anklicken eines<br />

Schlüsselsymbols. Wenn Sie die grundsätzlichen<br />

Vorgänge einmal verstanden<br />

haben, ist sichere Kommunikation tatsächlich<br />

ein Kinderspiel.<br />

Was jetzt noch bleibt, ist sein Umfeld zu<br />

nötigen, ebenfalls GnuPG einzusetzen<br />

und wiederum andere davon zu überzeugen,<br />

es ebenfalls zu tun. So kann<br />

eine flächendeckende gesicherte Kommunikation<br />

entstehen. (ofr) n<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30862<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


88<br />

Basics<br />

<strong>ADMIN</strong>-Tipps<br />

Die Tipps des Monats<br />

<strong>ADMIN</strong>-Tipps<br />

Pavel Ignatov, 123RF<br />

Hier finden Sie eine Auswahl der im wöchentlichen <strong>ADMIN</strong>-Newsletter erscheinenden Praxistipps.<br />

n Bash-History im Griff<br />

Die meisten Benutzer der Bash-Shell lernen ziemlich schnell die History-Funktion<br />

zu schätzen, die die meisten über die Cursor-Tasten abrufen. Alternativ<br />

geht das auch mit anderen Tasten wie [Strg]+[p] und [Strg]+[n]. Mit [Strg]+[r]<br />

lässt sich die History sogar durchsuchen, wenn man danach Teile des gesuchten<br />

Kommandos eintippt.<br />

Trivialitäten wie »pwd« oder »cd« muss die History nicht unbedingt speichern,<br />

denn das verschwendet nur unnötig Platz im begrenzten Speicher (der sich<br />

übrigens mit der Umgebungsvariablen »HISTSIZE« einstellen lässt). Auf vielen<br />

Systemen verzichtet die Bash auch auf eine Speicherung, wenn man dem Befehl<br />

ein Leerzeichen voranstellt. Dies wird durch die Variable »HISTCONTROL«<br />

gesteuert, die dann »ignorespace« enthalten muss.<br />

Bestimmte Befehle ignoriert die History, wenn man die Variable »HISTIGNORE«<br />

entsprechend setzt:<br />

export HISTIGNORE="pwd:ls:ls ‐l:cd"<br />

Der Befehl muss dabei genau dem aufgeführten entsprechen, damit es klappt.<br />

Mit dem Spezialzeichen »&«, das für den letzten Befehl steht, verzichtet die Bash<br />

darauf, unmittelbar aufeinander folgende doppelte Befehle zu speichern. Zum<br />

gleichen Effekt führt »HISTCONTROL=ignoredups«. Global verhindert die Einstellung<br />

»HISTCONTROL=erasedups« duplizierte Befehle.<br />

Mit dem Befehl »history« lässt sich die History-Funktion steuern. So löscht »history<br />

‐c« den aktuellen Speicher, »history ‐d X« löscht den letzten X-ten Eintrag,<br />

und »history ‐w« schreibt das Protokoll in eine Datei (per Default »~/.bash_history«).<br />

Mehr Informationen zum History-Befehl sind übrigens in der Bash-Manpage<br />

zu finden, während »man history« Informationen zur History-Bibliothek<br />

enthält.<br />

n I/​O von VMs optimieren<br />

Wie es aussieht, laufen in Zukunft immer mehr<br />

Systeme nur noch als virtuelle Maschinen auf einem<br />

Server oder in der Cloud. Damit sie bei der<br />

Performance mit echter Hardware konkurrieren<br />

können, gibt es einige Dinge zu berücksichtigen.<br />

Bei der Linux-Virtualisierungstechnologie KVM setzt<br />

man dafür am besten die Virtio-Treiber ein, die für<br />

den Einsatz in virtuellen Maschinen optimiert sind.<br />

Auch beim Datenspeicher gibt es einige Optionen:<br />

Schneller als Image-Dateien, die auf der Festplatte<br />

des Host-Systems gespeichert sind, funktioniert<br />

beispielsweise der direkte Zugriff auf ein LVM-<br />

Volume.<br />

Läuft in der VM eine Linux-Distribution, gibt es<br />

noch einen Trick, das I/​O-System zu beschleunigen:<br />

Man setzt den I/​O-Scheduler der VM auf die Option<br />

„noop“, die den Scheduler quasi leerlaufen lässt.<br />

Dies ist anzuraten, weil der Scheduler des Host-Systems<br />

ja seinerseits bereits die Lese- und Schreibaufträge<br />

verwaltet. Täte die VM das auch noch, führte<br />

dies nur zu unnötigem Overhead.<br />

Zur Laufzeit lässt sich dies in der VM mit »echo noop<br />

> /sys/block/DEVICE/queue/scheduler« erreichen.<br />

Dauerhaft wird die Einstellung mit »elevator=noop«<br />

in der Zeile mit »GRUB_CMDLINE_LINUX« der Datei<br />

»/etc/default/grub« auf dem Gast-System eingestellt.<br />

(ofr)<br />

neue Tipps im Newsletter<br />

Jede Woche erscheint in unserem Newsletter ein neuer <strong>ADMIN</strong>-Tipp. Eine Sammlung aller Tipps<br />

finden Sie im Archiv der <strong>ADMIN</strong>-Tipps unter [http:// www. admin‐magazin. de/ News/ Tipps/].<br />

Den Newsletter können Sie unter [http:// www. admin‐magazin. de/ newsletter] abonnieren.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


90<br />

Test<br />

SQL-Acceleration<br />

Die Beschleunigerkarte ZD XL SQL Accelerator von OCZ im Test<br />

Race Condition<br />

Scott Betts, 123RF<br />

Datenbanken sind oft I/​O-lastig, weshalb man durch den Einsatz von Flash-Speicher den Hebel schon<br />

mal an der richtigen Stelle ansetzt, um ihnen Beine zu machen. Meist sind die Datenmengen aber so<br />

groß, dass es noch zu teuer wäre, sie komplett auf SSDs zu verlagern. Dann hilft eine intelligente Lösung<br />

aus Cache und Flash-Volumes. Jens-Christoph Brendel<br />

Während die Preise von Consumer-<br />

SSDs noch in diesem Jahr auf das Niveau<br />

von Festplatten sinken könnten,<br />

sind Enterprise-SSDs nach wie vor<br />

teuer. Sie sind für Dauerbetrieb bei<br />

voller Ausnutzung ihrer Kapazität ausgelegt,<br />

bieten mehr Performance und<br />

eine weitaus geringere Streuung ihrer<br />

Leistungsdaten, verglichen mit den für<br />

den gelegentlichen Einsatz im privaten<br />

Bereich konzipierten Geschwistern. Das<br />

lassen sich die Hersteller aber gut be-<br />

zahlen: Während im Consumer-Sektor<br />

deutlich weniger als ein Euro pro GByte<br />

anfallen, sind es im Enterprise-Bereich<br />

gerne mal 10 Euro pro GByte und mehr.<br />

Bei einer mehrere TByte großen Datenbank<br />

stellt sich deshalb bald die Frage,<br />

ob sich die komplette Verlagerung auf<br />

SSDs rechnet. Selbst wenn man diese<br />

Frage verneint, muss man nicht auf<br />

den Performance-Gewinn durch die<br />

schnellen Flash-Speicher verzichten.<br />

Die Lösung besteht dann darin, sie selektiv<br />

als Cache einzusetzen. In diesem<br />

Fall reicht ein vergleichsweise kleines<br />

Flash-Volume, um den Zugriff auf eine<br />

große Datenmenge um ein Vielfaches<br />

zu beschleunigen.<br />

Das Caching ist freilich applikationsspezifisch:<br />

Es braucht eine Software,<br />

die ermittelt, auf welche Daten am<br />

häufigsten zugegriffen wird, und die<br />

genau diese Daten dann auf einem<br />

SSD-Volume vorhält. Seltener genutzte<br />

Informationen bleiben dann auf den<br />

n So haben wir getestet<br />

Für unsere Benchmarks verwendeten wir einen bewährten Server der Firma Exus Technology. Das<br />

Modell ProServ II (Abbildung 1) mit einem neueren Intel-Mainboard (S5520HC) verfügte über 16<br />

GByte Hauptspeicher, von dem 8 GByte für die Datenbank reserviert wurden. Als Prozessoren dienten<br />

zwei Intel-Xeon-Quadcore-CPUs X5460, getaktet mit 3 GHz. Von den acht Festplattenslots des<br />

zwei Höheneinheiten großen Servers wurde nur einer genutzt, die interne SATA-Disk nahm das Betriebssystem<br />

Windows Server 2008 R2 und die Datenbank Microsoft SOL Server 2012 auf.<br />

Die eigentlichen Nutzdaten speicherte ein Premium-RAID-System der Firma transtec, angeschlossen<br />

via Ultra-320-SCSI mit zehn SATA-Slots. Insgesamt acht Platten darin bildeten eine RAID-5-Gruppe,<br />

die in zwei Partitionen aufgeteilt und zwei LUNs zugeordnet war. Auf einer befand sich die TPC-C-<br />

Datenbank.<br />

Abbildung 1: Exus-Server und transtec-<br />

RAID, die für die Benchmarks verwendet<br />

wurden.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Test<br />

SQL.-Acceleration<br />

91<br />

vergleichsweise langsamen Festplatten.<br />

Für Microsofts SQL Server 2012<br />

gibt es vom SSD-Hersteller OCZ eine<br />

solche Caching-Lösung in Form einer<br />

mit Flash bestückten Erweiterungskarte<br />

und der zugehörigen Treiber. Das<br />

<strong>ADMIN</strong>-<strong>Magazin</strong> hat diesen ZD XL SQL<br />

Accelerator getestet.<br />

Die Ergebnisse<br />

Die TPC-C-Datenbank war für die<br />

größtmögliche Last konfiguriert, auf<br />

die sich die Benchmark-Software via<br />

GUI einstellen lässt: 5000 Warehouses<br />

und 100 virtuelle User. Wir begannen<br />

ohne die Beschleunigerkarte, um einen<br />

Vergleichswert zu erhalten. Dabei erhöhten<br />

wir Stufe um Stufe die Anzahl<br />

virtueller User. Bei den ersten Schritten<br />

von zwei auf drei virtuelle User verdoppelte<br />

sich die erzielbare Leistung noch.<br />

Doch der Zuwachs verringerte sich<br />

schnell, die Kurve für den Leistungsanstieg<br />

näherte sich bereits nach gut<br />

einem Dutzend parallel aktiver User<br />

einer Horizontalen an. Die Belastung<br />

der Festplatten gelangte hier an die<br />

Sättigungsgrenze. Am Ende brachten es<br />

100 User auf 35 423 Transaktionen pro<br />

Minute (TPM) bei 7645 New Orders pro<br />

Minute (NOPM).<br />

Während der ersten Versuche waren<br />

allerdings die Caches, die es auch<br />

ohne die später zu testende Karte im<br />

Betriebssystem und in der Datenbank<br />

gibt, noch kalt. Wir wiederholten deshalb<br />

den Versuch mit 100 Usern sofort<br />

nach dem ersten Mal und kamen dabei<br />

mit aufgewärmten<br />

Caches auf 36 073 TPM<br />

bei 7909 NOPM. Der<br />

Zugewinn dank des<br />

systemeigenen Cache-<br />

Effekts betrug also nur<br />

magere zwei Prozent.<br />

Anschließend bauten<br />

wir die SD-XL-Acceleratorkarte<br />

ein und<br />

installierten ihre Treiber.<br />

Datenbank und<br />

Log wurden in einen<br />

frischen Startzustand<br />

zurückversetzt. Der<br />

Flash-Speicher auf der<br />

Karte wurde geteilt: in<br />

ein 100 GByte großes<br />

Volume, das im Falle<br />

des TPC-H-Benchmarks die Tempdb,<br />

bei TPC-C das Logfile aufnahm, und<br />

in einen 600 GByte großen Cache. Danach<br />

wärmten wir mithilfe eines von<br />

OCZ mitgelieferten Utilities den Cache<br />

an, sodass er von Anfang an die Daten<br />

enthielt, die der jeweilige Benchmark<br />

verwendete.<br />

Der TPC-H-Benchmark, der zuvor ohne<br />

die Beschleunigerkarte 8058 Sekunden<br />

Laufzeit benötigte, lief nun in 2603 Sekunden<br />

durch, also ziemlich genau in<br />

einem Drittel der Zeit. Der Bottleneck<br />

verschob sich nun vom I/​O-System zur<br />

CPU. Zwar verfügte der Testserver über<br />

acht Rechenkerne, aber die Abfragen<br />

wurden nun nach Auslastung eines<br />

Kerns an den nächsten weitergereicht –<br />

und diese Transfers kosten Zeit.<br />

Abbildung 3: Ergebnisse im TPC-C-Benchmark mit und ohne Beschleunigerkarte<br />

bei steigender Anzahl virtueller Clients.<br />

Beim TPC-C-Benchmark mit 100 Clients<br />

maßen wir im ersten Versuch Werte von<br />

bis zu 87 762 TPM, das sind mehr als 2,5<br />

mal so viele Transaktionen wie ohne<br />

Beschleunigerkarte, aber mit aufgewärmten<br />

Cache. In einem Versuch mit<br />

ansteigender Anzahl virtueller Clients<br />

wird der Unterschied noch deutlicher:<br />

Wo die Festplatten ohne das Z-Drive<br />

bereits in die Sättigung geraten, steigt<br />

die Kurve nun mit der Beschleunigerkarte<br />

weiter an (Abbildung 2).<br />

Fazit<br />

Eine kleine Datenbank, die vielleicht<br />

auch nicht den höchsten Performanceund<br />

Verfügbarkeitsansprüchen genügen<br />

muss, wird man mit der Accelerator-Karte<br />

deshalb nicht wirtschaftlich<br />

beschleunigen können, weil es dann<br />

billiger wäre, sie gleich ganz auf ein<br />

SSD-Volume zu kopieren. Anders sieht<br />

das aus, wenn der Anwender bestehende<br />

Backup- oder Hochverfügbarkeitskonfigurationen<br />

mit Festplatten-<br />

SANs nicht aufgeben kann oder will<br />

oder wo die Datenmenge so groß ist,<br />

dass die nötigen SSDs zu teuer wären.<br />

Die Beschleunigerkarte ist zudem kom-<br />

Abbildung 2: Die ZD-XL-Beschleunigerkarte von OCZ für Microsofts SQL-Server, die wir<br />

in diesem Artikel getestet haben.<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30682<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


92<br />

Test<br />

SQL-Acceleration<br />

Abbildung 3: Die Simulation bildet eine konfigurierbare Zahl von Lagerhäusern ab, von denen jedes<br />

10 Distrikte mit jeweils 3000 Kunden betreut.<br />

patibel mit Cluster-Lösungen und kann<br />

mit relativ wenig SSD-Speicher große<br />

Datenbanken auf Trab bringen. In einer<br />

solchen Konstellation spielt sie überzeugend<br />

ihre Vorteile aus.<br />

Je nach Workload erreichten wir eine<br />

Beschleunigung um mehr als den<br />

Faktor 2,5. Obwohl nur Teile der Datenbank<br />

(Tempdb, Indizes, Logfiles)<br />

auf Flash-Volumes verlagert wurden,<br />

während der Rest des schnellen Speichers<br />

als Cache benutzt wurde, ist der<br />

Performance-Zuwachs fast so hoch, als<br />

wäre die gesamte Datenbank auf SSDs<br />

ausgelagert worden. Die Cache-Lösung<br />

ist jedoch viel kostengünstiger.<br />

Bei allem ist der Installations- und<br />

Wartungsaufwand erfreulich gering.<br />

Ein Wizzard führt schnell durch die<br />

erste Einrichtung der Karte. Im Betrieb<br />

werden häufig verwendete Abfragen<br />

automatisch erkannt und gecachet. So<br />

landen immer die Daten auf dem Flash-<br />

Speicher, von denen die Datenbank<br />

am meisten profitiert. Ganz billig ist<br />

der Performance-Schub aber nicht: Für<br />

ein Z-Drive wie das im Test verwendete<br />

muss man schon an die 9700 Dollar auf<br />

die Ladentheke legen. n<br />

n Die TPC-Benchmarks<br />

Der TPC-C-Benchmark misst die Performance der Datenbank beim<br />

Online Transaction Processing (OLTP), also bei einem Workload, wie<br />

ihn beispielsweise ERP-Systeme bei der direkten Bearbeitung von Geschäftsprozessen<br />

erzeugen. Charakteristisch sind hier viele Abfragen<br />

unterschiedlicher Komplexität, die die Datenbank ad hoc parallel beantwortet.<br />

Das Gegenstück wäre die Stapelverarbeitung (Batchbetrieb).<br />

TPC-C simuliert zu diesem Zweck das Handelssystem einer fiktiven<br />

Firma. Es verfügt über eine wählbare Zahl von Warehouses, die jeweils<br />

in 10 Distrikte unterteilt sind. Zu jedem Distrikt gehören 3000 Kunden<br />

(Abbildung 3). Diese Kunden lösen nun Bestellungen aus, die jeweils<br />

eine wechselnde Anzahl Produkte betreffen. Die Bestellungen gelangen<br />

zu Mitarbeitern der Bestellannahme, deren Zahl ebenfalls konfigurierbar<br />

ist, und werden von ihnen gebucht. Dabei werden beispielsweise<br />

wechselnde Rabatte verrechnet und der Lagerbestand aktualisiert. Ein<br />

kleinerer Prozentsatz der Bestellungen kann nicht vom zuerst kontaktierten<br />

Warehouse bedient werden und wird an ein anderes weitergeleitet.<br />

Im Einzelnen ergibt sich der folgende Mix an Transaktionen:<br />

n New Order – Buchung einer neuen Bestellung eines Kunden: 45 Prozent<br />

n Payment – Aktualisierung der Verbindlichkeiten des Kunden: 43<br />

Prozent<br />

n Delivery – Asynchrone Auslieferung der Bestellungen: 4 Prozent<br />

n Order Status – Abfrage der zuletzt eingegangenen Bestellung eines<br />

Kunden: 4 Prozent<br />

n Stock Level – Abfrage des Lagerbestands einer bestimmten Ware: 4<br />

Prozent<br />

Der Benchmark produziert zwei Messwerte: Zum einen Transactions<br />

per Minutes (TPM), ein datenbankspezifischer Wert, ermittelt aus der<br />

Anzahl Transactions und Rollbacks pro Zeiteinheit. Dieser Wert eignet<br />

sich nicht für Vergleiche zwischen verschiedenen Datenbanken. Zum<br />

anderen New Orders per Minute (NOPM). Dieser Wert ist unabhängig<br />

von der konkreten Datenbank-Implementierung und empfiehlt sich für<br />

Vergleiche zwischen Datenbanken.<br />

Im Gegensatz zum oben beschriebenen TPC-C simuliert der TPC-H-<br />

Benchmark ein Decision-Support-System. Hier wird die Datenbank mit<br />

wesentlich komplexeren Anfragen belastet, die viele Berechnungen<br />

(etwa von Mittelwerten), häufige Sortier- und Gruppierungsfunktionen<br />

und zahlreiche Joins zwischen Tabellen enthalten. Da dabei viele<br />

Zwischenergebnisse entstehen, wird hier die tempdb ganz besonders<br />

gefordert.<br />

Die Tester verwendeten als Benchmark-Software für diesen Artikel<br />

HammerDB 2.14, eine freie Implementierung des TPC-C- und TPC-H-<br />

Standards. Neben der nicht weiter gepflegten TPC-C-Umsetzung der<br />

Open Source Development Labs hat diese Version den Vorteil, dank einer<br />

kleinen GUI mit weniger Handarbeit auszukommen. Die Ergebnisse<br />

kann man nicht direkt neben diejenigen stellen, die die teuren, streng<br />

überwachten Original-TPC-Benchmarks liefern. Sie bieten aber für interne<br />

Vergleiche gute Anhaltspunkte.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


94<br />

Virtualisierung<br />

OpenStack Havana<br />

foodandmore, 123RF<br />

Einen Cocktail an Neuerungen bietet das neue Havana-Release von OpenStack<br />

Cuba Libre<br />

Im Oktober war sie fällig, die Havana-Release von OpenStack, die die erfolgreiche Geschichte der Cloud-<br />

Umgebung fortschreiben soll. Hat sie das Zeug dazu oder handelt es sich um einen Rohrkrepierer? Dieser<br />

Beitrag wirft einen ersten Blick auf die wichtigsten Neuheiten. Martin Loschwitz<br />

Wer dem OpenStack-Projekt beim<br />

Entwickeln zuschaut, könnte fast neidisch<br />

werden: Das Projekt versteht es<br />

ausgezeichnet, den selbst auferlegten<br />

Zeitplan fast sklavisch zu befolgen.<br />

Pünktlich im Oktober erschien Open-<br />

Stack 2013.2 alias Havana. Wer das<br />

letzte Release »Grizzly« aufmerksam<br />

verfolgt hat, weiß: Grizzly war eigentlich<br />

ein Maintenance-Release für die<br />

Vorgänger-Version Folsom (2012.2),<br />

das maßgeblich dazu diente, in Folsom<br />

eingeführte Funktionen zu stabilisieren<br />

und auszubauen. Das Release galt<br />

als wenig innovativ, was manchem<br />

OpenStack-Admin aber so schlecht<br />

gar nicht gefallen haben dürfte. Denn<br />

das Update von Essex auf Folsom ein<br />

halbes Jahr zuvor hatte mehr Scherben<br />

produziert, als es dem OpenStack-Projekt<br />

lieb sein konnte. Die Modell-Pflege<br />

in Grizzly hob sich davon wohltuend<br />

ab. Nun also Havana – handelt es sich<br />

um ein weiteres Wartungs-Release oder<br />

haben die Entwickler diesmal mehr<br />

Mut bewiesen und tatsächlich neue<br />

Funktionen eingebaut? Der folgende<br />

Test sieht genauer hin und zeigt, was<br />

OpenStack Havana ausmacht.<br />

Metering mit Ceilometer<br />

Dass sich in Havana mehr verändert<br />

hat als zwischen Folsom und Grizzly,<br />

fällt bereits durch die beiden neuen<br />

Komponenten auf, die in Havana zum<br />

OpenStack-Kern gehören: Ceilometer<br />

und Heat. Dabei ist anzunehmen, dass<br />

Ceilometer im Alltag des OpenStack-<br />

Cloud-Anbieters in absehbarer Zeit<br />

deutlich mehr Relevanz zukommen<br />

wird als Heat. Denn in Form von Ceilometer<br />

hat erstmals eine umfassende<br />

Metering-Lösung Einzug gehalten, die<br />

genaue Statistiken über die genutzten<br />

Ressourcen einzelner Kunden bietet.<br />

Dabei ist es keineswegs so, dass das<br />

Thema Metering in OpenStack bis dato<br />

völlig unbeachtet gewesen wäre. Denn<br />

die Computing-Komponente Nova<br />

konnte bereits in früheren Versionen<br />

grundlegende Statistiken zur Nutzung<br />

durch einzelne Tenants anlegen.<br />

Allerdings waren die gewonnenen<br />

Daten im Anschluss lediglich über<br />

das Dashboard – also das OpenStack-<br />

Web-Interface – überhaupt auslesbar.<br />

Überdies waren auch die messbaren<br />

Parameter auf grundlegende Werte beschränkt.<br />

Für Cloud-Anbieter ist das ein<br />

Problem: Das deutsche Recht verlangt<br />

von Anbietern nämlich, dass diese für<br />

On-Demand-Dienste detaillierte und<br />

notfalls gerichtsverwertbare Nachweise<br />

darüber liefern, welche Dienste ein<br />

Kunde tatsächlich in Anspruch genommen<br />

hat. Wenn eben solche Nachweise<br />

fehlen, können Kunden gegebenenfalls<br />

die Rechnung beanstanden und der Anbieter<br />

bleibt auf seinen Kosten sitzen.<br />

Viele Cloud-Anbieter in Deutschland<br />

sind mittlerweile allein aufgrund dieser<br />

Tatsache auf die pauschalen Flatrate-<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Virtualisierung<br />

OpenStack Havana<br />

95<br />

Angebote ausgewichen, geben so aber natürlich einen großen Teil<br />

der Flexibilität auf, die eine Cloud eigentlich bietet.<br />

Mit Ceilometer soll in OpenStack nun alles besser werden. Der<br />

Dienst ist nicht neu, er hat den OpenStack-typischen Weg durchlaufen,<br />

war also zuerst ein externes Projekt. Kurz vor der Grizzly-<br />

Release wurde er dann zur »Integrated Component«, was zwar<br />

noch nicht dem Status einer völlig integrierten Kernkomponente<br />

gleichkommt, aber die Vorbereitungsstufe dazu ist. In Havana machen<br />

die Ceilometer-Entwickler ernst: Nun ist Ceilometer offizielle<br />

Core-Komponente und somit reif für den echten Cloud-Alltag.<br />

Metering-Technik<br />

Ceilometer (Abbildung 1) setzt unter der Haube auf das schon<br />

erprobte Design einer modularen Grundstruktur, die viele<br />

OpenStack-Komponenten nutzen. Der zentrale Dreh- und Angelpunkt<br />

der Lösung ist eine Datenbank, ab Werk empfehlen die<br />

Ceilometer-Entwickler MongoDB. Auch MySQL und PostgreSQL<br />

sowie HBASE unterstützt Ceilometer aber ausdrücklich. Zur Datenbank<br />

gehört der Ceilometer Collector, der die Nutzungsdaten<br />

der verschiedenen OpenStack-Dienste in die Datenbank schreibt.<br />

Jedoch organisiert sich der Collector diese Daten nicht selbst, er<br />

lagert die Aufgabe stattdessen an sogenannte Agents aus. Diese<br />

lassen sich über Konfigurationseinträge mit den anderen Open-<br />

Stack-Komponenten verbinden, Nova, Neutron & Co zeichnen<br />

Nutzungsdaten dann regelmäßig auf, um sie über die Agents an<br />

den Collector weiterzugeben. Schließlich sorgt die Ceilometer-API<br />

dafür, dass das für OpenStack obligatorische ReSTful-Interface<br />

zur Verfügung steht, über das sich externe Anwendungen mit dem<br />

Dienst verbinden und dessen Informationen auslesen können.<br />

Ceilometer ist für sich genommen freilich noch keine Billing-<br />

Lösung. Denn der Dienst ist nicht darauf ausgelegt, die gesammelten<br />

Daten direkt im Anschluss weiterzuverarbeiten – darauf<br />

haben sich die Entwickler des Dienstes nach langen Diskussionen<br />

verständigt. Ceilomter ist eine reine Metering-Applikation, die ihre<br />

Daten grundsätzlich für jegliche anderen Dienste anbieten kann.<br />

Damit aus Metering Billing wird, fehlt also noch eine Anwendungen,<br />

die Ceilometer-Daten entsprechend nutzt.<br />

Ein vielversprechender Ansatz zur Lösung dieses Problems ist der<br />

noch im Alpha-Stadium befindliche BillingStack [1], der genau<br />

diese Aufgabe wahrnehmen soll. Wer schon eine eigene Billing-<br />

Lösung hat, kann die über die ReSTful-API von Ceilometer aber<br />

gegebenenfalls auch selbst an OpenStack anbinden, wenn ein<br />

bisschen Handarbeit kein Problem ist. Belohnt werden Unternehmen<br />

dann mit der Möglichkeit, jeden auch noch so unscheinbaren<br />

Wert aufzuzeichnen, etwa die Zahl der VMs eines Kunden oder die<br />

Zahl der Netzwerkpakete, die dieser verbraucht hat. Oder die Zahl<br />

der Volumes und deren Gesamtgröße. Die Zahl der aktiven Images,<br />

die Zahl der genutzten Floating-IP-Adressen und viele andere<br />

Labels bietet Ceilometer beim Messen an. In Form von Ceilometer<br />

erhalten mit OpenStack betriebene Clouds jedenfalls ein überaus<br />

mächtiges Tool für statistische Betrachtungen.<br />

Orchestrierung in der Cloud<br />

Die zweite neue Komponente in Havana ist Heat (Abbildung 2).<br />

Heat wird alle Admins in Verzückung versetzen, denen Automatisierung<br />

und Orchestrierung von Bedeutung sind, denn letztlich<br />

Abbildung 1: Ceilometer ist OpenStacks künftige Metering-Lösung, die<br />

auch Billing-Applikationen zulässt. Eine fertige Billing-Lösung fehlt<br />

derzeit aber noch.<br />

Abbildung 2: Das Dashboard bildet die durch Heat hinzugekommenen<br />

Features in Havana bereits an.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


96<br />

Virtualisierung<br />

OpenStack Havana<br />

Abbildung 3: Anhand der Computing-Karte lässt sich darstellen, wie<br />

eine mit Heat gemanagte Umgebung gerade aussieht.<br />

ist Heat ein Spezialwerkzeug, mit dem<br />

sich aufwendige Tasks in OpenStack<br />

per Template vollständig automatisch<br />

umsetzen lassen. Die Idee hinter der<br />

Technik ist dabei keinesfalls neu. Denn<br />

schon in Amazons Public Cloud gibt es<br />

ein ganz ähnliches Werkzeug, das dort<br />

den Namen Amazon CloudFormation<br />

trägt. Wozu lässt sich die Lösung einsetzen?<br />

Das Prinzip der Automatisierung ist<br />

beim Cloud Computing ja im Grunde<br />

omnipräsent: Die ganze Idee hinter<br />

der Einführung von Lösungen wie<br />

der OpenStack-Umgebung ist es, mit<br />

möglichst wenig Aufwand möglichst<br />

große Erträge zu erzielen. Die Zeit, die<br />

Anbieter in die Wartung investieren,<br />

soll kleiner werden. Für die tatsächliche<br />

Infrastruktur der Cloud funktioniert<br />

das auch prächtig; ist OpenStack<br />

einmal eingerichtet, klicken Benutzer<br />

sich nach Lust und Laune die Dienste<br />

zusammen, die sie in der Cloud brauchen.<br />

Nachdem bei typischen Cloud-<br />

Kunden der Wunsch im Raum steht,<br />

auch komplexe IT-Setups in die Cloud<br />

zu verlagern, kann es aber einige Zeit<br />

dauern, bis die passende Konfiguration<br />

erstellt ist. An dieser Stelle tritt<br />

AWS-CloudFormations auf den Plan:<br />

Der Ansatz hier ist, auch den Nutzern<br />

Automatisierung zu bieten, damit diese<br />

sich ganze Computing-Umgebungen<br />

innerhalb der Cloud binnen Sekunden<br />

anlegen können.<br />

Technisch ist das Ganze über sogenannte<br />

Templates gelöst. In diesen legen<br />

die Cloud-Anwender die Parameter<br />

fest, die ihre Computing-Umgebung in<br />

der Cloud genauer beschreiben.<br />

Nutzbare<br />

Parameter<br />

Im Beispiel von Open-<br />

Stack kommt genau<br />

hier Heat ins Spiel:<br />

Heat versteht das AWS-<br />

CloudFormations-<br />

Template und konstruiert<br />

eine digitale<br />

Computing-Umgebung<br />

anhand der Admin-<br />

Vorgaben.<br />

Die Zahl der Parameter,<br />

die sich für die Automatisierung<br />

durch Heat festlegen lassen, ist beeindruckend.<br />

Grundsätzlich definiert der<br />

Admin zunächst einen Namen für die<br />

Computing-Umgebung. Ebenso kann<br />

er auch bestimmen, wieviele virtuelle<br />

Server Teil der Umgebung sein sollen<br />

und welche Dienste auf diesen Servern<br />

laufen sollen. Pro VM muss klar sein,<br />

welches Betriebssystem-Image zum<br />

Einsatz kommt. Sollen einzelnen VMs<br />

Sonderrollen zukommen (beispielsweise<br />

als Loadbalancer oder auch<br />

als Firewall), dann ist das selbstverständlich<br />

konfigurierbar. Dienste wie<br />

Clustering zwischen einzelnen VMs<br />

sind bei Bedarf ebenfalls über Heat<br />

einzurichten. Falls spezifische lokale<br />

Einstellungen nach dem Start notwendig<br />

sind, lassen sich auch beliebige<br />

Shell-Befehle direkt aus einem Heat-<br />

Template heraus ausführen. Sogar<br />

Firewall-Regeln für die einzelnen VMs<br />

lassen sich einstellen, sodass jedes<br />

virtuelle System von Anfang an mit den<br />

passenden Zugangsberechtigungen<br />

ausgestattet ist.<br />

Der Lohn der Mühe besteht in jeder<br />

Menge Zeit, die ein Admin sich im weiteren<br />

Verlauf seiner Arbeit erspart. Will<br />

er eine Webserver-Plattform aus Loadbalancern<br />

und Webservern starten,<br />

klickt er das entsprechende Template<br />

an und hat nach einigen Sekunden eine<br />

fertige Umgebung. Heat tut sogar noch<br />

mehr und überwacht im weiteren Verlauf<br />

automatisch, dass das Setup – wie<br />

vom Admin festgelegt – funktioniert.<br />

Per Template lassen sich Lastgrenzen<br />

festlegen, die nicht überschritten werden<br />

dürfen. Falls doch, löffelt Heat die<br />

Suppe aus und startet automatisch zusätzliche<br />

Ressourcen nach (Abbildung<br />

3). Im Grunde erweitert Heat Open-<br />

Stack also um horizontale Skalierung<br />

automatischer Art für die laufenden<br />

VMs. Fallen VMs nach dem Absturz<br />

eines Hypervisor-Knotens aus, würde<br />

Heat zudem auch das merken und automatisiert<br />

Abhilfe schaffen.<br />

Im Innern von Heat<br />

Heat besteht einerseits aus der<br />

»heat‐engine«, die die Arbeit im Hintergrund<br />

macht; dazu gesellt sich<br />

die API-Komponente »heat‐api« und<br />

»heat‐api‐cfn« (für AWS-CloudFormations,<br />

das Heat, wie erwähnt, neben<br />

dem eigenen Template-Format auch<br />

beherrscht). Dann gibt es auch noch<br />

»heat«, einen Kommandozeilen-Client,<br />

mit dem sich Heat direkt steuern lässt.<br />

Admins werden typischerweise ein<br />

Template schreiben und in Heat dann<br />

mit »heat« einfügen. Das Schreiben der<br />

Templates ist im Übrigen der lästige<br />

Teil der Arbeit mit Heat. Doch sind die<br />

Templates da, ist die Arbeit mit dem<br />

Dienst eine echte Freude. Sowohl für<br />

Heat als auch für Ceilometer gebühren<br />

den OpenStack-Entwicklern definitiv<br />

steil aufgerichtete Daumen.<br />

Neuerungen beim Netzwerk<br />

Auch fernab der beiden neuen Komponenten<br />

hat sich bei OpenStack so<br />

einiges getan. Wer sich die Release-<br />

Notes von Havana anschaut, stolpert<br />

über einen weiteren Namen, der eine<br />

vermeintlich neue Komponente zeigt.<br />

Doch der Eindruck täuscht, denn in<br />

diesem Falle hat das Kind lediglich<br />

einen neuen Namen erhalten: Hinter<br />

Neutron verbirgt sich die Komponente<br />

von OpenStack, die sich um das Thema<br />

Software-Defined-Networking mitsamt<br />

allen Anhängseln kümmert. Bis<br />

einschließlich Grizzly hieß die Komponente<br />

Quantum. Dann wandte sich ein<br />

amerikanischer Netzwerkausrüster an<br />

die OpenStack-Foundation und machte<br />

diese darauf aufmerksam, dass er den<br />

Namen als Marke für ein Produkt registriert<br />

habe. Die Foundation sah sich<br />

also quasi aus dem Nichts mit dem Vorwurf<br />

der Markenrechtsverletzung und<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Virtualisierung<br />

OpenStack Havana<br />

97<br />

einer drohenden Strafe konfrontiert.<br />

Man einigte sich letztlich darauf, dass<br />

man für Quantum einen neuen Namen<br />

suchen würde; in Havana ist dieser Vorgang<br />

abgeschlossen.<br />

Die Umbenennung ging freilich mit<br />

einigen Veränderungen einher; fast<br />

jeder Pfad innerhalb von OpenStack<br />

Networking hatte irgendwo das Wort<br />

»Quantum« in sich – all diese Pfade haben<br />

sich nun geändert. Gleiches gilt für<br />

die Namen der Konfigurationsdateien,<br />

bei denen Neutron auch Quantum ersetzt<br />

hat. Ebenso heißt das »quantum«-<br />

Binary in Havana nun »neutron«.<br />

Ihre eigenen Hausaufgaben haben<br />

die Networking-Entwickler also ganz<br />

ordentlich erledigt, falls Anwender allerdings<br />

Shell-Skripte nutzen, die noch<br />

»quantum« aufrufen oder die alten Python-Module<br />

von Quantum einsetzen,<br />

so sind diese händisch entsprechend<br />

zu ändern, damit die Funktionalität<br />

grundsätzlich erhalten bleibt.<br />

LBaaS, FWaaS<br />

Natürlich hat es bei Neutron auch<br />

technische Änderungen gegeben. Die<br />

größten Neuerungen sind die Plugins<br />

Loadbalancer-as-a-Service (LBaaS) sowie<br />

Firewall-as-a-Service (FWaaS), die<br />

in Neutron neu hinzugekommen sind.<br />

Beide machen sich ein Havana-Feature<br />

von Neutron zunutze, denn es ist für<br />

den OpenStack-Netzwerkdienst nun<br />

möglich, mehr als ein Plugin für Netzwerktechnologien<br />

zu laden. Zuvor ging<br />

nur ein Plugin und das war in der Regel<br />

jenes für die SDN-Technik, also meist<br />

Open vSwitch. In Havana kann Neutron<br />

zusätzliche Plugins laden. Die beiden<br />

genannten Dienste bauen genau darauf<br />

auf.<br />

LBaaS erweitert Neutron um eine<br />

Loadbalancer-Funktionalität – dabei<br />

kommt HAProxy zum Einsatz, das Neutron<br />

automatisch passend konfiguriert,<br />

falls der Benutzer eine Loadbalancer-<br />

Konfiguration benötigt.<br />

FWaaS ermöglicht es dem Benutzer,<br />

feinmaschige Regeln für IPtables in<br />

OpenStack zu hinterlegen, die die<br />

Cloud-Umgebung anschließend auf<br />

VMs anwendet. Das mag wie eine Tautologie<br />

klingen, gibt es in OpenStack<br />

doch bereits die sogenannten Security<br />

Groups, die ebenso festlegen, welche<br />

VMs von wo aus erreichbar sein sollen<br />

und wohin sie Verbindungen aufbauen<br />

dürfen. Doch gibt es zwischen den<br />

Umsetzungen erhebliche Unterschiede.<br />

Denn die Security-Groups erlauben<br />

im Grunde das Festlegen von Sicherheitsregeln<br />

pro Port, den der virtuelle<br />

Switch (zum Beispiel über Open<br />

vSwitch) einer VM zuweist. Umfassende<br />

Firewall-Setups lassen sich so freilich<br />

nicht sinnvoll verwalten, und genau<br />

diese Lücke will das FWaaS-Plugin<br />

nun schließen. Beide Plugins gehören<br />

zu Havana, im Neutron-Handbuch<br />

sind beide Funktionen ebenso bereits<br />

erwähnt, sodass einem Test nichts im<br />

Wege steht.<br />

VPNaaS<br />

Für großes Interesse sorgt auch die<br />

VPNaaS-Funktion, die Neutron nun<br />

über ein eigenes Plugin implementiert.<br />

VPNaaS zielt darauf ab, dass auf dem<br />

OpenStack-Netzwerkknoten<br />

VPN-<br />

Dienste laufen, mit<br />

denen sich Nutzer<br />

von außen unmittelbar<br />

verbinden können.<br />

Anschließend<br />

sind sie quasi in ihrem<br />

Cloud-Netzwerk<br />

per VPN eingeloggt<br />

und erhalten dort<br />

direkten Zugriff<br />

auf ihre virtuellen<br />

Systeme. Derzeit<br />

unterstützt VPNaaS<br />

nur IPsec, sodass<br />

die Einrichtung auf<br />

Client-Seite unter<br />

Umständen kompliziert<br />

sein könnte;<br />

grundsätzlich macht<br />

die Implementation<br />

aber einen guten<br />

Eindruck. Wer sich<br />

also nicht vor IPsec<br />

fürchtet, bekommt<br />

hier echten Mehrwert.<br />

Treiberumbau<br />

Und auch beim<br />

schon bestehenden<br />

Code hat sich einiges getan. Wer in<br />

der Vergangenheit Quantum mit Open<br />

vSwitch aufgesetzt hat, der weiß, dass<br />

es ein spezifisches Plugin für Open<br />

vSwitch in Quantum gab, so wie Plugins<br />

für andere SDN-Techniken ebenfalls<br />

zur Verfügung standen. Im OpenStack-<br />

Sprech sind all diese Plugins unter<br />

dem Oberbegriff »L2« zu einer Gruppe<br />

zusammengefasst, weil sie auf dem<br />

OSI-Layer 2 aufbauen. Das bestehende<br />

Plugin-System haben die Entwickler<br />

kräftig umgebaut: An die Stelle der<br />

einzelnen Plugins tritt nun ein eigenes<br />

Framework, das das Schreiben von L2-<br />

Agents durch generische Funktionen<br />

erleichtern und auch vereinheitlichen<br />

soll. Wer als Anbieter für spezifische<br />

Hardware bis dato ein L2-Plugin bauen<br />

wollte, braute im Wesentlichen sein<br />

eigenes Süppchen – nun gibt es einen<br />

dokumentierten Standard. Und noch<br />

einen sehr großen Vorteil bietet das<br />

Modular Layer 2 getaufte Prinzip, denn<br />

www.admin-magazin.de


98<br />

Virtualisierung<br />

OpenStack Havana<br />

Abbildung 4: Auch bei der Netzwerk-Darstellung haben die Dashboard-Coder<br />

zum Schminkkasten gegriffen und die Darstellung sehr<br />

viel ansehnlicher gemacht als noch in Grizzly.<br />

in Havana ist es erstmals möglich, mehrere<br />

L2-Techniken gleichzeitig einzusetzen,<br />

also verschiedene L2-Technologien<br />

nebeneinander in ein und derselben<br />

Cloud zu betreiben.<br />

Viel Neues bei Glance<br />

Änderungen gibt es auch bei Open-<br />

Stacks internem Image-Dienst Glance.<br />

Obgleich Glance eher unbedeutend<br />

wirkt, erfüllt es eine sehr wichtige Aufgabe,<br />

indem es Betriebssystem-Images<br />

für neu zu startende VMs nach einer<br />

entsprechenden Anweisung vom Computing-Dienst<br />

»Nova« liefert. In Havana<br />

tut Glance das bei Bedarf von mehreren<br />

Image-Storages aus gleichzeitig, denn<br />

die neue Version der Software kann mit<br />

verschiedenen Storage-Backends zur<br />

gleichen Zeit umgehen. Anwender können<br />

in Zukunft also ganz bewusst auswählen,<br />

auf welchem Image-Speicher<br />

ihre Images für die Nutzung bereitgestellt<br />

werden sollen. Für Cloud-Anbieter<br />

entsteht die Möglichkeit, unterschiedliche<br />

Storage-Qualitäten zu unterschiedlichen<br />

Preisen anzubieten – ein schneller,<br />

mehrfach redundanter Speicher für<br />

wichtige Images und – gegen entsprechende<br />

Bezahlung – ein langsamerer<br />

und weniger oft redundanter Speicher<br />

für Test-Images, der deutlich weniger<br />

kostet – der Phantasie sind kaum Grenzen<br />

gesetzt.<br />

Neue Storage-Backends sind ebenfalls<br />

hinzugekommen, so unterstützt Glance<br />

nun das Ablegen von Images auf dem<br />

verteilten Object-Store<br />

Sheepdog[2]. Auch<br />

GridFS[3] steht als<br />

Back end zur Verfügung,<br />

und in Havana<br />

kann Glance obendrein<br />

Images auch noch in<br />

Volumes vom Open-<br />

Stack-Volume-Dienst<br />

»Cinder« ablegen.<br />

Wer verhindern will,<br />

dass seine Nutzer<br />

unbotmäßig viel<br />

Speicherplatz in den<br />

Storage-Backends von<br />

Glance in Anspruch<br />

nehmen, kann in<br />

Havana ein Quota<br />

für Nutzer in Glance<br />

setzen, das über alle Storage-Backends<br />

hinweg gilt. Und wer festlegen möchte,<br />

dass nur bestimmte Image-Formate in<br />

Glance zum Einsatz kommen können,<br />

kann das in Havana über eine entsprechende<br />

Formatliste tun. So ließen sich<br />

beispielsweise RAW-Images ausschließen,<br />

die nicht komprimiert sind und im<br />

Storage unverhältnismäßig viel Platz in<br />

Anspruch nähmen.<br />

Neuigkeiten auch bei Cinder<br />

Der Volume-Dienst Cinder hat ebenso<br />

wie Glance einiges an Makeup im Rahmen<br />

des Havana-Releases abbekommen<br />

und glänzt mit neuen Features.<br />

Fast schon normal sind die vielen<br />

Updates bei den Storage-Treibern:<br />

In Grizzly ergoss sich bereits eine beträchtliche<br />

Menge neuer Treiber über<br />

Cinder-Anwender und in Havana kommen<br />

weitere Treiber dazu. Überdies<br />

erhielten die existierenden Treiber<br />

viele zusätzliche Funktionen. In Havana<br />

kann Cinder Volumes erstellen, die auf<br />

IBMs GPFS-Dateisystem lagern, und<br />

auch Unterstützung für das Hitachi<br />

Unified Storage feiert in Havana seine<br />

Premiere. Wer OpenStack mit VMware<br />

kombiniert, darf sich über die Unterstützung<br />

für VMwares Dateisystem<br />

freuen, die Cinder in Havana ebenfalls<br />

mitbringt.<br />

Zu den Treibern, die im Rahmen des<br />

Havana-Release deutlich aufgebohrt<br />

worden sind, zählen die für HPs<br />

Lefthand-Storages, für GlusterFS und<br />

für Storages von Coraid und Zadara.<br />

Der Treiber für HPs 3PAR-Produkte<br />

unterstützt nun auch die Anbindung<br />

per FibreChannel, wo vorher nur iSCSI<br />

ging. Auch Hausputz haben die Cinder-<br />

Entwickler gemacht: So haben sie den<br />

Standard-Treiber (LVM über iSCSI) aufgeräumt<br />

und effizienter gemacht. Auf<br />

die Kompatibilität zu bereits genutzten<br />

Konfigurationsdateien wirkt sich das<br />

aber nicht aus. Wer OpenStack mit<br />

Ceph als Storage-Dienst nutzt, darf sich<br />

über die Möglichkeit freuen, Volumes<br />

direkt aus Cinder heraus in Ceph als<br />

Backup zu sichern. Aus Nutzersicht ist<br />

ein weiteres interessantes Feature, ein<br />

Volume von einem Nutzer auf einen anderen<br />

übertragen zu können. Bis dato<br />

war das auf Cinder-Ebene streng voneinander<br />

getrennt. Havana bringt das<br />

Feature in Produktionsreife mit.<br />

Das Dashboard Horizon<br />

Das zentrale Web-Interface in Open-<br />

Stack hat im Rahmen der Havana-<br />

Release vor allem Support für die<br />

Funktionen erhalten, die in den Komponenten<br />

ringsum hinzugekommen<br />

sind. Es handelt sich fast schon um das<br />

typische Katz-und-Maus-Spiel, das sich<br />

bei jeder OpenStack-Release wiederholt:<br />

Die Entwickler bauen spannende<br />

Funktionen ein, die Dashboard-Entwickler<br />

tun ihr Möglichstes, damit sich<br />

die neuen Funktionen auch direkt aus<br />

dem Web-Interface heraus nutzen und<br />

konfigurieren lassen. Bei der Havana-<br />

Release hat das sehr gut funktioniert:<br />

Es ist beispielsweise möglich, die<br />

FWaaS- und LBaaS-Funktionen direkt<br />

aus Horizon heraus zu konfigurieren.<br />

Und Heat-Support ist ebenso präsent<br />

wie Unterstützung für die neue Komponente<br />

Ceilometer. Die Darstellung von<br />

Quotas ist nun deutlich hübscher als<br />

zuvor. Insgesamt sind die äußerlichen<br />

Änderungen beim Dashboard (Abbildung<br />

4) – und um die geht es ja vorrangig<br />

– allerdings eher dezent, wohl sehr<br />

zur Freude der meisten Nutzer.<br />

Neuerungen in Nova<br />

Auch in der Compute-Komponente hat<br />

sich vieles getan – viele kleine Details<br />

funktionieren nun anders als zuvor und<br />

sorgen so für ein sehr viel stimmigeres<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Virtualisierung<br />

OpenStack Havana<br />

99<br />

Bild. Die in Grizzly wieder eingeführte<br />

Unterstützung für HyperV hat das italienische<br />

Entwicklerteam von Cloudbase<br />

rund um Alessandro Pilotti konsequent<br />

ausgebaut. Der Support für VMware ist<br />

nun nicht zuletzt dank der Hilfe von VMware<br />

umfangreicher als zuvor. Mächtig<br />

viele Neuerungen hat auch die Implementation<br />

der »Cells« abbekommen,<br />

bei denen sich einzelne Hypervisor-<br />

Knoten zu logischen Gruppen zusammenfassen<br />

lassen. Die Kooperation<br />

zwischen Cinder und Nova hinsichtlich<br />

der Cells erlaubt es nun beispielsweise,<br />

Cinder-Volumes Cell-spezifisch zu<br />

nutzen. Obendrein unterstützt Nova<br />

nun nativ das GlusterFS-Backend von<br />

Qemu, so dass VMs auf GlusterFS nicht<br />

mehr den Umweg über FUSE nehmen<br />

müssen. PCI-Passthrough lässt sich<br />

über den Libvirt-Treiber in Nova nun<br />

problemlos umsetzen, allerdings ist<br />

Libvirt auch der einzige Treiber für<br />

Computing-Frameworks in Nova, der<br />

diese Funktion augenblicklich kann.<br />

Dann gibt es noch eine Funktion zum<br />

Verschlüsseln von Volumes – die wird<br />

dem versierten Admin Tränen in die<br />

Augen treiben, allerdings keine Freudentränen:<br />

Die Technik beruht nämlich<br />

auf der Annahme, dass es einen zentralen<br />

Schlüssel gibt, mit dem Volumes in<br />

Cinder von Nova verschlüsselt werden.<br />

Wer den Schlüssel hat, kann entschlüsseln,<br />

was er will. Den OpenStack-<br />

Entwicklern selbst ist klar, dass diese<br />

Lösung nur bedingt nützlich ist, die<br />

nächste Release – Icehouse – soll sehr<br />

viel flexiblere Verschlüsselungsmöglichkeiten<br />

bieten. Vom Havana-Feature<br />

ist aus sicherheitstechnischer Sicht<br />

jedenfalls abzuraten.<br />

Es würde an dieser Stelle den Rahmen<br />

sprengen, sämtliche Änderungen in<br />

Nova zu kommentieren, die erwähnenswert<br />

wären – vieles davon spielt<br />

sich unter der Haube ab und wird vom<br />

Benutzer in der Regel unbemerkt bleiben.<br />

Eine sichtbare Änderung betrifft<br />

das Starten von VMs: Bis zur Grizzly-<br />

Release ließen sich VMs starten, ohne<br />

ein Netzwerk anzugeben, mit dem sie<br />

verbunden sein sollten. In solchen Fällen<br />

hat Nova einfach eine Verbindung<br />

zu jedem verfügbaren Netz hergestellt,<br />

auch zu externen Netzen mit Floating-<br />

IPs. Weil das wenig<br />

sinnvoll ist, hat sich<br />

das Standardverhalten<br />

von Nova geändert: Die<br />

Angabe eines Netzes<br />

beim Starten einer VM<br />

ist nun verpflichtend,<br />

wenn mehre Netze vorhanden<br />

sind.<br />

Fazit: Gelungen<br />

OpenStack wird langsam<br />

erwachsen, die<br />

Havana-Release stellt<br />

das ganz eindrücklich<br />

unter Beweis. Denn obwohl<br />

es diesmal deutlich<br />

mehr tief in das<br />

System eingreifende<br />

Veränderungen gibt,<br />

wirkt Havana anfangs<br />

nicht annähernd so<br />

zerbrechlich wie es Folsom<br />

seinerzeit tat. Und<br />

einige der Neuerungen<br />

in Havana sind wirklich cool: Endlich<br />

schweigt OpenStack das Thema Metering<br />

nicht mehr tot, sondern stellt<br />

in Form von Ceilometer ein mächtiges<br />

Werkzeug für diese Aufgabe zur Verfügung.<br />

Heat wirkt momentan wie ein<br />

nettes Gimmick, wird sich im Alltag der<br />

Cloud-Admins aber als sehr nützliches<br />

Werkzeug herausstellen. Gleiches gilt<br />

für die massiven Änderungen, die Neutron<br />

– vormals Quantum – durchlaufen<br />

hat. Am Ende des eingeschlagenen<br />

Weges könnte die Möglichkeit stehen,<br />

unterschiedliche SDN-Technologien<br />

wie Open vSwitch und Cloudbases<br />

Windows-Portierung von Neutron in<br />

der gleichen Cloud zu hosten (Abbildung<br />

5), ohne dass Außenstehende<br />

einen Unterschied merken. Die Plugins<br />

für Firewall, Loadbalancer und VPN-asa-Service<br />

sind eine überaus nützliche<br />

Funktionserweiterung und füllen eine<br />

Lücke.<br />

Insgesamt vermag Havana also durchaus<br />

zu begeistern, sodass jeder Cloud-<br />

Admin gut daran tut, sich bereits vorab<br />

mittels einer Installation im Staging-<br />

System über eventuelle Migrationspfade<br />

zu informieren. Denn wer um die<br />

Havana-Features weiß, wird sie kaum<br />

langfristig missen wollen. (jcb) n<br />

Abbildung 5: OpenStack & Windows ist ein wichtiges Thema. Cloudbase<br />

ist im Moment quasi die Triebfeder dafür – auch in Havana gibt es<br />

viele wichtige Verbesserungen.<br />

n Info<br />

n Autor<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30804<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei hastexo. Er beschäftigt sich dort intensiv<br />

mit den Themen HA, Distributed Storage und<br />

OpenStack. In seiner Freizeit pflegt er Pacemaker für<br />

Debian.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


100<br />

Virtualisierung<br />

vSphere 5.5<br />

Viktoriya Sukhanova, 123RF<br />

VMware vSphere 5.5: Die wichtigsten Neuerungen im Überblick<br />

In der virtuellen<br />

Sphäre<br />

Virtualisierung gehört zum Standardrepertoire eines modernen Admins: vom Desktop bis zum Server-<br />

Verbund. vSphere – einst bekannt als VMware Infrastructure − heißt das Cloud-Computing-Produkt des<br />

Virtualisierungspioniers VMware und ist nun in Version 5.5 erschienen. Thomas Joos<br />

Skalierbarkeit und Hochverfügbarkeit<br />

heißen die Bereiche, die VMware in der<br />

jetzt erschienenen Version 5.5 seiner<br />

Virtualisierungslösung vSphere [1] betont.<br />

Daneben bringt der Hersteller die<br />

Hardware-Unterstützung auf den aktuellen<br />

Stand, um mit den Entwicklungen<br />

bei der vSphere-Konkurrenz Hyper-V [2]<br />

von Microsoft mitzuhalten.<br />

Größere Festplatten mit<br />

Abwärtskompatibilität<br />

Zunächst macht die neue vSphere-<br />

Version bei der Obergrenze der unterstützten<br />

Festplatten einen großen<br />

Schritt nach vorne. Sie nutzt die durch<br />

Windows Server 2012 eingeführten<br />

Möglichkeiten und verwaltet nun bis zu<br />

64 TByte große Speichermedien, statt<br />

bisher 2 TByte. Die Anzahl maximal<br />

unterstützter CPUs und die zugelassene<br />

Arbeitsspeichergröße pro Host<br />

verdoppelt die neue Version jeweils auf<br />

320 beziehungsweise 4 TByte. Letzteres<br />

gilt nun auch für die kostenlose ESXi-<br />

Variante [5] des Hypervisors (siehe<br />

Abbildung 1), deren Nutzer sich bislang<br />

auf 32 GByte RAM beschränkt sahen.<br />

Nicht benötigte Prozessoren versetzt<br />

die neue vSphere-Ausgabe in einen<br />

Stromsparmodus und nutzt dazu nicht<br />

mehr deren Performance States, sondern<br />

greift direkt auf ACPI-Funktionen<br />

zurück.<br />

In Formatfragen bleibt VMware auch<br />

bei vSphere 5.5 zum Speichern virtueller<br />

Platten dem im eigenen Haus<br />

entwickelten, aber dennoch offenen<br />

Format VMDK (Virtual Machine Disk)<br />

treu, während Konkurrent Hyper-V auf<br />

VHDX setzt. VMDK bietet neben der Unterstützung<br />

in anderen Virtualisierungsprodukten<br />

wie VirtualBox und Qemu<br />

den Vorteil der Abwärtskompatibilität.<br />

Bei älteren vSphere-Versionen bleibt<br />

n vSphere-Varianten und ‐Preise<br />

Bei der Preisgestaltung unterteilt VMware die verschiedenen vSphere-<br />

Varianten zunächst in fünf Kategorien. Darin enthalten sind die Editions<br />

genannten Ausgaben-Lizenzen für je einen Prozessor, während es sich<br />

bei den sogenannten Kits um Pakete handelt, die sechs CPUs abdecken.<br />

Die Grundkonfigurationen unterscheiden sich in ihrer Ausstattung und<br />

sind auf unterschiedliche Anwendungsszenarien zugeschnitten. Die<br />

Produktvergleichsseite [3] gibt einen vollständigen Überblick über die<br />

enthaltenen Features, [4] über die genauen Preise. Sie liegen zwischen<br />

445 Euro für das grundlegende Essentials Kit in der Standard-Variante<br />

und 25 500 Euro für vSphere mit dem Operations Management Enterprise<br />

Plus Acceleration Kit.<br />

Neben den Lizenzgebühren verpflichten die meisten vSphere-Pakete<br />

zum Kauf von mindestens einjährigem „Subscription and Support“<br />

(SnS). Diesen gibt es wiederum in einer Basic-Variante, der unter der<br />

Woche täglich zwölf Stunden bereitsteht, sowie als Production-Paket,<br />

das rund um die Uhr Unterstützung verspricht. Für das Essentials Kit<br />

gibt es darüber hinaus Support auf Einzellfallbasis. Daneben hängen<br />

die SnS-Preise wiederum von der zugrunde liegenden vSphere-Lizenz<br />

ab und bewegen sich zwischen 58 Euro pro Jahr beim Essentials Kit<br />

mit Basic-SnS und etwa 8300 Euro bei der vSphere-Luxusvariante mit<br />

Production-Support.<br />

Ausgabe 12-2013<br />

Admin<br />

www.admin-magazin.de


Virtualisierung<br />

vSphere 5.5<br />

101<br />

Abbildung 1: vSphere 5.5 kommt mit neuen Features.<br />

Abbildung 2: Der webbasierte Administrations-Client unterstützt einige<br />

Funktionen mehr als der native Windows-Client.<br />

Neue Techniken<br />

vSphere 5.5 unterstützt außerdem das<br />

Advanced Host Controller Interface<br />

(AHCI). Über virtuelle SATA-Controller<br />

stellt die Software auf diesem Weg bis<br />

zu 30 virtuelle Festplatten oder optische<br />

Laufwerke zur Verfügung. Jede<br />

virtuelle Maschine erhält maximal vier<br />

SATA-Controller. Dies ermöglicht die<br />

Hardware-Virtualisierungsschicht namens<br />

Virtual Hardware, die im neuen<br />

vSphere Version 10 erreicht hat. Sie<br />

unterstützt jetzt auch ausfallsichere<br />

Failover-Cluster auf Basis von Windows<br />

Server 2012 mit iSCSI und FCoE (Fibre<br />

Channel over Ethernet). Die letzteren<br />

beiden Techniken transportieren SCSIbeziehungsweise<br />

Fibre-Channel-Kommandos<br />

zur Kommunikation mit Geräten<br />

über ein Ethernet- oder IP-basiertes<br />

Netzwerk.<br />

Um die Stabilität zu erhöhen, lagert<br />

vSphere 5.5 in der Enterprise- und<br />

der Enterprise-Plus-Variante wichtige<br />

Systemdaten in sichere Bereiche des<br />

Arbeitsspeichers aus. Das soll Abstürze<br />

beim Auftreten defekter RAM-Bits<br />

verhindern, deren Wahrscheinlichkeit<br />

mit der Größe des Arbeitsspeichers<br />

zunimmt. Mit Augenmerk auf Desktopjedoch<br />

deren Begrenzung auf eine Festplattengröße<br />

von 2 TByte bestehen,<br />

größere virtuelle Speicher liest nur die<br />

neue Ausgabe. Der Nachteil von VMDK<br />

besteht in einer geringeren Flexibilität:<br />

Anders als VHDX-Dateien lässt sich die<br />

Größe von VMDK-Images nicht im laufenden<br />

Betrieb ändern. Dazu kommt,<br />

dass nur der webbasierte Administrations-Client<br />

(Abbildung 2) die neuen<br />

Medien unterstützt.<br />

Der native Windows-Client (Abbildung<br />

3) fällt an dieser Stelle aus und legt<br />

ohnehin den Verdacht nahe, dass VMware<br />

diesen etwas vernachlässigt. Auch<br />

wenn VMware die schrittweise Verbesserung<br />

des Windows-Clients angekündigt<br />

hat, weist die beim Web-Client<br />

verbesserte Oberfläche mit Drag-and-<br />

Drop-Unterstützung und einer Schnittstelle<br />

für das in den Enterprise-Varianten<br />

enthaltene Hadoop-Plugin darauf<br />

hin, dass der Fokus der Entwicklung auf<br />

ihm liegt. Der Web-Client ermöglicht<br />

nun zudem, auch im laufenden Betrieb<br />

SSD-Festplatten hinzuzufügen.<br />

Der Windows-Client verwaltet weiterhin<br />

auch kostenlose ESXi-Umgebungen,<br />

allerdings besteht hier die alte Grenze<br />

von 2 TByte bei virtuellen Festplatten<br />

weiter. Wollen Administratoren nicht<br />

auf den Web-Client ausweichen, steht<br />

ihnen alternativ die kostenlose vCenter-Appliance<br />

zur Verfügung. Deren<br />

Installation setzt allerdings zunächst<br />

einen der beiden anderen Verwaltungs-<br />

Clients voraus.<br />

Maschinen erlaubt vSphere virtuellen<br />

Systemen für die 3D-Grafikbeschleunigung<br />

direkt auf die entsprechenden<br />

Chips der Grafikkarte zuzugreifen, auch<br />

wenn sie von AMD oder Intel stammen;<br />

bislang funktionierte dies ausschließlich<br />

mit NVidia-Hardware.<br />

Hochverfügbarer Speicher<br />

Das neue vSphere-Feature »Virtual<br />

SAN« legt verschiedene Datenträger<br />

eines Host-Systems zu einem virtuellen<br />

Speicher zusammen, ebenso wie die<br />

in Windows Server 2012 verwendeten<br />

Speicher-Pools. Die so erzeugten Speicher<br />

stehen verschiedenen virtuellen<br />

Servern zur Verfügung. Leider unterliegt<br />

das bislang nur in einer Beta-Version<br />

ausgelieferte Virtual SAN weiterhin der<br />

eigentlich von vSphere 5.5 gesprengten<br />

2-TByte-Grenze bei den Festplattengrößen<br />

und bindet nur Speichermedien<br />

mit höchstens dieser Kapazität ein.<br />

Solche Mängel erwecken den Eindruck,<br />

das VMware noch nicht ganz ausgereifte<br />

Features auf Grund des Konkurrenzdrucks<br />

durch Hyper-V voreilig<br />

ausliefert. Denn auch wenn VMware<br />

hier voraussichtlich noch nachbessert,<br />

bedeutet der limitierte Funktionsumfang<br />

der virtuellen SANs einen klaren<br />

Punktverlust gegenüber Microsofts<br />

Hybrid-V, das in Windows Server 2012<br />

mit VHDX-Festplatten sogar iSCSI-Ziele<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


102<br />

Virtualisierung<br />

vSphere 5.5<br />

erstellt und sie als gemeinsame Festplatte<br />

(Shared VHDX) mehreren virtuellen<br />

Servern zur Verfügung stellt.<br />

Das primäre Ziel von Virtual SAN liegt<br />

allerdings ohnehin nicht darin, physische<br />

SANs zu ersetzen, vielmehr soll<br />

die Technik über mehrere Festplatten<br />

verteilten freien Speicherplatz zusammenfassen.<br />

In einem Speicher-Cluster<br />

unterstützt Virtual SAN bis zu acht Knoten.<br />

Zu beachten ist dabei, dass die Verwaltung<br />

auch hier ausschließlich über<br />

den Web-Client erfolgt und dass ältere<br />

vSphere-Versionen mit solchen Medien<br />

nicht zurechtkommen.<br />

Virtual SAN erfordert für den Betrieb<br />

mit SSD-Platten ausgestattete Hosts,<br />

auf denen es die Daten für den Zugriff<br />

der virtuellen Maschinen zwischenspeichert.<br />

Die gleiche Methode bietet<br />

vSphere in der neuen Ausgabe übrigens<br />

auch für andere Speicherbereiche,<br />

unabhängig von Virtual SAN an. Das<br />

Zwischenspeichern entlastet den physischen<br />

Festplattenspeicher deutlich,<br />

da Schreib- und Lesezugriffe über den<br />

schnellen SSD-Cache erfolgen. Doch die<br />

Technik kommt Virtual SANs besonders<br />

zugute, weil sie häufig umfangreiche<br />

Netzwerktransfers benötigen. Trotzdem<br />

sollte dem Virtual SAN ein schnelles<br />

Netzwerk zwischen den vSphere-Hosts<br />

Abbildung 4: Das neue Virtual SAN fasst unter anderem im Netzwerk<br />

verteilten Speicherplatz zusammen.<br />

Abbildung 3: Der Windows-Client existiert<br />

weiter, spielt jedoch offenbar eine untergeordnete<br />

Rolle.<br />

zugrunde liegen, idealerweise mit einer<br />

Übertragungsrate von mindestens 10<br />

Gigabit pro Sekunde und gebündelten<br />

Netzwerkkarten (NIC-Teams).<br />

Bei Virtual SANs definieren konfigurierbare<br />

Richtlinien (Abbildung 4) die<br />

mindestens erforderliche Leistung<br />

jedes virtuellen Servers sowie die Toleranzgrenze<br />

bei Ausfällen virtueller Platten.<br />

Außerdem legen sie die maximale<br />

Anzahl physischer Festplatten fest,<br />

über die sich die Daten einer virtuellen<br />

Platte verteilen. Um<br />

die Leistung zu erhöhen,<br />

verteilt Virtual<br />

SAN die gespeicherten<br />

Daten optional automatisch<br />

zwischen den<br />

angebundenen Hosts.<br />

Auf dieser Basis definieren<br />

die Richtlinien<br />

jedes einzelnen virtuellen<br />

Servers eigene Service<br />

Level Agreements<br />

(SLAs).<br />

Ein weiterer Wermutstropfen<br />

neben der<br />

2-TByte-Grenze ist<br />

eher finanzieller Natur:<br />

Virtual SAN erfordert<br />

eine eigene Lizenzierung,<br />

obwohl es in<br />

vSphere integriert ist.<br />

Die Rechengrundlage<br />

bildet dabei die Anzahl<br />

der verwendeten CPU-<br />

Sockel. Jeder Server erhält maximal<br />

fünf Festplattengruppen, die wiederum<br />

aus bis zu sechs physischen Festplatten<br />

und einer SSD bestehen. Zu den genauen<br />

Preisen der finalen Virtual-SAN-<br />

Version gibt es noch keine Angaben.<br />

Bessere Verwaltung mit<br />

vCenter Server Appliance<br />

Bereits mit vSphere 5 hatte VMware die<br />

Möglichkeit geschaffen, die vSphere-<br />

Umgebung mit einer virtuellen Maschine<br />

auf Linux-Basis zu verwalten<br />

[6]. Die vCenter Server Appliance soll<br />

die Virtualisierung unabhängig von<br />

Windows-Lizenzen machen, da sie die<br />

vSphere-Konfiguration ohne Windows-<br />

Server ermöglicht.<br />

Mit Version 5.5 verbessert VMware<br />

diese Möglichkeit der Verwaltung<br />

deutlich. Die Appliance verwaltet jetzt<br />

bis zu 500 Hosts mit insgesamt bis zu<br />

5000 virtuellen Servern; vorhergehende<br />

vCentre-Versionen beschränkten sich<br />

auf höchstens fünf ESXi-Hosts mit maximal<br />

50 virtuellen Servern. Zugleich arbeitet<br />

vCenter komplett selbstständig:<br />

Die Appliance basiert auf Suse Linux<br />

Enterprise Server und setzt weder Windows-Lizenzen<br />

noch Verwaltungsserver<br />

oder Datenbanken voraus, denn es<br />

verwendet die OpenSource-Datenbank<br />

PostgreSQL. vCentre eignet sich also<br />

für die zentrale und kostensparende<br />

Verwaltung von Umgebungen jeder<br />

Größe. Wächst die Zahl der Hosts und<br />

virtuellen Maschinen über das mit<br />

vCenter-Mitteln handhabbare Maß<br />

hinaus, lässt sie sich um eine externe<br />

Oracle-Datenbank erweitern.<br />

In Sachen Sicherheit legt vSphere 5.5<br />

ebenfalls eine Neuordnung vor. Die<br />

Verwaltung über die Shell setzt nun<br />

nicht mehr nur auf das Root-Konto: Es<br />

genügt auch das Administrator-Konto<br />

des entsprechenden Anwenders.<br />

Bessere Hochverfügbarkeit<br />

für Anwendungen<br />

Auch eine Verbesserung im Bereich<br />

der Hochverfügbarkeit liefert VMware<br />

mit vSphere 5.5 mit. Die neue Funktion<br />

»App HA«, die nur der Enterprise-Plus-<br />

Edition von vSphere beiliegt, gewährleistet<br />

die Hochverfügbarkeit virtueller<br />

Anwendungen, die auf verschiedenen<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


Virtualisierung<br />

vSphere 5.5<br />

103<br />

virtuellen Servern verteilt laufen. Schon<br />

frühere vSphere-Versionen reagierten<br />

auf den Ausfall von einzelnen Servern<br />

mithilfe von VMware High Availability.<br />

Sobald ein Virtualisierungs-Host im<br />

Netzwerk ausfällt, und damit die darauf<br />

laufenden virtuellen Maschinen, erkennt<br />

vCenter diesen Ausfall und startet<br />

die entsprechenden Gastsysteme<br />

ersatzweise auf einem anderen Host im<br />

Netzwerk.<br />

Das System erkennt auch Abstürze<br />

virtueller Server und startet diese bei<br />

entsprechender Konfiguration automatisch<br />

neu. Allerdings schlägt auch die<br />

neue Version in puncto Ausfallsicherheit<br />

fehl, wenn eine virtuelle Maschine<br />

mehrere vCPUs einsetzt.<br />

Mit App HA für die Hochverfügbarkeit<br />

für Anwendungen geht es nun noch<br />

einen Schritt weiter. Das System überwacht<br />

nicht nur die Verfügbarkeit der<br />

virtuellen Server, sondern mithilfe von<br />

VMware Hyperic auch direkt auf den<br />

virtuellen Servern laufende Prozesse.<br />

Damit erkennt ein Agent im virtuellen<br />

Server Prozessausfälle und reagiert gemäß<br />

der vom Administrator definierten<br />

Vorgaben.<br />

Im Fall eines Problems vermeidet das<br />

System zunächst, die ganze virtuelle<br />

Maschine auf einen anderen Host zu<br />

transferieren oder neu zu starten, denn<br />

diese im Fall großer Gastsysteme aufwendigen<br />

Vorgänge kosten Zeit und<br />

Bandbreite und bergen somit wiederum<br />

die Gefahr neuerlicher Probleme.<br />

Stattdessen startet App HA einzelne<br />

ausgefallene Dienste direkt in den virtuellen<br />

Servern neu. Erst wenn diese<br />

Maßnahme scheitert, greift es auf weiterführende<br />

Maßnahmen zurück, von<br />

der automatischen Benachrichtigung<br />

an den Admin bis zum Neustart und<br />

dem Verschieben auf einen anderen<br />

Host-Rechner. App HA konkurriert also<br />

mit Microsofts System Center Operations<br />

Manager, allerdings bleibt die<br />

Auswahl der zu überwachenden Anwendungen<br />

geringer.<br />

Fazit<br />

In der Summe zeigt sich die neue<br />

vSphere-Version als ambitionierte Aktualisierung,<br />

die sowohl Anpassungen<br />

an die von aktuellen Windows-Server-<br />

Versionen bereitgestellten Funktionen<br />

als auch neue Features mitbringt.<br />

Leider halten diese noch nicht immer,<br />

was sie versprechen, weshalb sich etwa<br />

beim geplanten Einsatz sehr großer<br />

Festplatten eine genaue Prüfung empfiehlt,<br />

ob alle gewünschten Funktionen<br />

mitspielen. (csc) n<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30687


freeX<br />

Einführung<br />

105<br />

Sonderteil<br />

Auf der folgenden Seite startet der regelmäßige<br />

FreeX-Sonderteil des <strong>ADMIN</strong>-<strong>Magazin</strong>s. Hier finden<br />

Sie Know-how-Artikel und Workshops von erfahrenen<br />

Autoren aus der langen Tradition der FreeX.<br />

GELI und Pefs..................................106<br />

Die Privatsphäre wahren: Unter FreeBSD verschlüsseln<br />

GELI und Pefs Festplatten, Slices und<br />

Partitionen.<br />

ika747, 123RF<br />

www.admin-magazin.de Admin Ausgabe 12-2013


melpomen, 123RF<br />

Daten verschlüsseln mit FreeBSD<br />

Verschlusssache<br />

Wie die jüngsten Ereignisse rund um die NSA-Affäre gezeigt haben, wird es immer wichtiger, seine Daten<br />

vor fremden Zugriffen zu schützen. FreeBSD bietet mehrere Möglichkeiten, den Schutz durch Verschlüsselung<br />

zu gewährleisten. Mit GELI und Pefs werden in diesem Artikel zwei Konzepte in Theorie und Praxis<br />

näher beleuchtet. Jürgen Dankoweit<br />

Für einen Notebook-Besitzer ist es wohl<br />

eine Horrorvorstellung, sein Gerät im<br />

Zug, Flugzeug oder Bibliothek zu vergessen.<br />

Nicht nur das Notebook wäre<br />

wohl für immer verschwunden. Meist<br />

sind auch wichtige persönliche Daten,<br />

Geschäftsberichte und das geheime<br />

Tagebuch gespeichert, die nicht für<br />

fremde Augen bestimmt sind. Es bieten<br />

sich viele Möglichkeiten an, solche<br />

Informationen zu schützen oder den<br />

Zugriff darauf auch für Profis erheblich<br />

zu erschweren. Die Zauberformeln sind<br />

die Verschlüsselung von Festplatten<br />

(Disk Encryption) und die nicht minder<br />

wirksame Alternative der Dateiverschlüsselung<br />

(File Encryption).<br />

Mit der Einführung des GEOM-Frameworks<br />

in FreeBSD 5 wurde eine Möglichkeit<br />

geschaffen, Plugins in den Zugriffspfad<br />

für Datenträger einzuhängen.<br />

Dazu werden die Kommunikationswege<br />

zwischen Dateisystem durch GEOM<br />

geleitet. Innerhalb von GEOM wird<br />

der Datenstrom an Module verteilt,<br />

bevor er zu den Lowlevel-Funktionen<br />

(Gerätetreiber) gelangt. Hier setzt das<br />

Modul GELI zur Verschlüsselung von<br />

Festplatten an, wie es in Abbildung 1 zu<br />

sehen ist.<br />

Eingestöpselt<br />

Das Plugin GELI ist ein Modul, mit dessen<br />

Hilfe sich ganze Datenträger, Slices<br />

oder Partitionen unabhängig vom verwendeten<br />

Dateisystem verschlüsseln<br />

lassen. Da GELI unterhalb der Dateisystemschicht<br />

angesiedelt ist, arbeitet es<br />

vollkommen transparent, sodass ein<br />

Datenträger, der mit GELI behandelt<br />

wurde, sich wie gewohnt verhält. Der<br />

einzige Unterschied liegt darin, dass die<br />

Daten eben verschlüsselt in den einzelnen<br />

Sektoren abgelegt werden.<br />

Wenn das System über kryptografische<br />

Hardware verfügt, wird diese vom<br />

Crypto-Framework automatisch verwendet.<br />

Solche Kryptografie-Prozessoren<br />

gibt es auch für Notebooks, die<br />

über einen Mini-PCI-Steckplatz verfügen.<br />

Allerdings gilt es hier zu beachten,<br />

dass das BIOS des Notebooks nicht<br />

unbedingt solche Karten akzeptiert<br />

(IBM/​Lenovo Thinkpads). Kryptografie-<br />

Prozessoren übernehmen die Berechnungen<br />

zur Verschlüsselung der Daten,<br />

was den Mikroprozessor des Rechners<br />

je nach Auswahl des Algorithmus<br />

erheblich entlastet. Damit diese Merkmale<br />

genutzt werden können, wurde<br />

mit OpenBSD 2.7 das genannte Crypto-<br />

Framework eingeführt, das später auch<br />

in FreeBSD zum Einsatz gelangte. GELI<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


freeX<br />

Verschlüsselung<br />

107<br />

Der Benutzer bekommt einen Schlüssel<br />

und der EDV-Service der Firma hat<br />

ebenfalls einen Schlüssel, der mit dem<br />

erstgenannten nicht identisch ist.<br />

Damit erhält der EDV-Service im Falle<br />

eines Sicherheitsupdates ebenfalls Zugriff<br />

auf die Festplatte, auch wenn ein<br />

Benutzer seinen Schlüssel versehentlich<br />

zerstört hat. Damit kann er über<br />

seinen zuvor gesicherten Masterkey<br />

wieder auf seine Daten zugreifen.<br />

GELI bietet eine Option, Platten mit einem<br />

zufälligen Einmalschlüssel einzusetzen.<br />

Dadurch lassen sich beispielsweise<br />

Swappartitionen und temporäre<br />

Dateisysteme verschlüsseln. Daten, die<br />

in einer Swap-Partition unverschlüsselt<br />

abgelegt sind, sind für Hacker ein<br />

wahres Eldorado. Schlampig programmierte<br />

Software, die Passwörter im<br />

Klartext im Arbeitsspeicher temporär<br />

ablegt, wird dadurch angreifbar. Wenn<br />

aber die Swap-Partition verschlüsselt<br />

ist, sind die Chancen sehr gering, etwas<br />

zu finden. Die Verwendung eines Einmalschlüssels<br />

ist nützlich, weil bei einem<br />

Neustart des Systems die in dieser<br />

Partition enthaltenen Informationen<br />

nicht mehr lesbar sind. Die Funktionsweise<br />

von GELI ist sehr einfach und<br />

anhand von Abbildung 2 recht schnell<br />

erläutert.<br />

Während der Initialisierungsphase<br />

erzeugt GELI einen neuen Gerätetreinutzt<br />

dieses Framework intensiv beim<br />

Einsatz der derzeit implementierten<br />

Crypto-Algorithmen AES, Blowfish und<br />

TripleDES (3DES).<br />

Es lassen sich nicht nur Home-Partitionen<br />

verschlüsseln, sondern auch die<br />

komplette Root-Partition. Allerdings<br />

muss dann beim Systemstart eine<br />

Passphrase eingegeben werden, damit<br />

ein Zugriff auf die verschlüsselte<br />

Root-Partition möglich ist. Der große<br />

Vorteil ist dann, dass nur derjenige das<br />

Betriebssystem booten kann, der auch<br />

die gültige Passphrase besitzt. Auch<br />

wenn die Festplatte in einen anderen<br />

Rechner eingebaut wird, bleibt die<br />

Abfrage des Passworts immer erhalten.<br />

Damit ist eine solche Festplatte für den<br />

neugierigen Mitbürger oder Staatsdiener<br />

wertlos.<br />

Durch seine einfache Sektor-zu-Sektor-<br />

Verschlüsselung erreicht GELI sehr<br />

hohe Geschwindigkeit und Sicherheit<br />

beim Verarbeiten der Informationen.<br />

Viele andere Systeme zur Verschlüsselung<br />

von Festplatten auf Softwarebasis<br />

verwenden temporäre Dateien. Dadurch<br />

wird nicht nur der Ablauf erheblich<br />

gebremst, sondern es leidet unter<br />

Umständen auch die Datensicherheit<br />

und Datenintegrität. Dies macht sich<br />

spätestens dann bemerkbar, wenn der<br />

Rechner abstürzt. Man darf nicht vergessen,<br />

dass temporäre Dateien immer<br />

zum Hacken eines Systems einladen!<br />

Bei der Sektor-zu-Sektor-Verschlüsselung<br />

werden keine temporären Dateien<br />

benötigt, weil die Dateien während des<br />

Schreibvorgangs verschlüsselt beziehungsweise<br />

beim Lesen entschlüsselt<br />

werden. Das macht es extrem schwierig,<br />

die Daten solcher Festplatten zu<br />

extrahieren. Ein anderer Vorteil dieser<br />

Verschlüsselungstechnik ist, dass es<br />

fast unmöglich ist, ganze Dateien zu<br />

rekonstruieren, da eine Struktur nicht<br />

mehr erkennbar ist.<br />

Backup-Schlüssel<br />

Der Einsatz von zwei voneinander<br />

unabhängigen Schlüsseln ist in GELI<br />

realisiert. So lassen etwa ein privater<br />

Schlüssel und ein Unternehmensschlüssel<br />

generieren. Das ist beispielsweise<br />

für Notebooks von Außendienstmitarbeitern<br />

eine interessante Option.<br />

Abbildung 1: Kommunikation zwischen Dateisystem, GELI und Hardware.<br />

ber und teilt dies dem Device-Driver-<br />

Daemon »devd« mit. Er übernimmt<br />

unter FreeBSD die Verwaltung der Gerätetreiber<br />

und ist somit automatisch<br />

involviert. Der Name des neuen Geräts<br />

setzt sich aus dem Treibernamen und<br />

der Endung ».eli« zusammen. Nachdem<br />

die Partition oder das Slice bei GELI<br />

angemeldet sind, findet die Kommunikation<br />

mit dem Datenträger nur noch<br />

über den von GELI erzeugten Gerätetreiber<br />

statt. Beim Aushängen und<br />

Abmelden der Partition bekommt der<br />

Device-Driver-Daemon die Anweisung,<br />

den von GELI erzeugten Treiber wieder<br />

zu entfernen.<br />

Umsetzung<br />

Die Funktionsweise liest sich in der<br />

Theorie komplizierter, als sie sich in<br />

der Praxis darstellt. Es gibt prinzipiell<br />

drei Möglichkeiten für den Einsatz von<br />

GELI: Die einfachste ist die Verschlüsselung<br />

einer Partition. Damit erreicht<br />

man schnell das gewünschte Ziel. Anwenden<br />

sollte man es zum Schutz der<br />

Home-Partition.<br />

Die nächste Option ist die kryptografische<br />

Behandlung eines ganzen Datenträgers,<br />

wenn man seine privaten Daten<br />

auf dieser Platte auslagern möchte.<br />

Dies ist interessant für wechselbare<br />

Datenträger wie DVD-RAMs oder eine<br />

externe Festplatte. Maximale Sicherheit<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


108<br />

freeX<br />

Verschlüsselung<br />

Nach der Eingabe des Passworts erfolgt<br />

im nächsten Schritt die Registrierung<br />

der Partition bei GELI:<br />

geli attach ‐k /root/geli/da0s1g.key U<br />

/dev/da0s1g<br />

Enter Passphrase:<br />

Hier ist das zuvor benutzte Passwort<br />

einzugeben. Ab diesem Schritt findet<br />

die Kommunikation mit dem Datenträger<br />

nur noch über den von GELI und<br />

»devd« generierten Treiber statt:<br />

ls /dev/*.eli<br />

da0s1g.eli<br />

Abbildung 2: Funktionsweise von GELI.<br />

bietet die Verschlüsselung aller Datenträger<br />

einschließlich desjenigen Datenträgers,<br />

von dem das System bootet.<br />

Dies ist die aufwendigste und komplizierteste<br />

Methode. Vor allem, weil das<br />

Installationsprogramm von FreeBSD<br />

nicht mit solchen Datenträgern umgehen<br />

kann.<br />

Sicheres Heim<br />

Zunächst sei der einfachste Fall betrachtet.<br />

Es soll die Home-Partition<br />

»$home« (auf »/dev/da0s1g« liegend)<br />

verschlüsselt werden. Zunächst legt<br />

die folgende Zeile in der Datei »/boot/<br />

loader.conf« fest, dass das Modul GELI<br />

während der Bootphase geladen wird:<br />

geom_eli_load="YES"<br />

Zum Verschlüsseln der Partition generiert<br />

man einen Schlüssel, der auf<br />

n Tabelle 1: Übersicht über Gerätebezeichnungen<br />

Gerät<br />

Festplatte: Eine SCSI-Festplatte mit<br />

ID 0 heißt »da0«, die erste IDE-Festplatte<br />

»ad0«.<br />

USB-Stick bei SCSI-Systemen: »da1«<br />

oder bei IDE-Systemen »da0«.<br />

einer Reihe von Zufallszahlen basiert.<br />

Wichtig ist, dass der Schlüssel an einem<br />

sicheren Ort im Verzeichnisbaum liegt.<br />

Dafür bietet sich das Home-Verzeichnis<br />

des Root-Users an:<br />

mkdir /root/geli<br />

dd if=/dev/random of=/root/geli/da0s1g.U<br />

key bs=64 count=1<br />

Diesen Schlüssel sollte man zur Sicherheit<br />

auch auf einem USB-Stick speichern.<br />

Nun erfolgt die Initialisierungsphase<br />

(siehe Abbildung 2) der Partition,<br />

in deren Verlauf man nach einen Passwort<br />

gefragt wird. Die Sektorgröße soll<br />

dabei 4096 Byte sein (»‐s 4096«).<br />

geli init ‐s 4096 ‐K /root/geli/da0s1g.U<br />

key /dev/da0s1g<br />

Enter new Passphrase:<br />

Reenter new Passphrase:<br />

Bemerkung<br />

Diese Platte soll komplett verschlüsselt werden. Die Kapazität<br />

der Platte ist keinen besonderen Beschränkungen unterworfen.<br />

Abhängig vom verwendeten System erhält der USB-Stick unterschiedliche<br />

Gerätenamen: Bei SCSI ist dies »da1«, bei IDE<br />

»da0«, weil USB-Sticks wie SCSI-Geräte behandelt werden. Die<br />

Kapazität des USB-Sticks sollte mindestens 2 GByte betragen.<br />

Um höchstmögliche Sicherheit zu gewährleisten,<br />

überschreibt der folgende<br />

Befehl die Partition mit Zufallszahlen,<br />

was abhängig von der Größe ziemlich<br />

lange dauern kann:<br />

dd if=/dev/random of=/dev/da0s1g.eli U<br />

bs=1m<br />

Nachdem man bei einer Tasse Kaffee<br />

die Wartezeit genussvoll überbrückt<br />

hat, folgen die letzten Schritte. Um die<br />

Partition nutzen zu können, muss sie<br />

formatiert und eingehängt werden:<br />

newfs /dev/da0s1g.eli<br />

mount /dev/da0s1g.eli $home<br />

Die folgenden Zeilen in »/etc/rc.conf«<br />

sorgen dafür, dass beim nächsten<br />

Systemstart die Partition automatisch<br />

eingebunden wird:<br />

geli_devices="da0s1g"<br />

geli_da0s1g_flags="‐k /root/geli/da0s1g.U<br />

key"<br />

Wichtig ist dabei die Angabe zwischen<br />

»geli_« und »_flags«: Hier muss der<br />

Name eingetragen werden, der in »geli_<br />

devices« steht. Zusätzlich ergänzt oder<br />

ändert man die Mount-Tabelle »/etc/<br />

fstab« (statt »$home« ist natürlich der<br />

Verzeichnisname einzutragen):<br />

/dev/da0s1g.eli $home ufs rw 0 0<br />

Die Partition lässt sich auch wieder<br />

aushängen:<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


freeX<br />

Verschlüsselung<br />

109<br />

umount $home<br />

geli detach da0s1g.eli<br />

Wenn die Einträge in »/etc/rc.conf«<br />

stimmen, lässt sich eine verschlüsselte<br />

Partition auch mit »/etc/rc.d/geli<br />

start« ein- und mit »/etc/rc.d/geli stop«<br />

wieder aushängen. Aus dem oben<br />

erwähnten Grund sollte man auch die<br />

Swap-Partition verschlüsseln. In der<br />

systemweiten Konfigurationsdatei<br />

»/etc/rc.conf« sorgt dafür die Zeile:<br />

geli_swap_flags="‐d"<br />

Die Option »‐d« bedeutet, dass bei einem<br />

Systemabschluss die Swap-Partition<br />

automatisch aus dem GELI-System<br />

ausgehängt wird. Dadurch wird der Vorgang<br />

sauber abgeschlossen. Außerdem<br />

muss in der Mount-Tabelle der Eintrag<br />

zur Swap-Partition so aussehen:<br />

/dev/da0s1b.eli none swap sw 0 0<br />

Zum Schluss initialisiert der Befehl<br />

dd if=/dev/random of=/dev/da0s1b bs=1m<br />

geli onetime ‐d ‐e 3des da0s1b<br />

swapon /dev/da0s1b.eli<br />

den Auslagerungsbereich. Während des<br />

System-Neustarts erhält man folgende<br />

Ausgabe:<br />

GEOM_ELI: Device da0s1b.eli created.<br />

GEOM_ELI: Encryption: AES‐CBC 128<br />

GEOM_ELI: Crypto: software<br />

Vollschutz<br />

Um einen Datenträger zu verschlüsseln<br />

und darauf FreeBSD zu installieren,<br />

muss man schon einen recht großen<br />

Aufwand treiben. Aber wer sein System<br />

richtig gut schützen will, sollte<br />

sich nicht abschrecken lassen. Vor der<br />

Konfiguration sollte man sich ein paar<br />

Utensilien bereitlegen: Installations-<br />

DVD oder ‐CD und einen qualitativ<br />

hochwertigen USB-Stick (Datensicherheit!).<br />

Wichtig ist, dass das BIOS<br />

des Rechners eine Option anbietet,<br />

um vom USB-Stick booten zu können.<br />

Falls diese Möglichkeit nicht gegeben<br />

ist, kann man sich alternativ auch eine<br />

kleine Partition auf der<br />

Festplatte einrichten.<br />

Ansonsten ist die Vorgehensweise<br />

die gleiche.<br />

In Tabelle 1 sind<br />

die Gerätebezeichnungen<br />

zusammengefasst.<br />

Das folgende Beispiel<br />

geht von einer IDE-<br />

Festplatte in einem<br />

Notebook aus. Die<br />

Kapazität beträgt 40<br />

GByte. In Tabelle 2 ist<br />

das vorgesehene Layout<br />

dargestellt.<br />

Der erste Schritt, um<br />

eine Festplatte komplett<br />

zu verschlüsseln, besteht darin,<br />

das System von der Installations-DVD<br />

oder ‐CD zu booten und im Installationsprogramm<br />

die sogenannte Fixit-<br />

Shell aufzurufen (siehe Abbildung 3).<br />

Man erreicht sie durch Auswahl von<br />

»sysinstall, fixit« und anschließend Option<br />

2 »CDROM/DVD«.<br />

Vorsicht: Sackgasse<br />

Beim Starten der Fixit-Shell wird man<br />

mit einem Hinweis konfrontiert, den<br />

man nicht ignorieren darf, weil es sonst<br />

bei der späteren Installation zu unlösbaren<br />

Problemen kommen kann. Die<br />

Dateien »/etc/pwd.db«, »/etc/spwd.<br />

db« und »/etc/group« müssen mit den<br />

Dateien auf dem Installationsmedium<br />

symbolisch verlinkt werden. Zur Sicherheit<br />

werden die alten Symlinks<br />

gelöscht:<br />

Fixit> rm /etc/pwd.db<br />

Fixit> rm /etc/spwd.db<br />

Fixit> rm /etc/group<br />

Fixit> ln ‐s /mnt2/etc/pwd.db /etc/pwd.db<br />

Fixit> ln ‐s /mnt2/etc/spwd.db /etc/U<br />

spwd.db<br />

Fixit> ln ‐s /mnt2/etc/group /etc/group<br />

n Tabelle 2: Layout des Slice »ad0s1«<br />

Abbildung 3: Aufruf der Fixit-Shell.<br />

Im nächsten Schritt startet man das<br />

Tool »fdisk« im interaktiven Modus, um<br />

die Festplatte zu partitionieren:<br />

Fixit> fdisk ‐i /dev/ad0<br />

und erhält dabei das in Listing 1 verkürzt<br />

wiedergegebene Protokoll.<br />

Im nächsten Schritt kommt GELI ins<br />

Spiel. Damit man das Kernelmodul<br />

laden kann, müssen auch hier ein paar<br />

zusätzliche Maßnahmen getroffen<br />

werden. Dazu erstellt man zwei symbolische<br />

Links zum Kernelverzeichnis und<br />

zum Verzeichnis zu den Systembibliotheken:<br />

Fixit> ln ‐s /dist/boot/kernel /boot/U<br />

kernel<br />

Fixit> ln ‐s /dist/lib /lib<br />

Der folgende Befehl lädt das Kernelmodul<br />

für GELI:<br />

Fixit> kldload geom_eli<br />

Wie im vorherigen einfacheren Beispiel<br />

schon beschrieben, legt man die Datei<br />

mit dem Schlüssel für GELI an. Die fol-<br />

Partition Mountpoint Kapazität<br />

/dev/​ad0s1a / (root-directory) 1 GByte<br />

/dev/​ad0s1b Swap 2 GByte<br />

/dev/​ad0s1d /usr 16 GByte<br />

/dev/​ad0s1e /var 4 GByte<br />

/dev/​ad0s1f /tmp 4 GByte<br />

/dev/​ad0s1g /home 13 GByte<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


110<br />

freeX<br />

Verschlüsselung<br />

gende Kommandofolge zeigt dies:<br />

Fixit> mkdir ‐p /root/geli<br />

Fixit> dd if=/dev/random of=/root/keys/U<br />

ad0s1.key bs=64 count=1<br />

Das Slice meldet man wie beschrieben<br />

bei GELI an, vergibt nach Aufforderung<br />

ein Passwort und hängt das Slice mit<br />

folgendem Kommando ein:<br />

Fixit> geli init ‐b ‐K /root/geli/U<br />

ad10s1.key ‐s 4096 ‐l 256 /dev/ad0s1<br />

Fixit> geli attach ‐k /root/geli/ad10s1U.<br />

key /dev/ad0s1<br />

Um das Betriebssystem installieren zu<br />

können, werden im folgenden Schritt<br />

die Labels für die Mount-Punkte angelegt.<br />

Dazu schreibt man zunächst<br />

ein Standard-Label und editiert es anschließend:<br />

n Listing 1: Fdisk<br />

01 ***** Working on device /dev/ad0 ******<br />

02 <br />

03 parameters extracted from in‐core disklabel are:<br />

04 <br />

05 cylinders=77520 heads=16 sectors/track=63 (1008<br />

blks/cyl)<br />

06 <br />

07 Figures below won't work with BIOS for<br />

partitions not in cyl 1<br />

08 <br />

09 parameters to be used for BIOS calculations are:<br />

10 <br />

11 cylinders=77520 heads=16 sectors/track=63 (1008<br />

blks/cyl)<br />

12 <br />

13 Do you want to change our idea of what BIOS<br />

thinks ? [n]<br />

14 <br />

15 Do you want to change it? [y]<br />

16 sysid 165<br />

17 start 63<br />

18 size 78140160<br />

19 set beg/end [n]<br />

20 are you happy with this [y]<br />

21 <br />

22 Data for Partition 2<br />

23 Do you want to change it? [n]<br />

24 <br />

25 set active partition [y]<br />

26 active [1]<br />

27 are you happy with this [y]<br />

28 write partition table [y]<br />

Fixit> bsdlabel ‐w /dev/ad0s1.eli<br />

Fixit> bsdlabel ‐e /dev/ad0s1.eli<br />

Hier gilt es, den richtigen Treiber zu<br />

verwenden: Es ist nicht mehr »/dev/<br />

ad0s1«, sondern ab jetzt »/dev/ad0s1.<br />

eli«! Bezugnehmend auf das Layout in<br />

Tabelle 1 sieht das Schema so aus:<br />

a: 1G 2 4.2BSD<br />

b: 2G * swap<br />

c: ‐‐ dont edit ‐‐<br />

d: 16G * 4.2BSD<br />

e: 4G * 4.2BSD<br />

f: 4G * 4.2BSD<br />

g: * * 4.2BSD<br />

Der Stern bei Partition »g« bedeutet,<br />

dass der Rest des Slices für Partition<br />

»g« verwendet werden soll. Den Editor<br />

verlässt man mit [Esc][:][q] und fährt<br />

mit dem Formatieren der einzelnen<br />

Partitionen fort. Ein kleiner Tipp: Es hat<br />

sich als vorteilhaft erwiesen, den einzelnen<br />

Partitionen ein Label zu geben,<br />

damit beim Mounten keine Unklarheiten<br />

auftreten:<br />

Fixit> newfs ‐L ROOT /dev/ad0s1.elia<br />

Fixit> newfs ‐L USR /dev/ad0s1.elid<br />

Fixit> newfs ‐L VAR /dev/ad0s1.elie<br />

Fixit> newfs ‐L TMP /dev/ad0s1.elif<br />

Fixit> newfs ‐L HOME /dev/ad0s1.elig<br />

Auffällig ist jetzt, dass die Gerätenamen<br />

ein neues Suffix bekommen haben. Es<br />

besteht aus dem Suffix »eli« mit einem<br />

zusätzlichen Buchstaben, der die Partitionsnummer<br />

repräsentiert.<br />

Nach soviel Vorarbeit folgt der eigentliche<br />

Installationsvorgang, der größte<br />

Sorgfalt verlangt. Dazu legt man ein<br />

Verzeichnis auf dem verschlüsselnden<br />

Datenträger an und bindet alle Partitionen<br />

ein:<br />

Fixit> mkdir /install && cd /install<br />

Fixit> mkdir root usr tmp var home<br />

Fixit> mount /dev/ad10s1.elia /install<br />

Fixit> mount /dev/ad10s1.elid /install/usr<br />

Fixit> mount /dev/ad10s1.elie /install/U<br />

var<br />

Fixit> mount /dev/ad10s1.elif /install/U<br />

tmp<br />

Fixit> mount /dev/ad10s1.elig /install/U<br />

home<br />

Danach kommen die Installationsskripte<br />

dran. Zuerst ist allerdings die<br />

Umgebungsvariable »DESTDIR« zu setzen,<br />

damit das Installationsskript die<br />

Dateien in das richtige Verzeichnis kopiert.<br />

Die Variable »RELEASE« repräsentiert<br />

das verwendete FreeBSD-Release:<br />

Fixit> export DESTDIR=/install<br />

Fixit> cd /dist/$RELEASE/base && U<br />

./install.sh<br />

Fixit> cd /dist/$RELEASE/kernels && U<br />

./install.sh generic<br />

Fixit> cd /dist/$RELEASE/manpages && U<br />

./install.sh<br />

Nach einer Weile passiert etwas Seltsames.<br />

Die Installation bricht mit Fehlermeldungen<br />

ab. Zur Beruhigung sei<br />

aber gleich vorweg festgestellt, dass<br />

das System funktioniert! Diese Fehler<br />

werden ausgegeben:<br />

./root/.profile: Can't create 'root/U<br />

.profile' : Cross‐Device link<br />

./root/.cshrc: Can't create 'root/U<br />

.cshrc' : Cross‐Device link<br />

tar: Error exit delayed from previous<br />

errors<br />

Die Erklärung hierfür ist einfach. Im<br />

Archiv sind auch die symbolischen<br />

Links gespeichert, die beim Entpacken<br />

wieder angelegt werden. Es wird versucht,<br />

einen Link vom Verzeichnis des<br />

Users »root« auf dem Fixit-Datenträger<br />

zur Festplatte anzulegen. Dies lässt<br />

FreeBSD nicht zu. Da wären die Verantwortlichen<br />

gefragt, statt eines Symlinks<br />

eine Kopie in die Tar-Datei zu stellen.<br />

Das System ist so nicht bootfähig, was<br />

auch in Ordnung ist. Schließlich soll es<br />

über einen USB-Stick booten, um den<br />

optimalen Schutz zu erhalten. Immer<br />

noch in der Fixit-Shell erstellt man<br />

einen für das System bootfähigen USB-<br />

Stick. Dazu partitioniert und formatiert<br />

die folgende Kommandosequenz den<br />

Stick:<br />

Fixit> fdisk ‐BI /dev/da0<br />

Fixit> bsdlabel ‐B ‐w /dev/da0s1<br />

Fixit> newfs /dev/da0s1a<br />

Damit man die Systemdaten auf den<br />

Stick kopieren kann, mountet man<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


freeX<br />

Verschlüsselung<br />

111<br />

ihn und überträgt anschließend das<br />

System:<br />

Fixit> mount /dev/da0s1a /usbstick<br />

Fixit> mkdir /usbstick<br />

Fixit> mkdir /usbstick/boot<br />

Fixit> mkdir /usbstick/boot/geli<br />

Fixit> mkdir /usbstick/etc<br />

Fixit> cp ‐Rpv /install/boot/ /usbstick<br />

Der Bootloader von FreeBSD sucht im<br />

Verzeichnis »/boot/kernel« nach dem<br />

Betriebssystemkern. Das Verzeichnis<br />

»/usbstick/boot/kernel« ist nach dem<br />

Kopieren leer. Um einen bootfähigen<br />

USB-Stick zu erhalten, löscht man zunächst<br />

»/usbstick/boot/kernel« und benennt<br />

den Ordner mit dem generischen<br />

Kernel um:<br />

Fixit> rmdir /usbstick/boot/kernel<br />

Fixit> mv /usbstick/boot/GENERIC U<br />

/usbstick/boot/kernel<br />

Damit GELI die Verschlüsselung und<br />

Entschlüsselung überhaupt durchführen<br />

kann, muss der Encryption-Key<br />

ebenfalls auf den Stick kopiert werden.<br />

Fixit> cp /root/geli/ad0s1.key U<br />

/usbstick/boot/geli/ad0s1.key<br />

Außerdem ist es notwendig, GELI mitzuteilen,<br />

wo es den Schlüssel findet<br />

und in welcher Datei er gespeichert<br />

ist. Diese Informationen gehören in<br />

»/ usbstick/boot/loader.conf«:<br />

geom_eli_load="YES"<br />

geli_ad0s1_keyfile0_load="YES"<br />

geli_ad0s1_keyfile0_type="ad0s1:geli_U<br />

keyfile0"<br />

geli_ad0s1_keyfile0_name="/boot/geli/U<br />

ad0s1.key"<br />

Damit es nicht zu Schwierigkeiten bei<br />

der Passworteingabe kommt, ergänzt<br />

man die Datei »/usbstick/boot/device.<br />

hints« um den Eintrag<br />

hint.kbdmux.0.disabled="1"<br />

Abschließend werden sowohl auf dem<br />

USB-Stick als auch auf der Festplatte<br />

die Dateien »/usbstick/etc/fstab« und<br />

»/ install/etc/fstab« überarbeitet: Die<br />

Abbildung 4: Die Funktionsweise von Pefs im aktiven und inaktiven Zustand.<br />

Datei »/usbstick/etc/fstab« bekommt<br />

den Eintrag zum Mounten der Festplattenpartition<br />

»a«, weil sich hier wichtige<br />

Systemdienste befinden:<br />

/dev/ad0s1.elia / ufs rw 1 1<br />

Auf der Festplatte werden in »/install/<br />

etc/fstab« die Einträge vorgenommen,<br />

die dafür sorgen, dass die übrigen Partitionen<br />

korrekt gemountet werden:<br />

/dev/ad0s1.elib none swap sw 0 0<br />

/dev/ad0s1.elid /usr ufs rw 2 2<br />

/dev/ad0s1.elie /var ufs rw 2 2<br />

/dev/ad0s1.elif /tmp ufs rw 2 2<br />

/dev/ad0s1.elig /home ufs rw 2 2<br />

Es ist geschafft und das System kann<br />

neu gestartet werden. Während dieses<br />

Vorgangs wird man nach dem Passwort<br />

für das Slice gefragt. Nach Eingabe wird<br />

der Bootvorgang fortgesetzt und nach<br />

dessen Ende führt man die Administration<br />

fort. Diese Schritte sind im Handbuch<br />

zu FreeBSD ausführlich erläutert<br />

und das Programm »sysinstall« leistet<br />

wertvolle Dienste.<br />

Schließlich noch ein paar Bemerkungen<br />

zu GELI: Es ist schade, dass das Installationsprogramm<br />

von FreeBSD nicht<br />

schon beim Installationsvorgang die<br />

Verschlüsselung eines Slices oder Partition<br />

anbietet. Das würde eine Menge<br />

Arbeit ersparen. Sehr erfreulich ist die<br />

Tatsache, dass sich GELI und ZFS zusammen<br />

einsetzen lassen. Diese Option<br />

ist besonders interessant, weil die Verschlüsselung<br />

in ZFS noch nicht integriert<br />

ist, wobei die Entwickler allerdings<br />

mit Hochdruck daran arbeiten.<br />

Die Alternative<br />

Wie eingangs erwähnt gibt es zwei<br />

Möglichkeiten, eine Festplatte oder<br />

Partition zu verschlüsseln. Die zweite<br />

Option ist die stapelbare Dateisystemverschlüsselung<br />

Pefs. Damit werden<br />

nicht nur Dateiinhalte, sondern auch<br />

die Dateinamen selber verschlüsselt.<br />

Im Gegensatz zu GELI handelt es sich<br />

hierbei um ein Dateisystem, das auf<br />

eine bereits mit ZFS oder UFS formatierte<br />

Partition aufsetzt. Das bedeutet,<br />

nur wenn Pefs aktiv ist, lassen sich die<br />

Dateien und Dateinamen im Klartext<br />

darstellen.<br />

Gegenüber GELI bietet Pefs zwei wichtige<br />

Vorteile: Das Verschlüsselungssystem<br />

lässt sich in den Mechanismus zur<br />

Authentifizierung namens PAM (Password<br />

Authentification Modules) einbinden.<br />

Damit bietet sich die Möglichkeit,<br />

das System bis zum Login-Screen<br />

hochzufahren. Sobald Username und<br />

Passwort eingegeben wurden, ist die<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


112<br />

freeX<br />

Verschlüsselung<br />

Partition entschlüsselt. Ein Backup der<br />

Partition mit »dump« ist immer möglich,<br />

auch wenn Pefs nicht aktiv ist oder<br />

die Daten nicht entschlüsselt sind. Es<br />

werden alle verschlüsselten Dateien<br />

und Dateinamen gesichert. Solange die<br />

Pefs-eigene Passwortdatenbank nicht<br />

beschädigt ist, lässt die Sicherheitskopie<br />

wieder dechiffrieren. Ein aus Sicht<br />

des Autors großer Nachteil ist die bei<br />

Pefs (noch) nicht vorhandene Unterstützung<br />

des OpenCrypto-Frameworks.<br />

Somit ist es nicht wie bei GELI möglich,<br />

auf Crypto-Hardware zuzugreifen.<br />

Die weitere Funktionsweise ist recht<br />

einfach und anhand von Abbildung 4<br />

schnell erklärt.<br />

n Listing 2: Pam-Konfiguration<br />

01 auth sufficient pam_opie.so no_warn no_fake_<br />

prompts<br />

02 auth requisite pam_opieaccess.so no_warn allow_<br />

local<br />

03 auth sufficient /usr/local/lib/pam_pefs.so try_<br />

first_pass<br />

04 auth required pam_unix.so no_warn try_first_pass<br />

nullok<br />

05 . . .<br />

06 session optional /usr/local/lib/pam_pefs.so<br />

07 session required pam_lastlog.so no_fail<br />

Schichtweise<br />

Wie erwähnt handelt es sich bei Pefs<br />

um eine stapelbare Dateisystemverschlüsselung.<br />

Das bedeutet, es benötigt<br />

eine Partition, die bereits mit<br />

ZFS, UFS oder auch FAT32 formatiert<br />

ist. Man erhält somit einen Stapel: Die<br />

Basisebene bildet der Datenträger mit<br />

der formatierten Partition, über die<br />

sich Pefs wie eine Folie legt. Solange<br />

Pefs nicht aktiv ist, erscheinen alle Verzeichnis-<br />

und Dateinamen als zufällige<br />

Zeichenfolge. Gleiches gilt für den Dateiinhalt.<br />

Bei aktivem Pefs mit gültigem<br />

Schlüssel werden alle Informationen<br />

entschlüsselt und im Klartext korrekt<br />

dargestellt.<br />

Die Verschlüsselung von Dateinamen<br />

wird bei aktivem Pefs grundsätzlich mit<br />

AES-128 im CBC-Modus durchgeführt.<br />

Der chiffrierte Dateiname besteht aus<br />

drei Teilen. Der erste Teil umfasst eine<br />

64 Bit breite Prüfsumme. Es folgt ein<br />

eindeutiger, ebenfalls 64 Bit breiter Abschnitt<br />

des Dateinamens und schließlich<br />

der Dateiname selbst. Der Dateiinhalt<br />

selbst wird mit wesentlich stärkeren<br />

Algorithmen verschlüsselt, wobei<br />

der Administrator die Möglichkeit hat,<br />

selbst zwischen AES und Camellia mit<br />

jeweils einer Schlüssellänge von 128,<br />

192 oder 256 Bit auszuwählen.<br />

In die Praxis<br />

Nach den kurzen Erläuterungen zur<br />

Funktionsweise folgen zwei Beispiele<br />

für den Einsatz von Pefs. Zunächst<br />

werden grundsätzliche Dinge gezeigt,<br />

während das zweite Beispiel erläutert,<br />

wie PAM und Pefs zusammenarbeiten.<br />

Zunächst muss das neue Dateisystem<br />

installiert werden. Wie bei FreeBSD üblich,<br />

geschieht das über den Ports-Tree<br />

im Abschnitt »sysutils/pefs‐kmod«:<br />

# portmaster ‐d sysutils/pefs‐kmod<br />

Wie weiter oben erwähnt, bieten einige<br />

CPUs einen Crypto-Kern, der die AES-<br />

Methode implementiert. Um diesen<br />

Crypto-Kern zu nutzen, ergänzt man<br />

die Datei »/boot/loader.conf« um folgende<br />

Zeile:<br />

aesni_load="YES"<br />

Für eine kurze Einführung in Pefs folgt<br />

eine kleine Demonstration. Dazu legt<br />

man sich im Homedirectory ein Verzeichnis<br />

an. Beispielsweise »~/Daten«:<br />

$ mkdir ~/Daten<br />

Als Root-User aktiviert man jetzt Pefs.<br />

Wenn das System-Flag »vfs.usermount«<br />

n Wichtiger Hinweis zu Passwörtern<br />

Beim Erzeugen von Passwörtern sollte<br />

man immer bedenken, dass bei der Wahl<br />

einfacher Zugangsdaten die Gefahr der<br />

Entschlüsselung der Daten erheblich<br />

steigt. Daher sollte man sein Passwort immer<br />

so komplex wie möglich wählen und<br />

eine gesunde Mischung aus Ziffern und<br />

Buchstaben wählen. In [1] (in Kapitel 1.5)<br />

ist beschrieben, wie sichere Passwörter<br />

generiert werden. Umlaute und andere<br />

Sonderzeichen sollten vermieden werden.<br />

Der Grund für diese Einschränkung<br />

auf den Wert 1 gesetzt ist, darf auch der<br />

normale Benutzer den Mount-Befehl<br />

ausführen.<br />

$ pefs mount ~/Daten ~/Daten<br />

Solange keine Schlüssel definiert sind,<br />

wird das Verzeichnis im Read-Only-Modus<br />

gemountet. Es werden in diesem<br />

Fall die Dateien verschlüsselt angezeigt,<br />

aber ein Schreibzugriff ist nicht<br />

möglich. Für einen sinnvollen Betrieb<br />

ruft man das Kommando<br />

$ pefs addkey ~/Daten<br />

auf und gibt ein Passwort beziehungsweise<br />

einen Schlüssel ein. Überprüfen<br />

lassen sich die aktiven Schlüssel mit<br />

der folgenden Eingabe:<br />

$ pefs showkeys ~/Daten<br />

Keys:<br />

0 1a6feeb9cf230d88 aes256‐ctr<br />

Die Ausgabe besagt, dass der erste<br />

Schlüssel – es wird von Null an hochgezählt<br />

– nach dem Crypto-Verfahren<br />

AES mit einer Schlüssellänge von 256<br />

Bit erstellt wurde. Das AES-Verfahren<br />

ist die Standardeinstellung. Dies lässt<br />

sich ändern, indem man bei »pefs<br />

addkey« über den Parameter »‐a« den<br />

gewünschten Algorithmus angibt. Eine<br />

Liste aller verfügbaren Algorithmen<br />

zeigt »pefs showalgs«.<br />

Nachdem ein Passwort beziehungsweise<br />

ein Schlüssel vergeben wurde,<br />

geht es ans Testen. Dazu reicht es aus,<br />

eine Datei bei aktivem Pefs zu erzeugen:<br />

liegt darin, dass das Passwort während<br />

der Boot-Phase des Betriebssystems<br />

eingegeben werden muss. In dieser Phase<br />

steht aber nur das Layout einer amerikanischen<br />

Tastatur zur Verfügung und das<br />

sieht Umlaute und dergleichen nicht vor.<br />

Der wichtigste Punkt überhaupt ist, dass<br />

man sein Passwort niemals vergessen<br />

sollte. Bei einem Verlust hat man keine<br />

Möglichkeit mehr, an seine Daten zu<br />

gelangen. Regelmäßige und überprüfte<br />

Backups sind daher Pflicht!<br />

Ausgabe 12-2013 Admin www.admin-magazin.de


freeX<br />

Verschlüsselung<br />

113<br />

$ echo "pefs ist super!" > ~/Daten/test.<br />

txt<br />

$ ls ‐Al ~/Daten<br />

total 1<br />

‐rw‐r‐‐r‐‐ 1 juergen users 16 Oct 1 17:41U<br />

test.txt<br />

$ cat ~/Daten/test.txt<br />

pefs ist super!<br />

Das sieht gut aus. Wie sieht das Verzeichnis<br />

»~/Daten« aus, wenn Pefs nicht<br />

aktiv ist? Das lässt sich schnell zeigen:<br />

$ pefs unmount ~/Daten<br />

$ ls ‐Al ~/Daten<br />

total 1<br />

‐rw‐r‐‐r‐‐ 1 juergen users 16 Oct 1 17:41 .U<br />

GG6eudxZGtOp6Ry_2Z3Sl+tq2VV3O81jq<br />

$ hd ~/Daten/.GG6eudxZGtOp6Ry_2Z3Sl+tq2U<br />

VV3O81jq<br />

00000000 45 c6 7a fe fc 99 5c 38 fc d8 2d U<br />

e0 56 c2 65 32 |E.z...\8..‐.V.e |<br />

Wie man leicht erkennt, sind sowohl<br />

der Dateiname »test.txt« als auch der<br />

Inhalt verschlüsselt dargestellt. Bei<br />

deaktiviertem Pefs erhält man somit<br />

keinen Einblick in die Daten. Es ist nicht<br />

einmal möglich, vom Dateinamen auf<br />

den Inhalt zu schließen.<br />

PAM und Pefs<br />

Das Pefs-System bringt im Gegensatz<br />

zu GELI auch PAM-Support mit. Das<br />

ermöglicht – wie im folgenden Beispiel<br />

beschrieben – die Verschlüsselung<br />

eines bereits vorhandenen Homedirectories.<br />

Dabei gilt es zu beachten, dass<br />

das Verzeichnis kein symbolischer Link<br />

ist, sondern einen realen Pfad darstellt,<br />

ansonsten weigert sich Pefs zu funktionieren.<br />

Um das zu vermeiden, korrigiert<br />

man die Angabe des Homedirectories<br />

manuell mit<br />

#pw user mod $user ‐d $homedir<br />

Im nächsten Schritt wird die verschlüsselte<br />

Dateisystemebene generiert und<br />

man vergibt ein Passwort als Masterpasswort:<br />

#pefs addchain ‐fZ ‐a aes256‐ctr $home<br />

Enter parent key passphrase:<br />

Reenter parent key passphrase:<br />

Danach wird das Verzeichnis eingehängt<br />

und das Passwort vergeben, das<br />

später für die Authentifizierung verwendet<br />

werden soll.<br />

#pefs mount $home $home<br />

#pefs addkey ‐c $home<br />

Enter passphrase:<br />

Das hier einzugebende Passwort darf<br />

nicht mit dem in der User-Datenbank<br />

»/ etc/passwd« identisch sein, sonst<br />

funktioniert das Login nicht mehr!<br />

Wenn es bis hierher keine Fehlermeldungen<br />

gab, dann erfolgt im nächsten<br />

Schritt die Integration in den PAM-<br />

Dienst von FreeBSD. Das verschafft den<br />

Vorteil, dass nach der erfolgreichen<br />

Authentifizierung das Pefs-System<br />

automatisch aktiviert wird. Das Pefs-<br />

Paket beinhaltet ein Modul, das in das<br />

PAM-System von FreeBSD eingebunden<br />

wird: »pam_pefs.so«. Damit das Modul<br />

die Möglichkeit hat, die gespeicherten<br />

Passwörter zur Authentifizierung heranzuziehen,<br />

muss man die Berechtigungen<br />

der Pefs-Datenbank anpassen:<br />

#chown $user:$group $home/.pefs.db<br />

Um das PAM-Modul zu aktivieren,<br />

trägt man es in die PAM-Konfiguration<br />

»/etc/pam.d/system« ein. Wenn ein<br />

grafischer Login-Manager wie KDM<br />

verwendet wird, muss »pam_pefs« in<br />

der gleichen Art und Weise eingetragen<br />

werden.<br />

Als abschließenden Schritt muss man<br />

noch dafür sorgen, dass pefs initialisiert<br />

wird. Dazu schreibt man am besten<br />

in »/etc/rc.local« folgende Zeile<br />

/usr/local/sbin/pefs mount $home $home<br />

Dem produktiven Einsatz steht nach<br />

einem Systemneustart nichts mehr im<br />

Wege. Sobald das grafische Login KDM,<br />

GDM oder XDM erscheint, gibt man das<br />

für Pefs vergebene Passwort ein. Nach<br />

erfolgreichem Login erhält man seine<br />

Daten dechiffriert wieder.<br />

Fazit<br />

GELI und Pefs sind brauchbare Systeme<br />

zur Verschlüsselung von Partitionen<br />

und haben jeweils ihre Vor- und<br />

Nachteile. Um optimale Sicherheit zu<br />

erreichen, sollte man unbedingt zur<br />

Vollverschlüsselung greifen und damit<br />

zu GELI.<br />

Das Pefs-System ist wegen seiner Struktur<br />

für die Verschlüsselung kompletter<br />

Datenträger nicht geeignet. Dafür spielt<br />

es seine Vorteile aus, wenn es darum<br />

geht, einfach und effektiv ein bestehendes<br />

System umzustellen. Beim Einsatz<br />

auf Notebooks sollte man besser zu<br />

GELI und zur Vollverschlüsselung greifen.<br />

Und wer es ganz besonders sicher<br />

haben möchte, dem bietet sich immer<br />

noch die Möglichkeit, zusätzlich das<br />

Pefs-System zu nutzen. (ofr) n<br />

n Doppeltes Lottchen<br />

Um das Ärgernis eines vergessenen Passworts zu<br />

umgehen, bietet GELI die einfache Möglichkeit, zwei<br />

Schlüssel zu erzeugen. Nachdem GELI initialisiert<br />

wurde, generiert man mit folgendem Kommando<br />

einen Zweitschlüssel:<br />

geli setkey ‐n 1 /dev/da0<br />

Enter Passphrase: (ErstPasswort)<br />

Enter new Passphrase: (ZweitPasswort)<br />

Reenter new Passphrase: (Wiederholung)<br />

Ähnlich verhält es sich mit dem Masterkey. Mit der<br />

folgenden Befehlsfolge lässt sich eine Sicherheitskopie<br />

des Masterkeys auf einem USB-Stick, der unter<br />

»/usbstick« gemountet ist, für den Fall anlegen, dass<br />

ein Benutzer sein Passwort vergessen sollte:<br />

# dd if=/dev/random of=v/usbstick/`hostname` bs=64U<br />

count=1<br />

# geli init ‐P ‐K /usbstick/`hostname` /dev/ad0s1g<br />

# geli backup /dev/ad0s1g /usbstick/bak/`hostname`<br />

Um den vorhanden Masterkey zu überschreiben, gibt<br />

es die Option »‐n 0«:<br />

# geli setkey ‐n 0 ‐k /usbstick/`hostname` /dev/U<br />

ad0s1g<br />

Enter new Passphrase: (UserPasswort)<br />

Reenter new Passphrase: (Wiederholung)<br />

So einfach ist das.<br />

n Info<br />

Weiterführende Links und<br />

Informationen zu diesem<br />

Artikel finden Sie unter:<br />

www.admin-magazin.de/qr/30866<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 12-2013


114<br />

Service<br />

Impressum und <strong>Vorschau</strong><br />

n Impressum ISSN 2190-1066<br />

<strong>ADMIN</strong>-<strong>Magazin</strong> eine Publikation der Medialinx AG<br />

Redaktionsanschrift Putzbrunner Straße 71<br />

81739 München<br />

Tel.: 0 89 / 99 34 11-0<br />

Fax: 0 89 / 99 34 11-99 oder -96<br />

Internet<br />

www.admin-magazin.de<br />

E-Mail<br />

redaktion@admin-magazin.de<br />

Geschäftsleitung Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />

Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />

Chefredakteure<br />

Oliver Frommel (V. i. S. d. P.),<br />

ofrommel@admin-magazin.de (ofr)<br />

Jens-Christoph Brendel<br />

jbrendel@admin-magazin.de (jcb)<br />

Redaktion<br />

News/Report<br />

Ulrich Bantle (Ltg.), ubantle@medialinx-gruppe.de (uba)<br />

Mathias Huber, mhuber@medialinx-gruppe.de (mhu)<br />

Software/Programmieren Carsten Schnober, cschnober@medialinx-gruppe.de (csc)<br />

Kristian Kißling, kkissling@medialinx-gruppe.de (kki)<br />

Security/Networking Markus Feilner, mfeilner@medialinx-gruppe.de (mfe)<br />

Thomas Leichtenstern, tleichtenstern@medialinx-gruppe.de (tle)<br />

Ständige Mitarbeiter David Göhler (Schlussredaktion), Tim Schürmann, Claudia Thalgott<br />

Produktionsleitung<br />

Grafik<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

Christian Ullrich, cullrich@medialinx-gruppe.de<br />

Judith Erb (Design und Layout)<br />

Titel: Judith Erb, Ausgangsgrafik: marinini, 123RF<br />

www.admin-magazin.de/abo<br />

Gudrun Blanz (Teamleitung)<br />

abo@admin-magazin.de<br />

Tel.: 07131/27 07 274, Fax: 07131/27 07 78 601<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

Einzelheft € 9,80 € 10,80 Sfr 19,60 (siehe Titel)<br />

Mini-Abo (3 Ausgaben) € 9,80 € 10,80 Sfr 19,60 (siehe Titel)<br />

Jahres-DVD (Einzelpreis) € 14,95 € 14,95 Sfr 18,90 € 14,95<br />

Jahres-DVD (zum Abo 1 ) € 6,70 € 6,70 Sfr 8,50 € 6,70<br />

Jahresabo € 99,90 € 109,90 Sfr 159,90 € 129,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe € 9,80 € 9,80 Sfr 10,71 € 9,80<br />

DigiSub (12 Ausgaben) € 89,90 € 89,90 Sfr 129,50 € 89,90<br />

DigiSub (zum Printabo) € 12,— € 12,— Sfr 12,— € 12,—<br />

HTML-Archiv (zum Abo 1 ) € 48,— € 48,— Sfr 48,— € 48,—<br />

Preise Kombiabos<br />

Profi-Abo 2 € 181,90 € 198,90 Sfr 235,90 € 219,90<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit Linux-<strong>Magazin</strong>-Abo und beiden Jahres-DVDs<br />

Schüler- und Studenten-Ermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises oder einer<br />

aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlängerung neu zu erbringen.<br />

Andere Abo-Formen, Ermäßigungen im Ausland etc. auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht für<br />

Zeitschriften gelten.<br />

Pressemitteilungen info@admin-magazin.de<br />

Anzeigen/Repräsentanz Es gilt die Anzeigenpreisliste vom 01.01.2013<br />

National<br />

Pressevertrieb<br />

Druck<br />

Petra Jaser<br />

Tel.: 089 / 99 34 11 24, Fax: 089 / 99 34 11 99<br />

E-Mail: pjaser@medialinx-gruppe.de<br />

Michael Seiter<br />

Tel.: 089 / 99 34 11 23, Fax: 089 / 99 34 11 99<br />

E-Mail: mseiter@medialinx-gruppe.de<br />

MZV, Moderner Zeitschriften Vertrieb GmbH<br />

Breslauer Straße 5, 85386 Eching<br />

Tel.: 089 / 31906-0, Fax: 089 / 31906-113<br />

Vogel Druck und Medienservice GmbH<br />

97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unix-ähnlichen Betriebssysteme<br />

verschiedener Hersteller, zum Beispiel Eurix (Comfood), Ultrix (Digital Equipment), HP/UX (Hewlett-<br />

Packard) oder Sinix (Siemens) benutzt, nicht als die Bezeichnung für das Trademark von X/Open. Linux ist ein<br />

eingetragenes Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner Erlaubnis<br />

verwendet. Alle anderen Marken sind Eigentum der jeweiligen Inhaber. Eine Haftung für die Richtigkeit von<br />

Veröffentlichungen kann trotz sorgfältiger Prüfung durch die Redaktion vom Verlag nicht übernommen<br />

werden. Mit der Einsendung von Manu s kripten gibt der Verfasser seine Zustimmung zum Abdruck im <strong>ADMIN</strong>-<br />

<strong>Magazin</strong>. Für unverlangt ein gesandte Manuskripte kann keine Haftung übernommen werden. Die Redaktion<br />

behält sich vor, Artikel zu kürzen. Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim<br />

Verlag. Es darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in irgendeiner<br />

Form vervielfältigt oder verbreitet werden. Copyright © 1994–2013 Medialinx AG<br />

n Autoren dieser Ausgabe<br />

Jürgen Dankoweit Verschlusssache 106<br />

Thomas Drilling Fast ein Alleskönner 44<br />

Joseph Guarino Geballte Power 24<br />

Andrew Henderson Code-Kontrolle 78<br />

Thomas Joos Herbstputz 62<br />

Thomas Joos In der virtuellen Sphäre 100<br />

Jeff Layton Kippende Bits 60<br />

Martin Loschwitz Cuba Libre 94<br />

Markus Manzke Perfect! Forward Secrecy 82<br />

Thorsten Scherf Wandervogel 16<br />

Georg Schönberger Git wird groß 56<br />

Till Spiegel Einfach, sicher, mailen! 84<br />

Thomas Zeller Sichere Fernsteuerung 68<br />

n Inserentenverzeichnis<br />

<strong>ADMIN</strong> http://​www.admin-magazin.de 7, 97, 115<br />

Android User GY http://​www.android-user.de 93<br />

ConSol Software GmbH http://​www.consol.de 13<br />

Diavlon GmbH http://​www.tuxhardware.de 41<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 31<br />

Galileo Press http://​www.galileo-press.de 17<br />

Host Europe GmbH http://​www.hosteurope.de 29<br />

Kettner Mathias - Linux Experte http://​www.mathias-kettner.de 47<br />

Linux-Hotel http://​www.linuxhotel.de 103<br />

Linux-<strong>Magazin</strong> http://​www.linux-magazin.de 75, 89, 104<br />

Medialinx IT-Academy http://​www.medialinx-academy.de 51<br />

Netways GmbH http://​www.netways.de 21<br />

outbox AG http://​www.outbox.de 23<br />

pascom - Netzwerktechnik GmbH & Co.KG http://​www.pascom.net 11<br />

PlusServer AG http://​www.plusserver.de 15, 19, 33, 39, 43, 55<br />

Raspberry Pi Geek http://​www.raspberry-pi-geek.de 65, 77<br />

Strato AG http://​www.strato.de 2, 9<br />

Thomas Krenn AG http://​www.thomas-krenn.com 116<br />

Einem Teil dieser Ausgabe liegt eine Beilage der Firma ppedv (http://​www.visualstudio1.de ) bei. Wir bitten<br />

unsere Leser um freundliche Beachtung.<br />

n <strong>Vorschau</strong>: <strong>ADMIN</strong> 01/2014 erscheint am 12. Dezember 2013<br />

Sascha Burkard, 123RF<br />

Backup<br />

Was eine Datensicherung wert<br />

ist, zeigt sich, wenn man sie<br />

wiederherzustellen versucht.<br />

Spätestens dann macht sich<br />

die Wahl der richtigen Software<br />

bezahlt, die nicht unbedingt<br />

viel Geld kosten muss. Das<br />

kommende <strong>ADMIN</strong>-Heft stellt<br />

brauchbare Programme vor.<br />

Python-Pandas<br />

Aufwendige Datenanalyse<br />

und -manipulation erfordert<br />

eine kompilierte Low-Level-<br />

Programmiersprache? Nicht<br />

zwingend: Mit Pandas läuft Big<br />

Data auch durch den Python-<br />

Interpreter flüssig. Das nächste<br />

Heft gibt eine Einführung in die<br />

Bibliothek zur Datenanalyse.<br />

Ausgabe 12-2013 Admin www.admin-magazin.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!