24.02.2014 Aufrufe

ADMIN Magazin Samba 4: Linux und Windows im Einklang (Vorschau)

Erfolgreiche ePaper selbst erstellen

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

NEU!<br />

Jetzt mit<br />

Anzeige:<br />

„Kein Hosting-Paket ist günstiger<br />

als bei STRATO. Außer bei STRATO!“<br />

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

STR0313_DE_TKS_Hosting_120x17.indd 1<br />

Netzwerk & Security<br />

Vergleichen lohnt sich!<br />

siehe Seite 2<br />

strato.de/hosting<br />

21.02.2013 14:53:53 Uhr<br />

<strong>Samba</strong> 4 Appliance<br />

02/2013 März – April<br />

<strong>Samba</strong> 4<br />

<strong>Linux</strong> <strong>und</strong> <strong>Windows</strong> <strong>im</strong> <strong>Einklang</strong><br />

Active Directory mit freier Software<br />

Alle Neuerungen <strong>im</strong> Überblick<br />

<strong>Linux</strong>-Produkte mit <strong>Samba</strong> 4<br />

Monitoring<br />

VMware mit OpenNMS<br />

<strong>im</strong> Blick behalten<br />

Doppelt sicher<br />

Two-Factor-Authentifizierung<br />

NexentaOS<br />

Zwei Storage-Betriebssysteme<br />

<strong>im</strong> ausführlichen Vergleich<br />

Botnetze<br />

Bekenntnisse eines<br />

Botnetz-Entwicklers<br />

Powershell<br />

Die besten Tipps für die<br />

<strong>Windows</strong> Commandline<br />

www.admin-magazin.de<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 02


„Kein Hosting-Paket ist<br />

günstiger als bei STRATO.<br />

Außer bei STRATO!“<br />

PowerWeb Basic<br />

6 Monate<br />

für<br />

0,–€/Mon.*<br />

Nur bis zum 31.3.2013<br />

Vergleichen lohnt sich!<br />

HOSTING 1&1<br />

Dual Basic<br />

STRATO<br />

PowerWeb Basic<br />

Standardpreis 6,99 €/Mon. 4,99 €/Mon.<br />

Einrichtungsgebühr 9,60 € 8,60 €<br />

Inklusivdomains 4 4<br />

Postfachspeicher 2 GB 5 GB<br />

Webspace 10 GB 10 GB<br />

Stand dFebruar 2013. Mindestvertragslaufzeit i 12 Monate. Preise inkl. MwSt.<br />

Sie sparen bis zu 25 € <strong>im</strong> Jahr!<br />

Marcus Welt<br />

chrom.tv<br />

HOSTED<br />

IN GERMANY<br />

* Aktion bis 31.03.2013: PowerWeb Basic 6 Monate für 0 €/Mon., anschließend 4,99 €/Mon.<br />

Einmalige Einrichtungsgebühr 8,60 €. Mindestvertragslaufzeit 12 Monate. Preise inkl. MwSt.<br />

Servicetelefon: 030 - 300 146 - 21


Gehe<strong>im</strong>nisse <strong>und</strong> Lügen<br />

Editorial<br />

Gehe<strong>im</strong>nisse<br />

<strong>und</strong> Lügen<br />

Liebe Leserinnen <strong>und</strong> Leser,<br />

neulich versetzte wieder einmal eine Meldung die <strong>Linux</strong>-Welt in Aufruhr. Informationen<br />

aus einer Microsoft-Studie waren an die Öffentlichkeit gelangt – oder gezielt<br />

lanciert worden –, die besagten, dass die <strong>Linux</strong>-Migration der Stadt München erheblich<br />

teurer ausfalle als geplant. Die Rede war von einem Betrag um die 60 Millionen<br />

Euro, während die Verantwortlichen der Stadt den finanziellen Aufwand auf etwa<br />

zehn Millionen Euro taxieren. Die Wahrheit liegt vermutlich irgendwo dazwischen.<br />

Interessant dabei waren die Reaktionen, die unisono davon ausgingen, dass die<br />

Microsoft-Berechnungen übertrieben <strong>und</strong> unlauter seien. Dass die dort erhobenen<br />

Berechnungen auch st<strong>im</strong>men könnten, wurde kaum in Betracht gezogen. Denn es<br />

kann nicht sein, was nicht sein darf. Interessanterweise sind die Kritiker oft dieselben Leute, die eine gr<strong>und</strong>legende<br />

Skepsis gegenüber „den Politikern“ an den Tag legen, wenn es um kostenaufwendige Großprojekte geht. In diesem<br />

Fall sind die Projektverantwortlichen, die allen Gr<strong>und</strong> haben, den Erfolg ihres Projekts groß <strong>und</strong> die Kosten klein zu<br />

reden, aber plötzlich glaubwürdig – weil es zur Ideologie der Kritiker passt.<br />

Wer über praktische Erfahrung mit ähnlichen Projekten, wenn auch in bescheidenerem Umfang hat, wird wissen,<br />

dass eine solche Umstellung oft aufwendiger ist als geplant. Dass die Migration einer kompletten Stadtverwaltung<br />

vielleicht teurer wird als gedacht, wäre keine Überraschung. Doch das darf nicht sein, denn das würde einen Schatten<br />

auf die Erfolgsgeschichte <strong>Linux</strong> werfen.<br />

Auch die Annahmen, die in der von HP <strong>im</strong> Auftrag von Microsoft erstellten Studie gemacht werden, soweit sie öffentlich<br />

bekannt ist, sind fragwürdig. Würde man <strong>im</strong>mer noch ein altes <strong>Windows</strong>-System einsetzen oder hätte man<br />

die Arbeitsplätze seither auf ein, zwei neue Versionen aktualisiert? Auf der anderen Seite war die Umstellung von<br />

Fachanwendungen auf webbasierte Versionen überhaupt nur durch den Verzicht auf <strong>Windows</strong> nötig. Hätte man, aus<br />

welchen Gründen auch <strong>im</strong>mer, in einer <strong>Windows</strong>-Umgebung auf browserbasierte Anwendungen neu programmiert,<br />

fiele auch die HP-Microsoft-Rechnung höher aus.<br />

Vielleicht bietet Microsoft in manchen Situationen gegenüber <strong>Linux</strong>-Lösungen wirklich einen Vorteil, auch wenn<br />

etwa die gute Integration der Software <strong>und</strong> die Gewöhnung der User „nur“ auf der Monopolstellung des Software-<br />

Herstellers beruht. Wenn man dennoch öffentliche Verwaltungen auf Open Source umstellen möchte, kann man<br />

sich aus politischen Gründen sicher dafür entschließen. Dafür spricht etwa die Nachhaltigkeit be<strong>im</strong> Management<br />

von Daten mit offenen Standards. Auch die Befreiung aus der Abhängigkeit von einem einzelnen Hersteller ist ein<br />

gewichtiges Argument. In Hinblick auf die Zukunftsfähigkeit ist ein vielfältiges IT-Ökosystem sicher wünschenswert.<br />

Entscheidet man sich dafür, sollte man aber auch so ehrlich sein, sich einzugestehen, dass dieser Weg unter<br />

Umständen unbequemer <strong>und</strong> kostspieliger ist als der gewohnte.<br />

@ leserbriefe@admin-magazin.de<br />

www.facebook.com/adminmagazin www.twitter.com/admagz<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

3


Service<br />

Inhalt<br />

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

Netzwerk & Security<br />

02/2013<br />

In diesem Heft-Schwerpunkt:<br />

<strong>Windows</strong>- <strong>und</strong> <strong>Linux</strong>-Integration mit dem<br />

<strong>Samba</strong>-Projekt (ab S. 37)<br />

Wo ist das Eth0-<br />

20Admin-Story<br />

Device hingeraten?<br />

Eine Spurensuche ...<br />

Login<br />

8 Vorgelesen<br />

Bücher über PostgreSQL <strong>und</strong> Ganglia.<br />

10 Branchen-News<br />

Neues von Software <strong>und</strong> Projekten.<br />

Netzwerk<br />

22 Nginx-Fork: Tengine<br />

Der quelloffene Fork des beliebten<br />

Nginx-Webservers aus dem fernen Osten<br />

ist dynamischer <strong>und</strong> zuverlässiger als<br />

das Original.<br />

Schwerpunkt: <strong>Samba</strong> 4<br />

37 <strong>Samba</strong> 4 - was ist neu?<br />

Praktische Tipps für das neue <strong>Samba</strong>.<br />

16 Identitätsdiebstahl<br />

Identitätsdiebstahl: Fakten, Fälle, Gegenwehr.<br />

Wie Hacker Personalien stehlen<br />

<strong>und</strong> was man dagegen tun kann.<br />

20 Admin-Story<br />

Wie man Gerätenamen herausfindet, die<br />

<strong>Linux</strong> neuerdings vergibt.<br />

Service<br />

3 Editorial<br />

4 Inhalt<br />

6 Heft-CD<br />

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

30 Mobile IPv6<br />

Von einem Netz ins andere schweifen<br />

<strong>und</strong> dabei in Verbindung bleiben. Mobile<br />

IPv6 macht's möglich.<br />

42 Blick übern Zaun<br />

<strong>Samba</strong> 4 durch die <strong>Windows</strong>-Brille.<br />

46 <strong>Samba</strong> senkt<br />

Verwaltungskosten<br />

Wie man <strong>Samba</strong> als Domänencontroller<br />

konfiguriert.<br />

56 SerNet <strong>und</strong> Univention<br />

<strong>Samba</strong>-4-Appliances von SerNet <strong>und</strong><br />

Univention.<br />

4 Ausgabe 02-2013 Admin www.admin-magazin.de


Inhalt<br />

Service<br />

56<br />

<strong>Samba</strong><br />

Die neue <strong>Samba</strong>-<br />

Version durch die<br />

Brille eines <strong>Windows</strong>-Admins.<br />

Zwei verwandte<br />

80NexentaOS<br />

storage-Lösungen<br />

mit Vor- <strong>und</strong> Nachteilen.<br />

Content Management<br />

110Jekyll<br />

<strong>und</strong> Blogs ohne die<br />

bekannten Sicherheitslücken.<br />

Know-how<br />

62 RADOS <strong>und</strong> Ceph<br />

Verteiltes Dateisystem: Der RADOS-<br />

Objectstore <strong>und</strong> Ceph, Teil 3.<br />

67 Foreman – GUI für Puppet<br />

Automatische Server-Administration<br />

während des gesamten Lebenszyklus.<br />

70 Powershell<br />

Die besten Commandlets für die<br />

Powershell.<br />

Test<br />

76 Flash Cache<br />

für VMs<br />

Im Test:<br />

Beschleunigerkarte<br />

von OCZ<br />

für ESX-Server.<br />

80 NexentaOS<br />

Zwei NexentaOS-Abkömmlinge <strong>im</strong><br />

Vergleich: einmal kommerziell, einmal<br />

kostenlos für den Eigenbau.<br />

Security<br />

86 Tcpdump<br />

Einbruchserkennung mit »tcpdump«.<br />

90 Two-Factor-<br />

Authentication<br />

Remote Access<br />

<strong>und</strong> Webapplikationen<br />

mit<br />

Zwei-Faktor-Authentifizierung doppelt<br />

absichern.<br />

Virtualisierung<br />

98 VMware-<br />

Monitoring<br />

OpenNMS-<br />

Komponenten<br />

für die ESX-<br />

Überwachung.<br />

102 Open Stack<br />

Open-Stack-Workshop, Teil 3: G<strong>im</strong>micks,<br />

Erweiterungen <strong>und</strong> Hochverfügbarkeit.<br />

Wie man die Cloud zuverlässig vor Ausfällen<br />

schützt.<br />

Programmieren<br />

110 Jekyll<br />

Auf der sicheren HTML-Seite: Bloggen<br />

mit statischen Dateien <strong>und</strong> Templates.<br />

114 Botnetze<br />

Bekenntnisse eines Botnetz-Programmierers.<br />

FreeX<br />

117 FreeX<br />

Artikel <strong>und</strong> Workshops aus der FreeX.<br />

118 ePubs selbst gemacht<br />

Zum eigenen eBook in drei Schritten.<br />

Die richtigen Tools <strong>und</strong> praktische Tipps<br />

fürs ePub-Format.<br />

126 Fedora 18<br />

F<strong>und</strong>amentale Neuerungen in der aktuellen<br />

Red-Hat-Community-Distribution,<br />

die (nicht nur) begeistern.<br />

Mehr Infos auf Seite 6<br />

<br />

SAMBA 4<br />

• <strong>Linux</strong>-Appliance mit <strong>Samba</strong> 4<br />

• Schnelle Installation auf Basis von Debian 6.0.6<br />

<br />

www.admin-magazin.de Admin Ausgabe 02-2013<br />

5


SErvice<br />

Heft-CD<br />

Heft-CD<br />

Auf dem beiliegenden Datenträger finden Sie eine aktualisierte<br />

Version der SerNet-<strong>Samba</strong>-Appliance [1], mit der<br />

sich <strong>im</strong> Handumdrehen eine Test-Installation von <strong>Samba</strong> 4<br />

einrichten lässt.<br />

◗ Installations-CD auf der Basis von Debian 6.0.6.<br />

◗ Menügeführte Installation einer Active-Directory-Domain<br />

mit <strong>Samba</strong> 4.<br />

◗ Support für Zarafa-Groupware.<br />

◗ Erfordert zur Installation eine komplette Festplatte (eine<br />

Partition genügt nicht).<br />

Mehr Informationen zur Appliance sind <strong>im</strong> Artikel ab S.<br />

56 zu finden.<br />

Legen Sie einfach die CD in das Laufwerk ein, <strong>und</strong> starten<br />

Sie den Rechner. Möglicherweise müssen Sie noch <strong>im</strong><br />

BIOS die richtige Boot-Reihenfolge einstellen, damit das<br />

Laufwerk vor der Festplatte an die Reihe kommt. n<br />

CD kaputt?<br />

Wir schicken Ihnen kostenlos eine<br />

Ersatz-CD zu, E-Mail genügt:<br />

info@admin-magazin.de<br />

Info<br />

[1] SerNet-<strong>Samba</strong>-Appliance: [http://www.enterprisesamba.org/<br />

samba4ad/samba-4-appliance/]<br />

6 Ausgabe 02-2013 Admin www.admin-magazin.de


1&1 DYNAMIC<br />

CLOUD SERVER<br />

1&1 Dynamic Cloud Server<br />

Ob als Web-, Datei-, Applikations- oder<br />

Business-Server. Nutzen Sie max<strong>im</strong>ale<br />

Flexibilität mit voller Kostenkontrolle!<br />

■ Basiskonfiguration: 1 CPU, 1 GB RAM,<br />

100 GB Festplatte<br />

■ Unl<strong>im</strong>ited Traffic mit 100 Mbit/s Bandbreite<br />

ohne Zusatzkosten <strong>und</strong> ohne Drosselung<br />

■ Mehr Sicherheit durch externe IP-Firewall<br />

(Cisco basiert)<br />

■ Freie Wahl aus CentOS, Debian, Ubuntu,<br />

openSUSE oder <strong>Windows</strong> (optional)<br />

■ Nur bei 1&1: Optional SUSE<br />

<strong>Linux</strong> Enterprise Server<br />

■ Nur bei 1&1: Server-Management<br />

<strong>und</strong> -Monitoring per Mobile App<br />

■ NEU! 1&1 Snapshot: Definieren<br />

Sie einfach einen Wiederherstellungszeitpunkt<br />

für Ihren Server.<br />

■ 24/7 Service <strong>und</strong> Support durch<br />

1&1 Server Expertenteam.<br />

0,– € *<br />

Aktionspreis<br />

für 3 Monate.*<br />

39, 99<br />

€/Monat*<br />

VOLLER ROOT-ZUGRIFF<br />

Komfort <strong>und</strong> Funktionsumfang eines Root<br />

Servers, mit dedizierten Ressourcen.<br />

HÖCHSTE FLEXIBILITÄT<br />

CPU, RAM <strong>und</strong> Festplattenspeicher<br />

unabhängig voneinander zubuchbar.<br />

Per Mausklick bis zu 99 virtuelle<br />

Maschinen zubuchbar – ohne Migration!<br />

VOLLE KOSTENKONTROLLE<br />

Absolute Kostentransparenz durch st<strong>und</strong>engenaue<br />

Abrechnung. Parallels ® Plesk Panel 11<br />

inklusive – ohne Domainbegrenzung.<br />

AUSFALLSICHER<br />

Red<strong>und</strong>ant gespiegelte Speicher- <strong>und</strong><br />

Recheneinheiten schützen Ihren Cloud-<br />

Server automatisch vor Ausfällen.<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

1<strong>und</strong>1.info<br />

* 1&1 Dynamic Cloud Server in den ersten 3 Monaten 0,– €/Monat, danach 39,99 €/Monat in der Basiskonfi guration. Performance Features für 0,01 €/St<strong>und</strong>e <strong>und</strong> Einheit zubuchbar.<br />

Einrichtungsgebühr 39,– €. 12 Monate Mindestvertragslaufzeit. Preise inkl. MwSt.


Login<br />

Bücher<br />

IT-Ratgeber <strong>im</strong> Redaktions-Check<br />

Vorgelesen<br />

Diesen Monat in der Lesestube: alles zu verteiltem <strong>und</strong> hochskalierbarem<br />

Monitoring <strong>und</strong> eine druckfrische Einführung in die PostgreSQL-Datenbank.<br />

Oliver Frommel, Jens-Christoph Brendel<br />

Im Opt<strong>im</strong>alfall hilft Monitoring, Fehler<br />

zu verhindern oder wenigstens frühzeitig<br />

zu erkennen. Meistens gehören dabei<br />

Software-Pakete wie Nagios oder Zabbix<br />

zum Standard-Repertoire. Eine Alternative<br />

dazu, insbesondere für Cluster oder<br />

auch Cloud-Installationen, ist das Ganglia-Paket,<br />

um das es in einem neuen Buch<br />

aus dem O’Reilly-Verlag geht.<br />

Die Einführung in die Materie liefert <strong>im</strong><br />

Vorwort der Ganglia-Autor Matt Massie<br />

mit einem netten Rückblick in den Zustand<br />

der Software vor elf Jahren. Seither<br />

ist vieles passiert, was das Buch <strong>im</strong> Detail<br />

erklärt. Das Kapitel über Installation <strong>und</strong><br />

Konfiguration verrät, wie man das Monitoring-Paket<br />

aufs System <strong>und</strong> dann zum<br />

Laufen bekommt. Dabei unterscheiden<br />

die Autoren nicht nur zwischen <strong>Linux</strong>,<br />

OS X <strong>und</strong> Solaris, sondern berücksichtigen<br />

RPM- <strong>und</strong> Deb-basierte <strong>Linux</strong>-Varianten.<br />

Natürlich wird auch die Installation<br />

aus dem Quellcode beschrieben.<br />

Allgemeiner gehaltene Kapitel erklären<br />

die Ganglia-Architektur <strong>und</strong> kommen <strong>im</strong>mer<br />

wieder ausführlich auf das Thema<br />

Skalierung zu sprechen, das auftaucht,<br />

wenn man etwa einige Tausend Hosts<br />

überwachen möchte.<br />

Fortgeschrittene Themen, denen sich das<br />

Buch widmet, sind das Management von<br />

Messdaten bis hin zur Erweiterung von<br />

Ganglia, um weitere Daten zu erfassen,<br />

die von Haus aus nicht vorgesehen sind.<br />

Dies erfordert bereits Programmierkenntnisse,<br />

etwa in C/​C++ oder Python. Über<br />

die Einbindung der sFlow-Schnittstelle<br />

kann Ganglia auch Daten von Routern,<br />

VM-Hypervisoren, der Java Virtual Machine<br />

<strong>und</strong> dem Caching-System Memcache<br />

erfassen. Damit Ganglia nicht auf<br />

seiner Monitoring-Insel verkümmert, geben<br />

die Autoren Tipps zur Integration<br />

mit Nagios.<br />

Wer sehr viele Rechner <strong>und</strong> Messdaten<br />

überwachen möchte, sollte einen Blick<br />

in das Ganglia-Buch werfen. Neben dem<br />

Monitoring-Paket selbst beschreibt es<br />

gr<strong>und</strong>sätzliche Probleme <strong>und</strong> Lösungen<br />

bei der Überwachung sehr großer Rechnerumgebungen.<br />

Für den Administrator<br />

eines kleinen Firmennetzes ist die Software<br />

<strong>und</strong> die dazu gehörige Lektüre vermutlich<br />

des Guten zuviel.<br />

PostgreSQL<br />

Mit der Unsicherheit über die Zukunft<br />

des Hauptkonkurrenten MySQL wächst<br />

auch die Beliebtheit von PostgreSQL.<br />

Die seit mehr als anderthalb Jahrzehnten<br />

eingeführte freie Datenbank kann<br />

ein ähnliches Leistungsvermögen bieten<br />

<strong>und</strong> steht nicht unter der Kontrolle eines<br />

nicht sonderlich Open-Source-fre<strong>und</strong>lichen<br />

Konzerns. Auf dem Buchmarkt hat<br />

das neue Kräfteverhältnis allerdings noch<br />

nicht durchgeschlagen: Eine Suche unter<br />

den Amazon-Büchern ergibt 788 Treffer<br />

be<strong>im</strong> Stichwort MySQL, aber nur 83 für<br />

PostgreSQL.<br />

Lutz Fröhlich schickt sich an, das zu<br />

ändern <strong>und</strong> legt ein umfassendes PostgreSQL-Buch<br />

vor. Es bezieht sich auf die<br />

Version 9.1, die mit eingebauter Replikation,<br />

Spalten-Triggern oder etlichen Performanceverbesserungen<br />

punktet.<br />

Das Buch beginnt gründlich <strong>und</strong> systematisch<br />

bei der Installation <strong>und</strong> behandelt<br />

dann die gr<strong>und</strong>legende Konfiguration<br />

sowie die wesentlichen Aufgaben der<br />

PostgreSQL-Administration wie Backup,<br />

Monitoring oder Performance Tuning<br />

in eigenen Kapiteln. Die Erläuterungen<br />

sind praxisorientiert <strong>und</strong> gut verständlich,<br />

wenn auch <strong>im</strong> Einzelfall zu kurz<br />

(so wie die r<strong>und</strong> fünf ganzen Sätze zur<br />

Überwachung mit Nagios).<br />

Verdienstvoll ist ein eigenes Kapitel zu<br />

PostGIS, einer PostgreSQL-Erweiterung<br />

für Geodaten. Entsprechende Anwendungen<br />

sind auf jeden Fall <strong>im</strong> Kommen. In<br />

einem eigenen Kapitel wird Umsteigern<br />

von MySQL oder von Oracle eine Hilfestellung<br />

an die Hand gegeben. Ebenfalls<br />

unter anderem bei einer Migration hilfreich<br />

ist die <strong>im</strong> Schlusskapitel behandelte<br />

Replikation zwischen PostgreSQL<br />

<strong>und</strong> Oracle via Oracle Streams Heterogeneous<br />

Information Sharing oder Oracle<br />

XStream.<br />

Im Ganzen handelt es sich bei dem Buch<br />

um eine empfehlenswerte Einführung in<br />

PostgreSQL, die auch für DBAs anderer<br />

Provenienz noch nützliche Hinweise parat<br />

hält. (ofr)<br />

PostgreSQL<br />

Lutz Fröhlich<br />

PostgreSQL 9<br />

Hanser Verlag 2013<br />

ISBN 978-3-446-42239-1<br />

41 Euro<br />

Ganglia<br />

Massie, Li, Nicholes, Vuksan<br />

Monitoring with Ganglia<br />

O’Reilly 2012<br />

ISBN: 978-1-4493-2970-9<br />

24 Euro<br />

8 Ausgabe 02-2013 Admin www.admin-magazin.de


GUTSCHEIN<br />

Dedicated Root-Server von HP<br />

Wir schenken jedem Admin - Netzwerk <strong>und</strong> Security-Leser 50€ bei<br />

Eingabe des Aktioncodes:<br />

AM-EH48E04s13-485<br />

Professional HP S Professional HP M Professional HP L<br />

CPU Intel XEON E3-1230 Intel XEON E3-1240 Intel XEON E3-1270<br />

Leistung<br />

Arbeitsspeicher<br />

Festplatten 7.200 rpm<br />

Anbindung<br />

KVM over IP per iLO<br />

IPv4 Adresse Inkl.<br />

IPv6 Subnetz (/64) Inkl.<br />

Betriebssysteme<br />

Extras<br />

Vertragslaufzeit<br />

Monatsgr<strong>und</strong>gebühr ALT<br />

Monatsgr<strong>und</strong>gebühr NEU<br />

Einrichtungsgebühr<br />

4 x 3,2 GHz Inkl. HT 4 x 3,3 GHz Inkl. HT 4 x 3,4 GHz Inkl. HT<br />

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

2 x 1 TB Enterprise-Edition 2 x 2 TB Enterprise-Edition 2 x 2 TB Enterprise-Edition<br />

1.000 MBit Flatrate 1.000 MBit Flatrate 1.000 MBit Flatrate<br />

Debian 6.0, CentOS 6, open SUSE 12.1, Ubuntu 12.04, Free BSD 9 <strong>und</strong><br />

<strong>Windows</strong> 2012 (19,99€ Aufpreis <strong>im</strong> Monat)<br />

100 GB Backup-Speicher, Monitoring, Reset- <strong>und</strong> Rescue-System<br />

1 Monat 1 Monat 1 Monat<br />

69,99 € 89,99 € 109,99 €<br />

59,99 € 79,99 € 99,99 €<br />

0,00 € 0,00 € 0,00 €<br />

Neu!<br />

Kostenlos vorinstallierte Virtualisierungs-Lösung mit<br />

vSphere 5.1<br />

Jetzt informieren & bestellen Tel.: 0211 / 545 957 - 300 www.webtropia.com<br />

<strong>Windows</strong> Server 2012<br />

PLATINUM PARTNER<br />

powered by


Login<br />

News<br />

+++ neueste Nachrichten <strong>im</strong>mer auf http://www.admin-magazin.de +++++ neueste Nachrichte<br />

Neue Software <strong>und</strong> Produkte<br />

Branchen-News<br />

Wirbel um L<strong>im</strong>ux-Studie von HP <strong>und</strong> Microsoft<br />

Nach der Kritik am L<strong>im</strong>ux-Projekt verlangte<br />

der Münchner Oberbürgermeister<br />

Ude von Microsoft ebenso Einblicke in<br />

das Papier wie die IT-Verantwortlichen<br />

der Stadt München <strong>und</strong> Münchens Dienstleister<br />

IBM. Microsoft hat daraufhin einen<br />

zwanzig Seiten langen Ausschnitt aus der<br />

L<strong>im</strong>ux-Studie [http:// de.​<br />

scribd. com/ doc/ 122167337/ S<br />

tudie‐OSS‐Strategie‐der‐Sta<br />

dt‐Munchen‐v1‐0‐Zusamme<br />

nfassung] veröffentlicht,<br />

die HP angefertigt hat.<br />

Microsoft <strong>und</strong> HP erläutern<br />

darin, warum sie in<br />

ihrer Rechnung auf 60<br />

Millionen Euro Migrationskosten<br />

kommen, die<br />

damit deutlich höher liegen<br />

als die von der Stadt<br />

München dargelegten. Projekt als Erfolg.<br />

Münchens Oberbürgermeister<br />

Christian Ude bezeichnete das L<strong>im</strong>ux-<br />

So schlussfolgern sie, dass ein aktuelles<br />

Debian deutlich schnellere Hardware<br />

benötige als ein <strong>Windows</strong> XP. Die Untersuchung<br />

geht zudem davon aus, „dass<br />

bei einer damaligen Entscheidung [weg<br />

von <strong>Windows</strong> NT] zugunsten von <strong>Windows</strong><br />

XP mit Office 2003 diese Produkte<br />

auch heute noch bei<br />

der Stadt München <strong>im</strong><br />

Einsatz wären.“ Auch<br />

die Geschwindigkeit<br />

des Rollout kritisiert das<br />

Papier: HP könne derlei<br />

Migrationen 7 bis 70 mal<br />

schneller abwickeln. Zudem<br />

sei die aufwendige<br />

Office-Migration keineswegs<br />

abgeschlossen,<br />

sondern falle bei jedem<br />

Wechsel wieder an,<br />

wohingegen Microsoft<br />

seine K<strong>und</strong>en bei Office-Umstellungen<br />

unterstütze.<br />

Das sieht Münchens Oberbürgermeister<br />

Ude anders: „Unser LiMux-Projekt belegt<br />

eindeutig, dass eine auf Open Source<br />

basierende IT-Strategie erfolgreich umgesetzt<br />

werden kann“, reagierte er gegenüber<br />

dem <strong>Linux</strong>-<strong>Magazin</strong> auf die Vorwürfe.<br />

Man habe daher „die Behauptungen<br />

der Studie, soweit wir sie der Presse entnehmen<br />

konnten, richtiggestellt.“ Peter<br />

Ganten, Chef der Open Source Business<br />

Alliance (OSBA), betrachtet die Studie<br />

an sich als legit<strong>im</strong>: „Dass Microsoft so<br />

eine Studie erstellt, ist doch klar. Intern<br />

muss so eine Company überprüfen, warum<br />

große K<strong>und</strong>en zunehmend ohne die<br />

Produkte aus Redmond auskommen <strong>und</strong><br />

damit auch noch erfolgreich sind.“ Allerdings<br />

stelle sich die Frage, wie sie an die<br />

Öffentlichkeit gelangt sei.<br />

Norm für Security <strong>und</strong> Service-Management<br />

ISO <strong>und</strong> IEC haben einen neuen Standard verabschiedet, der<br />

zeigen soll, wie sich Security <strong>und</strong> Service Management integrieren<br />

lassen. Der Standard mit dem Titel „ISO/​IEC 27013:2012,<br />

Information technology – Security techniques – Guidance on<br />

the integrated <strong>im</strong>plementation of ISO/​IEC 27001 and ISO/​IEC<br />

20000-1“ enthält Empfehlungen, wie die genannten Standards<br />

gemeinsam zu <strong>im</strong>plementieren sind.<br />

Die Standards ISO/​IEC 27001 <strong>und</strong> ISO/​IEC 20000-1 enthalten<br />

ähnliche Prozesse <strong>und</strong> Aktivitäten. Ein gemeinsames Management,<br />

das die Bereitstellung von Services zusammen mit ihren<br />

Sicherheitsanforderungen betrachtet, erschließt ein enormes<br />

Opt<strong>im</strong>ierungspotenzial <strong>und</strong> führt zu niedrigeren Kosten, geringerem<br />

Zeitbedarf, der Vermeidung von Doppelarbeit <strong>und</strong><br />

einem besseren gegenseitigen Verständnis von Service- <strong>und</strong><br />

Sicherheitsfachleuten.<br />

Der vom Technical Committee ISO/​IEC JTC 1, Information<br />

Technology, Subcommittee SC 27, IT Security Techniques, <strong>und</strong><br />

dem ISO/​IEC JTC 1 Subcommittee SC 7, Software and Systems<br />

Engineering, gemeinsam entwickelte Standard lässt sich <strong>im</strong><br />

PDF-Format für 140 Schweizer Franken über den ISO Store<br />

[http:// www. iso. org/ iso/ home/ store/ catalogue_tc/ catalogue_detail. htm?​<br />

csnumber=43753] käuflich erwerben.<br />

Mozilla als Datenschutz-Champion<br />

Mozilla rangiert laut einer Studie des Ponemon-Instituts [http://​<br />

www. ponemon. org/] recht weit oben bei der Wahrung der Privatsphäre<br />

der eigenen K<strong>und</strong>en. In der Studie betrachteten die Befragten<br />

Mozilla als das vertrauenswürdigste Unternehmen be<strong>im</strong><br />

Schutz der Privatsphäre in der Rubrik Internet/​Social Media. Im<br />

Gesamt-Ranking der Unternehmen kam Mozilla <strong>im</strong>merhin noch<br />

auf Platz 20 – <strong>im</strong> letzten Jahr war das Projekt auf den Plätzen<br />

noch nicht vertreten.<br />

Im Rahmen der Studie, die anlässlich des Data Privacy Day<br />

[http:// de. wikipedia. org/ wiki/ Europ%C3%A4ischer_Datenschutztag] veröffentlicht<br />

wurde, forderte das Ponemon Institut 100.000 US-<br />

Amerikaner auf, fünf Firmen zu nennen, die ihrer Meinung<br />

nach die Daten ihrer Anwender am besten schützen. Letztlich<br />

antworteten 6700 Personen auf die Befragung, die knapp 4<br />

Monate dauerte <strong>und</strong> <strong>im</strong> Dezember letzten Jahres endete. Über<br />

den Erfolg berichtete Mozilla in einem Blogeintrag [https://​<br />

blog. mozilla. org/ blog/ 2013/ 01/ 28/ privacy‐day‐2013/] <strong>und</strong> verwies – zur<br />

Demonstration der eigenen Bemühungen in diesem Bereich<br />

– auch gleich auf das hauseigene Privacy-Blog [https:// blog.​<br />

mozilla. org/ privacy/]. Die komplette Studie steht auf der Webseite<br />

des Unternehmens als PDF zum Download bereit [http:// www.​<br />

ponemon. org/ local/ upload/ file/ 2012%20MTC%20Report%20FINAL. pdf].<br />

10 Ausgabe 02-2013 Admin www.admin-magazin.de


n <strong>im</strong>mer auf http://www.admin-magazin.de<br />

Red Hat kauft ManageIQ<br />

Red Hat hat den Ankauf von ManageIQ, einem Cloud-Management-Spezialisten<br />

aus New Jersey, abgeschlossen. Schon vor<br />

der Übernahme war das Startup Teil des Programms Red Hat<br />

Enterprise Virtualization Certified Partner <strong>und</strong> arbeitete mit dem<br />

<strong>Linux</strong>-Unternehmen in Sachen Cloud-Monitoring, ‐Management<br />

<strong>und</strong> ‐Automatisierung zusammen.<br />

Red Hat sieht das zukünftige Geschäft in der hybriden Cloud,<br />

die unterschiedliche öffentliche <strong>und</strong> private Ressourcen vereint.<br />

Für diesen Bereich bringe ManageIQ mit seinen virtuellen<br />

Appliances <strong>und</strong> der Erfahrung mit VMware <strong>und</strong> <strong>Windows</strong>-<br />

Gastsystemen einen Mehrwert, schreibt Bryan Che von Red<br />

Hats Cloud Business Unit in einem Blogeintrag [http:// www.​<br />

redhat. com/ about/ news/ archive/ 2013/ 1/ manageiq‐and‐the‐open‐hybrid‐cl<br />

oud]. Red Hat hat für Produkte mit ManageIQ an Bord bereits<br />

eine Produktseite [http:// www. redhat. com/ products/ cloud‐computing/​<br />

manageiq/] eingerichtet, die auch eine Stellungnahme der Marktforscher<br />

von IDC einschließt.<br />

MobyDick7<br />

VoIP made in Germany<br />

DEG Zentrale 2<br />

HomeOffice Benjamin Ritter<br />

DEG Vertrieb 1<br />

DEG Zentrale 1<br />

DEG Entwicklung 1<br />

Weltneuheit: SSD mit 2 TByte<br />

Gut 20 Monate nach der 1-TByte-Variante konnte Foremay nun<br />

als erster Hersteller der Welt eine doppelt so große Version<br />

seiner SSD <strong>im</strong> 2,5-Zoll-Format ausliefern [http:// www. foremay. net/​<br />

pr/ 2tb‐ssd‐hard‐drive‐2‐tb‐ssd‐1tb‐ssd‐2tb‐ssd‐drive‐2tb‐hard‐drive‐1‐tera<br />

byte‐ssd‐1‐tb‐solid‐state‐drive‐foremay. pdf]. Das nur 9,5 mm dicke<br />

Gerät gibt es in zwei Varianten: als Foremay’s SC199 (für systemkritische<br />

Applikationen) <strong>und</strong> als TC166 (für Terminal Computing).<br />

Neben den üblichen Flash-Management-Technologien<br />

beherrschen die SSDs auch eine Self-Monitoring Analysis and<br />

Reporting Technology (S.M.A.R.T) sowie Advanced Power Management<br />

(APM). Außerdem kann der Admin bei Bedarf auf<br />

eine Verschlüsselung nach militärischen Sicherheitskriterien<br />

zurückgreifen. Preise nennt Foremay bisher nicht.<br />

VMware investiert 30 Millionen in Puppet<br />

Puppet Labs <strong>und</strong> VMware haben eine strategische Partnerschaft<br />

für IT-Management-Lösungen geschlossen. Wie die Firma<br />

Puppet Labs bekanntgab [http:// puppetlabs. com/ company/ news/​<br />

press‐releases/ puppet‐labs‐secures‐30‐million‐investment‐from‐vmware/],<br />

hat VMware <strong>im</strong> Rahmen einer strategischen Partnerschaft 30<br />

Millionen US-Dollar in das Unternehmen investiert. Inhalt der<br />

Vereinbarung ist die Entwicklung von IT-Management-Lösungen<br />

für virtualisierte <strong>und</strong> heterogene Umgebungen. Konkret handelt<br />

es sich um die Management-Software Puppet, die von Puppet<br />

Labs als freie wie auch als kommerzielle Software unter dem<br />

Namen „Puppet Enterprise“ vertrieben wird.<br />

Letztere greift zum Management von Umgebungen auf der Basis<br />

von VMware vSphere bereits auf die vSphere-API zurück.<br />

Ramin Sayar von VMware sieht als Ziel der Partnerschaft die<br />

Weiterentwicklung von Puppet für das Management von „VMware-basierten<br />

privaten <strong>und</strong> öffentlichen Clouds, physischer<br />

Infrastruktur, Open Stack <strong>und</strong> Amazon Web Services.“<br />

www.admin-magazin.de<br />

Erleben Sie MobyDick Live auf der<br />

Cebit 2013: Halle 13, Stand C42<br />

<strong>Linux</strong>basierende Telefonanlage für<br />

jede Unternehmensgröße<br />

Mit der MobyDick Telefonanlage haben Sie alle Fäden selbst in<br />

der Hand. Außerdem verbinden Sie die Features modernster<br />

Telefonie mit den Vorteilen von Voice over IP.<br />

Die neuen MobyDick7 Features:<br />

Freie Wahl des Arbeitsplatzes<br />

Integrieren Sie jedes beliebige Endgerät (BYOD)<br />

FollowMe Konzept - Ihre Endgeräte folgen Ihnen<br />

Intuitives User Interface<br />

Offene Telefonieplattform<br />

Mobility Client für iOS <strong>und</strong> Android<br />

Plattformunabhängiger CTI Client<br />

Call Center Funktionen<br />

Virtuelle Konferenzräume<br />

Print-to-Fax Gateway<br />

Virtuelle oder Serverlösung<br />

Mehr Informationen finden Sie unter:<br />

http://www.pascom.net/MD7<br />

http://community.pascom.net<br />

Kostenlose<br />

Community<br />

Version<br />

pascom<br />

Netzwerktechnik GmbH & Co. KG<br />

Berger Straße 42<br />

94469 Deggendorf<br />

Tel.: +49 991 27006 - 0<br />

Ausgabe 02-2013<br />

11


Login<br />

News<br />

+++ neueste Nachrichten <strong>im</strong>mer auf http://www.admin-magazin.de +++++ neueste Nachrichte<br />

Intel: SSD-Cache für <strong>Linux</strong>-Server<br />

Die Firma Intel hat eine <strong>Linux</strong>-Version ihrer SSD-basierten<br />

Cache Acceleration Software (CAS) herausgegeben, die laut<br />

Herstellerangaben die Performance von I/​O-intensiven Anwendungen<br />

bis zu 18-fach beschleunigt. Im Dezember letzten Jahres<br />

hatte Intel das Produkt schon für <strong>Windows</strong> veröffentlicht.<br />

In den Besitz der Technologie ist der Chiphersteller über den<br />

Zukauf der Firma Nevex gelangt, die ihr Produkt seinerzeit<br />

unter dem Namen Cacheworks verkauft hat.<br />

Häufiger gelesene Daten wandern in der Cache-Hierarchie von<br />

CAS nach oben, also in den schnellen RAM-Speicher. Be<strong>im</strong><br />

Schreiben greift CAS gleichzeitig auf den SSD-Cache <strong>und</strong> die<br />

Festplatten zu. Support bietet Intel be<strong>im</strong> Einsatz mit der eigenen<br />

SSD-Datacenter-Baureihe (Intel SSD DC S3700 <strong>und</strong> Intel SSD<br />

910). Offiziell unterstützt Intel-CAS Red Hat Enterprise <strong>Linux</strong> 5/​<br />

6, CentOS 5/​6 <strong>und</strong> Suse <strong>Linux</strong> Enterprise Server 11 SP1.<br />

Außer nativ mit <strong>Linux</strong> <strong>und</strong> <strong>Windows</strong> funktioniert CAS auch<br />

mit VMware, KVM, Citrix Xenserver <strong>und</strong> <strong>Windows</strong> Hyper-V.<br />

Als besonderes Feature unterstützt Intel die Migration virtueller<br />

Maschinen mit VMware vMotion. Dabei kümmert sich die<br />

Software darum, dass auch die <strong>im</strong> Cache befindlichen Daten auf<br />

den Zielrechner migriert werden.<br />

Die <strong>Linux</strong>-Version von CAS ist als kommerzielles Produkt verfügbar,<br />

soll aber in Kürze auch unter einer Open-Source-Lizenz<br />

angeboten werden. Mehr Informationen sind unter [http:// www.​<br />

intel. com/ content/ www/ us/ en/ software/ intel‐cache‐acceleration‐software<br />

‐technology. html] zu finden.<br />

MySQL 5.6 erschienen<br />

Oracle gibt bekannt, dass die neue Version 5.6 der MySQL-<br />

Datenbank verfügbar ist. Das neue Release soll verbesserte<br />

Performance <strong>und</strong> Skalierbarkeit bieten, es wartet mit NoSQL-<br />

Zugriff auf InnoDB-Tabellen auf, kommt Entwicklern mit einer<br />

Subquery-Opt<strong>im</strong>ierung entgegen <strong>und</strong> baut die Instrumentierung<br />

der Datenbank aus. Der Durchsatz der InnoDB-Engine soll sich<br />

um bis zu 230 Prozent erhöht haben. Zu den neuen Features<br />

zählen weiter Volltext-Indizes für InnoDB, die eine Suche nach<br />

Wörtern <strong>und</strong> Phrasen ermöglichen. Neue Eigenschaften der<br />

Replikation <strong>und</strong> der Self-Healing Replication Cluster verbessern<br />

die HA-Eigenschaften von MySQL.<br />

Cisco verkauft Linksys an Belkin<br />

Wie die Firma Belkin mitteilt, übern<strong>im</strong>mt sie den Netzwerkhersteller<br />

Linksys, der sich derzeit <strong>im</strong> Besitz von Cisco befindet.<br />

Dies betrifft die Produkte, die Technologie, die Marken sowie<br />

die Linksys-Mitarbeiter.<br />

Im Jahr 2003 hatte Cisco seinerseits Linksys für 500 Millionen<br />

US-Dollar übernommen. In <strong>Linux</strong>-Kreisen waren insbesondere<br />

die Linksys-Router der Serie WRT54 beliebt, auf denen sich eine<br />

angepasste <strong>Linux</strong>-Version als Router-Software betreiben ließ.<br />

Im Rahmen einer strategischen Partnerschaft soll Belkin über<br />

Linksys nun He<strong>im</strong> anwender bedienen, die für Cisco künftig<br />

keine interessante K<strong>und</strong>schaft mehr darstellen.<br />

Western Digital schluckt Arkeia<br />

Western Digital hat den Backup-Spezialisten Arkeia gekauft, um<br />

sein Portfolio für kleine <strong>und</strong> mittlere Unternehmen auszubauen.<br />

Arkeia wird in den WD-Geschäftsbereich Branded Products<br />

für KMUs integriert. Mit der Akquisition gehen Mitarbeiter,<br />

Technologie <strong>und</strong> Produkte von Arkeia in Form eines Unternehmenszusammenschlusses<br />

an WD über. Die Produkte von<br />

Arkeia werden zunächst unter diesem Namen weitergeführt.<br />

WD übern<strong>im</strong>mt die Betreuung der bestehenden Arkeia-K<strong>und</strong>en<br />

<strong>und</strong> plant die Fortführung der Arkeia Software- <strong>und</strong> Appliance-<br />

Produktlinien.<br />

Gleichzeitig mit der Übernahme ist nun Arkeia 10.0 erhältlich,<br />

das hybride Cloud-Backups ermöglicht, bei denen Administratoren<br />

physische Medien <strong>und</strong> Netzwerk-Übertragungen kombinieren<br />

können, uneingeschränkt verfügbar.<br />

Intel <strong>und</strong> Facebook entwickeln neuartige Rechner<br />

Intel <strong>und</strong> Facebook wollen neue, modulare Rack-Technologien<br />

entwickeln, die eine Trennung von Computer-, Netzwerk-<strong>und</strong><br />

Storage-Ressourcen ermöglichen. Bei den modularen Racks<br />

der nächsten Generation sollen sich deren Computer-, Netzwerk-<br />

<strong>und</strong> Storage-Subsysteme unabhängig voneinander einzeln<br />

erneuern lassen. Dadurch lassen sie sich zu Ressourcentypen<br />

gruppieren <strong>und</strong> über das gesamte Rack verteilen. Ergebnis sind<br />

niedrigere Kosten, verbesserte Upgrade-Möglichkeiten sowie<br />

höhere Zuverlässigkeit <strong>und</strong> Flexibilität.<br />

Das Konzept basiert auf Intels Silicon Photonics Technologie, die<br />

sehr schnell <strong>und</strong> stromsparend große Datenmengen über dünne<br />

Glasfasern statt über Kupferdrähte transferiert. In den letzten<br />

beiden Jahren hat Intel diese Technologie zur Produktionsreife<br />

gebracht <strong>und</strong> bereits erste Musterchips hergestellt.<br />

Intel <strong>und</strong> Facebook arbeiten seit Längerem als Technologiepartner<br />

bei Hardware-<strong>und</strong> Software-Opt<strong>im</strong>ierungen zusammen, um<br />

die Rechenzentren von Facebook effizienter <strong>und</strong> skalierbarer<br />

zu machen. Intel ist – gemeinsam mit Facebook – Mitglied des<br />

Gründungsvorstands des Open Compute Project (OCP). Dieses<br />

soll opt<strong>im</strong>ierte Hardware für riesige Cloud-Rechenzentren entwickeln.<br />

Intel engagiert sich mit mehreren Initiativen am OCP. Dazu zählen<br />

die Arbeit mit der Industrie an OCP-Boards für Intel-Xeon<strong>und</strong><br />

Intel-Atom-basierte Prozessoren, die Unterstützung einer<br />

speziellen Kühlung (Cold Storage) be<strong>im</strong> Intel Atom Prozessor,<br />

gemeinsames Hardware-Management oder die Definition künftiger<br />

Rack-Architekturen mit den heute vorgestellten Photonik/​<br />

Silizium-Elementen.<br />

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


News<br />

Login<br />

n <strong>im</strong>mer auf http://www.admin-magazin.de ++++ neueste Nachrichten <strong>im</strong>mer auf http://www.<br />

Alan Cox verlässt die Kernelentwicklung<br />

Bärtiger Kernelhacker: Alan Cox auf der <strong>Linux</strong>con Europe 2011 in Prag.<br />

Der britische Kernelentwickler Alan Cox zieht sich von der Arbeit<br />

am <strong>Linux</strong>-Kernel zurück <strong>und</strong> verlässt seinen Arbeitgeber Intel.<br />

In einem Blogeintrag [https:// plus. google. com/ 111104121194250082892/​<br />

posts/ KW3TdRYwjr9] gibt er dafür familiäre Gründe an. Auch wenn<br />

er Linus Torvalds in der Vergangenheit gelegentlich besch<strong>im</strong>pft<br />

habe, spiele der Kernelchef keine Rolle bei seiner Entscheidung,<br />

schreibt er dort. Auch mit Intel habe er sich nicht überworfen,<br />

der Job habe ihm Spaß gemacht. Daneben versichert er Greg<br />

Kroah-Hartman, dem Maintainer der stabilen <strong>Linux</strong>-Kernel, er<br />

werde seine derzeitige Arbeit an der virtuellen Mobilarchitektur<br />

„Goldfish“ fertigstellen.<br />

Cox verlässt die Kernelcommunity nach vielen Jahren entscheidender<br />

Arbeit. Der Entwickler war Betreuer der <strong>Linux</strong>-Version<br />

2.2 <strong>und</strong> pflegte verschiedene Subsysteme. In Diskussionen auf<br />

der Kernel-Mailingliste meldete sich der bärtige Programmierer<br />

unverblümt mit klaren Positionen zu Wort. 2003 verlieh ihm die<br />

Free Software Fo<strong>und</strong>ation ihren Award for the Advancement of<br />

Free Software, 2005 erhielt er den Lifet<strong>im</strong>e Achievement Award<br />

der <strong>Linux</strong> World.<br />

Netcraft: PHP wächst <strong>und</strong> wächst<br />

Laut einer Statistik des britischen Internet-Dienstleisters Netcraft<br />

erfreut sich die serverseitige Programmiersprache PHP<br />

<strong>im</strong>mer noch steigender Beliebtheit. Die Serverspezialisten haben<br />

<strong>im</strong> Januar 2013 stolze 244 Millionen Websites gezählt,<br />

auf denen PHP läuft. Das macht 39 Prozent der gesamten<br />

Webserver-Statistik des Anbieters aus. Typischerweise läuft die<br />

Open-Source-Skriptsprache auf <strong>Linux</strong> (74 Prozent der Server),<br />

gefolgt von Free BSD (8 Prozent) <strong>und</strong> <strong>Windows</strong> (7 Prozent).<br />

Das erstmals 1995 von Rasmus Lerdorf als Personal Home Page<br />

Tools veröffentlichte PHP dient mittlerweile als Gr<strong>und</strong>lage vieler<br />

Webanwendungen: Von Content-Management-Systemen wie<br />

Joomla oder Drupal bis zu Webshop-Lösungen wie Magento.<br />

Im Jahr 2001 verzeichnete Netcraft 1,8 Millionen PHP-Websites.<br />

Die Statistiker verwenden in ihrer Meldung [http:// news. netcraft.​<br />

com/ archives/ 2013/ 01/ 31/ php‐just‐grows‐grows. html] logarithmische<br />

Darstellung, um das starke Wachstum abzubilden.<br />

Cyberarms mit neuer Version<br />

Das Intrusion Detection <strong>und</strong> Defense System (IDDS) Cyberarms<br />

ist erweitert um zahlreiche Features in der neuen Version 2.1<br />

erschienen. Die Software, die <strong>Windows</strong>-Server vor Brute Force-,<br />

Password-Guessing- <strong>und</strong> Wörterbuchattacken schützt, indem<br />

sie den Angreifer über eine automatische Konfiguration der<br />

<strong>Windows</strong>-Firewall zuverlässig aussperrt, wurde jetzt um etliche<br />

neue Features erweitert. So protokolliert sie nun die Sperren<br />

in einer SQL-Datenbank <strong>und</strong> erfasst dabei auch, welches der<br />

spezialisierten Plugins, die hier Security Agents heißen, die<br />

Sperre ausgelöst hat. Zusätzlich landen die Sperr-Ereignisse <strong>im</strong><br />

<strong>Windows</strong> Event Log <strong>und</strong> können eine E-Mail-Benachrichtigung<br />

triggern.<br />

Die Agents überwachen in der Basisversion das Security Event<br />

Log, auf Wunsch weitere zusätzliche Dienste wie FTP, TSL/​<br />

SSL oder den SQL Server. Neu dazugekommen ist ein SMTP-<br />

Agent. Darüber hinaus erlaubt eine API das Entwickeln eigener<br />

Agents durch Anwender. Für die Sperren lassen sich<br />

Schwellwerte konfigurieren, <strong>und</strong> sie können wahlweise kurz<br />

oder lange andauern (Soft beziehungsweise Hard Locks). Zum<br />

Ausprobieren bietet die Firma eine kostenlose Version der Software<br />

an, die neuerdings bis zu fünf Sperren pro Tag erlaubt.<br />

(jcb,kki,mfe,mhu,ofr)<br />

<strong>Linux</strong> Schulungen 2013 – Nicht verpassen!<br />

• <strong>Linux</strong>-Administration für Fortgeschrittene, 18.03.<br />

• Systemmonitoring mit Nagios & Check_MK, 08.04.<br />

• KVM-Server-Virtualisierung unter <strong>Linux</strong>, 22.04.<br />

• <strong>Linux</strong>-Crashkurs für Administratoren, 13.05.<br />

• Erweiterungen programmieren für Check_MK, 03.06.<br />

• Fortgeschrittenes Monitoring mit Nagios & Check_MK, 10.06.<br />

• <strong>Linux</strong> als Server <strong>im</strong> Inter-<strong>und</strong> Intranet, 24.06.<br />

• Softwarepaketierung unter <strong>Linux</strong> mit RPM, 17.07.<br />

• Storage-LVM, MD, Multipathing, iSCSI, 26.8.<br />

NEU<br />

KVM - Server-<br />

Virtualisierung<br />

unter <strong>Linux</strong>:<br />

22.04.13<br />

Gerne machen wir auch Inhouse-Schulungen direkt bei Ihnen vor Ort.<br />

Fragen Sie uns nach einem Angebot zu Ihrem Wunschthema.<br />

Besuchen Sie uns<br />

auf der CeBIT, Halle 6,<br />

Block F16, Stand: 312<br />

089 / 18 90 435 - 0<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

schulung@mathias-kettner.de<br />

13<br />

www.mathias-kettner.de


1Gbit/s<br />

Port


Login<br />

Identitätsdiebstahl<br />

© lightwise, 123RF<br />

Identitätsdiebstahl: Fakten, Fälle, Gegenwehr<br />

Unter falschem<br />

Namen <strong>im</strong> Netz<br />

Unter den ersten sechs Cyber-Gefährdungen in der Rangfolge des B<strong>und</strong>esamtes für Sicherheit in der Informationstechnik<br />

(BSI) findet sich „Identitätsdiebstahl“. Aber gibt es das überhaupt als Straftatbestand? Muss man<br />

Angriffe melden? Und wie kann man sich davor schützen? Vilma Niclas<br />

Experten fassen unter dem Begriff<br />

Identitätsdiebstahl eine Vielzahl kr<strong>im</strong>ineller<br />

Handlungen zusammen, darunter<br />

Phishing, Man-in-the-Middle- <strong>und</strong><br />

Replay-Angriffe, Domain-Hijacking,<br />

Spoofing, Missbrauch voreingestellter,<br />

schwacher oder mehrfach verwendeter<br />

Passwörter, Session-Hijacking oder Diebstahl<br />

<strong>und</strong> Fälschung von Credentials (also<br />

Passwörtern, kryptografischen Schlüsseln<br />

<strong>und</strong> Session-Cockies). Identitätsdiebstahl<br />

hat also viele Gesichter. Im schl<strong>im</strong>msten<br />

Fall kann er das Image einer Person in<br />

der Öffentlichkeit zerstören <strong>und</strong> massive<br />

finanzielle oder wirtschaftliche Folgen<br />

nach sich ziehen.<br />

Treffen kann es jeden. Niemand weiß, ob<br />

seine digitale Identität bereits auf dem<br />

Schwarzmarkt gehandelt wird, etwa erlangt<br />

durch einen Einbruch bei einem<br />

Online-Anbieter, der den Nutzer nicht<br />

über den Angriff informiert hat. Für den<br />

„Cyber Security Report“ wurden <strong>im</strong> März<br />

2012 Internetnutzer in der Europäischen<br />

Union befragt, wie oft sie bereits Opfer eines<br />

Identitätsdiebstahls geworden seien.<br />

Im Durchschnitt aller Länder antworteten<br />

acht Prozent mit „Ja“ (in Rumänien sogar<br />

16 Prozent). Deutschland liegt mit sechs<br />

Prozent <strong>im</strong> Mittelfeld. Kein W<strong>und</strong>er also,<br />

dass es es mittlerweile Dienstleister gibt,<br />

die sich darum kümmern, das Image <strong>im</strong><br />

Internet zu retten <strong>und</strong> die Schutz gegen<br />

Identitätsdiebstahl versprechen.<br />

Praxisbeispiele<br />

In Rostock wurden unter dem Namen eines<br />

Finanzsenators in einem gefälschten<br />

Facebook-Account Fotos, Links <strong>und</strong> Kommentare<br />

verbreitet <strong>und</strong> 303 Personen,<br />

Vereine oder Verbände hatten – ohne es<br />

zu merken – ihn als Kontakt akzeptiert,<br />

darunter B<strong>und</strong>es- <strong>und</strong> Landtagsabgeordnete<br />

sowie Mitglieder der Rostocker Bürgerschaft.<br />

Ein amerikanischer Journalist<br />

musste tatenlos zusehen, wie Hacker<br />

sein Google-Konto sowie den Inhalt des<br />

16 Ausgabe 02-2013 Admin www.admin-magazin.de


Identitätsdiebstahl<br />

Login<br />

Die Cybercr<strong>im</strong>e Kommissare in Berlin<br />

bemängeln, es gäbe besonders <strong>im</strong> grenzüberschreitenden<br />

Bereich Schwachstellen.<br />

So könne sich etwa die Polizei bei<br />

einem Identitätsdiebstahl nicht direkt<br />

an Facebook wenden, sondern müsse<br />

dies entweder über das BKA mit einem<br />

Rechtshilfeersuchen tun oder hoffen, dass<br />

die Staatsanwaltschaft sich an Facebook<br />

wendet. Dies dauere oft zu lange. Am<br />

11. Januar 2013 wurde das neue Europäische<br />

Zentrum zur Bekämpfung der<br />

Cyberkr<strong>im</strong>inalität in Den Haag bei Europol<br />

eröffnet. Es soll der Polizei in der<br />

gesamten EU bei Bedrohungen durch Cyberkr<strong>im</strong>inalität<br />

zur Seite stehen <strong>und</strong> die<br />

internationale Arbeit koordinieren.<br />

„Wir brauchen ein flexibles, adäquates<br />

Vorgehen gegen Cyberkr<strong>im</strong>inalität, die<br />

keine Grenzen kennt <strong>und</strong> es Straftätern<br />

sehr leicht macht, sich zu verstecken.<br />

Als Mittelpunkt der operationellen investigativen<br />

<strong>und</strong> forensischen UnterstütiPhones,<br />

iPads als auch seines MacBooks<br />

löschten <strong>und</strong> über seinen Twitter-Account<br />

rassistische Meldungen schrieben.<br />

Bei einem Interview mit Cybercr<strong>im</strong>e-<br />

Beamten vom LKA Berlin verrieten Kr<strong>im</strong>inaloberrat<br />

Carsten Szymanski <strong>und</strong> Kr<strong>im</strong>inalhauptkommissar<br />

Heiko Wegner: Sehr<br />

viele Fälle stammen aus dem familiären<br />

Umfeld. Gerade in getrennten Beziehungen<br />

kommt es öfter zum Stalking, <strong>und</strong><br />

der oder die Ex malträtiert mit Anrufen<br />

oder E-Mails oder ordert Waren unter<br />

dem Namen des ehemals Geliebten. Sich<br />

dann um massenhafte Rücksendungen<br />

zu kümmern, kann ewig dauern.<br />

Übern<strong>im</strong>mt jemand ein fremdes Facebook-Konto,<br />

kann er so mit Kontakten<br />

kommunizieren wie der wirkliche Inhaber<br />

<strong>und</strong> sich hinter dessen digitaler<br />

Identität verstecken. Verknüpft er dann<br />

auch noch mehrere Dienste miteinander,<br />

könnte es sein, dass der wahre Inhaber<br />

vom eigenen E-Mail-Konto ausgesperrt ist<br />

<strong>und</strong> den Missbrauch nicht richtigstellen<br />

kann. Sind dann auch noch alle E-Mails<br />

<strong>und</strong> Kontakte nur in der Cloud abgespeichert,<br />

<strong>und</strong> hat man keine Sicherungskopie<br />

auf der eigenen Festplatte, ist das<br />

digitale Ich beinahe ausgelöscht.<br />

Gefahr: mangelhafte<br />

Sicherheit der Anbieter<br />

Es muss nicht <strong>im</strong>mer die Sorglosigkeit,<br />

Naivität oder ein Fehler des Online-Nutzers<br />

sein. Die Cybercr<strong>im</strong>e-Kommissare<br />

be<strong>im</strong> LKA in Berlin weisen darauf hin,<br />

dass Fälle wie die geschilderten Beispiele<br />

nicht so folgenreich seien wie Angriffe<br />

auf Unternehmen. Etwa der digitale Einbruch<br />

bei Sony <strong>im</strong> Frühjahr 2011. Damals<br />

wurden Daten von vielen Millionen K<strong>und</strong>en<br />

des Playstation-Netzwerks gehackt:<br />

Namen, Adressen, E-Mail, Geburtsdatum,<br />

teilweise Logins <strong>und</strong> Paßwörter<br />

(Abbildung 1).<br />

Von den geknackten Konten könnte man<br />

Rückschlüsse auf E-Mail- <strong>und</strong> andere<br />

Konten ziehen <strong>und</strong> versuchen, sich mit<br />

den Paßwörtern bei anderen Anbietern<br />

anzumelden. Im schl<strong>im</strong>msten Fall kennt<br />

der Täter auch die Daten der Kreditkarte.<br />

Nicht jedes Unternehmen teilt Nutzern<br />

von selbst Sicherheitslücken mit. Oft<br />

sorgt man sich um das Image oder will<br />

K<strong>und</strong>en nicht allzu sehr verunsichern.<br />

Aus diesem Gr<strong>und</strong> werden nur sehr we-<br />

Abbildung 1: Daten von Millionen Playstation-K<strong>und</strong>en fielen 2011 nach einem Einbruch Hackern in die Hände.<br />

nige der Taten angezeigt. Die Cybercr<strong>im</strong>e-<br />

Kommissare in Berlin wiesen darauf hin,<br />

dass die bei einem Angriff erlangten K<strong>und</strong>endaten<br />

eines Unternehmens danach oft<br />

auf dem Schwarzmarkt <strong>im</strong> Untergr<strong>und</strong><br />

gehandelt würden. Es kann also für K<strong>und</strong>en<br />

massive Folgen haben, wenn man<br />

von einem Einbruch nichts erfährt <strong>und</strong> so<br />

etwa Kreditkarten nicht schnell sperren<br />

oder das Paßwort ändern kann.<br />

Die Cybercr<strong>im</strong>e Zentrale in<br />

Den Haag<br />

zung soll das Zentrum das entsprechende<br />

Know-how sammeln <strong>und</strong> verbreiten. Da<br />

es alle einschlägigen Ressourcen in den<br />

EU-Mitgliedstaaten mobilisieren kann,<br />

soll es aber auch dazu dienen, die Bedrohung<br />

durch Cyberkr<strong>im</strong>inelle – wo auch<br />

<strong>im</strong>mer diese operieren – abzuschwächen<br />

<strong>und</strong> zu reduzieren“, so Troels Oerting,<br />

der Leiter des Europäischen Zentrums<br />

zur Bekämpfung der Cyberkr<strong>im</strong>inalität.<br />

Konzentrieren will sich das Zentrum auf<br />

illegale Online-Tätigkeiten organisierter<br />

kr<strong>im</strong>ineller Gruppen. Im Focus stehen<br />

auch Straftaten, die das System der kritischen<br />

Infrastrukturen <strong>und</strong> das Informationssystem<br />

in der EU beeinträchtigen. Das<br />

Zentrum will außerdem Strafverfolger,<br />

Richter <strong>und</strong> Staatsanwälte schulen.<br />

Umstrittene Meldepflicht<br />

Zudem veröffentlichte am 7. Februar<br />

2013 die Europäische Kommission eine<br />

Cybersicherheitsstrategie sowie einen<br />

Kommissionsvorschlag für eine Richtlinie<br />

zur Netz- <strong>und</strong> Informationssicherheit<br />

(Abbildung 2). Ihr Ziel ist es, alle<br />

Mitgliedsstaaten der EU <strong>und</strong> Betreiber<br />

zentraler Internetdienste <strong>und</strong> kritischer<br />

Infrastrukturen (etwa Plattformen des<br />

elektronischen Geschäftsverkehrs oder<br />

auch sozialer Netze) <strong>und</strong> die Betreiber<br />

von Energie-, Verkehrs-, Bank- <strong>und</strong><br />

Ges<strong>und</strong>heitsdiensten zu verpflichten,<br />

in der gesamten EU ein sicheres <strong>und</strong><br />

vertrauenswürdiges digitales Umfeld zu<br />

gewährleisten.<br />

© Denis Raev, 123RF<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

17


Login<br />

Identitätsdiebstahl<br />

Neelie Kroes, die für die Digitale Agenda<br />

zuständige Vizepräsidentin der Kommission:<br />

„Je mehr die Menschen vom<br />

Internet abhängen, umso mehr verlassen<br />

sie sich darauf, dass es auch sicher<br />

ist. Ein sicheres Internet schützt unsere<br />

Freiheiten <strong>und</strong> Rechte <strong>und</strong> unsere Wirtschaftstätigkeit.<br />

Es ist höchste Zeit für ein<br />

koordiniertes Vorgehen, denn die Kosten<br />

des Nichtstuns sind weitaus höher als die<br />

Kosten des Handelns.“ Erwähnt wird in<br />

diesem Zusammenhang, dass <strong>im</strong> Januar<br />

2012 nur 26 Prozent der Unternehmen in<br />

der EU förmlich festgelegte IKT-Sicherheitsvorgaben<br />

vorweisen konnten. Eine<br />

erschreckende Zahl, wenn man bedenkt,<br />

dass viele Unternehmen mit personenbezogenen<br />

Daten hantieren <strong>und</strong> die Nutzer<br />

von diesen Diensten abhängig sind.<br />

Die angesprochene Richtlinie enthält unter<br />

anderen den Vorschlag, einen Kooperationsmechanismus<br />

zwischen Mitgliedstaaten<br />

<strong>und</strong> Kommission zu schaffen,<br />

um etwa rechtzeitig Warnungen vor Sicherheitsrisiken<br />

auszutauschen. Zudem<br />

sollen Betreiber kritischer Infrastrukturen<br />

in best<strong>im</strong>mten Bereichen (Finanzdienste,<br />

Verkehr, Energie <strong>und</strong> Ges<strong>und</strong>heitswesen)<br />

sowie Betreiber zentraler Dienste der Informationsgesellschaft<br />

(vor allem App-<br />

Stores, eCommerce-Plattformen, Cloud-<br />

Computing-Provider, Suchmaschinen<br />

oder soziale Netze) <strong>und</strong> öffentliche Verwaltungen<br />

Risikomanagementmethoden<br />

einführen <strong>und</strong> große Sicherheitsvorfälle<br />

in ihren Kerndiensten melden.<br />

Abbildung 2: Die Europäische Kommission schlägt neuerdings eine spezielle Meldepflicht für<br />

Sicherheitsvorkommnisse in ihren Mitgliedsländern vor.<br />

Unternehmen fürchten nun, dass die Veröffentlichung<br />

schwerwiegendere Folgen<br />

als der eigentliche Angriff haben könnte.<br />

Bereits jetzt verpflichten sowohl das B<strong>und</strong>esdatenschutzgesetz<br />

(BDSG) als auch<br />

das Telekommunikationsgesetz (§ 109 a<br />

TKG), Datenschutzpannen zu melden,<br />

sofern dadurch die Rechte oder schutzwürdigen<br />

Interessen der Betroffenen<br />

schwerwiegend beeinträchtigt sind. Die<br />

Meldepflicht in § 42 a BDSG bezieht sich<br />

nur auf Datenpannen, die besondere Arten<br />

personenbezogener Daten betreffen,<br />

wie Daten, die einem Berufsgehe<strong>im</strong>nis<br />

unterliegen, Bank- oder Kreditkartendaten,<br />

Daten über rassische <strong>und</strong> ethnische<br />

Herkunft, politische Meinungen, religiöse<br />

oder philosophische Überzeugungen,<br />

Gewerkschaftszugehörigkeit, Ges<strong>und</strong>heit<br />

oder Sexualleben. Meldepflichtig sind zudem<br />

Unternehmen, die öffentliche Telekommunikationsdienste<br />

erbringen.<br />

Der Branchenverband BITKOM verwies<br />

aufgr<strong>und</strong> des neuen Vorschlages auf die<br />

bestehenden Gesetze <strong>und</strong> lehnte eine darüber<br />

hinausgehende Meldepflicht für IT-<br />

Sicherheitspannen als unverhältnismäßig<br />

ab. Er meint, freiwillige Meldungen seien<br />

deutlich sinnvoller. Es gäbe in Deutschland<br />

eine Meldestelle des BSI [1], wo<br />

Unternehmen anonym <strong>und</strong> freiwillig Eingriffe<br />

in deren Systeme melden können.<br />

© jean schweitzer, 123RF<br />

Ist Identitätsdiebstahl strafbar?<br />

Da sich Identitätsdiebstahl vielfältig äußert,<br />

gibt es keinen einheitlichen Straftatbestand<br />

unter dieser Überschrift. Oft lässt sich der<br />

Schaden nicht in Zahlen ausdrücken, etwa wenn<br />

„lediglich“ der Ruf <strong>im</strong> Internet leidet. Es kommt<br />

auf den konkreten Fall <strong>und</strong> die Folgen an. Abgegebene<br />

Kommentare können eine Beleidigung<br />

sein, eine Äußerung eine abmahnfähige Kreditgefährdung<br />

oder Namensrechtsverletzung.<br />

Sind Fotos übernommen, handelt es sich meist<br />

um eine strafbare <strong>und</strong> abmahnfähige Urheberrechtsverletzung,<br />

oder das Recht am Bild der<br />

abgebildeten Person ist verletzt – ebenfalls eine<br />

Straftat (§§ 23, 33 KUG) <strong>und</strong> abmahnfähig.<br />

Nach einem Identitätsdiebstahl hat man drei<br />

Monate Zeit, um einen Strafantrag zu stellen.<br />

In einigen Fällen hat man gegebenenfalls<br />

Anspruch auf Geldentschädigung <strong>und</strong> Gegendarstellung.<br />

Be<strong>im</strong> Kauf von Waren unter fremden<br />

Namen, handelt es sich um Betrug. Für<br />

die Belästigung des Ex-Geliebten gibt es den<br />

sogenannten Stalking-Paragrafen. Danach ist<br />

strafbar, einem Menschen unbefugt nachzustellen,<br />

indem jemand beharrlich unter Verwendung<br />

von Telekommunikationsmitteln oder sonstigen<br />

Mitteln der Kommunikation oder über Dritte<br />

Kontakt zu ihm herzustellen versucht oder unter<br />

missbräuchlicher Verwendung von dessen<br />

personenbezogenen Daten Bestellungen von<br />

Waren oder Dienstleistungen für ihn aufgibt<br />

oder Dritte veranlasst, mit diesem Kontakt aufzunehmen,<br />

<strong>und</strong> dadurch seine Lebensgestaltung<br />

schwerwiegend beeinträchtigt wird.<br />

Zudem kennt das Strafgesetzbuch noch einige<br />

spezielle Computerstraftaten, die je nach Folge<br />

der Tat einschlägig sein könnten, etwa das Ausspähen<br />

oder Abfangen von Daten, den Computerbetrug<br />

oder die Computersabotage. Ändert<br />

der Täter ein Paßwort, könnte dies eine nach §<br />

303 a StGB strafbare Datenveränderung sein.<br />

Vorsorgemaßnahmen<br />

Auf die IT-Sicherheit von Anbietern kann<br />

aber auch ein Endk<strong>und</strong>e indirekt Einfluss<br />

nehmen. Er kann ihn bei der Auswahl<br />

genau unter die Lupe nehmen. Als Unternehmer<br />

ist man dazu teilweise sogar<br />

verpflichtet, wenn man dem Anbieter<br />

personenbezogene Daten von K<strong>und</strong>en<br />

überlässt (sogenannte Auftragsdatenverarbeitung<br />

[2]) <strong>und</strong> Dienstleistungen<br />

outsourct. Umso mehr Menschen sich<br />

bei der Auswahl eines Anbieters nach<br />

der IT-Sicherheit <strong>und</strong> dem Datenschutz<br />

<strong>im</strong> Unternehmen erk<strong>und</strong>igen, umso ernster<br />

nehmen Unternehmen das Thema IT-<br />

Sicherheit <strong>und</strong> schaffen Transparenz bei<br />

digitalen Einbrüchen. Erfährt ein K<strong>und</strong>e<br />

erst Monate später von einem Einbruch<br />

bei seinem Dienstleister, könnte man er-<br />

18 Ausgabe 02-2013 Admin www.admin-magazin.de


wägen, den Vertrag außerordentlich zu<br />

kündigen. Auch dies wiederum könnte<br />

dazu beitragen, die Transparenz zu erhöhen.<br />

Neue Gesetze<br />

Die Cybercr<strong>im</strong>e-Beamten des LKA Berlin<br />

beklagen, dass Anfragen bei den Providern<br />

nach Verbindungsdaten oft leer<br />

ausgingen, denn diese seien entweder gar<br />

nicht gespeichert oder nach spätestens<br />

einer Woche gelöscht. Selbst wenn die<br />

Daten vorlägen, könne man IP-Adressen<br />

wegen der unsicheren Rechtslage zur<br />

Vorratsdatenspeicherung in Deutschland<br />

nicht <strong>im</strong>mer als Beweis nutzen. Ob eine<br />

umfassende Vorratsdatenspeicherung<br />

mehr Sicherheit brächte, wird seit einigen<br />

Jahren sehr kontrovers diskutiert [3].<br />

Datenhehlerei bald<br />

strafbar?<br />

Die Berliner Cybercr<strong>im</strong>e Beamten kritisieren,<br />

dass es aktuell nicht strafbar<br />

sei, gestohlene Daten weiterzugeben. Im<br />

Cybercr<strong>im</strong>e B<strong>und</strong>eslagebild 2011 heißt<br />

es: „Der Diebstahl digitaler Identitäten<br />

ist für Kr<strong>im</strong>inelle äußerst lukrativ. Alle<br />

Arten digitaler Identitäten (zum Beispiel<br />

Bankaccounts, Accounts für soziale<br />

Netzwerke, Kreditkartendaten) werden<br />

in den illegalen Webshops der sogenannten<br />

Undergro<strong>und</strong> Economy angeboten.“<br />

Ein neuer Straftatbestand wird bereits<br />

diskutiert. Der 69. Deutsche Juristentag<br />

beschloss <strong>im</strong> September 2012: „Um eine<br />

Strafbarkeitslücke <strong>im</strong> Hinblick auf den<br />

Gehe<strong>im</strong>nis- <strong>und</strong> Datenschutz <strong>im</strong> Internet<br />

Vorbeugende Maßnahmen<br />

Paßwörter bei sozialen Netzwerken <strong>und</strong> Internetdiensten<br />

sollten öfter geändert werden.<br />

Der Cybercr<strong>im</strong>e-Kommissar rät: „Sicherheit<br />

entsteht durch Medienbrüche. Empfehlenswert<br />

sind Passwörter mit mindestens 10 Stellen <strong>und</strong><br />

Sonderzeichen.<br />

Die geschäftliche Korrespondenz ausschließlich<br />

über Google oder einen anderen Webmail-<br />

Dienst abzuwickeln, ist nicht ratsam. Daneben<br />

sollte man unbedingt wenigstens über eine<br />

weitere E-Mail-Adresse verfügen.<br />

Auf Internetseiten gehören so wenig wie möglich<br />

persönliche Daten. Sozialen Netzwerken<br />

sollte man den Abgleich mit dem eigenen<br />

Adressbuch verwehren. Am besten speichert<br />

man keine Kreditkartendaten in einem Profil."<br />

zu schließen ist ein neuer Straftatbestand<br />

zur Datenhehlerei einzuführen.“ Hessen<br />

soll nun einen Vorschlag erarbeiten.<br />

Das kann man tun <strong>im</strong><br />

Ernstfall<br />

Wer Opfer eines Identitätsdiebstahls geworden<br />

ist, sollte schnell handeln <strong>und</strong><br />

veranlassen, dass der Betreiber des betroffenen<br />

Internetdienstes den übernommenen<br />

Account sperrt. Max<strong>im</strong>al sieben Tage<br />

speichern Provider die Verbindungsdaten<br />

(darunter die IP-Aressen) die eventuell<br />

noch zu den Tätern führen. Man sollte<br />

übrigens Facebook am besten direkt auffordern,<br />

ein von Fremden übernommenes<br />

Profil zu löschen. Privatperson können<br />

hier zumeist schneller reagieren als die<br />

Polizei.<br />

Sofern jemand fremde Inhalte unter dem<br />

eigenen Namen veröffentlicht hat, sollte<br />

man den Seitenbetreiber auffordern, die<br />

Daten binnen einer kurzen Frist zu sperren<br />

oder ganz zu löschen. Nötigenfalls<br />

sollte man sich anwaltlicher Hilfe versichern.<br />

Wird die Kreditkarte illegal benutzt,<br />

gilt es, die Bank unverzüglich zu<br />

informieren. Dafür gibt es die b<strong>und</strong>esweit<br />

einheitliche Sperrnotrufnummer: 116 116.<br />

(jcb)<br />

n<br />

Infos<br />

[1] Meldestelle des BSI:<br />

[https:// www. allianz‐fuer‐cybersicherheit.​<br />

de/ ACS/ DE/ Home/ Meldestelle/ meldestelle_<br />

node. html]<br />

[2] Auftragsdatenverarbeitung:<br />

<strong>ADMIN</strong>-<strong>Magazin</strong> 1/​2013<br />

[http:// www. admin‐magazin. de/ Das‐Heft/​<br />

2013/ 01/ Wie‐man‐externe‐Dienstleister‐ric<br />

htig‐beauftragt]<br />

[3] Vorratsdatenspeicherung:<br />

[http:// www. vorratsdatenspeicherung. de]<br />

Die Autorin<br />

Die Autorin ist Rechtsanwältin & Fachjournalistin<br />

für IT-Recht in Berlin. Sie veröffentlicht seit<br />

1997 zu Fragen des IT-Rechtes. Darüber hinaus<br />

referiert sie zu aktuellen Fragen des Internetrechtes,<br />

gibt Workshops zum<br />

Softwarelizenzrecht oder<br />

zur IT-Sicherheit <strong>und</strong> unterrichtet<br />

als Lehrbeauftragte<br />

für IT-Recht an der Beuth<br />

Hochschule für Technik.<br />

© Mira Burg<strong>und</strong><br />

Auch Ihre<br />

Server<br />

wurden<br />

gehackt!<br />

St<strong>im</strong>mt nicht?<br />

Sind Sie sicher?<br />

Und woher wissen<br />

Sie das?<br />

cyberarms.de<br />

info@cyberarms.net<br />

Effizienter Serverschutz<br />

Das direkt auf dem <strong>Windows</strong> Server-System<br />

laufende IDDS von Cyberarms erkennt verdächtige<br />

Zugriffsversuche <strong>und</strong> sperrt potenzielle<br />

Angreifer durch Konfiguration der <strong>Windows</strong><br />

Firewall aus. Zahlreiche Erweiterungen („Security<br />

Agents“) lassen sich beliebig kombinieren,<br />

um Ihre <strong>Windows</strong> Systeme opt<strong>im</strong>al zu schützen.<br />

Mehr Informationen unter cyberarms.de<br />

www.admin-magazin.de<br />

IT Security Products


Login<br />

Admin-Story<br />

© cbpix, 123RF<br />

Gerätenamen herausfinden<br />

Finde Nemo<br />

Es war schon <strong>im</strong>mer so: Ethernet-Devices in <strong>Linux</strong> heißen »eth0« <strong>und</strong><br />

nicht anders. Auf einmal verliert auch diese Wahrheit ihre Gültigkeit, <strong>und</strong><br />

<strong>Linux</strong>-Administratoren müssen umlernen. Warum <strong>und</strong> wie, verrät dieser<br />

Teil der Admin-Story. Thorsten Scherf<br />

Neulich rief ein K<strong>und</strong>e an <strong>und</strong> fragte<br />

mich ganz aufgeregt, was denn auf einmal<br />

mit seinem System los ist. Plötzlich<br />

gebe es kein »eth0« mehr, dafür tauchten<br />

auf einmal seltsame Namen wie »em1«<br />

oder »p3p1« in der Konsole auf. Was hier<br />

passiert ist, möchte er gerne wissen.<br />

Die Erklärung ist recht einfach. Für die<br />

Namensgebung verantwortlich ist das<br />

regelbasierte Udev-Subsystem. Passen<br />

alle Kriterien einer Regel auf ein be<strong>im</strong><br />

Systemstart gef<strong>und</strong>enes Netzwerk-Gerät,<br />

bekommt das Gerät den in der Regel definierten<br />

Namen, überlicherweise etwas<br />

wie »ethX«. Hier ein Beispiel:<br />

# grep eth0 /etc/udev/rules.d/70‐persistentU<br />

‐net.rules<br />

SUBSYSTEM=="net", ACTION=="add", DRIVERS==U<br />

"?*", ATTR{address}=="f0:de:f1:d5:c1:25", U<br />

ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"<br />

Die Regel besagt, dass ein Netzwerk-<br />

Gerät mit der genannten MAC-Adresse<br />

als Device-Namen »eth0« bekommen soll<br />

<strong>und</strong> somit als erstes Gerät auf dem System<br />

sichtbar ist. Der Name in der Datei<br />

ist beliebig. Wer mag, der kann die Karte<br />

auch »public« oder »private« nennen. Das<br />

Prinzip funktioniert soweit ganz gut. Der<br />

Nachteil ist jedoch, dass offenbleibt, um<br />

welche Karte auf dem System es sich<br />

denn nun genau handelt. Klar ist lediglich,<br />

dass es die Karte mit der aufgeführten<br />

MAC-Adresse ist, ob dies jedoch auch<br />

das erste Netzwerk-Gerät auf dem System<br />

ist, ist unklar. Für System-Administratoren<br />

ist dieser Umstand <strong>im</strong>mer ein großes<br />

Ärgernis. Wer schon einmal vor einem<br />

Server mit einem Dutzend Netzwerkports<br />

gestanden <strong>und</strong> dabei nach »eth0« gesucht<br />

hat, weiß, wovon ich rede.<br />

Verwechslungsgefahr<br />

Besonders schl<strong>im</strong>m ist es auch bei Netzwerk-Installationen,<br />

bei denen die TFTP-<br />

Boot-Anfrage über »eth0« verschickt, der<br />

Installer aber später die DHCP-DISCO-<br />

VER-Meldung über eine andere als »eth0«<br />

identifierte Netzwerkkarte versendet. Ein<br />

echter Spaß bei der Fehlersuche.<br />

Schön wäre es doch, wenn der Name,<br />

den ich auf einem System sehe, identisch<br />

mit dem Chassis-Namen wäre, sodass ich<br />

direkt sehen kann, ob es sich beispielsweise<br />

um einen Onboard-Netzwerkport<br />

oder einen Port der externen PCI-Karte<br />

handelt. Es gibt Tricks, beispielsweise die<br />

LED der Karte mittels »ethtool ‐p ethX«,<br />

blinken zu lassen oder dem Installer mittels<br />

»ksdevice=bootif« mitzuteilen, dass<br />

die Installation über die Netzwerkkarte<br />

erfolgen soll, über die auch das Boot-<br />

Image geladen wurde. Schön geht aber<br />

definitiv anders.<br />

Anfang 2011 haben deshalb einige Dell-<br />

Entwickler ein neues Tool mit dem<br />

Namen »biosdevname« unter der GPL<br />

veröffentlicht. Biosdevname sorgt dafür,<br />

dass das System-BIOS die Anordnung<br />

der Netzwerk-Geräte erkennt, <strong>und</strong> diese<br />

Information an das Betriebssystem weiterreicht.<br />

Somit weiß das OS dann, ob es<br />

sich um eine Onboard-Karte oder einen<br />

externen PCI-Adpater handelt. Auch der<br />

genaue Port auf dem Motherboard oder<br />

der PCI-Karte wird erkannt.<br />

Die neue Namensgebung, auch als Consistent<br />

Network Device Naming bekannt,<br />

folgt dann folgendem Schema. Für Onboard-Netzwerkarten<br />

lauten die neuen<br />

Namen nun:<br />

emPort‐Nummer_Instanz_der-virtuellenU<br />

Funktion<br />

beispielsweise »em1« für die erste Onboard<br />

Karte. Für externe PCI-Karten sieht<br />

es folgendermaßen aus:<br />

20 Ausgabe 02-2013 Admin www.admin-magazin.de


Admin-Story<br />

Login<br />

pSlot‐NummerpPort‐NummerU<br />

_Instanz der virtuellen_U<br />

Funktion<br />

beispielsweise »p2p1« für den<br />

ersten Port auf der externen<br />

Netzwerkkarte <strong>im</strong> Slot 2.<br />

Virtuelle Funktionen kommen<br />

dann zum Einsatz, wenn die<br />

Netzwerkkarte Single Root I/​<br />

O-Virtualization (SR-IOV) unterstützt.<br />

Hiermit ist es möglich,<br />

ein einzelnes PCI-Gerät<br />

zwischen verschiedenen virtuellen<br />

Systemen aufzuteilen,<br />

ohne dabei an Performance<br />

zu verlieren. Ein virtuelles<br />

System bekommt dabei eine<br />

virtuelle Funktion des Gerätes<br />

zugewiesen. So erscheint beispielsweise<br />

eine Netzwerkkarte mit nur einem einzelnen<br />

Port mit mehreren Einträgen in der<br />

Ausgabe von »lspci« auf dem Hypervisor<br />

(Listing 1).<br />

Der erste Eintrag bezieht sich dabei auf<br />

die physische, die anderen beiden auf die<br />

virtuellen Funktionen der Karte. Jede dieser<br />

Funktionen kann dann mittels einer<br />

einfachen PCI-Zuweisung an ein virtuelles<br />

System weitergereicht werden.<br />

Auf einem System mit aktiviertem »biosdevname«<br />

existieren somit die folgenden<br />

Geräte-Namen für die oben aufgeführte<br />

Netzwerkkarte <strong>im</strong> PCI-Slot 3: »p3p1«,<br />

»p3p1_0«, »p3p1_1«. Die Kennzeichnung<br />

für Netzwerktechnologien wie »vlan«<br />

oder Aliases bleibt erhalten. So kennzeichnet<br />

beispielsweise »p3p1:0« ein<br />

Alias für das Netzwerk-Gerät »p3p1« mit<br />

mehr als einer einzelnen IPv4-Adresse.<br />

Infos vom BIOS<br />

Woher bekommt nun das Betriebssystem<br />

die ganzen Informationen, also beispielsweise<br />

in welchem Slot eine Karte steckt,<br />

oder welche Ports diese Karte anbietet?<br />

Die Lösung ist recht einfach. Das System<br />

BIOS (auf aktuellen Dell <strong>und</strong> HP-Systemen)<br />

hält diese Informationen in den beiden<br />

Tabellen 9 (für externe PCI-Karten)<br />

<strong>und</strong> 41 (für Onboard-Karten) vor. Das<br />

Tool »biosdevname« greift hierauf zurück<br />

<strong>und</strong> schreibt entsprechende Einträge in<br />

eine neue Udev-Regel. Diese wiederum<br />

ist dann dafür verantwortlich, dass die<br />

Netzwerkkarten ihren neuen Namen bekommen.<br />

Sollte das System über keine<br />

Abbildung 1: Von der Hardware über Udev bis zur Anwendung.<br />

aktuelle Version von SMBIOS verfügen,<br />

oder fehlen die Informationen schlichtweg<br />

in den entsprechenden Tabellen, so<br />

kann »biosdevname« auch Daten der PCI<br />

IRQ Routing Tabelle zurückgreifen. Die<br />

Tools »dmidecode« <strong>und</strong> »biosdecode«<br />

stellen die Informationen auf Anfrage<br />

zur Verfügung. Alternativ hilft auch das<br />

Skript in Listing 2 weiter.<br />

Neu geregelt<br />

Abbildung 1 zeigt den Weg der Informationen<br />

von der Hardware bis zur Anwendung,<br />

die dann die von »biosdevname«<br />

definierten Geräte-Namen sieht.<br />

Die Udev-Regel, die die Geräte-Namen<br />

<strong>im</strong>plementiert, sieht dabei wie folgt aus:<br />

# grep PROGRAM /lib/udev/rules.d/71‐U<br />

biosdevname.rules<br />

PROGRAM="/sbin/biosdevname ‐‐smbios 2.6 U<br />

‐‐policy physical ‐i %k", NAME="%c", U<br />

OPTIONS+="string_escape=replace"<br />

Es ist schön zu erkennen, dass das Programm<br />

»biosdevname«, gleich nachdem<br />

der Kernel-Treiber ein Gerät erkennt<br />

(»%k«), diesem direkt einen neuen Namen<br />

zuweist (»%c«).<br />

Der Autor<br />

Thorsten Scherf arbeitet als Principal Consultant<br />

für Red Hat EMEA. Er ist oft<br />

als Vortragender auf Konferenzen<br />

anzutreffen. Wenn<br />

neben Arbeit <strong>und</strong> Familie<br />

noch Zeit bleibt, n<strong>im</strong>mt er<br />

an Marathonläufen teil.<br />

Wer auf seinem System das<br />

neue Namensschema verwenden<br />

möchte, sollte zuerst<br />

das oben aufgeführte Skript<br />

ausführen, um zu sehen, ob<br />

die eingesetzte Hardware die<br />

gewünschten Informationen<br />

zur Verfügung stellt. Danach<br />

ist die Datei »/etc/udev/<br />

rules.d/70‐persistent‐net.<br />

rules« zu löschen. Die Geräte-<br />

Namen sollen ja von »biosdevname«<br />

kommen <strong>und</strong> nicht<br />

statisch durch Udev gesetzt<br />

werden. Schließlich sind noch<br />

die Konfigurationsdateien<br />

der Netzwerk-Karten unterhalb<br />

von »/etc/sysconfig/<br />

network‐scripts/« umzubennen <strong>und</strong> der<br />

Eintrag »DEVICE« auf den neuen Namen<br />

zu ändern.<br />

Red Hat Enterprise <strong>Linux</strong> ab 6.1, Fedora<br />

ab der Version 15 <strong>und</strong> aktuelle Versionen<br />

von Open Suse, Suse <strong>Linux</strong> Enterprise<br />

Server <strong>und</strong> Ubuntu verwenden das neue<br />

Namensschema bereits standardmäßig,<br />

<strong>und</strong> der Installer verwendet die neuen<br />

Namen bereits während der Installation.<br />

Wer sich nicht daran gewöhnen kann<br />

oder keine Lust hat, seine Skripte zu<br />

ändern, die auf »ethX« verweisen, der<br />

hat über den Kernel-Parameter »biosdevname=0«<br />

be<strong>im</strong> Booten <strong>im</strong>mer noch die<br />

Möglichkeit, auf das alte Schema zurückzuwechseln.<br />

(ofr)<br />

n<br />

Listing 1: Virtuelle Netzwerk-Interfaces<br />

01 # lspci | grep ‐i ether<br />

02 07:00.0 Ethernet controller: Intel Corporation 82576<br />

Gigabit Network Connection (rev 01)<br />

03 # modprobe ‐r igb<br />

04 # modprobe igb max_vfs=2<br />

05 <br />

06 # lspci | grep ‐i ether<br />

07 07:00.0 Ethernet controller: Intel Corporation 82576<br />

Gigabit Network Connection (rev 01)<br />

08 07:10.0 Ethernet controller: Intel Corporation 82576<br />

Virtual Function (rev 01)<br />

09 07:10.1 Ethernet controller: Intel Corporation 82576<br />

Virtual Function (rev 01)<br />

Listing 2: Hardware-Check<br />

01 # curl ‐s https://fedoraproject.org/w/uploads/3/38/<br />

Biosdevname‐support‐check.sh | bash<br />

02 Checking hardware requirements [ OK ]<br />

03 Checking for SMBIOS type 41 support [ OK ]<br />

04 Checking for SMBIOS type 9 support [ OK ]<br />

05 Checking for PCI Interrupt Routing support [ OK ]<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

21


Netzwerk<br />

Tengine<br />

© John Wollwerth, 123RF<br />

Der Webserver Tengine<br />

Motortuning<br />

Der Betreiber des chinesischen Online-Shops Taobao hat den beliebten Webserver Nginx um einige äußerst interessante<br />

Funktionen erweitert <strong>und</strong> das Ergebnis unter dem Namen Tengine wiederveröffentlicht. Das Resultat<br />

erfreut sich nicht nur <strong>im</strong> asiatischen Raum zunehmender Beliebtheit. T<strong>im</strong> Schürmann<br />

Das chinesische Pendant zu Amazon<br />

<strong>und</strong> eBay heißt Taobao Marketplace [1].<br />

Um die vielen K<strong>und</strong>enanfragen möglichst<br />

schnell bedienen zu können, griff der Betreiber<br />

zum Webserver Nginx, der sowohl<br />

für seine hohe Geschwindigkeit als auch<br />

seine einfache Konfiguration bekannt ist<br />

[2]. Mit der Zeit reichte das aber nicht<br />

mehr, <strong>und</strong> so begann man bei Taobao,<br />

den Webserver um einige benötigte Funktionen<br />

zu erweitern.<br />

Nginx-Fork<br />

Den so veränderten Nginx veröffentlichte<br />

Taobao <strong>im</strong> Dezember 2011 unter dem Namen<br />

Tengine (als Kurzform für Taobao-<br />

Engine). Wie Nginx steht er unter der<br />

liberalen <strong>und</strong> quelloffenen BSD-Lizenz.<br />

Mittlerweile sind an der Entwicklung von<br />

Tengine mehrere, vor allem asiatische<br />

Firmen beteiligt. Dem Kern-<br />

Team gehören beispielsweise<br />

auch Entwickler der chinesischen<br />

Suchmaschine Sogou.<br />

Parameter<br />

com an.<br />

Tengine ist vollständig kompatibel<br />

zu Ngnix. Die zum<br />

Redaktionsschluss verfügbare<br />

Version 1.4.3 basierte auf<br />

Nginx 1.2.5, man kann folglich zunächst<br />

dessen Konfigurationsdateien ohne Änderungen<br />

übernehmen. Gegenüber Nginx<br />

kann Tengine einige Funktionen in dynamisch<br />

ladbare Module auslagern, was<br />

den Webserver verschlankt. Die Anzahl<br />

der Prozesse, die die eigentlichen Anfragen<br />

bearbeiten, wählt Tengine automatisch<br />

passend zu den vorhandenen<br />

Prozessorkernen, womit sich wiederum<br />

die Leistungsfähigkeit verbessert.<br />

Bei zu hoher Last leitet Tengine halbautomatisch<br />

entsprechende Gegenmaßnahmen<br />

ein. Die Logs landen auf Wunsch<br />

auch <strong>im</strong> Syslog oder in einer Pipe. Um<br />

die Download-Geschwindigkeit zu erhöhen,<br />

kann man gleich mehrere CSSoder<br />

JavaScript-Dateien in einer Anfrage<br />

zusammenfassen. Als Bonus enthält<br />

Tengine von Haus aus das Modul zur<br />

Anbindung der Skriptsprache Lua, das<br />

Tabelle 1: »./configure«-Parameter<br />

»‐‐conf‐path=/etc/nginx«<br />

»‐‐error‐log‐path=/var/log/nginx«<br />

»‐‐http‐log‐path=/var/log/nginx«<br />

»‐‐http‐client‐body‐temp‐path=/tmp«<br />

»‐‐http‐fastcgi‐temp‐path=/tmp«<br />

Ändert das Verzeichnis für …<br />

Konfigurationsdatei(en)<br />

Error-Logs<br />

Access-Logs<br />

Temporäre Dateien<br />

Temporäre Dateien für Fast-CGI<br />

externe oder in der Konfigurationsdatei<br />

eingebettete Lua-Skripte ausführt [3].<br />

Schnellzündung<br />

Tengine muss man zwingend aus dem<br />

Quellcode selbst übersetzen. Anders als<br />

bei Nginx bieten die Entwickler keine<br />

fertigen Pakete für die großen <strong>Linux</strong>-<br />

Distributionen an. <strong>Windows</strong>-Version gibt<br />

es keine, man bleibt daher auf unixoide<br />

Betriebssysteme beschränkt.<br />

Um später alle standardmäßig aktivierten<br />

Funktionen nutzen zu können, benötigt<br />

man die Entwicklerpakete für die<br />

OpenSSL-Bibliothek (unter Ubuntu <strong>im</strong> Paket<br />

»libssl‐dev«) <strong>und</strong> die PCRE-Bibliothek<br />

(unter Ubuntu <strong>im</strong> Paket »libpcre3‐dev«).<br />

Anschließend muss man nur das Quellcodearchiv<br />

von der Tengine-Homepage<br />

herunterladen [4], entpacken <strong>und</strong> mit<br />

dem üblichen »./configure«,<br />

»make« <strong>und</strong> »sudo make install«<br />

kompilieren beziehungsweise<br />

installieren. Anschließend<br />

liegt der Webserver<br />

<strong>im</strong> Verzeichnis »/usr/local/<br />

nginx«.<br />

Wer Tengine erst einmal ausprobieren<br />

möchte <strong>und</strong> dort<br />

22 Ausgabe 02-2013 Admin www.admin-magazin.de


Tengine<br />

Netzwerk<br />

ten, die wiederum »./configure ‐‐help«<br />

auflistet.<br />

Ob der fertig übersetzte <strong>und</strong> installierte<br />

Tengine-Server funktioniert, testet man<br />

kurz mit »/usr/local/nginx/sbin/nginx<br />

‐v«. Der Befehl sollte wie in Abbildung 2<br />

die Versionsnummer ausspucken.<br />

Bestellschein<br />

Netterweise liegen Tengine schon ein<br />

paar Konfigurationsdateien mit Standardeinstellungen<br />

bei. Man kann den kleinen<br />

Webserver daher direkt via<br />

sudo /usr/local/nginx/sbin/nginx<br />

Abbildung 1: Alle von Tengine genutzten Speicherorte präsentiert »configure« noch einmal übersichtlich am<br />

Ende seines Durchlaufs.<br />

vorgeben. Die wichtigsten von ihnen<br />

stellt Tabelle 1 vor.<br />

Bei Nginx <strong>und</strong> somit auch Tengine muss<br />

der Anwender einige Funktionen schon<br />

bei der Kompilierung explizit aktivieren.<br />

Das gilt insbesondere für die IPv6-Unterstützung,<br />

die der »configure«-Parameter<br />

»‐‐with‐ipv6« einschaltet.<br />

Im Gegensatz zu Nginx nutzt Tengine<br />

auf Wunsch die »jemalloc«-Bibliothek zur<br />

Speicherverwaltung [6], was <strong>im</strong> Idealfall<br />

zu einer besseren Performance des Webservers<br />

führt. Um »jemalloc« einbinden<br />

zu können, müssen zum einen die entsprechenden<br />

Entwicklerdateien installiert<br />

sein, zum anderen muss man »configure«<br />

noch den Parameter »‐‐with‐jemalloc«<br />

auf den Weg geben. Neben den angesprochenen<br />

Parametern<br />

kennt das<br />

»configure«-Skript<br />

natürlich auch alle<br />

aus Ngnix geerbschon<br />

Nginx installiert hat, sollte mit dem<br />

»configure«-Parameter »‐‐prefix« ein anderes<br />

Installationsverzeichnis vorgeben.<br />

Übrigens taucht auch noch an anderen<br />

Stellen <strong>im</strong>mer wieder die Bezeichnung<br />

»nginx« auf, man sollte folglich aufpassen,<br />

wenn man Tengine <strong>und</strong> Ngnix zusammen<br />

einsetzen möchte.<br />

Genau wie bei Nginx landen auch bei<br />

Tengine alle Konfigurationsdateien, temporären<br />

Dateien <strong>und</strong> die Logs standardmäßig<br />

unterhalb von »/usr/local/nginx«<br />

– <strong>und</strong> somit in der Regel auf der Root-<br />

Partition. Wer nicht riskieren möchte,<br />

dass die irgendwann mit Daten überläuft,<br />

kann entweder symbolische Links setzen<br />

oder aber andere Speicherorte über die<br />

entsprechenden »configure«-Parameter<br />

starten. Tengine lauscht dann an Port<br />

80 <strong>und</strong> liefert auf Anfrage die Seite aus<br />

Abbildung 3 zurück. Standardmäßig liegt<br />

sie unter »/usr/local/nginx/html«. Das<br />

ist gleichzeitig der Speicherort für alle die<br />

Webseiten (»DocumentRoot«).<br />

Die zentrale Konfigurationsdatei heißt<br />

»nginx.conf«, liegt <strong>im</strong> Verzeichnis »/usr/<br />

local/nginx/conf« <strong>und</strong> ist, wie Listing 1<br />

beweist, recht leicht zu durchschauen.<br />

Kommentare starten mit dem Hash-Zeichen<br />

»#«. Zusammengehörende Einstellungen<br />

fasst Tengine in Blöcken zusammen,<br />

die von geschweiften Klammern<br />

begrenzt sind. Eine Ausnahme bilden ein<br />

paar Einstellungen, die für sich alleine<br />

stehen beziehungsweise global gelten.<br />

Jede Einstellung beginnt mit einer sogenannten<br />

Direktive, der ein oder mehrere<br />

Werte folgen. Das Ende markiert ein Semikolon.<br />

Arbeitsteilung<br />

Tengine startet mit Root-Rechten als<br />

Master-Prozess. Dieser ruft anschließend<br />

ein paar sogenannte Worker-Prozesse ins<br />

G Abbildung 3: Tengine meldet sich als Nginx einsatzbereit.<br />

F Abbildung 2: Tengine gibt sich mit seiner eigenen Versionsnummer <strong>und</strong> der<br />

Nginx-Version, auf der es basiert, zu erkennen.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

23


Netzwerk<br />

Tengine<br />

Leben, die wiederum die eingehenden<br />

Anfragen bedienen. Listing 1 legt fest,<br />

dass genau ein solcher Worker-Prozess<br />

existieren soll (»worker_processes 1«).<br />

Während man in Nginx hier eine konkrete<br />

Zahl angeben muss, ist bei Tengine<br />

auch der Wert »auto« erlaubt. Der Master-Prozess<br />

erzeugt dann automatisch<br />

so viele Worker-Prozesse, wie Prozessorkerne<br />

zur Verfügung stehen. Das ist<br />

übrigens auch die Vorgabe, wenn man<br />

die Einstellung »worker_processes« komplett<br />

aus der Konfigurationsdatei streicht.<br />

Wie viele Anfragen jeder Worker-Prozess<br />

gleichzeitig verträgt, regelt <strong>im</strong> »events«-<br />

Block die Einstellung »worker_connections«<br />

– in Listing 1 sind es »1024«.<br />

Virtuelle Hosts<br />

Wie die Bearbeitung von HTTP-Anfragen<br />

erfolgen soll, legt der Block »http« fest.<br />

Wie alle modernen Webserver kann auch<br />

Tengine auf einem physischen Server<br />

mehrere unabhängige Internetauftritte<br />

verwalten. Abhängig von der aufgerufenen<br />

Domain liefert Tengine dann die<br />

passenden Seiten aus. Es entstehen so<br />

virtuelle Server, für die <strong>im</strong> »http«-Block<br />

jeweils ein eigener »server«-Block existiert.<br />

In Listing 1 gibt es nur einen (virtuellen)<br />

Server namens »localhost«, der an<br />

Port 80 lauscht.<br />

Die <strong>im</strong> »location«-Block gesammelten<br />

Einstellungen gelten nur für die angegebenen<br />

URIs. Aufgr<strong>und</strong> des Schrägstrichs<br />

»/« gelten in Listing 1 die beiden<br />

Einstellungen für alle Anfragen. Diese<br />

Einstellungen legen wiederum fest, dass<br />

alle zum Webauftritt gehörenden Dateien<br />

Listing 1: »nginx.conf«<br />

01 worker_processes 1;<br />

02 <br />

03 events {<br />

04 worker_connections 1024;<br />

05 }<br />

06 <br />

07 <br />

08 http {<br />

09 include m<strong>im</strong>e.types;<br />

10 default_type application/octet‐stream;<br />

11 <br />

12 sendfile on;<br />

13 keepalive_t<strong>im</strong>eout 65;<br />

14 <br />

15 server {<br />

16 listen 80;<br />

17 server_name localhost;<br />

18 <br />

<strong>im</strong> Unterverzeichnis »html« des Tengine-<br />

Verzeichnisses liegen (»root html«) <strong>und</strong><br />

die Index-Datei »index.html« oder »index.<br />

htm« heißt. Es dürfen übrigens mehrere<br />

»location«-Blöcke für einen Server existieren,<br />

Unterseiten kann Tengine folglich<br />

unterschiedlich behandeln.<br />

Wenn ein Fehler mit der Nummer 500,<br />

502, 503 oder 504 auftritt, leitet Tengine<br />

gemäß Listing 1 die Anfrage zur URL<br />

»/50x.html« weiter. Dies best<strong>im</strong>mt die<br />

Einstellung »error_page«. Das nachfolgende<br />

»location« verrät schließlich noch,<br />

dass die entsprechende Fehlerseite ebenfalls<br />

<strong>im</strong> Verzeichnis »html« schlummert.<br />

Alle noch nicht angesprochenen Einstellungen<br />

<strong>im</strong> oberen Bereich des »http«-<br />

Blocks wirken sich auf alle virtuellen<br />

Server aus. »include« bindet zunächst<br />

eine weitere Konfigurationsdatei ein. In<br />

diesem Fall enthält sie einfach eine Liste,<br />

die ein paar Dateiendungen ihren jeweiligen<br />

MIME-Typen zuordnet (genauer<br />

gesagt, enthält die Datei »m<strong>im</strong>e.types«<br />

den Block »types«). Kann Tengine später<br />

für eine Datei dennoch keinen MIME-Typ<br />

ermitteln, verwendet es standardmäßig<br />

(»default_type«) den MIME-Typ »application/octet‐stream«.<br />

Sogenannte Keep-Alive-Verbindungen<br />

[6] setzt der Webserver nach 65 Sek<strong>und</strong>en<br />

zurück (»keepalive_t<strong>im</strong>eout 65«). Damit<br />

Dateien schneller von der Festplatte<br />

in den Hauptspeicher wandern, nutzt<br />

Tengine schließlich noch die »sendfile«-<br />

Funktion des (<strong>Linux</strong>-)Kernels [7].<br />

Wie Nginx fasst Tengine seine Funktionen<br />

in einzelnen Modulen zusammen. Nginx<br />

linkt jedoch alle aktivierten Module direkt<br />

in die Programmdatei. Benötigt man<br />

19 location / {<br />

20 root html;<br />

21 index index.html index.htm;<br />

22 }<br />

23 <br />

24 # redirect server error pages to the<br />

static page /50x.html<br />

25 error_page 500 502 503 504 /50x.<br />

html;<br />

26 location = /50x.html {<br />

27 root html;<br />

28 }<br />

29 }<br />

30 <br />

31 }<br />

nachträglich weitere Funktionen, muss<br />

man folglich den Webserver komplett neu<br />

erstellen. In Tengine darf man <strong>im</strong>merhin<br />

einige der Module in dynamisch gelinkte<br />

Bibliotheken auslagern (die Dynamic<br />

Shared Objects, kurz DSOs). Diese kann<br />

man dann nachträglich an den Webserver<br />

anschrauben.<br />

Um ein Modul in ein DSO zu verwandeln,<br />

wechselt man in das Quellcodeverzeichnis<br />

von Tengine. Dort startet man erneut<br />

»configure« mit dem Parameter, der das<br />

Modul aktiviert, hängt diesem Parameter<br />

aber noch ein »=shared« an. Das für die<br />

Lua-Anbindung zuständige Modul presst<br />

beispielsweise »./configure ‐‐with‐http_<br />

lua_module=shared« in ein DSO. Das<br />

Lua-Modul setzt übrigens einen bereits<br />

installierten Lua-Interpreter mitsamt seinen<br />

Entwicklungsdateien voraus.<br />

Dynamische Module<br />

Abschließend muss man nur noch einmal<br />

»make« anwerfen <strong>und</strong> dann per »make<br />

dso_install« das fertige DSO in das dafür<br />

vorgesehene Verzeichnis kopieren<br />

lassen. Letztgenanntes lautet standardmäßig<br />

»/usr/local/nginx/modules/«.<br />

Um ein anderes Verzeichnis zu wählen,<br />

muss man dies »configure« über den Parameter<br />

»‐‐dso‐path=« mitteilen – <strong>und</strong><br />

zwar sowohl bereits bei der Erstellung<br />

von Tengine als auch be<strong>im</strong> Übersetzen<br />

der DSOs.<br />

Derzeit kann Tengine max<strong>im</strong>al 128 DSOs<br />

gleichzeitig jonglieren. Darüber hinaus<br />

lassen sich nur ein paar HTTP-Module<br />

in DSOs verwandeln. Welche das <strong>im</strong> Einzelnen<br />

sind, verrät »./configure ‐‐help«.<br />

In der Ausgabe sind einige – aber leider<br />

nicht alle – DSO-fähigen Module mit<br />

»(shared)« markiert. Als Faustregel gilt,<br />

dass man mit »‐‐with‐http...« beginnende<br />

Module in ein DSO pressen kann.<br />

Um ein DSO-Modul zu laden, fügt man<br />

außerhalb aller anderen Blöcke einen<br />

neuen namens »dso« hinzu. In ihm führt<br />

man dann die zu ladenden Module auf.<br />

Listing 2 zeigt exemplarisch, wie man<br />

auf diese Weise das Lua-Modul lädt.<br />

Nachdem man die Konfigurationsdatei<br />

verändert hat, hält man Tengine an: »sudo<br />

/usr/local/nginx/sbin/nginx ‐s stop« <strong>und</strong><br />

startet es neu: »sudo /usr/local/nginx/<br />

sbin/nginx«. Alle derzeit geladenen Module<br />

verrät »sudo /usr/local/nginx/sbin/<br />

24 Ausgabe 02-2013 Admin www.admin-magazin.de


Tengine<br />

Netzwerk<br />

nginx ‐m«. Ein »(static)« weist daraufhin,<br />

dass das Modul fest in Tengine einkompiliert<br />

ist (wie in Abbildung 1). Die Unterstützung<br />

von DSOs kann man bei der<br />

Erstellung von Tengine auch komplett<br />

über den Parameter »‐‐without‐dso« abschalten<br />

(der Parameter weist übrigens<br />

dezent daraufhin, dass die DSOs ein eigenes<br />

Modul namens »ngx_dso_module«<br />

verwaltet).<br />

Notizklotz<br />

Tengine kann seine Logs nicht nur wie<br />

Nginx in Dateien ablegen, sondern auf<br />

Wunsch auch an das Syslog übergeben<br />

oder in eine Pipe schieben. Dazu muss<br />

man den Webserver mit dem »configure«-<br />

Parameter »‐‐with‐syslog« übersetzt haben.<br />

Mit folgender Einstellung <strong>im</strong> Block<br />

»http« landen sämtliche Zugriffsversuche<br />

(Access-Log) in »/var/log/tengine.log«:<br />

access_log file:/var/log/tengine.log;<br />

In das Syslog wandern die Informationen<br />

mit folgender Einstellung:<br />

access_log syslog:user:info:/dev/<br />

log:tengine;<br />

Die <strong>im</strong> Syslog erscheinenden Zeilen besitzen<br />

dabei das Level »info«, als loggende<br />

Anwendung meldet sich »tengine«.<br />

Den letztgenannten Bezeichner darf man<br />

gegen einen eigenen Text austauschen.<br />

Lässt man ihn weg, erscheint <strong>im</strong> Log<br />

»NGINX«. Anstelle von »/dev/log« kann<br />

man auch die IP-Adresse <strong>und</strong> Portnummer<br />

des Rechners angeben, auf dem der<br />

Syslog-Daemon läuft:<br />

access_log syslog:user:info:129.168.2.1:514U<br />

:tengine;<br />

Mit folgender Einstellung schreibt Tengine<br />

das Log in die Pipe »pfeife« :<br />

access_log pipe:pfeife;<br />

Auf die gleiche Weise kann man auch die<br />

Fehlermeldungen (Error-Log) umbiegen,<br />

die entsprechende globale Einstellung<br />

beginnt lediglich mit der Direktive »error_log«.<br />

Sollte sich einer der Worker-Prozesse<br />

einfach beenden, beispielsweise weil er<br />

ein entsprechendes Kill-Signal erhalten<br />

hat, kann Tengine die zuletzt durchgeführten<br />

Funktionsaufrufe aufzeichnen<br />

(den sogenannten Backtrace, siehe Abbildung<br />

4). Das funktioniert allerdings<br />

nur, wenn die auf dem System installierte<br />

Glibc-Bibliothek die »backtrace«-<br />

Funktion unterstützt – FreeBSD <strong>und</strong> OS<br />

X (Darwin) bleiben damit außen vor.<br />

01 ...<br />

Listing 2: Laden eines DSO-Moduls<br />

02 worker_processes 1;<br />

03 <br />

04 dso {<br />

05 load ngx_http_lua_module.so;<br />

06 }<br />

07 <br />

08 events {<br />

09 ...<br />

Die Admin-Bibel<br />

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

Dieses Buch lässt das Herz eines <strong>Linux</strong>-Administrators<br />

garantiert höher schlagen: Backup, Sicherheit, <strong>Samba</strong>,<br />

LDAP, Web-, Mail- <strong>und</strong> FTP-Server, Datenbanken,<br />

Kerberos-Authentifizierung, IPv6, NFSv4 u. v. m.<br />

übersichtlich erklärt!<br />

Mehr Bücher für Administratoren:<br />

www.GalileoComputing.de<br />

948 Seiten, 2. Auflage 2012, 49,90 €, ISBN 978-3-8362-1879-5<br />

Jetzt<br />

reinschauen!<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

25


Netzwerk<br />

Tengine<br />

Des Weiteren muss das Backtrace-Modul<br />

aktiviert sein. Dazu übergibt man bei<br />

der Übersetzung »./ configure« den Parameter<br />

»‐‐with‐backtrace_module«. Sind<br />

alle Voraussetzungen erfüllt, kann man<br />

in der Konfigurationsdatei die Aufzeichnung<br />

mit folgender globaler Einstellung<br />

einschalten:<br />

backtrace_log /Pfad/zum/backtrace.log;<br />

Anhänglich<br />

Besteht eine Internetseite aus vielen kleinen<br />

Stylesheets, muss der Browser für<br />

jede dieser Dateien eine eigene Anfrage<br />

(Request) stellen. Um die ganze Abwicklung<br />

zu beschleunigen, kann Tengine<br />

alle diese Dateien auch zu einer großen<br />

zusammentackern <strong>und</strong> dann das dicke<br />

Ergebnis in einer Antwort zurückliefern.<br />

Im Idealfall ist so nur noch ein einziger<br />

Request notwendig.<br />

Damit das funktioniert, muss man zunächst<br />

das Concat-Modul mit dem<br />

Listing 4: Slicing für Videos<br />

01 location / {<br />

02 ...<br />

03 slice;<br />

04 slice_arg_begin anf;<br />

05 slice_arg_end ende;<br />

06 }<br />

Listing 3: Einschalten des Concat-Moduls<br />

01 location / {<br />

02 root html;<br />

03 index index.html index.htm;<br />

04 <br />

05 concat on;<br />

06 concat_max_files 10;<br />

07 concat_types text/css;<br />

08 }<br />

»configure«-Parameter »‐‐with‐http_concat_module«<br />

aktivieren. Anschließend<br />

knipst man die Funktion <strong>im</strong> entsprechenden<br />

»location«-Block an. Wie das funktioniert,<br />

zeigt Listing 3. Dort würde Tengine<br />

höchstens »10« CSS-Dateien (»concat_<br />

types text/css«) aneinanderhängen.<br />

In der HTML-Datei kann man jetzt die<br />

benötigten CSS-Dateien über eine speziell<br />

aufgebaute URL anfordern. Die beiden<br />

Stylesheets »style1.css« <strong>und</strong> »style2.css«<br />

lädt beispielsweise dieser Abschnitt <strong>im</strong><br />

Header der HTML-Datei:<br />

<br />

»http://localhost/css« gibt wie üblich<br />

den Speicherort der Dateien an. Danach<br />

folgen zwei Fragezeichen <strong>und</strong> schließlich<br />

durch Kommata getrennt die Dateinamen.<br />

Tengine wertet die URL aus, fügt<br />

die darin genannten Dateien zu einer zusammen<br />

<strong>und</strong> liefert den fertigen Brocken<br />

zurück an den Browser. Das Verfahren<br />

funktioniert mit allen Dateien, die sich<br />

unkompliziert aneinanderhängen lassen,<br />

wie etwa ausgelagertes Javascript.<br />

Scheibchenweise<br />

Lädt ein Benutzer eine große Videodatei<br />

herunter, so dauert das nicht nur<br />

eine Weile, es verbraucht auch ziemlich<br />

viel Bandbreite. Tengine kann deshalb<br />

auf Wunsch nur Teilstücke einer Datei<br />

herausgeben. Diese „Slicing“ genannte<br />

Funktion muss der Anwender mit dem<br />

»configure«-Parameter »‐‐with‐http_<br />

slice_module« aktivieren <strong>und</strong> dann wie<br />

in Listing 4 in einem »location«-Block<br />

einschalten.<br />

»slice;« knipst dort zunächst das Slicing<br />

für alle Dateien an. Die Direktiven »slice_<br />

arg_begin« <strong>und</strong> »slice_end_arg« best<strong>im</strong>men<br />

die Kürzel, mit denen der Browser<br />

den Anfang beziehungsweise das Ende<br />

des Teilstücks festlegt. Möchte der Browser<br />

jetzt aus dem Video »titanic.mp4« das<br />

Teilstück von Byte 1024 bis Byte 2048 angeliefert<br />

bekommen, ruft er die folgende<br />

URL auf:<br />

http://example.com/titanic.mp4?anf=1024U<br />

&ende=2048<br />

Den Rest übern<strong>im</strong>mt Tengine. Der Browser<br />

kann sich auf diese Weise die einzelnen<br />

Teile der Datei auch von unterschiedlichen<br />

Servern holen, was wiederum die<br />

Last besser verteilt.<br />

Überlastung<br />

Bei Systemüberlastungen oder zuneige<br />

gehendem Hauptspeicher kann Tengine<br />

eine Fehlermeldung zurückliefern oder<br />

auf einen anderen Server weiterleiten.<br />

Die Überwachung der Systemressourcen<br />

übern<strong>im</strong>mt das Sysguard-Modul, das<br />

man bei der Übersetzung von Tengine mit<br />

dem »configure«-Parameter »‐‐with‐http_<br />

sysguard_module« einschaltet. Anschließend<br />

erweitert man den »server«-Block<br />

um die Einstellungen aus Listing 5.<br />

Zunächst schaltet »sysguard on« die<br />

Funktion ein. Sollte die Systemauslastung<br />

(»sysguard_load«) den hinter »load=«<br />

angegebenen Wert überschreiten, leitet<br />

Tengine alle Anfragen an die URL »/notfall«<br />

um, die hier <strong>im</strong> Beispiel den Fehler<br />

»503« zurückliefert. Das Gleiche passiert,<br />

wenn der Auslagerungsspeicher (»sysguard_mem«)<br />

einen Anteil von 25 Prozent<br />

überschreitet (»swapratio=25%«).<br />

Listing 5: Überwachungsfunktionen aktivieren<br />

01 server {<br />

02 ...<br />

03 <br />

04 sysguard on;<br />

05 <br />

06 sysguard_load load=10.5 action=/notfall;<br />

07 sysguard_mem swapratio=25% action=/notfall;<br />

08 <br />

09 location /notfall {<br />

10 return 503;<br />

11 }<br />

12 <br />

13 ...<br />

14 }<br />

Abbildung 4: Auf Wunsch gibt Tengine auch den Backtrace aus.<br />

26 Ausgabe 02-2013 Admin www.admin-magazin.de


Tengine<br />

Netzwerk<br />

Das Sysguard-Modul funktioniert übrigens<br />

nur, wenn das Betriebssystem den<br />

Systemaufruf »sysinfo« bereitstellt oder<br />

die installierte Glibc-Bibliothek die Funktion<br />

»getloadavg()« anbietet.<br />

Enttarnung<br />

Tengine ermittelt den Namen des anfragenden<br />

Browsers <strong>und</strong> speichert ihn in<br />

einer Variablen, die man dann in der<br />

Konfigurationsdatei nutzen kann. Welcher<br />

Begriff wann in der Variablen landen<br />

soll, muss man Tengine allerdings selbst<br />

mitteilen. Listing 6 zeigt dafür ein Beispiel:<br />

Standardmäßig erhält dort die Variable<br />

»$browser« den Wert »un known«.<br />

Erkennt Tengine Firefox ab Version 16.0,<br />

lautet der Inhalt »firefoxab16«. Sollte <strong>im</strong><br />

User-Agent-String der Begriff »Chrome«<br />

auftauchen, enthält die Variable den Begriff<br />

»Chrome« – es sei denn, auf den<br />

String trifft noch die danach folgende<br />

Firefox-Regel zu.<br />

Einlieferungsstopp<br />

Wie Nginx kann Tengine die in einem<br />

best<strong>im</strong>mten Zeitraum eingehenden Requests<br />

begrenzen. Dazu definiert man<br />

zunächst innerhalb des »http«-Blocks<br />

eine Zone, die den Zustand der Sessions<br />

speichert (eine Session ist in der Regel<br />

identisch mit einem Benutzer):<br />

l<strong>im</strong>it_req_zone $binary_remote_addr U<br />

$uri zone=eins:5m rate=1r/s;<br />

In diesem Beispiel erhält die Zone den<br />

Namen »eins«, wobei für die Session-<br />

Daten 5 MByte bereitstehen. Erlaubt ist<br />

dabei max<strong>im</strong>al ein Request (»1r«) pro Sek<strong>und</strong>e<br />

(»/s«). Im Gegensatz zu Nginx darf<br />

man dabei den Gültigkeitsbereich durch<br />

gleich mehrere Variablen einschränken<br />

beziehungsweise genauer festlegen (<strong>im</strong><br />

Beispiel »$binary_remote_addr« <strong>und</strong><br />

»$uri«).<br />

Dieser so definierten Zone kann man<br />

jetzt eine »location« zuweisen:<br />

location / {<br />

l<strong>im</strong>it_req zone=eins;<br />

l<strong>im</strong>it_req zone=zwei;<br />

...<br />

}<br />

Anders als Nginx erlaubt Tengine mehrere<br />

»l<strong>im</strong>it_req«-Angaben. Es gelten dann<br />

die Restriktionen aus allen Zonen, wobei<br />

sie Tengine von oben nach unten prüft.<br />

Darüber hinaus kann man auch noch den<br />

Benutzer bei zu vielen Requests auf eine<br />

andere Seite umleiten:<br />

location / {<br />

l<strong>im</strong>it_req zone=eins forbid_action=U<br />

@fehlerseite;<br />

...<br />

}<br />

location @fehlerseite {<br />

rewrite ^ /fehlerseite.html;<br />

}<br />

Ausnahmen definiert man in einer Whitelist,<br />

wozu man allerdings die Hilfe des<br />

auch in Nginx enthaltenen Geo-Moduls<br />

benötigt [8]. Im Beispiel aus Listing<br />

7 dürfen die Rechner aus dem Netz<br />

192.168.2.x beliebig viele Anfragen stellen.<br />

Neben den hier vorgestellten Neuerungen<br />

bietet Tengine noch viele weitere.<br />

So unterstützt das SSL-Modul jetzt auch<br />

Passphrasen, mit dem Footer-Modul<br />

kann man beliebige Zeichenketten an<br />

den Body der Antwort hängen, <strong>und</strong> das<br />

Header-Modul setzt auf Wunsch ein Expire<br />

nach MIME-Typen in den Header.<br />

Mit Letztgenanntem kann man den Browser<br />

beispielsweise darauf hinweisen, dass<br />

alle HTML-Dateien nach 12 St<strong>und</strong>en veralten.<br />

Wer die Programmiersprache C<br />

beherrscht, kann mit Tengine auch den<br />

Body einer Anfrage inspizieren <strong>und</strong> so<br />

eine kleine Web-Application-Firewall<br />

auf die Beine stellen. Wie man ein entsprechendes<br />

Filter-Modul schreibt, zeigt<br />

einer der Tengine-Entwickler in einem<br />

Blog-Eintrag [9]. Sämtliche Änderungen<br />

gegenüber Nginx fasst die offizielle<br />

Dokumentation von Tengine zusammen<br />

[4]. Für ihre Lektüre sollte man allerdings<br />

schon Kenntnisse über Nginx mitbringen<br />

[2].<br />

Fazit<br />

Tengine steckt nach Angaben von Taobao,<br />

Inc. hinter der größten E-Commerce-Website<br />

in Asien – <strong>und</strong> stellt so<br />

eindrucksvoll seine Alltagstauglichkeit<br />

<strong>und</strong> Leistungsfähigkeit unter Beweis. Die<br />

neuen Funktionen gegenüber Nginx zielen<br />

denn auch auf genau solche großen<br />

Websites mit hohen Besucherzahlen. Von<br />

Nginx auf Tengine umsteigen braucht da-<br />

her nur, wer die neuen Funktionen auch<br />

tatsächlich benötigt. Zum Redaktionsschluss<br />

war noch unklar, ob <strong>und</strong> wenn ja<br />

welche Funktionen aus Tengine in Nginx<br />

zurückfließen, die Entwickler der beiden<br />

Projekte standen jedoch bereits in Kontakt.<br />

(ofr)<br />

n<br />

Infos<br />

[1] Wikipedia-Artikel zum Taobao Marketplace:<br />

[http:// de. wikipedia. org/ wiki/ Taobao]<br />

[2] Nginx: [http:// nginx. org/]<br />

[3] Nginx Lua-Modul:<br />

[http:// wiki. nginx. org/ HttpLuaModule]<br />

[4] Tengine: [http:// tengine. taobao. org/]<br />

[5] Jemalloc:<br />

[http:// www. canonware. com/ jemalloc/]<br />

[6] Wikipedia-Artikel zu Keep-Alive-Verbindungen:<br />

[http:// de. wikipedia. org/ wiki/ Keepalive]<br />

[7] Sendfile: [http:// wiki. nginx. org/​<br />

HttpCoreModule# sendfile]<br />

[8] Geo-Modul: [http:// nginx. org/ en/ docs/ http/​<br />

ngx_http_geo_module. html]<br />

[9] Joshua Zhu, A Mechanism to Help Write<br />

Web Application Firewalls for Nginx:<br />

[http:// blog. zhuzhaoyuan. com/ 2012/ 01/ a‐<br />

mechanism‐to‐help‐write‐web‐applicationfirewalls‐for‐nginx/]<br />

Der Autor<br />

T<strong>im</strong> Schürmann ist selbstständiger Diplom-<br />

Informatiker <strong>und</strong> derzeit hauptsächlich als freier<br />

Autor unterwegs. Zu seinen Büchern gesellen<br />

sich zahlreiche Artikel, die in Zeitschriften <strong>und</strong><br />

auf Internetseiten in mehreren Ländern veröffentlicht<br />

wurden.<br />

01 http {<br />

Listing 7: Whitelisting<br />

01 geo $erlaubt {<br />

02 default 0;<br />

03 192.168.2.0‐192.168.2.255 1;<br />

04 }<br />

05 <br />

Listing 6: User Agents abfragen<br />

02 ...<br />

03 user_agent $browser {<br />

04 default unknown;<br />

05 greedy Chrome;<br />

06 Firefox 16.0+ firefoxab16;<br />

07 }<br />

08 ...<br />

09 }<br />

06 l<strong>im</strong>it_req_whitelist geo_var_name=erlaubt geo_var_<br />

value=1;<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

27


Netzwerk<br />

Mobile IPv6<br />

© Fotograf, 123RF<br />

Überall erreichbar mit Mobile IPv6<br />

Reisefreiheit<br />

IPv6 bringt mit Mobile IPv6 einen neuen Standard für die Kommunikation<br />

mobiler Endgeräte mit. Damit ist eine permanente Erreichbarkeit unabhängig<br />

vom derzeitigen Standort gewährleistet. Dieser Artikel gibt einen<br />

Überblick über die Funktionsweise von Mobile IPv6. Eric Amberg<br />

Stellen Sie sich vor, Sie arbeiten gerade<br />

<strong>im</strong> Home-Office mit Ihrem Tablet. Das<br />

Gerät ist mit dem WLAN zu Hause verb<strong>und</strong>en.<br />

Sie verlassen das Haus, um zum<br />

Flughafen zu gelangen. Unterwegs <strong>im</strong><br />

Taxi verbindet sich das Tablet per LTE<br />

mit Ihrem Provider. Sie überprüfen in<br />

Ihrem Home-Portal, ob die Heizung abgestellt<br />

ist. Am Flughafen verbindet sich<br />

das mobile Gerät automatisch mit dem<br />

öffentlichen WLAN des Flughafens. Sie<br />

überprüfen die Abflugzeit <strong>und</strong> checken<br />

von Ihrem Tablet ein. Währenddessen<br />

waren Sie die ganze Zeit über mit Ihrem<br />

Unternehmensnetz über einen gesicherten<br />

Tunnel verb<strong>und</strong>en.<br />

Dieses Szenario klingt derzeit noch wie<br />

Zukunftsmusik, ist aber vielleicht näher,<br />

als Sie denken. Mit Mobile IPv6 (MIPv6)<br />

wird es möglich, in beliebigen Netzwerken<br />

<strong>im</strong>mer über dieselbe Adresse erreichbar<br />

zu sein <strong>und</strong> Netzwerke zu wechseln,<br />

ohne dass Verbindungen abbrechen.<br />

Die Voraussetzung hierfür ist eine IPv6-<br />

Infrastruktur.<br />

Das Roaming-Problem<br />

Wird eine Verbindung zwischen zwei<br />

Knoten aufgebaut, basiert diese in der<br />

Regel auf den IP-Adressen der Kommunikationspartner.<br />

Wechselt ein Partner das<br />

Abbildung 1: Roaming hält Verbindungen, auch wenn sich der Benutzer von einem Netz ins andere bewegt.<br />

Netzwerk, erhält er zwangsläufig eine<br />

neue IP-Adresse. Die Folge: Die Verbindung<br />

wird abgebrochen <strong>und</strong> muss erneut<br />

aufgebaut werden. In Zukunft wird es<br />

selbstverständlich sein, dass bei einem<br />

Wechsel der Netzanbindung die Verbindung<br />

zwischen zwei Kommunikationspartnern<br />

erhalten bleibt. Dieses Prinzip<br />

nennt man Roaming.<br />

Je nach Übertragungstechnologie gibt es<br />

bereits heute die Möglichkeit, die Netzanbindung<br />

zu wechseln, ohne die Verbindung<br />

zu verlieren. Diese basieren jedoch<br />

auf den Netztechnologien selbst. So ist<br />

dies zum Beispiel mit WLANs möglich,<br />

wobei der WLAN-Client zwischen verschiedenen<br />

Access Points (AP) nahtlos<br />

wechseln kann. Wird die Empfangsleistung<br />

eines APs zu schwach, verbindet<br />

sich der Client automatisch mit dem näheren<br />

AP, ohne die Verbindung zu verlieren.<br />

Ebenso ist dies in Mobilfunknetzen<br />

möglich, wo durch entsprechende Authentifizierungs-<br />

<strong>und</strong> Account-Maßnahmen<br />

eine Abrechnung auch netzübergreifend<br />

möglich wird.<br />

Eine IP-basierte Lösung ermöglicht jedoch<br />

die komplette Unabhängigkeit von<br />

der Anbindungstechnologie. Dies bietet<br />

vollwertig nur Mobile IPv6 [1]. Mobile<br />

IP ist zwar für IPv4 ebenfalls definiert<br />

[2], bringt jedoch gegenüber IPv6 einige<br />

Nachteile mit sich. So ist es mit Mobile<br />

IPv6 durch den Einsatz flexibler<br />

Extension Header möglich, auftretende<br />

Routing-Probleme zu lösen. Das Roaming<br />

wird dadurch einfacher <strong>und</strong> flexibler. Darüber<br />

hinaus koppelt sich sich Mobile<br />

IPv6 durch den Einsatz von Neighbour<br />

Discovery, einer Network-Layer-Technologie,<br />

in gewissem Maß vom Data-Link-<br />

Layer ab.<br />

Wo ist hinten <strong>und</strong> wo ist<br />

vorne?<br />

Ein mobiler Knoten wird in der Mobile-<br />

IPv6-Terminologie als Mobile Node (MN)<br />

bezeichnet. Der Kommunikatiospartner<br />

ist der Correspondent Node (CN) <strong>und</strong><br />

kann feststehend (zum Beispiel als Server)<br />

oder ebenfalls mobil sein. Der MN<br />

hat ein He<strong>im</strong>at-Netzwerk, das als Home<br />

Link bezeichnet wird. Daran ist ein Router<br />

angeschlossen, der als Home Agent<br />

(HA) die feste Adresse des MN bindet.<br />

Sie wird als Home Address bezeichnet<br />

30 Ausgabe 02-2013 Admin www.admin-magazin.de


Mobile IPv6<br />

Netzwerk<br />

<strong>und</strong> ist eine Global-Unicast-Adresse.<br />

Durch den Home Agent ist der MN über<br />

seine Home Address überall erreichbar<br />

( Abbildung 2).<br />

Der MN kann sich an seinem Home<br />

Link oder in einem anderen Netzwerk<br />

befinden. Jedes andere Netzwerk wird<br />

als Foreign Link bezeichnet. Im Foreign<br />

Link hat er eine andere Adresse als seine<br />

Home Address, die er durch Autoconfiguration<br />

oder durch DHCPv6 bezieht. Die<br />

aktuelle Adresse <strong>im</strong> Foreign Link nennt<br />

man Care-of-Address. Der MN sendet an<br />

den HA seine aktuelle Care-of-Adress.<br />

Diese Nachricht wird als Binding-Update<br />

bezeichnet <strong>und</strong> erzeugt auf dem HA ein<br />

Binding zwischen der Home Address <strong>und</strong><br />

der Care-of-Address.<br />

So funktioniert Mobile IPv6<br />

Solange der MN an seinem Home Link<br />

sein normales Präfix nutzt, kann er über<br />

ganz normale Routing-Mechanismen erreicht<br />

werden, da hier auch der Home<br />

Agent mit der Home Address lokal angesiedelt<br />

ist. Unterwegs beziehungsweise<br />

außerhalb seines Home Links erhält er<br />

in einem beliebigen Foreign Link eine<br />

zusätzliche Adresse (Care-of-Address),<br />

die er in einer Binding-Update-Nachricht<br />

an seinen Home Agent schickt. Der Home<br />

Agent sendet ein Binding Acknowledgement<br />

<strong>und</strong> weiß durch den Binding-<br />

Prozess <strong>im</strong>mer, unter welcher Care-of-<br />

Address der MN gerade erreichbar ist.<br />

Der Correspondent Node nutzt zunächst<br />

gr<strong>und</strong>sätzlich zur Kommunikation mit<br />

dem MN die Home Address, die zum<br />

Home Agent führt.<br />

Der MN kann über zwei Wege mit dem<br />

Correspondent Node kommunizieren.<br />

Be<strong>im</strong> Bidirectional Tunneling werden<br />

Pakete vom CN an den Home Agent geschickt,<br />

der diese durch einen Tunnel<br />

zum MN weiterleitet. Der MN schickt die<br />

Antworten durch einen Reverse Tunnel<br />

zum Home Agent, der die Daten zum<br />

CN weiterleitet. Auf dem Correspondent<br />

Node ist keine Unterstützung für Mobile<br />

IPv6 notwendig.<br />

Bei der Route Opt<strong>im</strong>ization findet die<br />

Kommunikation nach der initialen Verbindung<br />

durch den Home Agent direkt<br />

zwischen MN <strong>und</strong> CN statt, ohne Umweg<br />

über den HA. Dazu wird ein Typ-2-Routing-Header<br />

verwendet. Route Opt<strong>im</strong>iza-<br />

Abbildung 2: Die Mobile IPv6-Terminologie.<br />

Entwicklungen vorgesehen, wenn später<br />

weitere Daten angehängt werden.<br />

Das Header-Length-Feld enthält die<br />

Länge des Mobility Headers in 8-Byte-<br />

Einheiten, wobei die ersten 8 Bytes nicht<br />

mitgezählt werden. Damit muss der MH<br />

<strong>im</strong>mer ein Vielfaches von 8 Byte lang<br />

sein. Das MH-Type-Feld enthält den Typ<br />

der Mobility-Nachricht. Derzeit sind 16<br />

Mobility-Nachrichtentypen definiert, unter<br />

anderem Binding Update <strong>und</strong> Binding<br />

Ack. Ein Checksum-Feld berechnet eine<br />

Checksumme aufgr<strong>und</strong> eines Pseudo-<br />

Headers <strong>und</strong> folgt den in RFC 2460 (Internet<br />

Protocol, Version 6) festgelegten<br />

Regeln.<br />

In Mobility-Nachrichten können Optionen<br />

enthalten sein, die <strong>im</strong> TLV-Format<br />

(Type-Length-Value) angegeben werden.<br />

Insbesondere die Option Home Address<br />

ist relevant, da der Mobile Node hier an<br />

den Correspondent Node eine Nachricht<br />

sendet, in der er die seine Home Address<br />

mitteilt. Dadurch ist der Correspondent<br />

Node in der Lage, den Mobile Node jetion<br />

ermöglicht eine effizientere Kommunikation,<br />

da hier das Routing opt<strong>im</strong>iert<br />

werden kann <strong>und</strong> nicht der Umweg über<br />

den HA erfolgen muss. Dies erfordert<br />

jedoch Mobile IPv6-Unterstützung auf<br />

dem CN. Route Opt<strong>im</strong>ization ist einer der<br />

Hauptvorteile von Mobile IPv6 gegenüber<br />

Mobile IPv4, da Letzteres keine Extension<br />

Header (<strong>und</strong> damit keinen Routing<br />

Header) erlaubt.<br />

Das Protokoll<br />

IPv6 ist insbesondere durch die Extension<br />

Header sehr flexibel. Für MIPv6<br />

wurde ein eigener Extension Header namens<br />

Mobility Header (MH) entwickelt.<br />

Er wird von allen Beteiligten, also Mobile<br />

Node, Correspondent Node <strong>und</strong> Home<br />

Agent, in Nachrichten verwendet, die<br />

mit der Verwaltung <strong>und</strong> Aktualisierung<br />

von Bindings zu tun haben. Abbildung 3<br />

zeigt den Aufbau des Mobility Headers.<br />

Der Mobility Header wird durch den Next<br />

Header-Wert 135 <strong>im</strong> vorhergehenden<br />

Header angezeigt.<br />

Er selbst hat in seinem<br />

Next-Header-<br />

Feld (das hier den<br />

Namen »Payload<br />

Proto« trägt) derzeit<br />

den Wert 59,<br />

um anzuzeigen,<br />

dass ihm keine<br />

weiteren Daten<br />

folgen. Dieses Feld<br />

ist für zukünftige<br />

Abbildung 3: Der Mobility-Header.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

31


Netzwerk<br />

Mobile IPv6<br />

Abbildung 4: Der Binding-Update-Header.<br />

derzeit zu erreichen. Allerdings ist dies<br />

auch gleichzeitig ein Sonderfall, da diese<br />

Option in einem Destination Header <strong>und</strong><br />

nicht wie sonst <strong>im</strong> Mobility Header gesendet<br />

wird. Ein Destination Header ist<br />

ein Extension Header, der nur vom Ziel<br />

ausgewertet wird.<br />

Für MIPv6 wurde außerdem ein neuer<br />

Routing Header definiert. Dadurch können<br />

Mobile Node <strong>und</strong> Correspondent<br />

Node direkt Daten austauschen, ohne<br />

über den Home Agent gehen zu müssen.<br />

Dieser Extension Header trägt die<br />

Bezeichung Typ 2 <strong>und</strong> sieht vor, dass<br />

auf Firewalls für MIPv6-Pakete spezielle<br />

Regeln konfiguriert werden können. Da<br />

die MIPv6-Kommunikation gr<strong>und</strong>sätzlich<br />

erst einmal über den Home Agent <strong>und</strong><br />

die Home Address geht, wird Letztere <strong>im</strong><br />

Routing Header Typ 2 eingefügt, während<br />

die Zieladresse <strong>im</strong> IPv6-Header die<br />

Care-of-Address des Mobile Nodes ist.<br />

Der empfangende Mobile Node entfernt<br />

den Routing Header <strong>und</strong> ersetzt die Careof-Address<br />

durch die Home Address, um<br />

den Upper-Layer-Protokollen in den<br />

OSI-Schichten darüber „vorzugaukeln“,<br />

dass die Kommunikation über die Home<br />

Address gegangen ist.<br />

Drum prüfe, wer sich ewig<br />

bindet …<br />

Das Binding <strong>und</strong> die Verwaltung des Bindings<br />

sind elementare Bestandteile von<br />

MIPv6. Normalerweise findet es zwischen<br />

dem Mobile Node <strong>und</strong> dem Home<br />

Agent statt. Es ist jedoch auch möglich,<br />

Bindings zwischen dem Mobile Node<br />

<strong>und</strong> dem Correspondent Node durchzuführen,<br />

um eine Routing-opt<strong>im</strong>ierte<br />

Kommunikation zu ermöglichen. Verlässt<br />

ein Mobile Node seinen Home Link <strong>und</strong><br />

erhält an einem Foreign Link eine Careof-Address,<br />

so sendet er eine Binding-<br />

Update-Nachricht an seinen Home Agent.<br />

Diese enthält neben dem IPv6-Header<br />

einen Destination-Options-Header, in<br />

dem die Home-Address-Option gesetzt<br />

ist (Abbildung 4). Sie dient dazu, dem<br />

Home Agent anzuzeigen, welche Home<br />

Address genutzt werden soll, da es theoretisch<br />

auch mehrere geben könnte.<br />

Die Nachricht wird mittels IPSec in einem<br />

ESP-Header gesichert übertragen <strong>und</strong> enthält<br />

darüber hinaus noch einen Mobility<br />

Header, der den Nachrichten-Typ 5 (Binding<br />

Update) mit einem gesetzten Home-<br />

Registration-Flag enthält, das den Empfänger<br />

auffordert, die Home Agent-Funktion<br />

zu übernehmen. Außerdem ist das<br />

Acknowledge-Flag gesetzt, um den Home<br />

Agent zu einer Antwort aufzufordern. Im<br />

Mobility Header ist darüber hinaus eine<br />

Lifet<strong>im</strong>e in 4-Sek<strong>und</strong>en-Einheiten angegeben,<br />

um die Gültigkeit des Bindings<br />

festzulegen. Binding-Update-Nachrichten<br />

werden zur Auffrischung des vorhandenen<br />

Bindings oder zur Information über<br />

eine neue Care-of-Address gesendet.<br />

Die Antwort des Home Agents in Form<br />

eines Binding-Acknowledgment enthält<br />

statt des Destination Headers einen Typ-<br />

2-Routing-Header mit der Home Address<br />

des Mobile Node. Das Binding-Ack ist<br />

eine Typ-6-Nachricht, die die Angaben<br />

des Mobile Nodes bestätigt <strong>und</strong> einige<br />

weitere Verwaltungsinformationen enthält,<br />

wie zum Beispiel, ob IPSec einen<br />

Netzwerkwechsel unterstützt oder nicht<br />

– Letzteres sollte die Ausnahme sein.<br />

Das Statusfeld des Binding-Ack zeigt den<br />

Zustand des Bindings an. Dabei stehen<br />

die Werte 1 bis 127 für ein erfolgreiches<br />

Update, während Statuswerte von 128<br />

<strong>und</strong> höher best<strong>im</strong>mte definierte Probleme<br />

anzeigen. Binding-Acks werden<br />

zur Bestätigung von Binding-Updates<br />

geschickt. Der Home Agent kann mit einer<br />

Binding-Refresh-Request-Nachricht<br />

eine Aktualisierung der Informationen in<br />

Form eines Binding-Updates vom Mobile<br />

Node anfordern.<br />

Ein Binding-Update kann ebenso direkt<br />

an den Correspondent Node gesendet<br />

werden, wenn dieser MIPv6 unterstützt.<br />

Hierzu sind allerdings spezielle<br />

Sicherheitsmaßnahmen erforderlich,<br />

um Angriffe durch Umleiten der Kommunikation<br />

zu verhindern. Dieser Sicherungsprozess<br />

wird als Return Routability<br />

Procedure bezeichnet <strong>und</strong> ermöglicht<br />

es dem Correspondent Node zu testen,<br />

ob der Mobile Node tatsächlich sowohl<br />

über seine Care-of-Address als auch über<br />

seine Home Address erreichbar ist. Erst<br />

dann werden Binding-Updates vom CN<br />

akzeptiert. Da die Bindings per IPSec<br />

kryptografisch gesichert sind, werden in<br />

diesem Zusammenhang Autorisierungsinformationen<br />

in Form kryptografischer<br />

Token ausgetauscht. Über den sogenannten<br />

Binding-Management-Key werden die<br />

Informationen letztlich gesichert.<br />

Neue ICMPv6-Funktionen<br />

Mobile IPv6 bringt einige Erweiterungen<br />

für ICMPv6 mit sich, die zusätzliche Features<br />

erschließen. Bei der Home Agent<br />

Address Discovery ist es dem Mobile<br />

Node möglich, die Adresse seines Home<br />

Agent zu ermitteln. Hierzu wird ein Home<br />

Agent Address Discovery Request an die<br />

Home-Agent-Anycast-Adresse seines<br />

Home Link gesendet. Dies ist eine spezielle<br />

Anycast-Adresse, auf die alle Home<br />

Agents reagieren. Ein Home Agent reagiert<br />

auf diese Anfrage mit einem Home<br />

Agent Address Discovery Reply. Es enthält<br />

eine Liste mit Home Agent-Adressen,<br />

sortiert nach deren Präferenzen.<br />

Bei temporären IPv6-Adressen kann es zu<br />

Änderungen des Präfixes der He<strong>im</strong>netze<br />

eines Mobile Node kommen. Diese Änderung<br />

kann der Mobile Node mittels einer<br />

Mobile-Prefix-Solicitation-Nachricht<br />

ermitteln. Sie wird an den Home Agent<br />

gesendet, der mit einem Mobile Prefix<br />

Advertisement antwortet. Diese Advertisements<br />

können bei Bedarf auch unaufgefordert<br />

an die aktuelle Care-of-Address<br />

des MN gesendet werden.<br />

Jeder Mobile Node muss in seinem Home<br />

Link eine Liste mit Home Agents erstel-<br />

32 Ausgabe 02-2013 Admin www.admin-magazin.de


3 Ausgaben<br />

für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Kennenlernangebot:<br />

3 Ausgaben<br />

für nur 5,90 E<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Netzwerk<br />

Mobile IPv6<br />

Mobile IPv6 ist eine Zukunftstechnologie,<br />

die in einigen Jahren vermutlich in der IT-<br />

Netzwerkwelt zum Alltag wird. Provider<br />

werden verschiedene Leistungspakete anlen<br />

können. Dazu benötigt er über die<br />

Router Advertisements nicht nur die<br />

Link-Local-Adressen seiner Home-Agent-<br />

Router, sondern auch deren Global-Unicast-Adressen.<br />

Hierzu wurde das Router<br />

Advertisement modifiziert. Enthält es ein<br />

R-Flag (für Router Address), so enthält<br />

die Prefix-Option kein Präfix, sondern<br />

eine vollständige Global-Unicast-Adresse<br />

des Routers.<br />

Weitere Änderungen <strong>im</strong> Neighbour Discovery<br />

betreffen die Angabe der Präferenz<br />

der Home-Agent-Adressen <strong>und</strong> ein<br />

verringertes Mindestintervall für Router<br />

Advertisements, damit Mobile Nodes in<br />

Foreign Links möglichst zeitnah über<br />

ihre neue Care-of-Address informiert<br />

werden können. Dieses Intervall wurde<br />

von ursprünglich 3 Sek<strong>und</strong>en auf 0,03<br />

Sek<strong>und</strong>en reduziert. Dieser Wert kann<br />

auf WLAN-Routern sinnvoll sein, die<br />

ausschließlich für die Unterstützung von<br />

mobilen Geräten konfiguriert sind.<br />

Wo bin ich eigentlich?<br />

Der Mobile Node muss möglichst schnell<br />

erkennen, dass er sich nicht mehr in seinem<br />

Netz aufhält, um eine neue Verbindung<br />

initiieren zu können. Für diesen<br />

Vorgang namens Movement Detection<br />

gibt es einen Prozess namens Neighbour<br />

Unreachability Detection. Er existiert <strong>im</strong><br />

Rahmen der Neighbour Discovery auch<br />

<strong>im</strong> normalen IPv6-Standard. Dabei überprüft<br />

der Mobile Node die Erreichbarkeit<br />

seines Standard-Gateways. Ist es nicht<br />

mehr erreichbar, versucht er einen neuen<br />

Default-Router zu entdecken. Dieser wird<br />

ihm mittels Router Advertisement mitgeteilt.<br />

In diesem Rahmen wird auch das<br />

Präfix <strong>und</strong> damit die aktuelle Care-of-<br />

Address festgelegt. Kommt der Mobile<br />

Node wieder nach Hause in seinen Home<br />

Link, erfolgt eine Home Registration. Dabei<br />

wird unter anderem das H-Bit (Home<br />

Registration) <strong>und</strong> die Lifet<strong>im</strong>e auf 0 gesetzt.<br />

Der Home Agent weiß dann, dass<br />

Abbildung 5: Der Binding-Update-Prozess.<br />

er die Pakete nicht mehr durch den Tunnel<br />

schicken muss.<br />

Und was ist mit der<br />

Sicherheit?<br />

Die Kommunikation zwischen dem Mobile<br />

Node <strong>und</strong> dem Correspondent Node<br />

ist anfällig für verschiedene Angriffe<br />

wie zum Beispiel Man-in-the-Middle-<br />

Attacken, Session-Hijacking, Denial-of-<br />

Service <strong>und</strong> so weiter. Eine gr<strong>und</strong>legende<br />

Sicherheitsmaßnahme ist der Schutz der<br />

Verbindung durch einen IPSec-Tunnel mit<br />

ESP zwischen dem MN <strong>und</strong> dem HA. Damit<br />

sind alle Nachrichten zwischen Mobile<br />

Node <strong>und</strong> Home Agent geschützt wie<br />

zum Beispiel Binding-Updates <strong>und</strong> ‐Acks,<br />

Home-Test-Nachrichten <strong>und</strong> ICMPv6-<br />

Nachrichten. Die Binding-Updates zwischen<br />

Mobile Node <strong>und</strong> Correspondent<br />

Node werden nicht per IPSec, sondern<br />

durch den Return-Routability-Prozess<br />

geschützt. Allerdings existieren auch<br />

best<strong>im</strong>mte Erweiterungen, wie etwa die<br />

Binding-Authorization-Data-Option, um<br />

die Kommunikation zu schützen.<br />

Da für Mobile IPv6 leicht veränderte Regeln<br />

gelten, existieren darüber hinaus<br />

verschiedene RFCs, die Anpassungen von<br />

IPSec für den Einsatz in MIPv6 enthalten,<br />

so zum Beispiel RFC 4555 <strong>und</strong> 4621, die<br />

sich mit dem Einsatz von IKEv2 in diesen<br />

Szenarien beschäftigen, <strong>und</strong> RFC 3776 mit<br />

dem Titel „Using IPsec to Protect Mobile<br />

IPv6 Signaling between Mobile Nodes and<br />

Home Agents“. Auch für spezielle Netzwerke<br />

existieren Schutzansätze in Form<br />

von RFCs. Eine vollständige Abhandlung<br />

sämtlicher Security-Bereiche würde hier<br />

allerdings den Rahmen sprengen.<br />

Fazit <strong>und</strong> Ausblick<br />

bieten, um den K<strong>und</strong>en eine reibungslose<br />

Anbindung über diverse Netzwerke zu<br />

ermöglichen, ein Roaming, ohne das die<br />

Netzwerk-Verbindung auch nur temporär<br />

verloren geht. Durch den allgemeinen<br />

Trend, mobile Geräte zu nutzen, der<br />

durch den Tablet-Boom noch verstärkt<br />

wird, ist der Einsatz solcher Technologien<br />

eine logische Entwicklung.<br />

Zum anderen bleibt festzuhalten, dass die<br />

bisherige Unterstützung von Mobile IPv6<br />

nur sehr eingeschränkt vorhanden ist.<br />

Microsofts Betriebssysteme, einschließlich<br />

<strong>Windows</strong> 8 <strong>und</strong> <strong>Windows</strong> Server<br />

2012, bieten keine vollständige Unterstützung<br />

für MIPv6, <strong>Linux</strong> lässt sich mittels<br />

UMIP-Daemon [3] zu MIPv6 überreden<br />

,<strong>und</strong> Android-Systeme sind derzeit nur<br />

mit „Hacking-Methoden“ bereit, MIPv6<br />

zu unterstützen. Apples iOS beherrscht<br />

ebenfalls kein MIPv6.<br />

Schließlich muss sich IPv6 erst einmal<br />

flächendeckend verbreiten, um Mobile<br />

IPv6 ohne Migrationstechnologien wie<br />

6to4-Tunnel verwenden zu können. Davon<br />

abgesehen ist Mobile IPv6 ein Standard,<br />

der auch in den nächsten Jahren<br />

weiterentwickelt <strong>und</strong> vermutlich noch<br />

weitere interessante Erweiterungen mit<br />

sich bringen wird. Schon jetzt gibt es<br />

zahlreiche Ergänzungen <strong>und</strong> Opt<strong>im</strong>ierungen<br />

zu Mobile IPv6. Hierzu zählen<br />

NEMO [4] <strong>und</strong> Hierarchical Mobile IPv6<br />

(HMIPv6). (ofr)<br />

n<br />

Infos<br />

[1] RFC 6275:<br />

[http:// tools. ietf. org/ html/ rfc6275]<br />

[2] RFC 3344:<br />

[http:// tools. ietf. org/ html/ rfc3344]<br />

[3] UMIP-Daemon-Projekt-Seite:<br />

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

[4] RFC 3963:<br />

[http:// tools. ietf. org/ html/ rfc3963]<br />

Der Autor<br />

Eric Amberg ist selbstständig ([http:// www.​<br />

atracon. de]) <strong>und</strong> seit vielen Jahren <strong>im</strong> Bereich<br />

IT-Infrastruktur als Trainer <strong>und</strong> Consultant tätig.<br />

Er verfügt über langjährige Projekterfahrung.<br />

Sein besonderer Fokus<br />

liegt auf Netzwerk-Themen.<br />

In seinen Seminaren <strong>und</strong><br />

Videokursen legt er großen<br />

Wert auf eine praxisnahe<br />

Schulung.<br />

34 Ausgabe 02-2013 Admin www.admin-magazin.de


Meine Private Cloud<br />

mit <strong>Linux</strong> <strong>und</strong> <strong>Windows</strong><br />

Schöpfen Sie alle Vorteile von Cloud Computing<br />

<strong>im</strong> eigenen Rechenzentrum aus <strong>und</strong> skalieren Sie<br />

bedarfsgerecht mit <strong>Windows</strong> Azure. Unsere TechNet<br />

Toolbox unterstützt Sie dabei mit Methoden <strong>und</strong><br />

Werkzeugen – Setup, Build, Use.<br />

Alle Ressourcen <strong>und</strong> Tools für Ihren erfolgreichen Weg<br />

in die Private Cloud stehen Ihnen online zur Verfügung<br />

(inklusive ISO-Image): www.technet.de/toolbox<br />

© 2013 Microsoft Corporation. Alle Rechte vorbehalten.


Admin-MAGAZIN digital<br />

Profi-Know-how <strong>im</strong>mer zur Hand<br />

vorteile<br />

• Ideal für Rechercheure<br />

• bereits vor dem Kiosk-<br />

Termin als PDF lesen<br />

• kompaktes, papierloses<br />

Archiv<br />

• Sparen Sie <strong>im</strong> Abo über<br />

20% <strong>im</strong> Vergleich zum<br />

PDF-Einzelkauf!<br />

Jetzt bestellen unter:<br />

www.admin–magazin.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />

* Preise gelten für Deutschland.<br />

nur 44,90 E* pro Jahr<br />

(6 Ausgaben)


<strong>Samba</strong> 4<br />

Schwerpunkt<br />

© nyul, 123RF<br />

Was ist neu in <strong>Samba</strong> 4?<br />

Generalüberholt<br />

Was bringt <strong>Samba</strong> 4 <strong>und</strong> wie richtet man es richtig ein? Ein Überblick über das neue Release mit vielen praktischen<br />

Hinweisen zu Konfiguration <strong>und</strong> Betrieb. Adam Tauno Williams<br />

Mitte Dezember erschien das lang erwartete<br />

Release 4 von <strong>Samba</strong>, an dem<br />

die Entwickler zehn Jahre lang gearbeitet<br />

hatten. In dieser langen Zeit gab es<br />

außerdem etliche Versionen von <strong>Samba</strong><br />

3 mit zahlreichen Verbesserungen. Im<br />

Lauf der Jahre wurden <strong>im</strong>mer mal wieder<br />

andere Schwerpunkte in der Entwicklung<br />

gesetzt, <strong>und</strong> es gab sogar Gerüchte über<br />

einen <strong>Samba</strong>-Fork. Inzwischen hat sich<br />

das Projekt jedoch auf einen Weg geeinigt,<br />

um die vielen technischen Herausforderungen<br />

zu bewältigen.<br />

Wer sich heute mit <strong>Samba</strong> beschäftigt, für<br />

den empfiehlt es sich, <strong>im</strong>mer die neueste<br />

Dokumentation zu Rate zu ziehen – alte<br />

Postings <strong>und</strong> Mails, insbesondere solche<br />

zu Test- <strong>und</strong> Alpha-Versionen, führen<br />

unweigerlich in die Irre. Konfigurationsdirektiven<br />

<strong>und</strong> die Kommandosyntax haben<br />

sich während der Entwicklungszeit<br />

stark verändert, sodass ältere Dokumente<br />

heute einfach nicht mehr zutreffen.<br />

Nebeneinander<br />

Die Parallelität der beiden <strong>Samba</strong>-Versionen<br />

führte zu einiger Verwirrung, <strong>und</strong><br />

einige <strong>Linux</strong>-Distributionen enthielten<br />

in der Folge sowohl <strong>Samba</strong>-3- wie auch<br />

<strong>Samba</strong>-4-Pakete, die sich prinzipiell sogar<br />

gemeinsam installieren lassen.<br />

Um es aber klar zu sagen: <strong>Samba</strong> 4 ist<br />

das neue <strong>Samba</strong>. Zweifellos wird es noch<br />

einige Zeit parallel zu <strong>Samba</strong> 3 verwendet<br />

werden, aber das liegt nicht etwa an<br />

noch vorhandenen Defiziten von <strong>Samba</strong><br />

4. Im Gegenteil: <strong>Samba</strong> 4 ist ein guter<br />

<strong>und</strong> vollständiger Ersatz für seinen Vorgänger<br />

<strong>und</strong> bietet dieselben Funktionen.<br />

Wenn es <strong>im</strong> Folgenden um <strong>Samba</strong> geht,<br />

ist <strong>im</strong>mer diese neue Version gemeint, es<br />

sei denn, es ist ausdrücklich von <strong>Samba</strong><br />

3 die Rede.<br />

Hohe Codequalität<br />

Aus den vielen Neuerungen in <strong>Samba</strong><br />

sticht die Active Directory-Integration<br />

heraus. Doch das ist beileibe nicht die<br />

einzige Verbesserung. Ein großer Fortschritt<br />

betrifft beispielsweise direkt den<br />

Entwicklungsprozess: Hier einigte man<br />

sich darauf, jede Codeänderung <strong>im</strong>mer<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

37


Schwerpunkt<br />

<strong>Samba</strong> 4<br />

von zwei Entwicklern begutachten <strong>und</strong><br />

danach stets die komplette Test-Suite<br />

durchlaufen zu lassen. Dies garantiert<br />

eine hohe Codequalität <strong>und</strong> ermöglicht<br />

es, so gut wie alle Fehler zu finden, bevor<br />

sie in ein Release gelangen. Die meisten<br />

Änderungen werden außerdem in Bugzilla<br />

geführt <strong>und</strong> ziehen so Regression<br />

Tests nach sich.<br />

Performancegewinne<br />

Ein paar Dinge haben sich <strong>im</strong> äußeren<br />

Erscheinungsbild von <strong>Samba</strong> geändert.<br />

Für traditionelle Domänen-Mitglieder wie<br />

etwa Filseserver gibt es <strong>im</strong>mer noch die<br />

klassischen Daemons »smbd«, »nmbd«<br />

<strong>und</strong> »winbind«. Server, die eine Domäne<br />

kontrollieren, starten <strong>Samba</strong> dagegen als<br />

einzelnes »samba«-Binary. Die eine oder<br />

andere Form entscheidet sich also nach<br />

der Rolle des Servers in der Domäne.<br />

Für <strong>Samba</strong>-Server, die Domänen-Services<br />

bieten, entstand ein neues »samba‐tool«<br />

mit einer ähnlichen Syntax wie das »net«-<br />

Kommando. Daneben gibt es noch <strong>im</strong>mer<br />

die traditionellen TDB-Tools (Trivial<br />

Database ) <strong>und</strong> solche Kommandos wie<br />

»mbcacls«, »smbclient«, »rpclient« <strong>und</strong><br />

andere.<br />

Das birgt insbesondere dann ein Risiko,<br />

wenn parallel auch <strong>Samba</strong> 3 installiert<br />

Listing 1: Active-Directory-Domäne einrichten<br />

01 awilliam@workstation:/opt/s4> sudo ./bin/samba‐tool<br />

domain provision<br />

02 <br />

03 Realm [EXAMPLE.COM]:<br />

04 Domain [EXAMPLE]:<br />

05 Server Role (dc, member, standalone) [dc]:<br />

06 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_<br />

DLZ, NONE) [SAMBA_INTERNAL]:<br />

07 DNS forwarder IP address (write 'none' to disable<br />

forwarding) [192.168.1.46]:<br />

08 Administrator password:<br />

09 Retype password:<br />

10 Looking up IPv4 addresses<br />

11 ....<br />

12 Fixing provision GUIDs<br />

13 A Kerberos configuration suitable for <strong>Samba</strong> 4 has<br />

been generated at /opt/s4/private/krb5.conf<br />

14 Once the above files are installed, your <strong>Samba</strong>4<br />

server will be ready to use<br />

15 Server Role: active directory domain controller<br />

16 Hostname: workstation<br />

17 NetBIOS Domain: EXAMPLE<br />

18 DNS Domain: EXAMPLE.COM<br />

19 DOMAIN SID: S‐1‐5‐21‐1405516098‐4140136852‐3456372168<br />

Abbildung 1: Hinzufügen eines Nutzers via MMC.<br />

Was ist mit dem Active-Directory-<br />

Support? Die kurze Antwort lautet: Er<br />

funktioniert out-of-the-box. Mithilfe des<br />

»samba‐tool« ist eine neue Domain in<br />

Sek<strong>und</strong>en eingerichtet (Listing 1). Bei<br />

diesem interaktiven Vorgehen fragt das<br />

Tool ein paar Parameter ab <strong>und</strong> erzeugt<br />

daraus die Domäne. Danach startet man<br />

»samba« <strong>und</strong> hat <strong>im</strong> Handumdrehen eine<br />

funktionierende Kerberos-, DNS-, LDAP<strong>und</strong><br />

Active Directory-Installation.<br />

Das sieht extrem einfach aus, aber tman<br />

muss einräumen, das die Active Directory-Unterstützung<br />

tatsächlich so kompliziert<br />

ist, wie Active Directory selbst.<br />

Zumindest mit dessen Gr<strong>und</strong>lagen muss<br />

sich der Administrator auf jeden Fall vertraut<br />

machen. Besonders wichtig ist es,<br />

dabei zu verstehen,<br />

n dass eine Active-Directory-Domäne<br />

<strong>im</strong>mer eine DNS-Domäne ist. Beides<br />

hängt unauflöslich zusammen <strong>und</strong><br />

zwar viel stärker als es zuvor etwa<br />

bei <strong>Windows</strong> NT der Fall war. Änderungen<br />

am Active Directory ziehen<br />

jetzt <strong>im</strong>mer auch DNS-Änderungen<br />

nach sich.<br />

n dass eine Active-Directory-Domäne<br />

<strong>im</strong>mer eine Kerberos-Domäne ist. Das<br />

bedingt beispielsweise eine funktionierende<br />

Zeitsynchronisation, weil bereits<br />

eine Abweichung der Systemzeit<br />

zwischen Client <strong>und</strong> Server von weniist.<br />

In diesen Fällen muss man über<br />

entsprechende Einstellungen der Pfad-<br />

Variable dafür sorgen, dass <strong>im</strong>mer die<br />

Kommandos der richtigen Version verwendet<br />

werden.<br />

Neue SMB-Versionen <strong>im</strong><br />

Einsatz<br />

Im einfachsten Fall wird <strong>Samba</strong> als<br />

schlichter Fileserver eingesetzt. Diese<br />

Einsatzvariante erfuhr zahlreiche Verbesserungen<br />

durch eine intern stärker<br />

asynchrone Arbeitsweise, die für höheren<br />

Durchsatz <strong>und</strong> bessere Ressourcenauslastung<br />

sorgt.<br />

In diese Richtung zielt auch die neue Unterstützung<br />

des SMB-2.1- <strong>und</strong> SMB-3.0-<br />

Protokolls, das Clients ab Microsoft Vista<br />

verstärkt verwenden. Die neueren SMB-<br />

Versionen bieten außerdem Optionen<br />

wie Verschlüsselung, Unterstützung für<br />

symbolische Links <strong>und</strong> HA-Features wie<br />

Multipathing <strong>und</strong> Fail-over. Ein SMB3-<br />

Fileserver ist zudem deutlich schneller<br />

als ein Server mit älteren Protokollversionen.<br />

Einen Vorbehalt gibt es dabei allerdings<br />

zu beachten: Der Server sollte ein modernes<br />

Filesystem mit erweiterten Attributen<br />

unterstützen. Ext3 oder Ext4 sollten mit<br />

der Option »user_xattr,acl,barrier=1«<br />

gemountet werden, andernfalls kann<br />

<strong>Samba</strong> die Konsistenz der TDB-Datenbank<br />

<strong>im</strong> Falle eines Systemabsturzes<br />

nicht garantieren, <strong>und</strong> das kann zu einer<br />

korrupten Active Directory-Domäne führen.<br />

Zwar beschreibt das <strong>Samba</strong>-Wiki [1]<br />

einen Workaro<strong>und</strong> für Server mit älteren<br />

Filesystemen, aber ein Update auf Ext3<br />

oder Ext4 ist in jedem Fall die bessere<br />

Variante.<br />

Active Directory<br />

38 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong> 4<br />

Schwerpunkt<br />

gen Minuten den Dienst unbenutzbar<br />

macht. Kerberos achtet genau auf die<br />

Übereinst<strong>im</strong>mung der Systemuhren<br />

<strong>und</strong> verweigert bei Differenzen den<br />

Dienst. Zweitens müssen die Kerberos-<br />

Utilities <strong>und</strong> ‐Bibliotheken vorhanden<br />

<strong>und</strong> korrekt konfiguriert sein.<br />

n dass Active Directory ein LDAP-Directory<br />

ist – mit seinem eigenen Schema<br />

<strong>und</strong> Security-Modell.<br />

Das <strong>Samba</strong>-Wiki bietet eine sehr gute<br />

Einführung in die Thematik <strong>und</strong> eignet<br />

sich als erster Anlaufpunkt.<br />

Integriert statt Standalone<br />

Noch unter <strong>Windows</strong> NT konnte <strong>Samba</strong><br />

eine Reihe von Diensten wie DNS, Kerberos<br />

oder LDAP an spezialisierte Tools wie<br />

Bind, OpenLDAP <strong>und</strong> MIT oder He<strong>im</strong>dal<br />

Kerberos delegieren. Mit Ausnahme von<br />

Bind geht das jetzt nicht mehr. War bei<br />

NT 4 beispielsweise die Verwendung von<br />

OpenLDAP gang <strong>und</strong> gäbe, so geht das<br />

nun nicht mehr. Nun muss der eingebettete<br />

LDAP-Server verwendet werden,<br />

<strong>und</strong> wer eine NT-4-Domäne zu Active<br />

Directory migrieren will, der muss auch<br />

LDAP migrieren.<br />

Dasselbe trifft auf Kerberos zu. Dieser<br />

Zwang zu den integrierten Diensten<br />

scheint dem Konzept eines offenen Stacks<br />

entgegenzulaufen, <strong>und</strong> so ist es auch. Damit<br />

das Hauptziel erreicht werden konnte,<br />

eine vom Start weg problemlos funktionierende<br />

Installation zu bieten, musste<br />

die Unterstützung von Drittanbieter-Tools<br />

leider gestrichen werden. Sie wäre zu<br />

kompliziert gewesen. Nun übern<strong>im</strong>mt<br />

<strong>Samba</strong> diese Funktionen selbst.<br />

Ein <strong>Samba</strong>-AD-Controller kann mit anderen<br />

<strong>Windows</strong>-AD-Controllern reden<br />

<strong>und</strong> deren Domänen-Informationen replizieren<br />

– ganz so wie in einer reinen<br />

<strong>Windows</strong>-Umgebung.<br />

Nur wenige Probleme<br />

Dabei gibt es <strong>im</strong> Moment (Version 4.0.3)<br />

nur noch wenige, kleinere Probleme:<br />

1. Im Verb<strong>und</strong> mit einem <strong>Windows</strong> Read<br />

Only Domain Controller (AD RDOC)<br />

funktioniert die Replikation zuweilen<br />

nicht komplett.<br />

2. Wenn der in <strong>Samba</strong> eingebaute DNS-<br />

Server verwendet wird, replizieren sich<br />

die DNS-Informationen womöglich<br />

nicht.<br />

3. Das Sysvol-Volume, das die GPO-Policies<br />

speichert, wird nicht automatisch<br />

repliziert.<br />

4. Bis zur Version 4.0.3. gab es Probleme<br />

mit der Privilegien-Delegation <strong>und</strong> ACLs<br />

bei LDAP-Objekten.<br />

Wer bereits über ein Active Directory verfügt,<br />

das von <strong>Windows</strong>-Server inklusive<br />

DNS verwaltet wird, der kann die ganze<br />

DNS-Problematik beiseite lassen, es sei<br />

denn, er wollte komplett zu <strong>Samba</strong> migrieren.<br />

Alternativ kann man die Bind-<br />

DLZ-Integration benutzen, hat dann<br />

allerdings eine zusätzliche Komponente<br />

<strong>im</strong> Stack.<br />

Wenn man eine NT-4-Domäne unter<br />

<strong>Samba</strong> anlegt oder migriert, wird per Default<br />

der eingebaute DNS-Server verwendet.<br />

Der reicht für kleinere Installationen<br />

aus, hat aber nicht die Flexibilität <strong>und</strong><br />

Leistungskraft von Bind. Will man deshalb<br />

lieber »bind« verwenden, gibt man<br />

die Option »‐‐dns‐backend=BIND9_DLZ«<br />

an. Wer vom eingebauten auf den externen<br />

DNS-Server umsteigen möchte, für<br />

den gibt es ein Skript namens »samba_<br />

upgradedns«. Dafür braucht man allerdings<br />

ein aktuelles Bind, mindestens Version<br />

9.7, besser 9.8 oder neuer.<br />

In jedem Fall lässt sich auch der <strong>Samba</strong>-<br />

Server mithilfe der <strong>Windows</strong> Tools wie<br />

der Microsoft Management Console [aka<br />

MMC] managen. Wer das Tool verwendet,<br />

kann daran nicht mehr ablesen, ob<br />

der Domänen-Controller unter <strong>Windows</strong><br />

oder <strong>Samba</strong> läuft.<br />

Lästig ist der Fehler bei der Sysvol-Replikation.<br />

Dieses Shared Volume muss allen<br />

DCs zur Verfügung stehen, auf die Clients<br />

zugreifen, <strong>und</strong> es muss überall densel-<br />

Listing 2: Upgrade<br />

01 samba‐tool domain classicupgrade ‐‐dbdir=/tmp/x<br />

‐‐use‐xattrs=yes ‐‐realm=EXAMPLE /tmp/x/smb.conf<br />

02 <br />

03 # dbdir verweist auf den Ort der TDB‐Dateien des NT<br />

4 DC<br />

04 # realm spezifiziert die DNS‐Zone für die neue<br />

AD‐Domäne<br />

05 # <strong>und</strong> am Ende folgt der Ort, an eine dmb.conf‐Kopie<br />

zu finden ist<br />

Listing 3: User ergänzen<br />

01 amba‐tool user add fbaggins ‐‐random‐password<br />

‐‐use‐username‐as‐cn ‐‐surname="Baggins"<br />

‐‐given‐name="Frodo" ‐‐initials=S<br />

‐‐mail‐address=fbaggins@example.com<br />

‐‐company="Hobbiton Inc." ‐‐script‐path=shire.<br />

bat ‐‐profile‐path=\\\\mydc.example.com\\profiles\\<br />

fbaggins ‐‐home‐drive=F ‐‐home‐directory=\\\\<br />

myfileserver.micore.us\\fbaggins ‐‐job‐title="Goes<br />

there and back again"<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

39


Schwerpunkt<br />

<strong>Samba</strong> 4<br />

Nun, da die AD Domäne läuft, lässt sich<br />

auf einem <strong>Windows</strong>-Client die Management<br />

Console (MMC) starten, um sie zu<br />

verwalten. Alternativ lassen sich viele<br />

gewöhnliche Aufgaben wie das Hinzufügen<br />

von Usern oder DNS-Einträgen auch<br />

mit dem »samba‐tool« erledigen (Listing<br />

3, Abbildung 1).<br />

Nachdem es einmal läuft, speichert<br />

<strong>Samba</strong> die Domänen-Informationen in<br />

einem Satz LDB-Files. Der Inhalt der<br />

Datenbank kann mit dem »samba‐tool«<br />

oder via LDAP oder mithilfe der <strong>Samba</strong>-<br />

Kommandos »dbsearch«, »ldbmodify«,<br />

»ldbdel« <strong>und</strong> so weiter modifiziert werden.<br />

Ebenso kann man LDIF-Files mit<br />

zusätzlichen Informationen <strong>im</strong>portieren<br />

– entweder direkt mit LDAP oder mithilfe<br />

von Python, das Kerberos (GSSAPI)<br />

unterstützt.<br />

Alle anderen Services auf Domänen-Mitgliedern,<br />

die keine Domänen-Controller<br />

sind – etwa Winbind – funktionieren unben<br />

Inhalt haben. Deswegen<br />

müssen <strong>Samba</strong> DCs dieses Volume<br />

<strong>im</strong> Moment via »rsync«<br />

oder »csync« synchronisieren,<br />

was glücklicherweise nicht<br />

in Echtzeit geschehen muss,<br />

sondern einem zeitgesteuerten<br />

Job übertragen werden<br />

kann.<br />

Domänen-Upgrades<br />

Ein Domain-Upgrade ist so<br />

einfach wie das Neuaufsetzen<br />

einer Domain. Der bedeutendste<br />

Einwand gegen ein<br />

Upgrade zu Active Directory<br />

ist, dass es sich um eine Einbahnstraße<br />

handelt. Sobald eine NT-Domäne eine<br />

AD-Domäne mit demselben SID oder<br />

NetBIOS-Namen sieht, schaltet sie in den<br />

Active Directory-Modus <strong>und</strong> kehrt nie<br />

wieder zurück. Daher sollte man einen<br />

Test sorgfältig planen <strong>und</strong> isoliert von<br />

der Produktivumgebung ansetzen. Ansonsten<br />

ist das das natürliche Verhalten<br />

in Microsofts Active Directory <strong>und</strong> hat<br />

nichts speziell mit <strong>Samba</strong> zu tun.<br />

Das eigentliche Update gelingt wieder mit<br />

dem »samba‐tool« (Listing 2). Das Tool<br />

muss eine Kopie des »smb.conf«-Files<br />

eines der Domänen-Controller <strong>und</strong> die<br />

TDB-Files erreichen können. Wenn der<br />

NT4-DC LDAPSAM verwendet, braucht<br />

er auch Zugriff auf dessen Data Source<br />

Adaptor (DSA) – aber keine Sorge, aus<br />

dem LDAP wird nur gelesen <strong>und</strong> nichts<br />

hineingeschrieben.<br />

Das Skript migriert alle User, Gruppen<br />

<strong>und</strong> Maschinen-Accounts. Besonders<br />

wenn LDAPSAM verwendet wurde <strong>und</strong><br />

die Domäne lange existierte, kommen<br />

wahrscheinlich ein paar Inkonsistenzen<br />

zu Tage, die der faule NT-Administrator<br />

Listing 4: NTP-Kontrolle<br />

01 # Check the configuration of <strong>Samba</strong><br />

02 $ testparm ‐‐parameter‐name="ntp signd socket<br />

directory"<br />

03 /opt/s4/var/ntp<br />

04 # Check the configuration of NTP<br />

05 $ cat /etc/ntp.conf<br />

06 ...<br />

07 ntpsigndsocket /opt/s4/lib/ntp/<br />

08 restrict default mssntp<br />

09 # Change the permissions of the target folder<br />

10 $ chown ntp /opt/s4/lib/ntp<br />

Abbildung 2: Im neuen <strong>Samba</strong> sind zuvor externe Komponenten nun eingebettet.<br />

nicht beachtet hatte, etwa doppelte Benutzernamen<br />

oder SIDs oder fehlende<br />

Gruppen. Die Fehlermeldungen sind aber<br />

meist selbsterklärend. Die Probleme sind<br />

in NT zu lösen, dann kann man einen<br />

neuen Migrationsversuch starten.<br />

Ein großer Vorteil von <strong>Samba</strong> ist, dass<br />

es eben diesen Ugrade-Pfad von NT zu<br />

Active Directory anbietet. Alle <strong>Windows</strong><br />

Tools für diesen Zweck, die der Autor<br />

kennt, arbeiten nicht mehr auf den aktuellen<br />

<strong>Windows</strong>-Server-Versionen oder<br />

zumindest nicht ohne Registry Hacks <strong>und</strong><br />

damit auch nicht vollständig.<br />

In Betrieb<br />

ter <strong>Samba</strong> 4 wie zuvor unter<br />

<strong>Samba</strong> 3. Man muss lediglich<br />

daran denken, die einzelnen<br />

Daemons »smbd«, »nmbd«<br />

<strong>und</strong> »windbind« zu starten.<br />

Zeitkorrektur<br />

Wenn alles läuft <strong>und</strong> Server<br />

der Domäne beitreten, erlebt<br />

man möglicherweise, dass die<br />

Uhren auseinanderlaufen <strong>und</strong><br />

man den Zugriff verliert, weil<br />

die Synchronisationsansprüche<br />

von Kerberos nicht mehr<br />

erfüllt werden. Clients einer<br />

Microsoft Domäne synchronisieren<br />

sich aber nicht mit einem beliebigen<br />

Zeitserver, denn sie erwarten, dass<br />

der NTP-Service von einem DC signiert<br />

wurde, dem sie vertrauen. Um das zu<br />

erreichen, muss man auf dem DC einen<br />

NTP-Server installieren, der Netzwerkpakete<br />

signieren kann, beispielsweise eine<br />

Version von »ntpd«. Dann muss <strong>Samba</strong><br />

so konfiguriert werden, dass es mit dem<br />

Zeitserver redet. Das passiert über einen<br />

Filesystem-Socket, der per Default<br />

in »{prefix}/var/ntp/« angesiedelt ist.<br />

Dabei bezeichnet »{prefix}« das <strong>Samba</strong>-<br />

Build- oder Paket-Verzeichnis. Alternativ<br />

kann man den Ort auch mit der Direktive<br />

»ntp signd socket directory« in der<br />

»smb.conf« vorgeben. Im File »ntp.conf«<br />

verweist »ntp signd socket directory« auf<br />

dasselbe Verzeichnis. Verwirrenderweise<br />

zeigen beide Konfigurationsdirektiven<br />

nicht auf ein File, sondern auf ein Verzeichnis,<br />

dass das »socket«-File enthält.<br />

Listing 4 zeigt, wie man diese Einstellungen<br />

überprüft.<br />

Bei <strong>Windows</strong>-Clients kommt es darauf<br />

an, dass das Kommando »w32tm /resync<br />

/rediscover« mit der Meldung »The<br />

command completed successfully« endet.<br />

Andernfalls funktioniert die Zeitsynchronisation<br />

nicht, <strong>und</strong> man riskiert, den Zugriff<br />

auf Teile der Domäne zu verlieren,<br />

wenn die Uhren auseinanderlaufen.<br />

Die Zeitsynchronisation war der letzte<br />

Schritt zu einer voll funktionierenden<br />

<strong>Samba</strong>-4-Domäne. (jcb)<br />

n<br />

Infos<br />

[1] <strong>Samba</strong>-Wiki: [https://wiki.samba.org/index.<br />

php/Main_Page/​]<br />

40 Ausgabe 02-2013 Admin www.admin-magazin.de


Mehr K<strong>und</strong>en? Anrufhürden überwinden!<br />

Lokale Rufnummern aus mehr als 45 Ländern.<br />

Anrufhürden überwinden<br />

Rufen Sie eine indische Telefonnummer an, um<br />

eine Bestellung aufzugeben? Ihren internationalen<br />

Interessenten geht es nicht anders – sie<br />

fürchten hohe Kosten <strong>und</strong> Sprachhürden.<br />

Kontaktzahlen <strong>und</strong> Umsatz steigern<br />

Mit globalBusiness überwinden Sie diese Hürden:<br />

Sie erhalten lokale Rufnummern aus mehr<br />

als 45 Ländern <strong>und</strong> sorgen damit für K<strong>und</strong>ennähe<br />

<strong>und</strong> Vertrauen. So generieren Sie mehr<br />

Kontakte – die Basis für Ihren Umsatz!<br />

9.000 Vorwahlen auf nur einen Anschluss<br />

Ordern Sie mit globalBusiness Rufnummern aus<br />

ganz Deutschland (z.B.: Berlin, Köln oder Bielefeld)<br />

<strong>und</strong> mehr als 4.000 internationalen Städten<br />

(z.B.: London, Paris, New York). Leiten Sie<br />

Gespräche auf globalBusiness - Rufnummern an<br />

bestehende Anschlüsse weiter – per SIP gratis.<br />

Kurze Laufzeit – besonders günstig<br />

Nur 5 Tage Vertragslaufzeit <strong>und</strong> bereits ab einer<br />

Rufnummer erhältlich. Alle verfügbaren Städte<br />

<strong>und</strong> Preise unter: www.outbox.de<br />

Infos <strong>und</strong> Beratung: 0800 /688 269 24<br />

www.outbox.de


Schwerpunkt<br />

<strong>Samba</strong> 4 für <strong>Windows</strong>-Admins<br />

© Brooke Becker, 123RF<br />

<strong>Samba</strong> 4 als Ersatz für Microsoft Active Directory<br />

Blick übern Zaun<br />

Wenn es um die Authentifizierung von Benutzern <strong>und</strong> die Absicherung von Daten in heterogenen Netzen geht,<br />

kommt man kaum um eine <strong>Windows</strong>-Domäne herum. Administratoren, die auf Gratisdienste setzen wollen, können<br />

eine <strong>Windows</strong>-Domäne auch mit einem kostenlosen <strong>Samba</strong>-Server umsetzen, mit <strong>Samba</strong> 4 sogar erstmals<br />

als Domain Controller. Thomas Joos<br />

Mit der Veröffentlichung von <strong>Samba</strong> 4<br />

geht ein jahrelanges Entwicklungsprojekt<br />

zu Ende. Erstmals steht eine komplett<br />

freie Software zur Verfügung, die ein Active<br />

Directory aufbauen kann, also nicht<br />

nur eine alte <strong>Windows</strong> NT 4.0-Domäne,<br />

wie bis zu <strong>Samba</strong> 3 noch üblich.<br />

Der einfachste Weg zu <strong>Samba</strong> 4 ist eine<br />

bereits installierte virtuelle Festplatte auf<br />

Basis von Hyper-V (VHD), Open Virtualization<br />

Format (OVF) oder als VMware-<br />

Image, beziehungsweise KVM. Passende<br />

Download-Images finden Sie entweder<br />

bei Suse [1] oder SerNet [2]. Auch Univention<br />

Corporate Server [3] bietet eine<br />

<strong>Linux</strong>-Distribution mit <strong>Samba</strong> 4 <strong>und</strong> zusätzlich<br />

eine webbasierte Verwaltungsoberfläche.<br />

Mehr zu diesen Produkten<br />

verrät der Vergleich in unserem Schwerpunkt.<br />

Appliances<br />

Die SerNet <strong>Samba</strong> 4 Appliance unterstützt<br />

auf Basis einer Debian GNU-Distribution<br />

den Betrieb als Active Directory-Domänencontroller<br />

<strong>und</strong> erlaubt auch die Anbindung<br />

von <strong>Windows</strong>-Clients inklusive<br />

der Verwaltung von Gruppenrichtlinien<br />

mit den Remoteserver-Verwaltungstools.<br />

Das heißt, nach der Installation verwalten<br />

Sie den Server wie gewohnt mit<br />

<strong>Windows</strong>-Tools. Wer sich <strong>Samba</strong> in einer<br />

eigenen <strong>Linux</strong>-Installation direkt von den<br />

Entwicklern herunterladen will, findet<br />

die Installationsdateien <strong>und</strong> Anleitungen<br />

auf der Seite [4], ein Whitepaper zur Installation<br />

befindet sich auf der Seite [5].<br />

Generell spielt es keine Rolle, welche<br />

Distribution man verwendet, die Funktionen<br />

sind nahezu identisch. <strong>Samba</strong> 4<br />

lässt sich also als vollwertiger Domänencontroller<br />

inklusive Dateiserver-Betrieb<br />

nutzen. Im Netzwerk können Sie auch<br />

mehrere Domänencontroller mit <strong>Samba</strong> 4<br />

einsetzen, die untereinander Daten synchronisieren.<br />

Allerdings ist gerade hier die Technologie<br />

bei Weitem nicht so ausgereift wie<br />

bei aktuellen <strong>Windows</strong>-Server-Versionen.<br />

Selbst die aktuelle Version <strong>Samba</strong> 4 unterstützt<br />

nicht die neuen Funktionen von<br />

Active Directory in <strong>Windows</strong> Server 2012<br />

wie das Klonen von Domänencontrollern,<br />

schreibgeschützte Domänencontroller,<br />

Replikation zwischen Standorten oder<br />

den Ressourcen-Manager für Dateiserver,<br />

iSCSI-Ziele <strong>und</strong> vieles mehr.<br />

Neben Gruppenrichtlinien lassen sich<br />

auch servergespeicherte Profile mit<br />

<strong>Samba</strong> 4 umsetzen. Unternehmen, die<br />

Exchange einsetzen, können ebenfalls<br />

<strong>Samba</strong> verwenden, da <strong>Samba</strong> 4 <strong>und</strong> aktuelle<br />

Exchange-Versionen kompatibel<br />

zueinander sind. Natürlich lassen sich<br />

auch Alternativen wie Zarafa <strong>und</strong> Open<br />

Exchange anbinden. Die Authentifizierung<br />

dazu lässt sich vollständig mit den<br />

<strong>Samba</strong>-Servern durchführen.<br />

Integration<br />

<strong>Samba</strong>-4-Server können auch als Mitgliedsserver<br />

in einem Active Directory<br />

auf Basis von <strong>Windows</strong>-Servern teilnehmen<br />

oder ein eigenes Active Directory<br />

zur Verfügung stellen. Dabei tritt der<br />

Server als normaler Domänencontroller<br />

auf, auch zusammen mit anderen Domänencontrollern.<br />

Die Einrichtung erfolgt<br />

über einen Assistenten oder Konfigurationsdateien<br />

auf dem Server.<br />

Die Verwaltung der Domäne lässt sich<br />

nach der Installation auch vollständig<br />

über die <strong>Windows</strong>-Verwaltungstools<br />

durchführen (Abbildung 1). Dazu müssen<br />

Sie lediglich die Remoteserver-Verwaltungstools<br />

installieren. Diese stehen<br />

für <strong>Windows</strong> 7 mit SP1 [6] <strong>und</strong> <strong>Windows</strong><br />

8 [7] <strong>im</strong> Downloadcenter von Microsoft<br />

zur Verfügung.<br />

Eine wichtige Neuerung in <strong>Samba</strong> 4 ist,<br />

dass die Entwickler auf die von Microsoft<br />

veröffentlichten Informationen zu Active<br />

Directory zurückgreifen können. In der<br />

Vergangenheit war es notwendig, die Protokollinformationen<br />

aus mitgeschnittenen<br />

Netzwerkpaketen zu rekonstruieren,<br />

was nicht <strong>im</strong>mer zu zufriedenstellenden<br />

42 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong> 4 für <strong>Windows</strong>-Admins<br />

Schwerpunkt<br />

Ergebnissen geführt hat. Die Entwickler<br />

arbeiten in dieser Hinsicht auch direkt<br />

mit Microsoft zusammen, um <strong>Samba</strong> so<br />

stabil wie möglich zusammen mit <strong>Windows</strong><br />

zu betreiben. Es ist zu erwarten,<br />

dass zukünftig weitere Funktionen von<br />

<strong>Windows</strong> Server 2008 R2/​2012 auch in<br />

<strong>Samba</strong> 4 Einzug halten.<br />

SMB 2.1 <strong>und</strong> SMB 3.0<br />

Für den Datenaustausch über das Netzwerk<br />

mit <strong>Windows</strong>-Clients nutzt <strong>Samba</strong><br />

auch das SMB-Protokoll. Neben der Version<br />

2.1 kann <strong>Samba</strong> 4 auch SMB 3.0<br />

aushandeln, das neue Protokoll für den<br />

Netzwerkzugriff in <strong>Windows</strong> 8 <strong>und</strong> <strong>Windows</strong><br />

Server 2012. Die Entwickler wollen<br />

vor allem die neue Version SMB 3.0 zukünftig<br />

deutlich ausbauen.<br />

<strong>Samba</strong> 4 verwendet den Dateiserver<br />

»smdb« aus <strong>Samba</strong> 3 weiter. Sie können<br />

in der neuen Version aber auch auf die<br />

<strong>Samba</strong> 4-angepasste Version von NTVFS<br />

setzen, das zukünftig die alte »smdb«-<br />

Version ersetzen soll. <strong>Samba</strong>-4-Dateiserver<br />

lassen sich auch clustern, genauso<br />

wie Dateiserver mit <strong>Windows</strong>-Servern.<br />

Die Einrichtung von Dateiservern <strong>und</strong> die<br />

Verwaltung von Rechten gestalten sich<br />

mit <strong>Samba</strong> allerdings bei Weitem nicht<br />

so einfach wie mit <strong>Windows</strong>-Servern. Vor<br />

allem <strong>Windows</strong> Server 2012 Essentials<br />

<strong>und</strong> <strong>Windows</strong> Server 2012 Fo<strong>und</strong>ation<br />

haben hier so einige Vorteile. Doch dazu<br />

später mehr.<br />

<strong>Samba</strong> 4 als<br />

Domänencontroller<br />

<strong>Samba</strong> 4 kann nicht nur eine alte <strong>Windows</strong>-Domäne<br />

auf Basis von <strong>Windows</strong><br />

NT 4.0 abbilden, sondern ein<br />

vollwertiges Active Directory,<br />

inklusive LDAP-Server <strong>und</strong><br />

Kerberos Key Distribution<br />

Center. Dabei setzen die Entwickler<br />

nicht auf OpenLDAP,<br />

sondern haben LDAP direkt in<br />

<strong>Samba</strong> 4 integriert. Auf diese<br />

Weise lassen sich Probleme<br />

bei der Zusammenarbeit von<br />

<strong>Samba</strong> <strong>und</strong> LDAP ausschließen.<br />

So authentifizieren sich auch<br />

aktuelle Arbeitsstationen mit<br />

<strong>Windows</strong> XP aufwärts bis<br />

<strong>Windows</strong> 8 am <strong>Samba</strong>-Server. Auch Server<br />

bis hin zu <strong>Windows</strong> Server 2012 arbeiten<br />

mit <strong>Samba</strong> 4 zusammen, <strong>und</strong> zwar als<br />

Domänencontroller oder als Mitgliedsserver.<br />

Die gängigen <strong>Windows</strong>-Werkzeuge<br />

zur Verwaltung von Domänen lassen<br />

sich an <strong>Samba</strong> anbinden, zumindest die<br />

meisten. So kommen auch <strong>Windows</strong>-<br />

Administratoren mit der Verwaltung des<br />

Servers zurecht, nachdem <strong>Samba</strong> einmal<br />

eingerichtet ist. Gemeinsam mit <strong>Linux</strong>-<br />

Profis können sie die Domäne einrichten<br />

<strong>und</strong> anschließend selbst mit <strong>Windows</strong>-<br />

Tools verwalten. Das geht auch mit den<br />

Remoteserver-Verwaltungstools, auch<br />

von <strong>Windows</strong> 8 oder <strong>Windows</strong> Server<br />

2012. Allerdings lässt sich der neue Server-Manager<br />

von <strong>Windows</strong> Server 2012 in<br />

diesem Zusammenhang nicht nutzen.<br />

Von Vorgängerversionen zu<br />

<strong>Samba</strong> migrieren<br />

Administratoren können von Vorabversionen<br />

wie Beta oder Alpha zur endgültigen<br />

Version aktualisieren. Auch eine<br />

Migration von <strong>Samba</strong> 3 zu <strong>Samba</strong> 4 ist<br />

möglich. Wie Sie dabei vorgehen, lesen<br />

Sie auf der Seite [8]. Haben Sie den Server<br />

zu <strong>Samba</strong> 4 <strong>im</strong> laufenden Betrieb aktualisiert,<br />

empfehlen die Entwickler den<br />

Befehl »samba‐tool dbcheck ‐‐cross‐ncs<br />

‐fix« vor einem Neustart auszuführen.<br />

Handelt es sich bei dem Server um einen<br />

Domänencontroller, ist zusätzlich noch<br />

der Befehl »samba‐tool ntacl sysvolreset«<br />

notwendig.<br />

Da die Namensauflösung in einem Active<br />

Directory eine extrem wichtige Gr<strong>und</strong>lage<br />

ist, lässt sich mit <strong>Samba</strong> 4 auch ein DNS-<br />

Server betreiben. Allerdings lassen sich<br />

DNS-Daten nicht in Active Directory in-<br />

Abbildung 1: <strong>Samba</strong>-Server lassen sich auch mit grafischen Verwaltungstools von<br />

<strong>Windows</strong>-Clients aus verwalten.<br />

tegrieren, <strong>und</strong> sie lassen sich auch nicht<br />

zwischen Servern replizieren. Auch ein<br />

Zeitserver auf Basis von NTP lässt sich<br />

mit NTP umsetzen, allerdings funktioniert<br />

dieser derzeit noch nicht so stabil<br />

wie ein <strong>Windows</strong>-Domänencontroller.<br />

In Active Directory sollten die Uhren der<br />

Rechner <strong>und</strong> Server nicht mehr als fünf<br />

Minuten voneinander abweichen. Da Active<br />

Directory bei der Authentifizierung<br />

mit Kerberos arbeitet, ein System das<br />

stark auf Tickets, Zeitstempel <strong>und</strong> damit<br />

gültige Uhrzeiten aufbaut, besteht die<br />

Gefahr, dass Authentifizierungsaufgaben<br />

nicht funktionieren, wenn die Uhren einzelner<br />

Rechner mehr voneinander abweichen.<br />

Standardmäßig toleriert Kerberos<br />

in Active Directory eine Zeitdifferenz von<br />

fünf Minuten.<br />

Um Active Directory zu installieren, nutzen<br />

Sie das »samba‐tool« oder den entsprechenden<br />

Assistenten der jeweiligen<br />

Distribution. Administratoren, die <strong>Samba</strong><br />

4 als Domänencontroller mit anderen<br />

Servern, zum Beispiel <strong>Windows</strong> Server<br />

2012 betreiben, sollten wissen, dass die<br />

Replikation zwischen <strong>Windows</strong> <strong>und</strong> <strong>Linux</strong><br />

<strong>im</strong> Bereich Sysvol noch nicht so gut<br />

funktioniert. Hier wollen die Entwickler<br />

in neuen Versionen nacharbeiten.<br />

Was geht (noch) nicht mit<br />

<strong>Samba</strong> 4?<br />

Auch wenn die Entwickler mit <strong>Samba</strong> 4<br />

einen echten Fortschritt erzielt haben,<br />

müssen sich <strong>Windows</strong>-Administratoren<br />

darüber <strong>im</strong> Klaren sein, dass einiges in<br />

<strong>Samba</strong> 4 noch nicht so funktioniert wie<br />

mit <strong>Windows</strong>-Servern gewohnt. Zwar<br />

ist nach der Installation die Verwaltung<br />

recht einfach, <strong>und</strong> Clients lassen sich<br />

prob lemlos anbinden. Allerdings<br />

macht die Replikation<br />

noch Probleme.<br />

Vor allem die Replikation des<br />

Sysvol-Verzeichnisses <strong>und</strong><br />

der DNS-Daten ist nicht opt<strong>im</strong>al<br />

gelöst. Genauer gesagt<br />

lassen sich DNS-Daten zwischen<br />

DNS-Servern auf Basis<br />

von <strong>Samba</strong> überhaupt nicht<br />

replizieren. Im Gegensatz zu<br />

<strong>Windows</strong> integriert <strong>Samba</strong> die<br />

DNS-Daten nicht in Active Directory,<br />

sondern in einem eigenen<br />

Verzeichnis. In großen<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

43


Schwerpunkt<br />

<strong>Samba</strong> 4 für <strong>Windows</strong>-Admins<br />

Umgebungen kann das ziemlich stören,<br />

sind nur wenige Server <strong>im</strong> Einsatz, ist<br />

das Problem schon nicht mehr ganz so<br />

groß. Außerdem gibt es in den ersten<br />

Versionen von <strong>Samba</strong> 4 Probleme bei der<br />

Synchronisierung der Uhren zwischen<br />

Clients <strong>und</strong> Servern.<br />

<strong>Samba</strong> für <strong>Windows</strong>-<br />

Administratoren testen<br />

Starten <strong>Windows</strong>-Administratoren mit<br />

begrenztem Wissen eine <strong>Samba</strong>-4-Appliance<br />

oder installieren die Distribution,<br />

stehen Sie zunächst etwas <strong>im</strong> Regen. Im<br />

Gegensatz zu <strong>Windows</strong> hilft nicht <strong>im</strong>mer<br />

ein Assistent be<strong>im</strong> Start, sondern man landet<br />

erst einmal in der <strong>Linux</strong>-Shell. Etwas<br />

<strong>Linux</strong>-Wissen sollte bei der Einrichtung<br />

daher vorhanden sein. Ist die Domäne<br />

installiert, verwalten Administratoren<br />

die Domäne, inklusive dem Anlegen von<br />

Benutzern mit der grafischen Oberfläche<br />

der Remoteserver-Verwaltungstools. Hier<br />

gibt es zunächst keine Unterschiede zwischen<br />

<strong>Windows</strong> <strong>und</strong> <strong>Samba</strong>. Allerdings<br />

gestaltet sich die Einrichtung eines Dateiservers<br />

vollkommen anders.<br />

Wollen Sie die oben erwähnte <strong>Samba</strong>-<br />

Testmaschine von Suse verwenden, laden<br />

Sie sich zunächst die entsprechende<br />

VHD-Datei von [1] herunter. Sie können<br />

die VHD-Datei auch in einer Hyper-V-<br />

Umgebung mit <strong>Windows</strong> Server 2012<br />

einbinden. Nachdem der virtuelle Suse<br />

Enterprise <strong>Linux</strong> Server gestartet ist, melden<br />

Sie sich mit dem Benutzer »root« <strong>und</strong><br />

dem Kennwort »opensuse« an. Mit »cd /<br />

srv« <strong>und</strong> dann mit »cd /v« gelangen Sie<br />

in das Verzeichnis mit den Installationsdateien.<br />

Starten Sie dann das Skript »./<br />

dcpromo«. Mit diesem können<br />

Sie eine neue Active-Directory-<br />

Gesamtstruktur aufbauen <strong>und</strong><br />

geben die wichtigsten Daten<br />

mit einem Assistenten ein. Ist<br />

die Installation abgeschlossen,<br />

steht der Server zur Verfügung.<br />

Um anschließend den Server zu<br />

verwalten, benötigen Sie einen<br />

Computer mit <strong>Windows</strong> 7/​8<br />

<strong>und</strong> installierten Remoteserver-<br />

Verwaltungstools. Diese können<br />

Sie über die Adresse »http://<br />

IP‐Adresse des <strong>Samba</strong>‐Servers«<br />

auch direkt vom Server oder<br />

direkt bei Microsoft herunterladen. Um<br />

Server oder PCs in die Domäne aufzunehmen,<br />

legen Sie den DNS-Server der<br />

Clients auf die IP-Adresse des <strong>Samba</strong>-<br />

Servers fest. Hier gehen Sie genauso<br />

vor wie bei der Aufnahme zu normalen<br />

<strong>Windows</strong>-Servern. Anschließend können<br />

Sie mit Computern der Domäne genauso<br />

beitreten wie bei <strong>Windows</strong>-Servern. Bei<br />

der virtuellen Appliance verwenden Sie<br />

dazu aber nicht den Benutzer »root«,<br />

sondern den Benutzer »Administrator«<br />

mit dem Kennwort, das Sie während der<br />

Installation von Active Directory auf dem<br />

<strong>Samba</strong>-Server eingeben.<br />

Wenn der Computer Mitglied der Domäne<br />

ist <strong>und</strong> Sie die Remoteserver-Verwaltungstools<br />

installiert haben, können<br />

Sie die Domäne genauso verwalten wie<br />

mit <strong>Windows</strong>-Servern. Sie können Benutzer<br />

anlegen, servergespeicherte Profile<br />

definieren <strong>und</strong> Exchange integrieren<br />

(Abbildung 2). Die meisten Verwaltungswerkzeuge<br />

wie Active Directory-Benutzer<br />

<strong>und</strong> ‐Computer funktionieren. Allerdings<br />

lässt sich das neue Active Directory-<br />

Verwaltungscenter von <strong>Windows</strong> Server<br />

2012 nicht ohne Weiteres an <strong>Samba</strong> anbinden.<br />

Alternativ: <strong>Windows</strong> Server<br />

Essentials 2012<br />

<strong>Samba</strong> 4 ist vor allem für kleine Unternehmen<br />

interessant. Hier bietet aber<br />

auch Microsoft echte Alternativen an. Mit<br />

<strong>Windows</strong> Server 2012 gibt es nun keinen<br />

Small Business Server mehr. Der offizielle<br />

Nachfolger ist die Edition „Essentials“<br />

von <strong>Windows</strong> Server 2012, die allerdings<br />

weder Exchange noch Sharepoint bietet.<br />

Abbildung 2: Benutzer legen Sie auch mit <strong>Samba</strong> über Active-Directory-Benutzer<br />

<strong>und</strong> ‐Computer an.<br />

Be<strong>im</strong> Einsatz von <strong>Windows</strong> Server 2012<br />

Essentials können Unternehmen bis zu<br />

25 Benutzer <strong>und</strong> 50 Clients anbinden.<br />

Wer mehr braucht, kann auf <strong>Windows</strong><br />

Server 2012 Standard oder Datacenter<br />

setzen. Allerdings fällt dann die zentrale<br />

Verwaltung über das Dashboard weg, außerdem<br />

sind Clientzugriffslizenzen notwendig.<br />

Eine solche Übernahme muss<br />

ein IT-Profi vornehmen.<br />

Der Installations-Assistent erstellt automatisiert<br />

eine Active Directory-Domäne<br />

<strong>und</strong> n<strong>im</strong>mt die notwendigen Einstellungen<br />

vor. Die Verwaltung des neuen<br />

Servers erfolgt über ein Dashboard, das<br />

bereits von Small Business Server 2011<br />

Essentials bekannt ist. Es lassen sich Benutzer<br />

anlegen, Freigaben erstellen <strong>und</strong><br />

Zusatzanwendungen wie Backuplösungen<br />

oder Virenschutz installieren. Für<br />

Installation <strong>und</strong> Betrieb sind daher keine<br />

Profikenntnisse notwendig.<br />

Im Gegensatz zu SBS 2011 Standard bietet<br />

<strong>Windows</strong> Server 2012 Essentials einen<br />

wichtigen Vorteil: Clientcomputer lassen<br />

sich über einen Agenten auf dem Server<br />

sichern <strong>und</strong> auf einfachem Weg wiederherstellen.<br />

Diese Funktion hat Microsoft<br />

von SBS 2011 Essentials übernommen.<br />

Außerdem haben Anwender die Möglichkeit,<br />

mit einem Webportal über das Internet<br />

per Remotedesktop auf den eigenen<br />

Server zuzugreifen. Die Datensicherung<br />

<strong>und</strong> ‐Wiederherstellung des eigenen PCs<br />

können Anwender in einem eigenen Tool<br />

leicht selbst durchführen, das entlastet<br />

den Administrator. Der Server benötigt<br />

keine Clientzugriffslizenzen.<br />

Wer kein Dashboard <strong>und</strong> keine Assistenten<br />

braucht <strong>und</strong> auch keinen Server,<br />

der automatisch Active Directory installiert,<br />

kann auch auf die noch<br />

günstigere Edition <strong>Windows</strong><br />

Server 2012 Fo<strong>und</strong>ation setzen.<br />

Diese erlaubt die Anbindung<br />

von max<strong>im</strong>al 15<br />

Benutzern, ebenfalls ohne<br />

Clientzugriffslizenzen. Es<br />

gibt aber kein einheitliches<br />

Verwaltungswerkzeug, <strong>und</strong><br />

der Administrator, der den<br />

Server einrichtet, muss einiges<br />

an Know-how mitbringen.<br />

Auch Freigaben werden<br />

nicht automatisch angelegt,<br />

es gibt keinen Webzugriff,<br />

<strong>und</strong> die Möglichkeit, Daten<br />

44 Ausgabe 02-2013 Admin www.admin-magazin.de


kinderleicht<br />

+ ausgereift<br />

von Clientcomputern zu sichern, ist nicht<br />

vorhanden.<br />

Die Verwaltung des Servers ist identisch<br />

mit der herkömmlichen Verwaltung von<br />

<strong>Windows</strong> Server 2012. Hyper-V ist bei<br />

dieser Edition nicht integriert, aber Sie<br />

können <strong>Windows</strong> Server 2012 Fo<strong>und</strong>ation<br />

als Hyper-V-Gast installieren. Die Edition<br />

ist nur als OEM-Version erhältlich. Eine<br />

Lizenz ermöglicht die Installation auf<br />

einer physischen Maschine. Im Gegensatz<br />

zu den anderen Editionen dürfen Sie<br />

keine weiteren virtuellen Maschinen mit<br />

einer Lizenz installieren.<br />

Setzen Sie die Edition als Remotdesktopserver<br />

ein, dürfen sich ebenfalls nur 15<br />

Benutzer mit dem Server verbinden. Für<br />

diese Benutzer sind allerdings RDS-CALs<br />

notwendig, denn diese sind nicht <strong>im</strong> Betriebssystem<br />

integriert. Setzen Unternehmen<br />

<strong>Windows</strong> Server 2012 Fo<strong>und</strong>ation<br />

in Active Directory ein, dürfen in dieser<br />

Domäne nur max<strong>im</strong>al 15 Benutzerkonten<br />

angelegt sein. Der Server darf nicht dazu<br />

verwendet werden, um untergeordnete<br />

Domänen zu erstellen. Stellt der Server<br />

Lizenzverstöße fest, fährt er automatisch<br />

herunter.<br />

Die Version lässt sich auf die Standard-<br />

Edition aktualisieren, ohne den Server<br />

neu installieren zu müssen. Wer sich etwas<br />

mit dem Server auseinandersetzt,<br />

kann auf den Client-PCs eine Datensicherung<br />

einrichten <strong>und</strong> diese Daten auf<br />

einer Freigabe des Servers sichern. Alle<br />

diese Funktionen müssen aber manuell<br />

eingerichtet werden.<br />

Fazit<br />

<strong>Samba</strong> 4 ist gegenüber der Vorgängerversion<br />

ein echter Fortschritt. Allerdings<br />

sollten sich <strong>Linux</strong>-Anfänger darüber <strong>im</strong><br />

Klaren sein, dass sich der Server zwar<br />

recht leicht über gängige <strong>Windows</strong>-<br />

Werkzeuge verwalten lässt, allerdings<br />

selbst über die <strong>Linux</strong>-Oberfläche installiert<br />

werden muss. Ohne <strong>Linux</strong>-Wissen<br />

können schnell Sicherheitslücken entstehen.<br />

Auch die Einrichtung entspricht<br />

nicht den einfachen Assistenten, die man<br />

von <strong>Windows</strong>-Servern gewohnt ist. Neue<br />

Tools wie das modernisierte Active-Directory-Verwaltungscenter<br />

oder der Server-<br />

Manager, die Powershell, der Web Access<br />

<strong>und</strong> einiges andere funktionieren nicht.<br />

DNS-Daten lassen sich nicht in Active<br />

Directory integrieren, <strong>und</strong> die Einrichtung<br />

von Dateiservern ist bei Weitem<br />

nicht so einfach wie mit <strong>Windows</strong>.<br />

Allerdings bietet <strong>Samba</strong> auch Vorteile.<br />

Selbst <strong>Linux</strong>-Anfänger bekommen recht<br />

schnell eine Domäne zum Laufen, <strong>und</strong><br />

Clients lassen sich genauso anbinden wie<br />

mit <strong>Windows</strong>. <strong>Samba</strong> 4 unterstützt dabei<br />

alle gängigen <strong>Windows</strong>-Betriebssysteme,<br />

die <strong>Windows</strong>-Domänen beherrschen, inklusive<br />

<strong>Windows</strong> 8 <strong>und</strong> <strong>Windows</strong> Server<br />

2012. Dass sich <strong>Samba</strong> 4 mit den <strong>Windows</strong>-Remoteserver-Verwaltungstools<br />

verwalten lässt, ist ein weiterer Vorteil.<br />

Gr<strong>und</strong>sätzlich bleibt festzuhalten, dass<br />

<strong>Samba</strong> 4 eher für kleine Unternehmen<br />

mit wenigen Domänencontrollern geeignet<br />

ist, oder für Unternehmen, die zwar<br />

viel <strong>Linux</strong>-Wissen haben, aber auch<br />

<strong>Windows</strong>-Authentifizierung benötigen.<br />

Allerdings fehlen in <strong>Samba</strong> auch aktuelle<br />

Neuerungen von Active Directory in<br />

<strong>Windows</strong> Server 2012 wie die Generation-ID,<br />

klonfähige Domänencontroller,<br />

schreibgeschützte Domänencontroller<br />

<strong>und</strong> DNSSEC für DNS-Server. (ofr) n<br />

Infos<br />

[1] Suse <strong>Samba</strong> Appliance: [http:// susestudio.​<br />

com/ a/ veav1Y/ excellent‐samba4‐appliance]<br />

[2] SerNet Appliance:<br />

[http:// www. enterprisesamba. org/​<br />

samba4ad/ samba‐4‐appliance]<br />

[3] Univention Corporate Server:<br />

[http:// www. univention. de/ produkte/ ucs]<br />

[4] <strong>Samba</strong> Download:<br />

[http:// www. samba. org/ samba/ download]<br />

[5] <strong>Samba</strong> Whitepaper: [https:// wiki. samba.​<br />

org/ index. php/ <strong>Samba</strong>_4. 0_Whitepaper]<br />

[6] Remoteserver-Verwaltungstools für <strong>Windows</strong><br />

7 mit Service Pack 1 (SP1): [http://​<br />

www. microsoft. com/ de‐de/ download/​<br />

details. aspx? id=7887]<br />

[7] Remoteserver-Verwaltungstools für <strong>Windows</strong><br />

8: [http:// www. microsoft. com/ de‐de/​<br />

download/ details. aspx? id=28972]<br />

[8] <strong>Samba</strong> Howto: [https:// wiki. samba. org/​<br />

index. php/ <strong>Samba</strong>4/ HOWTO]<br />

Der Autor<br />

Thomas Joos ist freiberuflicher IT-Consultant <strong>und</strong><br />

seit über 20 Jahren in der IT tätig. Neben seinen<br />

Projekten schreibt er praxisnahe Fachbücher<br />

<strong>und</strong> Fachartikel r<strong>und</strong> um <strong>Windows</strong> <strong>und</strong> andere<br />

Microsoft-Themen. Online trifft man ihn unter<br />

[http:// thomasjoos. spaces. live. com].<br />

IPTAM ® PBX VoiP Telefonanlage<br />

mit bester ISDN-Integration<br />

Kinderleichte Administration<br />

n per CD auf einem Server<br />

Ihrer Wahl<br />

n oder als Fertiggerät<br />

(Appliance)<br />

n Vorbildliche Dokumentation:<br />

www.iptam.com/wiki/<br />

Ausgereifte Funktionalität<br />

n Bequeme Bedienung<br />

über Web-Oberfläche<br />

n Einspielen von Patches,<br />

Lizenzerweiterung, ISDN-<br />

Konfiguration mit 3 Klicks<br />

n Und natürlich alle gängigen<br />

Funktionen: Voicemail, Instant<br />

Messaging Server, Fax-Server,<br />

Konferenzräume, Warteschlangen,<br />

Sprachmenüs, Klingelgruppen,<br />

Durchsagefunktion, Konfiguration<br />

der Telefone über die Anlage ....<br />

selber<br />

testen!<br />

Die IPTAM PBX 5<br />

kostenlos<br />

downloaden:<br />

www.iptam.com<br />

Demosystem<br />

online testen:<br />

www.iptam.com/demo<br />

www.admin-magazin.de<br />

www.iptam.com<br />

Ausgabe 02-2013<br />

45


Schwerpunkt<br />

<strong>Samba</strong>-Domäne<br />

© srapulsar38, 123RF<br />

Wie man <strong>Samba</strong> als Domänencontroller konfiguriert<br />

<strong>Samba</strong> senkt<br />

Verwaltungskosten<br />

Eine der wichtigsten Funktionen von <strong>Samba</strong> ist die eines Domänencontrollers. Gegenüber einer reinen <strong>Windows</strong>-<br />

Lösung spart <strong>Samba</strong> Lizenzkosten <strong>und</strong> hat den Nebeneffekt, dass die Benutzer sich auch von <strong>Linux</strong>- oder OS X-<br />

Clients aus anmelden können. Wie eine solche Installation funktioniert, erklärt dieser Beitrag. Stafan Kania<br />

01 [global]<br />

02 workgroup = <strong>ADMIN</strong>DOM<br />

Listing 1: PDC-Einstellungen<br />

03 server string = \%h <strong>Samba</strong> Admin‐<strong>Magazin</strong><br />

04 netbios name = Admin‐<strong>Magazin</strong><br />

05 domain master = yes<br />

06 domain logons = yes<br />

07 os level = 99<br />

Sehr oft kommt <strong>Samba</strong> als Domänencontroller<br />

in einer heterogenen Umgebung<br />

zum Einsatz, wo es die Benutzer <strong>und</strong><br />

Gruppen einer Domäne zentral verwaltet.<br />

Dabei können dem <strong>Samba</strong>-Server<br />

verschiedene Rollen übertragen werden,<br />

über die man sich zuallererst klar werden<br />

sollte: Er lässt sich als Pr<strong>im</strong>ärer Domänencontroller<br />

(PDC), als Backup Domänencontroller<br />

(BDC) oder als Fileserver<br />

konfigurieren.<br />

Für die Planung einer <strong>Samba</strong>-Umgebung<br />

ist zweitens das Passdb-Backend entscheidend.<br />

Dabei geht es um verschiedene<br />

Datenbanken, die die Benutzerinformationen<br />

speichern. Für sie gibt es<br />

drei Möglichkeiten:<br />

1. »smbpasswd«: Bei dem Smbpasswd-<br />

Backend handelt es sich um eine ASCII-<br />

Textdatei, die alle Benutzerinformationen<br />

aufn<strong>im</strong>mt. Dieses Backend sollte man<br />

heute nicht mehr benutzen, denn es hat<br />

verschiedene Nachteile – so sind zum<br />

Beispiel <strong>im</strong>mer nur schreibende Zugriffe<br />

gleichzeitig möglich.<br />

2. »tdbsam«: Das Tdbsam-Backend ist<br />

das Standard-Backend nach der <strong>Samba</strong>-<br />

Installation <strong>und</strong> ist auf jeden Fall ausreichend,<br />

wenn nur ein PDC einzurichten<br />

ist <strong>und</strong> nicht mehr als 250 Benutzer zu<br />

verwalten sind. Da die Replikation auf<br />

einen anderen Server aber nicht so einfach<br />

ist, ist die Einrichtung eines BDCs<br />

kompliziert <strong>und</strong> auch recht unsicher.<br />

3. »ldapsam«: Das Ldapsam-Backend unterliegt<br />

keiner Größenbeschränkung <strong>und</strong><br />

es lassen sich beliebig viele BDCs eingerichten.<br />

Allerdings braucht man dafür<br />

auf jeden Fall eine LDAP-Infrastruktur.<br />

Dafür ist das Backend dann aber auch<br />

so flexibel, dass selbst <strong>Linux</strong>- <strong>und</strong> OS-<br />

X-Clients die Authentifizierung zentral<br />

abwickeln können.<br />

Der vorliegende Artikel beschränkt sich<br />

auf das Tdbsam-Backend <strong>und</strong> erklärt nur<br />

46 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong>-Domäne<br />

Schwerpunkt<br />

Abbildung 1: Darstellung der globalen Parameter <strong>im</strong> SWAT.<br />

Die Ausgaben von »testparm« zeigen<br />

auch, dass der <strong>Samba</strong>-Server jetzt die<br />

Rolle des PDCs übern<strong>im</strong>mt. Damit ist<br />

die Gr<strong>und</strong>konfiguration des PDCs abgeschlossen.<br />

Im nächsten Schritt geht es darum,<br />

die Voraussetzungen für den Betrieb<br />

als Domänencontroller herzustellen.<br />

Neben der Möglichkeit, die Parameter mit<br />

einem Editor direkt in die Datei »smb.<br />

conf« zu schreiben, bringt <strong>Samba</strong> das<br />

webbasierte Tool SWAT mit. Mithilfe dieses<br />

Tools kann die gesamte Konfiguration<br />

auch grafisch durchgeführt werden. Ist<br />

zusätzlich zum SWAT auch noch das Paket<br />

»samba‐doc« installiert, ist zu jedem<br />

Parameter auch eine Hilfe verfügbar. Der<br />

SWAT bringt einen eigenen Web-Server<br />

mit, der aber nicht selbstständig gestartet<br />

werden kann. Der SWAT benötigt<br />

<strong>im</strong>mer den »xinetd« für den Start <strong>und</strong><br />

der wiederum braucht eine passende<br />

Konfigurationsdatei. Die muss dann in<br />

dem Verzeichnis »/etc/xinetd.d« abgelegt<br />

werden. Listing 3 zeigt diese Konfigurationsdatei.<br />

Der Parameter »only_from« muss an die<br />

eigene Umgebung angepasst oder ganz<br />

aus der Konfiguration entfernt werden.<br />

Dieser Parameter regelt den Zugriff<br />

am Ende, welche Änderungen vorzunehmen<br />

sind, um einen PDC <strong>und</strong> einen BDC<br />

zusammen mit einem LDAP-Server zu<br />

betreiben.<br />

PDC-Einstellungen<br />

Die gesamte Konfiguration des <strong>Samba</strong>-<br />

Servers landet <strong>im</strong>mer in der Datei »/etc/<br />

samba/smb.conf«. Um den <strong>Samba</strong>-Server<br />

als PDC zu konfigurieren, bedarf es dort<br />

der Einstellungen aus Listing 1. Neben<br />

diesen Parametern kann man auch gleich<br />

die ersten Freigaben eintragen.<br />

Ein wichtiger Parameter ist der NetBios-<br />

Name der <strong>Windows</strong>-Domäne, den der<br />

Parameter »workgroup = <strong>ADMIN</strong>DOM«<br />

definiert. Der Parameter »server string<br />

= \%h <strong>Samba</strong> Admin‐<strong>Magazin</strong>« erzeugt<br />

einen Kommentar in der Netzwerkumgebung<br />

der <strong>Windows</strong>-Clients. Die Variable<br />

»%h« übern<strong>im</strong>mt den NetBios-Name des<br />

PDCs, den der Eintrag »netbios name =<br />

Admin‐<strong>Magazin</strong>« festlegt. Ist dieser Parameter<br />

nicht gesetzt, wird der Hostname<br />

des <strong>Linux</strong>-Systems als NetBios-Name<br />

verwendet.<br />

Der Parameter »domain master = yes«<br />

sorgt dafür, dass der <strong>Samba</strong>-Server als<br />

PDC fungiert. Setzt der Admin diesen<br />

Wert auf »no«, arbeitet der <strong>Samba</strong>-Server<br />

als BDC. Der Parameter »domain logons<br />

= yes« erlaubt das Anmelden von Benutzern.<br />

Er muss sowohl be<strong>im</strong> PDC als auch<br />

be<strong>im</strong> BDC auf »yes« gesetzt sein. Der<br />

Parameter »os level = 99« legt fest, wie<br />

viele Punkte der <strong>Samba</strong>-Server bei der<br />

Wahl des Master-Browsers in der Domäne<br />

hat. Mit einem Wert von »99« gewinnt<br />

der <strong>Samba</strong>-Server die Wahl <strong>im</strong>mer <strong>und</strong><br />

fungiert so <strong>im</strong>mer als Master-Browser.<br />

Hat man die Einträge in der »smb.conf«<br />

vorgenommen, sollte man die Datei auf<br />

jeden Fall auf Syntaxfehler prüfen. Das<br />

klappt mit dem Kommando »testparm« –<br />

wie, demonstriert Listing 2.<br />

Das Verfahren nach Listing 2 zeigt alle<br />

Parameter <strong>und</strong> auch etwaige Syntaxfehler<br />

an. Die Meldung zu »rl<strong>im</strong>it_max: ...« ist<br />

lediglich ein Hinweis, dass der Wert mit<br />

»1024« zu gering ist <strong>und</strong> nach oben korrigiert<br />

wurde. Diese Meldung kann der Tester<br />

einfach ignorieren. Wer sie dauerhaft<br />

loswerden will, findet Hinweise in [1].<br />

Listing 2: Syntaxcheck<br />

01 root@samba:~# testparm<br />

02 Load smb config files from /etc/samba/smb.conf<br />

03 rl<strong>im</strong>it_max: rl<strong>im</strong>it_max (1024) below min<strong>im</strong>um <strong>Windows</strong><br />

l<strong>im</strong>it (16384)<br />

04 Loaded services file OK.<br />

05 Server role: ROLE_DOMAIN_PDC<br />

06 Press enter to see a dump of your service definitions<br />

07 <br />

08 [global]<br />

09 workgroup = <strong>ADMIN</strong>DOM<br />

10 netbios name = <strong>ADMIN</strong>‐MAGAZIN<br />

11 server string = \%h <strong>Samba</strong> Admin‐<strong>Magazin</strong><br />

12 domain logons = Yes<br />

13 os level = 99<br />

14 domain master = Yes<br />

Listing 3: SWAT-Konfiguration<br />

01 service swat<br />

02 {<br />

03 port = 901<br />

04 socket_type = stream<br />

05 wait = no<br />

06 only_from = 192.168.123.2<br />

07 user = root<br />

08 server = /usr/sbin/swat<br />

09 log_on_failure += USERID<br />

10 disable = no<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

47


Schwerpunkt<br />

<strong>Samba</strong>-Domäne<br />

auf den SWAT. Nach dem Neustart des<br />

»xinetd« lässt sich SWAT über »http://<br />

IP‐des‐<strong>Samba</strong>‐Servers:901« erreichen. In<br />

Abbildung 1 wird der »global«-Bereich<br />

der »smb.conf« dargestellt.<br />

Einrichten von Gruppen<br />

In der <strong>Windows</strong>-Welt gibt es best<strong>im</strong>mte<br />

Gruppen, die auf jeden Fall benötigt werden,<br />

um eine Domäne zu verwalten. Die<br />

Listing 5: Erforderliche Mappings<br />

01 root@samba:~# net groupmap list verbose<br />

02 Domaincomputer<br />

Listing 4: Group Mappings<br />

01 root@samba:~# groupadd domadmins<br />

02 <br />

03 root@samba:~# net groupmap add ntgroup="Domainadmins"<br />

rid=512<br />

04 unixgroup=domadmins type=d<br />

05 Successfully added group Domainadmins to the mapping<br />

db as a domain group<br />

06 <br />

07 root@samba:~# net groupmap list verbose<br />

08 Domainadmins<br />

09 SID : S‐1‐5‐21‐2851015207‐2192045402‐8860768<br />

09‐512<br />

10 Unix gid : 1001<br />

11 Unix group: domadmins<br />

12 Group type: Domain Group<br />

13 Comment : Domain Unix group<br />

03 SID : S‐1‐5‐21‐2851015207‐2192045402‐8860768<br />

09‐515<br />

04 Unix gid : 1004<br />

05 Unix group: domcomputer<br />

06 Group type: Domain Group<br />

07 Comment : Domain Unix group<br />

08 Domainadmins<br />

09 SID : S‐1‐5‐21‐2851015207‐2192045402‐8860768<br />

09‐512<br />

10 Unix gid : 1001<br />

11 Unix group: domadmins<br />

12 Group type: Domain Group<br />

13 Comment : Domain Unix group<br />

14 Domainbenutzer<br />

15 SID : S‐1‐5‐21‐2851015207‐2192045402‐8860768<br />

09‐513<br />

16 Unix gid : 1002<br />

17 Unix group: dombenutzer<br />

18 Group type: Domain Group<br />

19 Comment : Domain Unix group<br />

20 Domaingaeste<br />

21 SID : S‐1‐5‐21‐2851015207‐2192045402‐8860768<br />

09‐514<br />

22 Unix gid : 1003<br />

23 Unix group: domgaeste<br />

24 Group type: Domain Group<br />

25 Comment : Domain Unix group<br />

Tabelle 1: Gruppen<br />

Tabelle 1 zeigt eine Übersicht aller vorkommenden<br />

Gruppen.<br />

Es gibt drei Gruppen, die unbedingt angelegt<br />

werden müssen. Eigentlich wäre<br />

dabei die Gruppe »Domänencomputer«<br />

nicht unbedingt erforderlich, es ist aber<br />

dennoch sinnvoll sie anzulegen, da später<br />

auch die Computerkonten <strong>im</strong> <strong>Samba</strong><br />

verwaltet werden sollen. Wichtig bei den<br />

Gruppen ist nicht der Name, sondern der<br />

RID (relative identifier). Der RID macht<br />

die Gruppe in der Domäne eindeutig <strong>und</strong><br />

wird bei jedem Objekt <strong>im</strong>mer an den SID<br />

der Domäne angehängt. Der SID einer<br />

Domäne kann mit dem Kommando »net<br />

getlocalsid« anzeigt werden. Die Gruppen<br />

»Domänenadmins« <strong>und</strong> »Domänenbenutzer«<br />

sind besonders wichtig, da diese<br />

später be<strong>im</strong> Hinzufügen eines Clients in<br />

die Domäne in die entsprechenden lokalen<br />

Gruppen auf dem Client eingefügt<br />

werden. Diese Zuordnung realisiert der<br />

RID.<br />

Im ersten Teil der Tabelle 1 befinden sich<br />

alle Gruppen die für die Domäne benötigt<br />

werden. Im zweiten Teil befinden sich<br />

die Builtin-Gruppen. Bei diesen Gruppen<br />

handelt es sich <strong>im</strong> <strong>Windows</strong>-System<br />

<strong>im</strong>mer um lokale Gruppen, die nur auf<br />

dem jeweiligen System gültig sind. Diese<br />

Gruppen müssen <strong>im</strong>mer dann angelegt<br />

werden, wenn der <strong>Samba</strong>-Server Mitglied<br />

einer <strong>Windows</strong>-Domäne oder Mitglied<br />

<strong>im</strong> Active Directory wird. Damit<br />

sich diese Gruppen anlegen lassen, muss<br />

unbedingt »winbind« konfiguriert <strong>und</strong><br />

gestartet sein.<br />

Bei den Domänengruppen handelt es sich<br />

<strong>im</strong>mer um Group Mappings. Ein Group<br />

Mapping verweist <strong>im</strong>mer auf eine existierende<br />

<strong>Linux</strong>-Gruppe, es stellt eine Verbindung<br />

zwischen der <strong>Linux</strong>-Welt <strong>und</strong><br />

der <strong>Windows</strong>-Welt her. Das Anlegen eines<br />

Group Mappings besteht daher aus<br />

zwei Schritten. Im ersten Schritt wird<br />

die <strong>Linux</strong>-Gruppe erzeugt <strong>und</strong> <strong>im</strong> zweiten<br />

Schritt das Mapping. Listing 4 zeigt<br />

das Anlegen des Group Mappings für die<br />

Gruppe der Domänenadmins:<br />

Im ersten Schritt wurde nur eine <strong>Linux</strong>-<br />

Gruppe erzeugt. Die dabei vergebene<br />

GID ist nicht relevant. Im zweiten Schritt<br />

kommt dann das Group Mapping hinzu.<br />

Hier kann man sehen, dass der RID »512«<br />

angegeben wurde, um die Gruppe auch<br />

<strong>im</strong> <strong>Windows</strong>-System eindeutig als die<br />

der Domänenadministratoren zu kennzeichnen.<br />

Schließlich kann die Liste aller<br />

Group Mappings mit »groupmap list<br />

verbose« angezeigt werden. Hier ist zu<br />

sehen, dass der Gruppen-SID sich aus<br />

dem Domänen-SID <strong>und</strong> dem RID zusammensetzt.<br />

So müssen jetzt alle weiteren benötigten<br />

Gruppen angelegt werden, auf jeden Fall<br />

aber die Gruppen Domänenbenutzer, Do-<br />

Gruppenname RID benötigt englische Bezeichnung<br />

Domänenadmins 512 Ja Domainadmins<br />

Domänenbenutzer 513 Ja Domainusers<br />

Domänengäste 514 Ja Domainguests<br />

Domänencomputer 515 Nein Domain Computers<br />

Domänencontroller 516 Nein Domain Controllers<br />

Domänen-Certificate-Administratoren 517 Nein Domain Certificate Admins<br />

Domänen-Schema-Administratoren 518 Nein Domain Schema Admins<br />

Domänen-Enterprise-Administratoren 519 Nein Domain Enterprise Admins<br />

Domänen-Policy-Administratoren 520 Nein Domain Policy Admins<br />

Builtin-Administratoren 544 Nein Administrators<br />

Builtin-Benutzer 545 Nein Users<br />

Builtin-Gäste 546 Nein Guests<br />

Builtin-Hauptbenutzer 547 Nein Power Users<br />

Builtin-Zugriffsoperator 548 Nein Account Operators<br />

Builtin-System-Operator 549 Nein Server Operators<br />

Builtin-Drucker-Operator 550 Nein Print Operators<br />

Builtin-Backup-Operator 551 Nein Backup Operators<br />

Builtin-Replikator 552 Nein Replicator<br />

Builtin-RAS-Server 553 Nein RAS Servers<br />

48 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong>-Domäne<br />

Schwerpunkt<br />

mänengäste <strong>und</strong> Domänencomputer mit<br />

den entsprechenden RIDs (das Ergebnis<br />

zeigt Listing 5). Erst danach kann es<br />

mit der Einrichtung der Domäne weitergehen.<br />

Später kann der Admin weitere<br />

Group Mappings – zum Beispiel globale<br />

Gruppen für die Vergabe von Rechten<br />

auf <strong>Windows</strong>-Systemen – einrichten, die<br />

er benötigt. Dabei braucht man keine<br />

RIDs anzugeben, die ermittelt das System<br />

dann selbstständig.<br />

Einrichten des<br />

Domainadministrators<br />

Nichts geht in einer <strong>Windows</strong>-Domäne<br />

ohne den Domänenadministrator, der<br />

wiederum best<strong>im</strong>mte Privilegien braucht,<br />

die ihm best<strong>im</strong>mte Systemrechte gewähren,<br />

wie zum Beispiel das Recht, Clients<br />

zur Domäne hinzuzufügen. Eine Übersicht<br />

über alle Privilegien zeigt die folgende<br />

Tabelle 2.<br />

Die Liste der Privilegien zeigt auch das<br />

Kommando »rpcclient localhost ‐U% ‐c<br />

enumprivs« auf dem <strong>Samba</strong>-Server an.<br />

Einerseits braucht der Domänenadministrator<br />

mindestens das Privileg »SeMachineAccountPrivilege«,<br />

andererseits kann<br />

nur ein Mitglied der Gruppe Domänenadministratoren<br />

Privilegien vergeben.<br />

Das bedeutet, der Domänenadministrator<br />

muss sich das Privileg selbst geben.<br />

Listing 6 zeigt, wie der Domänenadministrator<br />

dabei vorgehen muss.<br />

Im ersten Schritt wird der entsprechende<br />

<strong>Linux</strong>-Benutzer angelegt, denn auch hier<br />

muss es <strong>im</strong>mer einen <strong>Linux</strong>-Benutzer<br />

zum <strong>Samba</strong>-Benutzer geben, wie schon<br />

bei den Group Mappings. Ob der Administrator<br />

ein <strong>Linux</strong>-Passwort erhält, hängt<br />

davon ab, ob der Administrator sich später<br />

auch am <strong>Linux</strong>-System anmelden können<br />

soll. Wenn das nicht gewünscht ist,<br />

braucht er kein <strong>Linux</strong>-Passwort.<br />

Privileg<br />

Tabelle 2: Privilegien<br />

SeMachineAccountPrivilege<br />

SeTakeOwnershipPrivilege<br />

SeBackupPrivilege<br />

SeRestorePrivilege<br />

SeRemoteShutdownPrivilege<br />

SePrintOperatorPrivilege<br />

SeAddUsersPrivilege<br />

SeDiskOperatorPrivilege<br />

Bedeutung<br />

Im zweiten Schritt wird der <strong>Samba</strong>-Benutzer<br />

mit dem Kommando »pdbedit ‐a ‐u<br />

administrator ‐G 512 ‐c "[UX]"« angelegt.<br />

Hier ist es wichtig, dass auf jeden Fall mit<br />

»‐G 512« die Gruppe Domain admins als<br />

pr<strong>im</strong>äre Gruppe angeben wird. Die Flags<br />

»[UX]« legen fest, dass es sich um einen<br />

Benutzer (»U«) handelt <strong>und</strong> das Passwort<br />

nie abläuft (»X«).<br />

Im dritten Schritt wird mit »su ‐ administrator«<br />

die Identität des Benutzers »administrator«<br />

angenommen. Dann wird das<br />

Privileg »SeMachineAccountPrivilege« für<br />

ihn vergeben. Jetzt existiert ein Domänenadministrator,<br />

der später auch Clients<br />

in die Domäne aufnehmen kann.<br />

Einrichten von Benutzern in<br />

der Domäne<br />

Nachdem jetzt alle Voraussetzungen für<br />

den Betrieb einer Domäne geschaffen<br />

wurden, kann man nun damit beginnen,<br />

die Gruppen <strong>und</strong> die Benutzer einzurichten.<br />

Bei den Gruppen sollte der Admin<br />

dabei die folgenden Überlegungen anstellen:<br />

n Soll die Gruppe nur für die Vergabe<br />

von Berechtigungen auf diesem Host<br />

dienen? Dann ist lediglich eine <strong>Linux</strong>-<br />

Gruppe zu erzeugen, die <strong>Linux</strong>-Benutzer<br />

aufn<strong>im</strong>mt.<br />

n Soll die Gruppe dazu verwendet werden,<br />

um Benutzer zusammenzufassen<br />

<strong>und</strong> anschließend Berechtigungen<br />

auf einem anderen Fileserver in der<br />

Domäne zu vergeben? Dann spielt<br />

es keine Rolle, ob es sich um einen<br />

anderen <strong>Samba</strong>-Server oder einen<br />

<strong>Windows</strong>-Server handelt, es muss ein<br />

Group Mapping erzeugt werden. Alle<br />

weiteren Group Mappings können so<br />

angelegt werden, wie schon die Domänengruppen<br />

zur Vorbereitung der<br />

Domäne, nur das man jetzt den RID<br />

Hosts in Domäne aufnehmen<br />

Besitz an Verzeichnisseinträgen übernehmen<br />

Unabhängig von Berechtigungen Daten lesen<br />

Unabhängig von Berechtigungen Daten schreiben<br />

Systeme remote ausschalten<br />

Für den Verwalter des Printservers<br />

Benutzer <strong>und</strong> Gruppen hinzufügen <strong>und</strong> diese verwalten<br />

Rechtevergabe in <strong>Windows</strong>-Freigaben<br />

nicht vorgeben muss, er wird automatisch<br />

vergeben.<br />

Alle weiteren Benutzer legt der Admin<br />

mit »pdbedit« an (genau wie <strong>im</strong> Beispiel<br />

den Domänenadministrator). Alle Einstellungen<br />

der Benutzer <strong>im</strong> folgenden<br />

Listing 6: Privilegienvergabe<br />

01 root@samba:~# useradd ‐g domadmins ‐G users ‐m ‐s /<br />

bin/bash administrator<br />

02 <br />

03 root@samba:~# passwd administrator<br />

04 Geben Sie ein neues UNIX‐Passwort ein:<br />

05 Geben Sie das neue UNIX‐Passwort erneut ein:<br />

06 passwd: Passwort erfolgreich geändert<br />

07 <br />

08 root@samba:~# pdbedit ‐a ‐u administrator ‐G 512 ‐c<br />

"[UX]"<br />

09 new password:<br />

10 retype new password:<br />

11 Unix username: administrator<br />

12 NT username:<br />

13 Account Flags: [U ]<br />

14 User SID: S‐1‐5‐21‐2851015207‐2192045402‐88607<br />

6809‐1000<br />

15 Pr<strong>im</strong>ary Group SID: S‐1‐5‐21‐2851015207‐2192045402‐8<br />

86076809‐512<br />

16 Full Name:<br />

17 Home Directory: \\admin‐magazin\administrator<br />

18 HomeDir Drive:<br />

19 Logon Script:<br />

20 Profile Path: \\admin‐magazin\administrator\<br />

profile<br />

21 Domain: <strong>ADMIN</strong>DOM<br />

22 Account desc:<br />

23 Workstations:<br />

24 Munged dial:<br />

25 Logon t<strong>im</strong>e: 0<br />

26 Logoff t<strong>im</strong>e: 9223372036854775807 seconds since<br />

the Epoch<br />

27 Kickoff t<strong>im</strong>e: 9223372036854775807 seconds since<br />

the Epoche<br />

28 Passwort last set: Do, 03 Jan 2013 13:07:54 CET<br />

29 Passwort Caen change: Do, 03 Jan 2013 13:07:54 CET<br />

30 Passwort Muts change: never<br />

31 Last Bad Passwort : 0<br />

32 Bad password count : 0<br />

33 Login Ohrs : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />

FFFFFFF<br />

34 <br />

35 root@samba:~# su administrator<br />

36 administrator@samba:/root$ net rpc rights grant<br />

<strong>ADMIN</strong>DOM\\administrator SeMachineAccountPrivilege ‐S<br />

localhost<br />

37 Enter administrator's password:<br />

38 Successfully granted rights.<br />

39 <br />

40 administrator@samba:/root$ net rpc rights list<br />

<strong>ADMIN</strong>DOM\\administrator<br />

41 Enter administrator's password:<br />

42 SeMachineAccountPrivilege<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

49


Schwerpunkt<br />

<strong>Samba</strong>-Domäne<br />

Listing, lassen sich über Parameter be<strong>im</strong><br />

Anlegen ändern. Alle Parameter <strong>und</strong> deren<br />

Beschreibung werden sehr gut in der<br />

Manpage zum Kommando »pdbedit« erklärt.<br />

Listing 7 zeigt, wie man ein Group<br />

Mapping <strong>und</strong> einen Benutzer anlegt.<br />

Dieses Mal wurde bei dem Group Mapping<br />

der Name der <strong>Linux</strong>-Gruppe <strong>und</strong><br />

der Name des Group Mappings identisch<br />

vergeben, das macht keine Probleme.<br />

Auch wird der RID hier nicht vorgegeben,<br />

sondern vom System automatisch<br />

ermittelt. Der <strong>Linux</strong>-Benutzer hat kein<br />

Passwort erhalten, da sich dieser Benutzer<br />

später nicht auf dem <strong>Linux</strong>-System<br />

anmelden soll, sondern nur auf einem<br />

<strong>Windows</strong>-Client in der Domäne. Nach<br />

diesem Muster lassen sich jetzt weitere<br />

Gruppen <strong>und</strong> Benutzer anlegen.<br />

Die Gruppenmitgliedschaften der Benutzer<br />

regeln <strong>im</strong>mer die <strong>Linux</strong>-Gruppen, das<br />

Group Mapping sorgt dafür, dass die Mitglieder<br />

auch auf den <strong>Windows</strong>-System in<br />

der Domäne bekannt sind.<br />

Clients in der Domäne<br />

Damit sich <strong>Windows</strong>-Clients in die Domäne<br />

aufnehmen lassen, muss für jeden<br />

<strong>Windows</strong>-Client auch ein Konto in der<br />

Domäne existieren. Dieses Konto muss<br />

01 root@samba:~# groupadd autoren<br />

02 <br />

Listing 7: Weitere Benutzer <strong>und</strong> Gruppen anlegen<br />

03 root@samba:~# net groupmap add ntgroup="autoren"<br />

unixgroup=autoren type=d<br />

04 No rid or sid specified, choosing a RID<br />

05 Got RID 1001<br />

06 Successfully added group autoren to the mapping<br />

db as a domain group<br />

07 <br />

08 root@samba:~# useradd ‐g dombenutzer ‐G autoren<br />

‐m ‐s /bin/bash skania<br />

09 <br />

10 <br />

11 root@samba:~# useradd ‐g dombenutzer ‐G autoren<br />

‐m ‐s /bin/bash skania<br />

12 root@samba:~# pdbedit ‐a ‐u skania ‐G 513 ‐c<br />

"[U]" ‐f "Stefan Kania"<br />

13 new password:<br />

14 retype new password:<br />

15 Unix username: skania<br />

16 NT username:<br />

17 Account Flags: [U ]<br />

18 User SID: S‐1‐5‐21‐2851015207‐2192045402‐<br />

886076809‐1002<br />

19 Pr<strong>im</strong>ary Group SID: S‐1‐5‐21‐2851015207‐2192045<br />

Abbildung 2: Hinzufügen eines Clients zur Domäne.<br />

<strong>im</strong>mer den NetBios-Namen des <strong>Windows</strong>-Clients<br />

haben. Das Konto kann<br />

entweder für jeden Host von Hand oder<br />

über ein Skript automatisch angelegt werden,<br />

sobald ein Client in die Domäne<br />

aufgenommen wird. Will man die Konten<br />

von Hand anlegen, geht man so vor wie<br />

<strong>im</strong> Listing 8.<br />

402‐886076809‐513<br />

20 Full Name: Stefan Kania<br />

21 Home Directory: \\admin‐magazin\skania<br />

22 HomeDir Drive:<br />

23 Logon Script:<br />

24 Profile Path: \\admin‐magazin\skania\<br />

profile<br />

25 Domain: <strong>ADMIN</strong>DOM<br />

26 Account desc:<br />

27 Workstations:<br />

28 Munged dial:<br />

29 Logon t<strong>im</strong>e: 0<br />

30 Logoff t<strong>im</strong>e: 9223372036854775807 seconds<br />

since the Epoch<br />

31 Kickoff t<strong>im</strong>e: 9223372036854775807 seconds<br />

since the Epoch<br />

32 Password last set: Fr, 04 Jan 2013 11:14:33<br />

CET<br />

33 Password can change: Fr, 04 Jan 2013 11:14:33<br />

CET<br />

34 Password must change: never<br />

35 Last bad password : 0<br />

36 Bad password count : 0<br />

37 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />

FFFFFFFFFFFFF<br />

Der erste Schritt erzeugt ein <strong>Linux</strong>-Konto<br />

für den Client, so wie zuvor für einen<br />

Benutzer. Wichtig ist das Dollarzeichen<br />

hinter dem Namen, denn daran wird ein<br />

Clientkonto von einem Benutzerkonto<br />

unterschieden. Im zweiten Schritt wird<br />

dann wieder mit »pdbedit« das <strong>Samba</strong>-<br />

Konto angelegt. Wichtig ist dabei, hier<br />

den Gruppen-RID »515« <strong>und</strong> die Flags<br />

»[UW]« zu setzen. Dadurch wird auch<br />

für <strong>Windows</strong> klar, dass es sich hierbei um<br />

ein Client-Konto handelt.<br />

Die andere Möglichkeit, Clientkonten<br />

zu erzeugen, führt über ein Skript, das<br />

während des Beitritts eines Clients zur<br />

Domäne abläuft. Dieses Skript wird in<br />

die Datei »smb.conf« in den »[global]«-<br />

Bereich eingefügt:<br />

add machine script = /usr/sbin/useradd ‐d U<br />

/var/lib/nobody ‐g domcomputer ‐s /bin/2 Pt<br />

false ‐M %u<br />

Dann erstellt der <strong>Samba</strong>-Server die benötigten<br />

Konten selbstständig. Nach dem<br />

Beitritt zur Domäne lassen sich die Konten<br />

mit »getent passwd« <strong>und</strong> »pdbedit ‐L«<br />

auch auflisten. Wer <strong>Windows</strong> 7-Clients in<br />

die Domäne aufnehmen will, der muss<br />

übrigens vorher die Registry patchen.<br />

Hinweise dazu gibt es unter [2].<br />

Nachdem das Client-Konto erzeugt<br />

wurde, lässt sich der Client wie gewohnt<br />

in die Domäne aufnehmen. Abbildung 2<br />

zeigt diesen Vorgang.<br />

50 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong>-Domäne<br />

Schwerpunkt<br />

Nachdem der Benutzername <strong>und</strong> das<br />

Passwort betätigt wurden, kommt nach<br />

einiger Zeit die Meldung »Wilkommen<br />

in der Domäne <strong>ADMIN</strong>DOM«. Nach einem<br />

Neustart des System können sich die<br />

<strong>Samba</strong>-Benutzer anmelden.<br />

Home-Verzeichnisse zentral<br />

verwalten<br />

Für die Verwaltung der Benutzerverzeichnisse<br />

gibt es <strong>im</strong> <strong>Samba</strong> eine spezielle<br />

Freigabe, über die für jeden Anwender<br />

automatisch ein eigenes He<strong>im</strong>atverzeichnis<br />

auf dem Server erstellt wird. Zusätzlich<br />

lässt sich dann auch noch der Laufwerksbuchstabe<br />

festlegen, unter dem der<br />

Benutzer sein Verzeichnis <strong>im</strong> Explorer<br />

sehen kann.<br />

Als Erstes muss man die Freigabe, wie<br />

in Listing 9 zu sehen, in die »smb.conf«<br />

eintragen. Der Name der Freigabe muss<br />

»[homes]« lauten, damit <strong>Samba</strong> die He<strong>im</strong>atverzeichnisse<br />

zuordnen kann. In<br />

Listing 9 ist zu sehen, dass bei der Freigabe<br />

kein Pfad zu einem Verzeichnis angegeben<br />

wird. Ihn ermittelt <strong>Samba</strong> über<br />

die Benutzerinformationen selbstständig<br />

<strong>und</strong> gibt ihn dann für den Benutzer frei.<br />

Im Beispiel wird dann noch über weitere<br />

Parameter dafür gesorgt, dass nur der<br />

Besitzer Rechte an neuen Einträgen hat<br />

<strong>und</strong> auch keine Rechte an »others« vergeben<br />

kann.<br />

Anschließend lassen sich mit »pdbedit<br />

‐v ‐L Benutzer« die Eigenschaften eines<br />

Benutzerkontos anzeigen. Der Parameter<br />

»Home Directory« verweist bereits auf die<br />

entsprechende Freigabe auf dem Server.<br />

Fehlt nur noch der Parameter für »Home<br />

Drive« mit dem festgelegt werden kann,<br />

mit welchem Laufwerksbuchstaben das<br />

Benutzererzeichnis verb<strong>und</strong>en wird.<br />

Diesen Parameter setzt das Kommando<br />

»pdbedit ‐D "H:" Benutzer«. Wenn sich<br />

ein Benutzer jetzt auf einem Client in<br />

der Domäne anmeldet, verbindet ihn der<br />

Explorer automatisch mit seinem He<strong>im</strong>atverzeichnis<br />

<strong>und</strong> zeigt es an.<br />

Servergespeicherte Profile<br />

Neben der zentralen Verwaltung der<br />

Home-Verzeichnisse ist die Verwaltung<br />

der servergespeicherten Profile ein weiterer<br />

wichtiger Punkt bei der Benutzerverwaltung.<br />

Damit die Profile der Benutzer<br />

Wie auch unter <strong>Windows</strong> ist es in einer<br />

<strong>Samba</strong>-Domäne möglich, Kontenrichtlinen<br />

zu setzen, um die Passwortsicherheit<br />

zu erhöhen. Die Richtlinen werden hier<br />

wieder mit dem Kommando »pdbedit«<br />

geändert (Listing 10 zeigt die Änderung<br />

der Werte).<br />

Selbstverständlich lassen sich in einer<br />

<strong>Samba</strong>-Domäne auch Logon-Skripte verwenden.<br />

Dazu erzeugt man, wie unter<br />

<strong>Windows</strong> üblich, eine Batchdatei mit den<br />

entsprechenden Befehlen. Es empfiehlt<br />

sich die Batchdatei unter <strong>Windows</strong> anzentral<br />

verwaltet werden können, muss<br />

als Erstes geprüft werden, ob das Dateisystem,<br />

auf dem sich die Profile befinden,<br />

Access Control Lists (ACLs) unterstützt.<br />

Ohne ACLs funktionieren die servergespeicherten<br />

Profile nicht. Bei Suse sind<br />

bei allen Dateisystemen, die die Installation<br />

anlegt, die ACLs schon aktiviert.<br />

Bei Debian <strong>und</strong> Ubuntu muss der Parameter<br />

nachträglich in der Datei »fstab«<br />

eingestellt werden. Dazu wird die Datei<br />

»/etc/fstab« wie <strong>im</strong> folgenden Beispiel<br />

angepasst:<br />

UUID=ea1552d5‐9756‐4b13‐9b1d‐7e197e16e4b8U<br />

/ ext3 errors=remount‐ro,acl 0 1<br />

Anschließend wird das Dateisystem<br />

neu gemoutet. Das geschieht mit dem<br />

Kommando »root@samba:~# mount ‐o<br />

remount,rw /«. Anschließend sollten die<br />

aktivierten ACLs nach der Eingabe von<br />

»mount« zu sehen sein.<br />

Es ist sinnvoll, alle Dateisysteme, auf die<br />

von <strong>Windows</strong> aus zugegriffen werden<br />

soll, mit der Option »acl« zu mounten,<br />

denn dann lassen sich später in der Domäne<br />

über den Explorer eines <strong>Windows</strong>-<br />

Clients die Dateisystemrechte ändern.<br />

Legt man das Verzeichnis für die Profilfreigabe<br />

an, ist darauf zu achten, dass<br />

die Rechte so gesetzt sind, dass »others«<br />

alle Rechte hat. Sonst kann das Verzeichnis<br />

für das Profil nicht angelegt werden,<br />

wenn der Benutzer sich das erste Mal<br />

anmeldet. Jetzt braucht es noch eine Freigabe<br />

für die Profile <strong>und</strong> die Anpassung<br />

der Benutzer. Der folgende Konfigurationsausschnitt<br />

zeigt den Eintrag für die<br />

Freigabe in der Datei »smb.conf«:<br />

[profile]<br />

comment = Profil‐Dir der Benutzer<br />

path = /profile<br />

browsable = no<br />

read only = no<br />

profile acls = yes<br />

Wichtig bei dieser Freigabe ist der Parameter<br />

»profile acls = yes«, denn <strong>Windows</strong><br />

muss be<strong>im</strong> Anlegen des Profilverzeichnis<br />

best<strong>im</strong>mte ACL setzen, um den<br />

exklusiven Zugriff auf das Profil steuern<br />

zu können. Passt man jetzt noch mit dem<br />

Kommando »pdbedit ‐p '\\admin‐magazin\profile\Benutzer'<br />

Benutzer« den Eintrag<br />

in der Datenbank an, können die<br />

Benutzer ihre Profile zentral speichern.<br />

Neue Benutzer erhalten mit den Parameter<br />

»‐p« das richtige Profilverzeichnis.<br />

Listing 8: Konten anlegen<br />

01 root@samba:/# useradd ‐g domcomputer ‐s /bin/false<br />

'win7$'<br />

02 <br />

03 root@samba:/# pdbedit ‐a ‐m win7 ‐G 515 ‐c "[UW]" ‐p<br />

"" ‐h""<br />

04 Unix username: win7$<br />

05 NT username:<br />

06 Account Flags: [W ]<br />

07 User SID: S‐1‐5‐21‐2851015207‐2192045402‐88607<br />

6809‐1009<br />

08 Pr<strong>im</strong>ary Group SID: S‐1‐5‐21‐2851015207‐2192045402‐8<br />

86076809‐515<br />

09 Full Name:<br />

10 Home Directory:<br />

11 HomeDir Drive:<br />

12 Logon Script:<br />

13 Profile Path:<br />

14 Domain: <strong>ADMIN</strong>DOM<br />

15 Account desc:<br />

16 Workstations:<br />

17 Munged dial:<br />

18 Logon t<strong>im</strong>e: 0<br />

19 Logoff t<strong>im</strong>e: 9223372036854775807 seconds since<br />

the Epoch<br />

20 Kickoff t<strong>im</strong>e: 9223372036854775807 seconds since<br />

the Epoch<br />

21 Password last set: Sa, 05 Jan 2013 13:00:47 CET<br />

22 Password can change: Sa, 05 Jan 2013 13:00:47 CET<br />

23 Password must change: never<br />

24 Last bad Passwort : 0<br />

25 Bad password count : 0<br />

26 Login hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />

FFFFFFFF<br />

01 [homes]<br />

Listing 9: Freigabe eintragen<br />

02 comment = He<strong>im</strong>atverzeichnisse der Benutzer<br />

03 read only = no<br />

04 valid users = %S<br />

05 force create mode = 0700<br />

06 security mask = 0700<br />

07 force directory mode = 0700<br />

08 directory security mask = 0700<br />

09 inherit owner = yes<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

51


Schwerpunkt<br />

<strong>Samba</strong>-Domäne<br />

Listing 10: Kontenrichtlinien<br />

01 root@samba:/# pdbedit ‐P "max<strong>im</strong>um password age" ‐C<br />

7776000<br />

02 account policy "max<strong>im</strong>um password age" description:<br />

Max<strong>im</strong>um password age, in seconds (default: ‐1 =><br />

never expire passwords)<br />

03 account policy "max<strong>im</strong>um password age" value was:<br />

4294967295<br />

04 account policy "max<strong>im</strong>um password age" value is now:<br />

7776000<br />

05 <br />

06 root@samba:/# pdbedit ‐P "min password length" ‐C 5<br />

07 account policy "min password length" description:<br />

Min<strong>im</strong>al password length (default: 5)<br />

08 account policy "min password length" value was: 5<br />

09 account policy "min password length" value is now: 5<br />

10 <br />

11 root@samba:/# pdbedit ‐P "password history" ‐C 20<br />

12 account policy "password history" description: Length<br />

of Password History Entries (default: 0 => off)<br />

13 account policy "password history" value was: 0<br />

14 account policy "password history" value is now: 20<br />

15 <br />

16 root@samba:/# pdbedit ‐P "bad lockout attempt" ‐C 3<br />

17 account policy "bad lockout attempt" description:<br />

Lockout users after bad logon attempts (default: 0<br />

=> off)<br />

18 account policy "bad lockout attempt" value was: 0<br />

19 account policy "bad lockout attempt" value is now: 3<br />

20 <br />

21 root@samba:/# pdbedit ‐P "lockout duration" ‐C 180<br />

22 account policy "lockout duration" description:<br />

Lockout duration in minutes (default: 30, ‐1 =><br />

forever)<br />

23 account policy "lockout duration" value was: 30<br />

24 account policy "lockout duration" value is now: 180<br />

01 [NETLOGON]<br />

02 comment = Netlogon Freigabe<br />

03 path = /netlogon<br />

04 readonly = yes<br />

05 write list = administrator<br />

06 browsable = no<br />

Listing 11: Netlogon-Freigabe<br />

Listing 12: Verschachtelte Gruppen<br />

01 root@samba:~# net rpc group add localgroup ‐L<br />

‐Uadministrator<br />

02 Enter administrator's password:<br />

03 Added alias 'localgroup'.<br />

04 <br />

05 root@samba:~# net rpc group addmem localgroup<br />

domainbenutzer ‐Uadministrator<br />

06 Enter administrator's password:<br />

07 <br />

08 root@samba:~# net rpc group members localgroup<br />

‐Uadministrator<br />

09 Enter administrator's password:<br />

10 <strong>ADMIN</strong>DOM\Domainbenutzer<br />

zulegen, so geht man sicher, dass sie die<br />

passende Zeilenende-Kodierung hat. Anschließend<br />

muss man eine Freigabe wie<br />

in Listing 11 erstellen <strong>und</strong> die Batchdatei<br />

in die Freigabe kopieren.<br />

Die Freigabe wird nur read-only freigegeben,<br />

<strong>und</strong> nur der Domänenadministrator<br />

erhält explizit das Schreibrecht. Wichtig<br />

ist nur, dass die Benutzer für das Verzeichnis<br />

<strong>und</strong> die Batchdateien Lese- <strong>und</strong><br />

Ausführungsrechte haben.<br />

Es gibt zwei Möglichkeiten, das Batchskript<br />

den Benutzern zuzuweisen:<br />

Im ersten Fall verwendet man für alle<br />

Benutzer dasselbe Skript, in dem <strong>im</strong><br />

»[global]«-Bereich der Parameter »logon<br />

script = skriptname.bat« gesetzt ist. Dabei<br />

braucht hier nur der Dateiname ohne<br />

Pfad angegeben werden, da die Logonskripte<br />

relativ zur Freigabe NETLOGON<br />

gesucht werden. Die zweite Möglichkeit<br />

ist die, jedem Benutzer ein eigenes<br />

Logon-Skript zuzuweisen. Das realisiert<br />

das Kommando »pdbedit«. Dabei ist aber<br />

der komplette Pfad nötig: »pdbedit ‐S '\\<br />

admin‐magazin\netlogon\scriptname.<br />

bat' Benutzer«.<br />

Konfiguration von Winbind<br />

Bis zu diesem Zeitpunkt ist der PDC alleine<br />

in der Domäne, <strong>und</strong> es gibt keinen<br />

weiteren <strong>Windows</strong> oder <strong>Samba</strong>-Server.<br />

Wenn die Domäne aber später durch einen<br />

weiteren <strong>Samba</strong>- oder <strong>Windows</strong>-Server<br />

erweitert werden soll, oder wenn man<br />

die verschachtelten Gruppen aus dem<br />

nächsten Abschnitt einsetzen möchte,<br />

dann ist der Dienst »winbind« nötig.<br />

Winbind ist ein eigenständiger Dienst,<br />

der aber Bestandteil von <strong>Samba</strong> ist. Sobald<br />

»winbind« zum Einsatz kommt,<br />

muss der Nameservice Caching Daemon<br />

»nscd« auf jeden Fall gestoppt werden,<br />

die beiden Dienste vertragen sich nicht!<br />

Bei Debian <strong>und</strong> Ubuntu ist Winbind ein<br />

Extra-Paket. Konfiguriert wird er ebenfalls<br />

via »smb.conf«. Für die Verwendung<br />

von Winbind ist der »[global]«-Bereich<br />

wie folgt zu erweitern:<br />

[global]<br />

winbind separator = +<br />

idmap uid = 10000‐20000<br />

idmap gid = 10000‐20000<br />

winbind enum users = yes<br />

winbind enum groups = yes<br />

winbind use default domain = yes<br />

Die beiden Parameter »idmap uid« <strong>und</strong><br />

»idmap gid« dienen dazu, die UIDs <strong>und</strong><br />

GIDs der <strong>Windows</strong>-Benutzer auf <strong>Linux</strong>-<br />

IDs zu mappen. Durch die beiden Parameter<br />

»winbind enum users« <strong>und</strong> »winbind<br />

enum groups« werden die Benutzer<br />

<strong>und</strong> Gruppen dann auch <strong>im</strong> System<br />

mit »getent passwd« <strong>und</strong> »getent group«<br />

sichtbar <strong>und</strong> können für die Vergabe von<br />

Rechten auf dem <strong>Linux</strong>-System verwendet<br />

werden.<br />

Extrawurst<br />

Normalerweise werden die Benutzer<br />

<strong>und</strong> Gruppen, die »winbind« aus einem<br />

<strong>Windows</strong>-System oder von einem anderen<br />

<strong>Samba</strong>-Server einbindet, in der Form<br />

»Domäne/Benutzer« dargestellt. Unter<br />

<strong>Linux</strong> kann »/« aber so nicht verwendet<br />

werden, weil das der Pfadtrenner<br />

ist. Deshalb ist es sinnvoll, den Slash<br />

mit dem Parameter »winbind separator<br />

= +« zu ersetzen. Überprüft man anschließend<br />

mit »testparm« die Syntax,<br />

erscheint die Warnung »'winbind separator<br />

= +' might cause problems with<br />

group membership.«. Diese Warnung ist<br />

nur dann von Relevanz, wenn man noch<br />

NIS einsetzt.<br />

Gibt es in einem Netzwerk nur eine<br />

Domäne, ist an Stelle des Parameters<br />

»winbind separator« auch der Parameter<br />

»winbind use default domain = yes«<br />

möglich. Dann wird der Domänenteil des<br />

Benutzers <strong>und</strong> der Gruppen abgeschnitten,<br />

<strong>und</strong> die Darstellung <strong>im</strong> System ist<br />

identisch mit der der lokalen Benutzer<br />

<strong>und</strong> Gruppen. Dabei ist darauf zu achten,<br />

dass die Namen eindeutig sind <strong>und</strong> nicht<br />

sowohl in der Domäne als auch lokal<br />

existieren. Werden mehrere Domänen<br />

verwendet oder werden Vertrauensstellungen<br />

zu anderen Domänen hergestellt,<br />

ist dieser Parameter nicht verwendbar, da<br />

die Benutzer sonst nicht eindeutig einer<br />

Domäne zuzuweisen sind.<br />

Verschachtelte Gruppen<br />

Unter <strong>Windows</strong> ist es üblich, die Benutzer<br />

auf dem Domänencontroller in<br />

Gruppen zusammenfassen <strong>und</strong> dann<br />

diese Gruppe auf einem Fileserver einer<br />

lokalen Gruppe zuzuordnen. Die lokalen<br />

Gruppen erhalten dann Rechte <strong>im</strong><br />

Dateisystem. Das funktioniert auch mit<br />

52 Ausgabe 02-2013 Admin www.admin-magazin.de


<strong>Samba</strong>-Domäne<br />

Schwerpunkt<br />

<strong>Samba</strong>, das Verfahren nennt sich hier<br />

Nested Groups. Damit es anwendbar ist,<br />

muss eine Domäne eingerichtet <strong>und</strong> Winbind<br />

muss konfiguriert sein. Dazu gehört<br />

auch, die Anpassung der Datei »/ etc/<br />

nsswitch.conf « in dieser Weise:<br />

passwd:<br />

group:<br />

compat winbind<br />

compat winbind<br />

Der »[global]«-Bereich in der »smb.conf«<br />

ist um die Zeile »winbind nested groups<br />

= yes« zu ergänzen. Dann lassen sich –<br />

wie in Listing 12 gezeigt – verschachtelte<br />

Gruppen einrichteten. Alle Schritte dafür<br />

obliegen dem Domänenadministrator.<br />

Der erste Schritt erzeugt mit dem Parameter<br />

»‐L« eine lokale Gruppe, in der<br />

dann die Domänengruppen als Mitglieder<br />

eingetragen werden. Der zweite Schritt<br />

fügt die Gruppe »domainbenutzer« als<br />

Mitglied zur Gruppe »localgroup« hinzu.<br />

Der dritte Schritt überprüft den Erfolg.<br />

Wenn jetzt die Gruppe »localgroup« <strong>im</strong><br />

Dateisystem Rechte erhält, haben alle<br />

Mitglieder der Gruppe »domainbenutzer«<br />

diese Rechte <strong>im</strong> Dateisystem.<br />

Da <strong>Linux</strong> verschachtelte Gruppen nicht<br />

unterstützt, zeigen »getent group« oder<br />

»wbinfo ‐g« die lokale Gruppe nicht an.<br />

Alle Aktionen mit der Gruppe brauchen<br />

<strong>im</strong>mer das Kommando »net rpc group«.<br />

Einrichten eines Ldapsam-<br />

Backend<br />

Wie schon eingangs versprochen, folgt<br />

jetzt noch die Konfiguration von LDAP als<br />

Passdb-Backend. Voraussetzung dafür ist<br />

ein funktionsfähiger LDAP-Server, in den<br />

das »samba.schema« eingeb<strong>und</strong>en ist,<br />

weil für die Benutzer zusätzlich zu den<br />

POSIX-Attributen jetzt noch die <strong>Samba</strong>-<br />

Attribute erzeugt werden müssen.<br />

Der große Vorteil von LDAP ist, dass die<br />

Benutzer <strong>und</strong> Gruppen nur noch einmal<br />

anlegt werden müssen. Die Benutzerverwaltung<br />

lässt sich dann mithilfe der<br />

Skriptesammlung »smbldap‐tools« durchführen<br />

oder aber grafisch zum Beispiel<br />

mit dem LDAP Account Manager, einem<br />

webbasiertem Werkzeug. Die aktuellen<br />

Pakete von »smbldap‐tools« sind unter<br />

[4] zu finden, der LDAP Account Manager<br />

unter [5]. Das Listing 13 zeigt,<br />

wie man den »[global]«-Bereich für die<br />

Verwendung von LDAP, sowohl auf dem<br />

PDC als auch auf allen BDCs anpasst,<br />

Jetzt verwendet <strong>Samba</strong> LDAP als Passdb-<br />

Backend. Damit <strong>Samba</strong> die Objekte auch<br />

<strong>im</strong> LDAP eintragen kann, muss man das<br />

Passwort für den LDAP-Administrator<br />

noch in die Datei »secrets.tdb« eintragen.<br />

Das erledigt das Kommando »smbpasswd<br />

‐W «. <strong>Samba</strong> erzeugt dann <strong>im</strong><br />

LDAP ein Objekt für die <strong>Samba</strong>-Domäne.<br />

Von dem Zeitpunkt an verwendet <strong>Samba</strong><br />

den LDAP-Server für die Benutzerverwaltung.<br />

Aussichten auf <strong>Samba</strong> 4<br />

Mit der <strong>im</strong> Dezember veröffentlichten<br />

Version 4 von <strong>Samba</strong> ändert sich einiges.<br />

Damit lässt sich nicht nur ein Pr<strong>im</strong>ary<br />

oder Backup Domain Controller einrichten,<br />

sondern auch ein Active Directory<br />

Domänencontroller. Auch kann man<br />

<strong>Samba</strong> 4 als zusätzlichen AD-Controller<br />

einrichten. Es ist sogar möglich, eine<br />

ganze Active-Directory-Struktur ohne<br />

die Verwendung eines<br />

<strong>Windows</strong>-Domä-<br />

Anzeige<br />

nencontrollers aus<br />

dem Hause Microsoft<br />

einzurichten. Dazu<br />

bringt <strong>Samba</strong> 4 einen<br />

eigenen LDAP-Server<br />

mit, der alle Objekte<br />

verwaltet.<br />

Das Management der<br />

Benutzer <strong>und</strong> Gruppen<br />

lässt sich auch<br />

damit über die von<br />

Microsoft bereitgestellten<br />

<strong>Windows</strong><br />

Remote Server Administration<br />

Tools<br />

bewerkstelligen. Für<br />

die Tools wird lediglich<br />

einen <strong>Windows</strong> 7<br />

Rechner benötigt. Die<br />

Software lässt sich<br />

kostenlos unter [3]<br />

herunterladen.<br />

Eine einfache Möglichkeit,<br />

sich mit den<br />

neuen Funktionen<br />

von <strong>Samba</strong> 4 vertraut<br />

zu machen, ist eine<br />

von der Firma SerNet<br />

angepasste Debian-<br />

Distribution. Sie liegt<br />

diesem <strong>ADMIN</strong>-Heft<br />

als CD bei. (jcb) n<br />

Infos<br />

[1] Warnmeldung ausschalten:<br />

[http:// www. gtkdb. de/ index_7_1240. html]<br />

[2] Registry patchen: [http:// wiki. samba. org/​<br />

index. php/ <strong>Windows</strong>7]<br />

[3] Remote Server Administration Tools:<br />

[http:// www. microsoft. com/ download/ en/​<br />

details. aspx? id=7887]<br />

[4] SMB-LDAP-Tools: [http:// sourceforge. net/​<br />

projects/ smbldap‐tools]<br />

[5] LDAP Account Manager:<br />

[https:// www. ldap‐account‐manager. org]<br />

Listing 13: LDAP-Anpassung<br />

01 passdb backend = ldapsam:ldap://samba.example.net<br />

02 ldap admin dn = cn=admin,dc=example,dc=net<br />

03 ldap suffix = dc=example,dc=net<br />

04 ldap group suffix = ou=groups<br />

05 ldap machine suffix = ou=hosts<br />

06 ldap user suffix = ou=users<br />

07 ldap passwd sync = yes<br />

08 ldap ssl = no<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

53


Schwerpunkt<br />

UCS <strong>und</strong> SerNet Appliance<br />

<strong>Samba</strong>-4-Appliances von SerNet <strong>und</strong> Univention<br />

Kuckucksnest<br />

Kurz nachdem das <strong>Samba</strong>-Team Anfang Dezember 2012 die finale Version<br />

von <strong>Samba</strong> 4 fertigstellt hatte, haben die Firmen SerNet <strong>und</strong> Univention<br />

das neue <strong>Samba</strong> in ihre Produkte integriert. Mit deren Hilfe lässt sich ein<br />

auf <strong>Samba</strong> 4 basierender Active Directory Domänen Controller auf einfache<br />

Weise aufbauen <strong>und</strong> testen. Thomas Drilling<br />

<strong>Samba</strong> 4 ist aufgr<strong>und</strong> der neuen Active-<br />

Directory-Funktionalität ein für die gesamte<br />

IT-Welt wichtiger Meilenstein.<br />

Zwar widmet sich <strong>Samba</strong> ursprünglich<br />

<strong>und</strong> in erster Linie der Bereitstellung<br />

von Datei- <strong>und</strong> Druckdiensten über das<br />

SMB/​CIFS-Protokoll auf einem <strong>Linux</strong>-Server,<br />

die bedeutendste neue Funktion in<br />

<strong>Samba</strong> 4 gilt aber den Authentifizierungsdiensten.<br />

So kann ein <strong>Linux</strong>-Server mit<br />

<strong>Samba</strong> 4 ohne Microsoft-Zutaten einen<br />

Active-Directory-Verzeichnisdienst für<br />

eine <strong>Windows</strong>-Domäne zur Verfügung<br />

stellen.<br />

Der Univention Corporate Server verwendet<br />

in der seit Dezember verfügbaren<br />

Version 3.1 [1] die <strong>Samba</strong>-4-Version<br />

4.0rc6, die von den Univention-Entwicklern<br />

in direkter Zusammenarbeit mit<br />

dem <strong>Samba</strong>-Team aus der Version 4.0rc1<br />

kontinuierlich weiterentwickelt wurde.<br />

Die in Univentions Corporate Server für<br />

Datei- <strong>und</strong> Druckdienste oder be<strong>im</strong> Einsatz<br />

des UCS als NT-Domänen-Controller<br />

ebenfalls enthaltene <strong>Samba</strong>-3-Version<br />

ist auf dem Stand von <strong>Samba</strong> 3.6.8. Die<br />

<strong>Samba</strong>-4-Implementation in der aktuellen<br />

Version 0.6 der SerNet-<strong>Samba</strong>-Appliance<br />

[2] entspricht der stabilen <strong>Samba</strong>-Version<br />

4.0 [3].<br />

<strong>Samba</strong>-4-Struktur<br />

Eine <strong>Samba</strong>-Domäne besteht aus mindestens<br />

einem auf <strong>Samba</strong> 4 basierenden<br />

Domänen-Controller, dessen Vertrauenskontext<br />

<strong>Windows</strong>-Clients als Mitglieder<br />

beitreten können. Bei Univention kann<br />

das außerdem noch ein so genannter<br />

UCS-Memberserver tun. Das geht deshalb,<br />

weil Univention in seinem Corporate<br />

Server <strong>Samba</strong>-4- <strong>und</strong> <strong>Samba</strong>-3-<br />

Komponenten miteinander integriert. Ein<br />

UCS-Memberserver bietet selbst keine<br />

Anmeldedienste, aber beispielsweise<br />

Datei- oder Druckdienste auf Basis von<br />

<strong>Samba</strong> 3, wobei die Anmeldung an einem<br />

UCS-Memberserver <strong>im</strong>mer über die UCS-<br />

Anmeldedaten erfolgt.<br />

UCS 3.1<br />

Die Bremer Univention GmbH gehört zu<br />

den Early Adopters [4] von <strong>Samba</strong> 4,<br />

das es bereits seit über einem Jahr in<br />

seinem auf Debian 6 basierenden Univention<br />

Corporate Server (UCS) integriert.<br />

Dabei bescheinigen die Bremer der<br />

verwendeten <strong>Samba</strong>-4-Version aufgr<strong>und</strong><br />

umfangreicher Tests, fit für den Produktiveinsatz<br />

zu sein. Univention bietet<br />

neben dem Active-Directory-zu-<strong>Samba</strong>-<br />

4-Migrationswerkzeug „Univention AT<br />

Takeover“ mit seinem Active Directory<br />

Connector [5] auch die Möglichkeit eines<br />

Parallel-Betriebs mit existierenden<br />

Active-Directory-Diensten auf Basis<br />

von Microsoft <strong>Windows</strong>, was auch eine<br />

schrittweise Migration erlaubt. UCS 3.1<br />

verwendet übrigens einen <strong>Linux</strong>-Kernel<br />

3.2.30 <strong>und</strong> kann neben der Funktion als<br />

AD-Domänen-Controller auch zahlreiche<br />

andere Aufgaben als Small Business Server<br />

übernehmen.<br />

Wer das folgende Setup nachvollziehen<br />

möchte, findet unter [6] eine für den<br />

privaten Einsatz kostenlose, funktional<br />

aber nicht eingeschränkte Version des<br />

UCS. Das Ncurses-basierte Basis-Setup<br />

des als Appliance konzipierten UCS sollte<br />

jedem Admin binnen weniger Minuten<br />

von der Hand gehen, zumal das UCS-<br />

3.1-Handbuch wertvolle Unterstützung<br />

liefert.<br />

Demnach ist die Auswahl der Systemrolle<br />

»Domain Controller Master« für den<br />

UCS als Domänen-Controller,<br />

sowie für den <strong>Samba</strong>-Betrieb<br />

obligatorisch, denn <strong>Samba</strong>-4<br />

lässt sich ausschließlich<br />

auf einem UCS-Domänen-<br />

Controller (Domain Controller<br />

Master) installieren.<br />

Trotzdem bezieht sich die<br />

Auswahl der Rolle »Domain<br />

Controller Master« pr<strong>im</strong>är auf<br />

den UCS als »Domänen Controller«<br />

in Univentions eigenem, auf<br />

einer sogenannten UCS-Domäne basierenden<br />

Infrastruktur- <strong>und</strong> Identify-Management-Konzept,<br />

das auf OpenLDAP<br />

aufsetzt. Das tut <strong>Samba</strong> 4 zwar ebenfalls,<br />

hat OpenLDAP aber integriert.<br />

© Dmitriy Melnikov, 123RF<br />

56<br />

Ausgabe 02-2013<br />

Admin<br />

www.admin-magazin.de


UCS <strong>und</strong> SerNet Appliance<br />

Schwerpunkt<br />

Der UCS-Installer möchte <strong>im</strong> folgenden<br />

Schritt »Optionen« zuerst den vollständigen<br />

Rechnernamen wissen. Der Name<br />

will sorgfältig überlegt sein, weil der<br />

Installer aus diesem unmittelbar den Domänen-Namen<br />

für eine Active-Directory-<br />

Domäne ableitet (der FQDN abzüglich<br />

des Host-Anteils), ebenso wie Vorschläge<br />

für die LDAP-Basis <strong>und</strong> den Namen der<br />

»<strong>Windows</strong>‐Domäne«. Die Vorschläge für<br />

LDAP-Basis <strong>und</strong> »<strong>Windows</strong>‐Domäne« lassen<br />

sich wunschgemäß abändern, nicht<br />

aber der Name der AD-Domäne.<br />

Mit »<strong>Windows</strong>‐Domäne« meint der Univention-Installer<br />

den NetBIOS-Rechnernamen<br />

des Systems <strong>und</strong> speichert den<br />

Wert in der UCS-Configuration-Registry-<br />

Variable (UCR) »windows/domain«, unabhängig<br />

davon, ob der Admin <strong>im</strong> letzten<br />

Schritt »Software« des Installers überhaupt<br />

eine der Software-Komponenten<br />

für den <strong>Samba</strong>3- oder <strong>Samba</strong>-4-Betrieb<br />

auswählt. Ferner dient der NetBIOS-<br />

Name auch <strong>im</strong> Domänen-Betrieb als<br />

Arbeitsgruppen-Name.<br />

NetBIOS-Erbe<br />

Im Gegensatz zum AD-Domänen-Namen<br />

kann der NetBIOS-Rechnername nur max<strong>im</strong>al<br />

15 Zeichen umfassen. NetBIOS ist<br />

ein auf <strong>Windows</strong>-Systemen verwendetes<br />

Netzwerkprotokoll zur Namensauflösung<br />

<strong>und</strong> Netzwerkkommunikation,<br />

das seinerseits auf TCP/​IP aufsetzte <strong>und</strong><br />

von <strong>Samba</strong> 3 durch den Systemdienst<br />

»nmbd« abgebildet wird. Bei Univention<br />

entspricht der NetBIOS-Name eines UCS-<br />

Systems per Default auch dem UCS-Rechner-Namen.<br />

Ein abweichender NetBIOS-Name lässt<br />

sich bei Bedarf mithilfe der Univention<br />

Configuration-Registry-Variable »samba/<br />

netbios/name« als Alias konfigurieren.<br />

Eine native Active-Directory-Umgebung<br />

stellt übrigens keine NetBIOS-Dienste<br />

mehr zur Verfügung. Dass sie bei Univention<br />

auch in einer AD-Umgebung auf<br />

Basis von <strong>Samba</strong> 4 aktiviert sind, lässt<br />

sich über die Univention-Configuration-<br />

Registry-Variable »samba4/service/nmb«<br />

abändern.<br />

Im nächsten Schritt kümmert sich der<br />

Installations-Assistent um das per Default<br />

automatische, aber auch manuell<br />

mögliche Partitionieren. UCS verwendet<br />

per Default eine 500 MByte kleine<br />

Abbildung 1: Erst durch die Auswahl der passenden Software-Komponente wird der UCS zum Domänen-<br />

Controller, auch wenn der Installer schon vorher einen Domänen-Namen haben <strong>und</strong> speichern möchte.<br />

Boot-Partition <strong>und</strong> verteilt den Rest des<br />

zur Verfügung stehenden Platzes in einer<br />

LVM-Volume-Gruppe. Erst nach der<br />

Konfiguration des Boot-Loaders <strong>im</strong> Folgeschritt<br />

kann <strong>und</strong> muss der Amin gegebenfalls<br />

die Netzwerk-Konfiguration<br />

anpassen. Neben einer für den Produktiveinsatz<br />

zu empfehlenden statischen<br />

IPv4-Konfiguration gibt es die Möglichkeit,<br />

einen DNS-Fowarder einzutragen,<br />

was in Anbetracht der derzeit noch nicht<br />

zur Gänze behobenen DNS-Probleme von<br />

<strong>Samba</strong> 4 empfehlenswert ist.<br />

Ist das Netzwerk konfiguriert, kann<br />

sich der Administrator <strong>im</strong> Rahmen der<br />

Softwareauswahl <strong>im</strong> Schritt »Software«<br />

explizit um den Einsatz des UCS als Domänen-Controller<br />

kümmern. Der <strong>Samba</strong>-<br />

4-Betrieb setzt die Software-Komponente<br />

»Active Directory‐kompatibler Domänencontroller<br />

(<strong>Samba</strong>)« voraus. Alternativ<br />

oder zusätzlich steht auch die Komponente<br />

»NT‐kompatibler Domänencontroller<br />

(<strong>Samba</strong> 3)« zur Verfügung. Beide<br />

Komponenten lassen sich nachträglich<br />

<strong>im</strong> laufenden Betrieb durch Installieren<br />

der Pakete »univention‐samba« (<strong>Samba</strong><br />

3) beziehungsweise »univention‐samba4«<br />

(<strong>Samba</strong> 4) einspielen. Allerdings muss<br />

der Admin bei einer nachträglichen<br />

Installation anschließend das Kommando<br />

»univention‐run‐joinscripts« aufrufen.<br />

Auf UCS-Memberservern heißt die Installer-Komponente<br />

»<strong>Windows</strong> Memberserver<br />

(<strong>Samba</strong> 3 / <strong>Samba</strong> 4)«, die ebenfalls<br />

nachträglich durch Auswahl der Pakete<br />

»univention‐samba« <strong>und</strong> »winbind«<br />

installierbar ist. Die dritte Software-Komponente<br />

»Active Directory Connector« ist<br />

dafür gedacht, dass sich der UCS bidirektional<br />

oder unidirektional mit einer auf<br />

einem nativen Microsoft <strong>Windows</strong> Server<br />

betriebenen AD-Domäne synchronisiert<br />

(Abbildung 1). Univention empfiehlt außerdem,<br />

auf allen <strong>Samba</strong>-Domänen-Controllern<br />

die Signierung der NTP-Pakete zu<br />

aktivieren, weil die exakte Zeitsynchronisation<br />

für eine korrekte Authentifizierung<br />

via Kerberos essenziell ist.<br />

Der Univention Corporate Server pflegt<br />

<strong>und</strong> nutzt <strong>im</strong> Active-Directory-Betrieb<br />

zwei Verzeichnisdienste. Da die <strong>Samba</strong>-<br />

Benutzerkonten unter <strong>Samba</strong> 4 vollständig<br />

von <strong>Samba</strong> verwaltet werden, kümmert<br />

sich be<strong>im</strong> UCS der interne Systemdienst<br />

»univention‐S4‐connector« um das<br />

Synchronisieren zwischen dem auf Open-<br />

LDAP basierenden Verzeichnisdienst des<br />

UCS <strong>und</strong> <strong>Samba</strong>. Status-Informationen<br />

finden sich in der Log-Datei »/var/log/<br />

univention/connector‐s4.log«.<br />

Legt der Admin etwa mit <strong>Windows</strong>-<br />

Remote-Verwaltungswerkzeugen einen<br />

Benutzer <strong>im</strong> Active Directory (<strong>Samba</strong><br />

4) an, landet er automatisch auch <strong>im</strong><br />

OpenLDAP. Der »univention‐s4‐connector«<br />

wird übrigens bei Auswahl der<br />

Systemrollen »Domänencontroller Master«<br />

<strong>und</strong> »Domänencontroller Backup«<br />

über den Univention Installer automa-<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

57


Schwerpunkt<br />

UCS <strong>und</strong> SerNet Appliance<br />

tisch installiert. Wer die <strong>Samba</strong>-Pakete<br />

manuell installiert, muss auch das Paket<br />

»univention‐s4‐connector« manuell<br />

nachinstallieren. Die Konfiguration des<br />

AD-Domänen-Controllers <strong>im</strong> Univention<br />

Corporate Server ist damit insoweit abgeschlossen,<br />

dass es <strong>Windows</strong>-Clients<br />

möglich ist, der Active-Directory-Domäne<br />

beizutreten (Join).<br />

Möchte sich ein Benutzer <strong>im</strong> <strong>Samba</strong>-<br />

3-Betrieb an einer NT-Domäne anmelden,<br />

authentifiziert ihn UCS mit Benutzernamen<br />

<strong>und</strong> Passwort gegen seinen<br />

LDAP-Verzeichnisdienst. Auch Clients<br />

mit <strong>Windows</strong>-Betriebssystemen jeglicher<br />

Coleur (ab XP aufwärts) werden vom<br />

UCS wie in <strong>Windows</strong> NT-Domänen über<br />

das NTLMv2-Protokoll authentifiziert.<br />

Ist dagegen der <strong>Windows</strong>-Client, an dem<br />

sich der Benutzer anmelden möchte, mit<br />

einem <strong>Samba</strong>-4-Server „gejoint“, erhält er<br />

bei der Anmeldung ein Kerberos-Ticket,<br />

das dann für die weitere Authentifizierung<br />

zum Einsatz kommt <strong>und</strong> alleine für<br />

den Zugriff auf sämtliche Ressourcen der<br />

Domäne als Gr<strong>und</strong>lage dient.<br />

Weiterführende<br />

Konfiguration<br />

Aus praktischer Sicht ist die <strong>Samba</strong>-4-<br />

Konfiguration damit jedoch keinesfalls<br />

erledigt, denn der Admin muss sich <strong>im</strong><br />

Alltag auch um das Konfigurieren des<br />

Authentifizierungsdienstes <strong>im</strong> Detail sowie<br />

um Rechner/​Benutzer-Profile, Datei<strong>und</strong><br />

Druck-Dienste <strong>und</strong> speziell um das<br />

automatische Exportieren der He<strong>im</strong>at-<br />

Verzeichnisse der Benutzer kümmern.<br />

Eine weiterführende Auseinandersetzung<br />

sprengt allerdings den Rahmen dieses<br />

Beitrages. Dass der UCS auch in diesen<br />

Punkten umfassende Unterstützung über<br />

sein Management-Interface <strong>und</strong> über Systemvariablen<br />

bietet, ist lobenswert. Eine<br />

Bewertung würde aber der Zielsetzung<br />

der beiden Produkte nicht gerecht: UCS<br />

als für den Produktiv-Einsatz gedachter<br />

Small Business Server mit Active-<br />

Directory-Unterstützung gegenüber der<br />

<strong>Samba</strong>-Appliance von SerNet als reines<br />

<strong>Samba</strong>-4-Test-Setup.<br />

Die vom UCS zur Verfügung gestellten<br />

Dateidienste unterstützen bei Freigaben<br />

auf Basis von CIFS auch ACLs, sofern<br />

das darunter liegende Dateisystem des<br />

<strong>Samba</strong>-Servers diese ebenfalls unterstützt<br />

(Ext3, Ext4 <strong>und</strong> XFS). Dann lassen sich<br />

ACLs auch von <strong>Windows</strong>-Clients aus<br />

verwenden. <strong>Samba</strong> 4 kann Dateidienste<br />

wahlweise mit dem eigenen virtuellen<br />

Dateiserver NTVFS zur Verfügung stellen<br />

– was zwingend ein Dateisystem mit<br />

XATTR-Unterstützung voraussetzt – oder<br />

den eingebetteten <strong>Samba</strong>-3-Dateiserver<br />

S3FS verwenden.<br />

In der Praxis empfiehlt es sich aber ohnehin,<br />

Datei- <strong>und</strong> Druckdienste, sowie<br />

Authentifizierungsdienste voneinander<br />

zu trennen. Laufen Authentifizierungsdienste<br />

auf einem separaten auf <strong>Samba</strong> 4<br />

basierenden Domänen-Controller, neigen<br />

viele Admins, wie auch die Univention-<br />

Entwickler dazu, für den Datei- <strong>und</strong><br />

Druck-Server das seit Jahrzehnten ausgereifte<br />

<strong>Samba</strong> 3 zu verwenden. Damit ist<br />

unter anderem gewährleistet, dass hohe<br />

Last auf einem Dateiserver nicht zu Störungen<br />

<strong>im</strong> Anmeldedienst führt.<br />

<strong>Samba</strong>-4-Appliance von<br />

SerNet<br />

Die Göttinger SerNet GmbH ist ein auf<br />

Open Source <strong>und</strong> Sicherheit spezialisierter<br />

Systemintegrator, der sich insbesondere<br />

auf Dienstleistungen r<strong>und</strong> um<br />

<strong>Samba</strong> spezialisiert hat. SerNet entwickelt<br />

<strong>Samba</strong> <strong>im</strong> Zusammenarbeit mit<br />

dem <strong>Samba</strong>-Team aus eigenen Antrieb<br />

<strong>und</strong> <strong>im</strong> K<strong>und</strong>enauftrag weiter <strong>und</strong> ist<br />

außerdem der einzige Systemintegrator,<br />

der selbst Mitglieder des <strong>Samba</strong>-Core-<br />

Teams stellt. Die Göttinger haben unter<br />

anderem eine einfach einsetzbare, auf<br />

Debian basierende [7] <strong>Samba</strong>-Appliance<br />

entwickelt, mit der Admins die von der<br />

neuen <strong>Samba</strong>-Version 4 unterstützten<br />

Funktionen ebenfalls auf komfortable<br />

Weise testen können. Eine aktualisierte<br />

Version der SerNet-Appliance liegt diesem<br />

Heft bei.<br />

Während die auf der letztjährigen CeBIT<br />

erstmals gezeigte <strong>und</strong> seit Mai 2012 offiziell<br />

zum Download verfügbare Version<br />

0.1 noch auf der Preview von <strong>Samba</strong><br />

4 basierte, stellte SerNet seine <strong>Samba</strong>-<br />

Appliance kurz nach Freigabe der finalen<br />

<strong>Samba</strong>-Version 4.0 auf das stabile <strong>Samba</strong><br />

4 um. Die steht seit Dezember 2012 in<br />

der Version 0.6 mit stabilem <strong>Samba</strong>-4-<br />

Support zum Herunterladen zur Verfügung<br />

<strong>und</strong> ermöglicht das Aufsetzen eines<br />

Active-Directory-Domänen-Controllers<br />

auf Basis eines Debian-Servers mit wenigen<br />

Handgriffen. Zur diesjährigen CeBIT<br />

stellt SerNet eine erweiterte Version seiner<br />

Appliance vor, die auch Zarafa <strong>und</strong><br />

Opsi integriert. AD-Schema-Dateien für<br />

dem Zarafa-Support sind bereits in der<br />

Version 0.6 enthalten.<br />

Während <strong>Windows</strong>-Nutzer zum Einrichten<br />

eines Domänen-Controllers oder zum<br />

Heraufstufen eines gewöhnlichen <strong>Windows</strong>-Servers<br />

üblicherweise das grafische<br />

Werkzeug »dcpromo.exe« verwenden,<br />

müssen <strong>Samba</strong>-Nutzer normalerweise<br />

zur Kommandozeile greifen. Kernstück<br />

der <strong>Samba</strong>-Applicance von SerNet ist dagegen<br />

ein grafischer Assistent »dcpromo«<br />

zur <strong>Samba</strong>-4-Provisionierung, der sowohl<br />

Bestandteil der Installationsprozedur der<br />

Appliance ist, sich aber auch jederzeit<br />

nachträglich neu starten lässt, um etwa<br />

ein neues Setup aufzusetzen.<br />

Die SerNet-Appliance basiert auf Debian<br />

6 <strong>und</strong> setzt auf einen Kernel 3.2.0 von<br />

Debian-Backports mit Unterstützung für<br />

Microsoft Hyper-V. Die Appliance nutzt<br />

als Dateiserver den eingebetteten »S3FS«<br />

anstelle des <strong>Samba</strong>-4-eigenen »NTVFS«,<br />

der den SMB-Daemon aus <strong>Samba</strong> 3 innerhalb<br />

von <strong>Samba</strong> 4 startet, sodass auch<br />

<strong>Samba</strong>-3-Tools wie »smbpasswd«, »smbstatus«<br />

<strong>und</strong> »smbclient« weiter funktionieren.<br />

Das Verhalten entspricht der<br />

Voreinstellung von <strong>Samba</strong> 4. Ferner synchronisiert<br />

der interne NTP-Server von<br />

<strong>Samba</strong> 4 die Systemzeit, was insbesondere<br />

für die Kerberos-Authentifizierung<br />

unverzichtbar ist.<br />

Am schnellsten führt die automatische<br />

Installation mit dem gewohnten Debian-<br />

Installer zum Ziel. Die automatische<br />

Installation <strong>im</strong> Text-Modus überschreibt<br />

be<strong>im</strong> Partitionieren die gesamte Festplatte.<br />

Wird kein DHCP-Server gef<strong>und</strong>en,<br />

bietet der Installer das manuelle Konfigurieren<br />

des Netzwerkes an, was vor<br />

allem für den Produktiveinsatz wichtig<br />

ist. Zum Ende der Basis-Installation legt<br />

das Systeme den User »sernet« für die<br />

Appliance an <strong>und</strong> konfiguriert ihn per<br />

Default für ein automatisches Login nach<br />

dem Reboot. Wahlweise kann der Admin<br />

ein individuelles Passwort festlegen. Das<br />

Root-Passwort ist »root« <strong>und</strong> sollte nach<br />

dem ersten Login geändert werden.<br />

Danach startet der Installer das<br />

»dcpromo«-Skript zum Aufsetzen des<br />

Active-Directory-Domänen-Controllers.<br />

58 Ausgabe 02-2013 Admin www.admin-magazin.de


UCS <strong>und</strong> SerNet Appliance<br />

Schwerpunkt<br />

Das Tool lässt sich via Desktop-Icon<br />

auch nachträglich starten, um eine vollständige<br />

Neukonfiguration von Active<br />

Directory zu veranlassen. Mit den ersten<br />

drei Schritten erfragt das Skript den<br />

Hostnamen des Domänen-Controllers,<br />

per Default »DC«, sowie den vollständigen<br />

Realm, aus dem sich abzüglich des<br />

Hostnamens der AD-Domänen-Name<br />

ableitet. Den vorgeschlagenen NetBIOS-<br />

Namen erschließt »dcpromo« ebenfalls<br />

aus dem Realm.<br />

Anschließend fragt »dcpromo« nach einem<br />

Passwort für den administrativen<br />

Account »Administrator«. Danach bietet<br />

das Skript an, einen DNS-Forwarder für<br />

Anfragen zu setzen, die der <strong>Samba</strong>-4-<br />

interne DNS nicht beantworten kann.<br />

<strong>Samba</strong>-4 bringt neben dem erwähnten<br />

NTP-Server auch einen internen DNS-<br />

Dienst mit, der allerdings nach nach Aussage<br />

der SerNet-Experten bisher nicht<br />

<strong>im</strong>mer zuverlässig funktioniert.<br />

Zum Abschluss der Konfiguration listet<br />

»dcpromo« die Einstellungen für den Domänen-Controller<br />

auf, was <strong>im</strong> Falle einer<br />

Re-Konfiguration das Stoppen sämtlicher<br />

laufenden <strong>Samba</strong>-Dienste zur Folge hat<br />

(Abbildung 2). Anschließend konfiguriert<br />

das Skript alle nötigen <strong>Samba</strong>-Dienste<br />

mit den gewählten Daten. Nach Fertigstellung<br />

weist »dcpromo« die wichtigsten<br />

Domänen-Parameter »NetBIOS Domain«,<br />

»DNS Domain« <strong>und</strong> »DOMAIN SID« aus<br />

<strong>und</strong> startet den <strong>Samba</strong>-Dienst.<br />

Die Konfiguration des Domänen-Controllers<br />

ist damit zwar<br />

abgeschlossen <strong>und</strong> <strong>Windows</strong>7-<br />

Clients/​Nutzer können ab sofort<br />

der Domäne beitreten, das<br />

»dcpromo«-Skript bietet aber <strong>im</strong><br />

nächsten Schritt noch die Möglichkeit,<br />

die Zarafa-AD-Schema-<br />

Erweiterungen zu installieren.<br />

Wer plant, die Zarafa-Groupware<br />

auf der <strong>Samba</strong>-4-Maschine<br />

einzusetzen, sollte von der<br />

Möglichkeit Gebrauch machen,<br />

damit sich Zarafa-Nutzer später<br />

gegen das AD authentifizieren können.<br />

Join it<br />

Ist der Domänen-Controller einsatzbereit,<br />

kann der Admin mit einem geeigneten<br />

<strong>Windows</strong>-Client dem Vertrauenskontext<br />

der Domäne beitreten (Join). Für den<br />

Beitritt zur AD-Domäne geht der Admin<br />

genauso vor wie be<strong>im</strong> Anmelden an einer<br />

nativen Microsoft-Domäne. Hierzu klickt<br />

er unter »Systemsteuerung | System <strong>und</strong><br />

Sicherheit | System« bei »Einstellungen<br />

für Computernamen, Domäne <strong>und</strong> Arbeitsgruppe«<br />

auf »Einstellungen ändern«<br />

<strong>und</strong> gibt den FQDN der gewünschten AD-<br />

Domäne an (Realm). Ist der für das System<br />

aufgr<strong>und</strong> der gewählten Netzwerk-<br />

Konfiguration (siehe unten) erreichbar,<br />

erscheint ein Anmelde-Dialog für die<br />

Domäne, <strong>und</strong> der Admin kann sich mit<br />

Abbildung 2: Zum Abschluss gibt »dcpromo« eine Übersicht der<br />

gewählten Einstellungen.<br />

dem zuvor konfigurierten Administrator-<br />

Konto anmelden (Abbildung 3).<br />

Ein Join funktioniert allerdings nur dann<br />

zuverlässig <strong>und</strong> ohne weitere Konfiguration,<br />

wenn der Admin die IP-Adresse<br />

der SerNet-<strong>Samba</strong>-Appliance beziehungsweise<br />

des UCS als DNS-Server in<br />

der IP-Konfiguration des betreffenden<br />

Netzwerkadapters des Clients einstellt.<br />

Ein Blick ins »Netzwerk‐ <strong>und</strong> Freigabecenter«<br />

sollte bestätigen, dass der Join<br />

funktioniert hat.<br />

Nach einem Reboot kann sich der Admin<br />

als administrativer Benutzer an der<br />

Domäne anmelden. Be<strong>im</strong> Anmelden ist<br />

ein kleiner Trick erforderlich, wenn der<br />

Account »Administrator« auch für das<br />

lokale Konto existiert. Klickt der Admin<br />

nur auf »Benutzer wechseln ...«, um vom<br />

lokalen zum Domänen-Login zu gelangen,<br />

wechselt <strong>Windows</strong> be<strong>im</strong> Tippen<br />

Anzeige<br />

Management Circle Kongressmesse<br />

Special für Leser des <strong>ADMIN</strong>-<strong>Magazin</strong>s!<br />

€ 100,– Rabatt<br />

auf Ihre Kongressteilnahme<br />

(€ 895,– statt € 995,–)<br />

Ihr Kennwort: <strong>ADMIN</strong><br />

9. + 10. April 2013 in Frankfurt/M.<br />

Für IT <strong>und</strong> Fachabteilungen – Cloud Computing <strong>im</strong> Praxis-Check<br />

Programmdetails:<br />

Ihre Themenschwerpunkte:<br />

Architektur: Ihr sinnvoller Weg in die Private,<br />

Public oder Hybrid Cloud<br />

Integration: Harmonisierung in die<br />

bestehende IT-Landschaft<br />

Collaboration: Erfolgreiche Zusammenarbeit<br />

zwischen Fachabteilung & IT<br />

Security: Datenschutz, Datensicherheit,<br />

Kontrolle <strong>und</strong> Ausfallrisiko<br />

Recht: Sicher unsicher – rechtliche<br />

Rahmenbedingungen <strong>und</strong> Compliance<br />

Mobility: BYOD, Apps & Mobile CRM –<br />

Datenzugriff auch von unterwegs<br />

Veranstalter:<br />

Jetzt mit Kennwort anmelden <strong>und</strong> Rabatt sichern! www.world-of-cloud.de Hotline 0 61 96 / 47 22 - 600<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

59


Schwerpunkt<br />

UCS <strong>und</strong> SerNet Appliance<br />

ckelt <strong>und</strong> für den produktiven Einsatz<br />

getestet wurde. Ein direkter Vergleich der<br />

Produkte wäre sinnlos, weil UCS einen<br />

vollständigen, web-administrierbaren<br />

Small Business Server zur Verfügung<br />

stellt. Die SerNet-Appliance verwendet<br />

für das Zurverfügungstellen von Datei<strong>und</strong><br />

Druck-Diensten den eingebetteten<br />

<strong>Samba</strong>-3-Dateiserver S3FS, während Univention<br />

parallel <strong>Samba</strong> 3.6.8 für Dateidienste<br />

einsetzt. Ferner bietet Unvention<br />

ein Migrationswerkzeug von Microsoft-<br />

AD auf <strong>Samba</strong> 4 sowie einen Active Directory<br />

Connector für die Zusammenarbeit<br />

mit einem existenten Microsoft Domänen<br />

Controller. (ofr)<br />

n<br />

Abbildung 3: Läuft der <strong>Samba</strong>-Domain-Controller, können geeignete <strong>Windows</strong>-Clients dem Vertrauenskontext<br />

der Domäne beitreten.<br />

des letzten Buchstabens »r« wieder zum<br />

lokalen Anmelde-Dialog. Verwendet der<br />

Admin be<strong>im</strong> Benutzernamen stattdessen<br />

die Form »Domänenname\Administrator«,<br />

klappt auch das Domänen-Login.<br />

Außerdem steht <strong>im</strong> <strong>Windows</strong> Explorer<br />

unter »Netzwerk« jetzt die Funktion »Active<br />

Directory durchsuchen« zur Verfügung,<br />

mit der der Admin den Verzeichnisdienst<br />

gezielt nach »Benutzer, Kontakte,<br />

Gruppen«, »Computer«, »Drucker«, »Freigegebene<br />

Ordner« durchsuchen kann<br />

(Abbildung 4).<br />

Die weitere Konfiguration kann dann<br />

wahlweise mit den mit <strong>Samba</strong> 4 gelieferten<br />

Kommandozeilen-Werkzeugen oder<br />

mit den Standard-<strong>Windows</strong>-Administrationswerkzeugen<br />

erfolgen.<br />

Sowohl mit der SerNet-Applicance als<br />

auch mit Univentions Corporate Server<br />

lässt sich mit wenigen Handgriffen ein<br />

Active-Directory-Domänen-Controller auf<br />

<strong>Linux</strong>-Basis einrichten. Die SerNet Appliance<br />

ist für Testinstallationen gedacht<br />

<strong>und</strong> setzt auf die aktuelle, stabile <strong>Samba</strong><br />

Version 4.0. Univentions UCS verwendet<br />

die <strong>Samba</strong>-Version 4.0rc6, die von Univention<br />

seit Monaten in Zusammenarbeit<br />

mit dem <strong>Samba</strong>-Team aus den vorangegangenen<br />

Vorab-Versionen weiterentwi-<br />

Infos<br />

[1] UCS 3.1:<br />

[http:// www. univention. de/ produkte/ ucs/]<br />

[2] SerNet Appliance:<br />

[http:// www. sernet. de/ de/ nc/ samba/​<br />

samba/]<br />

[3] <strong>Samba</strong> 4: [http:// www. enterprisesamba. org]<br />

[4] <strong>Samba</strong> Early Adopters:<br />

[http:// www. sixmonthmba. com/ 2010/ 11/​<br />

become‐an‐early‐adopter. html]<br />

[5] Active-Directory-Connector:<br />

[http:// www. univention. de/ produkte/​<br />

ucs/ ucs‐komponenten/ windows/​<br />

ucs‐active‐directory‐connector]<br />

[6] UCS 3.1 „Free-for-Personal-Use“:<br />

[http:// www. univention.​<br />

de/ download‐<strong>und</strong>‐support/​<br />

free‐for‐personal‐use‐edition]<br />

[7] SerNet-Appliance Release-Notes:<br />

[http:// ftp. sernet. de/ pub/ samba4AD/​<br />

sernet‐samba4‐appliance/ README]<br />

Der Autor<br />

Thomas Drilling ist seit mehr als zehn Jahren<br />

hauptberuflich als freier Journalist <strong>und</strong> Redakteur<br />

für Wissenschafts- <strong>und</strong> IT-<strong>Magazin</strong>e<br />

tätig. Er verfasst regelmäßig Beiträge zu Open<br />

Source, <strong>Linux</strong>, Server, IT-Administration <strong>und</strong> Mac<br />

OS X. Außerdem arbeitet Thomas Drilling als<br />

Buchautor <strong>und</strong> Verleger, berät als IT-Consultant<br />

kleine <strong>und</strong> mittlere Unternehmen <strong>und</strong> hält Vorträge<br />

zu <strong>Linux</strong>, Open Source <strong>und</strong> IT-Sicherheit.<br />

Fazit<br />

Abbildung 4: Im Domänen-Betrieb kann der <strong>Windows</strong>-Explorer nach Objekten <strong>im</strong> AD suchen.<br />

60 Ausgabe 02-2013 Admin www.admin-magazin.de


Know-how<br />

RADOS <strong>und</strong> Ceph<br />

Der RADOS-Objectstore <strong>und</strong> Ceph, Teil 3<br />

Gesicherte<br />

Ablage<br />

Was bringt die neue Version 0.56<br />

alias „Bobtail“ an neuen Features?<br />

Wer braucht die Ceph-Verschlüsselung<br />

CephX? Wie lässt sich ein Ceph-Cluster<br />

als Ersatz für klassisches Block-Storage in virtuellen<br />

Umgebungen nutzen? Martin Loschwitz<br />

© ginasanders, 123RF<br />

Zugriffskontrolle auf vorhandene Storages<br />

ist ein wichtiges Thema. Wer den<br />

Nutzern maßgeschneiderten Speicher<br />

anbieten möchte, will umgekehrt meist<br />

auch sichergestellt wissen, dass Benutzer<br />

nicht auf den Speicher von anderen<br />

Zugriff haben. CephX ist in Ceph genau<br />

dafür da: Einerseits kümmert sich CephX<br />

darum, dass administrative Arbeiten nur<br />

von hierzu befugten Admins durchgeführt<br />

werden, andererseits regelt es den<br />

Zugriff auf den Speicher durch normale<br />

Benutzer. Allerdings hat die Sache einen<br />

Pferdefuß – während sich der Mechanismus<br />

noch einigermaßen leicht aktivieren<br />

lässt (in der neuen Version 0.56 genügen<br />

drei Zeilen in »/etc/ceph/ceph.conf«),<br />

macht ein aktives CephX viele alltägliche<br />

Aufgaben mit Ceph etwas umständlich.<br />

CephX <strong>im</strong> Alltag<br />

Ein gutes Beispiel ist der Befehl »ceph<br />

‐w«. Wer einen Ceph-Cluster nach der<br />

Anleitung der letzten zwei Workshop-<br />

Teile aufgesetzt hat, weiß, dass sich Ceph<br />

mit dem Parameter »‐w« Informationen<br />

über den aktuellen Zustand des Clusters<br />

sowie eventuelle Änderungen entlocken<br />

lässt. Ist CephX aktiv, geht das nicht mehr<br />

so leicht. Denn der Admin, der »ceph<br />

‐w« aufruft, muss sich selbst „ausweisen“<br />

<strong>und</strong> Ceph so mitteilen, dass er die Informationen<br />

auch tatsächlich sehen darf.<br />

Erschwerend kommt hinzu, dass die verschiedenen<br />

Kommandozeilen-Werkzeuge<br />

aus dem Ceph-Universum – »ceph«, »rbd«<br />

<strong>und</strong> »rados« teilweise unterschiedliche<br />

Parameter kennen, um CephX mit den<br />

entsprechenden Infos zu versorgen. Bei<br />

»ceph ‐w« geht es bei aktiviertem CephX<br />

jedenfalls so – unter der Prämisse, dass<br />

der zum Benutzer »client.admin« gehörende<br />

Keyring tatsächlich in »/etc/​ceph/​<br />

keyring.admin« liegt:<br />

ceph ‐‐id admin ‐‐keyring /etc/ceph/U<br />

keyring.admin ‐w<br />

Die Ausgabe gleicht danach haargenau<br />

der Ausgabe, die ohne CephX auch auf<br />

dem Bildschirm zu sehen wäre.<br />

Freilich ist der lange Befehl lästig – wer<br />

ihn nicht jedes Mal tippen will, kann<br />

die Schlüsselauswahl automatisieren:<br />

In »/etc/ceph/ceph.conf« lässt sich festlegen,<br />

wo der Keyring eines Benutzers<br />

lokalisiert ist. Der folgende Eintrag legt<br />

beispielsweise fest, dass der Keyring für<br />

»client.admin« <strong>im</strong> File »/etc/ceph/keyring.admin«<br />

zu finden ist:<br />

[client.admin]<br />

keyring = /etc/ceph/keyring.admin<br />

Abbildung 1: Bei CephFS-Mounts steht das Passwort nicht <strong>im</strong> Klartext in der Ausgabe von »mount«.<br />

Ceph n<strong>im</strong>mt <strong>im</strong> weiteren Verlauf an,<br />

dass als ID <strong>im</strong>mer »admin« zum Einsatz<br />

kommt, <strong>und</strong> würde be<strong>im</strong> s<strong>im</strong>plen Aufruf<br />

von »ceph ‐w« diese ID samt entsprechendem<br />

Keyring verwenden. Übrigens:<br />

62 Ausgabe 02-2013 Admin www.admin-magazin.de


Abbildung 2: Wer nachträglich die Berechtigungen eines Nutzers verändern will, tut das mittels des Keyring-<br />

Files in »/etc/ceph«.<br />

Dass Nutzer be<strong>im</strong> Angeben ihrer ID das<br />

vorangestellte »client.« weglassen können,<br />

ist eine Konvention <strong>im</strong> Hinblick auf<br />

CephX, die mit den Ceph-Interna zu tun<br />

hat. Auch OSDs <strong>und</strong> MONs haben eigene<br />

Schlüssel, deren Bezeichnungen jeweils<br />

ein »osd.« oder » mon.« vorangestellt ist.<br />

Weil Benutzer sich aber kaum als OSD<br />

oder MON an Ceph werden anmelden<br />

wollen <strong>und</strong> somit nur »client.« in Frage<br />

kommt, setzt ceph das bei User-Requests<br />

voraus.<br />

CephFS mit CephX mounten<br />

Ist CephX aktiviert, wirkt sich das freilich<br />

auch auf das Dateisystem von Ceph, das<br />

CephFS aus. Denn be<strong>im</strong> Mount-Vorgang<br />

ist dann ebenfalls ein Nutzer <strong>und</strong> ein<br />

Passwort anzugeben (Abbildung 1). Das<br />

Beispiel benutzt den Nutzer »admin«,<br />

dessen Passwort zunächst herauszufinden<br />

ist:<br />

ceph‐authtool ‐‐name client.admin U<br />

‐‐print‐key /etc/ceph/keyring.admin<br />

Das Beispiel geht von »AQBNTxZRWId‐<br />

7JxAA/Ac4ToR7ZfNdOGDSToGHpA==«<br />

als Passwort aus. Der Mount-Befehl ist<br />

dann dieser:<br />

mount ‐o name=admin,secret=AQBNTxZRWId7JxU<br />

AA/Ac4ToR7ZfNdOGDSToGHpA==,noat<strong>im</strong>e ‐t ceph U<br />

192.168.133.111:/ /mnt<br />

Wer das Passwort nicht <strong>im</strong> Klartext angeben<br />

will, kann es auch in einem File<br />

ablegen (<strong>im</strong> Beispiel »/etc/ceph/secret.<br />

admin«) <strong>und</strong> sich darauf berufen:<br />

mount ‐o name=admin,secretfile=/etc/ceph/U<br />

secret.admin,noat<strong>im</strong>e ‐t ceph U<br />

192.168.133.111:/ /mnt<br />

Genau so ließe sich der Mount übrigens<br />

auch in »/etc/fstab« eintragen, sodass<br />

das Ceph-Dateisystem be<strong>im</strong> Boot automatisch<br />

aktiv wird.<br />

Separate Pools für<br />

separate Benutzer<br />

Pools gelten in Ceph als eine Art Namensschild.<br />

Während sie sich auf die interne<br />

Organisation des Object Stores nicht auswirken,<br />

erlauben sie doch das Zuordnen<br />

einzelner Objekte zu best<strong>im</strong>mten Benutzern.<br />

Erst <strong>im</strong> CephX-Kontext können sie<br />

ihre Fähigkeiten voll zum Einsatz bringen,<br />

denn es spricht nichts dagegen, für<br />

einzelne Benutzer oder Benutzergruppen<br />

eigene Pools anzulegen <strong>und</strong> den Zugriff<br />

auf den Speicher auf diesen Pool zu beschränken.<br />

Um dieses Konzept in die Realität umzusetzen,<br />

braucht es zunächst freilich<br />

einen Pool. Auch dessen Konfiguration<br />

funktioniert etwas anders, wenn CephX<br />

bereits aktiv ist. Der Befehl »ceph osd<br />

pool create test 1000« würde wieder daran<br />

scheitern, dass der Benutzer, der den<br />

Befehl ausführt, selbst nicht als Admin<br />

in Ceph agiert. Analog zum Beispiel von<br />

»ceph ‐w« funktioniert auch hier der<br />

Befehl »ceph ‐‐id admin ‐‐keyring /etc/<br />

ceph/keyring.admin osd pool create test<br />

1000«. Der Befehl liefert keine Ausgabe,<br />

gibt aber »0« zurück. Im Zweifel lässt<br />

sich der Erfolg also mit »echo $?« überprüfen.<br />

Der Pool ist da – es fehlt noch der Benutzer,<br />

der ihn exklusiv verwenden darf.<br />

Das Usermanagement in Ceph hat in<br />

den letzten Monaten einige Änderungen<br />

<strong>im</strong> Hinblick auf Zusatzfunktionen<br />

erfahren, große Teile der <strong>im</strong> Netz zu<br />

findenden Dokumentation sind veraltet.<br />

Wichtig ist zunächst: Für jeden Nutzer<br />

gibt es auf den Ceph-Hosts üblicherweise<br />

ein Keyring-File (<strong>im</strong> Beispiel des<br />

www.admin-magazin.de


Know-how<br />

RADOS <strong>und</strong> Ceph<br />

Admin-Benutzer »/etc/ceph/keyring.<br />

admin«). Das ist allerdings eben gerade<br />

nicht die Datei, die Ceph zum Prüfen<br />

von Nutzerberechtigungen verwendet<br />

Stattdessen pflegen die MON-Server für<br />

diesen Zweck einen eigenen, internen<br />

Keyring. Soll ein Benutzer zur Ceph-<br />

Installation hinzustoßen, genügt es aus<br />

diesem Gr<strong>und</strong> auch nicht, eine Keyring-<br />

Datei auf den Ceph-Hosts in der Datei<br />

»/etc/ceph« zu hinterlegen. Zusätzlich<br />

muss der Admin den Key auch mittels<br />

»ceph auth add« in den Cluster integrieren.<br />

Alternativ dazu lassen sich die<br />

beiden Arbeitsschritte auch in einem einzigen<br />

Befehl zusammenfassen. Um zum<br />

Beispiel für einen Benutzer namens »test«<br />

einen Schlüssel anzulegen <strong>und</strong> diesen<br />

dann gleich in Ceph zu aktivieren, reicht<br />

dieses Kommando:<br />

ceph ‐‐id admin ‐‐keyring /etc/ceph/U<br />

keyring.admin auth U<br />

get‐or‐create client.test $$<br />

mds 'allow' osd 'allow * pool=test' U<br />

mon 'allow *' > /etc/ceph/keyring.test<br />

Der Befehl funktioniert nur dann sinnvoll,<br />

wenn vorher tatsächlich schon ein Pool<br />

namens »test« existiert. Anschließend enthält<br />

»/etc/​ceph/​keyring.test« den Keyring<br />

des Benutzers, der ausschließlich auf den<br />

Pool »test« zugreifen darf. Würde dieser<br />

Benutzer versuchen, auf einen anderen<br />

Pool zuzugreifen, so würde Ceph das mit<br />

Listing 1: VM-Speicher als Blockdevice<br />

01 <br />

02 <br />

03 <br />

04 <br />

05 <br />

06 <br />

Listing 2: VM-Speicher als RBD<br />

01 <br />

02 <br />

03 <br />

04 <br />

05 <br />

06 <br />

07 <br />

08 <br />

09 <br />

10 <br />

einer Permission-Denied-Fehlermeldung<br />

verweigern.<br />

Berechtigungen anpassen<br />

Es ist auch möglich, einmal zugewiesene<br />

Credentials nachträglich zu ändern <strong>und</strong><br />

anzupassen (Abbildung 2). Die öffentliche<br />

Dokumentation hierzu ist leider<br />

unvollständig, so klappt es trotzdem:<br />

Zunächst ist Sorge dafür zu tagen, dass<br />

der Keyring des Benutzers die neuen,<br />

vollständigen Credentials enthält. Der<br />

Keyring für den zuvor angelegten »test«-<br />

Nutzer in »/etc/keyring/keyring.test«<br />

könnte direkt nach dem Anlegen so aussehen:<br />

[client.test]<br />

key = U<br />

AQA5XRZRUPvHABAABBkwuCgELluyyXSSYc5Ajw==<br />

Ceph weiß, dass dieser Benutzer auf den<br />

Pool »test« zugreifen darf, <strong>im</strong> Befehl zum<br />

Anlegen des Nutzers war das ja ausdrücklich<br />

vermerkt. Wenn dieser Nutzer<br />

nun auch Zugriff auf den Pool »test2« erhalten<br />

soll, wäre das File in »/etc/ceph/<br />

keyring.test« so abzuändern:<br />

[client.test]<br />

key = AQA5XRZRUPvHABAABBkwuCgELluyyU<br />

XSSYc5Ajw==<br />

caps osd = "allow * pool=test, allow * U<br />

pool=test2"<br />

caps mds = "allow"<br />

caps mon = "allow *"<br />

Wichtig ist, dass der Eintrag hinter »key<br />

=« unverändert bleibt, sonst würden andere<br />

Anwendungen nicht mehr mit Ceph<br />

kommunizieren können, wenn diese den<br />

Ceph-Schlüssel statisch konfiguriert haben.<br />

Schließlich informiert der Admin<br />

Ceph noch über die Änderung, indem<br />

er den neuen Schlüssel in den internen<br />

Ceph-Schlüsselb<strong>und</strong> einpflegt:<br />

ceph ‐‐id admin ‐k /etc/ceph/keyring.admin U<br />

auth add client.test U<br />

‐i /etc/ceph/keyring.test<br />

Im Anschluss hat der Benutzer »test« Zugriffsberechtigungen<br />

sowohl für den Pool<br />

»test« wie auch für den Pool »test2«.<br />

Ceph als Ersatz für<br />

klassischen Block-Storage<br />

Nach so viel Rechte-Theorie auf zu etwas<br />

Praktischem: Während viele, die sich mit<br />

dem Thema Ceph beschäftigen, durchaus<br />

begeistert von der technischen Lösung<br />

sind, fehlt oft eine Vorstellung davon,<br />

wie sich Ceph <strong>im</strong> Alltag ganz konkret<br />

einsetzen lässt. Dabei ist das durchaus<br />

möglich – dann zum Beispiel, wenn man<br />

einen Virtualisierungscluster betreibt <strong>und</strong><br />

bei diesem <strong>im</strong>mer wieder mit Problemen<br />

zu kämpfen hat, um die Kapazität des<br />

Clusters zu erweitern. Entgegen allen Unkenrufen<br />

taugt Ceph nicht nur als Monster-Storage<br />

innerhalb von Cloud‐ Setups,<br />

sondern leistet treue Dienste auch in<br />

kleineren Umgebungen, die klassisch mit<br />

KVM virtualisieren.<br />

Ceph <strong>und</strong> Libvirt<br />

Zu verdanken ist das <strong>im</strong> Wesentlichen<br />

der Tatsache, dass sich die Entwickler der<br />

»libvirt«-Virtualisierungsumgebung sehr<br />

gut mit den Ceph-Entwicklern verstehen<br />

<strong>und</strong> in Libvirt deshalb eine umfangreiche<br />

Ceph-Integration zur Verfügung stellen.<br />

Statt eines normalen Block-Devices lässt<br />

sich für eine von Libvirt verwaltete VM so<br />

auch ein RBD-Image als Backing-Device<br />

angeben, <strong>im</strong> Hintergr<strong>und</strong> greift Libvirt<br />

dann unmittelbar auf den Ceph-Cluster<br />

zu. Es liegt der Vorteil klar auf der Hand:<br />

In einem solchen Konstrukt lässt sich<br />

jede VM auf jedem Knoten eines Virtualisierungsclusters<br />

betreiben, solange der<br />

Zugriff auf den Ceph-Cluster möglich ist.<br />

Wenn CephX abgeschaltet ist, ist der nötige<br />

Umbau an den Libvirt-VM-Definitonen<br />

min<strong>im</strong>al. Ein Beispiel: Eine VM greift<br />

in einem klassischen Virtualisierungssetup<br />

<strong>im</strong> Hintergr<strong>und</strong> auf ein ganz normales<br />

Blockdevice zu. Der entsprechende<br />

Eintrag in der Datei – <strong>im</strong> Beispiel soll sie<br />

»ubuntu-amd64-alice.xml« heißen – sieht<br />

so aus wie in Listing 1:<br />

Eine solche VM lässt sich problemlos<br />

auf einen Ceph-Cluster umziehen. Die<br />

einschlägigen Beispiele empfehlen, VMs<br />

innerhalb von Ceph in einen eigenen<br />

Pool zu legen, der <strong>im</strong> Beispiel »libvirt«<br />

heißt. Wenn der Pool analog zum Beispiel<br />

weiter oben erstellt ist, folgt die Migration<br />

der Daten vom alten Block-Device<br />

auf das neue RBD-Image. Der neue Pool<br />

braucht ein RBD-Image mit gewünschter<br />

Größe, der Befehl »qemu‐<strong>im</strong>g create<br />

‐f rbd rbd:libvirt/ubuntu‐amd64‐alice<br />

100G« erstellt dieses mit einer Größe von<br />

100 Gigabyte. (Achtung: Damit der Be‐<br />

64 Ausgabe 02-2013 Admin www.admin-magazin.de


RADOS <strong>und</strong> Ceph<br />

Know-how<br />

fehl funktioniert, muss »/etc/ceph/ceph.<br />

conf« korrekt <strong>und</strong> aktuell die Topologie<br />

des Ceph-Clusters wiedergeben <strong>und</strong> auch<br />

die Information enthalten, wo der Key<br />

für »client.admin« zu finden ist, falls der<br />

Cluster CephX verwendet). Dann folgt<br />

das Überspielen aller VM-Daten – für diesen<br />

Schritt muss die virtuelle Maschine<br />

allerdings ausgeschaltet sein, damit sich<br />

Ihre Daten nicht während der Migration<br />

verändern:<br />

Abbildung 3: Libvirt verfolgt eine etwas eigene Strategie für Ceph-Passwörter <strong>und</strong> legt diese unter<br />

»/etc/libvirt/secrets« ab.<br />

qemu‐<strong>im</strong>g convert ‐f raw ‐O rbd U<br />

/dev/drbd/by‐res/vm‐ubuntu‐amd64‐alice U<br />

rbd:libvirt/ubuntu‐amd64‐alice<br />

Je nach Geschwindigkeit des lokalen<br />

Blockspeichers kann dieser Vorgang ein<br />

paar Minuten dauern. Wenn er beendet<br />

ist, muss Libvirt noch lernen, ab sofort<br />

RBD anstelle des alten Block-Devices zu<br />

nutzen. Der zuvor genannte Eintrag ist<br />

dafür so abzuändern, sodass er letztlich<br />

aussieht wie in Listing 2.<br />

Zu beachten ist dabei, dass die <strong>im</strong> Beispiel<br />

gezeigten IP-Adressen durch die<br />

tatsächlichen IP-Adressen der verfügbaren<br />

MON-Server zu ersetzen sind. Es ist<br />

übrigens sinnvoll, die Datei über »virsh<br />

edit ubuntu‐amd64‐alice« in einen Editor<br />

zu laden, denn Libvirt liest sie hiernach<br />

automatisch neu ein <strong>und</strong> weiß sofort um<br />

die Änderungen.<br />

Übrigens: Das gezeigte Beispiel nutzt<br />

auch die RBD-Cache-Funktion über den<br />

Writeback-Modus, um für zusätzliche<br />

Performance innerhalb der VM zu sorgen.<br />

Im Anschluss an die beschriebenen<br />

Schritte lässt sich die VM wie gewohnt<br />

starten, Unterschiede <strong>im</strong> Handling zu einer<br />

„Nicht-RBD-VM“ ergeben sich nicht.<br />

Wer ein solches Setup mit Pacemaker<br />

betreibt, kann anschließend das Block-<br />

Device aus der Pacemaker-Konfiguration<br />

entfernen.<br />

Libvirt mit CephX<br />

Etwas komplizierter gestaltet sich die<br />

Nutzung von Libvirt <strong>und</strong> RBD, wenn der<br />

Cluster CephX verwendet. Denn dann<br />

muss sich die Libvirt natürlich auch als<br />

ganz normaler Client an Ceph anmelden,<br />

um Zugriff auf die Daten zu haben. Seit<br />

Libvirt 0.9.12 kann Libvirt mit CephX<br />

umgehen, die Einrichtung ist aber wenig<br />

intuitiv. Das folgende Beispiel basiert auf<br />

der Annahme, dass <strong>im</strong> Ceph ein Benutzer<br />

namens »libvirt« existiert <strong>und</strong> der zum<br />

Nutzer passende Keyring in »/etc/ceph/<br />

keyring.libvirt« zu finden ist. Libvirt<br />

speichert intern Passwörter mit UUID-<br />

Bezeichnungen, sodass zunächst mittels<br />

»uuidgen« auf der Kommandozeile eine<br />

UUID zu generieren ist, <strong>im</strong> Beispiel »46d<br />

801da‐7f82‐4fa4‐92cd‐a19e6999d2e6«.<br />

Dann ist zunächst eine Datei namens<br />

»ceph.xml« anzulegen, die diesen Inhalt<br />

hat:<br />

<br />

46d801da‐7f82‐4fa4‐92cd‐U<br />

a19e6999d2e6<br />

<br />

client.libvirt secret<br />

<br />

<br />

Es folgt ein »virsh secret‐define ceph.<br />

xml«, wonach Ceph einen Eintrag für<br />

das Passwort in »/etc/libvirt/secrets« anlegt<br />

(Abbildung 3). Was noch fehlt, ist<br />

der tatsächliche Schlüssel, den Libvirt für<br />

dieses Passwort braucht. Der passende<br />

Befehl ist dieser:<br />

virsh secret‐set‐value 46d801da‐7f82‐4fa4‐U<br />

92cd‐a19e6999d2e6 `ceph‐authtool ‐‐name U<br />

client.libvirt ‐‐print‐key /etc/ceph/U<br />

keyring.libvirt`<br />

Das Kommando liest mittels »cephauthtool«<br />

den korrekten Schlüssel des<br />

Benutzers »client.libvirt« aus <strong>und</strong> assoziiert<br />

diesen mit der erstellten UUID in<br />

Libvirts interner Passwort-Datenbank.<br />

Die VM-XML-Konfiguration muss danach<br />

noch lernen, dass für den Zugriff auf<br />

Ceph ein Key nötig ist. Anstelle des oben<br />

genannten Beispiels ist mittels »virsh edit<br />

ubuntu‐amd64‐alice« die VM so anzupassen<br />

wie in Listing 3. Danach funktioniert<br />

auch das Gespann aus Libvirt <strong>und</strong> RBD<br />

mit CephX.<br />

Wer sich mit Storage beschäftigt, wird<br />

sich früher oder später natürlich die<br />

Frage stellen, wie sich aus der vorhandenen<br />

Hardware mehr Performance<br />

herauskitzeln lässt.<br />

Das Problem mit SSDs<br />

Zwar performt ein typischer Ceph-Cluster<br />

bereits ab Werk deutlich besser als klassisches<br />

Block-Storage, weil Ceph Schreibwie<br />

Lesevorgänge parallellisiert, doch<br />

gibt es auch bei Ceph durchaus Schrauben,<br />

an denen sich drehen lässt. Admins<br />

berichten von externen Proof-of-Concept-<br />

Installationen, bei denen die einzelnen<br />

Knoten mit gebondetem 10 GBit-Netz<br />

miteinander verb<strong>und</strong>en waren <strong>und</strong> Datentransferraten<br />

von 2 GByte/​s das Maß<br />

der Dinge waren. Auch mit klassischem<br />

GBit-Netz lässt sich die Performence von<br />

Ceph-Clustern aber steigern. Eine <strong>im</strong><br />

Netz <strong>im</strong>mer wieder zu findende Empfehlung<br />

lautet, die Journale der OSDs auf<br />

SSDs abzulegen.<br />

Dazu ein kleiner Ausflug in die Ceph-Interna:<br />

Jedes OSD hat ein eigenes Journal,<br />

quasi eine Art vorgeschalteten Cache, in<br />

dem die Daten für das OSD zunächst landen.<br />

Ceph erklärt einen Schreibvorgang<br />

Listing 3: XML-Konfiguration der VM<br />

01 <br />

02 <br />

03 <br />

04 <br />

05 <br />

06 <br />

07 <br />

08 <br />

09 <br />

10 <br />

11 <br />

12 <br />

13 <br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

65


Know-how<br />

RADOS <strong>und</strong> Ceph<br />

auth supported = cephx<br />

geht das in Bobtail mit drei Einträgen:<br />

auth cluster required = cephx<br />

auth service required = cephx<br />

auth client required = cephx<br />

Abbildung 4: Pro OSD lässt sich auch ein eigenes Block-Device für das Journal angeben, <strong>im</strong> Normalfall eine<br />

Partition auf einer SSD. Dabei ist aber Vorsicht geboten, damit OSD-Ausfälle nicht die MONs lahmlegen.<br />

auf Client-Seite für abgeschlossen, wenn<br />

die zu schreibenden Daten die Journale<br />

von so vielen OSDs erreicht haben, wie es<br />

die Replikationseinstellung vorsieht. Klar<br />

ist damit auch: Je schneller die Schreibvorgänge<br />

<strong>im</strong> Journal abgeschlossen sind,<br />

desto schneller ist der Storage-Cluster.<br />

Ab Werk speichern die OSDs ihre Journale<br />

selbst, per Konfigurationseinstellung<br />

lassen sich aber auch externe Journale<br />

aktivieren (Abbildung 4). Eigentlich logisch<br />

also, die Journale auf flotte SSDs<br />

zu legen.<br />

Die Sache hat aber einen Haken, der sich<br />

aus der typischen Hardware von Ceph-<br />

Storage-Knoten ergibt. Oft handelt es sich<br />

um Server mit zwölf Slots für Platten,<br />

in denen zwei SSDs <strong>und</strong> zehn normale<br />

SATA-Platten stecken. Auf den SSDs liegt<br />

das System selbst sowie die OSD-Journale.<br />

Drei Knoten dieser Art ergeben zusammen<br />

einen Ceph-Cluster. Fällt einer<br />

der drei Knoten aus, heißt das für Ceph<br />

nichts anderes, als dass der Inhalt von<br />

insgesamt zehn OSDs auf die verbliebenen<br />

OSDs zu verteilen ist. Das sorgt für<br />

jede Menge Random I/​O, dem oft genug<br />

auch die SSD-Platten nicht gewachsen<br />

sind. Weil aber auf den SSDs eben auch<br />

das System läuft <strong>und</strong> mit ihm die MON-<br />

Server von Ceph, geraten eben jene in<br />

dieser SItuation <strong>im</strong>mer wieder in T<strong>im</strong>eouts<br />

<strong>und</strong> verlieren die Verbindung zum<br />

anderen noch verbliebenen MON. Der<br />

Cluster verliert sein Quorum <strong>und</strong> erklärt<br />

sich für funktionsuntüchtig – das Storage<br />

funktioniert dann nicht mehr.<br />

Umgehen lässt sich dieser Effekt auf<br />

mehreren Wegen. Einerseits ist es generell<br />

keine schlechte Idee, MON-Server auf<br />

Maschinen zu betreiben, die selbst keine<br />

OSDs sind. Denn dann funktionieren die<br />

MONs unabhängig von der Frage, wie<br />

viel I/​O gerade auf den OSD-Servern passiert.<br />

Ebenfalls als praktikabel hat es sich<br />

herausgestellt, die max<strong>im</strong>ale Anzahl an<br />

OSDs pro Host zu beschränken. Der beschriebene<br />

Effekt verschwindet nahezu<br />

völlig, wenn nur der Inhalt von 6 OSDs<br />

auf die verbliebenen Cluster-Knoten zu<br />

verteilen ist. Last but not least hilft es<br />

in solchen Szenarien ebenfalls, die SSDs<br />

lediglich für das System zu verwenden<br />

<strong>und</strong> die OSDs ihre Journale selbst speichern<br />

zu lassen. So grotesk es klingt:<br />

In einem Setup wie dem beschriebenen<br />

richten SSDs <strong>im</strong> schl<strong>im</strong>msten Fall mehr<br />

Schaden an, als sie Nutzen bringen. Die<br />

Hardware eines Ceph-Setups will also gut<br />

geplant sein.<br />

Neuigkeiten in Bobtail<br />

Schließlich noch ein kurzer Rückblick auf<br />

die Neuerungen von Ceph Bobtail. Die<br />

Entwickler haben Ceph 0.56, Codename<br />

»Bobtail«, <strong>im</strong> Januar 2013 veröffentlicht<br />

<strong>und</strong> versprechen dem Benutzer vor allem<br />

deutlich gesteigerte Performance.<br />

Hinsichtlich der Konfigurationsdatei gibt<br />

es eine Änderung, was CephX angeht:<br />

War CephX in Ceph 0.47 noch mit einer<br />

Zeile in der Konfiguration zu aktivieren,<br />

nämlich<br />

Erste Benchmarks zeigen, dass die neue<br />

Version in vielerlei Hinsicht in der Tat<br />

besser performt, als ihr Vorgänger. Vereinzelt<br />

sind auf den Listen aber auch<br />

Berichte von Ceph-Nutzern zu lesen, die<br />

über verstärkte Probleme mit RBD <strong>und</strong><br />

Ceph 0.56 berichten. Nachdem sowohl<br />

das Dateisystem Ceph wie auch das RBD-<br />

Modul Teil des <strong>Linux</strong>-Kernels sind <strong>und</strong><br />

dem dortigen Zyklus der Entwicklung<br />

folgen, empfehlen die Ceph-Entwickler<br />

bei Problemen wie jenen stets ein Kernel-<br />

Update, zumal seit <strong>Linux</strong> 3.2 viele Ceph<strong>und</strong><br />

RBD-Patches ihren Weg in <strong>Linux</strong><br />

gef<strong>und</strong>en haben. Wer Ceph produktiv<br />

einsetzen möchte, sollte sich also mit regelmäßigen<br />

Kernel-Updates anfre<strong>und</strong>en.<br />

Ceph vs. Gluster<br />

Ein denkwürdiges Ereignis spielte sich<br />

übrigens Ende Januar bei der in Canberra<br />

stattfindenden <strong>Linux</strong>.conf.au 2013 ab:<br />

Auf der Bühne diskutierten Sage Weil als<br />

Ceph-Mastermind <strong>und</strong> John Mark Walker<br />

als Community-Lead von Gluster fast eine<br />

St<strong>und</strong>e angeregt über die Vor- <strong>und</strong> Nachteile<br />

der Ansätze. Dass es dabei nicht<br />

<strong>im</strong>mer bierernst zugegangen ist, bedarf<br />

keiner besonderen Erwähnung. Trotzdem<br />

erklären beide Seiten überzeugend ihre<br />

Standpunkte. Wer mehr zum Thema Distributed<br />

Storage erfahren möchte, sollte<br />

sich das Video der Veranstaltung unter<br />

[1] nicht entgehen lassen. (jcb) n<br />

Infos<br />

[1] Ceph vs. Gluster:<br />

[http:// mirror. linux. org. au/ linux. conf. au/​<br />

2013/ mp4/ grand‐distributed‐storage‐de<br />

bate‐glusterfs‐and‐ceph‐going‐head‐hea<br />

d. mp4]<br />

Der Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei hastexo. Er beschäftigt sich dort<br />

intensiv mit Hochverfügbarkeitslösungen <strong>und</strong><br />

pflegt in seiner Freizeit den <strong>Linux</strong>-Cluster-Stack<br />

für Debian GNU/​<strong>Linux</strong>.<br />

66 Ausgabe 02-2013 Admin www.admin-magazin.de


Foreman<br />

Know-how<br />

Life Cycle Management mit Foreman <strong>und</strong> Puppet<br />

Bauhelfer<br />

Virtuelle Maschinen als Kapazitätsreserve<br />

erscheinen ideal: Sie sind leicht nach Bedarf<br />

zu erzeugen <strong>und</strong> wieder abzuschalten – blieben<br />

da nicht etliche zeitraubende Arbeiten<br />

für den Admin: IP-Adresse vergeben, Backup<br />

<strong>und</strong> Monitoring einrichten, etc. Dafür braucht<br />

man die richtigen Helfer. Sebastian Saemann<br />

© auremar, 123RF<br />

Im Open-Source-Bereich gibt es für<br />

routinemäßige Verwaltungsjobs zwei<br />

Projekte, die sich perfekt ergänzen: Puppet<br />

<strong>und</strong> Foreman. Puppet ist ein Open<br />

Source Configuration Management Toolset<br />

<strong>und</strong> Framework geschrieben in Ruby<br />

für die Verwaltung <strong>und</strong> Konfiguration<br />

von Servern. Mit Puppet kann man relativ<br />

unabhängig vom darunterliegenden<br />

Betriebssystem zusätzliche Software<br />

installieren <strong>und</strong> konfigurieren. Unterstützte<br />

Betriebssysteme sind die gängigen<br />

<strong>Linux</strong>-Distributionen, Unix <strong>und</strong> mittlerweile<br />

auch <strong>Windows</strong>.<br />

In einer typischen Puppet-Umgebung<br />

gibt es einen Master (Server) <strong>und</strong> einen<br />

oder mehrere Agents (Clients). Die Kommunikation<br />

zwischen Master <strong>und</strong> Agent<br />

erfolgt ist mit selbst signierten SSL-Zertifikaten<br />

gesichert. Auf dem Master ist ein<br />

sogenanntes Manifest hinterlegt, das die<br />

Rolle <strong>und</strong> den Sollzustand des Clients<br />

beschreibt. Ein Sollzustand wäre etwa<br />

„Webserver mit PHP <strong>und</strong> lokalen Benutzern<br />

mit SSH-Keys“. Das Manifest kann<br />

in einer Domain Specific Language (DSL)<br />

verfasst sein.<br />

Zusätzlich findet sich auf dem Client<br />

noch Facter. Diese Software sammelt Informationen<br />

über das System <strong>und</strong> leitet<br />

sie in einem Puppet-Lauf an den Puppet-<br />

Master weiter. Aufgr<strong>und</strong> der gesammelten<br />

Facts kann der Master aus dem <strong>im</strong> Vorfeld<br />

definierten Manifest einen dynamischen<br />

Katalog erzeugen. Der Katalog wird wiederum<br />

auf dem Agent ausgeführt, der anhand<br />

der Facter-Informationen die richtigen<br />

Befehle absetzt. Facter ermitttelt eine<br />

Menge Tatsachen über Betriebssystem,<br />

Hardware, Software, Netzwerk <strong>und</strong> so<br />

weiter. Wer noch mehr Informationen<br />

braucht, kann eigene Custom Facts definieren.<br />

Will man beispielsweise Apache2<br />

als Webserver installieren, sieht ein Auszug<br />

aus dem Manifest so aus:<br />

package { "apache2" :<br />

ensure => "installed",<br />

}<br />

Im Fall von Debian würde Puppet für das<br />

Paket den Provider »apt« wählen <strong>und</strong> ein<br />

»apt‐get install apache2« ausführen. Für<br />

Red Hat würde die Paketverwaltung Yum<br />

in Aktion treten.<br />

Allerdings müsste ein »yum install apache2«<br />

zu einer Fehlermeldung führen,<br />

weil das Paket bei RHEL nicht »apache«<br />

sondern »httpd« heißt. Um sein Manifest<br />

betriebssystemübergreifend zu gestalten<br />

sind erneut die Facts notwendig. Facts<br />

lassen sich <strong>im</strong> Manifest als Variablen für<br />

Entscheidungen nutzen (Listing 1).<br />

Mit der Puppet-DSL sind ähnlich wie<br />

in Programmiersprachen Vererbungen,<br />

Klassen, Module, Arrays, Variablen, Parameter,<br />

Templates <strong>und</strong> Scopes verfügbar.<br />

Es gibt also jede Menge Möglichkeiten<br />

seine Manifeste robust, flexibel <strong>und</strong> modular<br />

zu schreiben. Geht man noch einen<br />

Schritt weiter, sorgt man zusätzlich<br />

dafür, dass die Konfiguration für Apache<br />

inklusive möglicher VirtualHosts mit ausgerollt<br />

<strong>und</strong> der Webserver be<strong>im</strong> Booten<br />

<strong>und</strong> nach Änderungen an der Apache-<br />

Konfiguration neugestartet wird.<br />

Beide Klassen »apache::service« <strong>und</strong><br />

»apache::config« benötigen die Klasse<br />

»apache::install« bevor sie sich ausführen<br />

lassen. Die Klasse »apache::install«<br />

installiert lediglich das Paket »httpd« oder<br />

»apache2«. Eine logische, zusammengehörende<br />

Sammlung von Klassen wird<br />

Modul genannt (Listing 2).<br />

Hat man sein Manifest an seine Bedürfnisse<br />

angepasst, ist es ein Leichtes, neue<br />

oder zusätzliche Server oder auch den<br />

gleichen Server nach einer Neuinstallation<br />

wieder in den definierten Zielzustand<br />

zu versetzen. Puppet hat außerdem<br />

eine große Community, <strong>und</strong> man kann<br />

sich mit schon vorhanden Modulen aus<br />

Puppet-Forge oder Github bedienen.<br />

Zusammengefasst ist Puppet ein Tool,<br />

mit dem man seinen Server bis in kleinste<br />

Listing 1: Fallunterscheidung<br />

01 case $operatingsystem {<br />

02 /(Debian|Ubuntu)/: {<br />

03 $apache_package_name = 'apache2'<br />

04 }<br />

05 /(RedHat|CentOS|Fedora)/: {<br />

06 $apache_package_name = 'httpd'<br />

07 }<br />

08 }<br />

09 <br />

10 package { $webserver_package_name :<br />

11 ensure => "installed",<br />

12 }<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

67


Know-how<br />

Foreman<br />

01 class apache {<br />

Detail konfigurieren kann. Die eigentliche<br />

Betriebssysteminstallation n<strong>im</strong>mt Puppet<br />

einem jedoch nicht ab, <strong>und</strong> genau hier<br />

setzt Foreman an.<br />

Foreman ist ein Life-Cycle-Management-<br />

Tool, mit dem man vom Anlegen eines<br />

Hosts <strong>und</strong> der Installation des Betriebssystems,<br />

über das Verwalten mit Puppet,<br />

bis zum Löschen einen kompletten Lebenszyklus<br />

abdecken kann.<br />

Die Installation erfolgt entweder durch<br />

einen Installer, direkt aus den Quellen<br />

des Git-Repository, oder man nutzt die<br />

vorgebauten Pakete.<br />

Foreman interagiert sehr eng mit Puppet,<br />

aber auch mit anderen vermutlich schon<br />

vorhandenen Infrastrukturelementen<br />

(Abbildung 1), ist sehr dynamisch <strong>und</strong><br />

kann je nach Anforderungen mit mehr<br />

oder weniger Features genutzt werden.<br />

Für einen Teil seiner Features nutzt Foreman<br />

einen sogenannten Smart-Proxy. Ein<br />

Smart-Proxy ist ein Server, der sich zum<br />

Beispiel um das Eintragen der DNS-Records<br />

oder das Bereitstellen der PXE-Installation<br />

kümmert. Smart-Proxies können<br />

in beliebiger Anzahl auf dem gleichen<br />

Server wie auch Foreman selbst installiert<br />

werden.Das geschieht wie bei Foreman<br />

selbst über die vorgebauten Pakete für die<br />

unterstützten Distributionen oder direkt<br />

aus dem Quellcode. Die Kommunikation<br />

zwischen Foreman <strong>und</strong> einem Smart-<br />

Proxy erfolgt über eine Restful-API. Hat<br />

man zum Beispiel ein subnetzübergrei-<br />

Listing 2: Klassendefinitionen<br />

02 include apache::params, apache::service,<br />

apache::install<br />

03 }<br />

04 <br />

05 class apache::params {<br />

06 case $operatingsystem {<br />

07 /(Debian|Ubuntu)/: {<br />

08 $apache_package_name = 'apache2'<br />

09 $apache_service_name = 'apache2'<br />

10 $apache_config_name = '/etc/apache2/<br />

apache.conf'<br />

11 }<br />

12 /(RedHat|CentOS|Fedora)/: {<br />

13 $apache_package_name = 'httpd'<br />

14 $apache_service_name = 'httpd'<br />

15 $apache_config_name = '/etc/httpd/httpd.<br />

conf'<br />

16 }<br />

17 }<br />

18 }<br />

Abbildung 1: Das Zusammenspiel der Komponenten in einer Umgebung, die Foreman nutzt.<br />

fendes Netzwerk ohne DHCP-Relay, ist<br />

es notwendig mehrere Smart-Proxies zu<br />

verwenden, die sich um die automatische<br />

Installation <strong>im</strong> jeweiligen Netzsegment<br />

kümmern.<br />

Zu den Smart-Proxy-Features gehören:<br />

n DHCP: Übern<strong>im</strong>mt die automatische<br />

Vergabe von IP-Adressen aus definierten<br />

Subnetzen oder IP-Adressbereichen.<br />

n DNS: Stellt die Namensauflösung für<br />

Forward- <strong>und</strong> Reverse-Hosteinträge<br />

bereit. Es werden nur ISC kompatible<br />

Produkte wie Bind <strong>und</strong> Microsoft<br />

DNS-Server unterstützt. Das Update<br />

19 <br />

20 class apache::config {<br />

21 file { $apache::params::apache_config_name:<br />

22 notify => Class[apache::service'],<br />

23 source => "puppet:///modules/<br />

apache/${apache::params::apache_config_name}",<br />

24 }<br />

25 }<br />

26 <br />

27 class apache::service {<br />

28 service { $apache::params::apche_service_name<br />

:<br />

29 ensure => 'running',<br />

30 enable => 'true',<br />

31 }<br />

32 }<br />

33 <br />

34 package { $webserver_package_name :<br />

35 ensure => "installed",<br />

36 }<br />

auf eine dynamische Zone erfolgt über<br />

»nsupdate« <strong>und</strong> wird mit einem vorher<br />

erstellten <strong>und</strong> konfigurierten Schlüssel<br />

auf dem Nameserver authentifiziert.<br />

n TFTP <strong>und</strong> PXE: Die automatischen<br />

Installationen setzen einen konfigurierten<br />

DHCP-Server voraus <strong>und</strong><br />

können ein Betriebssystem auf einem<br />

PXE-bootfähigen Server installieren.<br />

Die Installation erfolgt über das auf<br />

dem TFTP-Server zur Verfügung stehende<br />

Image <strong>und</strong> wird anschließend<br />

über Kickstart (Fedora, RHEL) oder<br />

Preseed (Debian, Ubuntu) mit den<br />

vordefinierten Installationsantworten<br />

bespielt. Neben Kickstart <strong>und</strong> Preseed<br />

können weitere Techniken genutzt<br />

werden wie etwa Jumpstart .<br />

n PuppetCA: Mit diesem Feature übern<strong>im</strong>mt<br />

Foreman das Signieren der Puppet-SSL<br />

Zertifikate zwischen Master<br />

<strong>und</strong> Agent. Nachdem das Betriebssystem<br />

installiert wurde, ist ein Puppet-<br />

Run ohne manuelles Eingreifen <strong>im</strong> Anschluss<br />

möglich, der die Konfiguration<br />

aus dem Puppet-Manifest ausrollt.<br />

Ohne Smart-Proxy<br />

n BENC: Puppet bietet einen sogenannten<br />

External Node Classifier an. Er<br />

führt ein Skript aus, dass die Klassenzuweisung<br />

aus einer anderen Datenquelle<br />

ausliest <strong>und</strong> ausgibt. Über<br />

die Weboberfläche von Foreman kann<br />

man so einen Host anlegen <strong>und</strong> ihm<br />

Puppet-Klassen zuweisen.<br />

68 Ausgabe 02-2013 Admin www.admin-magazin.de


Foreman<br />

Know-how<br />

n CMDB: Foreman lässt sich auch als<br />

Configuration Management Database<br />

nutzen, eine gesonderte Inventarpflege<br />

kann dann entfallen. Das<br />

Inventar bilden in allererster Linie die<br />

Facter-Informationen. Fehlende oder<br />

zusätzliche Informationen lassen sich<br />

wie schon erwähnt in Custom Facts<br />

leicht abbilden.<br />

n Compute Ressources: Foreman ist in<br />

der Lage, nicht nur physische, sondern<br />

auch virtuelle Maschinen aus Private<br />

<strong>und</strong> oder Public Clouds zu provisionieren.<br />

Anstelle eines Bare-Metal<br />

Servers wird etwa direkt eine AWS-<br />

EC2-Instanz in der Amazon Cloud deployed.<br />

Unterstützt werden außerdem<br />

VMware oder Openstack.<br />

n Reporting: Der Report eines Puppet-<br />

Agent wird in der Regel an seinen<br />

Puppet-Master gesendet. Zusätzlich<br />

kann der Report zur Einsicht <strong>und</strong> für<br />

Statistiken an Foreman gehen.<br />

n Auditing: Über das Audit Feature lassen<br />

sich Änderungen durch Kollegen<br />

oder K<strong>und</strong>en einsehen.<br />

n LDAP: Die Foreman-Benutzerauthentifizierung<br />

kann ein vorhandenes LDAP<br />

oder Active-Directory ansprechen <strong>und</strong><br />

somit eine zentrale Authentifizierungsstelle<br />

nutzen.<br />

Zeit sparen<br />

Die Einrichtung <strong>und</strong> Integration in die<br />

bestehende Infrastruktur benötigt Überblick<br />

über alle Komponenten <strong>und</strong> oft<br />

auch etwas Zeit. Hat man jedoch alle<br />

Komponenten <strong>und</strong> Features installiert,<br />

können Foreman <strong>und</strong> Puppet einem sehr<br />

viel Zeit sparen.<br />

Wird beispielsweise ein neuer Debian Applikationsserver<br />

benötigt, loggt sich ein<br />

Administrator mit seinen Active Directory<br />

Login-Daten in Foreman ein <strong>und</strong> legt einen<br />

neuen Host über das Formular an.<br />

Dort wählt er seinen Hostnamen, das<br />

Betriebssystem <strong>und</strong> die Puppet-Module<br />

Mehr zum Thema<br />

Mehr zu dem Thema Automatisierung <strong>im</strong> Rechenzentrum<br />

insbesondere zu Puppet <strong>und</strong><br />

Foreman kann man auf der Open Source Data<br />

Center Conference vom 17.-18. April in Nürnberg<br />

erfahren oder auf [1]. Dort gibt es auch<br />

einen kurzen Videoblog zu dem gezeigten<br />

Beispiel.<br />

aus. Die nächste freie IP-Adresse wird<br />

anhand der Zuordnung zur Domain bereits<br />

vorgeschlagen. Die Puppet-Module<br />

wären exemplarisch »ssh, apache2, php,<br />

haproxy«.<br />

Sobald der Sysadmin das Formular bestätigt,<br />

wird auf dem PXE/​TFTP-Server<br />

ein Eintrag erzeugt, der den Server mit<br />

der verwendeten MAC-Adresse <strong>und</strong> einem<br />

Debian <strong>Linux</strong> installiert. Auch der<br />

DHCP Server hat einen Static-Lease für<br />

den Server bereits eingerichet <strong>und</strong> wird<br />

dem Server, sobald er danach fragt, die<br />

IP-Adresse zuweisen. Der Server bootet,<br />

wird per Preseed installiert <strong>und</strong> abschließend<br />

bei seinem Puppetmaster für den<br />

bevorstehenden ersten Puppet-Run vorbereitet.<br />

Zusätzlich könnte hier der Sysadmin das<br />

Finish-Skript so erweitert haben, dass es<br />

den Server auch gleich noch in das Monitoring<br />

einpflegt. Nach einem Reboot<br />

weiß Foreman, dass der Server sich vollständig<br />

installiert hat <strong>und</strong> ändert seinen<br />

PXE-Boot-Eintrag ab, sodass der Server<br />

nun nicht mehr das Installations<strong>im</strong>age,<br />

sondern von Festplatte startet.<br />

Danach läuft auch der Dienst »puppetd«,<br />

der sogleich einen Puppet-Lauf ausführen<br />

wird. Der Puppet-Agent fragt bei seinem<br />

Puppet-Master nach seinem Manifest <strong>und</strong><br />

führt es aus. Der Report über die erfolgreiche<br />

Installation der Puppet-Klassen<br />

wird ebenfalls wieder an Foreman zurückgeliefert,<br />

sodass der Sysadmin den<br />

Status des Servers über die Weboberfläche<br />

verfolgen kann.<br />

Etwaige Fehler wären hier sofort zu<br />

sehen. Die Puppet-Module haben den<br />

Server angewiesen Apache2 mit PHP zu<br />

installieren, alle Vhosts wurden ebenfalls<br />

eingerichtet, zusätzlich wurden ihre Informationen<br />

über das »haproxy«-Modul<br />

an den Loadbalancer mitgeteilt <strong>und</strong> auch<br />

gleich mitkonfiguriert. Der Server ist also<br />

gleich produktiv.<br />

Der Administrator vergewissert sich mit<br />

einem SSH-Login auf dem Server, ob alles<br />

seine Richtigkeit hat. Der SSH-Login<br />

erfolgt über den SSH-Key <strong>und</strong> den Hostname<br />

des Servers, da Foreman für die<br />

DNS-Einträge gesorgt hat <strong>und</strong> Puppet<br />

den SSH-Key des Admins ebenfalls hinterlegt<br />

hat. Alles in allem hat das den<br />

Systemadministrator nicht mehr als 5 bis<br />

10 Minuten Zeit gekostet, inklusive der<br />

Installation.<br />

Das Beispiel macht klar, welchen Mehrwert<br />

man von einer solchen Lösung hat.<br />

Nicht nur der Zeitvorteil, sondern auch<br />

die Vollständigkeit des Setups sind überzeugend.<br />

Bei einem manuellen Setup<br />

passieren Fehler, auch wenn es nur der<br />

DNS-Reverse Eintrag ist, den man vergisst,<br />

der dann aber früher oder später<br />

Probleme machen könnte.<br />

Foreman wird aktiv weiterentwickelt <strong>und</strong><br />

eben auf die Version 1.1 aktualisiert. In<br />

dieser Version sind unter anderem die<br />

langersehnten Features wie „parameterized<br />

Classes“, „Support für Puppet 3“,<br />

„Locations <strong>und</strong> Organizations“ <strong>und</strong> viele<br />

andere Verbesserungen <strong>im</strong>plementiert.<br />

(jcb)<br />

n<br />

Infos<br />

[1] Videoblog:<br />

[http:// www. youtube. com/ watch?​<br />

v=utAmvYiyEsI]<br />

Der Autor<br />

Sebastian Saemann arbeitet für die Netways<br />

Managed Service GmbH, die unter anderem<br />

Partner von Puppetlabs ist, als Senior Systems<br />

Engineer <strong>und</strong> Teamleiter <strong>im</strong> Bereich Managed<br />

Hosting. Er ist verantwortlich für die Planung<br />

<strong>und</strong> Umsetzung interner <strong>und</strong> externer Projekte.<br />

Seit mehreren Jahren beschäftigt er sich mit<br />

dem Thema Automatisierung <strong>im</strong> Rechenzentrum<br />

insbesondere mit Puppet <strong>und</strong> Foreman. Darüber<br />

hinaus hält er als Trainer Puppet-Schulungen.<br />

Anzeige<br />

C13<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

69


Know-how<br />

Powershell<br />

© Vitalij Geraskin, 123RF<br />

Die besten Commandlets für die Powershell<br />

Des Pudels Kern<br />

<strong>Windows</strong> ist nicht länger das von <strong>Linux</strong>-Anwendern verspottete Klickibunti-System. In der neuesten Server-<br />

Version ist eine Installation ohne GUI sogar die Default-Einstellung, <strong>und</strong> die Verwaltung über die Powershell wird<br />

auch für <strong>Windows</strong>-Administratoren zum Alltag. Thomas Joos<br />

Mit der Powershell 3.0 hat Microsoft<br />

die Möglichkeit geschaffen, nahezu jeden<br />

Serverdienst in <strong>Windows</strong>-Servern in<br />

der Shell zu verwalten, zu installieren<br />

oder anzupassen. Dieser Artikel stellt<br />

einige der neuen <strong>und</strong> interessanten<br />

Commandlets vor, die Administratoren<br />

das Leben erleichtern. So gibt es mit<br />

»Show‐Command« einen neuen Befehl,<br />

der die Verwendung anderer Aufrufe genauer<br />

erklärt. Verfügt der Server über<br />

eine Internetverbindung, lassen sich die<br />

Hilfedateien in der Powershell mit »Update‐Help«<br />

aktualisieren.<br />

Core-Server mit GUI<br />

Bei <strong>Windows</strong> Server 2012 ist die Installation<br />

als Core-Server der von Microsoft<br />

empfohlene Weg <strong>und</strong> standardmäßig bereits<br />

ausgewählt. Eine wesentliche Neuerung<br />

in <strong>Windows</strong> Server 2012 ist aber<br />

die Möglichkeit, die grafische Oberfläche<br />

über die Powershell nachträglich zu<br />

installieren. Das heißt, Sie können aus<br />

einem Core-Server einen vollständigen<br />

Server mit grafischer Oberfläche machen.<br />

Die installierten Serverdienste werden davon<br />

nicht beeinträchtigt. Dazu geben Sie<br />

in der Eingabeaufforderung »powershell«<br />

ein <strong>und</strong> in der Powershell-Sitzung »Install‐<strong>Windows</strong>Feature<br />

Server‐Gui‐Shell«.<br />

Nach ein paar Minuten startet der Server<br />

neu, <strong>und</strong> <strong>Windows</strong> Server 2012 steht zur<br />

Verfügung.<br />

Verwenden Sie einen Core-Server, fehlen<br />

auf dem Server auch die Binärdateien,<br />

um die grafische Oberfläche zu<br />

installieren. Sie müssen zur Installation<br />

entweder eine Internetverbindung<br />

für den Server konfigurieren, damit er<br />

die benötigten Daten von <strong>Windows</strong>-<br />

Update herunterladen kann, oder den<br />

Ordner mit den <strong>Windows</strong>-Server-2012-<br />

Installationsdateien angeben. Die Installation<br />

führen Sie auf Core-Servern mit<br />

dem Befehl »Install‐<strong>Windows</strong>Feature<br />

Server‐Gui‐Mgmt‐Infra« durch. Oder Sie<br />

verbinden sich über den Server-Manager<br />

von einem Rechner <strong>im</strong> Netzwerk aus.<br />

Alternativ verwenden Sie die folgenden<br />

Befehle in der Powershell:<br />

Import‐Module Dism<br />

Enable‐<strong>Windows</strong>OptionalFeature ‐onlineU<br />

‐Featurename ServerCore‐FullServer,U<br />

Server‐Gui‐Shell,Server‐Gui‐Mgmt<br />

Auch mit dem folgenden Befehl lässt sich<br />

die grafische Oberfläche installieren:<br />

Dism /online /enable‐feature U<br />

/featurename:ServerCore‐FullServer U<br />

/featurename:Server‐Gui‐Shell U<br />

/featurename:Server‐Gui‐Mgmt<br />

Bis <strong>Windows</strong> Server 2008 R2 waren die<br />

Binärdateien von Features <strong>und</strong> Server-<br />

70 Ausgabe 02-2013 Admin www.admin-magazin.de


Powershell<br />

Know-how<br />

Auch Features <strong>und</strong> Rollen lassen sich in<br />

der Powershell installieren. Der Befehl<br />

»Get‐<strong>Windows</strong>Feature Hyper‐V*« zeigt<br />

zum Beispiel an, ob die Rolle <strong>und</strong> die<br />

Verwaltungstools bereits installiert sind.<br />

Bei <strong>Windows</strong> Server 2012 können Sie<br />

mit »‐computername« die Installation<br />

auch auf Remoteservern <strong>im</strong> Netzwerk<br />

überprüfen. Um Hyper-V oder die Verwaltungstools<br />

zu installieren, verwenden<br />

Sie das Cmdlet »Install‐<strong>Windows</strong>Feature«<br />

(in <strong>Windows</strong> Server 2008 R2 »Add‐<strong>Windows</strong>Feature«).<br />

Mit »Install‐<strong>Windows</strong>Feature Hyper‐V«<br />

installieren Sie die Serverrolle, mit der<br />

Option »‐IncludeManagementTools« inrollen<br />

auch dann auf dem Server gespeichert,<br />

wenn sie nicht installiert waren.<br />

Das hatte zwar den Vorteil, dass sich<br />

die Features schnell installieren ließen,<br />

verbrauchte aber unnötig Speicherplatz.<br />

<strong>Windows</strong> Server 2012 bietet jetzt die<br />

Möglichkeit, die nicht überflüssigen Binärdateien<br />

zu entfernen.<br />

Binärdateien entfernt das Commandlet<br />

»Uninstall‐<strong>Windows</strong>Feature«. Der Vorgang<br />

lässt sich mit den Installationsmedien<br />

von <strong>Windows</strong> Server 2012 jederzeit<br />

wieder rückgängig machen. Das übern<strong>im</strong>mt<br />

das Commandlet »Install‐<strong>Windows</strong>Feature«.<br />

Ein Vorteil von Feature on<br />

Demand ist die Bereitstellung von Servern<br />

über Images. Entfernen Administratoren<br />

vor der Erstellung eines Images<br />

nicht notwendige Binärdateien, lassen<br />

sich bis zu 1 GByte Speicherplatz gewinnen.<br />

Wollen Sie eine Rolle oder ein<br />

Feature vollständig entfernen, verwenden<br />

Sie in der Powershell das Commandlet<br />

»Uninstall‐<strong>Windows</strong>Feature« mit der Option<br />

»‐remove«:<br />

Uninstall‐<strong>Windows</strong>Feature U<br />

Server‐Gui‐Shell ‐remove<br />

Um die entsprechende Rolle oder das Feature<br />

zu installieren, benötigen Sie Zugriff<br />

auf die Installationsmedien von <strong>Windows</strong><br />

Server 2012.<br />

Die Installation erfolgt über den Server-<br />

Manager oder die Powershell mit dem<br />

Cmdlet »Install‐<strong>Windows</strong>Feature«. Die<br />

Option »‐source« des Commandlets gibt<br />

einen Pfad zu einem WIM-Image an. Findet<br />

der Server kein WIM-Image, lädt der<br />

Installations-Assistent notwendige Dateien<br />

über den <strong>Windows</strong>-Update-Service<br />

aus dem Internet.<br />

Core Server <strong>und</strong> GUI-Server<br />

anpassen<br />

Zur Konfiguration der IP-Einstellungen<br />

verwenden Sie besser nicht mehr das Befehlszeilentool<br />

»Netsh« wie in <strong>Windows</strong><br />

Server 2008 R2, sondern die Commandlets<br />

»New‐NetIPAddress« <strong>und</strong> »Get‐Net-<br />

IPConfiguration«, etwa<br />

Abbildung 1: Speichern einer XML-Datei <strong>im</strong> Server-Manager.<br />

‐ServerAddresses 192.168.178.4« ein.<br />

Mehrere DNS-Server werden mit Kommas<br />

getrennt aufgeführt.<br />

Das Commandlet »Set‐DnsClientServerAddress<br />

‐InterfaceIndex 12 ‐ResetServer«<br />

wechselt zu DHCP. Achten Sie darauf,<br />

jeweils die korrekte Indexnummer<br />

für den Netzwerkadapter zu verwenden.<br />

Diese erhalten Sie mit »Get‐NetIPConfiguration«.<br />

Einer <strong>Windows</strong>-Domäne<br />

treten Sie mit »Add‐Computer« bei, den<br />

Namen von Servern ändern Sie mit »Rename‐Computer«.<br />

Serverrollen <strong>und</strong> Features<br />

installieren<br />

klusive der Verwaltungstools. Soll der<br />

Server gleich noch automatisch neu starten,<br />

verwenden Sie zusätzlich die Option<br />

»‐restart«. Die Verwaltungstools alleine<br />

installiert »Install‐<strong>Windows</strong>Feature Hyper‐V‐Tools«.<br />

Die Installation von Features erfolgt<br />

dann mit dem Befehl »Add‐<strong>Windows</strong>Feature<br />

Features«, zum Beispiel<br />

mit »Add‐<strong>Windows</strong>Feature<br />

RSAT‐AD‐Powershell,RSAT‐AD‐Admin-<br />

Center« für die Installation der Active<br />

Directory-Verwaltungstools. Die Befehle<br />

funktionieren in der Powershell 2.0 von<br />

<strong>Windows</strong> Server 2008 R2 <strong>und</strong> in der<br />

neuen Powershell 3.0 von <strong>Windows</strong> Server<br />

2012.<br />

Neben der beschriebenen Möglichkeit,<br />

Rollen <strong>und</strong> Features über die Powershell<br />

zu installieren, indem Sie den Namen<br />

der Rolle <strong>und</strong> des Features angeben, können<br />

Sie in der Powershell auch die XML-<br />

Steuerungsdatei verwenden, die Sie <strong>im</strong><br />

Assistenten zum Installieren von neuen<br />

Rollen <strong>im</strong> letzten Fenster speichern können<br />

(Abbildung 1).<br />

Um auf einem anderen Server die gleichen<br />

Rollen <strong>und</strong> Features zu installieren,<br />

verwenden Sie die Powershell <strong>und</strong> geben<br />

die XML-Datei an. Dabei verwenden Sie<br />

das Cmdlet »Install‐<strong>Windows</strong>Feature«<br />

mit der Option »‐ConfigurationFilePath«,<br />

zum Beispiel »Install‐<strong>Windows</strong>Feature-<br />

New‐NetIPAddress ‐InterfaceIndex 12 U<br />

‐IPAddress 192.168.178.2 ‐PrefixLength 24 U<br />

‐DefaultGateway 192.168.178.1.<br />

Die DNS-Server tragen Sie mit »Set‐DNS-<br />

ClientServerAddress ‐InterfaceIndex 12<br />

Abbildung 2: Serverrollen in der Powershell über XML-Datei installieren.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

71


Know-how<br />

Powershell<br />

ConfigurationFilePath C:\Daten\iis.xml«<br />

(Abbildung 2).<br />

Test der Voraussetzungen<br />

für Active Directory<br />

Das Commandlet »Test‐ADDSDomain-<br />

ControllerInstallation« [1] testet, ob die<br />

Voraussetzungen für die Installation<br />

eines Domänencontrollers erfüllt sind.<br />

Für einen schreibgeschützten Domänencontroller<br />

machen Sie das Gleiche mit<br />

»Test‐ADDSReadOnlyDomainController-<br />

AccountCreation« [2].<br />

Die Voraussetzungen für die Installation<br />

einer neuen Domäne in Active Directory<br />

testet »Test‐ADDSDomainInstallation«<br />

(Abbildung 3). »Test‐ADDSForestInstallation«<br />

macht das Gleiche für eine neue<br />

Gesamtstruktur auf Basis von <strong>Windows</strong><br />

Server 2012. Damit Sie die Tests ausführen<br />

können, müssen Sie an verschiedenen<br />

Stellen noch Kennwörter eingeben.<br />

Diese akzeptiert das entsprechende Commandlet<br />

aber nur als sichere Eingabe. Ein<br />

Beispiel für den Befehl ist:<br />

Test‐ADDSDomainControllerInstallation U<br />

‐Domainname DNS‐Name der Domäne U<br />

‐SafeModeAdministratorPassword (read‐host U<br />

‐prompt Kennwort ‐assecurestring)<br />

Um einen neuen Domänencontroller zu<br />

installieren, verwenden Sie das Commandlet<br />

»Install‐ADDSDomainController«.<br />

Damit der Befehl funktioniert, geben<br />

Sie den Namen der Domäne an <strong>und</strong><br />

konfigurieren das Kennwort für den Verzeichnisdienst-Wiederherstellungsmodus<br />

als »SecureString«. Dazu dient folgender<br />

Befehl:<br />

Install‐ADDSDomainController U<br />

‐Domainname DNS‐Name der Domäne U<br />

‐SafeModeAdministratorPassword (read‐host U<br />

prompt Kennwort ‐assecurestring).<br />

Listing 1: Web Access erlauben<br />

01 $applicationPoolName = "Name des Anwendungspools für<br />

PSWA"<br />

02 $authorizationFile = "C:\windows\web\<br />

powershellwebaccess\data\AuthorizationRules.xml"<br />

03 c:\windows\system32\icacls.exe $authorizationFile /<br />

grant ('"' + "IIS AppPool\$applicationPoolName" +<br />

'":R') > $null<br />

Abbildung 3: Erfolgreicher Test der Installation eines neuen Domänencontrollers.<br />

Um einen Domänencontroller herunterzustufen,<br />

verwenden Sie am besten die<br />

Powershell <strong>und</strong> das Commandlet »UnInstall‐ADDSDomainController«:<br />

Sie müssen<br />

dabei mindestens noch das lokale Kennwort<br />

des Administrators festlegen, das als<br />

»SecureString« definiert wird. Die Syntax<br />

dazu sieht so aus:<br />

UnInstall‐ADDSDomainController U<br />

‐LocalAdministratorPassword (read‐host U<br />

‐prompt Kennwort ‐assecurestring)<br />

Mit »get‐help UnInstall‐ADDSDomainController«<br />

erhalten Sie mehr Informationen<br />

zu dem Befehl. Sie können Server auch<br />

in der Powershell benennen, neu starten<br />

<strong>und</strong> in Domänen aufnehmen. Dazu bietet<br />

die Powershell die Commandlets<br />

n »Rename‐Computer ‐Name Computername«<br />

n »Add‐Computer ‐DomainName Domänenname«<br />

n »Restart‐Computer«<br />

Auch die Einrichtung der Replikation lässt<br />

sich in der Powershell erledigen. Eine<br />

Liste der verfügbaren Befehle erhalten<br />

Sie mit »get‐command *adreplication*«.<br />

Um sich eine Hilfe zu den Commandlets<br />

anzuzeigen, verwenden Sie »get‐help<br />

Commandlet«. Sie können Standorte<br />

zum Beispiel auch in der Powershell erstellen.<br />

Dazu verwenden Sie den Befehl<br />

»New‐ADReplicationSite Standort«. Neue<br />

Standortverknüpfungen erstellen Sie beispielsweise<br />

mit:<br />

New‐ADReplicationSiteLink CORPORATE‐U<br />

BRANCH1 ‐SitesIncluded CORPORATE,BRANCH1 U<br />

‐OtherAttributes @{'options'=1}<br />

Abbildung 4: Wiederherstellungspunkte in der Powershell verwalten.<br />

Die Kosten <strong>und</strong> den Zeitrahmen der Synchronisierung<br />

können Sie bei diesem Aufruf<br />

mit den passenden Schaltern auch<br />

gleich festlegen:<br />

Set‐ADReplicationSiteLink CORPORATE‐U<br />

BRANCH1 ‐Cost 100 ‐ReplicationFrequencyU<br />

InMinutes 15<br />

Dieser Aufruf legt die Kosten auf 100<br />

fest, das Replikationsintervall auf 15 Minuten.<br />

Replikation in der<br />

Powershell testen<br />

Den Status der Replikation erfahren Sie mit<br />

dem Commandlet »Get‐ADReplication-<br />

UpToDatenessVectorTable Servername«.<br />

Eine Liste aller Server erhalten Sie mit:<br />

Get‐ADReplicationUpToDatenessVectorTable U<br />

* | sort Partner,Server | ft Partner,Server,U<br />

UsnFilter<br />

Um sich die einzelnen Standorte <strong>und</strong> die<br />

Domänencontroller der Standorte anzuzeigen<br />

verwenden Sie die beiden Commandlets:<br />

n »Get‐ADReplicationSite ‐Filter * | ft<br />

Name«<br />

n »Get‐ADDomainController ‐Filter * | ft<br />

Hostname,Site«<br />

Um die Replikationsverbindungen in der<br />

Powershell anzuzeigen, verwenden Sie<br />

den Befehl »get‐adreplicationconnection«.<br />

Auch ausführliche Informationen zu den<br />

einzelnen Standorten gibt die Powershell<br />

auf Wunsch aus. Dazu verwenden Sie<br />

den Befehl »Get‐ADReplicationSite ‐Filter<br />

*«. Weitere interessante Commandlets in<br />

diesem Bereich sind:<br />

72 Ausgabe 02-2013 Admin www.admin-magazin.de


Powershell<br />

Know-how<br />

n »Get‐ADReplicationPartnerMetadata«<br />

n »Get‐ADReplicationFailure«<br />

n »Get‐ADReplicationQueueOperation«<br />

Powershell Web Access<br />

<strong>Windows</strong> Powershell Web Access stellt<br />

eine webbasierte <strong>Windows</strong> Powershell-<br />

Konsole bereit. Auf diese Weise lassen<br />

sich Powershell-Befehle <strong>und</strong> ‐Skripts<br />

über eine Konsole in einem Webbrowser<br />

ausführen. Sie können mit Powershell<br />

Web Access auch über Smartphones <strong>und</strong><br />

Tablets remote auf die Powershell von<br />

Servern zugreifen. Dabei können Sie alle<br />

Commandlets nutzen, die auf dem Server<br />

verfügbar sind. Wenn Sie <strong>Windows</strong><br />

Powershell Web Access mit der Powershell<br />

installieren, werden die Verwaltungstools<br />

für den IIS nicht hinzugefügt:<br />

Install‐<strong>Windows</strong>Feature ‐Name U<br />

<strong>Windows</strong>PowershellWebAccess ‐ComputerName U<br />

Servername ‐IncludeManagementTools U<br />

‐Restart<br />

Nach der Installation von Powershell<br />

Web Access besteht der nächste Schritt<br />

in der Einrichtung des Gateways für<br />

Powershell Web Access. Das Commandlet<br />

»Install‐PswaWebApplication« bietet<br />

eine schnelle Möglichkeit, um Powershell<br />

Web Access zu konfigurieren.<br />

Sie können mit der Option »‐UseTest-<br />

Certificate« auch ein selbst signiertes<br />

SSL-Zertifikat installieren. Durch die<br />

Ausführung des Cmdlets wird die Powershell<br />

Web Access-Webanwendung<br />

<strong>im</strong> Standardwebsite-Container von IIS<br />

installiert. Die Webseite von PSWA erreichen<br />

Sie über den Link, »https://Servername/pswa«.<br />

Nachdem Sie den Powershell Web<br />

Access installiert <strong>und</strong> das Gateway mit<br />

der Webseite <strong>und</strong> dem Zertifikat eingerichtet<br />

haben, müssen Sie Benutzern<br />

noch den Zugriff auf die Powershell über<br />

den Web Access gestatten. Führen Sie<br />

in einer Powershell-Sitzung, die mit erhöhten<br />

Administratorrrechten geöffnet<br />

wurde, die Befehle in Listing 1 aus.<br />

Abbildung 5: Office 365 lässt sich ebenfalls mit der Powershell verwalten.<br />

Autorisierungsregeln erlauben es einem<br />

Benutzer, auf einen Computer <strong>im</strong> Netzwerk<br />

zuzugreifen. Der Zugriff ist auf eine<br />

best<strong>im</strong>mte Sitzungskonfiguration beschränkt.<br />

Im folgenden Beispiel wird dem<br />

Benutzer »administrator« in der Domäne<br />

»Contoso« der Zugriff für die Verwaltung<br />

des Computers »srv1.contoso.int« <strong>und</strong><br />

die Verwendung der Sitzungskonfiguration<br />

»microsoft.powershell« gestattet:<br />

Add‐PswaAuthorizationRule ‐UserName U<br />

Contoso\administrator ‐ComputerName srv1.U<br />

contoso.int ‐ConfigurationName microsoft.U<br />

powershell<br />

Powershell in <strong>Windows</strong> 7<br />

<strong>und</strong> ​8<br />

Die vorhandenen Wiederherstellungspunkte<br />

eines Systems lassen sich in der<br />

Powershell anzeigen. Dazu starten Sie die<br />

Powershell über die Startseite. Klicken<br />

Sie die Kachel über das Kontextmenü<br />

an, <strong>und</strong> starten Sie die Powershell mit<br />

Administratorrechten. Geben Sie den<br />

Befehl »Get‐ComputerRestorePoint« ein,<br />

um die Systemwiederherstellungspunkte<br />

anzuzeigen.<br />

Mit dem Befehl »Restore‐Computer<br />

SequenceNumber« setzen Sie den Computer<br />

zu dem Zeitpunkt des Wiederherstellungspunkts<br />

zurück, den Sie in der<br />

»SequenceNumber« angeben haben.<br />

Diese Nummer erfahren Sie über<br />

»Get‐ComputerRestorePoint«. Nach der<br />

Eingabe des Befehls startet der Assistent<br />

sofort mit seiner Arbeit, es erscheint<br />

keine Rückfrage.<br />

Mit dem Befehl »Checkpoint‐Computer<br />

‐description Beschreibung« erstellen Sie<br />

einen Wiederherstellungspunkt in der<br />

Powershell. Allerdings können Sie auf<br />

diesem Weg alle 24 St<strong>und</strong>en nur einen<br />

Wiederherstellungspunkt erstellen. Den<br />

Wiederherstellungspunkt können Sie später<br />

genauso in der grafischen Oberfläche<br />

verwalten, wie alle anderen auch. Eine<br />

ausführliche Hilfe zum Cmdlet erhalten<br />

Sie in der Microsoft-TechNet [3] <strong>und</strong> [4].<br />

Über die Powershell haben Sie auch die<br />

Möglichkeit, Systemwiederherstellungspunkte<br />

zeitgesteuert zu erstellen.<br />

Office 365 mit der<br />

Powershell verwalten<br />

Administratoren können alle Editionen<br />

von Office 365 auch ohne den Betrieb<br />

von lokalen Servern in der Powershell<br />

verwalten. Microsoft stellt die notwendigen<br />

Commandlets kostenlos zur Verfügung<br />

[5]. Eine Hilfe dazu finden Sie<br />

unter [6].<br />

Zur Verwaltung von Office 365 starten<br />

Sie die Verknüpfung »Microsoft Online<br />

Services‐Modul für <strong>Windows</strong> Powershell«<br />

in der Programmgruppe »Microsoft Online<br />

Services« oder laden mit »<strong>im</strong>port‐module<br />

MSOnline« die entsprechenden<br />

Commandlets. Das Commandlet »Connect‐MsolService«<br />

verbindet die Konsole<br />

mit Office 365. Der Befehl »get‐command<br />

*mso*« gibt eine Überblick der verfügbaren<br />

Befehle. Einstellungen wie das<br />

Ablaufdatum des Passworts nehmen Sie<br />

mit dem Commandlet »Set‐MsolUser«<br />

vor. (ofr)<br />

n<br />

Infos<br />

[1] Test-ADDSDomainControllerInstallation:<br />

[http:// technet. microsoft. com/ en‐us/​<br />

library/ hh974725. aspx]<br />

[2] Test-ADDSReadOnlyDomainControllerAccountCreation:<br />

[http:// technet. microsoft.​<br />

com/ en‐us/ library/ hh974721]<br />

[3] Checkpoint-Computer:<br />

[http:// technet. microsoft. com/ de‐de/​<br />

library/ dd315269. aspx]<br />

[4] Restore-Computer:<br />

[http:// technet. microsoft. com/ de‐de/​<br />

library/ dd347740. aspx]<br />

[5] Verwenden von <strong>Windows</strong> PowerShell<br />

für die Verwaltung von Office 365:<br />

[http:// onlinehelp. microsoft. com/ de‐de/​<br />

office365‐enterprises/ hh124998. aspx]<br />

[6] <strong>Windows</strong> Powershell-Cmdlets für Office 365:<br />

[http:// onlinehelp. microsoft. com/ de‐de/​<br />

office365‐enterprises/ hh125002. aspx]<br />

Der Autor<br />

Thomas Joos ist freiberuflicher IT-Consultant <strong>und</strong><br />

seit über 20 Jahren in der IT tätig. Neben seinen<br />

Projekten schreibt er praxisnahe Fachbücher<br />

<strong>und</strong> Fachartikel r<strong>und</strong> um <strong>Windows</strong> <strong>und</strong> andere<br />

Microsoft-Themen. Online trifft man ihn unter<br />

[http:// thomasjoos. spaces. live. com].<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

73


Test<br />

Flash Cache für VMs<br />

© gortan123, 123RF<br />

Im Test: Beschleunigerkarte von OCZ für ESX-Server<br />

Turbolader für VMs<br />

Der I/​O-Durchsatz ist ein klassischer Flaschenhals gerade in virtualisierten Umgebungen. Eine Flash-Cache-Karte<br />

mit zugehöriger Software von OCZ verspricht, die Engstelle aufzuweiten. Wir haben sie getestet. Jens-


Flash Cache für VMs<br />

Test<br />

weniger spärlich kommentierter Screenshots.<br />

Stößt der Admin unterwegs auf ein<br />

Problem, fehlt ihm so die Orientierung:<br />

Er weiß nicht, was erreicht werden sollte,<br />

oder wie die Komponenten hätten zusammenspielen,<br />

oder welche Funktionen<br />

sie hätten haben sollen – <strong>und</strong> so bleibt er<br />

hilflos zurück.<br />

Dass der unbedarfte Konfigurator in diese<br />

Falle tappt, ist schon allein deswegen<br />

wahrscheinlich, weil einerseits die Beschreibungen<br />

stellenweise mindestens<br />

mehrdeutig sind <strong>und</strong> andererseits einige<br />

der Softwarekomponenten ungewöhnlich<br />

<strong>und</strong> unerwartet reagieren. Bei der<br />

Einrichtung der nötigen virtuellen VXL-<br />

Maschine übern<strong>im</strong>mt zum Beispiel ein<br />

Konfigurationsskript die bereits von ihm<br />

selbst vogeschlagenen <strong>und</strong> eingetragenen<br />

Default-Werte nicht nach Bestätigung mit<br />

[Enter], wie es jedermann voraussetzen<br />

würde. Gleichzeitig filtert es he<strong>im</strong>lich <strong>und</strong><br />

ohne Rückmeldung die Benutzereingaben.<br />

Kommt der Admin nun nicht auf die<br />

eigentlich absurde Idee, dass er abschreiben<br />

soll, was bereits dasteht, muss er<br />

den Eindruck gewinnen, das Skript habe<br />

sich aufgehängt, denn es reagiert auf<br />

keinerlei andere Tastendrücke mehr. Aus<br />

all dem ergeben sich deutliche Abstriche<br />

am Nutzen der Dokumentation <strong>und</strong> der<br />

Benutzerfre<strong>und</strong>lichkeit der Software, zumindest<br />

in der Einrichtungsphase.<br />

Lohn der Mühe<br />

Ist die Software nach etlichen Mühen<br />

dann einmal richtig konfiguriert <strong>und</strong> angepasst,<br />

<strong>und</strong> versucht man bei einem<br />

passenden Workload aufs Tempo zu<br />

drücken, dann können die erreichbaren<br />

Datenübertragungsraten fraglos überzeugen.<br />

Mindestens fünf Clients sind in der<br />

Lage, mithilfe des Cache jeweils um die<br />

100 MB/​s von iSCSI-Targets zu lesen, sodass<br />

sich eine aggregierte Leserate von an<br />

die 500 MB/​s ergibt. Ohne die Beschleunigerkarte<br />

gehen in keiner Situation mehr<br />

als 100 MB/​s über das iSCSI-Netz (Abbildung<br />

2).<br />

Bei 500 MByte/​s würde es übrigens selbst<br />

für SATA 3.0 schon eng (ältere Versionen<br />

mit 150 <strong>und</strong> 300 MB/s) hätten längst<br />

aufgegeben) – iSCSI mit Gigabit-Ethernet<br />

aber, das man eventuell auch zu 10 GbE<br />

ausbauen könnte, hat noch genügend<br />

Luft nach oben.<br />

.10<br />

iSCSI<br />

.11<br />

iSCSI Net<br />

10.10.10.x<br />

.12<br />

.162<br />

Abbildung 1: Übersicht über den Versuchsaufbau.<br />

Für einen ersten Überblick verwendeten<br />

die Tester des <strong>ADMIN</strong>-<strong>Magazin</strong>s das bekannte<br />

File-Kopier-Utility »dd« :<br />

dd if=./testfile1 of=/dev/null bs=64k U<br />

iflag=direct<br />

ESXi<br />

Host<br />

Wir verordneten ihm eine Rekord-Größe<br />

von 64k <strong>und</strong> wiesen es an, wenn möglich<br />

den Buffercache des Filesystems zu<br />

umgehen. Dann starteten wir es nacheinander<br />

auf einer, zwei, drei, vier <strong>und</strong><br />

fünf virtuellen Maschinen gleichzeitig,<br />

die in einem Fall vom VXL-Cache unterstützt<br />

wurden <strong>und</strong> <strong>im</strong> anderen Fall nicht.<br />

In jeder Konstellation absolvierte »dd«<br />

.251<br />

Managemet Net<br />

192.168.111.x<br />

<strong>Windows</strong><br />

Host<br />

Z-Drive<br />

vCenter Client<br />

.126 .135<br />

zehn Durchläufe. Aus den Resultaten el<strong>im</strong>inierten<br />

wir jeweils den kleinsten <strong>und</strong><br />

den größten Wert <strong>und</strong> bildeten aus den<br />

verbliebenen acht Messergebnissen das<br />

arithmetische Mittel.<br />

Mit Tempo<br />

vCenter VM<br />

.126<br />

StoragePro<br />

VXL VM<br />

.210<br />

Benchmark VMs<br />

Die Leseleistung der unbeschleunigten<br />

Volumes (46,6 MB/​s) erreichte dabei von<br />

vornherein weniger als die Hälfte der beschleunigten<br />

Versionen (97,66 MB/​s) bei<br />

einer laufenden VM. Mit der Anzahl der<br />

um I/​Os konkurrierenden VMs n<strong>im</strong>mt<br />

in der unbeschleunigten Version jedoch<br />

Abbildung 2: Auf dem iSCSI-Netz laufen die Datenströme der parallel arbeitenden VMs zusammen <strong>und</strong><br />

erreichen bei fünf Lesern an die 500 MB/​s.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

77


Test<br />

Flash Cache für VMs<br />

die Performance deutlich stärker<br />

ab <strong>und</strong> sinkt bei fünf parallel<br />

arbeitenden VMs unter<br />

ein Drittel der Resultate mit<br />

Cache. Noch klarer lagen die<br />

Verhältnisse bei einem Benchmark<br />

mit iozone:<br />

iozone ‐i1 ‐I ‐c ‐e ‐w ‐x ‐s2g U<br />

‐r128k ‐l1 ‐u1 ‐t1 ‐F testfile<br />

Wir orientierten auch iozone<br />

darauf, ausschließlich <strong>und</strong><br />

mit Direct-I/​O ein wieder<br />

zwei GByte großes Testfile<br />

zu lesen. Die Record-Größe hatten wir<br />

auf 128 KByte eingestellt. iozone lief <strong>im</strong><br />

sogenannten Throughput-Mode <strong>und</strong> verwendete<br />

genau einen Prozess. Die Mittelwerte<br />

wurden wie oben beschrieben<br />

berechnet. Die entsprechenden Resultate<br />

zeigt Abbildung 3.<br />

Schreiben ist Gift<br />

So haben wir getestet<br />

MB/s<br />

160.00<br />

140.00<br />

120.00<br />

100.00<br />

80.00<br />

60.00<br />

40.00<br />

20.00<br />

Als ESX-Server verwendeten wir einen bewährten<br />

Rechner der Serie ProServ II von ExuSData.<br />

In ihm werkelten zwei Xeon Quadcore-Prozessoren<br />

X5667 (3 GHz) in einem Intel Motherboard<br />

S5520HC, das mit 16 GByte Memory bestückt<br />

war. In einem der insgesamt fünf PCI-Express-<br />

Steckplätze befand sich die SSD-Speicherkarte<br />

Z-Drive R4 von OCZ.<br />

An den Server waren zwei RAID-Systeme angeschlossen:<br />

Zum einen ein SCSI-Array transtec<br />

600 Premium mit 10 400-GByte-SATA-Platten,<br />

auf dem alle virtuellen Systemplatten der VMs<br />

lagen. Zum anderen das zu beschleunigende<br />

iSCSI-System (Abbildung 4), ein NASDeluxe NDL-<br />

21085T von starline, bestückt mit 10 2 TByte-<br />

SATA-Platten. Dieses System verfügte über<br />

zwei Gigabit-Ethernet-Schnittstellen (neben<br />

USB- <strong>und</strong> eSATA-Anschlüssen).<br />

0.00<br />

1 2 3 4 5<br />

parallel laufende VM<br />

Bis hierher haben wir reine Lese-Benchmarks<br />

betrachtet, <strong>und</strong> das aus gutem<br />

Gr<strong>und</strong>: Zwar werden von VXL auch<br />

Schreiboperationen gecacht, sie müssen<br />

aber aus Gründen der Konsistenz gegenüber<br />

dem Host bestätigt werden, sobald<br />

sie auf dem physischen Medium erfolgreich<br />

vollzogen wurden. Damit bringt der<br />

Cache hier so gut wie keinen Geschwindigkeitsvorteil<br />

– die Writes belegen in<br />

ihm aber Platz, den parallel laufende<br />

Leseoperationen dann nicht mehr nutzen<br />

können. Der Effekt ist, dass schon<br />

Workloads mit 50 Prozent Schreiboperationen<br />

auf das cachebeschleunigte Volume<br />

praktisch keinen Performancevorteil mehr<br />

haben. Die Schreiboperationen bremsen<br />

erfreulicherweise nicht zusätzlich, aber<br />

der Geschwindigkeitsgewinn ist perdu.<br />

Freilich gibt es viele leselastige Workloads,<br />

gerade auch in momentan so hoch<br />

gehandelten Disziplinen wie Big Data.<br />

Aber auch in profanen Alltagssituationen,<br />

etwa be<strong>im</strong> zeitgleichen Booten vieler<br />

VMs, überwiegt das Lesen. Dort hat<br />

der VXL-Cache seinen Platz, <strong>und</strong> dort<br />

wird er zu deutlichen Performancegewinnen<br />

<strong>und</strong> einer besseren Auslastung des<br />

ESX-Servers beitragen, dessen Storage damit<br />

eine viel höhere Anzahl gleichzeitig<br />

laufender VMs verträgt.<br />

Darüber hinaus ist der VXL-Cache sinnvoll<br />

in Umgebungen einsetzbar, in denen<br />

sich die Schreiboperationen auf best<strong>im</strong>mte<br />

Volumes konzentrieren lassen.<br />

Neuere Versionen der mitgelieferten Software<br />

erlauben es, die SSD so zu partitionieren,<br />

dass nur ein Teil als Cache, ein<br />

unbeschleunigt<br />

beschleunigt<br />

Abbildung 3: Durchsatz pro VM bei parallel arbeitenden virtuellen Maschinen bei<br />

iozone-Leseoperationen.<br />

Abbildung 4: Das zu beschleunigende iSCSI-System<br />

NASDeluxe NDL-21085T.<br />

anderer Teil dagegen als normales<br />

SSD-Laufwerk fungiert.<br />

Dann lassen sich schreibintensive<br />

Operationen auf das SSD-<br />

Laufwerk leiten, während der<br />

Cache auf derselben Speicherkarte<br />

etwa Teile einer Datenbank,<br />

die hauptsächlich gelesen<br />

werden, unterstützt (zum<br />

Beispiel manche Indizes).<br />

Benchmarks des Herstellers<br />

mit lang laufenden Data-<br />

Warehouse-Queries unter MS<br />

SQL Server 2012 sollen dank<br />

Einsatz der VXL-Software auf diese Weise<br />

eine Beschleunigung auf bis zu 1700 Prozent<br />

erfahren haben [1].<br />

Fazit<br />

Überall dort, wo sich Schreib- <strong>und</strong> Leseoperationen<br />

die Waage halten <strong>und</strong> nicht<br />

separieren lassen sowie dasselbe Medium<br />

betreffen, ist eine Unterstützung mit der<br />

Caching-Lösung nicht sinnvoll. Wo dagegen<br />

das Lesen überwiegt oder sich zumindest<br />

von den Schreiboperationen trennen<br />

lässt <strong>und</strong> wo möglichst viele VMs oder<br />

Prozesse gleichzeitig daran beteiligt sind,<br />

da beschleunigt die Lösung von OCZ den<br />

Datentransfer um den Faktor fünf oder<br />

mehr, reduziert den Datentransfer vom<br />

<strong>und</strong> zum SAN <strong>und</strong> erlaubt es dem ESX-<br />

Server von VMware, entsprechend mehr<br />

virtuelle Maschinen parallel zu betreiben<br />

– vorausgesetzt, er verfügt auch sonst<br />

über ausreichend Ressourcen. Der Cache<br />

kann dabei auch mehrere Hosts bedienen<br />

oder mit einem zweiten Z-Drive gespiegelt<br />

werden <strong>und</strong> lässt sich sogar mit der<br />

Migration von VMs zwischen Virtualisierungshosts<br />

vereinbaren.<br />

Das Ganze hat natürlich seinen Preis. Der<br />

liegt für die getestete Version bei 2560<br />

Euro für eine VXL-Lizenz inklusive einem<br />

Jahr Support <strong>und</strong> ohne Zusatzfeatures<br />

(wie etwa die Spiegelung des Cache) plus<br />

4,5 Euro pro GByte Flash auf der Cache-<br />

Karte, die es in Größen von 1,2 bis 3,2<br />

TByte gibt. (jcb)<br />

n<br />

Infos<br />

[1] Datenbankbeschleunigung mit VXL:<br />

[http:// www. oczenterprise. com/​<br />

whitepapers/ whitepaper‐accelerating‐ms‐s<br />

ql‐server‐2012. pdf]<br />

78 Ausgabe 02-2013 Admin www.admin-magazin.de


MEDIALINX<br />

IT-ACADEMY<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

powered by<br />

n Sparen Sie Zeit <strong>und</strong> Kosten mit unseren praxisorientierten Onlinetrainings.<br />

n Best<strong>im</strong>men Sie Ihr eigenes Lerntempo <strong>und</strong> nutzen Sie die flexible Zeiteinteilung.<br />

n Profitieren Sie vom Know-how der erfolgreichsten <strong>Linux</strong>-Zeitschrift Europas.<br />

LPIC-1 / LPIC-2 Trainings<br />

LPIC-1 (LPI 101 + 102)<br />

mit Ingo Wichmann,<br />

<strong>Linux</strong>hotel<br />

499 €<br />

LPIC-2 (LPI 201 + 202)<br />

mit Marco Göbel,<br />

Com Computertraining GmbH<br />

499 €<br />

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

Professional<br />

Institute<br />

www.medialinx-academy.de<br />

R<br />

Effiziente BASH-Skripte<br />

mit Klaus Knopper,<br />

Gründer der Knoppix-Distribution,<br />

knopper.net<br />

199 €<br />

Zarafa – die offiziellen Trainings<br />

mit Marco Welter,<br />

Zarafa Deutschland GmbH<br />

Zarafa Administrator<br />

249 €<br />

Zarafa Engineer<br />

249 €


Test<br />

NexentaOS<br />

© Dmitriy Shironosov, 123RF<br />

Zwei NexentaOS-Abkömmlinge <strong>im</strong> Vergleich<br />

Zwillingsforschung<br />

Was kann der Schrauber be<strong>im</strong> Storage sparen? Was gewinnt der, der lieber etwas tiefer in die Tasche greift <strong>und</strong><br />

eine schlüsselfertige Lösung erwirbt? Das <strong>ADMIN</strong>-<strong>Magazin</strong> hat eine Do-it-yourself-Lösung <strong>und</strong> eine vorkonfigurierte<br />

Appliance derselben Herkunft verglichen. Jens-Christoph Brendel<br />

Mit bis zu 80 Prozent Kostenvorteil <strong>im</strong><br />

Vergleich zu den etablierten Schwergewichten<br />

wie IBM oder EMC bewirbt Nexenta<br />

Systems seine offene Storage-Plattform.<br />

Dabei ist die kein Monolith: Auf<br />

ihrer Gr<strong>und</strong>lage existieren unterschiedliche<br />

Modelle selbst aufzubauender oder<br />

vorkonfigurierter Speichergeräte. Allen<br />

gemeinsam ist: Sie fußen auf NexentaOS,<br />

das den Kernel des Open-Solaris-Nachfolgers<br />

Illumos mit GNU Userland-Tools <strong>und</strong><br />

Debian Packaging verbindet. Das Herzstück<br />

ist <strong>im</strong>mer das moderne <strong>und</strong> leistungsstarke<br />

Dateisystem ZFS mit seinen<br />

Snapshots oder integrierten RAID-Leveln,<br />

unbegrenzter Kapazität <strong>und</strong> Dateigröße,<br />

Block-Level-Mirroring <strong>und</strong> so fort.<br />

Unterschiede<br />

NexentaOS (auch bekannt als Nexenta<br />

Core Platform, NCP) ist freie Software, die<br />

heute unter dem Dach von Illumos weiterexistiert.<br />

NexentaStor dagegen nennt<br />

sich zwar ebenfalls „Open Storage“, das<br />

meint aber nur, dass es offene Standards<br />

<strong>und</strong> Protokolle verwendet. Selbst ist es<br />

ein kommerziell lizenziertes Produkt.<br />

Bei NexentaStor werden die Community<br />

Edition <strong>und</strong> eine Enterprise Edition unterschieden.<br />

Die Community Edition ist<br />

kostenlos, aber nicht für Produktivsysteme<br />

gedacht (das verbietet die EULA<br />

explizit), auf max<strong>im</strong>al 18 TByte l<strong>im</strong>itiert,<br />

<strong>und</strong> es fehlen fortgeschrittene Features<br />

wie Active/​Active-HA-Cluster, das Virtual<br />

Machine Data Center-Plugin für die Integration<br />

verschiedener Hypervisor, Auto<br />

Sync oder die Möglichkeit, WORM-Speicher<br />

für die Archivierung einzusetzen.<br />

Für den He<strong>im</strong>gebrauch oder <strong>im</strong> akademischen<br />

Umfeld bietet die Community<br />

Edition jedoch eine unschlagbar günstige<br />

Lösung. Wer sich dagegen auf die Enterprise<br />

Edition fokussieren will oder muss,<br />

der findet sie in fertigen Appliances von<br />

Nexenta-Partnern wie Thomas Krenn,<br />

Boston, transtec oder EuroStor.<br />

Einen dritten Weg beschreitet Netgear:<br />

Ohne zertifizierter Nexenta-Partner zu<br />

sein, entwickelt es das eigene Storage-<br />

Betriebssystem ReadyDataOS auf der<br />

Gr<strong>und</strong>lage der freien Core Platform. Wir<br />

haben Netgear ReadyData 5200 exemplarisch<br />

zum Vergleich mit der Nexenta<br />

Community Edition herangezogen.<br />

Volumes <strong>und</strong> Shares<br />

Bei der Appliance von Netgear entfällt die<br />

Betriebssystem-Installation, die erledigt<br />

der Hersteller. Aber auch die Community-Version<br />

von Nexenta ist schnell <strong>und</strong><br />

problemlos aufgespielt. Problematischer<br />

könnte es dort höchstens werden, wenn<br />

externe Plattenspeicher anzubinden sind,<br />

die der Nexenta zugr<strong>und</strong>e liegende Illumos-Kernel<br />

beispielsweise mangels passender<br />

Treiber nicht auf Anhieb erkennt.<br />

Ansonsten reichen eine halbe St<strong>und</strong>e <strong>und</strong><br />

Antworten auf eine Handvoll einfacher<br />

Fragen, bis die ersten Shares am Netz<br />

sind.<br />

Bei der Einrichtung von Volumes <strong>und</strong><br />

Shares sind die Unterschiede schon etwas<br />

größer. Zunächst punktet Netgears<br />

ReadyDataOS am augenfälligsten damit,<br />

dass sich die Disks für ein aufzubauendes<br />

Volume mit wenigen Klicks in einer<br />

grafischen Gerätedarstellung auswählen<br />

lassen (Abbildung 1). Das ist praktisch<br />

<strong>und</strong> erleichtert die Orientierung.<br />

Verständlicherweise kann Nexenta, das<br />

nicht an ein best<strong>im</strong>mtes Gerät geb<strong>und</strong>en<br />

ist, sondern eine sehr breite Hardware-<br />

Palette unterstützt, nicht automatisch<br />

eine Frontansicht bieten: Hier muss man<br />

mit den weniger anschaulichen Solaris-<br />

Gerätenamen vorliebnehmen.<br />

NexentaStor kennt dafür neben der grafischen<br />

Oberfläche (Nexenta Management<br />

View, NMV) auch eine Textkonsole (Nexenta<br />

Management Console, NMC, Ab-<br />

80 Ausgabe 02-2013 Admin www.admin-magazin.de


NexentaOS<br />

Test<br />

Latenz ein eigenes Log Device verwenden<br />

soll oder nicht (was den Durchsatz<br />

steigern kann). Außerdem beherrscht nur<br />

die Community Edition User Quotas <strong>und</strong><br />

WebDAV oder Rsync als Zugriffsmethoden<br />

auf ein gesharetes Volume. Auf diese<br />

Features verzichtet Netgear (Tabelle 1).<br />

Abbildung 1: Eine grafische Geräteansicht verrät, in welchen Slots die Platten eines Volumes stecken<br />

(dunkelgrau: nicht zugewiesen, hellgrau: zugewiesen, ocker: Cache, grün: Spare Disk, blau: zum markierten<br />

Volume gehörig).<br />

bildung 2), die sich beispielsweise anbietet,<br />

wenn man best<strong>im</strong>mte Prozesse mit<br />

Skripten automatisieren will. Zwar kann<br />

der Admin auch bei Netgear einen SSH-<br />

Zugang aktivieren, dort fehlen dann aber<br />

spezielle Kommandos für das Anlegen,<br />

Anzeigen, Verwalten <strong>und</strong> Löschen von<br />

Storage-Objekten, mit denen die NMC<br />

aufwartet. Musste NexentaStor also in<br />

der B-Note der GUI Abzüge hinnehmen,<br />

punktet es jetzt auf der Kommandozeile.<br />

RAID & Co.<br />

Nexenta bietet neben einer Spiegelung<br />

(RAID 1) die in ZFS integrierten RAID-<br />

Z-Level, die hier nach ZFS-Manier auch<br />

Red<strong>und</strong>ancy Groups heißen: RAID-1,<br />

RAID-Z1 (analog RAID-5), RAID-Z2 (analog<br />

RAID-6) <strong>und</strong> RAID-Z3 (mit dreifacher<br />

Parität). Netgear nutzt diese Modi ebenfalls,<br />

nennt sie aber nach klassischem<br />

Vorbild nicht ganz zutreffend RAID-5 <strong>und</strong><br />

RAID-6, weil es diese Bezeichnungen<br />

für gebräuchlicher<br />

hält. Im Vergleich zur Nexenta<br />

Community Edition bietet das<br />

Netgear-System allerdings<br />

kein RAID-Z3 mit dreifacher<br />

Parität, was bei sehr großen<br />

Volumes ein Vorteil sein kann,<br />

den der Netgear-Nutzer entbehren<br />

muss.<br />

Nach dem Anlegen eines<br />

Volumes kann man bei Nexenta<br />

wie bei Netgear weitere<br />

Platten zuweisen, die als Cache fungieren<br />

sollen. Am besten verwendet man<br />

dafür allerdings SSDs. Beide Probanden<br />

können sowohl Lese- wie Schreibcaches<br />

verwenden, ZFS kennt darüber hinaus<br />

Hybrid Storage Pools, die DRAM, Flash<br />

<strong>und</strong> Platten kombinieren.<br />

Einfach oder detailliert<br />

In beiden Nexenta-Varianten lassen sich<br />

Quotas einrichten (bei Netgear aber nur<br />

pro Share, nicht pro User) oder eine<br />

best<strong>im</strong>mte Mindestgröße für ein Share<br />

reservieren. Die Nexenta Community<br />

Edition erlaubt allerdings die feineren<br />

Einstellungen: So kann man nur hier eine<br />

Rekordgröße für das Filesystem einstellen,<br />

die Case Sensitivity justieren, bei<br />

den Zugriffsrechten verschiedene Modi<br />

der Vererbung von ACLs vorgeben oder<br />

best<strong>im</strong>men, ob ein Diskpool bei synchronen<br />

Operationen <strong>im</strong> Interesse geringer<br />

Abbildung 2: Die Nexenta Management Console ermöglicht die Automatisierung<br />

von Verwaltungsaufgaben durch Skripte.<br />

Protokolle <strong>und</strong> Dienste<br />

Beide Probanden beherrschen die klassischen<br />

Storage-Protokolle CIFS (SMB),<br />

NFS (jeweils inklusive Version 4), FTP<br />

<strong>und</strong> iSCSI. Bei der Nexenta Community<br />

Edition bleiben allerdings Mac-Anwender<br />

außen vor, das Apple Filing Protocol<br />

(AFP) kennt nur das Gerät von Netgear.<br />

Sowohl unter NexentaStor wie unter<br />

Ready DataOS lassen sich zudem spezielle<br />

Dienste konfigurieren. Bei der Community<br />

Edition von NexentaStor sind das:<br />

n Auto-Tier, das via »rsync« eine Kopie<br />

eines Volumes auf lokalen oder entfernten<br />

Platten <strong>im</strong> Sinne eines Diskto-Disk-Backups<br />

erzeugt. Als Quelle<br />

kommen auch Snapshots infrage.<br />

n Auto-Snap, das periodisch Snapshots<br />

eines Folders oder Volumes anlegt.<br />

n Auto-Scrub, das periodisch die Konsistenz<br />

von Volumes anhand der ZFS-<br />

Checksummen verifiziert.<br />

Die hier nicht getestete Enterprise Edition<br />

kennt darüber hinaus noch weitere Services,<br />

darunter fortlaufend aktualisierte<br />

Snapshots auf entfernte Platten (Auto-<br />

Sync) <strong>und</strong> eine Echtzeit-Replikation<br />

zwischen zwei NexentaStor-Appliances<br />

(Auto-CDP).<br />

Be<strong>im</strong> Netgear-System ist Replikation bereits<br />

inbegriffen, das Feature muss nur<br />

noch aktiviert werden. Dann vermittelt es<br />

den Zugang zu einem Online-Portal <strong>und</strong><br />

konfiguriert eine sichere Peer-to-Peer-Verbindung<br />

zwischen den beteiligten ReadyNAS-Systemen,<br />

die dank<br />

einer patentierten NAT-Traversal-Technik<br />

den Eindruck<br />

vermittelt, als befänden sich<br />

die beiden beteiligten Speicher<br />

<strong>im</strong> selben Subnetz. Port<br />

Forwarding oder Dynamic<br />

DNS sind dafür nicht extra<br />

nötig. Anschließend kann der<br />

Admin zwischen einer zeitgesteuerten<br />

Replikation (Periodic<br />

Replication) <strong>und</strong> einer<br />

aktivitätsgetriebenen Version<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

81


Test<br />

NexentaOS<br />

auch automatisch mit einer vorgegebenen<br />

Frequenz.<br />

Benutzer <strong>und</strong> Rechte<br />

Abbildung 3: Die schickeren Charts hat eindeutig das Netgear-System. Außerdem kann es das bessere<br />

Hardware-Monitoring bieten, weil es weiß, worauf es läuft.<br />

Tabelle 1: Features Netgear ReadyData 5200<br />

Feature ReadyData 5200<br />

Modell ReadyDATA 5200<br />

Hersteller<br />

Netgear<br />

Betriebssystem NexentaOS (Basis<br />

Solaris)<br />

iSCSI<br />

AFP<br />

Preis<br />

7 400 Euro<br />

HTTP/​HTTPS<br />

Hardware<br />

Prozessor Intel Xeon X3450,<br />

2.67GHz<br />

FTP/​FTPS<br />

TFTP<br />

Memory (max.)<br />

16 GByte<br />

SSH<br />

Netzwerkinterfaces 2 x GbE, 2 x 10 GbE DHCP-Client<br />

Netzteile 2<br />

UPnP (Bonjour)<br />

Lüfter<br />

4 (3 x Sys Fan, Software-Features<br />

1 x CPU Fan)<br />

Verschlüsselung<br />

Disk-Slots<br />

12 (60 <strong>im</strong> Vollausbau<br />

mit Erweiterungsunit) Kompression<br />

Festplattentypen SAS/​SATA/​SSD/​NL-SAS Deduplikation<br />

max. Plattengröße 4 TByte<br />

Replikation<br />

USB-Schnittstelle(n) 2<br />

Snapshots<br />

e-SATA-Schnittstelle(n) nein, SAS-Konnektor<br />

für Erweiterung<br />

Antivirus Protection<br />

Backup<br />

LCD-Panel<br />

nein<br />

Web-GUI<br />

Bauform<br />

rack mountable, 2U Logging<br />

Services<br />

IPv4<br />

ja<br />

Ressourcen-Monitor<br />

SNMP<br />

IPv6<br />

ja<br />

S.M.A.R.T-Daten<br />

NFS V3<br />

ja<br />

interne Apps<br />

NFS V4<br />

nein<br />

Lights Out Management<br />

wählen (Continuous Replication). Letztere<br />

bietet eine höhere Sicherheit, weil<br />

sie sofort nach Änderungen aktiv wird,<br />

ohne erst den Ablauf eines best<strong>im</strong>mten<br />

Zeitintervalls abzuwarten. Beide Replikationsarten<br />

sind jeweils auf System- oder<br />

Volume-Ebene möglich.<br />

Natürlich verfügt auch das Netgear-System<br />

über die Möglichkeit, Snapshots zu<br />

erzeugen <strong>und</strong> zwar sowohl manuell wie<br />

Feature ReadyData 5200<br />

Services<br />

CIFS/​SMB<br />

ja<br />

ja (per Volume)<br />

ja<br />

nein<br />

ja<br />

ja<br />

ja, Blocklevel<br />

ja<br />

nein<br />

ja<br />

ja<br />

ja<br />

ja<br />

ja<br />

nein<br />

nein<br />

IPMI<br />

Be<strong>im</strong> Einrichten von lokalen Benutzern<br />

erlebt der Admin ein Deja-vu: Wieder<br />

geht es mit Netgears ReadyDataOS etwas<br />

schneller <strong>und</strong> leichter, dafür aber mit Nexentas<br />

Community Edition feingranularer.<br />

Im ersten Fall ist mit Benutzername, Passwort,<br />

Mailadresse <strong>und</strong> pr<strong>im</strong>ärer Gruppe<br />

schon alles eingestellt, <strong>im</strong> zweiten Fall<br />

kann man zusätzlich fein abst<strong>im</strong>men,<br />

welche Aktionen über Disks, Volumes<br />

<strong>und</strong> Shares dem Benutzer gestattet sein<br />

sollen. Damit lassen sich prinzipiell auch<br />

rollenbasierte Konzepte realisieren, die<br />

es zum Beispiel dem <strong>Samba</strong>-Admin verbieten<br />

würden, die iSCSI-Ressourcen zu<br />

editieren.<br />

Beide Probanden können auch Benutzer<br />

aus einem Active Directory einbinden.<br />

Mit LDAP kommt allerdings nur NexentaStor<br />

zurecht. Dabei unterstützt es eine<br />

Reihe verschiedener LDAP-Server darun-<br />

Feature ReadyData 5200<br />

<strong>ADMIN</strong>-GUI, kein Filemanager<br />

ja<br />

nein<br />

ja, nicht supported<br />

ja<br />

nein<br />

Software-Features<br />

Port-Trunking/​NIC- ja<br />

Teaming/​Bonding<br />

Access Rights Management<br />

Max Anzahl Users 60 000<br />

Max Anzahl User 60 000<br />

Groups<br />

Max Anzahl Network unl<strong>im</strong>ited<br />

Shares<br />

Import/​Export Users ja<br />

User Quota Management nein<br />

Domain Authentication Integration<br />

Microsoft Active Directory<br />

ja<br />

(AD)<br />

LDAP Server<br />

nein<br />

LDAP Client<br />

nein<br />

RAID-Level<br />

JBOD<br />

nein<br />

RAID-Level 0,1,5,6,10<br />

Global Spare Disk ja<br />

Filesysteme (intern)<br />

Ext3<br />

nein<br />

Ext4<br />

nein<br />

XFS<br />

nein<br />

ZFS<br />

ja<br />

BTRFS<br />

nein<br />

WAFL<br />

nein<br />

82 Ausgabe 02-2013 Admin www.admin-magazin.de


NexentaOS<br />

Test<br />

ter OpenLDAP, Apache DS, Red Hat 389<br />

oder Oracle Directory Services.<br />

Performance <strong>und</strong><br />

Monitoring<br />

Ein direkter Vergleich von Benchmarkergebnissen<br />

wäre in diesem Fall nicht<br />

sonderlich sinnvoll: Der Server, auf dem<br />

wir die Nexenta Community Edition installierten,<br />

verfügte mit zwei Quadcore-<br />

Xeon-Prozessoren über mehr als ausreichend<br />

Rechenpower, Gigabit Ethernet bot<br />

hinlänglich Netzwerk-Bandbreite. Dazu<br />

war der Server durch 16 GByte RAM auch<br />

mit einer guten Portion Memory ausgestattet.(Allerdings<br />

empfiehlt Nexenta 48<br />

GByte RAM, bei Einsatz der Deduplikation<br />

gar 192 GByte, weil die meisten der<br />

dabei verwendeten Informationen <strong>im</strong><br />

RAM gehalten werden. Mit der Speichermenge<br />

gemäß dieser Empfehlung wären<br />

wir wahrscheinlich schneller gewesen,<br />

allerdings zu höheren Kosten).<br />

Abbildung 4: Anstelle der Diagramme verwendet Nexenta Zeigerinstrumente für einen Statusüberblick.<br />

In dieser Situation machen die Platten<br />

einen Unterschied, den man jeweils in<br />

Relation zu ihrem Preis beurteilen muss.<br />

Wir konnten aus technischen Gründen<br />

nicht mit identischen Platten in beiden<br />

Speichersystemen arbeiten, weshalb die<br />

Messwerte nur bedingt vergleichbar sein<br />

können. Außerdem verfügte in unserer<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

powered by<br />

MEDIALINX<br />

IT-ACADEMY<br />

Sparen Sie Zeit <strong>und</strong> Kosten mit unseren<br />

praxisorientierten Onlinetrainings.<br />

Best<strong>im</strong>men Sie Ihr eigenes Lerntempo<br />

<strong>und</strong> nutzen Sie die flexible Zeiteinteilung.<br />

Effiziente BASH-Skripte<br />

mit Klaus Knopper,<br />

KNOPPER.NET<br />

199 €<br />

Konzentriertes BASH-Wissen<br />

vom Gründer der Knoppix-Live-<br />

Distribution.<br />

Lösen Sie komplexe Aufgaben mit<br />

schnellen Ad-hoc-Lösungen auf der<br />

Kommandozeile. Automatisieren<br />

Sie Ihre System administration mit<br />

Hilfe von Skripten.<br />

www.admin-magazin.de<br />

Admin<br />

83<br />

Ausgabe 02-2013<br />

www.medialinx-academy.de


Test<br />

NexentaOS<br />

Be<strong>im</strong> Vergleich des Monitorings sammelt<br />

das Netgear-System die ersten<br />

Pluspunkte. Zum einen kennt es seine<br />

eigene Hardware <strong>und</strong> kann sie deshalb<br />

besser überwachen – beispielsweise<br />

liefert es Temperaturen <strong>und</strong> Lüfterdrehzahlen.<br />

Zum anderen bringt es für die<br />

wichtigsten Parameter – Volume- <strong>und</strong><br />

Netzwerkdurchsatz sowie Auslastung<br />

des Speicherplatzes – vorbereitete RRD-<br />

Diagramme mit (Abbildung 3).<br />

Allerdings kann man auch in der NexentaStor<br />

Community Edition nicht nur<br />

Gauges (Abbildung 4), sondern auch solche<br />

Diagramme haben – man muss sie<br />

sich nur zusammenklicken (Abbildung<br />

5). Der Vorteil dabei ist wiederum die<br />

höhere Flexibilität. Der Admin kann dabei<br />

aus r<strong>und</strong> 50 Parametern wählen, die<br />

er dann in Balken- oder Liniendiagrammen<br />

einzeln oder gemeinsam dargestellt<br />

haben möchte.<br />

Fazit<br />

Abbildung 5: Auch die NexentaStor Community Edition kennt Charts. Dafür sind zwei Handgriffe mehr nötig,<br />

dafür sind sie flexibler.<br />

Ausstattung nur das Netgear-System über<br />

ein SSD-Modul, das wir dort zeitweilig<br />

als Lese-Cache eingerichtet hatten.<br />

Mittelschnell<br />

Um dennoch mit ein paar Zahlen die<br />

Größenordnung zu markieren: Das Netgear-System<br />

konnte von einem via iSCSI<br />

angeb<strong>und</strong>enen RAID-6 mit durchschnittlich<br />

60,8 MByte/​s lesen <strong>und</strong> darauf mit<br />

45,3 MByte/​s schreiben. Etwas schneller<br />

war die Nexenta-Installation, die von einem<br />

Raid-Z2-Volume via NFSv4 mit 66,8<br />

MByte/​s lesen konnte. Alle diese Werte<br />

(jeweils mit iozone <strong>im</strong> Throughput-Mode<br />

mit 64 KByte Record- <strong>und</strong> 2 GByte File<br />

Size ermittelt) sind nicht schlecht, aber<br />

auch nicht erstaunlich hoch, sie liegen<br />

<strong>im</strong> Mittelfeld.<br />

Netgears ReadyDataOS bietet eine einfach<br />

zu benutzende, schlüsselfertige Lösung<br />

mit schöner Optik. Wer sich nicht<br />

übermäßig tief mit Storage-Technologie<br />

befassen will, der findet hier eine bequem<br />

bedienbare Software. Dazu kommen<br />

als Pluspunkte für ein besseres Monitoring<br />

insbesondere der Hardware, eine<br />

integrierte Replikation sowie Hard- <strong>und</strong><br />

Software aus einer Hand.<br />

Nexenta bietet stattdessen exklusiv<br />

RAID-Z3, die Textkonsole <strong>und</strong> generell<br />

an vielen Stellen etwas feinere Möglichkeiten,<br />

die Konfiguration abzust<strong>im</strong>men,<br />

was allerdings auch mehr Know-how voraussetzt.<br />

Die kostenlose Nexenta Edition<br />

ist nicht an eine fixe Hardware geb<strong>und</strong>en,<br />

was einerseits Freiheitsgrade eröffnet, andererseits<br />

die Möglichkeiten einschränkt,<br />

Soft- <strong>und</strong> Hardware schon auf Herstellerseite<br />

aufeinander einzustellen.<br />

Es verblüfft nicht weiter, dass Komfort<br />

auch seinen Preis hat: Um die 5200 Euro<br />

ohne Platten <strong>und</strong> r<strong>und</strong> 7400 Euro bestückt<br />

mit Platten verlangt Netgear. Ein<br />

geeigneter Server, auf dem sich die Community-Version<br />

von Nexenta samt einiger<br />

Platten installieren ließe, wäre – ebenfalls<br />

diskless – vielleicht für die Hälfte<br />

der 5000 Euro erhältlich. Außerhalb des<br />

privaten oder akademischen Bereiches<br />

müsste man jedoch die Nexenta Enterprise<br />

Edition benutzen, <strong>und</strong> hier bekäme<br />

man eine Einstiegskonfiguration mit vorkonfigurierter<br />

Hardware ebenfalls kaum<br />

unter 5000 Euro. (jcb)<br />

n<br />

Tabelle 2: NexentaStor CE Software Features<br />

Software-Features<br />

Verschlüsselung<br />

Kompression<br />

Deduplikation<br />

Replikation<br />

Snapshots<br />

Antivirus Protection<br />

Backup<br />

Web-GUI<br />

Logging<br />

Ressourcen-Monitor<br />

SNMP<br />

S.M.A.R.T-Daten<br />

interne Apps<br />

NexentaStor CE<br />

nein<br />

ja<br />

ja<br />

nein<br />

ja<br />

nein<br />

nein<br />

ja<br />

ja<br />

ja<br />

nein<br />

nein<br />

nein<br />

Software-Features NexentaStor CE<br />

Lights Out Management nein<br />

Port-Trunking/​NIC-Teaming/​ ja<br />

Bonding<br />

Access Right Management<br />

Max Anzahl Users<br />

nein<br />

Max Anzahl User Groups nein<br />

Max Anzahl Network Shares nein<br />

Import/​Export Users nein/​nein<br />

User Quota Management ja<br />

Domain Authentication Integration<br />

Microsoft Active Directory (AD) ja<br />

LDAP Server<br />

ja<br />

LDAP Client<br />

ja<br />

Software-Features<br />

RAID-Level<br />

JBOD<br />

RAID-Level<br />

Global Spare Disk<br />

Filesysteme (intern)<br />

Ext3<br />

Ext4<br />

XFS<br />

ZFS<br />

BTRFS<br />

WAFL<br />

NexentaStor CE<br />

ja<br />

1, RAID-Z1, RAID-<br />

Z2, RAID-Z3<br />

ja<br />

nein<br />

nein<br />

nein<br />

ja<br />

nein<br />

nein<br />

84 Ausgabe 02-2013 Admin www.admin-magazin.de


springer-vieweg.de<br />

Neue Bücher<br />

aus der Informatik<br />

Christine Wolfinger<br />

<strong>Linux</strong>-Unix-Kurzreferenz<br />

Für Anwender, Entwickler <strong>und</strong><br />

Systemadministratoren<br />

2013. ca. 150 S. 3 Abb.,<br />

1 in Farbe. € (D) 14,99<br />

ISBN 978-3-642-34723-8<br />

Dieses handliche Nachschlagewerk<br />

enthält alle relevanten<br />

Informationen für <strong>Linux</strong>- oder<br />

Unix-Anwender, -Entwickler<br />

<strong>und</strong> -Administratoren. Es ist<br />

die ideale Ergänzung zu „Keine<br />

Angst vor <strong>Linux</strong>/Unix“ der<br />

gleichen Autorin, das in der<br />

Reihe Xpert.press erscheint.<br />

Christine Wolfinger<br />

Keine Angst vor<br />

<strong>Linux</strong>/Unix<br />

in Lehrbuch für <strong>Linux</strong><strong>und</strong><br />

Unix-Anwender<br />

Reihe: Xpert.press<br />

11. Aufl. 2013. XII, 467 S.<br />

450 Abb. Geb. € (D) 34,95<br />

ISBN 978-3-642-32078-1<br />

Dieses Buch bietet einen<br />

leichten Einstieg sowohl in<br />

<strong>Linux</strong> als auch in Unix-Systeme<br />

wie Solaris, HP-UX <strong>und</strong><br />

AIX. Aus der Vielfalt der Kommandos<br />

<strong>und</strong> deren mannigfachen<br />

Variationsmöglichkeiten<br />

ist das Wesentliche für den<br />

Anwender herausgefiltert. An<br />

vielen praktischen Beispielen<br />

wird gezeigt, wie einfach man<br />

mit den <strong>Linux</strong>-/Unix-Kommandos<br />

funktionell arbeiten kann.<br />

Die 11. Auflage dreht sich in<br />

erster Linie um die unter <strong>Linux</strong><br />

verwendete „Bash“, die auch<br />

auf den meisten Unix-Derivaten<br />

mit eingesetzt wird. Besonders<br />

beliebt ist die Kurzreferenz<br />

<strong>im</strong> Anhang mit den alphabetisch<br />

sortierten häufig<br />

benutzten Kommandos <strong>und</strong><br />

wichtigen Informationen über<br />

die Shell-Programmierung.<br />

Marcus Grande<br />

100 Minuten für<br />

Konfigurationsmanagement<br />

Kompaktes Wissen nicht nur<br />

für Projektleiter <strong>und</strong> Entwickler<br />

2013. XI, 157 S. 23 Abb.<br />

€ (D) 24,95<br />

ISBN 978-3-8348-1908-6<br />

In der Produkt-, System- <strong>und</strong><br />

Softwareentwicklung spielt<br />

die professionelle Umsetzung<br />

<strong>im</strong> Bereich des Konfigurationsmanagements<br />

eine entscheidende<br />

Rolle für den Erfolg<br />

der gesamten Entwicklung<br />

<strong>und</strong> für das entstehende<br />

Produkt. Dieses Buch vermittelt<br />

in kompakter Form das<br />

notwendige Gr<strong>und</strong>wissen für<br />

Konfigurationsmanagement.<br />

Begleitet werden die Ausführungen<br />

von Praxiserfahrungen<br />

<strong>und</strong> Beispielvorlagen.<br />

Dietmar Abts<br />

Gr<strong>und</strong>kurs JAVA<br />

Von den Gr<strong>und</strong>lagen<br />

bis zu Datenbank- <strong>und</strong><br />

Netzanwendungen<br />

7., akt. Aufl. 2013. XII, 469 S.<br />

20 Abb. € (D) 29,95<br />

ISBN 978-3-8348-2534-6<br />

In diesem Gr<strong>und</strong>lagenwerk<br />

werden die Fahrerassistenzsysteme<br />

für aktive Sicherheit <strong>und</strong><br />

Fahrerentlastung in Aufbau<br />

<strong>und</strong> Funktion ausführlich erklärt.<br />

Dazu zählen die bekannten<br />

<strong>und</strong> mittlerweile zur<br />

Standardausstattung zählenden<br />

Systeme wie ABS, ESP<br />

oder ACC genauso wie die<br />

Systeme zum Kollisionsschutz,<br />

für den Fahrspurwechsel oder<br />

zum komfortablen Einparken.<br />

Die dazu erforderlichen Komponenten<br />

wie Sensoren, Aktoren,<br />

mechatronische Subsysteme<br />

<strong>und</strong> Betätigungselemente<br />

werden dargestellt,<br />

ebenso die nutzergerechte<br />

Gestaltung der Mensch-Maschine-Schnittstelle<br />

zwischen<br />

Assistenzsystem <strong>und</strong> Fahrer.<br />

Drei Kapitel über die Besonderheiten<br />

von Fahrerassistenzsystemen<br />

bei Nutzfahrzeugen<br />

<strong>und</strong> Motorrädern r<strong>und</strong>en<br />

den umfassenden Ansatz<br />

ab.<br />

Einfach bestellen: SpringerDE-service@springer.com Telefon +49 (0)6221 / 3 45 – 4301<br />

Änderungen vorbehalten. Erhältlich <strong>im</strong> Buchhandel oder be<strong>im</strong> Verlag. Innerhalb Deutschlands liefern wir versandkostenfrei.


Security<br />

Tcpdump<br />

in neueren Versionen, dass das gesamte<br />

Paket aufgezeichnet wird. Abbildung 1<br />

gliedert einen Beispiel-Dump auf, <strong>und</strong><br />

Tabelle 1 zeigt einige weitere Kommandozeilen-Optionen.<br />

Dateien lesen <strong>und</strong> schreiben<br />

Mit der Option »‐w« kann Tcpdump in<br />

eine Datei schreiben <strong>und</strong> mit »‐r« daraus<br />

lesen:<br />

$ sudo tcpdump ‐i wlan0 ‐w dumpfile001<br />

$ sudo tcpdump ‐r dumpfile.pcap<br />

© Monika Wisniewska, 123RF<br />

Einbruchserkennung mit »tcpdump«<br />

Der Spürh<strong>und</strong><br />

Das Tool »tcpdump« ist ein Netzwerk-Sniffer <strong>und</strong> eignet sich für die<br />

Klärung von Sicherheitsvorfällen in Netzwerken. Es sollte in keiner Werkzeugkiste<br />

fehlen. David J. Dodd<br />

»tcpdump« [1] ist ein weitverbreitetes<br />

Tool zum Auffangen, Parsen <strong>und</strong> Analysieren<br />

von Netzwerkverkehr. Es wurde<br />

von der Network Reseach Group des<br />

Lawrence Berkeley National Laboratory<br />

in Berkeley entwickelt <strong>und</strong> wird zusammen<br />

mit einer C/​C++-Bibliothek namens<br />

»libpcap« von deren Entwicklern<br />

betreut. Das Tool kann sehr große binäre<br />

Files analysieren, die zu umfangreich<br />

wären, um darin etwa mit Wireshark nebenbei<br />

nach relevanten Informationen zu<br />

suchen. Tcpdump ist in den meisten <strong>Linux</strong>-Distributionen<br />

enthalten, andernfalls<br />

findet man Projektinformationen <strong>und</strong> den<br />

Code auf Sourceforge [2].<br />

Tcpdump läuft auf einer lokalen Maschine<br />

<strong>und</strong> schreibt oder liest den Netzwerk-Traffic<br />

in oder aus einem File. Die<br />

gr<strong>und</strong>legende Syntax zum Capturen von<br />

Paketen ist:<br />

tcpdump ‐n ‐I interface ‐s snaplen<br />

Abbildung 1: Die Ausgabe von Tcpdump. Das bedeuten die Abschnitte einer Zeile.<br />

Darin bedeutet »‐n«, dass »tcpdump«<br />

nicht versuchen soll, die IP-Adressen in<br />

Namen zu übersetzen, auf »‐I« folgt das<br />

Interface, das benutzt werden soll <strong>und</strong><br />

»‐s« best<strong>im</strong>mt, wie viel von jedem Paket<br />

zu speichern ist (1515 Bytes sind gewöhnlich<br />

genug). Gibt man keine Größe<br />

vor, werden nur die ersten 68 Bytes mitgeschnitten.<br />

Dagegen bewirkt der Wert 0<br />

Möchte man die Files während der Aufzeichnung<br />

mitlesen, benutzt man<br />

tcpdump ‐n ‐I eth1 ‐s 1515 U<br />

‐l | tee output.txt<br />

Dieses Kommando schickt den Inhalt des<br />

Zeilenpuffers von tcpdump mithilfe des<br />

»tee«-Utilitys gleichzeitig in eine Datei<br />

<strong>und</strong> auf den Bildschirm. Die Datei hat so<br />

allerdings nicht das Binärformat. Braucht<br />

man das, lässt man am besten zwei Instanzen<br />

von »tcpdump« laufen.<br />

Zeitstempel<br />

Wenn »tcpdump« durch das Netz wandernde<br />

Pakete mittels »libcap« in deren<br />

Format aufzeichnet, versieht es jedes<br />

Paket mit einem Zeitstempel. Diese Markierung<br />

kann man mit dem Flag »‐ttt«<br />

ausweiten, dann enthält der Zeitstempel<br />

auch das Datum (Abbildung 2). Wer<br />

die von »tcpdump« reportierten Zeitdifferenzen<br />

nicht versteht <strong>und</strong> absolut sicher<br />

gehen möchte, der kann auch die<br />

Option »‐tt« nutzen, die die Anzahl Sek<strong>und</strong>en<br />

<strong>und</strong> Mikrosek<strong>und</strong>en seit Beginn<br />

der Unix-Epoche anzeigt (Abbildung 3).<br />

Die nützlichen Optionen aus Tabelle 2<br />

helfen, den Umfang der Aufzeichnungen<br />

zu begrenzen.<br />

Paketinformationen<br />

Um die benötigten Informationen aus einem<br />

Paket herauszufischen, muss man<br />

wissen, wo man suchen muss. Tcpdump<br />

beginnt mit der Zählung der Bytes <strong>im</strong><br />

Paket-Header an der Position »0«. Das<br />

13te Byte enthält die TCP-Flags, die Abbildung<br />

4 zeigt. Sind zum Beispiel die<br />

»SYN«- <strong>und</strong> »ACK«-Flags gesetzt, ergibt<br />

sich der Binärwert »00010010«, dem de-<br />

86 Ausgabe 02-2013 Admin www.admin-magazin.de


Tcpdump<br />

Security<br />

z<strong>im</strong>al die Zahl 18 entspricht. Will man<br />

nun nach entsprechenden Paketen suchen,<br />

gelingt das mit:<br />

# tcpdump ‐n ‐r dumpfile.lpc U<br />

‐c 10 'tcp[13] == 18' U<br />

and host 172.16.183.2<br />

Was dieses Kommando zurückgibt, zeigt<br />

beispielhaft Abbildung 5. Möchte man<br />

während einer Aufzeichnung zum Beispiel<br />

den ARP-Traffic ignorieren, gelingt<br />

das mit einem Filter:<br />

# tcpdump ‐n ‐s 1515 ‐c 5 U<br />

‐r snort001.log U<br />

‐I eth1 tcp or udp or icmp<br />

Damit zeichnet man nur TCP- <strong>und</strong> UPD-<br />

Pakete auf. Die Tabellen 3 <strong>und</strong> 4 zeigen,<br />

wie man Pakete mit einem best<strong>im</strong>mten<br />

Satz an Flags findet.<br />

Reaktion auf Vorkommnisse<br />

Die Analyse von Dump-Files ist ein guter<br />

Weg, um mehr über das Netzwerk oder<br />

auch über mögliche Angriffe zu lernen.<br />

Das sollen einige Beispiele belegen. Das<br />

erste ist der binäre Dump eines Snort-<br />

Logs. Dazu gibt es die folgenden Informationen.<br />

Die IP-Adresse des <strong>Linux</strong>systems<br />

ist 192.168.100.45. Es wurde von einem<br />

Angreifer gekapert, der eine Schwachstelle<br />

in WU-FTP ausnutzte <strong>und</strong> eine<br />

Backdoor einrichtete. Was lässt sich nun<br />

darüber herausfinden, wie der Angriff <strong>im</strong><br />

Einzelnen ablief? Zuerst werfen wir einen<br />

Blick auf das File mit<br />

# tcpdump ‐xX ‐r snort001.log<br />

Das Logfile scheint lang zu sein, deswe-<br />

Abbildung 6: Check des binbären Dump Files eines<br />

Snort-Logs.<br />

Das Ergebnis ist ein lesbares File, das<br />

man parsen kann. Bei der ersten Durchgen<br />

will man es vielleicht einmal in Snort<br />

aufrufen:<br />

# snort ‐r snort001.log ‐A full U<br />

‐c /etc/snort/snort.conf<br />

So erhält man Informationen wie die Anzahl<br />

der verarbeiteten Pakete, eine Aufstellung<br />

der Protokolle, Warnmeldungen<br />

<strong>und</strong> so weiter (Abbildungen 6 <strong>und</strong> 7).<br />

Tabelle 1: Tcpdump Capture-Optionen<br />

Im nächsten Schritt kann man das komplette<br />

Snort-Log für die Analyse extrahieren:<br />

# tcpdump ‐nxX ‐s 1515 U<br />

‐r snort001.log U<br />

> tcpdump‐full.dat<br />

Abbildung 2: Abgefangene Pakete werden mit einem Zeitstempel versehen, der Uhrzeit <strong>und</strong> Datum enthält.<br />

Abbildung 3: Hier enthält der Zeitstempel die Sek<strong>und</strong>en <strong>und</strong> Millisek<strong>und</strong>en seit Beginn der sogenannten Unix-<br />

Epoche.<br />

Abbildung 4: Die Header-Bytes 12 bis 15. Das dreizehnte Byte enthält die Flags.<br />

Abbildung 5: Die Suche nach Paketen mit gesetztem SYN- <strong>und</strong> ACK-Flag.<br />

Option Description<br />

-I Specify an interface to ensure you are sniffing where you expect to sniff.<br />

‐n Do not resolve IP addresses to domain names or port numbers to service names.<br />

‐nn Don’t resolve hostnames or port names.<br />

‐X Show packet’s content in both hex and ASCII.<br />

‐XX Include Ethernet header.<br />

‐v Increase verbose level; ‐vv and ‐vvv gets more information back.<br />

‐c Only get x number of packets and stop.<br />

‐s Tell tcpdump how much of the packet to record.<br />

‐S Print absolute sequence numbers.<br />

‐e Get Ethernet header.<br />

‐q Show less protocol information.<br />

‐E Decrypt IPsec traffic with an encryption key.<br />

Tabelle 2: Nützliche Syntax<br />

Ausdruck Funktion Beispiel<br />

Net Capture Traffic von einem Subnetz # tcpdump net 192.168.1.1/​24<br />

Src, dst<br />

Capture-Pakete von einer Quelle oder # tcpdump src 192.168.100.234<br />

einem Ziel<br />

host IP address Capture Traffic von einer IP-Adresse # tcpdump host 10.10.253.34<br />

proto Capturen von TCP, UDP, and ICMP. # tcpdump tcp<br />

port Capture-Pakete von oder zu einem Port # tcpdump port 21<br />

AND (&& or and)<br />

OR (|| or or)<br />

Kombiniere Ausdrücke<br />

# tcpdump ‐n ‐I eth1 host<br />

10.10.253.34 and host 10.10.33.10<br />

EXCEPT (! or not)<br />

# tcpdump ‐n ‐I eht1 src net<br />

0.10.253.0/​24 and dst net<br />

10.10.33.0/​24 or 192.5.5.241<br />

# tcpdump ‐n ‐I eth1 src net<br />

10.10.30.0/​24 and not icmp<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

87


Security<br />

Tcpdump<br />

Tabelle 3: TCP-Flags<br />

Flag Binary Dec<strong>im</strong>al<br />

URG 00100000 32<br />

ACK 00010000 16<br />

PSH 00001000 8<br />

RST 00000100 4<br />

SYN 00000010 2<br />

FIN 00000001 1<br />

SYNACK 00010010 18<br />

Tabelle 4: Tcpdump-Filter-Syntax<br />

Show<br />

Filter<br />

URGENT (URG) packets # tcpdump ’tcp[13] == 32’<br />

ACKNOWLEDGE (ACK) packets # tcpdump ’tcp[13] == 16’<br />

PUSH (PSH) packets # tcpdump ’tcp[13] == 8’<br />

RESET (RST) packets # tcpdump ’tcp[13] == 4’<br />

SYNCHRONIZE (SYN) packets # tcpdump ’tcp[13] ==2’<br />

FINISH (FIN) packets # tcpdump ’tcp[13] == 1’<br />

SYNCHRONIZE ACKNOWLEDGE (SYNACK) packets # tcpdump ’tcp[13] == 18’<br />

sicht entdeckt man » ip‐proto‐11«, das<br />

ist Network Voice Protocol (NVP)-Traffic.<br />

Nun kann man speziell danach filtern:<br />

# tcpdump ‐r snort001.log U<br />

‐w NVP‐traffic.log proto 11<br />

Dieses Kommando liest »snort001.log«,<br />

sucht nach »log proto 11« <strong>und</strong> schreibt<br />

die Treffer in die Datei »NVP‐traffic.log«.<br />

Anschließend muss man sich dieses Binärfile<br />

ansehen:<br />

# tcpdump ‐nxX ‐s 1515 U<br />

‐r NVP‐traffic.log U<br />

> nvp‐traffic_log.dat<br />

Die Datei enthält sowohl Hex- als auch<br />

ASCII-Ausgaben. Das ist nett, doch<br />

braucht man eigentlich nur die IP-Adressen.<br />

Dazu probiert man:<br />

Nun erhält man als Ausgabe eine Liste,<br />

aus der hervorgeht, welche IP-Adresen<br />

über das Network Voice Protocol (NVP)<br />

kommuniziert haben (Abbildung 8).<br />

Als Nächstes soll ein weiteres Snort-Log<br />

diskutiert werden, das von einer kompromittierten<br />

<strong>Windows</strong>-Box stammt, die mit<br />

einem IRC-Server sprach. Mit welchen<br />

IRC-Servern hat der Rechner mit der IP-<br />

Adresse 172.16.134.191 gesprochen? Um<br />

nach TCP-Verbindungen zu suchen, ist es<br />

sinnvoll, eingehende Pakete mit gesetzten<br />

SYN/​ACK-Flags auszufiltern:<br />

Abbildung 7: Ausführen der Datei in Snort.<br />

# tcpdump ‐r NVP‐traffic.log U<br />

> nvp‐traffic_log01.dat<br />

# tcpdump ‐n ‐nn ‐r snort_log U<br />

'tcp and dst host 172.16.134.191 U<br />

and tcp[13]==18'<br />

Dieses Kommando produziert eine lange<br />

Liste mit von 172.16.134.191 abgehenden<br />

Verbindungen (Abbildung 9). Weil<br />

IRC-Kommunikation die Ports 6666 bis<br />

6669 nutzt, kann man die Suchbedingung<br />

weiter einschränken:<br />

# tcpdump ‐n ‐nn ‐r snort_log U<br />

'tcp and dst host 172.134.16.234 U<br />

and tcp[13]==18' U<br />

and portrange 6666‐6669<br />

Abbildung 8: Die IP-Adressen der Rechner, die via NVP kommuniziert haben.<br />

Nun enthält die Liste nur noch die drei<br />

IP-Adressen, mit denen der Host via IRC<br />

gesprochen hat (Abbildung 10). (jcb) n<br />

Infos<br />

[1] Tcpdump: [http:// www. tcdump. org]<br />

[2] Tcpdump-Projekt: [http:TTsourceforge. net/​<br />

projects/ tcpdump]<br />

Abbildung 9: Abgehende Verbindungen des fraglichen Rechners.<br />

Abbildung 10: Einschränkung der Suche auf die Portnummern 6666 bis 6669.<br />

Der Autor<br />

David J. Dodd befasste sich als ehemaliger US<br />

Marine mit elektronischen Abwehrsystemen. Er<br />

hielt Vorträge auf der San Diego Regional Security<br />

Conference <strong>und</strong> der SDISSA. Er ist Mitglied<br />

von InfraGard <strong>und</strong> leistet Beiträge zur amerikanischen<br />

Stiftung „Securing our eCity“ (SOeC).<br />

Beruflich arbeitet er für pbnetworks Inc.<br />

88 Ausgabe 02-2013 Admin www.admin-magazin.de


OPEN-IT SUMMIT<br />

Business | Public Sector | Industry<br />

22. + 23. Mai 2013<br />

Messegelände Berlin<br />

OPEN FOR BUSINESS<br />

Im Rahmen des 19. <strong>Linux</strong>Tag findet der 1. OPEN-IT SUMMIT<br />

am 22. <strong>und</strong> 23. Mai in Berlin als eigene Konferenz <strong>und</strong><br />

Sonderschau der OSB Alliance statt.<br />

Goldpartner:<br />

Das hochwertige Konferenzprogramm bildet mit r<strong>und</strong> 50 Sessions<br />

<strong>und</strong> ausgesuchten Tandem-Präsentationen (K<strong>und</strong>e/Anbieter)<br />

zu den Themen Big Data/Business Analytics, Infrasturcture &<br />

Cloud Services den professionellen Rahmen für Wissensaustausch<br />

<strong>und</strong> Networking auf hohem Niveau.<br />

KEYNOTES<br />

MITTWOCH, 22.05.2013<br />

Von der Open IT zur Open Society. Wer schafft den<br />

Bewusstseinswandel?<br />

Prof. Dr. Hans-Jürgen Kugler, Chief Scientist, KUGLER MAAG CIE GmbH<br />

Kopieren ist das neue Demonstrieren<br />

Daniel Kruse, Fo<strong>und</strong>er, Open State gUG<br />

DONNERSTAG, 23.05.2013<br />

Old Industry discovers Value of Open Source<br />

Dr. Stefan Ferber, Director Communities & Partner Networks,<br />

Bosch Software Innovations GmbH<br />

Gleich anmelden unter www.open-it-summit.de<br />

Eine Veranstaltung<br />

<strong>im</strong> Rahmen des Veranstaltet von<br />

Medienpartner<br />

Partner<br />

MAGAZIN


Security<br />

Authentifizierung<br />

© maigi, 123RF<br />

Remote Access <strong>und</strong> Web-Applikationen mit Zwei-Faktor Authentifizierung absichern<br />

Ticketkontrolle<br />

Normale Passwörter kennt heute schon jeder Facebook-User. Soll es sicherer werden, wird es normalerweise<br />

auch etwas komplizierter. Dieser Artikel gibt einen Überblick über Authentifizierungslösungen <strong>und</strong> stellt<br />

Lösungsansätze für gängige Anwendungsfälle vor. Thomas Zeller<br />

Bei der Benutzerauthentisierung geht es<br />

darum herauszufinden, ob ein Benutzer<br />

auch wirklich derjenige ist, für den er<br />

sich ausgibt. Angesichts der Tatsache,<br />

dass sich unbedarfte Benutzer heute bereits<br />

von einem Smartphone vermeintliche<br />

Internet-Hotspots vorgaukeln <strong>und</strong><br />

sich auf diese Weise leicht ihre Passwörter<br />

stehlen lassen, ist die Verwendung<br />

von Benutzername <strong>und</strong> Passwort für den<br />

Zugriff auf vertrauliche Informationen<br />

alleine kaum mehr zu verantworten. Abhilfe<br />

verspricht der Einsatz zusätzlicher<br />

Faktoren bei der Authentifizierung.<br />

Während <strong>im</strong> angelsächsischen Sprachraum<br />

für den Prozess des Echtheitsnachweises<br />

nur der Begriff „Authentication“<br />

verwendet wird, gibt es in Deutschland<br />

zwei Begriffe, nämlich „Authentisierung“<br />

<strong>und</strong> „Authentifizierung“. Obwohl diese<br />

prinzipiell für zwei unterschiedliche Aussagen<br />

stehen (Authentisieren: glaubwürdig<br />

machen – Authentifizieren: Echtheit<br />

beglaubigen) werden sie häufig äquivalent<br />

verwendet. Doch egal welchem Begriff<br />

man den Vorzug gibt, geht es darum,<br />

ein vorgelegtes kennzeichnendes Merkmal<br />

(zum Beispiel einen Benutzernamen)<br />

eindeutig zu identifizieren <strong>und</strong> dessen<br />

Echtheit zu bestätigen.<br />

Authentifizierungsverfahren<br />

Für die Authentifizierung stehen verschiedene<br />

Verfahren zur Verfügung, die<br />

sich in die Gruppen „Wissen“, „Besitz“<br />

<strong>und</strong> „biometrische Merkmale“ einordnen<br />

lassen. Diese Gruppen, auch Faktoren<br />

genannt, stellen die Gr<strong>und</strong>lage jedes<br />

Authentifizierungsverfahrens dar, die Tabelle<br />

„Authentifizierungsverfahren“ gibt<br />

einen Überblick.<br />

Trotz seiner gravierenden Nachteile stellt<br />

das Passwort derzeit noch <strong>im</strong>mer das<br />

am häufigsten eingesetzte Authentifizierungsverfahren<br />

dar. Schließlich wird es<br />

praktisch von jedem Softwareprodukt als<br />

Standardverfahren kostenfrei zur Verfügung<br />

gestellt. Für die Absicherung von<br />

Informationen <strong>und</strong> Zugriffsberechtigungen<br />

gilt aber als Faustformel: Je höher der<br />

Wert der zu schützenden Informationen<br />

ist, desto sicherer muss das eingesetzte<br />

Authentifizierungsverfahren sein. Viele<br />

der Probleme be<strong>im</strong> Einsatz von Passwörtern<br />

lassen sich umgehen, wenn statt<br />

eines statischen Passworts ein dynamisches<br />

eingesetzt wird, das nur einmal<br />

verwendet werden kann. Das Ausspähen<br />

von Passwörtern selbst lässt sich damit<br />

zwar nicht unterbinden, die auf diese<br />

Weise gestohlenen Authentifizierungsinformationen<br />

sind für den Angreifer dann<br />

allerdings wertlos.<br />

Multifaktor-<br />

Authentifizierung<br />

Die Sicherheit von Authentifizierungsvorgängen<br />

lässt sich durch Kombination<br />

mehrerer Faktoren (sogenannte Multifaktor-Authentifizierung)<br />

signifikant<br />

erhöhen. So kombiniert beispielsweise<br />

die EC-Karte schon <strong>im</strong>mer die Faktoren<br />

„Wissen“ <strong>und</strong> „Besitz“, denn der Benutzer<br />

muss sowohl <strong>im</strong> Besitz der Karte mit<br />

Magnetstreifen/Chip sein als auch die<br />

zugehörige PIN kennen.<br />

90 Ausgabe 02-2013 Admin www.admin-magazin.de


Authentifizierung<br />

Security<br />

Tabelle 1: Authentifizierungsverfahren<br />

Faktor Beispiele Vorteile Nachteile<br />

Wissen<br />

Passwort, PIN, Antwort auf Geringe Kosten, leicht zu Sicherheit von der Qualität abhängig, kann erraten, ausgespäht,<br />

Sicherheitsfrage<br />

verwalten<br />

vergessen oder weitergegeben werden<br />

Besitz<br />

Biometrisches<br />

Merkmal<br />

Zertifikat, (i)TAN-Liste, Chipkarte,<br />

One T<strong>im</strong>e Passwort Token<br />

Fingerabdruck, St<strong>im</strong>m- oder<br />

Gesichtserkennung, DNS<br />

In der Regel einmalig <strong>und</strong><br />

damit nicht kopierbar<br />

Einfache Verwendung, kann<br />

nicht weitergegeben werden<br />

Hohe Kosten für Anschaffung <strong>und</strong> Verwaltung, kann weitergegeben<br />

werden<br />

Biometrische Faktoren unterliegen Veränderungen, z. B. Abnutzung<br />

der Fingerabdrücke oder Veränderung der St<strong>im</strong>me mit<br />

zunehmendem Alter, kann gegen Datenschutzrecht verstoßen<br />

Noch sicherer wird ein Verfahren, wenn<br />

alle drei Faktoren zum Einsatz kommen.<br />

So kombiniert beispielsweise das Produkt<br />

„QTrust 2go Smart“ [1] alle drei Faktoren,<br />

indem der Anwender zunächst seinen<br />

Benutzernamen in die Anmeldemaske<br />

eintippt (Wissen) <strong>und</strong> mit dem Smartphone<br />

einen QR-Code vom Bildschirm<br />

scannt, aus dem die Smartphone-App<br />

dann ein Einmalpasswort erzeugt (Besitz).<br />

Zur endgültigen Authentifizierung<br />

muss der Benutzer dann noch mithilfe<br />

der Smartphone-Kamera eine Gesichtserkennung<br />

(biometrisches Merkmal)<br />

durchführen <strong>und</strong> das Einmalpasswort in<br />

die Anmeldemaske eintippen.<br />

Gut genug<br />

Für die meisten Sicherheitsanforderungen<br />

ist allerdings eine Authentifizierung mit<br />

zwei Faktoren mehr als ausreichend. So<br />

empfiehlt das B<strong>und</strong>esamt für Sicherheit<br />

in der Informationstechnolgie (BSI) <strong>im</strong><br />

Gr<strong>und</strong>schutzhandbuch den Einsatz einer<br />

Zwei-Faktor Authentifizierung für die Authentifzierung<br />

von Remote-Access-VPN-<br />

Benutzern [2]. Und auch der Payment<br />

Card Industry Data Security Standard<br />

(PCIDSS) – ein verbindliches Regelwerk<br />

<strong>im</strong> Zahlungsverkehr für die Abwicklung<br />

von Kreditkartentransaktionen – fordert<br />

für den Netzwerkzugriff von Adminis-<br />

tratoren, Mitarbeitern <strong>und</strong> Dritten von<br />

extern, den Einsatz einer Zwei-Faktor-<br />

Authentifizierungslösung.<br />

Die Anzahl der Zwei-Faktor-Authentifizierungslösungen<br />

auf dem Markt ist<br />

groß. Wer den Einsatz einer solchen Lösung<br />

plant, sollte daher schon vorab eine<br />

Entscheidung darüber treffen, ob er mit<br />

Zertifikaten <strong>und</strong>/​oder Einmalpasswörtern<br />

arbeiten möchte. Bei der zertifikatsbasierten<br />

Zwei-Faktor-Authentifizierung<br />

kommen typischerweise digitale PKI-Zertifikate<br />

nach dem X.509-Standard zum<br />

Einsatz. Diese werden in der Regel auf einem<br />

Hardware-Zertifikatsspeicher – dem<br />

sogenannten Security-Token – abgelegt.<br />

Zur Authentifzierung muss der Benutzer<br />

das Security-Token mit dem Gerät verbinden,<br />

von dem aus er sich am jeweiligen<br />

Dienst anmelden möchte, <strong>und</strong> das gespeicherte<br />

Zertifikat durch die Eingabe einer<br />

PIN oder eines Passworts freischalten.<br />

Erst dann kann zum Beispiel der VPN-<br />

Client erfolgreich eine Verbindung mit<br />

dem Zielsystem aufbauen.<br />

Als Hardware kommen spezielle USB-<br />

Sticks oder Smartcards zur Speicherung<br />

von elektronischen Zertifikaten <strong>und</strong> Passwörtern<br />

infrage. Der praktische Vorteil<br />

von USB-Tokens gegenüber Smartcards<br />

besteht vor allem darin, dass diese am<br />

USB-Anschluss des jeweiligen Computers<br />

betrieben werden können, während für<br />

Smartcards ein zusätzliches Kartenlesegerät<br />

erforderlich ist.<br />

Die Alternative zum Zertifikatsspeicher<br />

bilden Einmalpasswortgeneratoren, die<br />

sogenannten OTP-Tokens (One T<strong>im</strong>e<br />

Password). Es gibt sie in verschiedenen<br />

Formfaktoren, zum Beispiel als Hardware,<br />

Software oder Grid-Card <strong>und</strong> natürlich<br />

auch „as a service“, in diesem<br />

Fall dann typischerweise in Form von<br />

SMS. OTP-Tokens stellen dem Anwender<br />

ein kurzlebiges Einmalpasswort für die<br />

Anmeldung zur Verfügung.<br />

Je nach Hersteller <strong>und</strong> verwendeter Methode<br />

unterscheidet man T<strong>im</strong>e-Based<br />

beziehungsweise T<strong>im</strong>e-Synchronized<br />

Tokens (TOTP = T<strong>im</strong>e-Based One-T<strong>im</strong>e<br />

Password Algorithm, gemäß RFC 6238<br />

[3]) <strong>und</strong> Event-Based Tokens (HOTP =<br />

HMAC One-T<strong>im</strong>e Password Algorithm<br />

nach RFC 4226 [4]). Hardware-basierende<br />

T<strong>im</strong>e-based Tokens sind in der Regel<br />

etwas teurer, weil sie als Zähler zur<br />

Berechnung ihrer OTPs eine ganggenaue<br />

Uhr benötigen, die zusätzlich mit der<br />

Hardware verbaut werden muss.<br />

Client- / Server Modell<br />

Allen OTP-Systemen gemein ist, dass<br />

sie nach dem Client- / Server Modell<br />

arbeiten. Als Frontend kommen dabei<br />

„Clients“ in Form der OTP-Tokens zum<br />

Freie OTP-Systeme<br />

n S/​KEY / OPIE ist ein älteres Verfahren, das<br />

unter Unix-artigen Betriebssystemen die<br />

Authentifizierung per Einmalpasswort erlaubt.<br />

Die Implementierung OPIE (One T<strong>im</strong>e<br />

Passwords in Everything) [6] bringt eine<br />

Client- <strong>und</strong> eine Serverapplikation sowie ein<br />

PAM-Modul mit. OTPs können entweder <strong>im</strong><br />

Voraus erzeugt <strong>und</strong> (wie eine TAN-Liste) ausgedruckt<br />

werden oder lassen sich mit S/​KEY<br />

Generatoren „on the fly“ erzeugen.<br />

n Der Google Authenticator stellt eine OATH-<br />

[5] kompatible Zwei-Faktor-Authentifizierungslösung<br />

mit HOTP/TOTP-Implementierung<br />

dar. Vorrangig für die Authentifizierung<br />

an den Google-eigenen Diensten entwickelt,<br />

steht inzwischen auch ein PAM-Modul für<br />

die Authentifizierung auf Unix-Systemen zur<br />

Verfügung.<br />

n Der Openkubus-Stick [7] ist ein USB-Stick<br />

mit freiem Hardware-Layout, der One T<strong>im</strong>e<br />

Passwords erzeugen kann. Openkubus stellt<br />

Bibliotheken für C, Perl, PHP sowie einen<br />

Server <strong>und</strong> ein PAM-Modul zur Verfügung.<br />

n LinOTP [8] ist ein Backend-System zur Anbindung<br />

verschiedener Authentifizierungslösungen<br />

<strong>und</strong> Hersteller. Die Community Edition<br />

enthält unter anderem ein PAM-Modul <strong>und</strong><br />

eine Web-API <strong>und</strong> unterstützt zahlreiche OTP-<br />

Token. Die Enterprise Edition erlaubt auch<br />

die Anbindung an Verzeichnisdienste wie Microsoft<br />

Active Directory, Novell eDirectory,<br />

SQL <strong>und</strong> OpenLDAP.<br />

n Mobile OTP [9] ist eine freie OTP-Implementierung,<br />

die serverseitig ein J2ME-MIDlet <strong>und</strong><br />

ein Shellscript für die Anbindung an freie<br />

RADIUS-Server, zum Beispiel XTRadius, mitbringt.<br />

Clientseitig werden zahlreiche freie<br />

OTP-Tokens für alle wichtigen Mobil- <strong>und</strong> Betriebssystemplattormen<br />

angeboten.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

91


Security<br />

Authentifizierung<br />

Abbildung 1: Der DIGIPASS NANO ist eine dünne Folie, die zusammen mit der<br />

SIM-Karte in ein Mobiltelefon eingelegt werden kann <strong>und</strong> das Handy damit zum<br />

Hardware-OTP-Token mutieren lässt.<br />

Abbildung 2: Google bietet bereits seit Längerem eine Zwei-Faktor-<br />

Authentifizierung für die Google-Dienste an.<br />

Einsatz; auf Backend-Seite arbeitet ein<br />

Server-System, das die Einmalpassworte<br />

der Benutzer verifiziert <strong>und</strong> die Authentisierungsinformationen<br />

dann per Schnittstelle<br />

an die entsprechende Anwendung<br />

übergibt.<br />

Als Universal-Schnittstelle dient häufig<br />

das RADIUS-Protokoll (Remote Authentication<br />

Dial-In User Service), das die meisten<br />

Applikationen verarbeiten können.<br />

Natürlich kann auf Backend-Seite statt<br />

eines eigenen Serverdienstes auch eine<br />

Cloud-Anwendung zum Einsatz kommen.<br />

Bekanntestes Beispiel für diese Art<br />

der Zwei-Faktor-Authentfizierung dürfte<br />

derzeit der Google Authenticator sein.<br />

Natürlich sind Zwei-Faktor Authentifizierungslösungen<br />

prinzipiell nicht auf best<strong>im</strong>mte<br />

Anwendungsszenarien begrenzt.<br />

In der Praxis hat sich ihr Einsatz aber vor<br />

allem in zwei Bereichen bewährt: Der<br />

Authentifizierung von Remote-Access-<br />

Verbindungen <strong>und</strong> Web-Applikationen.<br />

Gerade bei Letzteren drängt sich der<br />

Einsatz einer Zwei-Faktor Authentifizierung<br />

geradezu auf, denn <strong>im</strong> Gegensatz<br />

zu VPN- <strong>und</strong> SSH-Verbindungen kommen<br />

hier auf Client-Seite praktisch nie<br />

Zertifikate zum Einsatz, die auch eine<br />

Authentifizierung des Clients durch den<br />

Server sicherstellen.<br />

Im einfachsten Fall genügt also das Ausspähen<br />

des Passworts, zum Beispiel<br />

durch einen Man-in-the-Middle-Angriff,<br />

eine Replay-Attacke oder klassisches Network-Sniffing,<br />

um den Account zu übernehmen.<br />

Außerdem wächst die Zahl der<br />

Web-Applikationen derart rasant, dass<br />

bereits durchschnittliche Nutzer schon<br />

heute täglich 10 bis 15 Web-Applikationen<br />

verwenden. Man denke dabei nur<br />

an die vielen sozialen Netzwerke, Webmailer,<br />

Banking-Anwendungen, Online-<br />

Shops <strong>und</strong> Informationsportale.<br />

Google-Dienste absichern<br />

Google hat den Authenticator pr<strong>im</strong>är entwickelt,<br />

um den Zugang zu seinen Anwendungen<br />

mit starker Authentifizierung<br />

auszustatten. Diese auch „Bestätigung<br />

in zwei Schritten“ genannte Authentifizierung<br />

kann alternativ auch per SMS<br />

oder Sprachanruf erfolgen (Abbildung<br />

2). Der Einsatz der Authenticator App<br />

hat hingegen den Vorteil, dass sich damit<br />

auch Nicht-Google-Dienste authentifizieren<br />

lassen, wie wir später noch sehen<br />

werden.<br />

Um die starke Authentifzierung in Ihrem<br />

Google Konto zu aktivieren, rufen Sie<br />

die Seite [https:// accounts. google. com/​<br />

SmsAuthConfig] auf, <strong>und</strong> geben Sie dort<br />

Kommerzielle Zwei-Faktor-Authentifizierungslösungen<br />

n Vasco ist ein belgischer Hersteller von Zwei-<br />

Faktor-Authentifizierungslösungen <strong>und</strong> beliefert<br />

beispielsweise eBay / PayPal mit dem<br />

dort „Sicherheitsschlüssel“ genannten GO3<br />

Token. Herzstück der Zwei-Faktor Authentifizierung<br />

bildet der Identikey Server, der in<br />

der Basis-Version eine RADIUS-Schnittstelle<br />

<strong>und</strong> diverse Web-Plugins, zum Beispiel für<br />

<strong>Windows</strong> Terminalservices, Citrix <strong>und</strong> Outlook<br />

Webaccess, mitbringt. Client-seitig<br />

stellt Vasco OTP-Tokens unter dem Namen DI-<br />

GIPASS unterschiedlichster Ausprägung zur<br />

Verfügung, zum Beispiel als Hardware-Token,<br />

Mobile-Token für Smartphone-Betriebssysteme<br />

<strong>und</strong> andere Mobiltelefone oder als<br />

SIM-Applikation. Letztere werden unter dem<br />

Namen DIGIPASS NANO als hauchdünne Folie<br />

mit aufgebrachtem Chip angeboten (Abbildung<br />

1). Die Folie wird dann zusammen mit<br />

der SIM-Karte in das Mobiltelefon eingelegt<br />

<strong>und</strong> rüstet damit ein Mobiltelefon zum Hardware-Token<br />

auf.<br />

n RSA Security [11] ist ein Tochterunternehmen<br />

von EMC <strong>und</strong> dürfte mit dem Produkt<br />

„secureID“ international der bekannteste<br />

Hersteller von OTP-Lösungen sein. Zu trauriger<br />

Berühmtheit brachte es der Hersteller<br />

<strong>im</strong> März 2011, als bekannt wurde, dass dem<br />

Unternehmen durch einen Hackerangriff<br />

wichtiges Material abhanden gekommen ist.<br />

Um welches Material es sich dabei handelt,<br />

wurde nie offiziell bekannt gegeben. Die<br />

Tatsache, dass das Unternehmen weltweit<br />

40 Millionen Hardware-Tokens ausgetauscht<br />

hat lässt aber darauf schließen, dass bei dem<br />

Hack der Algorithmus <strong>und</strong> die Seeds entwedet<br />

wurden, mit denen sich die One-T<strong>im</strong>e<br />

Passwords berechnen lassen.<br />

n Safenet [12] ist ein amerikanischer Hersteller<br />

von Sicherheitslösungen, der in den<br />

Jahren 2004 <strong>und</strong> 2009 die Unternehmen<br />

Rainbow <strong>und</strong> Aladdin mit deren Verschlüsselungslösungen<br />

übernommen hat. Safenet<br />

bietet zertifikats- <strong>und</strong> PKI-basierende Lösungen<br />

<strong>und</strong> OTP-Authentifikatoren an.<br />

n SMS Passcode: Wie der Name bereits vermuten<br />

lässt, bietet das dänische Unternehmen<br />

SMS PASSCODE A/​S [13] One-T<strong>im</strong>e-Passwort-<br />

Authentifizierung auf Basis von SMS an.<br />

n Zyxel: Auch der taiwanesische Netzwerkausrüster<br />

Zyxel [14] hat eine Zwei-Faktor-<br />

Authentifizierungslösung <strong>im</strong> Programm. Sie<br />

arbeitet für den VPN-Zugriff mit den hauseigenen<br />

ZyWalls zusammen.<br />

92 Ausgabe 02-2013 Admin www.admin-magazin.de


Authentifizierung<br />

Security<br />

die Mobiltelefonnummer Ihres Smartphones<br />

an. An diese Nummer schickt Google<br />

einen Link, über den Sie die Google Authenticator<br />

App herunterladen. Wählen<br />

Sie in den Kontoeinstellungen Ihres<br />

Google-Accounts jenes Gerät, zum Beispiel<br />

„iPhone“ aus, auf dem Sie die App<br />

installiert haben. In der App tippen Sie<br />

dann auf das Pluszeichen <strong>und</strong> wählen<br />

den Befehl „Barcode scannen“.<br />

Scannen Sie nun den in Ihrem Google-<br />

Account angezeigten Barcode <strong>und</strong> tippen<br />

Sie den in der App angezeigten Einmalcode<br />

ein, um die Einrichtung in zwei<br />

Schritten abzuschließen (Abbildung 3).<br />

Sicherheitshalber sollten Sie sich noch<br />

die Ersatzcodes ausdrucken [18], mit denen<br />

Sie sich auch dann an Ihrem Google-<br />

Konto anmelden können, wenn das Mobiltelefon<br />

verloren geht.<br />

Dropbox mit Google<br />

Authenticator<br />

Weniger bekannt dürfte sein, dass auch<br />

die Dropbox seit Kurzem starke Authentifizierung<br />

mit dem Google-Authenticator<br />

unterstützt. Die Aktivierung erfolgt analog<br />

zur Einrichtung des Google-Kontos:<br />

Loggen Sie sich mit dem Browser in Ihr<br />

Dropbox-Konto ein, <strong>und</strong> wählen Sie dort<br />

»Einstellungen / Sicherheit | Zweistufige<br />

Überprüfung | ändern«. Wählen Sie »Authentifizierung<br />

mit der Google Authenticator<br />

App«, tippen Sie in der App wieder<br />

auf das Plus-Zeichen, <strong>und</strong> scannen Sie<br />

den QR-Code vom Bildschirm.<br />

Nachdem Sie das Einmalpasswort eingegeben<br />

haben, ist die zweistufige Authentifizierung<br />

aktiviert (Abbildung 4) <strong>und</strong><br />

Dropbox zeigt Ihnen Ersatzcodes zum<br />

Ausdrucken an.<br />

SSH Server mit OTP<br />

absichern<br />

Der Login auf einem SSH-Server lässt sich<br />

bereits mit Bordmitteln gut absichern.<br />

Voraussetzung dafür ist, dass der Admin<br />

in der »sshd_config« die Directive »PasswordAuthentication«<br />

auf »No« setzt <strong>und</strong><br />

sämtliche Benutzer konsequent mit passwortgeschützten<br />

RSA / DSA-Keys ausstattet.<br />

Alternativ kann die Authentifizierung<br />

an einem OpenSSH-Server schon seit Urzeiten<br />

auch mit dem Einmalpasswortverfahren<br />

S/​KEY abgesichert werden.<br />

S/​KEY wurde zwischenzeitlich durch<br />

OPIE [6] ersetzt <strong>und</strong> erlaubt es, <strong>im</strong> Voraus<br />

Passwortlisten mit Einmalpasswörtern<br />

zu generieren, die dann ähnlich wie<br />

die TAN-Listen be<strong>im</strong> eBanking verwendet<br />

werden. Alternativ können Einmalpasswörter<br />

aber auch <strong>im</strong> Bedarfsfall auf<br />

einem OTP-Generator erstellt werden,<br />

zum Beispiel mit Opikey [15] auf einem<br />

Android-Smartphone.<br />

Wesentlich einfacher <strong>und</strong> eleganter lässt<br />

sich eine SSH-Sitzung heute aber mit<br />

dem Google-Authenticator [16] sichern.<br />

Denn das Google-Authenticator Project<br />

steht unter der Apache License 2.0 <strong>und</strong><br />

ist damit frei verfügbar. Für den Server<br />

steht ein PAM-Modul zur Verfügung, der<br />

Google-Authenticator Client läuft auf<br />

Android-, iOS- <strong>und</strong> Blackberry-Geräten<br />

<strong>und</strong> kann einfach aus dem jeweilgen<br />

App-Store installiert werden.<br />

Serverseitig ist die Installation des<br />

Google-Authenticator PAM-Moduls auf<br />

einem Ubuntu-Server ein Kinderspiel,<br />

denn hier lässt sich ein passendes Paket<br />

direkt aus den Repositories installieren:<br />

sudo apt‐get install libpam‐google‐U<br />

authenticator<br />

Alternativ laden Sie den Sourcecode von<br />

[17] herunter <strong>und</strong> kompilieren ihn für<br />

Ihre Plattform. Ist das PAM-Modul installiert,<br />

melden Sie sich mit dem Benutzer<br />

an der Konsole an, der sich später<br />

mit dem Google-Authenticator anmelden<br />

soll <strong>und</strong> geben Sie »google‐authenticator«<br />

ein.<br />

Das Programm zeigt dann <strong>im</strong> Terminal<br />

einen QR-Code, einen Secret Key, einen<br />

Verification Code sowie fünf Emergency<br />

Scratch-Codes an. Die Emergency Scratch-<br />

Codes sollten Sie wieder ausdrucken <strong>und</strong><br />

an einer sicheren Stelle verwahren. Denn<br />

mit diesen Einmal-Passworten können<br />

Sie sich auch dann am SSH-Server anmelden,<br />

wenn Sie das Smartphone mit<br />

dem Google-Authenticator einmal nicht<br />

zur Hand haben.<br />

Gegen Brute Force<br />

In der Google Authenticator App auf<br />

dem Smartphone klicken Sie nun auf<br />

das Plus-Zeichen am unteren Rand <strong>und</strong><br />

wählen dann den Befehl »Barcode scannen«.<br />

Alternativ können Sie das Konto<br />

auch manuell hinzufügen. Dazu geben<br />

Sie den Kontonamen in der Form »User@<br />

Host« <strong>und</strong> den entsprechenden gehe<strong>im</strong>en<br />

Schlüssel an.<br />

Die nachfolgenden Fragen dienen der<br />

zusätzlichen Absicherung des Accounts.<br />

Hier sollten Sie die mehrfache Verwendung<br />

eines Authentisierungs-Tokens verbieten<br />

<strong>und</strong> max<strong>im</strong>al drei Login-Versuche<br />

pro 30 Sek<strong>und</strong>en zulassen, um Brute-<br />

Force-Angriffen vorzubeugen. Abschließend<br />

müssen Sie den Google-Authenticator<br />

noch in der PAM-Konfiguration<br />

aktivieren <strong>und</strong> eine Änderung an der<br />

SSH-Konfiguration vornehmen. Dazu öffnen<br />

Sie die Datei »/etc/pam.d/sshd« <strong>im</strong><br />

Editor <strong>und</strong> fügen am Ende die Zeile<br />

Abbildung 3: Nach dem Scannen eines QR-Codes vom<br />

Bildschirm ist die Google-Authenticator App mit<br />

dem jeweiligen Benutzerkonto verknüpft.<br />

Abbildung 4: Die Sicherheit für Dropbox-Accounts<br />

lässt sich durch den Einsatz des Google-<br />

Authenticators signifikant anheben.<br />

auth required pam_google_authenticator.so<br />

hinzu. Anschließend speichern Sie die<br />

Datei. In der »/etc/ssh/sshd_config« ändern<br />

Sie den Wert für die »Challenge-<br />

ResponseAuthentication« auf »yes« <strong>und</strong><br />

starten den SSH-Daemon neu. E<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

93


Security<br />

Authentifizierung<br />

Abbildung 5: Mydigipass.com ist eine Cloud-Anwendung, mit der sich Web-Applikationen um eine Zwei-Faktor<br />

Authentifizierung bereichern lassen.<br />

Wenn Sie sich künftig auf Ihrem Server<br />

per SSH einloggen, fragt der SSH-<br />

Server wie gewohnt Benutzernamen <strong>und</strong><br />

Passwort <strong>und</strong> zusätzlich den Verification<br />

Code ab, den der Google-Authenticator<br />

auf Ihrem Smartphone anzeigt.<br />

Paypal <strong>und</strong> Facebook<br />

Die eBay-Tochter Paypal bietet bereits<br />

seit Längerem die Möglichkeit, den Anmeldevorgang<br />

über eine Zwei-Faktor-<br />

Authentifizierung abzusichern. K<strong>und</strong>en,<br />

die diese Möglichkeit bereits nutzen,<br />

haben von Paypal in der Vergangenheit<br />

einen Hardware-Token (Vasco GO3) erhalten.<br />

Wer den Anmeldevorgang für sein<br />

Paypal-Konto jetzt absichern möchte,<br />

kann sich unter [19] inzwischen aber<br />

nur noch zur Teilnahme für den SMS-<br />

Sicherheitsschlüssel anmelden. Paypal<br />

schickt dann für jeden Login-Vorgang ein<br />

Einmalpasswort per SMS an die hinterlegte<br />

Mobiltelefonnummer.<br />

Für den Fall, dass der Anwender einmal<br />

nicht auf sein Mobiltelefon zugreifen<br />

kann, bietet Paypal als Fallback die<br />

Möglichkeit, Sicherheitsfragen <strong>und</strong> deren<br />

Antworten zu definieren. Auch Facebook<br />

kann den Anmeldevorgang inzwischen<br />

mit einem Einmalpasswort absichern.<br />

Dazu muss der Benutzer aber zwingend<br />

die Facebook-App auf seinem Smartphone<br />

installiert haben <strong>und</strong> diese während<br />

des Aktivierungsprozesses in den<br />

Sicherheitseinstellungen mit dem Konto<br />

verknüpfen.<br />

Mydigipass.com – der<br />

Cloud-Faktor<br />

Besonders attraktiv für Administratoren<br />

ist die Absicherung selbst betriebener<br />

Web-Applikationen, Blog- oder Content-<br />

Management-Systeme durch eine Zwei-<br />

Faktor Authentifizierungslösung, zum<br />

Beispiel um das Login des Administrators<br />

besser abzusichern. Bestens dafür geeignet<br />

ist die Cloud-Authentifizierung von<br />

Mydigipass.com von Vasco (Abbildung<br />

5). Ein Vorteil dieser Lösung ist, dass<br />

der Administrator selbst keine Backend-<br />

OAuth-API<br />

Mydigipass.com stellt mit der OAuth-2.0-API<br />

eine standardisierte Schnittstelle zur Verfügung,<br />

über die sich Web-Applikationen zur Authentifizierung<br />

verbinden lassen. OAuth kommt<br />

als Protokoll häufig dort zum Einsatz, wo man<br />

sich an einem Dienst mit den Login-Credentials<br />

eines anderen Dienstes anmelden kann,<br />

zum Beispiel mit einer <strong>Windows</strong>-LiveID, einem<br />

Google- oder Facebook-Account.<br />

Für die Implementierung von OAuth in eigene<br />

Webapplikationen stellt Vasco <strong>im</strong> Developer-<br />

Portal [21] eine ausführliche Dokumentation<br />

sowie eine „Sandbox“ <strong>und</strong> einen Online-Demo<br />

Software installieren <strong>und</strong> betreiben muss,<br />

diese wird von Vasco in der Cloud bereitgestellt.<br />

Als Frontend dienen Software-OTP-Tokens<br />

für iOS-, Android-, oder Blackberry-<br />

Smartphones, alternativ steht auch eine<br />

Clientsoftware für Mobiltelefone mit<br />

Java-Unterstützung zur Verfügung. Weiterhin<br />

lassen sich natürlich auch Hardware-Tokens<br />

einbinden, die Vasco auf<br />

den einschlägigen IT-Messen unters Volk<br />

bringt.<br />

Im ersten Schritt müssen sich Anwender<br />

zunächst unter [20] registrieren <strong>und</strong><br />

das kostenfreie Software-Token über den<br />

jeweiligen App-Store installieren. Die<br />

Java-Clientsoftware kommt indes in Form<br />

eines URL-Downloadlinks aufs Handy.<br />

Für kleinere Community Websites mit einer<br />

URL, bis zu 100 Benutzern <strong>und</strong> 1000<br />

Authentifizierungsvorgängen <strong>im</strong> Jahr,<br />

ist Mydigipass.com in der „Starter Edition“<br />

komplett kostenfrei nutzbar. Größere<br />

Pakete kosten ab 2000 Euro <strong>im</strong> Jahr,<br />

umfassen dann aber bereits 500 User<br />

<strong>und</strong> 10 000 Authentifizierungsvorgänge<br />

(Premium) beziehungsweise 10 000 User<br />

<strong>und</strong> 250 000 Authentifizierungsvorgänge<br />

(Executive) <strong>im</strong> Jahr.<br />

Drupal mit Mydigipass<br />

absichern<br />

Über das Mydigipass-Modul lässt sich<br />

das populäre CMS Drupal sehr leicht mit<br />

der Login API von Mydigipass ausstatten<br />

(Abbildung 7). Die nachfolgende Anleitung<br />

erklärt die Installation <strong>und</strong> Konfiguration<br />

anhand von Drupal 6.27. Die<br />

wichtigste Voraussetzung ist, dass der<br />

Webserver den Webservice Mydigipass.<br />

com mit einer ausgehenden HTTPS-Verbindung<br />

erreichen kann. Sofern der Web-<br />

Token [22] für erste Gehversuche mit der eigenen<br />

Web-Applikation zur Verfügung (Abbildung<br />

6). Für den Zugriff auf das Developer-Portal<br />

ist zunächst eine Registrierung bei Mydigipass.<br />

com erforderlich. Mit den dort erhaltenen Zugangsdaten<br />

kann man sich dann auch <strong>im</strong> Entwicklerportal<br />

anmelden. Das Entwicklerportal<br />

enthält neben den detaillierten Preisinformationen<br />

<strong>und</strong> der Dokumentation auch jede Menge<br />

Material wie Logos, Videos <strong>und</strong> Datenblätter<br />

zur Information der Benutzer, die man sich als<br />

sogenanntes User Activation Kit auch in einer<br />

Zip-Datei aus dem Portal herunterladen kann.<br />

94 Ausgabe 02-2013 Admin www.admin-magazin.de


Authentifizierung<br />

Security<br />

Mydigipass-Konserven<br />

Auf Github [23] bietet Vasco einige Plugins für populäre Blog- <strong>und</strong><br />

Content-Management-Systeme, darunter Wordpress, Drupal <strong>und</strong> Magento<br />

zum kostenfreien Download an. Leider fällt auf, dass keines der Plugins<br />

auf dem neuesten Stand für die jeweilige Webapplikation ist. So ist<br />

das Wordpress-Plugin beispielsweise nur bis zur Version 3.3.2 kompatibel<br />

– aktuell ist derzeit aber bereits Wordpress 3.5.1. Da insbesondere<br />

Wordpress-Admins aufgr<strong>und</strong> <strong>im</strong>mer neuer Sicherheitslücken darauf angewiesen<br />

sind ihre Installation auf den neuesten Stand zu bringen, ist der<br />

Einsatz des Wordpress-Plugins derzeit nicht empfehlenswert. Hier sollte<br />

Vasco dringend nachbessern <strong>und</strong> sicherstellen, dass die Plugins in den<br />

jeweils neuesten Versionen einsetzbar sind. Weitere Plugins für andere<br />

populäre Systeme wie Joomla oder Typo3 wären wünschenswert.<br />

Abbildung 6: Mithilfe des Online Demo-Tokens von VASCO können Anwender das<br />

Secure-Login über Mydigipass.com testen.<br />

server also hinter einer Firewall steht,<br />

muss Port 443/​TCP für den Webserver zu<br />

der Domain »mydigipass.com« geöffnet<br />

werden.<br />

Weiterhin arbeitete das Plugin in unserem<br />

Test nur mit aktivierten „Clean<br />

URLs“ in Drupal korrekt zusammen. Mit<br />

Clean URLs werden lesbare URLs ohne<br />

Sonderzeichen erzeugt.<br />

Diese aktivieren<br />

ein Drupal-Admin unter »Administer<br />

| Clean URLs | Enabled«. Da auch der<br />

Webserver diese Funktion unterstützen<br />

muss, muss der Administrator auch be<strong>im</strong><br />

Apache-Webserver das Rewrite-Modul<br />

aktivieren.<br />

Laden Sie zunächst den Tarball des Plugins<br />

von [24] herunter, <strong>und</strong> entpacken Sie<br />

ihn in das Verzeichnis »sites/all/modules/mydigipass«<br />

der Drupal-Installation,<br />

zum Beispiel »/var/www/drupal/sites/<br />

all/modules/mydigipass«. Registrieren<br />

Sie sich dann für einen Developer Account<br />

unter »https://developer.mydigipass.com«,<br />

loggen Sie sich ein, <strong>und</strong><br />

wechseln Sie in den Bereich »Sandbox«.<br />

Klicken Sie dort auf »connect a test site«,<br />

<strong>und</strong> vergeben Sie einen Identifier <strong>und</strong><br />

Anzeige<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

95


Security<br />

Authentifizierung<br />

dungen <strong>und</strong> kleinere Webapplikationen<br />

lassen sich darüber hinaus zum Nulltarif<br />

mit dem Google-Authenticator <strong>und</strong> Mydigipass.com<br />

hervorragend sichern. (ofr)n<br />

Abbildung 7: Die Konfiguration des Mydigipass-Plugins erfolgt komfortabel über die Modulkonfiguration von<br />

Drupal. Danach erlaubt ein spezieller Modus den Test, ohne sich sofort aus dem CMS auszusperren.<br />

Der Einsatz starker Authentifizierungslösungen<br />

ist angesichts der vielen erfolgreichen<br />

Hackerangriffe auf Zugangsdaten<br />

unbedingt angeraten. Prominente Opfer<br />

der jüngeren Vergangenheit sind Sonys<br />

Playstation Network, Yahoo <strong>und</strong> das Social<br />

Business Network LinkedIn. Der Aufwand<br />

für Implementierung <strong>und</strong> Betrieb<br />

einer Zwei-Faktor Authentifizierungslösung<br />

ist vergleichsweise gering, wenn<br />

man das hohe Schadpotenzial eines<br />

erfolgreichen Hacks auf Benutzerdaten<br />

berücksichtigt. Remote-Access-Verbineinen<br />

Anzeigenamen für Ihre Site, diese<br />

können auch identisch sein.<br />

Als »Redirect uri« tragen Sie »http://<br />

Ihre‐Domain/mydigipass/callback« ein.<br />

Nach dem Anlegen Ihrer Site werden <strong>im</strong><br />

Portal Ihre »client_id« <strong>und</strong> das »client_secret«<br />

angezeigt. Diese Werte tragen Sie<br />

dann in die entsprechenden Felder des<br />

Mydigipass-Moduls in Drupal ein (»Administer<br />

| MYDIGIPASS.COM«). Wählen<br />

Sie den Radio-Button bei »Sandbox | developer«<br />

<strong>im</strong> Bereich »Environment«, <strong>und</strong><br />

aktivieren Sie noch die Mydigipass.com-<br />

Integration.<br />

Mixed Mode zum Test<br />

Für erste Versuche sollten Sie sicherheitshalber<br />

auch den »Mixed‐Mode« aktivieren.<br />

Dann können Sie sich weiterhin<br />

auch mit Benutzernamen <strong>und</strong> Passwort<br />

in Ihrer Drupal-Installation einloggen,<br />

falls bei der Integration mit Mydigipass.<br />

com etwas schiefgegangen ist. In der<br />

weiteren Modul-Konfiguration können<br />

Sie bei Bedarf noch die verschiedenen<br />

Button-Styles für den Login-Button anpassen<br />

<strong>und</strong> Datenfelder für Ihre Benutzeraccounts<br />

hinterlegen.<br />

Im letzten Schritt müssen Sie jetzt noch<br />

Ihren Drupal-Benutzer mit dem bei Mydigipass<br />

registrierten Benutzer verbinden.<br />

Dazu wählen Sie in Drupal »My Account<br />

| Edit« <strong>und</strong> klicken dort auf den Button<br />

»Connect with MYDIGIPASS.COM«. Hat<br />

alles geklappt, meldet Drupal »The user<br />

has been successfully linked to MYDIGI-<br />

PASS.COM«, <strong>und</strong> Sie können sich ab sofort<br />

über Mydigipass in Drupal einloggen.<br />

Bevor Sie sich erstmalig über Mydigipass<br />

an Drupal anmelden können, müssen<br />

Sie sich allerdings zunächst aus dem<br />

Developer-Portal <strong>und</strong> aus Drupal ausloggen<br />

<strong>und</strong> den Browser schließen, um die<br />

Session-Cookies ebenfalls zu löschen.<br />

Fazit<br />

Der Autor<br />

Thomas Zeller ist IT-Consultant <strong>und</strong> beschäftigt<br />

sich seit über 15 Jahren mit IT-Sicherheit <strong>und</strong><br />

Open Source. Er ist Autor / Co-Autor der Bücher<br />

„OpenVPN kompakt“ <strong>und</strong> „Mindmapping mit Freemind“.<br />

Im richtigen Leben ist er Geschäftsführer<br />

eines mittelständischen IT-Systemhauses <strong>und</strong> ist<br />

dort auch für den Geschäftsbereich IT-Sicherheit<br />

verantwortlich.<br />

Infos<br />

[1] QTrust 2go Smart:<br />

[http:// www. qgroup. de/ qtrust2gosmart]<br />

[2] Virtual Private Network (ISi-VPN):<br />

[https:// www. bsi. b<strong>und</strong>. de/ DE/ Themen/​<br />

Cyber‐Sicherheit/ ISi‐Reihe/ ISi‐VPN/​<br />

vpn_node. html]<br />

[3] TOTP: T<strong>im</strong>e-Based One-T<strong>im</strong>e Password Algorithm:<br />

[http:// tools. ietf. org/ html/ rfc6238]<br />

[4] HOTP: An HMAC-Based One-T<strong>im</strong>e Password<br />

Algorithm:<br />

[http:// tools. ietf. org/ html/ rfc4226]<br />

[5] OATH: [http:// www. openauthentication. org]<br />

[6] FreeBSD One-t<strong>im</strong>e Passwords: [http:// www.​<br />

freebsd. org/ doc/ en_US. ISO8859‐1/ books/​<br />

handbook/ one‐t<strong>im</strong>e‐passwords. html]<br />

[7] Openkubus: [http:// code. google. com/ p/​<br />

openkubus/]<br />

[8] LSE LinOTP: [http:// lsexperts. de/ linotp‐str<br />

ong‐user‐authentication. html]<br />

[9] Mobile OTP: [http:// motp. sourceforge. net]<br />

[10] Vasco: [http:// www. vasco. com]<br />

[11] RSA Security: [http:// www. emc. com/​<br />

domains/ rsa/ index. htm]<br />

[12] Safenet: [http:// www. safenet‐inc. de]<br />

[13] SMS Passcode:<br />

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

[14] Zyxel: [http:// www. zyxel. de]<br />

[15] Android Opiekey:<br />

[http:// android. f00d. nl/ opiekey]<br />

[16] Google Authenticator: [http:// code.​<br />

google. com/ p/ google‐authenticator]<br />

[17] GA Download: [https:// code. google. com/ p/​<br />

google‐authenticator/ downloads/ list]<br />

[18] Anmelden mit Ersatzcodes :<br />

[http:// support. google. com/ accounts/ bin/​<br />

answer. py? hl=de& answer=1187538]<br />

[19] Sicherheitsschlüssel von Paypal: [https://​<br />

www. paypal‐deutschland. de/ sicherheit/​<br />

kontoschutz/ sicherheitsschluessel. html]<br />

[20] Mydigipass:<br />

[https:// www. mydigipass. com/ de/ fp]<br />

[21] Mydigipass API: [https:// developer.​<br />

mydigipass. com/ api]<br />

[22] Demo Token:<br />

[http:// demotoken. vasco. com/ go3. html]<br />

[23] Mydigipass-Plugins:<br />

[https:// github. com/ vasco‐data‐security]<br />

[24] Drupal-Modul: [http:// drupal. org/ project/​<br />

mydigipass]<br />

96 Ausgabe 02-2013 Admin www.admin-magazin.de


Alle Ausgaben der letzTen 12 Monate<br />

Sie haben ein Admin verpasst? Kein Problem!<br />

Bei uns können Sie alle Ausgaben des <strong>ADMIN</strong> <strong>Magazin</strong><br />

der letzten 12 Monate ganz einfach <strong>und</strong> versandkostenfrei<br />

unter www.admin-magazin.de/einzelheft nachbestellen:<br />

<strong>ADMIN</strong> 02/2012 <strong>ADMIN</strong> 03/2012 <strong>ADMIN</strong> 04/2012<br />

<strong>ADMIN</strong> 05/2012 <strong>ADMIN</strong> 06/2012 <strong>ADMIN</strong> 01/2013<br />

Damit Sie keine Ausgabe mehr verpassen,<br />

bestellen Sie am besten gleich ein Abo<br />

vom <strong>ADMIN</strong> <strong>Magazin</strong> <strong>und</strong> sparen:<br />

Telefonisch unter: 07131 / 2707 274,<br />

per Fax: 07131 / 2707 78 601 oder<br />

E-Mail: abo@admin-magazin.de,<br />

Web: www.admin-magazin.de/abo


Virtualisierung<br />

VMware-Monitoring<br />

© Levent Konuk, 123RF<br />

VMware-Monitoring mit OpenNMS<br />

Durchleuchtet<br />

Durch die Migration virtueller Maschinen zwischen Hosts <strong>und</strong> die dynamische Ressourcenzuweisung stellen<br />

VMware-Umgebungen auch das Monitoring vor neue Herausforderungen. Wissenschaftliche Mitarbeiter der<br />

Hochschule Fulda haben jetzt zusammen mit dem Hersteller das freie OpenNMS um die Überwachung VMwarebasierter<br />

Infrastrukturen erweitert. Christian Pape, Ronny Trommer<br />

Die Virtualisierungslösung von VMware<br />

besteht <strong>im</strong> Wesentlichen aus drei<br />

Komponenten. Da ist erstens der ESX/​<br />

ESXi-Server, ein Hypervisor, der auf physischer<br />

Hardware aufsetzt <strong>und</strong> der seine<br />

Ressourcen den virtuellen Maschinen zur<br />

Verfügung stellt [1]. Die zweite Komponenten<br />

sind die Gast-Systeme, also die<br />

virtuellen Maschinen selbst. Sie bilden<br />

die Plattform für die Betriebssysteme<br />

<strong>und</strong> Fachanwendungen, die Benutzern<br />

Dienste <strong>im</strong> Netzwerk anbieten. Drittens<br />

kommt schließlich die Komponente VMware<br />

vSphere vCenter ins Spiel, die der<br />

Verwaltung der Hosts <strong>und</strong> Gäste dient.<br />

Alle Systeme zusammen bilden einen<br />

VMware Cluster (Abbildung 1).<br />

Die OpenNMS-Ergänzung der Fuldaer<br />

Hochschule betrifft alle Bestandteile eines<br />

solchen Clusters: Sie synchronisiert<br />

Informationen über Hosts <strong>und</strong> Gäste<br />

zwischen OpenNMS <strong>und</strong> VMware, sie<br />

überwacht diese Systeme <strong>und</strong> sammelt<br />

zusätzlich von ihnen auch Performance-<br />

Daten. Die Erweiterung ist inzwischen<br />

als fester Bestandteil in OpenNMS integriert.<br />

Aus Netzwerk-Management-Perspektive<br />

ist das VMware vCenter die interessanteste<br />

Komponente des Clusters. Es führt<br />

eine Datenbank mit allen Gast- <strong>und</strong><br />

Host-Systemen <strong>und</strong> sammelt deren Performancewerte.<br />

Innerhalb eines VMware<br />

Clusters können Gäste bekanntlich zwischen<br />

ESX-Hosts verschoben werden.<br />

Gerade diese Dynamik fordert das Moni-<br />

98 Ausgabe 02-2013 Admin www.admin-magazin.de


OSDC.de<br />

OPEN SOURCE DATA<br />

CENTER CONFERENCE<br />

17. - 18. APRIL 2013 | NUREMBERG<br />

Abbildung 1: Die Komponenten in einer VMware-Infrastruktur.<br />

toring besonders heraus, das sie abbilden<br />

muss. Auch reichen die Messwerte aus<br />

einem Gast-Betriebssystem alleine nicht<br />

mehr aus, weil die Ressourcenzuteilung<br />

von einer übergeordneten Instanz beeinflusst<br />

wird.<br />

Herausforderungen in<br />

virtuellen Umgebungen<br />

Unter dem Gesichtspunkt des Netzwerk-<br />

Monitorings lassen sich Host- <strong>und</strong> Gast-<br />

Systeme kaum unterscheiden. In der Regel<br />

werden beide als zu überwachende<br />

Systeme in Form von Knoten (Nodes) <strong>im</strong><br />

Netzwerk-Managementsystem abgebildet.<br />

Die Überwachung selbst bedient sich<br />

Technologien wie beispielsweise SNMP,<br />

JMX oder WMI. Zu diesem Zweck ist es<br />

notwendig, dass Host- <strong>und</strong> Gast-Systeme<br />

für OpenNMS über das Netzwerk erreichbar<br />

sind. Erschwerend kommt hinzu,<br />

dass virtuelle Rechner in einem VMware<br />

Cluster leicht hinzugefügt <strong>und</strong> entfernt<br />

werden können. Diese Änderungen<br />

müssen in einer Netzwerk-Management-<br />

Anwendung wie OpenNMS ebenfalls<br />

abgebildet werden. Darüber hinaus stehen<br />

Daten, die VMware vSphere vCenter<br />

über Auslastung <strong>und</strong> Performance der<br />

Host- <strong>und</strong> Gast-Systeme sammelt, nicht<br />

über Standardprotokolle wie SNMP zur<br />

Verfügung. Das Monitoring von VMware<br />

Clustern kann daher schnell komplex<br />

<strong>und</strong> wartungsintensiv werden.<br />

OpenNMS lernt VMware<br />

Die von den Fuldaer Forschern entwickelte<br />

Softwareergänzung für OpenNMS<br />

bedient sich der sogenannten Virtual Infrastructure<br />

API [2], [3], über die der<br />

Zugriff auf Informationen des vCenter<br />

möglich ist. Die von Steve Jin aus der<br />

Forschungs- <strong>und</strong> Entwicklungsabteilung<br />

www.admin-magazin.de<br />

von VMware entwickelte Bibliothek bietet<br />

alles, um sowohl Daten abzufragen<br />

als auch Aktionen innerhalb der VMware<br />

Infrastruktur auszulösen. Dabei werden<br />

die Daten über eine HTTPS-Verbindung<br />

vom VMware vSphere vCenter übertragen.<br />

Die Abfrage der Sensor-Daten der<br />

Hostsysteme basiert auf den Standards<br />

WBEM (Web-based Enterprise Management)<br />

beziehungsweise CIM (Common<br />

Information Model). Der Zugriff wird<br />

durch das SBLIM-Projekt möglich [7].<br />

In Abbildung 2 wird die Kommunikation<br />

zwischen OpenNMS, VMware vSphere<br />

vCenter <strong>und</strong> den Host-Systemen dargestellt.<br />

Die Messwerte der Gast-Systeme<br />

stammen aus vCenter. Die Sensordaten<br />

für den Hardwarestatus werden <strong>im</strong><br />

Host-System direkt ausgelesen. Für die<br />

Authentifizierung stellt das VMware<br />

vSphere vCenter einen zentralen Authentifizierungsmechanismus<br />

bereit.<br />

Für diesen Zugriff wird auf Seite der<br />

VMware-Infrastruktur ein Benutzer mit<br />

lesendem Zugriff benötigt. Mit diesem<br />

können dann sowohl die Metriken der<br />

Gast-Systeme als auch die Sensor-Daten<br />

von Host-Systemen abgefragt werden.<br />

Die durch den VMware vSphere vCenter<br />

verwalteten Objekte werden in der Terminologie<br />

von VMware als sogenannte<br />

Managed Entities bezeichnet <strong>und</strong> durch<br />

eine Managed Object ID eindeutig identifiziert.<br />

OpenNMS verwendet die Managed<br />

Object IDs als Referenz. Verschiebt<br />

sich beispielsweise ein Gast-System, so<br />

kann dies über die Managed Object ID<br />

festgestellt werden.<br />

Die VMware Integration war bis vor einiger<br />

Zeit nur demjenigen zugänglich,<br />

der OpenNMS aus den Quellen übersetzen<br />

<strong>und</strong> installieren konnte. Inzwischen<br />

ist jedoch alles auch ganz bequem aus<br />

RPM- oder Debian-Paketen installierbar,<br />

die Teil der OpenNMS-Repositories<br />

wwww.netways.de/osdc<br />

presented by<br />

wwww.netways.de/osdc<br />

presented by<br />

wwww.netways.de/osdc<br />

presented by<br />

NETWAYS ®<br />

NETWAYS ®<br />

NETWAYS ®


Virtualisierung<br />

VMware-Monitoring<br />

sind. Eine ausführliche Beschreibung der<br />

Gr<strong>und</strong>installation enthält das OpenNMS-<br />

Wiki [4].<br />

Benutzer <strong>und</strong><br />

Berechtigungen<br />

Der Zugriff auf die Management-Informationen<br />

von VMware ist verschlüsselt<br />

<strong>und</strong> mit einer Benutzer-Authentifizierung<br />

abgesichert. Entsprechend benötigt<br />

OpenNMS das Recht, Informationen<br />

von VMware vSphere vCenter zu lesen.<br />

Die Berechtigungen werden in VMware<br />

vSphere vCenter über Benutzer <strong>und</strong> Rollen<br />

realisiert. Im ersten Schritt muss ein<br />

Benutzer für OpenNMS in vCenter angelegt<br />

werden. Im nächsten Schritt legt man<br />

eine neue Rolle an.<br />

Es lässt sich dazu die Rolle Readonly<br />

mit der Bezeichnung OpenNMS-Access<br />

kopieren. Um die Sensor-Daten der Host-<br />

Systeme auslesen zu können, wird zusätzlich<br />

die Berechtigung CIM Interaction<br />

benötigt. Diese neu erstellte Rolle wird<br />

dann dem OpenNMS-Benutzer zugewiesen.<br />

In OpenNMS gibt es einen speziellen<br />

Listing 2: Zeitgesteuerte Synchronisation<br />

Prozess namens »provisiond«. Er kümmert<br />

sich darum, Netzwerkgeräte <strong>und</strong><br />

zu überwachende Dienste ins Monitoring<br />

aufzunehmen. Zusätzlich besitzt er<br />

Schnittstellen, um von fremden externen<br />

Datenquellen Informationen <strong>im</strong> XML-Format<br />

zu <strong>im</strong>portieren. Für die Integration<br />

in VMware muss der Admin den »provisiond«<br />

konfigurieren.<br />

OpenNMS-Provisioning<br />

Im ersten Schritt ist die Datei vmwareconfig.xml<br />

zu bearbeiten. In Listing 1<br />

wird gezeigt, wie Zugangsdaten für zwei<br />

VMware Cluster zu hinterlegen sind. Im<br />

zweiten Schritt werden zwei geplante<br />

Aufträge für »provisiond« angelegt. Sie<br />

synchronisieren in regelmäßigen Zeitabständen<br />

die Informationen zwischen<br />

OpenNMS <strong>und</strong> den beiden vCenters.<br />

Die Konfiguration muss in der »provisiond‐configuration.xml«<br />

gespeichert<br />

werden. In Listing 2 wird für die beiden<br />

VMware Cluster jeweils ein Auftrag<br />

angelegt, um täglich die Host- <strong>und</strong> Gast-<br />

Systeme mit der OpenNMS-Datenbank<br />

01 <br />

02 0 0 0 * * ? *<br />

03 <br />

04 <br />

05 <br />

06 0 0 0 * * ? *<br />

07 <br />

Listing 3: »send‐event.pl«<br />

01 [root@opennms bin]# $OPENNMS_HOME/bin/send‐event.pl uei.opennms.org/internal/reloadDaemonConfig ‐‐parm<br />

'daemonName Provisiond'<br />

Listing 4: Filter-Beispiele<br />

01 # Synchronisiert alle aktiven Host‐ <strong>und</strong> Gast‐Systeme<br />

02 vmware://vcenter2.local/vcenter2‐activeVM?<strong>im</strong>portVMPoweredOn=true;<strong>im</strong>portHostPoweredOn=true<br />

03 <br />

Listing 1: Authentifizierung für VMware<br />

01 [root@opennms etc]# vi vmware‐config.xml<br />

02 <br />

03 <br />

04 <br />

05 <br />

04 # Synchronisiert nur Host‐ <strong>und</strong> Gast‐Systeme mit benutzerspezifischem<br />

05 # Attribut OpenNMS‐Import=true<br />

06 vmware://vcenter1.local/vcenter1‐<strong>im</strong>port?key=OpenNMS‐Import;value=true<br />

zu synchronisieren. Damit »provisiond«<br />

seine Konfiguration neu einliest, kann<br />

man sich des OpenNMS-Kommandos<br />

send-event.pl (Listing 3) bedienen. Die<br />

Konfiguration ist jetzt aktiv, <strong>und</strong> zur angegebenen<br />

Zeit werden die Systeme aus<br />

den beiden VMware Clustern mit der Datenbank<br />

von OpenNMS abgeglichen.<br />

OpenNMS <strong>im</strong>portiert die verfügbaren<br />

Host- <strong>und</strong> Gast-Systeme als Knoten in<br />

seine Datenbank <strong>und</strong> verbindet sie automatisch<br />

mit Monitoren, die den Sensor-Status<br />

bei Host-Systemen oder den<br />

Power-Status von Gast-Systemen überwachen.<br />

Der Ausfall einer physischen<br />

Komponente oder das Ein- oder Ausschalten<br />

eines Gast-Systems löst dann<br />

entsprechende Benachrichtigungen aus.<br />

Darüber hinaus werden die verfügbaren<br />

Messwerte gesammelt – diese Daten stehen<br />

dann wie gewohnt als Graphen in der<br />

Web-Oberfläche zur Verfügung.<br />

Kontrolle be<strong>im</strong> Provisioning<br />

Wer in großen Umgebungen VMware<br />

Cluster betreibt, stellt schnell fest, dass<br />

man unter Umständen nicht alle virtuellen<br />

Maschinen ins Monitoring überführen<br />

will. Es gibt vermutlich Vorlagen oder<br />

Testmaschinen die nicht für das Monitoring<br />

interessant sind. Deshalb lässt sich<br />

der Import über Filter steuern.<br />

Der Aufbau der URL in der »provisiond‐configuration.xml«<br />

spielt dafür eine<br />

wichtige Rolle, folgt er doch einem best<strong>im</strong>mten<br />

Schema. Das Protokoll vmware://​host-adresse<br />

spezifiert einen<br />

Protokoll-Handler <strong>und</strong> teilt OpenNMS<br />

mit, dass die Informationen von einem<br />

VMware vSphere vCenter mit der angegebenen<br />

Host-Adresse <strong>im</strong>portiert werden<br />

sollen. Der URL-Teil foreignSource-Name<br />

dient als Bezeichnung für eine Gruppe<br />

von Knoten in OpenNMS.<br />

Als Parameter können verschiedene vordefinierte<br />

Filter übergeben werden. So<br />

kann beispielsweise der Parameter »<strong>im</strong>portVMPoweredOn«<br />

verwendet werden,<br />

um nur eingeschaltete Gast-Systeme zu<br />

synchronisieren. Mithilfe von frei definierbaren<br />

VMware-Attributen lässt sich die<br />

Synchronisation individuell kontrollieren.<br />

So kann beispielsweise ein Administrator<br />

die Host- <strong>und</strong> Gast-Syteme mit einem<br />

Attribut »OpenNMS‐Import=true« versehen.<br />

Als Filter-Parameter wird dann<br />

100 Ausgabe 02-2013 Admin www.admin-magazin.de


Installation von<br />

<strong>Windows</strong>-Clients<br />

basierend auf<br />

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

Abbildung 2: OpenNMS-Kommunikation mit VMware vSphere vCenter.<br />

open pc server integration<br />

OpenNMS mitgeteilt, dass nur virtuelle<br />

Maschinen zu synchronisieren sind, die<br />

dieses Attribut gesetzt haben. In Listing<br />

4 werden zwei Konfigurationsbeispiele<br />

dargestellt.<br />

Fazit<br />

Die Integration von OpenNMS <strong>und</strong> VMware<br />

macht sichtbar, wie gut Open-Source<br />

Anwendungen auch mit kommerziellen<br />

Produkten zusammenspielen können.<br />

Eine entscheidende Voraussetzung sind<br />

allerdings freie <strong>und</strong> offene Bibliotheken,<br />

die mit den freien Lizenzen kompatibel<br />

sind. VMware ist hier mit seinen Produkten<br />

bereits auf einem guten Weg.<br />

Viel Arbeit ist gegenwärtig noch in der<br />

Anpassung der RRD-Graphen zu investieren,<br />

um die vielen Performance-Metriken<br />

darstellen zu können, die VMware liefert.<br />

Im Moment ist dafür leider nur eine sehr<br />

rud<strong>im</strong>entäre Ansicht verfügbar.<br />

Für die Leser, die an der Thematik „Monitoring<br />

mit freier Software“ weitergehend<br />

interessiert sind, sei hier noch auf die<br />

OpenNMS User Conference Europe 2013<br />

[5] verwiesen, die vom 12. bis 15. März<br />

in Fulda stattfinden wird.<br />

Neben vielen interessanten Vorträgen<br />

r<strong>und</strong> um das Thema sind selbstverständlich<br />

auch die Macher von OpenNMS auf<br />

dieser Konferenz – neben Tarus Balog,<br />

www.admin-magazin.de<br />

CEO der OpenNMS Inc. <strong>und</strong> Project<br />

Maintainer – sind etliche Mitglieder des<br />

Kernteams vor Ort. Die Konferenz bietet<br />

damit viele Gelegenheiten für Fragen<br />

oder einen Erfahrungsaustausch. (jcb)n<br />

Infos<br />

[1] VMware, Inc. VMware vSphere Basics. 3401<br />

Hillview Ave., Palo Alto, CA, June 2011.<br />

[2] Java API: [http:// vijava. sourceforge. net].<br />

[3] Steve Jin. VMware VI and vSphere SDK:<br />

Managing the VMware Infrastructure and<br />

vSphere. Prentice Hall, 1 edition, October<br />

2009.<br />

[4] OpenNMS Wiki Installation: [http:// www.​<br />

opennms. org/ wiki/ Installation].<br />

[5] OUCE 2013: [http:// www. opennms. eu].<br />

[6] OpenNMS Wiki: [http:// www. opennms. org/​<br />

wiki/ Featurebranch/ feature‐vmware].<br />

[7] SBLIM Projekt: [http:// sourceforge.​<br />

net/ apps/ mediawiki/ sbl<strong>im</strong>/ index. php?​<br />

title=Main_Page].<br />

[8] Steve Jin. VMware VI and vSphere SDK:<br />

Managing the VMware Infrastructure and<br />

vSphere. Prentice Hall, First Edition, October<br />

2009.<br />

[9] Christian Pape and Ronny Trommer.<br />

Monitoring VMware-based virtual infrastructures<br />

with opennms. In Proceedings<br />

8th International Conference on Computer<br />

Science and Education in Computer<br />

Science, Boston/​New York, USA, 2012.<br />

Das Open Source<br />

Client- Management-System:<br />

• Automatische<br />

Softwareverteilung<br />

• Automatische<br />

Betriebssysteminstallation<br />

• Hard- <strong>und</strong> Softwareinventarisierung<br />

• Komfortable Steuerung über<br />

das opsi Management interface<br />

• Unterstützung von mehreren<br />

Standorten mit Depotservern<br />

CeBIT 2013 – Halle 6, Open<br />

Source Park, Stand F16 (320)<br />

www.uib.de – www.opsi.org


Virtualisierung<br />

Open Stack<br />

© Steven Frame, 123RF<br />

Open-Stack-Workshop, Teil 3: G<strong>im</strong>micks, Erweiterung <strong>und</strong> Hochverfügbarkeit<br />

Überbreite<br />

Nach der knochentrockenen Installations-Anleitung in Episode 2 beschäftigt sich nun der dritte Teil des Workshops<br />

mit nützlichen Erweiterungen von Open Stack <strong>und</strong> verrät Admins, wie sie ihre Wolke am besten gegen<br />

Ausfälle absichern. Martin Loschwitz<br />

Der vergangene zweite Teil dieses Workshops<br />

bot wenig Gr<strong>und</strong> zur Gaudi – bis<br />

eine vollständige Open-Stack-Installation<br />

das Licht der Welt erblickt hat, muss der<br />

ausführende Admin sich um gefühlte 1000<br />

Dinge gleichzeitig kümmern. Der Lohn<br />

ist eine Cloud-Plattform, die nahtlos in<br />

die Breite skaliert <strong>und</strong> die durch den Einsatz<br />

moderner Technik wie Openvswitch<br />

viele technische Probleme umschifft,<br />

mit denen konservative Virtualisierungs-<br />

Umgebungen kämpfen. Steht die Basisinstallation,<br />

geht es ans Verfeinern: Wie<br />

schaffen Cloud-Betreiber Mehrwert durch<br />

ihre Software, wie machen sie ihre Installation<br />

zukunftssicher, <strong>und</strong> wie lässt sich<br />

ein Infrastrukturausfall in Open Stack<br />

bestmöglich abfedern? Diese dritte Folge<br />

des Open-Stack-Workshops geht jenen<br />

Fragen auf den Gr<strong>und</strong> <strong>und</strong> beginnt mit<br />

einer Reparatur, die Cloud-K<strong>und</strong>en ein<br />

Jauchzen entlocken dürfte.<br />

Quantum, Horizon <strong>und</strong><br />

Floating-IPs<br />

Eine elementare Funktion in Open Stack<br />

sind die Floating-IPs. Sie erlauben es, virtuelle<br />

Maschinen bei Bedarf mit öffentlichen<br />

IP-Adressen auszurüsten, um diese<br />

aus dem Internet erreichbar zu machen.<br />

Öffentliche IPs lassen sich dynamisch<br />

bestehenden Instanzen zuweisen. Ihren<br />

Ursprung hat die Funktion in der Tatsache,<br />

dass längst nicht jede VM aus dem<br />

Internet erreichbar sein soll: Einerseits<br />

sind oft gar nicht genug IPv4-Adressen<br />

vorhanden, um dieses Ziel zu erreichen;<br />

andererseits gibt es auch keinen Gr<strong>und</strong><br />

beispielsweise einer Datenbank, eine<br />

öffentliche IP zuzuweisen. Webserver<br />

hingegen (oder wenigstens ihnen vorgeschaltete<br />

Loadbalancer) sind idealerweise<br />

aus dem Netz erreichbar.<br />

In der vorangegangenen Open-Stack-<br />

Version Essex war die Welt quasi noch in<br />

Ordnung: Um das Netzwerk kümmerte<br />

sich Nova Network als Komponente der<br />

Computing-Umgebung von Open Stack<br />

<strong>und</strong> von Quantum war noch nichts zu<br />

sehen. Das Zuweisen von Floating-IPs<br />

war eine Nova-interne Angelegenheit,<br />

<strong>und</strong> genau darauf ist beispielsweise auch<br />

das Webinterface Horizon ausgelegt: Will<br />

102 Ausgabe 02-2013 Admin www.admin-magazin.de


Open Stack<br />

Virtualisierung<br />

Abbildung 1: Wenn der Patch für Floating-IPs mit Quantum per Dashboard auf dem System eingespielt ist …<br />

ein K<strong>und</strong>e <strong>im</strong> Dashboard einer VM eine<br />

Floating-IP zuweisen, so sendet Horizon<br />

den Befehl an Nova <strong>und</strong> verlässt sich<br />

darauf, dass das Richtige geschieht.<br />

Probleme mit Quantum<br />

In Folsom hat diese Eintracht durch<br />

Quantum etwas gelitten. Denn nun ist<br />

nicht mehr Nova für Floating-IP-Adressen<br />

zuständig, sondern eben Quantum.<br />

Das macht sich an mehreren Stellen bemerkbar:<br />

In der ursprünglichen Version<br />

von Folsom, also 2012.2, funktioniert<br />

das Zuweisen von Floating-IPs nur per<br />

Kommandozeile <strong>und</strong> einem »quantum«-<br />

Befehl. Kostprobe gefällig? Listing 1 zeigt<br />

die einzelnen Schritte, die dafür notwendig<br />

sind.<br />

Was <strong>im</strong> Beispiel kryptisch aussieht, ist es<br />

auch: Zunächst findet der Admin die ID<br />

seines externen Netzwerks (<strong>im</strong> Beispiel<br />

»ext_net«) heraus, um dann per »quan-<br />

tum floatingip‐create« eine Floating-IP in<br />

diesem Netz anzulegen. dann muss er<br />

wissen, mit welchem Port des virtuellen<br />

Quantum-Switches die VM verb<strong>und</strong>en<br />

ist, die die Floating-IP erhalten soll,<br />

<strong>im</strong> Beispiel die VM mit der IP-Adresse<br />

»10.5.5.3«. Schließlich kriegt die VM<br />

ihre IP. Bedingt durch die Tatsache, dass<br />

Quantum durchgehend auf UUIDs setzt,<br />

gestaltet sich der gesamte Vorgang offensichtlich<br />

überaus intuitiv.<br />

Scherz beiseite: Dass diese Arbeitsschritte<br />

für Nicht-Geeks praktisch nicht<br />

zu meistern sind, liegt auf der Hand.<br />

An genau diese Nicht-Geeks richten sich<br />

Cloud-Plattformen aber, es muss also<br />

eine Lösung her. Das Dashboard, das den<br />

Benutzern das einfache Zuweisen von IPs<br />

erlaubt, ist leider noch nicht fit für den<br />

Quantum-Einsatz <strong>und</strong> versucht auch bei<br />

Quantum-Setups stur, das Zuweisen der<br />

IPs über Nova abzuwickeln. Quantum-<br />

Kompatibilität haben die Entwickler erst<br />

für die Grizzly-Version des Dashboards<br />

vorgesehen. Trotzdem kein Gr<strong>und</strong> zum<br />

Verzweifeln, denn mit etwas Bastelei lässt<br />

sich die fehlende Funktion einfach nachrüsten.<br />

Die Nova-Komponente <strong>im</strong> ersten<br />

Folsom-Maintenance-Release (2012.2.1)<br />

kommt mit einem Patch, der Floating-IP-<br />

Requests direkt an Quantum weiterleitet,<br />

wenn Quantum zum Einsatz kommt.<br />

Wer Floating-IPs mit Quantum will, sollte<br />

also zunächst diese Version installieren<br />

(für Ubuntu 12.04 liegt sie mittlerweile<br />

in Form von Paketen <strong>im</strong> Ubuntu-Cloud-<br />

Repository vor). Das ist die halbe Miete<br />

– die andere Hälfte kommt in Form eines<br />

Patches.<br />

Das leidige Thema UUIDs<br />

Das Dashboard gibt die zuzuweisende<br />

Floating-IP direkt an. Nova-Network kam<br />

damit zurecht, für Quantum muss anstelle<br />

der IP allerdings die entsprechende<br />

Listing 1: Floating-IPs mit »quantum« zuweisen<br />

01 root@alice:~# quantum net‐list<br />

02 <br />

03 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

04 | id | name | subnets<br />

|<br />

05 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

06 | 42a99eb6‐3de7‐4ffb‐b34e‐6ce622dbdefc | admin‐net|928598b5‐43c0‐... |<br />

07 | da000609‐a85f‐4d46‐8abd‐ff649c4cb173 | ext_net |0f5c7b17‐65c10-... |<br />

08 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

09 <br />

10 root@alice:~# quantum floatingip‐create da000609‐a85f‐4d46‐8abd‐...<br />

11 Created a new floatingip:<br />

12 <br />

13 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

14 | Field | Value |<br />

15 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

16 | fixed_ip_address | |<br />

17 | floating_ip_address | 192.168.144.101 |<br />

18 | floating_network_id | da000609‐a85f‐4d46‐8abd‐ff649c4cb173 |<br />

19 | id | 52706c89‐2906‐420c‐a719‐514c267cfbd4 |<br />

20 | port_id | |<br />

21 | router_id | |<br />

22 | tenant_id | dc61d2b9e6c44e6a9a6615fb5c045693 |<br />

23 root@alice:~# quantum port‐list<br />

26 <br />

27 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐<br />

28 | 0c478fa6‐c12c‐... | | fa:16:3e:29:33:18 |<br />

29 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

30 | fixed_ips |<br />

31 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

32 {"subnet_id": "0f5c7b17‐65c1‐", "ip_address": "192.168.144.101"} |<br />

33 +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

34 ...<br />

35 root@alice:~# quantum floatingip‐associate 52706c89‐2906‐420c‐a719‐514c2<br />

67cfbd4 c1db7d5e‐c552‐4a80‐82e4‐3da94e83cbe8<br />

37 Associated floatingip 52706c89‐2906‐420c‐a719‐514c267cfbd4<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

103


Virtualisierung<br />

Open Stack<br />

Abbildung 2: … funktioniert das Zuweisen von Floating-IPs wie gewohnt.<br />

UUID der IP-Teil des Befehls sein. Ein zurückportierter<br />

Patch aus Grizzly [1] sorgt<br />

dafür, dass das Dashboard mit IPs umgehen<br />

kann, die in UUID-Form angegeben<br />

sind. Der Patch ist auf dem Dashboard-<br />

Host <strong>im</strong> Ordner<br />

/usr/lib/python2.7/dist‐packages/horizon/U<br />

dashboards/nova/access_and_security/U<br />

floating_ips<br />

mittels »patch ‐p1 < Patch« anzuwenden.<br />

Anschließend funktioniert das Zuweisen<br />

der Floating-IPs: Nach dem Mausklick<br />

des Nutzers <strong>im</strong> Dashboard gibt jenes<br />

den Befehl an Nova weiter, das ihn zu<br />

Quantum schickt. Quantum kümmert<br />

sich um den Rest, <strong>und</strong> die VM bekommt<br />

ihre Floating-IP.<br />

Storage sinnvoll planen<br />

Ein klassischer Anspruch an Cloud-Computing-Umgebungen<br />

ist der, dass sie nahtlos<br />

in die Breite skalieren sollen. Wenn<br />

die Plattform wächst, muss es möglich<br />

sein, zusätzliche Hardware hinzuzufügen<br />

<strong>und</strong> so die Kapazität der Installation zu<br />

vergrößern. Der Anspruch kolldiert allerdings<br />

mit klassischen Storage-Ansätzen,<br />

denn weder typische SAN-Storages noch<br />

passende Ersatzkonstruktionen mit NBD<br />

oder DRBD lassen sich in solchen D<strong>im</strong>ensionen<br />

erweitern wie Cephs.<br />

Wirklich interessant ist ein Gespann aus<br />

einer Cloud-Plattform wie Open Stack<br />

<strong>und</strong> einer Object-Storage-Lösung. Open<br />

Stack selbst bringt eine solche in Form<br />

von Open Stack Swift sogar mit, doch<br />

leidet Swift unter der Tatsache, dass es<br />

nicht möglich ist, auf den Storage als<br />

Block-Device zuzugreifen. Hier kommt<br />

Ceph ins Spiel, denn Ceph ermöglicht<br />

Block-Zugriff. Die beiden Komponenten<br />

von Open Stack, die mit Storage zu tun<br />

haben – Glance <strong>und</strong> Cinder – bieten einen<br />

direkten Anschluss an Ceph. Wie<br />

funktioniert die praktische Umsetzung?<br />

Ganz leicht: Glance <strong>und</strong><br />

Ceph<br />

Im Falle von Glance lautet die Antwort:<br />

Sehr leicht. Glance kann nativ mit Ceph<br />

sprechen. Zur Erinnerung: Glance ist die<br />

Komponente in Open Stack, die Betriebssystem-Images<br />

für Benutzer parat hält.<br />

Wenn schon ein Object-Store da ist, liegt<br />

nichts näher, als jene Images in ihm abzulegen.<br />

Damit das klappt, sind nur wenige<br />

Vorbereitungen nötig. Vorausgesetzt, dass<br />

es in Ceph einen Pool namens »<strong>im</strong>ages«<br />

gibt <strong>und</strong> dass der Ceph-Benutzer »client.<br />

glance« Zugriff auf diesen hat, ist die<br />

restliche Konfiguration leicht. Mehr über<br />

die Benutzerautentifizierung in Ceph findet<br />

sich übrigens <strong>im</strong> zweiten Artikel des<br />

Autors in diesem Heft.<br />

Jeder Host, auf dem Glance mit Ceph-Verbindung<br />

laufen soll, benötigt eine funktionierende<br />

»/etc/ceph/ceph.conf«. Aus<br />

dieser holt Glance sich alle benötigten Infos<br />

über die Topologie des Ceph-Clusters.<br />

Außerdem muss in der Datei vermerkt<br />

sein, wo der Keyring mit dem Passwort<br />

zu finden ist, der zum Glance-Benutzer in<br />

Ceph gehört. Ein entsprechender Eintrag<br />

für »ceph.conf « sieht so aus:<br />

[client.glance]<br />

keyring = /etc/ceph/keyring.glance<br />

In »/etc/​ceph/​keyring.glance« muss dann<br />

der Schlüssel des Benutzers zu finden<br />

sein. Die folgende Datei ist ein Beispiel:<br />

[client.glance]<br />

key = AQA5XRZRUPvHABAABBkwuCgELlu...<br />

Dann fehlt nur noch die Konfiguration<br />

von Glance selbst, die der Admin in<br />

»/etc/glance/glance‐api.conf« einträgt.<br />

Der Wert für »default_store = « ist<br />

»rbd«. Wer als Benutzernamen für den<br />

Glance-Benutzer in Ceph »client.glance«<br />

<strong>und</strong> als Pool »<strong>im</strong>ages« nutzt, kann das<br />

File danach wieder schließen, das ist der<br />

Default. Wenn andere Namen zum Einsatz<br />

kommen, sind »rbd_storage_user«<br />

<strong>und</strong> »rbd_store_pool« weiter unten in der<br />

Datei entsprechend anzupassen. Dann<br />

ist ein Neustart von »glance‐api« <strong>und</strong><br />

»glance‐registry« fällig – fertig.<br />

Abbildung 3: Das Password-Handling der Libvirt für Ceph-Installation ist etwas kompliziert, funktioniert aber zuverlässig.<br />

104 Ausgabe 02-2013 Admin www.admin-magazin.de


w<br />

Cinder ist die Block-Storage-Lösung von<br />

Open Stack, die die eigentlich nicht persistenten<br />

VMs mit dauerhaftem Block-<br />

Speicher versorgt. Auch Cinder hat<br />

ein natives Backend für Ceph, dessen<br />

Konfiguration allerdings etwas umfangreicher<br />

ist. Der Gr<strong>und</strong> hierfür ist, dass<br />

Cinder das Zuweisen von Speicher direkt<br />

über »libvirt« abwickelt. Libvirt selbst ist<br />

quasi der Client, der sich direkt an Ceph<br />

anmeldet. Wenn die Authentifizierung<br />

CephX zum Einsatz kommt, muss die<br />

Virtualisierungsumgebung folglich wissen,<br />

wie sie sich gegenüber Ceph passend<br />

vorstellt. So weit, so gut: Seit Libvirt<br />

0.9.12 ist die entsprechende Funktion in<br />

Libvirt dafür vorhanden.<br />

Etwas komplizierter: Cinder<br />

Das folgende Beispiel geht davon aus,<br />

dass der Ceph-Benutzer <strong>im</strong> Kontext von<br />

Cinder »client.cinder« heißt <strong>und</strong> dass ihm<br />

ein eigener Pool »cinder« zur Verfügung<br />

Der Libvirt-Teil der Konfiguration ist damit<br />

abgeschlossen, ab sofort kann sich<br />

Libvirt als »client.cinder« an Ceph ansteht.<br />

Wie <strong>im</strong> Beispiel von Glance muss<br />

für den Benutzer ebenso ein Keyring<br />

namens »/etc/ceph/keyring.cinder« vorhanden<br />

sein, der auch in »ceph.conf«<br />

entsprechend referenziert ist. Dann ist<br />

mittels »uuidgen« auf der Kommandozeile<br />

eine UUID zu generieren – libvirt<br />

speichert Passwörter mit UUID-Namen<br />

ab. Im Beispiel kommt »2a5b08e4‐3dca‐4f<br />

f9‐9a1d‐40389758d081« zum Einsatz. Der<br />

nächste Schritt besteht darin, ein passendes<br />

Secret-File für Libvirt anzulegen. Im<br />

Beispiel ist die Datei »/etc/libvirt/secrets/ceph.xml<br />

«, ihr Inhalt ist dieser:<br />

<br />

2a5b08e4‐3dca‐4ff9‐9a1d‐U<br />

40389758d081<br />

<br />

client.cinder secret<br />

<br />

<br />

Das Feld »uuid« ist jeweils durch die tatsächliche<br />

UUID zu ersetzen, <strong>und</strong> wenn<br />

der Benutzer lokal nicht »client.cinder«<br />

sondern anders heißt, ist auch »name«<br />

entsprechend anzupassen. Es folgt das<br />

Aktivieren des Passworts in Libvirt:<br />

virsh secret‐define /etc/libvirt/secretsU<br />

/ceph.xml<br />

Bisher weiß Libvirt nur, dass es ein Passwort<br />

gibt, allerdings fehlt noch der eigentliche<br />

Schlüssel. Der befindet sich in<br />

»/etc/ceph/keyring.cinder«, es handelt<br />

sich um die Zeichenkette hinter „key =“.<br />

Dass der Key zum eben festgelegten Passwort<br />

gehört, erfährt Libvirt so:<br />

virsh secret‐set‐value UUID U<br />

Schlüssel<br />

Im konkreten Beispiel also:<br />

virsh secret‐set‐value 2a5b08e4‐3dca‐U<br />

4ff9‐9a1d‐40389758d081 AQA5jhZRwGPhBBU<br />

AAa3t78yY/0+1QB5Z/9iFK2Q==<br />

JAHRES-DVD 2012<br />

InklusIve:<br />

Der komplette<br />

Jahrgang 2012!<br />

■ Artikel zu Storage, Backup,<br />

Security, Monitoring,<br />

Virtualisierung u.v.m.<br />

■ Zum Lesen am Bildschirm<br />

oder Ausdrucken: PDF <strong>und</strong><br />

HTML-Format<br />

■ Search Engine für<br />

Artikel-Volltext-Suche<br />

Jetzt gleich bestellen!<br />

www.admin-magazin.de/DVD2012 oder 089 - 99 34 11 - 00<br />

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

Netzwerk & Security


Virtualisierung<br />

Open Stack<br />

melden <strong>und</strong> dort Storage-Devices nutzen.<br />

Was noch fehlt, ist die entsprechende<br />

Cinder-Konfiguration, damit der Storage-<br />

Dienst tatsächlich Ceph verwendet.<br />

Schritt 1: Cinder muss lernen, als welcher<br />

Benutzer es sich selbst an Ceph anmelden<br />

muss, um Storage-Devices für VM-<br />

Instanzen anzulegen. Hierzu ist »/etc/<br />

init/cinder‐volume.conf« in einem Editor<br />

so zu verändern, dass die erste Zeile der<br />

Datei »env CEPH_ARGS="‐‐id cinder"«<br />

ist (falls der Benutername »client.cinder«<br />

lautet). Schritt 2: Jetzt fehlen nur noch<br />

die folgenden vier Zeilen in »/etc/cinder/<br />

cinder.conf«:<br />

volume_driver=cinder.volume.driver.U<br />

RBDDriver<br />

rbd_pool=<strong>im</strong>ages<br />

rbd_secret_uuid=2a5b08e4‐3dca‐4ff9‐U<br />

9a1d‐40389758d081<br />

rbd_user=cinder<br />

Nach einem Neustart der Cinder-Dienste<br />

»cinder‐api«, »cinder‐volume« <strong>und</strong> »cinder‐scheduler«<br />

funktioniert das Gespann<br />

aus Cinder <strong>und</strong> Ceph wie gewünscht.<br />

Die schönste Open-Stack-Installation ist<br />

nichts wert, wenn der Ausfall eines Servers<br />

sie zum Absturz bringt. Das Setup,<br />

das in Teil 2 des Workshops entstanden<br />

ist, bietet gleich zwei Points of Failure,<br />

nämlich sowohl den API-Knoten als auch<br />

den Netzwerk-Knoten.<br />

Hochverfügbarkeit für Open<br />

Stack<br />

Die gute Nachricht ist: Folsom ist in Sachen<br />

HA lange nicht so unbedarft, wie<br />

es frühere Open-Stack-Versionen waren.<br />

Nicht zuletzt durch die vom Autor dieses<br />

Artikels mit vorangetriebene Integration<br />

der Open-Stack-Dienste in Pacemaker-<br />

Cluster lässt sich der größte Teil einer<br />

Open-Stack-Installation mittlerweile<br />

hochverfügbar auslegen. Dabei findet<br />

sich übrigens ein zweiter Gr<strong>und</strong>, auf<br />

Object-Storage-Lösungen wie Ceph zu<br />

setzen: Jene kommen mit HA ab Werk,<br />

sodass Admins sich hier keine Gedanken<br />

um Red<strong>und</strong>anz zu machen brauchen.<br />

Sehr wohl als Problemfeld erhalten bleibt<br />

dem Administrator sowohl die Ausfallsicherheit<br />

der Open-Stack-Infrastruktur<br />

wie auch die der eigentlichen VMs. Hinsichtlich<br />

der Infrastruktur-Komponente<br />

bietet sich Pacemaker quasi an: Es bietet<br />

einen umfassenden Werkzeugkoffer, mit<br />

dem sich Dienste red<strong>und</strong>ant auf mehreren<br />

Rechnern konfigurieren lassen.<br />

Fast alle Open-Stack-Dienste lassen sich<br />

so hochverfügbar machen, das umfasst<br />

Keystone genauso wie Glance, Nova,<br />

Quantum oder Cinder. Wer ein Open-<br />

Stack-HA-Setup plant, sollte allerdings<br />

zwei andere Komponenten nicht vergessen:<br />

die Datenbank, typischerweise<br />

MySQL, sowie den Message-Queue, also<br />

RabbitmQ oder Qpid.<br />

HA für MySQL <strong>und</strong> RabbitMQ<br />

Für MySQL bieten sich gleich mehrere HA-<br />

Optionen an. Die klassische Methode besteht<br />

darin, dass MySQL seine Daten auf<br />

einem Shared Storage wie DRBD liegen<br />

hat <strong>und</strong> der eigentliche »mysqld« dann<br />

zwischen zwei Rechnern hin- <strong>und</strong> herschwenkt.<br />

Je nach Größe des Datenbank-<br />

Journals kann ein Failover in solchen<br />

Szenarien allerdings einige Zeit dauern,<br />

überdies skaliert die Lösung nicht in die<br />

Breite. Sinnvoller sind nativ in MySQL integrierte<br />

Lösungen wie Galera, die dafür<br />

sorgen, dass sich die Datenbank selbst<br />

Listing 2: Pacemaker-Konfiguration für Open Stack - Teil 1<br />

01 node alice<br />

02 node bob<br />

03 node charlie<br />

04 pr<strong>im</strong>itive p_IP ocf:heartbeat:IPaddr2 \<br />

05 params cidr_netmask="24" ip="192.168.122.130" iflabel="vip" \<br />

06 op monitor interval="120s" t<strong>im</strong>eout="60s"<br />

07 pr<strong>im</strong>itive p_cinder‐api upstart:cinder‐api \<br />

08 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

09 pr<strong>im</strong>itive p_cinder‐schedule upstart:cinder‐scheduler \<br />

10 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

11 pr<strong>im</strong>itive p_cinder‐volume upstart:cinder‐volume \<br />

12 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

13 pr<strong>im</strong>itive p_glance‐api ocf:openstack:glance‐api \<br />

14 params config="/etc/glance/glance‐api.conf" os_<br />

password="hastexo"<br />

15 os_username="admin" os_tenant_name="admin"<br />

16 os_auth_url="http://192.168.122.130:5000/v2.0/" \<br />

17 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

18 pr<strong>im</strong>itive p_glance‐registry ocf:openstack:glance‐registry \<br />

19 params config="/etc/glance/glance‐registry.conf" os_<br />

password="hastexo"<br />

20 os_username="admin" os_tenant_name="admin"<br />

21 keystone_get_token_url="http://192.168.122.130:5000/v2.0/tokens"<br />

\<br />

22 op monitor interval="30s" t<strong>im</strong>eout="20s"<br />

23 pr<strong>im</strong>itive p_keystone ocf:openstack:keystone \<br />

24 params config="/etc/keystone/keystone.conf" os_<br />

password="hastexo"<br />

25 os_username="admin" os_tenant_name="admin"<br />

26 os_auth_url="http://192.168.122.130:5000/v2.0/" \<br />

27 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

28 pr<strong>im</strong>itive p_mysql ocf:heartbeat:mysql \<br />

29 params binary="/usr/sbin/mysqld"<br />

30 additional_parameters="‐‐bind‐address=0.0.0.0" datadir="/var/<br />

lib/mysql"<br />

31 config="/etc/mysql/my.cnf" log="/var/log/mysql/mysqld.log"<br />

32 pid="/var/run/mysqld/mysqld.pid" socket="/var/run/mysqld/mysqld.<br />

sock" \<br />

33 op monitor interval="120s" t<strong>im</strong>eout="60s" \<br />

34 op stop interval="0" t<strong>im</strong>eout="240s" \<br />

35 op start interval="0" t<strong>im</strong>eout="240s"<br />

36 pr<strong>im</strong>itive p_nova‐api‐ec2 upstart:nova‐api‐ec2 \<br />

37 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

38 pr<strong>im</strong>itive p_nova‐api‐metadata upstart:nova‐api‐metadata \<br />

39 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

40 pr<strong>im</strong>itive p_nova‐api‐os‐compute upstart:nova‐api‐os‐compute \<br />

41 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

42 pr<strong>im</strong>itive p_nova‐cert ocf:openstack:nova‐cert \<br />

43 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

44 pr<strong>im</strong>itive p_nova‐compute‐host1 ocf:openstack:nova‐compute \<br />

45 params additional_config="/etc/nova/nova‐compute‐host1.conf" \<br />

46 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

47 pr<strong>im</strong>itive p_nova‐compute‐host2 ocf:openstack:nova‐compute \<br />

48 params additional_config="/etc/nova/nova‐compute‐host2.conf" \<br />

49 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

50 pr<strong>im</strong>itive p_nova‐compute‐host3 ocf:openstack:nova‐compute \<br />

51 params additional_config="/etc/nova/nova‐compute‐host3.conf" \<br />

52 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

106 Ausgabe 02-2013 Admin www.admin-magazin.de


Open Stack<br />

Virtualisierung<br />

um die Replikation kümmert. Einen ausführlichen<br />

Artikel zum Thema Galera<br />

finden Interessierte in [2].<br />

Ganz ähnlich verhält es sich mit dem<br />

Messaging-Queue RabbitMQ: Auch dieser<br />

wäre über ein Shared-Storage als<br />

Fail-Over-Lösung leicht zu realisieren<br />

– hier ist diese Variante sogar die bessere<br />

Option als das HA-Konzept, welches<br />

RabbitMQ ab Werk mitbringt. Denn die<br />

sogenannten »Mirrored Queues« haben<br />

sich in der Vergangenheit <strong>im</strong>mer wieder<br />

als fehleranfällig herausgestellt. Wer<br />

RabbitMQ <strong>im</strong> Rahmen eines Pacemaker-<br />

Setups hochverfügbar machen will,<br />

greift also lieber zu einer Lösung, bei der<br />

»rabbitmq‐server« selbst zwischen den<br />

Hosts hin- <strong>und</strong> herschwenkt <strong>und</strong> »/var/<br />

lib/rabbitmq« auf einem gemeinsamen<br />

Speicher liegt. Wer mit mehr als zwei<br />

Knoten arbeitet <strong>und</strong> Ceph einsetzt, kann<br />

die RabbitMQ-Daten per CephFS nach »/<br />

var/lib/rabbitmq« mounten <strong>und</strong> schafft<br />

sich so nicht-skalierende Storages <strong>im</strong><br />

Handstreich vom Hals.<br />

Der restliche Aufwand eines HA-Setups<br />

besteht nahezu ausschließlich darin, die<br />

vorhandenen Open-Stack-Komponenten<br />

in ein klassisches Pacemaker-Setup zu<br />

integrieren. Es würde an dieser Stelle den<br />

Rahmen sprengen, eine Konfiugration<br />

von Pacemaker von Gr<strong>und</strong> auf zu erläutern<br />

– ein früherer Artikel des Autors dieses<br />

Textes steht unter [3] zur Verfügung<br />

<strong>und</strong> gibt Einblick.<br />

Besonders hervorzuheben ist <strong>im</strong> Gr<strong>und</strong>e<br />

nur die Tatsache, dass für nahezu alle<br />

Open-Stack-Komponenten mittlerweile<br />

Ressource-Agents nach OCF-Standard<br />

zur Verfügung stehen. Diese lassen sich<br />

auf einem System wie folgt in den Ordner<br />

»/usr/lib/ocf/resource./openstack«<br />

entpacken:<br />

cd /usr/lib/ocf/resource.d<br />

mkdir openstack<br />

cd openstack<br />

wget ‐O‐ U<br />

https://github.com/madkiss/openstack‐U<br />

resource‐agents/archive/master.tar.gz | U<br />

tar ‐xzv ‐‐strip‐components=2 openstack‐U<br />

resource‐agents‐master/ocf<br />

chmod ‐R a+rx *<br />

Danach fördert ein »crm ra info<br />

ocf:openstack:nova‐compute« exemplarisch<br />

den Hilfstext zum Resource-Agent<br />

für »nova‐compute« zu Tage. Der Rest<br />

ist Schema F: Für die einzelnen Open-<br />

Stack-Dienste sind jeweils Resourcen in<br />

die Pacemaker-Konfiguration zu integrieren,<br />

wobei Dienste, die zusammengehören,<br />

in Gruppen funktionieren. Damit<br />

alle wichtigen Dienste auf dem gleichen<br />

Host laufen, legen Colocation- <strong>und</strong> Order-<br />

Constraints der Verhältnis der Ressourcen<br />

zueinander fest. Erwähnenswert ist die<br />

Tatsache, dass es sich bei der Resource<br />

für den Quantum-Plugin-Openvswitch-<br />

Agent um eine Klon-Ressource handelt:<br />

Jener Dienst sollte auf allen Open-Stack-<br />

Knoten laufen, auf denen gr<strong>und</strong>sätzlich<br />

auch virtuelle Maschinen startbar sein<br />

sollen.<br />

VM-Failover mit Open Stack<br />

Besondere Erwähnung sollen außerdem<br />

die drei »p_nova‐compute«-Instanzen<br />

finden, denn sie ermöglichen den Neustart<br />

virtueller Maschinen auf anderen<br />

Hosts, nachdem der ursprüngliche Host,<br />

auf dem die VMs gelaufen sind, nicht<br />

mehr zur Verfügung steht. Bisher war das<br />

in Open Stack ein heikles Thema, denn<br />

die Umgebung selbst merkt – zumindest<br />

Listing 3: Pacemaker-Konfiguration für Open Stack - Teil 2<br />

53 va‐consoleauth ocf:openstack:nova‐consoleauth \<br />

54 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

55 pr<strong>im</strong>itive p_nova‐novnc upstart:nova‐novncproxy \<br />

56 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

57 pr<strong>im</strong>itive p_nova‐objectstore upstart:nova‐objectstore \<br />

58 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

59 pr<strong>im</strong>itive p_nova‐scheduler ocf:openstack:nova‐scheduler \<br />

60 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

61 pr<strong>im</strong>itive p_quantum‐agent‐dhcp ocf:openstack:quantum‐agent‐dhcp \<br />

62 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

63 pr<strong>im</strong>itive p_quantum‐agent‐l3 ocf:openstack:quantum‐agent‐l3 \<br />

64 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

65 pr<strong>im</strong>itive p_quantum‐agent‐plugin‐openvswitch<br />

66 upstart:quantum‐plugin‐openvswitch‐agent \<br />

67 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

68 pr<strong>im</strong>itive p_quantum‐server ocf:openstack:quantum‐server \<br />

69 params os_password="hastexo" os_username="admin" os_tenant_<br />

name="admin"<br />

70 keystone_get_token_url="http://192.168.122.130:5000/v2.0/tokens"<br />

\<br />

71 op monitor interval="30s" t<strong>im</strong>eout="30s"<br />

72 pr<strong>im</strong>itive p_rabbitmq ocf:rabbitmq:rabbitmq‐server \<br />

73 params mnesia_base="/var/lib/rabbitmq" \<br />

74 op monitor interval="20s" t<strong>im</strong>eout="10s"<br />

75 group g_basic_services p_mysql p_rabbitmq<br />

76 group g_cinder p_cinder‐volume p_cinder‐schedule p_cinder‐api<br />

77 group g_glance p_glance‐registry p_glance‐api<br />

78 group g_keystone p_keystone<br />

79 group g_nova p_nova‐api‐ec2 p_nova‐api‐metadata p_nova‐api‐os‐compute<br />

80 p_nova‐consoleauth p_nova‐novnc p_nova‐objectstore p_nova‐cert p_<br />

nova‐scheduler<br />

81 group g_quantum p_quantum‐server p_quantum‐agent‐dhcp p_quantum‐agent‐l3<br />

82 clone cl_quantum‐agent‐plugin‐openvswitch p_<br />

quantum‐agent‐plugin‐openvswitch<br />

83 location lo_host1_prefer_alice p_nova‐compute‐host1 10000: alice<br />

84 location lo_host2_prefer_bob p_nova‐compute‐host2 10000: bob<br />

85 location lo_host3_prefer_charlie p_nova‐compute‐host3 10000: charlie<br />

86 colocation co_g_basic_services_always_with_p_IP inf: g_basic_services<br />

p_IP<br />

87 colocation co_g_cinder_always_with_g_keystone inf: g_cinder g_keystone<br />

88 colocation co_g_glance_always_with_g_keystone inf: g_glance g_keystone<br />

89 colocation co_g_keystone_always_with_p_IP inf: g_keystone p_IP<br />

90 colocation co_g_nova_always_with_g_keystone inf: g_nova g_keystone<br />

91 colocation co_g_quantum_always_with_g_keystone inf: g_quantum g_keystone<br />

92 order o_cl_quantum‐agent‐plugin‐openvswitch_after_g_keystone inf: g_<br />

keystone:start cl_quantum‐agent‐plugin‐openvswitch:start<br />

93 order o_g_basic_services_always_after_p_IP inf: p_IP:start g_basic_<br />

services:start<br />

94 order o_g_cinder_always_after_g_keystone inf: g_keystone:start g_<br />

cinder:start<br />

95 order o_g_glance_always_after_g_quantum inf: g_quantum:start g_<br />

glance:start<br />

96 order o_g_keystone_always_after_g_basic_services inf: g_basic_<br />

services:start g_keystone:start<br />

97 order o_g_keystone_always_after_p_IP inf: p_IP:start g_keystone:start<br />

98 order o_g_nova_always_after_g_glance inf: g_glance:start g_nova:start<br />

99 order o_g_quantum_always_after_g_keystone inf: g_keystone:start g_<br />

quantum:start<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

107


Virtualisierung<br />

Open Stack<br />

Abbildung 4: Das Verzeichnis »/var/lib/nova/instances« ist auf allen Hosts ein CephFS-Mount – so stehen allen Servern die gleichen VM-Daten zur Verfügung.<br />

boot=true«, die dazu führt, dass VMs<br />

auf einem Host nach dem Start von<br />

»nova‐compute« in den Zustand versetzt<br />

werden, in dem Nova sie zum letzten<br />

Mal gesehen hat. Im Klartext: Läuft<br />

auf Server 1 ein »nova‐compute«, das<br />

»host=host1« gesetzt hat, merkt Nova<br />

sich, welche VMs auf diesem »host1«<br />

laufen. Stürzt Server 1 ab, startet <strong>im</strong><br />

Beispiel Pacemaker die »nova‐compute«-<br />

Instanz »host1« auf einem anderen Server<br />

neu – <strong>und</strong> Nova bootet die VMs,<br />

die zuvor auf Server 1 gelaufen sind,<br />

dort ebenfalls. Damit das Prinzip sinnvoll<br />

funktioniert, ist es notwendig, dass alle<br />

»nova‐compute«-Instanzen Zugriff auf<br />

das gleiche »instances«-Verzeichnis von<br />

Nova haben. Das Beispiel löst das Problem,<br />

indem es auf allen Servern »/var/<br />

lib/nova/instances« als Mount auf ein<br />

CephFS nutzt, über das allen Hosts die<br />

gleichen Dateien zur Verfügung stehen.<br />

Darüber hinaus gilt für Open-Stack-Pacemaker-Setups<br />

das, was für sämtliche<br />

Pacemaker-Installationen gilt: Die Versiin<br />

Folsom – vom Ausfall eines Knotens<br />

zunächst einmal nichts. Über das <strong>im</strong> Beispiel<br />

genutzte Hintertürchen lässt sich<br />

eine ähnliche Funktion allerdings nachrüsten.<br />

Jede Instanz von »nova‐compute«<br />

erlaubt es, zusätzliche Konfigurationsdateien<br />

anzugeben. Deren Werte d überschreiben<br />

dabei jeweils schon vorhandene<br />

Werte – der letzte gewinnt. Mittels<br />

»host=« erfährt eine Compute-Instanz,<br />

wie sie heißen soll; ist der Wert nicht<br />

gesetzt, n<strong>im</strong>mt Nova üblicherweise den<br />

Hostnamen des Systems. Der Trick besteht<br />

darin, die Kopplung von Hostname<br />

<strong>und</strong> hierauf laufenden VMs aufzuheben.<br />

Ob die Nova-Compute-Instanz namens<br />

»host1« auf Knoten 1, Knoten 2 oder Knoten<br />

3 läuft, ist dann erstmal nicht relevant,<br />

<strong>und</strong> VMs, die auf »host1« gelaufen<br />

sind, lassen sich auf jedem Server starten,<br />

solange es dort eine Nova-Compute-<br />

Instanz gibt, die sich für »host1« hält.<br />

Die in Teil 2 des Workshops genutzte<br />

»nova.conf« enthält außerdem die Option<br />

»resume_guests_state_on_host_<br />

onen der Programme sind zwischen den<br />

Rechnern identisch zu halten. Eventuell<br />

benötigte Config-Files der Dienste müssen<br />

ebenfalls zwischen den Hosts synchron<br />

bleiben. Sind diese Voraussetzungen<br />

erfüllt, steht dem hochverfügbaren<br />

Open-Stack-Setup nichts <strong>im</strong> Weg.<br />

Zukunftsmusik<br />

Der vorgestellte Mechanismus für VM-<br />

HA kommt mit einem nicht ganz kleinen<br />

Pferdefuß, denn er ermöglicht lediglich<br />

das kollektive Neustarten sämtlicher VMs<br />

eines ausgefallenen Hosts auf einem anderen.<br />

Sinnvoller wäre es, würde sich<br />

Open Stack selbst um die Problematik<br />

kümmern <strong>und</strong> ausgefallene VMs über seinen<br />

eigenen Scheduler auf mehrere Hosts<br />

mit freien Ressourcen verteilen. Folsom<br />

wird diese Funktion vermutlich nicht<br />

mehr erhalten. In Grizzly ist ein entsprechendes<br />

Feature aber schon <strong>im</strong>plementiert:<br />

Die »evacuate«-Funktion soll genau<br />

diese Feature-Lücke füllen. Noch ist es<br />

zu früh, um deren Alltagstauglichkeit zu<br />

untersuchen. Wer sich mit Open Stack in<br />

Zukunft näher beschäftigen möchte, darf<br />

aber gespannt sein. (jcb)<br />

n<br />

Infos<br />

[1] Patch: [http://www.admin-magazin.de/Media/Downloads/Dashboard-Folsom-Patch]<br />

[2] Einführung zu Galera:<br />

[http:// www. admin‐magazin. de/ Das‐Heft/​<br />

2012/ 04/ Der‐Galera‐Cluster‐fuer‐MySQL]<br />

[3] Einführung zu Pacemaker:<br />

[http:// www. admin‐magazin. de/ Das‐Heft/​<br />

2011/ 04/ HA‐Serie‐Teil‐1‐Gr<strong>und</strong>lagen‐von‐Pa<br />

cemaker‐<strong>und</strong>‐Co]<br />

Abbildung 5: Mittels Pacemaker lässt sich ein Open-Stack-Setup gegen Ausfälle abhärten. Das Beispiel zeigt<br />

einen Drei-Knoten-Cluster, bei dem ein Knoten nicht zur Verfügung steht.<br />

Der Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei hastexo. Er beschäftigt sich dort<br />

intensiv mit Hochverfügbarkeit <strong>und</strong> pflegt in<br />

seiner Freizeit den <strong>Linux</strong>-Cluster-Stack.<br />

108 Ausgabe 02-2013 Admin www.admin-magazin.de


2 Ausgaben<br />

für nur 5,90 €<br />

50% sparen <strong>und</strong> von Anfang an dabei sein!<br />

<strong>Windows</strong> Phone User erscheint alle zwei Monate<br />

NEU!<br />

TESTANGEBOT:<br />

2 AUSGABEN<br />

für nur 5,90 Euro!<br />

Jetzt bestellen unter:<br />

windows-phone-user.de/miniabo


Programmieren<br />

Jekyll<br />

© Alexandr Aleabiev, 123RF<br />

Mit Jekyll statische Seiten <strong>und</strong> Blogs erzeugen<br />

Text-Monster<br />

Wer ein Blog betreiben möchte, greift schon fast reflexartig zu Wordpress. Das verlangt jedoch nach PHP, einer<br />

Datenbank, regelmäßigen Sicherheitsupdates <strong>und</strong> somit einer Menge Aufmerksamkeit. Mit der kleinen Template-<br />

Engine Jekyll lässt sich all das vermeiden. T<strong>im</strong> Schürmann<br />

Trotz leistungsfähiger Server ist es<br />

durchaus sinnvoll, einen Internetauftritt<br />

aus statischen Seiten zusammenzubauen.<br />

Sei es, um bei hoch frequentierten Seiten<br />

die Serverlast zu senken oder die Gefahr<br />

von Angriffen zu min<strong>im</strong>ieren. Alle<br />

Unterseiten per Hand zu pflegen, artet<br />

allerdings schnell in eine Sisyphusarbeit<br />

aus. An dieser Stelle helfen sogenannte<br />

Template-Engines. Sie generieren aus den<br />

Textinhalten <strong>und</strong> einer Layout-Vorlage<br />

(auch Template genannt) einen kompletten<br />

Internetauftritt, der nur aus statischen<br />

Seiten besteht.<br />

Um das Layout der kompletten Website<br />

zu ändern, muss man künftig nur noch<br />

die HTML-Vorlage gegen eine andere austauschen<br />

– <strong>und</strong> nicht mehr jede Seite<br />

einzeln anfassen.<br />

Listing 1: Beispiel für eine einfache Layout-Vorlage<br />

01 <br />

02 <br />

03 <br />

04 Kantine<br />

05 <br />

06 <br />

07 <br />

08 Kantinenbetriebe Mayer<br />

09 <br />

10 <br />

Eine der derzeit beliebtesten Template-<br />

Engines hört auf den Namen Jekyll [1].<br />

Entwickelt hat sie Tom Preston-Werner,<br />

ein Mitarbeiter des Projekthosters Github.<br />

Dort erzeugt sein Werkzeug die<br />

Webseiten auf Github Pages [3]. Jekyll<br />

ist pr<strong>im</strong>är zur Erstellung von Blogs gedacht.<br />

Zwar lassen sich auch beliebige<br />

andere statische Seiten erstellen, dies<br />

erfordert jedoch ein paar Verrenkungen<br />

<strong>und</strong> Tricks.<br />

Kleines Juwel<br />

Jekyll ist in der Skriptsprache Ruby geschrieben<br />

<strong>und</strong> benötigt folglich eine entsprechende<br />

Laufzeitumgebung ab Version<br />

1.9.1. <strong>Linux</strong>-Nutzer müssen in der<br />

Regel nur das passende Paket über ihren<br />

11 Home<br />

12 Blog<br />

13 Kontakt<br />

14 <br />

15 <br />

16 {{ content }}<br />

17 <br />

18 <br />

19 <br />

Paketmanager einspielen, unter Ubuntu<br />

beispielsweise »ruby1.9.1«. Anwender<br />

von anderen Betriebssystemen finden<br />

auf der Ruby-Seite [2] entsprechende<br />

Installationspakete beziehungsweise eine<br />

Installationsanleitung.<br />

Die Installation von Jekyll erfolgt bequem<br />

über die Ruby-eigene Paketverwaltung<br />

Rubygems. Dazu genügt der Befehl:<br />

gem install jekyll<br />

Unter <strong>Linux</strong> <strong>und</strong> Mac OS X muss man<br />

den Befehl mit Root-Rechten starten. Das<br />

Kommando holt noch ein paar weitere<br />

von Jekyll benötigte Ruby-Module (Gems)<br />

nach, darunter »directory_watcher«, »liquid«,<br />

»maruku« <strong>und</strong> »classifier«. Sollten<br />

Fehler der Art: »can't find header files for<br />

ruby« auftauchen, muss man noch das<br />

Entwicklerpaket für Ruby einspielen. Bei<br />

Ubuntu heißt es »ruby1.9.1‐dev«.<br />

Sobald Jekyll einsatzbereit auf der Festplatte<br />

liegt, erstellt man noch ein Arbeitsverzeichnis,<br />

in dem man alle zum Internetauftritt<br />

gehörenden Dateien sammelt.<br />

Platz da!<br />

Jekyll greift sich die zu publizierenden<br />

Texte, zieht sie durch eine oder mehrere<br />

Layout-Vorlagen <strong>und</strong> erzeugt damit den<br />

110 Ausgabe 02-2013 Admin www.admin-magazin.de


Jekyll<br />

Programmieren<br />

fertigen Webauftritt. Hinzu<br />

kommt noch eine Konfigurationsdatei,<br />

die den ganzen<br />

Prozess steuert. Es müssen<br />

also mindestens eine Vorlage,<br />

die Texte <strong>und</strong> die Konfigurationsdatei<br />

her. Jekyll erwartet<br />

alle in ganz best<strong>im</strong>mten<br />

Verzeichnissen unter ganz<br />

best<strong>im</strong>mten Dateinamen.<br />

Zunächst zu den Layout-<br />

Vorlagen: Diese bestehen aus<br />

einfachen HTML-Dateien, die mit speziellen<br />

Platzhaltern gespickt sind. Die Platzhalter<br />

verraten Jekyll, wo später welche<br />

Texte erscheinen sollen. Ein Beispiel für<br />

eine erste einfache Vorlage zeigt Listing<br />

1. Anstelle von »{{ content }}« erscheint<br />

später der eigentliche Seiteninhalt.<br />

Templates<br />

Alle Layout-Vorlagen gehören <strong>im</strong> Arbeitsverzeichnis<br />

in ein Unterverzeichnis namens<br />

»_layouts«. Der Unterstrich zeigt<br />

an, dass dieses Verzeichnis später nicht<br />

mit <strong>im</strong> fertigen Auftritt landet. Umgekehrt<br />

kopiert Jekyll alle Verzeichnisse ohne Unterstrich<br />

komplett <strong>und</strong> unverändert in das<br />

Verzeichnis mit der erzeugten Website.<br />

Dieses Verhalten sollte man insbesondere<br />

dann <strong>im</strong> Hinterkopf behalten, wenn man<br />

mit einem Editor arbeitet, der automatisch<br />

Sicherheitskopien erstellt, wie etwa<br />

KWrite oder Gedit.<br />

Jekylls Kopierautomatik ist aber auch<br />

nützlich: Die HTML-Datei aus Listing<br />

1 bindet eine CSS-Datei ein, die Jekyll<br />

unverändert in den Auftritt übernehmen<br />

muss. Also erstellt man kurzerhand <strong>im</strong><br />

Arbeitsverzeichnis das Unterverzeichnis<br />

»css« <strong>und</strong> verstaut darin das Stylesheet.<br />

Listing 2 zeigt eine einfache Fassung, die<br />

alle Links rot einfärbt.<br />

Nachdem eine Vorlage existiert, sind die<br />

eigentlichen Inhalte an der Reihe. Den<br />

Auftakt macht der Text für die Startseite<br />

Abbildung 1: Diese Dateien <strong>und</strong> Verzeichnisse bilden ein min<strong>im</strong>ales Jekyll-Projekt.<br />

des zukünftigen Internetauftritts. Der<br />

liegt üblicherweise in der Datei »index.<br />

html«, die man jetzt direkt <strong>im</strong> Arbeitsverzeichnis<br />

anlegt (<strong>und</strong> somit nicht in einem<br />

seiner Unterverzeichnisse). In dieser Datei<br />

speichert man nur den eigentlichen<br />

Seiteninhalt, <strong>im</strong> Beispiel vielleicht einen<br />

kurzen Begrüßungstext. Damit Jekyll<br />

weiß, welches Layout es auf diesen Text<br />

anwenden soll, muss man dieses noch<br />

am Anfang notieren. Das Ergebnis zeigt<br />

Listing 3.<br />

Die Angabe »layout: default« teilt Jekyll<br />

mit, dass es das Layout aus der Datei<br />

»default.html« verwenden soll. Die Notation<br />

folgt dem YAML-Standard [4], die<br />

Angaben zwischen den Strichen bezeichnet<br />

Jekyll als YAML Front Matter. Jede<br />

Datei, die solch einen Vorspann besitzt,<br />

dreht Jekyll gleich durch die Mangel, alle<br />

anderen Dateien landen unverändert <strong>im</strong><br />

fertigen Internetauftritt.<br />

Abschließend muss noch das Verzeichnis<br />

»_site« her. In ihm parkt Jekyll die<br />

fertigen Webseiten. Ein min<strong>im</strong>ales Jekyll-<br />

Projekt besteht damit aus den Verzeichnissen<br />

<strong>und</strong> Dateien aus Abbildung 1. Um<br />

aus ihnen den fertigen Internetauftritt zu<br />

generieren, ruft man <strong>im</strong> Arbeitsverzeichnis<br />

einfach das Kommando »jekyll« auf.<br />

Jekyll greift sich jetzt nacheinander alle<br />

Dateien ohne Unterstrich.<br />

Im Beispiel gab es nur die Datei »index.html«.<br />

Gemäß der Angabe in ihrem<br />

Front Matter setzt Jekyll ihren Inhalt<br />

an die Stelle »{{ content }}«<br />

der Layout-Vorlage »default.<br />

html«. Das Ergebnis landet<br />

unter dem Dateinamen »index.html«<br />

<strong>im</strong> Unterverzeichnis<br />

»_site« (Abbildung 2).<br />

Dorthin kopiert Jekyll auch<br />

das Verzeichnis »css«.<br />

Prinzipiell lässt sich jetzt die<br />

Datei »index.html« <strong>im</strong> Verzeichnis<br />

»_site« mit einem<br />

Browser öffnen. Die Layout-<br />

Vorlage bindet die CSS-Datei allerdings<br />

über eine absolute Pfadangabe ein <strong>und</strong><br />

kommt somit nicht zur Anwendung (Abbildung<br />

3). Um derartige Seiten dennoch<br />

testen zu können, besitzt Jekyll einen<br />

eingebauten Webserver. Man startet ihn<br />

<strong>im</strong> Arbeitsverzeichnis per »jekyll ‐‐server«.<br />

Jekyll erzeugt jetzt erst noch einmal<br />

die Website. Anschließend lauscht sein<br />

Webserver an Port 4000, die generierte<br />

Seite erreicht man folglich unter »http://<br />

localhost:4000«. Alle Anfragen protokolliert<br />

er zudem auf der Kommandozeile,<br />

sodass man auch hier noch einmal den<br />

eigenen Internetauftritt unter die Lupe<br />

nehmen kann.<br />

Sie haben Posts<br />

Neben der Startseite soll es <strong>im</strong> Beispiel<br />

natürlich auch ein richtiges Blog geben.<br />

Dessen Beiträge sammelt der Unterordner<br />

»_posts«. Dort legt man jeden Blog-<br />

Beitrag in einer eigenen HTML-Datei ab,<br />

deren Dateiname aus dem Datum der<br />

01 a {<br />

Listing 2: Ein einfaches Stylesheet<br />

02 text‐decoration: none;<br />

03 color: red;<br />

04 }<br />

05 a:hover {<br />

06 text‐decoration: <strong>und</strong>erline;<br />

07 color: blue;<br />

08 }<br />

_site/index.html<br />

<br />

…<br />

Willkommen<br />

…<br />

<br />

default.html<br />

<br />

…<br />

{{ content }}<br />

…<br />

<br />

index.html<br />

---<br />

layout: default<br />

---<br />

Willkommen bei den<br />

Kantinenbetrieben ...<br />

Abbildung 2: Der Inhalt der »index.html« wandert an die Stelle des Platzhalters »{{ content }}« in der Datei<br />

»default.html«. Das Ergebnis legt Jekyll in der Datei »_site/index.html« ab.<br />

Listing 3: »index.html«<br />

01 ‐‐‐<br />

02 layout: default<br />

03 ‐‐‐<br />

04 <br />

05 Willkommen bei den Kantinenbetrieben Mayer. Die<br />

aktuellen <strong>und</strong> vergangenen Speisenkarten entnehmen Sie<br />

bitte unserem Blog.<br />

06 <br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

111


Programmieren<br />

Jekyll<br />

01 ‐‐‐<br />

01 ‐‐‐<br />

01 ‐‐‐<br />

Veröffentlichung, einem Titel<br />

<strong>und</strong> der Endung ».html« besteht.<br />

Der Blog-Beitrag vom<br />

12.02.2013 mit dem Titel<br />

»Currywurst« gehört folglich<br />

in eine Datei mit dem Namen<br />

»2013‐02‐12‐currywurst.<br />

html«. Der Titel kann dabei<br />

aus einem Stichwort bestehen<br />

<strong>und</strong> muss nicht mit dem tatsächlichen<br />

Titel des Beitrags<br />

auf der Webseite übereinst<strong>im</strong>men.<br />

Ein Beispiel für einen<br />

Blog-Beitrag zeigt Listing 4.<br />

Alternativ: Markdown<br />

Anstelle von HTML kann man den Blog-<br />

Beitrag auch mit Markdown- oder Textile-<br />

Tags schmücken. In diesem Fall muss<br />

man allerdings die Dateiendung anpassen,<br />

bei Markdown landet der Text beispielsweise<br />

in der Datei »2013‐02‐12‐currywurst.md«.<br />

Jekyll erkennt das Format<br />

selbstständig <strong>und</strong> übersetzt es in entsprechenden<br />

HTML-Code.<br />

Listing 6: Die Datei »blog.html«<br />

02 layout: default<br />

03 ‐‐‐<br />

04 Das Angebot Ihrer Kantine<br />

05 <br />

06 {% for post in site.posts %}<br />

07 <br />

08 <br />

09 {{ post.titel }}<br />

10 <br />

11 {{ post.beilage }}<br />

12 <br />

13 {% endfor %}<br />

14 <br />

Listing 5: Das Layout für die Blog-Einträge<br />

02 layout: default<br />

03 ‐‐‐<br />

Listing 4: Beispiel für einen Blog-Beitrag<br />

02 layout: blogeintrag<br />

03 titel: Currywurst<br />

04 beilage: Mit Pommes<br />

05 ‐‐‐<br />

06 Heute gibt es eine leckere Currywurst.<br />

04 {{page.titel}}<br />

05 {{page.beilage}}<br />

06 {{ content }}<br />

Abbildung 3: Die direkt <strong>im</strong> Browser geöffnete »index.html« bindet das Stylesheet<br />

nicht ein, die Links sind deshalb nicht nicht rot eingefärbt.<br />

Wie der YAML-Vorspann aus Listing 4<br />

zeigt, soll Jekyll für die Posts das Layout<br />

aus der Datei »_layouts/blogeintrag.<br />

html« verwenden. Deren Inhalt verrät<br />

Listing 5.<br />

Das Layout basiert selbst wieder auf<br />

dem Standard-Layout »default.html«. Jekyll<br />

verschachtelt hier also gleich zwei<br />

Layouts ineinander: An die Stelle des<br />

Platzhalters »{{ content }}« aus »default.<br />

html« setzt es den Inhalt des Layouts<br />

»blogeintrag.html«. Dieses bringt selbst<br />

einen Platzhalter »{{ content }}« mit,<br />

den Jekyll wiederum durch den Text des<br />

Blog-Beitrags austauscht.<br />

Ersetzbar<br />

Die Platzhalter »{{page.titel}}« <strong>und</strong><br />

»{{page.beilage}}« ersetzt Jekyll schließlich<br />

noch durch die Texte, die der Blog-Beitrag<br />

<strong>im</strong> YAML Front Matter neben »title«<br />

<strong>und</strong> »beilage« vorgibt (siehe Listing 4).<br />

Wie hier <strong>im</strong> Beispiel darf man <strong>im</strong> Front<br />

Matter eines Blog-Beitrags beliebig viele<br />

eigene Bezeichner hinzufügen. Später<br />

<strong>im</strong> Layout bindet man dann den rechts<br />

daneben stehenden Text ein, indem man<br />

dem Bezeichner ein »page.« voranstellt<br />

<strong>und</strong> das Ganze in geschweifte Klammern<br />

einfasst. Abbildung 4 fasst noch einmal<br />

zusammen, wie Jekyll die einzelnen<br />

Platzhalter austauscht: In der »default.<br />

html« landet an der Stelle »{{content}}«<br />

der Inhalt von »blogeintrag.html«. Dessen<br />

Platzhalter »{{page.titel}}« ersetzt Jekyll<br />

durch den »titel« des Blog-Beitrags, den<br />

Platzhalter »{{content}}« analog durch<br />

den Text des Beitrags. Das Ergebnis speichert<br />

Jekyll in einer HTML-Datei, die den<br />

Namen des Beitrags trägt.<br />

Damit erzeugt Jekyll jetzt für jeden Text<br />

<strong>im</strong> Verzeichnis »_posts« eine neue HTML-<br />

Datei. Bei einem typischen<br />

Blog gibt es zusätzlich noch<br />

eine Übersichtsseite, die alle<br />

Beiträge auflistet. Diese Seite<br />

soll <strong>im</strong> Beispiel »blog.html«<br />

heißen <strong>und</strong> der Einfachheit<br />

halber wieder direkt <strong>im</strong> Arbeitsverzeichnis<br />

liegen (sie<br />

wandert folglich später ins<br />

Hauptverzeichnis des Internetauftritts).<br />

Ihren Inhalt zeigt<br />

Listing 6.<br />

Der Einfachheit halber steckt<br />

Listing 6 alle Blog-Beiträge in<br />

eine Liste »«. Das Gebilde:<br />

{% for post in site.posts %}<br />

sorgt dafür, dass Jekyll alle vorhandenen<br />

Blog-Beiträge durchläuft. Die Jekyll-Entwickler<br />

haben diese Platzhalternotation<br />

übrigens nicht selbst erf<strong>und</strong>en, sondern<br />

einfach das aus dem Online-Shop Shopify<br />

stammende Liquid Template System<br />

übernommen [5]. Generell rahmen zwei<br />

geschweifte Klammern »{{ ... }}« einen<br />

Platzhalter ein, den später Jekyll durch<br />

HTML-Tags <strong>und</strong> Text ersetzt. Klammern<br />

mit Prozentzeichen »{% ... %}« kennzeichnen<br />

hingegen Befehle, die Jekyll<br />

ausführt beziehungsweise auswertet.<br />

In Schleifen<br />

In diesem Fall soll Jekyll alle vorhandenen<br />

Blog-Beiträge (repräsentiert durch<br />

»site.posts«) durchlaufen (»for«). Für<br />

jeden Beitrag wiederholt Jekyll die Angaben<br />

bis zum »{% endfor %}«. Dazwischen<br />

gelangt man an die Daten eines<br />

Blog-Beitrags, indem man einem seiner<br />

Bezeichner aus dem Front Matter ein<br />

»post« voranstellt <strong>und</strong> das Gebilde mit<br />

geschweiften Klammern einrahmt. Der<br />

Platzhalter »{{ post.beilage }}« liefert<br />

beispielsweise den Text rechts neben<br />

»beilage«.<br />

Listing 6 macht aus dem Titel eines Beitrags<br />

(»{{ post.titel }}«) einen Link, der<br />

zur Seite mit dem Blog-Beitrag führt –<br />

also etwa der Beschreibung der Currywurst.<br />

Die URL dorthin liefert »{{ post.<br />

url }}«. Neben der Schleife kennt Liquid<br />

– <strong>und</strong> somit auch Jekyll – noch andere<br />

Kontrollstrukturen. So prüft<br />

{% if post.beilage %}<br />

Die heutige Beilage:<br />

{% endif %}<br />

112 Ausgabe 02-2013 Admin www.admin-magazin.de


Jekyll<br />

Programmieren<br />

default.html<br />

<br />

…<br />

{{ content }}<br />

…<br />

<br />

so liegt die Currywurst jetzt unter »/essen/currywurst.html«.<br />

»:categories« <strong>und</strong><br />

»:title« sind dabei Platzhalter, die Jekyll<br />

gegen die Kategorie <strong>und</strong> den Titel erob<br />

der Blog-Beitrag überhaupt eine »beilage«<br />

<strong>im</strong> Front Matter angibt. Nur wenn<br />

das der Fall ist, setzt Jekyll den Text »Die<br />

heutige Beilage:« in die fertige HTML-<br />

Seite ein. Eine gute Übersicht über alle<br />

möglichen Befehle <strong>und</strong> Kontrollstrukturen<br />

liefert die Seite Liquid for Designers<br />

unter [6].<br />

Wenn man jetzt das Ganze noch einmal<br />

mit »jekyll ‐‐server« übersetzen lässt<br />

<strong>und</strong> die Seite <strong>im</strong> Browser aufruft, kommt<br />

man von der Startseite zur Übersicht <strong>und</strong><br />

von dort zum Currywurst-Artikel. Die<br />

Einträge auf der Übersichtsseite sortiert<br />

Jekyll automatisch nach Datum, die neuesten<br />

stehen dabei ganz oben.<br />

Beobachtungsposten<br />

blogeintrag.html<br />

…<br />

{{ page.titel }}<br />

{{ content }}<br />

...<br />

Abbildung 4: So ersetzt Jekyll in seinen Templates die einzelnen Platzhalter.<br />

Sobald man <strong>im</strong> Verzeichnis »_posts« einen<br />

neuen Blog-Beitrag hinzufügt, muss<br />

man Jekyll erneut die Website generieren<br />

lassen. Diese wiederkehrende Arbeit<br />

lässt sich aber auch automatisieren.<br />

Dazu erstellt man zunächst <strong>im</strong> Arbeitsverzeichnis<br />

die Datei »_config.yml«. Wie<br />

ihr Name schon andeutet, dient sie zur<br />

Konfiguration von Jekyll. In jeder Zeile<br />

enthält sie dem YAML-Standard folgend<br />

eine Einstellung, die aus einem Namen,<br />

einem Doppelpunkt <strong>und</strong> einem Wert besteht.<br />

Fügt man ihr nun die Zeile:<br />

auto: true<br />

Tabelle 1: Nützliche Konfigurationseinstellungen<br />

Einstellung<br />

»auto:«<br />

»destination:«<br />

»exclude:«<br />

»future:«<br />

»permalink:«<br />

»server:«<br />

»server_port:«<br />

»source:«<br />

2013-02-12-currywurst.html<br />

---<br />

layout: blogeintrag<br />

titel: Currywurst<br />

---<br />

Heute gibt es ...<br />

hinzu, beobachtet Jekyll nach seinem<br />

Start das Arbeitsverzeichnis. Sobald sich<br />

dort etwas verändert, erzeugt Jekyll automatisch<br />

die Website neu.<br />

Weitere nützliche Einstellungen fasst<br />

Tabelle 1 „Nützliche Konfigurationseinstellungen“<br />

zusammen. Eine besondere<br />

Erwähnung verdient dabei »permalink«:<br />

Ein Blog-Eintrag liegt normalerweise in<br />

einem Unterverzeichnis, das sein Datum<br />

widerspiegelt. Den am 02.12.2013 erstellten<br />

Beitrag »currywurst« findet man<br />

beispielsweise unter »/2013/12/02/currywurst.html«.<br />

Über »permalink« kann<br />

man dieses Schema verändern. Wählt<br />

man beispielsweise:<br />

permalink: /:categories/:title.html<br />

Bedeutung<br />

Bei »true« überwacht Jekyll das Verzeichnis auf Änderungen.<br />

Die fertige Website legt Jekyll in diesem Verzeichnis ab.<br />

Die hierhinter aufgelisteten Verzeichnisse übern<strong>im</strong>mt Jekyll nicht in die<br />

fertige Website.<br />

Bei »true« übern<strong>im</strong>mt Jekyll auch Posts, die ein Datum aus der Zukunft<br />

tragen. Andernfalls bleiben diese außen vor.<br />

Verändert den Speicherort der einzelnen Posts.<br />

Bei »true« startet Jekyll automatich den Server (man spart sich folglich<br />

den Parameter »‐‐server«).<br />

Der Port, an dem der Server lauscht.<br />

Jekyll erwartet die Layouts, Posts, etc. in diesem Verzeichnis.<br />

setzt. Beide muss man <strong>im</strong> Front Matter<br />

der Blog-Beiträge hinter dem Bezeichner<br />

»title« beziehungsweise »categories« notieren.<br />

Neben »:title« <strong>und</strong> »:categories«<br />

gibt es noch die Platzhalter »:day« für<br />

den Tag, »:month« für den Monat <strong>und</strong><br />

»:year« für das Jahr. »:i_month« <strong>und</strong> »:i_<br />

day« repräsentieren Monat <strong>und</strong> Tag ohne<br />

führende Nullen.<br />

Fazit<br />

Jekyll erzeugt kompakte statische Websites,<br />

benötigt keine Datenbank <strong>und</strong> hat<br />

den Vorteil, dass man die Texte in seinem<br />

Lieblings-Editor schreiben kann. Für<br />

eine etwas höhere Lernkurve sorgt der<br />

Mix aus verschiedenen Auszeichnungssprachen,<br />

zudem ist die Bedienung alles<br />

andere als intuitiv. Die Artikel gehen nur<br />

dann direkt online, wenn man Jekyll <strong>im</strong><br />

Beobachtungsmodus betreibt <strong>und</strong> den<br />

Inhalt des Verzeichnisses »_site« automatisiert<br />

auf den Server laden lässt. Im<br />

Gegenzug lässt sich Jekyll recht leicht mit<br />

anderen (Kommandozeilen-)Werkzeugen<br />

kombinieren <strong>und</strong> sogar um weitere<br />

Funktionen erweitern. Unter dem Strich<br />

empfiehlt sich der Einsatz von Jekyll <strong>im</strong>mer<br />

dann, wenn eine kleine, statische<br />

Website zu groß geworden ist <strong>und</strong> sich<br />

die Installation <strong>und</strong> Pflege eines kompletten<br />

Content-Management-Systems aber<br />

noch nicht lohnt. Auch wer aus Sicherheitsgründen<br />

statische Webseiten gegenüber<br />

einer Sammlung von fehlerhaften<br />

Formularen bevorzugt, sollte sich Jekyll<br />

ansehen. (ofr)<br />

n<br />

Infos<br />

[1] Jekyll: [http:// jekyllrb. com/]<br />

[2] Ruby für verschiedene Betriebssysteme:<br />

[http:// www. ruby‐lang. org/ de/ downloads/]<br />

[3] Github Pages: [http:// pages. github. com/]<br />

[4] YAML: [http:// www. yaml. org/]<br />

[5] Liquid: [http:// liquidmarkup. org/]<br />

[6] Liquid for Designers: [https:// github. com/​<br />

shopify/ liquid/ wiki/ liquid‐for‐designers]<br />

Der Autor<br />

T<strong>im</strong> Schürmann ist selbstständiger Diplom-<br />

Informatiker <strong>und</strong> derzeit hauptsächlich als freier<br />

Autor unterwegs. Zu seinen Büchern gesellen<br />

sich zahlreiche Artikel, die in Zeitschriften <strong>und</strong><br />

auf Internetseiten in mehreren Ländern veröffentlicht<br />

wurden.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

113


Programmieren<br />

Botnetz<br />

© oxygen64, 123RF<br />

Eigenes Botnetz programmieren<br />

Im Untergr<strong>und</strong><br />

mit dem schlechten Ruf zu kämpfen, die<br />

die Botnetze anderer zu Recht besitzen.<br />

Wenn jemand das Wort „Botnetz“ hört,<br />

denkt er meistens sofort an fiese Viren<br />

<strong>und</strong> Trojaner, die sich auf Rechnern eingenistet<br />

haben <strong>und</strong> ihren Herren aufs<br />

Wort gehorchen, um etwa weitere Rechner<br />

zu infizieren.<br />

Dieses Bild ist nicht unberechtigt. Laut<br />

einer Microsoft-Studie, hat ein Botnetz<br />

geschätzte sieben Millionen Rechner mit<br />

dem Conficker-Wurm infiziert [1]. Filesharing-Websites<br />

waren pr<strong>im</strong>äre Überträger<br />

der Infektion. Die Symptome schlossen<br />

abgeschaltete Sicherheitsdienste ein.<br />

Die Prognose für die befallenen Rechner<br />

war ungünstig: Unbehandelt konnte der<br />

Conficker-Virus unter Umständen sogar<br />

die volle Kontrolle über den Computer<br />

übernehmen <strong>und</strong> ihn zu einem willenlosen<br />

Sklaven <strong>im</strong> Netz der Botnetz-Programmierer<br />

machen.<br />

K<strong>und</strong>enkontakt<br />

01 <br />

Und wie sich <strong>im</strong> Lauf von 15 Jahren<br />

<strong>und</strong> unzähligen Projekten gezeigt hat,<br />

ist ein Botnetz der beste Weg, um solche<br />

Aufgaben über mehrere Rechner hinweg<br />

zu verteilen. Trotz ihres schlechten Rufs<br />

<strong>und</strong> ihres etwas unglücklichen Namens,<br />

bieten Botnetze für Geschäftsleute <strong>und</strong><br />

Entwickler eine Menge Potenzial.<br />

Computer kauft Auto<br />

Vor einigen Jahren habe ich ein sogenanntes<br />

Sniper-Netz programmiert. Es<br />

kaufte automatisch Autos von einer<br />

Website, kümmerte sich um die Bezahlung<br />

<strong>und</strong> vereinbarte die Überführung<br />

der Fahrzeuge. Dieser Artikel beschreibt<br />

mein Autokauf-Projekt <strong>und</strong> gibt einen<br />

Einblick in die Bedeutung kommerzieller<br />

Botnetze. Dabei wird man sehen, dass<br />

Open-Source-Tools <strong>und</strong> <strong>Linux</strong> in der Welt<br />

der Botnetz-Entwicklung <strong>und</strong> ‐Hosting<br />

große Bedeutung besitzen.<br />

Egal wie gut meine Botnetze bei meinen<br />

K<strong>und</strong>en ankommen, ich habe <strong>im</strong>mer<br />

Eines Tages rief ein K<strong>und</strong>e aus der Automobilbranche<br />

an <strong>und</strong> erzählte mir von<br />

seinem Problem. Er verriet mir, dass<br />

Autohändler eine abgesicherte Website<br />

dafür verwenden, von Autovermietungen<br />

ausgemusterte Fahrzeuge zu kaufen. Für<br />

die Händler waren das interessante Geschäfte,<br />

denn die Autos hatten nur relativ<br />

wenige Kilometer auf dem Tacho, <strong>und</strong><br />

es handelte sich um recht neue Modelle.<br />

Jeden Tag kamen auf der Website einige<br />

h<strong>und</strong>ert solcher Fahrzeuge hinzu. Davon<br />

gab es <strong>im</strong>mer eine Handvoll, die bei<br />

den Händlern auf besonderes Interesse<br />

stießen, weil sie etwa eine Sonderausstattung<br />

besaßen, es sich um ein beliebtes<br />

Modell handelte oder sie besonders<br />

günstig waren.<br />

Das Problem meines K<strong>und</strong>en bestand darin,<br />

dass er zwar die angebotenen Autos<br />

auf der Website anschauen konnte, aber<br />

sie erst ab einem best<strong>im</strong>mten Zeitpunkt<br />

verkauft wurden. Dann aber standen die<br />

Server wegen des Ansturms von Käufern<br />

so unter Last, dass man kaum noch ein<br />

Gebot abgeben konnte, ganz zu schweigen<br />

davon, einen erfolgreichen Abschluss<br />

zu machen. Mein K<strong>und</strong>e hatte also eine<br />

gute Quelle für Gebrauchtwagen ausgemacht,<br />

konnte dort aber letztlich nicht<br />

einkaufen. Ich dachte mir, ein Botnetz<br />

könnte sein Problem vielleicht lösen.<br />

114 Ausgabe 02-2013 Admin www.admin-magazin.de


Botnetz<br />

Programmieren<br />

Botnetze wie der Auto-Sniper<br />

besitzen drei Teile: einen zentralen<br />

Server, eine Reihe von<br />

Client-Rechnern (die sogenannten<br />

Harvester) <strong>und</strong> ein<br />

Webportal zur Administration.<br />

Abbildung 1 zeigt, wie<br />

diese Komponenten zusammenspielen.<br />

Das Herzstück eines jeden<br />

Botnetzes ist der zentrale Server,<br />

der das Webportal bereitstellt.<br />

In unserem Fall ersetzte<br />

es letztlich die frustrierende<br />

Weboberfläche der Autoverkaufssite.<br />

Statt sich mit anderen<br />

um deren Ressourcen zu<br />

streiten, konnte sich mein K<strong>und</strong>e bequem<br />

auf dem Botnetz-Adminrechner die Autos<br />

aussuchen, die er gerne haben wollte.<br />

Der Steuerrungsrechner wies die einzelnen<br />

Autos jeweils eigenen Harvestern<br />

zu. Irgendwann später am Tag sah mein<br />

K<strong>und</strong>e dann auf dem Portal nach, welche<br />

Autos das Botnetz kaufen konnte.<br />

Im Gleichtakt<br />

Für jedes Auto, das wir gerne kaufen<br />

wollten, verwendeten wir ein bis zwölf<br />

Harvester, die <strong>im</strong> ganzen Land verteilt<br />

waren. Einige Rechner beherbergten nur<br />

einen Harvester, auf anderen liefen gleich<br />

mehrere gleichzeitig. Im Gegensatz zum<br />

Conficker-Netz gehörten die Rechner natürlich<br />

alle uns.<br />

Nachdem ein Harvester ein Ziel zugewiesen<br />

bekommen hatte, überprüfte er, ob<br />

das gewünschte Auto noch vorhanden<br />

war. Dann synchronisierte er sich mit<br />

der Uhrzeit des Verkaufsservers. Je näher<br />

der Moment des Verkaufs rückte, umso<br />

genauer lief die Zeitsynchronisation.<br />

Gleichzeitig versuchte der Harvester die<br />

Serverlatenz zu messen <strong>und</strong> abzuschätzen,<br />

wie viele Interessenten die Website<br />

besuchten.<br />

Abhängig davon, wie viele Interessenten<br />

für einen Verkauf gab, schickte ein<br />

Harvester genau get<strong>im</strong>te Kaufanfragen.<br />

War viel los, sendete er ein Gebot vielleicht<br />

schon fünf Sek<strong>und</strong>en vor Verkaufsschluss.<br />

Meistens aber passierte das noch<br />

näher zum Verkaufsende. War das Gebot<br />

erfolgreich, kümmerte sich der Harvester<br />

um die Bezahlung <strong>und</strong> arrangierte die<br />

Überführung des Autos.<br />

Abbildung 1: Aufbau eines kommerziellen Botnetzes.<br />

Die meisten einzelnen Versuche des Botnetzes,<br />

einen Wagen zu kaufen, waren erfolglos,<br />

aber zusammengenommen hatte<br />

es eine Erfolgsquote von 95 Prozent. Das<br />

ist insbesondere bemerkenswert, wenn<br />

man sich daran erinnert, dass man von<br />

Hand kaum ein Auto kaufen konnte. Mit<br />

dem Sniper-Botnetz konnte mein K<strong>und</strong>e<br />

praktisch jedes Auto bekommen, das<br />

er sich wünschte, <strong>und</strong> ich musste ihn<br />

manchmal daran erinnern, nicht zu viel<br />

zu kaufen.<br />

Das Botnetz war bereits über ein Jahr gelaufen<br />

<strong>und</strong> hatte dabei Autos <strong>im</strong> Wert von<br />

einigen Millionen US-Dollar gekauft, als<br />

wir entdeckten, dass wir offensichtlich<br />

in Konkurrenz zu einem anderen Botnetz<br />

standen. Das führte zu einem Wettstreit<br />

der Technologien <strong>und</strong> Programmierer<br />

<strong>und</strong> letztlich dazu, die Zeitsynchronisation<br />

unseres Botnetzes zu verbessern.<br />

Am Ende dieses Prozesses lag unserer<br />

Botnetz wieder vorne.<br />

Innenleben<br />

Auch wenn die Programmierung eines<br />

Botnetzes auf den ersten Blick vielleicht<br />

kompliziert erscheinen mag, ist sie relativ<br />

s<strong>im</strong>pel, wenn man sie in Teilaufgaben zerlegt.<br />

Vereinfacht wird die Aufgabe durch<br />

eine Reihe praktischer Open-Source-<br />

Tools, die ich für diesen Zweck entwickelt<br />

habe <strong>und</strong> die unter [2] zum Download<br />

bereitstehen. Sie setzen wiederum einige<br />

PHP-Bibliotheken voraus, die etwa dabei<br />

helfen, Websiten zu downloaden, Text zu<br />

parsen, Bilder zu verarbeiten, Webcrawler<br />

zu schreiben <strong>und</strong> mit E-Mail-Servern<br />

zu kommunizieren.<br />

Die Harvester laden nicht nur<br />

die Inhalte von der Originalsite<br />

herunter, sondern rufen<br />

auch ihre Tasks vom zentralen<br />

Server per HTTP ab. Mit<br />

der Bibliothek »LIB_http« lässt<br />

sich das recht einfach bewerkstelligen.<br />

Der Code in Listing<br />

1 zeigt ein Beispiel.<br />

Ist eine Website heruntergeladen,<br />

geht es darum, die wichtigen<br />

Informationen aus der<br />

Suppe von HTML-Code <strong>und</strong><br />

unwichtigem Text herauszufiltern.<br />

Bei der Kommunikation<br />

zwischen Harvester <strong>und</strong> Server<br />

habe ich dafür ein XML-<br />

Format verwendet, wie es in Listing 2<br />

zu sehen ist.<br />

In PHP gibt es eine ganze Reihe von Möglicheiten,<br />

XML-Dokumente zu parsen.<br />

Besonders einfach geht es aber mit der<br />

Bibliothek »LIB_PARSE«, die in Listing<br />

3 verwendet wird, um die Informationen<br />

aus Listing 2 zu extrahieren.<br />

XML <strong>und</strong> HTML<br />

Das Beispiel zeigt zwei der nützlichen<br />

Funktionen der »LIB_PARSE«. So gibt die<br />

Funktion »return_between()« einfach den<br />

Inhalt eines XML-Elements zurück, das<br />

von zwei Tags eingeschlossen ist. Der<br />

Schalter »EXCL« legt fest, dass die Funktion<br />

nur den Inhalt zurückgibt, aber nicht<br />

die Tags. Zum gegenteiligen Verhalten<br />

führt der Schalter »INCL«.<br />

Die andere in Listing 3 verwendete<br />

Funktion ist »parse_array()«. Sie erzeugt<br />

ein Array aus allen Zeichen, die zwischen<br />

zwei Tags stehen. Im Beispiel ist dies<br />

die Vehicle Identification Number. Auf<br />

normalen Webseiten lässt sich »parse_<br />

array()« dazu verwenden, zum Beispiel<br />

Tabellen-Zellen, Hyperlinks oder Bild-<br />

01 <br />

Listing 2: Task für Harvester<br />

02 purchase<br />

03 somewebsite.com<br />

04 clientname<br />

05 supersecret<br />

06 <br />

07 192KF8Q2MSJE8T921<br />

08 192KF8IWECOWIMCE3<br />

09 192KF0032HJS002AS<br />

10 <br />

11 <br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

115


Programmieren<br />

Botnetz<br />

01 <br />

Listing 4: HTML parsen<br />

02 include('LIB_parse.php'); //<br />

include the parsing code from library<br />

03 <br />

04 $td_array = parse_array($raw_data, "


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 <strong>und</strong> Workshops von erfahrenen<br />

Autoren aus der langen Tradition der FreeX.<br />

eGutenberg.........................118<br />

Der lange Weg zum eigenen eBook <strong>im</strong> ePub-Format<br />

mit Open-Source-Tools.<br />

Testlabor . ........................ 126<br />

Viel Kritik musste die neue Fedora-Version einstecken.<br />

Dafür bringt sie eine Menge neuer <strong>Linux</strong>-Features<br />

mit, die einen Blick in die Zukunft erlauben.<br />

© yewkeo, 123RF<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

117


ePub<br />

© Franck Boston, 123RF<br />

Drei Schritte zum eBook<br />

eGutenberg<br />

Die Distribution elektronischer Bücher <strong>im</strong> PDF-Format ist genaugenommen<br />

veraltet. Wer Dokumente verteilen will, sollte stattdessen oder wenigstens<br />

zusätzlich eine ePub-Datei anbieten, die man ohne jeden Kosteneinsatz<br />

generieren kann. Rosa Riebl <strong>und</strong> Jörg Braun<br />

In der Vergangenheit wurden Dokumente<br />

entweder für den Druck oder die<br />

Veröffentlichung <strong>im</strong> Web geschrieben.<br />

Beide Ziele sind miteinander vereinbar:<br />

Eine für den Drucker aufbereitete Datei<br />

<strong>im</strong> PDF-Format kann am Bildschirm gelesen<br />

<strong>und</strong> eine HTML-Seite ausgedruckt<br />

werden.<br />

Die für die elektronische Distribution <strong>und</strong><br />

insbesondere den Druck bevorzugte PDF-<br />

Datei stellt sich aber schnell als ungeeignet<br />

heraus, wenn man sie auf einem<br />

kleinen Bildschirm lesen will. Das gilt es<br />

heute zu berücksichtigen, denn Geräte<br />

mit Bildschirmdiagonalen zwischen 4<br />

<strong>und</strong> 10 Zoll haben bei den Verkaufszahlen<br />

die Notebooks überholt. Die sorgfältig<br />

für das A4-Format entworfene PDF-Datei<br />

mit 10 Punkt großer Schrift ist auf Geräten<br />

mit Bildschirmdiagonalen von weniger<br />

als 9 Zoll unbrauchbar, wie sich be<strong>im</strong><br />

Versuch, sie auf einem eReader zu lesen,<br />

sehr schnell herausstellt.<br />

Etwas besser sieht es mit der geräteunabhängigen<br />

Darstellung von HTML-Dateien<br />

aus. Dieses Format krankt jedoch an der<br />

systembedingten Schwäche aller Webseiten,<br />

nämlich der schlechten Handhabbarkeit<br />

bei der Weitergabe. Bilder <strong>und</strong><br />

Stilinformationen sind vom Text getrennt,<br />

was bedeutet, dass jeweils eine ganze<br />

Ordnerstruktur distribuiert <strong>und</strong> be<strong>im</strong> Leser<br />

ausgepackt werden muss. Erschwerend<br />

kommt hinzu, dass die meisten<br />

reinen eBook-Reader anders als Tablet-<br />

PCs HTML-Dateien nicht oder nur sehr<br />

eingeschränkt interpretieren können <strong>und</strong><br />

oft deren Anzeige verweigern.<br />

Aus diesen Gründen sollte man elektronisch<br />

zu verteilende Texte möglichst <strong>im</strong><br />

universellen ePub-Format anlegen. ePub-<br />

Dateien sind gezippte Archive mit einer<br />

definierten Verzeichnisstruktur ähnlich<br />

wie die Textverarbeitungsformate ODF<br />

<strong>und</strong> DOCX. Sie werden von allen Kompaktlesegeräten<br />

angezeigt <strong>und</strong> können<br />

problemlos in andere Sonderformate für<br />

elektronische Lesegeräte überführt werden.<br />

Nicht ganz<br />

geräteunabhängig<br />

Wer ePub-Dateien generieren will, muss<br />

sich zunächst einmal von der Vorstellung<br />

des klassischen Seitenaufbaus von<br />

Büchern <strong>und</strong> Zeitschriften <strong>und</strong> damit<br />

auch von der Struktur der PDF-Dateien<br />

verabschieden. Die Verwandtschaft mit<br />

Webseiten wird durch mehrere Faktoren<br />

deutlich: Die Texte sind in der Datei <strong>im</strong><br />

XHTML-Format abgelegt, sie werden mit<br />

einem externen Stylesheet (einer typischen<br />

CSS-Datei) formatiert, <strong>und</strong> alle<br />

Bilder werden in einem gesonderten<br />

Verzeichnis <strong>im</strong> internettypischen JPEG-<br />

Format abgelegt.<br />

Ziel der ePub-Dateien ist eine weitgehend<br />

geräteunabhängige Distribution. Ganz<br />

geräteabhängig kann sie nie sein, denn<br />

was für die 4,3-Zoll-Anzeige eines Trek-<br />

Stor Papyrus mini mit 16-Graustufen in<br />

E-Ink-Darstellung ideal ist, wirkt auf dem<br />

9,7-Zoll-Farbdisplay eines iPad 4 oder 5<br />

keineswegs passend (<strong>und</strong> natürlich umgekehrt).<br />

Nur bei richtiger – möglichst<br />

min<strong>im</strong>alistischer – Definition gleicht das<br />

Lesegerät die Schriftgröße für eine opt<strong>im</strong>ale<br />

Darstellung an.<br />

Tabelle 1 zeigt die Elemente einer ePub-<br />

Datei <strong>im</strong> Überblick. Im Hauptverzeichnis<br />

befinden sich weiterhin eine Datei mit<br />

118 Ausgabe 02-2013 Admin www.admin-magazin.de


ePub<br />

Formate für die elektronische Distribution<br />

Es gibt neben den hier angesprochenen Dateiformaten<br />

ePub, HTML <strong>und</strong> PDF noch eine ganze<br />

Reihe von Alternativen. Dateien mit der Endung<br />

».mobi« der Mobipocket-Dateien für das Amazon<br />

Kindle, das keine ePub-Dateien verarbeitet,<br />

sind fast eins zu eins mit den ePub-Dateien synchronisierbar<br />

<strong>und</strong> deshalb als „Abfallprodukt“<br />

mit den hier geschilderten Mitteln erzeugbar.<br />

Ein anderes modernes Format ist Djvu [13],<br />

das seitenorientiert <strong>und</strong> deshalb eher mit PDF<br />

zu vergleichen ist <strong>und</strong> mit Calibre nicht genutzt<br />

werden kann.<br />

Be<strong>im</strong> Verfassen von Texten, die später als<br />

ePub-Dateien veröffentlicht werden, sind<br />

einige Dinge zu beachten. An erster Stelle<br />

muss strikt mit Formatvorlagen gearbeitet<br />

werden. Wurden den Textelementen<br />

Schriftarten, Schriftgrößen <strong>und</strong> Auszeichnungen<br />

direkt zugewiesen, gehen diese<br />

be<strong>im</strong> Umwandeln verloren. Das Formatieren<br />

von Textelementen ohne Formatvorlagenzuweisung<br />

ist genauso tabu wie<br />

bei auf CSS-Dateien basierenden Webseiten.<br />

An den Standardformaten sollte man<br />

tunlichst nichts ändern. Man kann zwar<br />

gr<strong>und</strong>sätzlich versuchen, seine eigenen<br />

Layoutvorstellungen zu übertragen, der<br />

Erfolg wird aber sehr begrenzt sein. Das<br />

Writer-Plugin überträgt nämlich die Standard-Formate<br />

von Writer nur in eigene<br />

Standarddefinitionen wie »h1«, »h2«,<br />

»h3« <strong>und</strong> »p«. Diese sind dann natürlich<br />

nicht wie erwartet formatiert. Möchte<br />

man diese globale Zuweisung umgehen,<br />

muss man mit benutzerdefinierten Fordem<br />

Manifest (»content.opf«) des Buchs,<br />

das die Dokumentenliste enthält, <strong>und</strong> ein<br />

Inhaltsverzeichnis (»toc.ncx«), beide sind<br />

<strong>im</strong> XML-Format.<br />

Es gibt mehrere Möglichkeiten, ein Dokument<br />

möglichst professionell ins ePub-<br />

Format zu überführen. Ein Weg führt<br />

über die entsprechenden Exportfilter<br />

der beiden nicht ganz billigen Layoutprogramme<br />

Adobe InDesign <strong>und</strong> Quark<br />

XPress. Alternativen dazu finden sich in<br />

der Open-Source-Welt. Wie so oft muss<br />

man dann aber mehrere Programme mit<br />

ergänzenden Funktionen installieren, die<br />

Ergebnisse etwas nacharbeiten <strong>und</strong> außerdem<br />

etwas mehr Hintergr<strong>und</strong>wissen<br />

mitbringen als der zahlende Profi, der<br />

in seiner Software nur einen Knopf zu<br />

drücken braucht.<br />

Dieser Artikel stellt den Arbeitsablauf<br />

mit einer Kombination der Programme<br />

Apache OpenOffice oder LibreOffice, Sigil<br />

<strong>und</strong> Calibre vor. Hinzu kommen noch<br />

einige kleinere Hilfsmittel, darunter ein<br />

OO-Plugin <strong>und</strong> ein Firefox/​Seamonkey-<br />

Addon. Alle Programme sind direkt <strong>und</strong><br />

in aktuellen Versionen für <strong>Windows</strong>,<br />

FreeBSD <strong>und</strong> MacOS X Mountain Lion<br />

verfügbar, bei einem Teil der <strong>Linux</strong>-Distributionen<br />

<strong>und</strong> bei älteren Versionen von<br />

MacOS ist es etwas schwieriger, weil es<br />

keine aktuelle Binärversion von Sigil gibt<br />

<strong>und</strong> man dann mit einer älteren Version<br />

vorliebnehmen muss.<br />

Zuerst schreiben<br />

Geschrieben wird das Dokument in<br />

Apache OpenOffice oder LibreOffice. Wer<br />

das nicht möchte, kann es auch in einer<br />

beliebigen anderen Textverarbeitung<br />

verfassen, in das Writer-Modul <strong>im</strong>portieren<br />

<strong>und</strong> ins ODT-Format umwandeln.<br />

Das Comic-Book-Format (CBR, siehe [14]) besteht<br />

nur aus Seiten mit zusammengefügten<br />

Bildern <strong>und</strong> ist für Texte ungeeignet. Eine Zeitlang<br />

waren ».lit«-Dateien für den inzwischen<br />

eingestellten Microsoft-Reader in Gebrauch, sie<br />

spielen heute aber keine Rolle mehr. Die Textverarbeitungsformate<br />

ODT, DOC, DOCX <strong>und</strong> RTF<br />

sind für Reader ungeeignet, weil ihre Interpretation<br />

schwierig ist. Alle Reader können reine<br />

ASCII-Texte in verschiedenen Zeichenkodierungen<br />

lesen, aber Bilder <strong>und</strong> Textauszeichnungen<br />

sind dabei natürlich nicht möglich.<br />

Ordner<br />

Text<br />

Styles<br />

Images<br />

Fonts<br />

Audio<br />

Video<br />

Misc<br />

Tabelle 1: Die Ordner einer ePub-2-Datei<br />

maten arbeiten, die unbedingt das Präfix<br />

»w2e_« erhalten müssen. Alle anderen<br />

benutzerdefinierten Formate werden verworfen<br />

<strong>und</strong> durch die Standardformatvorlage<br />

ersetzt.<br />

Man muss natürlich beachten, dass<br />

man keine Standardnamen erzeugt –<br />

die Extension macht beispielsweise aus<br />

»w2e_center« einen Stil »center«, der<br />

dann wieder zur normalen Stilvorlage<br />

desselben Namens wird. Man hat dann<br />

nichts gewonnen. Welche Formate vorbelegt<br />

sind, sieht man am besten bei einem<br />

Probelauf.<br />

Wichtig be<strong>im</strong> Schreiben von ePub-Dateien<br />

ist, dass man nicht mit Textseiten<br />

plant, denn der Seitenumbruch wird vom<br />

Anzeigegerät später dynamisch gesetzt.<br />

ePub-Dateien müssen in Kapiteln aufgebaut<br />

werden, <strong>und</strong> der Text muss deshalb<br />

hierarchisch gegliedert sein. Spielereien<br />

wie mehrspaltiger Satz dürfen nicht definiert<br />

werden. Leerzeilen zur Trennung<br />

von Textabschnitten sind unerwünscht,<br />

weil sie später den Lesefluss stören können<br />

oder zu Irritationen führen, wenn<br />

sie sich am oberen Seitenrand befinden<br />

oder wenn sie zu ungewollten Leerseiten<br />

führen.<br />

Ein besonderes Problem stellen Fußnoten<br />

dar, sie gibt es nämlich in ePub-Dateien<br />

nicht (es gibt ja auch keine Seiten!). Fußnoten<br />

des Originaldokuments werden<br />

deshalb bei ePub-Dateien in Endnoten<br />

umgewandelt <strong>und</strong> <strong>im</strong> Text entsprechend<br />

verlinkt. Viele eBook-Reader können<br />

aber mit Hyperlinks nichts anfangen, es<br />

wird ja ein gedrucktes Buch emuliert <strong>und</strong><br />

Inhalt<br />

Die eigentlichen Kapitel <strong>im</strong> XHTML-Format, jede Datei <strong>und</strong> damit jedes Kapitel dürfen<br />

nicht größer sein als 300 KByte. Die Dateien erhalten automatisch die Endung .xhtml.<br />

Enthält die Datei Fußnoten, stehen sie gesondert in der Datei »footnotes.xhtml«.<br />

Das Stylesheet, möglich sind auch mehrere CSS-Dateien zum Beispiel für Anzeige <strong>und</strong><br />

Druck. Der beziehungsweise die Namen sind beliebig, die Endung lautet ».css« (bei<br />

Writer2ePub ist der Name »style001.css« vorgegeben). Auf diese Datei wird in den<br />

XHTML-Dateien verwiesen.<br />

(Optionale) Bilder in der Datei, von Writer2ePub <strong>im</strong> Jpeg-Format exportiert. Gr<strong>und</strong>sätzlich<br />

dürfen die Jpeg-Dateien wahlweise (auch gemischt) die Endungen ».jpg« oder<br />

».jpeg« erhalten, weiterhin sind auch GIF- <strong>und</strong> PNG-Dateien möglich. Hier in dieses<br />

Verzeichnis gehört auch eine (optionale) Bilddatei für das Titelblatt.<br />

Sind in der Datei besondere Schriften definiert, empfiehlt es sich dringend, sie in der<br />

Datei mitzuliefern, denn nur dann können Geräte, bei denen die definierte Schrift nicht<br />

installiert ist, den Text richtig darstellen.<br />

Hier werden in die Datei eingebettete Audiodaten abgelegt.<br />

Hier werden in die Datei abgelegte Videos abgespeichert.<br />

Was sonst nirgends hinpasst, befindet sich in diesem Ordner. Er ist in der Regel leer.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

119


ePub<br />

nicht eine Webseite dargestellt. Das Lesen<br />

der Endnoten artet in diesen Fällen<br />

für den Leser in umständliches Hin- <strong>und</strong><br />

Herblättern aus.<br />

Fußnoten sollte man deshalb vermeiden<br />

<strong>und</strong> ergänzende Informationen, die man<br />

sonst in Fußnoten untergebracht hätte<br />

(vielleicht in Klammern gesetzt), besser<br />

in den normalen Text integrieren. Auch<br />

die diversen Automatismen einer Textverarbeitung<br />

werden nicht umgesetzt;<br />

wer Bilder in den Text integriert <strong>und</strong> die<br />

Bildnummern automatisch vergeben lässt<br />

<strong>und</strong> dann <strong>im</strong> Text auch noch dynamisch<br />

verlinkt, wird später feststellen, dass dies<br />

zu Fehlern in der Datei führt.<br />

Auch eine automatische Nummernvergabe<br />

der Kapitel ist nicht <strong>im</strong>plementiert.<br />

Überschriften werden mit den Formaten<br />

»h1«, »h2« <strong>und</strong> so weiter markiert<br />

<strong>und</strong> mit größerer Schrift in der Zeile<br />

zentriert.<br />

Gut gegliedert<br />

Die sinnvolle Zuordnung der Überschriften<br />

<strong>und</strong> die Gliederung der Textes ist<br />

– das kann nicht genug betont werden<br />

– besonders wichtig. Aus den Überschriften<br />

enststeht nicht nur automatisch das<br />

Inhaltsverzeichnis, vor den Überschriften<br />

wird außerdem auch die Datei in<br />

logische Einheiten geteilt. Da die einzelnen<br />

XHTML-Dateien nicht größer als<br />

300 KByte sein dürfen, ist die sinnvolle<br />

Gliederung des Texts um so wichtiger.<br />

Worttrennungen in ePub-Dateien sind dagegen<br />

unerwünscht. Die Trennhilfe kann<br />

abgeschaltet bleiben, manuelle Trennungen<br />

am Zeilenende womöglich mit einem<br />

Minus-Zeichen unterlässt man, weil sich<br />

diese Trennungen später zum Teil unweigerlich<br />

mitten in einer Zeile befinden <strong>und</strong><br />

den Leser stören werden. Große Wortabstände<br />

vermeidet man besser, indem<br />

man später die Definition in der Formatvorlage<br />

»p« von Blocksatz (»text‐align:<br />

justify;«) auf linksbündig (»text‐align:<br />

left;«) ändert.<br />

Diese Hinweise sollen verhindern, dass<br />

man bei späteren Schritten intensiv nacharbeiten<br />

muss. Sie zeigen aber auch, dass<br />

das Schreiben von ePub-Dateien mehr<br />

Disziplin erfordert als das saubere Aufbereiten<br />

einer Datei für den Druck beziehungsweise<br />

die Weitergabe <strong>im</strong> PDF-<br />

Format.<br />

Spätestens wenn der erste für das ePub-<br />

Format vorgesehene Text geschrieben<br />

oder in Open-/​LibreOffice vorbereitet ist,<br />

sollte das Plugin Writer2ePub von [2]<br />

oder [3] heruntergeladen <strong>und</strong> mit dem<br />

Extensions Manager (Menü »Extras | Extensions<br />

Manager«) installiert werden.<br />

Writer2ePub ist gleichermaßen für das<br />

alten OpenOffice.org 3.x, für LibreOffice<br />

<strong>und</strong> Apache OpenOffice.org geeignet.<br />

Die Erweiterung ist in Basic geschrieben,<br />

plattformunabhängig <strong>und</strong> benötigt<br />

auch keine Java-Umgebung. Um sie zu<br />

nutzen, muss man nach der Installation<br />

die Office-Anwendung neu starten. Es<br />

ist dann eine neue Symbolleiste mit drei<br />

Symbolen links oben unter dem Date<strong>im</strong>enü<br />

zu sehen.<br />

Erster Durchlauf<br />

Man sollte zuerst die Metadaten für die<br />

ePub-Distribution mit der mittleren der<br />

drei Schaltflächen eintragen. Hier sind<br />

der Name des Buches <strong>und</strong> des Autors am<br />

wichtigsten. Die linke der drei Schaltflächen<br />

(siehe Abbildung 1) legt die ePub-<br />

Datei an. Vergisst man vorher die Angabe<br />

der Metadaten, ist das nicht schl<strong>im</strong>m,<br />

der Metadatendialog wird dann vor dem<br />

Schreiben der ePub-Datei automatisch<br />

angezeigt.<br />

Jeder Lauf von Writer2ePub gibt ein Protokoll<br />

aus. Der oberste Button (der verunglückten<br />

Beschriftung »CommandButton«)<br />

schließt das Protokollfenster. Links<br />

daneben ist die abgelöste Symbolleiste<br />

von Writer2ePub zu sehen, sie enthält<br />

oben den Schalter für den Lauf zum Generieren<br />

der Datei, darunter den für die<br />

Eingabe der Metadaten (Name, Autor <strong>und</strong><br />

so weiter). Mit dem untersten Schalter<br />

wird Writer2ePub konfiguriert (es wird<br />

der rechts gezeigte Dialog geöffnet)<br />

Die Erweiterung weist auf einige grobe<br />

Fehler wie die Definition zusätzlicher<br />

Formatvorlagen hin, außerdem verlangt<br />

sie bei einer Datei <strong>im</strong> falschen Format wie<br />

RTF <strong>und</strong> DOC, das Dokument zuerst <strong>im</strong><br />

ODT-Format zu speichern. Auch bei einer<br />

<strong>im</strong> Speicher gegenüber der Festplatte<br />

veränderten Datei wird man aufgefordert,<br />

den Text erst noch einmal zu speichern.<br />

Selbst bei recht sorgfältiger Arbeit ist<br />

nicht unbedingt sichergestellt, dass nach<br />

dem Writer2ePub-Lauf alles passt. Meist<br />

müssen Formate korrigiert <strong>und</strong> Fehler<br />

be<strong>im</strong> Schreiben der Daten behoben werden.<br />

Ein typischer Fehler von Writer2ePub betrifft<br />

die Anzeige von Bildern. Hat man<br />

eine eigene Formatvorlage beispielsweise<br />

mit dem Namen »Bild« für PDFs definiert,<br />

die bei der ePub-Datei ignoriert werden<br />

soll, stellt man fest, dass jetzt den Bildern<br />

eine in der ePub-Datei unbekannte<br />

Style sheetklasse »sg‐1« zugeordnet ist,<br />

die entweder erst von Hand angelegt oder<br />

aus den XHTML-Dateien entfernt werden<br />

muss. Genauso gravierend sind Fehlleistungen<br />

des Plugins bei Bildgrößen mit<br />

»style="height:1em"«.<br />

Abbildung 1: Der unterste Button des Protokollfensters öffnet die Writer2ePub-Einstellungen.<br />

120 Ausgabe 02-2013 Admin www.admin-magazin.de


ePub<br />

ePub <strong>und</strong> MS-Office?<br />

Wer anstelle von Open/​Libre Office Microsoft<br />

Office als Bürosoftware bevorzugt, sollte<br />

trotzdem ebenfalls den hier beschriebenen<br />

Weg gehen. Es besteht zwar die Möglichkeit,<br />

unter [http:// www. epubconverter. org] kostenlos<br />

eine max<strong>im</strong>al 5 MByte große DOCX- (oder<br />

PDF-Datei) online in eine ePub-Datei umwandeln<br />

zu lassen, <strong>und</strong> bei den Sicherheitshinweisen<br />

auf der Seite wird auch behauptet,<br />

die Dateien würden weder betrachtet noch<br />

gespeichert – aber wer will das bei einer Webseite<br />

garantieren, aus deren Impressum nicht<br />

einmal der Betreiber ersichtlich ist?<br />

Die Anzeige der Bilder stellt gr<strong>und</strong>sätzlich<br />

ein Problem dar, das anschließend<br />

<strong>im</strong> ePub-Editor behoben werden muss.<br />

Natürlich verhält sich aber jeder Text<br />

anders: Es macht einen Unterschied,<br />

ob man beispielsweise einen Text von<br />

Microsoft Office <strong>im</strong>portiert oder ihn von<br />

vornherein mit dem Augenmerk auf den<br />

ePub-Export in Writer schreibt.<br />

Verifikation <strong>und</strong> Validierung<br />

Die Fehlerkontrolle wird <strong>im</strong> Programm Sigil<br />

durchgeführt. Sigil ist ein komfortabler<br />

ePub-Editor mit Open-Source-Lizenz,<br />

lässt sich in der <strong>Windows</strong>-Version von<br />

[4] herunterladen <strong>und</strong> direkt unter <strong>Windows</strong><br />

XP bis <strong>Windows</strong> 8 mit der heruntergeladenen<br />

Exe-Datei installieren. Für<br />

MacOS gibt es eine aktuelle DMG-Datei,<br />

sie läuft aber nur auf 64-Bit-Systemen<br />

<strong>und</strong> der neuesten MacOS-X-Version. Wer<br />

ein älteres MacOS X installiert hat, muss<br />

deshalb auf eine veraltete Version zurückgreifen.<br />

Bei FreeBSD ist Sigil in den<br />

Ports (unter »textproc/sigil«) in der recht<br />

aktuellen Version 0.6.0 enthalten.<br />

Ausgerechnet bei einigen <strong>Linux</strong>-Distributionen<br />

steht man bei der Installation dieses<br />

Open-Source-Programms vor einem<br />

Problem. Sigil ist in aktueller Version bei<br />

Fedora 17 <strong>und</strong> in veralteter bei Mandriva<br />

2011 enthalten, fehlt aber komplett bei<br />

Open Suse 12.1, Debian 6 <strong>und</strong> Ubuntu<br />

12.04. Man kann theoretisch versuchen,<br />

bei diesen Distributionen das Programm<br />

aus den Quellen selbst zu kompilieren.<br />

Wegen seiner Abhängigkeiten ist das aber<br />

nicht ganz einfach <strong>und</strong>, was die aktuelle<br />

Version betrifft, auch bei nur min<strong>im</strong>al älteren<br />

Distributionen nicht möglich, weil<br />

die Entwicklerpakete der Qt-Version 4.8<br />

zwingend installiert sein müssen.<br />

Da die <strong>Windows</strong>-Version unter Wine<br />

auch einen Fehler produziert, bleibt bei<br />

<strong>Linux</strong>-Distributionen, bei denen sich Sigil<br />

nicht <strong>im</strong> Repository befindet, nur übrig,<br />

eine etwas ältere Version von [5] zu installieren.<br />

Die neueste Binärversion 0.5.3<br />

der Vorserie ließ sich unter Open Suse<br />

12.1/​i386 erfolgreich installieren <strong>und</strong> betreiben.<br />

Noch ältere Versionen gibt es als<br />

RPM-Archive, deren Installation macht<br />

aber keinen Sinn. Die für Fedora ausgelegten<br />

RPM-Dateien des Projekts zeigten<br />

bei Open Suse außerdem den Effekt, dass<br />

sie das Betriebssystem zwangen, alle<br />

früher gelöschten unerwünschten Programme<br />

aus der Basisinstallation wieder<br />

Abbildung 2: Das Einbinden von Bildern mit Writer2EPub ist problematisch <strong>und</strong> klappt von Haus aus meist<br />

nicht, wie hier in der Sigil-Version 0.6 unter FreeBSD zu sehen ist.<br />

neu vom Open-Suse-Server nachzuinstallieren.<br />

Es kann vor diesen alten Dateien<br />

unter <strong>Linux</strong> also nur gewarnt werden.<br />

Die Installation von Sigil 0.5.3 unter<br />

Open Suse 12.1 ist sehr einfach. Unter<br />

dem Link [5] wählt man <strong>im</strong> Suchfeld<br />

»All downloads« aus, trägt <strong>im</strong> Eingabefeld<br />

»for« den Suchbegriff »<strong>Linux</strong>« ein<br />

<strong>und</strong> beginnt anschließend die Suche mit<br />

Druck auf die Schaltfläche »Search«. Es<br />

gibt 32- <strong>und</strong> 64-Bit-Dateien, man sollte<br />

die jeweils passende für die Plattform<br />

herunterladen.<br />

Problemkind Sigil<br />

Bei den angebotenen Downloads handelt<br />

es sich um an <strong>Windows</strong> erinnernde<br />

Installationsprogramme, die nach dem<br />

Download ausgeführt werden <strong>und</strong> dafür<br />

ein Ausführen-Attribut erhalten müssen.<br />

Be<strong>im</strong> Start aus dem aktuellen Verzeichnis<br />

darf man das »./« vor dem Dateinamen<br />

nicht vergessen. Startet man die Installation<br />

mit normalen Anwenderrechten,<br />

wird eine lokale Installation nach »/<br />

home/Username/sigil« vorgeschlagen,<br />

vorheriges Wechseln zum Root-Account<br />

mit »su« oder »sudo« führt zu einer globalen<br />

Installation mit dem voreingestellten<br />

Ziel »/opt/sigil«.<br />

Sigil ist ein kompletter ePub-Editor. Man<br />

kann damit eBooks auch direkt schreiben,<br />

auf [6] wird ein Template zum Download<br />

angeboten, in das man Texte schreiben<br />

beziehungsweise über die Zwischenablage<br />

einkopieren kann. Hier wird in Sigil<br />

aber nur nachgearbeitet <strong>und</strong> die Fehler<br />

des Writer-Plugins werden entfernt.<br />

Die von Writer2ePub angelegte Datei<br />

wird über das Date<strong>im</strong>enü in Sigil geladen.<br />

Links ist die Ordnerstruktur des Buchs zu<br />

sehen, in der Mitte der Text selbst, darunter<br />

auf Wunsch der Quelltext. Rechts<br />

befindet sich das von Writer2EPub generierte<br />

Inhaltsverzeichnis Hier sollte zuerst<br />

die Gliederung des Texts <strong>im</strong> rechten<br />

Fenster überprüft werden. Writer2ePub<br />

setzt die ursprüngliche Gliederung sehr<br />

gut um. Fehler an dieser Stelle sollten<br />

man deshalb nicht in Sigil beheben. Man<br />

schließt besser den Editor, lädt die ODT-<br />

Datei in Writer <strong>und</strong> gliedert den Text mit<br />

dem Navigator (Menü »Ansicht | Navigator«<br />

oder Taste [F5] neu) <strong>und</strong> schreibt danach<br />

eine neue ePub-Datei. Fehler sollten<br />

dort beseitigt werden, wo sie auftreten.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

121


ePub<br />

01 p {<br />

In Sigil muss die fehlerhafte Anzeige von<br />

Bildern (siehe Abbildung 2) repariert<br />

werden. Die Korrektur ist durch Anpassen<br />

beziehungsweise Löschen der den<br />

Bildern zugewiesenen Stilvorlage sehr<br />

einfach. Die unterschiedlichen Anzeigen<br />

des Texts in der Mitte erreicht man <strong>im</strong><br />

Übrigen mit den Schaltflächen darüber<br />

ganz oben in der Symbolleiste. Hier lässt<br />

sich zwischen einer Buch-Ansicht, einer<br />

<strong>Vorschau</strong> <strong>und</strong> einer Quelltextansicht<br />

wechseln.<br />

Bei der »<strong>Vorschau</strong>« wird der Textbereich<br />

in der Mitte noch einmal geteilt. Passt die<br />

Anzeige augenscheinlich (hierbei sollte<br />

man daran denken, dass Sigil ein Editor<br />

<strong>und</strong> kein Anzeigeprogramm ist, die Textdarstellung<br />

selbst ist nur angenähert),<br />

muss noch das XHTML validiert werden<br />

(siehe Abbildung 3).<br />

Testen<br />

Die XHTML-Validierung wird bei Sigil <strong>im</strong><br />

Werkzeuge-Menü (beziehungsweise mit<br />

[F7]) aufgerufen. Abbildung 3 zeigt, dass<br />

die Querverweise <strong>und</strong> automatischen<br />

Bildnummern in dieser ursprünglich in<br />

Microsoft Word verfassten Datei nicht<br />

übernommen werden konnten <strong>und</strong> bei<br />

der Validierung abgelehnt werden. Damit<br />

dieses Problem nicht bei jedem Generieren<br />

der Datei neu auftritt, <strong>und</strong> um<br />

sinnvolle fortlaufende Bildnummern zu<br />

erhalten, muss die automatische Nummernvergabe<br />

in Writer durch fest eingetragene<br />

Nummern ersetzt werden <strong>und</strong><br />

die dann eben generierte ePub-Datei neu<br />

nach Sigil geladen werden. Die Validierung<br />

sollte vor dem nächsten endgültigen<br />

Arbeitsschritt fehlerfrei verlaufen.<br />

Was der Blick in den rechten Bereich<br />

mit dem automatischen Inhalt darüber<br />

Listing 1: CSS-Formatdefinition<br />

02 font‐family : "Georgia", serif;<br />

03 font‐weight : normal;<br />

04 font‐style : normal;<br />

05 font‐size : 1.17em;<br />

06 text‐decoration : none;<br />

07 font‐variant : normal;<br />

08 line‐height : 1.29;<br />

09 text‐align : center;<br />

10 color : #000000;<br />

11 text‐indent : 0px;<br />

12 margin : 2em 0 0 0;<br />

13 }<br />

Abbildung 3: Mit Sigil wird die ePub-Datei validiert. Hier <strong>im</strong> Beispiel unter <strong>Windows</strong> 8 werden die ursprünglich<br />

in MS Word angelegten Querverweise <strong>und</strong> automatischen Bildnummern abgelehnt.<br />

hinaus verrät, ist, dass – wie bereits erwähnt<br />

– das automatische Zählen der<br />

Überschriften ebenfalls nicht vorgesehen<br />

ist. Automatisch zugewiesene Kapitelnummern<br />

gehen genauso verloren wie<br />

alle eigenen Anpassungen der Standard-<br />

Formate von Writer. Links ist aber ein Bereich<br />

»Fonts« gezeigt (siehe auch Tabelle<br />

1), der von Writer2ePub nicht genutzt<br />

wird. Hier kann man Schriften einkopieren,<br />

die man anschließend den Formaten<br />

Schriftdefinitionen<br />

Es ist nicht nötig, in ePub-Dateien Schriften<br />

zu definieren. Je nach Gerät wird der Text<br />

ohne Definitionen <strong>im</strong>mer möglichst gut lesbar<br />

dargestellt. Sollen die Voreinstellungen überschrieben<br />

werden, lässt sich die Schriftfamilie<br />

mit der Definition »font‐family:« für jede<br />

Stylesheet-Klasse festlegen. Für die serifenbehaftete<br />

Schrift gibt man »serif« oder »T<strong>im</strong>es«,<br />

für serifenlose »sans‐serif« oder »Helvetica«<br />

<strong>und</strong> für dicktengleiche »monospace« an (<strong>im</strong>mer<br />

ohne Anführungszeichen um die Namen). Auf<br />

diese Weise lässt sich ein Text schon sehr gut<br />

gliedern.<br />

Möchte man besondere Effekte erzielen, muss<br />

man die Schrift direkt angeben. Dabei ist zu<br />

beachten, dass – wenn die Fontdatei nicht in die<br />

ePub-Datei übernommen wird – auch <strong>im</strong>mer, wie<br />

in Listing 1 gezeigt, eine Standard-Ersatzschrift<br />

definiert werden sollte.<br />

Der nächste Schritt des Komforts für den Leser<br />

wird dann erreicht, wenn man die Schriften<br />

gleich mit in die Datei integriert. Das ist nötig,<br />

wenn Sonderschriften wie beispielsweise Fraktur<br />

benötigt werden oder wenn man die Darstellung<br />

der Schrift genau kontrollieren will. Dann<br />

ist der Arbeitsaufwand erheblich größer.<br />

in der CSS-Datei zuweist. Eine solche typische<br />

Formatierung könnte so aussehen<br />

wie Listing 1.<br />

Die in Listing 1 gezeigte Definition wurde<br />

in Adobe Indesign geschrieben. Die meisten<br />

Angaben sind überflüssig, darunter<br />

beispielsweise auch die Schriftfarbe<br />

Schwarz. Schriftgrößen, Ränder <strong>und</strong> Einrückungen<br />

werden in den ePub-Dateien<br />

in em-Einheiten definiert, Genaueres<br />

dazu kann in [12] nachgelesen werden.<br />

Zuerst muss die Schrift als TTF- oder OTF-Datei<br />

in die ePub-Datei eingebettet werden. Im Kontextmenü<br />

des Ordners »Fonts« wählt man dafür<br />

den Punkt »Bestehende Dateien hinzufügen...«<br />

<strong>und</strong> kopiert dann alle benötigten Schriften von<br />

der Festplatte hinein. Im zweiten Schritt müssen<br />

die Schriften <strong>und</strong> zwar je nach Bedarf für Normal-,<br />

Fett- <strong>und</strong> Kursivschrift in allen betroffenen<br />

Stylesheets bekanntgegeben werden.<br />

Bei einer Freeware-Fraktur, die die Namen<br />

»LeipzigFrakturNormal« <strong>und</strong> »LeipzigFrakturBold«<br />

hat <strong>und</strong> aus den beiden (gegenüber<br />

den Originalen umbenannten) Dateien »leipzig.<br />

otf« <strong>und</strong> »leipzigb.otf« besteht[16], sieht der<br />

Eintrag in der »style001.ccs« so aus wie in Listing<br />

2. Mit den hier festgelegten Namen kann<br />

die Schrift in den Klassen referenziert werden<br />

(Listing 3).<br />

Dafür wurde in OpenOffice die Formatvorlage<br />

»w2e_Fraktur« definiert, auch wenn Writer2e-<br />

Pub die Schriftdefinition nicht überträgt. Aber<br />

natürlich kann man auch ein ganzes Buch mit<br />

dieser Frakturschrift ausliefern. Der Text muss<br />

dann allerdings für die Schrift weiter aufbereitet<br />

<strong>und</strong> bei der Fraktur speziell das End-S<br />

überall richtig definiert werden.<br />

122 Ausgabe 02-2013 Admin www.admin-magazin.de


ePub<br />

Writer2ePub schreibt automatisch eine<br />

große Zahl von Klassen in die CSS-Datei,<br />

Sigil erleichtert das Löschen der unbenutzten<br />

Stylesheet-Klassen. Man sollte in<br />

jedem Fall die CSS-Datei bereinigen, indem<br />

man das Menü »Werkzeuge | Lösche<br />

unbenutzte Stylesheet‐Klassen« aufruft.<br />

Die Gr<strong>und</strong>arbeiten in Sigil sind damit<br />

abgeschlossen. Natürlich sollte man Verschönerungen<br />

nur anbringen, wenn die<br />

Bearbeitung der Datei in Writer endgültig<br />

abgeschlossen ist. Es sei noch einmal<br />

betont, dass man Fehler <strong>im</strong> Text nicht<br />

in Sigil, sondern in der Textverarbeitung<br />

beheben sollte.<br />

Wer außerdem be<strong>im</strong> Validieren unsicher<br />

ist, ob die Überprüfung in Sigil wirklich<br />

reicht, kann zusätzlich das ebenfalls<br />

kostenlose Programm EPUBCheck<br />

von [9] herunterladen. Es ist ein in Java<br />

geschriebenes Kommandozeilentool <strong>und</strong><br />

wird nach dem Auspacken des Zip-Archivs<br />

mit<br />

java ‐jar epubcheck‐3.0.jar Datei<br />

aufgerufen. Man erfährt hierbei nicht<br />

nur, ob die Datei syntaktisch korrekt ist,<br />

sondern außerdem, ob eine ePub-Datei<br />

der Version 2 oder 3 vorliegt. Bei Writer-<br />

2ePub <strong>und</strong> Sigil ist diese Frage allerdings<br />

schon <strong>im</strong> vorhinein mit »Version 2« zu<br />

beantworten. Beide Programme schreiben<br />

nicht das neuere ePub 3.0, von dem<br />

ohnehin abzuraten ist, weil es einfachere<br />

Lesegeräte nicht unbedingt fehlerfrei interpretieren.<br />

Der fertigen <strong>und</strong> validierten ePub-Datei<br />

fehlt jetzt nur noch ein Deckblatt, das<br />

Sigil <strong>und</strong> Initiale<br />

Kapitelanfänge werden in Büchern <strong>und</strong> Zeitschriften<br />

gern mit hervorgehobenen Buchstaben<br />

(sogenannten Initialen) eingeleitet. Im<br />

ePub-Format gibt es dies in zwei Ausprägungen,<br />

einmal durch ein vergrößertes Zeichen, das in<br />

der CSS-Datei so definiert wird:<br />

.initial {<br />

font‐size: 1.5em;<br />

}<br />

Dieser Kapitelanfang sieht allerdings nicht besonders<br />

schön aus. Die bessere Hervorhebung<br />

durch ein Initial, das über mehrere Textzeilen<br />

läuft, heißt Dropcap <strong>und</strong> benötigt eine etwas<br />

komplexere Stilklasse (Listing 4). Leider werden<br />

in der Textverarbeitung definierte Initiale nicht<br />

automatisch in diese Klassen umgesetzt. Bei<br />

Bedarf muss deshalb die CSS-Datei erweitert<br />

man in jedem beliebigen Grafikprogramm<br />

entwerfen kann. Idealerweise<br />

sollte die Grafik <strong>im</strong> Format 3:4 oder 9:16<br />

<strong>und</strong> <strong>im</strong> Hochformat angelegt sein, weil<br />

dieses Größenverhältnis am besten zum<br />

Displayformat der meisten Reader <strong>und</strong><br />

Tablets passt. Das Einhalten des Seitenverhältnisses<br />

ist aber keine Pflicht. Im<br />

Prinzip kann jede beliebige Jpeg-Datei<br />

als Titelbild eingezogen werden, was am<br />

einfachsten in der eBook-Verwaltungsanwendung<br />

Calibre geht.<br />

eBuchzentrum<br />

Calibre gibt es für jede nur erdenkliche<br />

Plattform, das Programm ist kein Editor,<br />

sondern stellt eine komplette eBook-Verwaltung<br />

dar. Man kann mit ihm Dateien<br />

auf die Reader-Hardware übertragen,<br />

eBooks vom einen in eine ganze Reihe<br />

anderer Formate überführen, ihre Metadaten<br />

anpassen <strong>und</strong> auch ein Titelblatt in<br />

die Datei einfügen.<br />

Calibre wird betriebssystemgemäß installiert.<br />

Unter <strong>Linux</strong> <strong>und</strong> FreeBSD befindet<br />

es sich <strong>im</strong> Software-Repository,<br />

unter <strong>Windows</strong> <strong>und</strong> MacOS lädt man die<br />

Installationsdatei von [7] herunter <strong>und</strong><br />

führt sie aus. Danach startet man das<br />

Programm. Bei diesem ersten Start der<br />

Anwendung wird sie gr<strong>und</strong>konfiguriert<br />

(die Gr<strong>und</strong>konfiguration kann aber später<br />

über den Schalter »Einstellungen« <strong>und</strong> <strong>im</strong><br />

anschließenden Konfigurationsdialog mit<br />

der Schaltfläche »Willkommens‐Assistenten<br />

ausführen« auch geändert werden).<br />

Die wichtigste Einstellung <strong>im</strong> Willkom-<br />

werden <strong>und</strong> die gewünschte Klasse dem ersten<br />

Buchstaben des normalen Texts <strong>im</strong> Kapitel mit<br />

der Anweisung »H«<br />

oder »H« zugewiesen<br />

werden. Man sollte sich jedoch ernsthaft<br />

überlegen, ob man Initiale wirklich benötigt,<br />

denn sie werden zwar in ePub, nicht aber in<br />

MOBI-Dateien verarbeitet. Auf dem Kindle sieht<br />

der Kapitelanfang der umgewandelten Datei<br />

dann nicht mehr so schön aus.<br />

Wegen des zusätzlichen Arbeitsaufwands in<br />

Sigil sollte man manuelle Ergänzungen auch<br />

nur in Betracht ziehen, wenn der Originaltext<br />

in Writer nicht mehr geändert werden muss.<br />

Be<strong>im</strong> nächsten Generieren der ePub-Datei gehen,<br />

solange es keinen Writer-Import-Filter für<br />

ePub-Dateien gibt, bekanntlich alle Änderungen<br />

des letzten Sigil-Laufs verloren.<br />

mens-Assistenten ist die Position <strong>im</strong><br />

Dateisystem für die lokale Bibliothek, in<br />

der Calibre alle ihm zugeordneten elektronischen<br />

Bücher verwaltet. Bei der Auswahl<br />

des Readers ist zu beachten, dass<br />

dies Auswirkungen auf die Konvertierung<br />

hat. Belässt man es bei der Voreinstellung,<br />

weil man entweder keinen oder<br />

einen nicht aufgeführten Reader einstellt,<br />

werden alle Farbbilder bei der Konvertierung<br />

wegen des nicht-farbfähigen E-<br />

Ink-Reader automatisch in Graustufen<br />

umgewandelt werden.<br />

Ungewohnt<br />

Die Bedienung von Calibre ist sehr gewöhnungsbedürftig,<br />

das Programm besitzt<br />

keine Menüs. Gesteuert wird es mit<br />

einer Reihe von Icons, die Konfigurationsdialoge<br />

öffnen. Neue eBooks werden<br />

Calibre durch Drag-and-Drop der Dateien<br />

in das Bibliotheksfenster bekanntgegeben<br />

<strong>und</strong> der Metadatendialog durch Druck<br />

Listing 4: Initiale<br />

01 .dropcap {<br />

02 float: left;<br />

03 font‐size: 3em;<br />

04 line‐height: 0.8em;<br />

05 margin‐right: 3pt;<br />

06 margin‐bottom: ‐0.2em;<br />

07 font‐style: normal;<br />

08 font‐weight: lighter;<br />

09 }<br />

Listing 3: Font-Namen<br />

01 .Fraktur<br />

02 {<br />

03 font‐family : "LeipzigFrakturNormal", serif;<br />

04 font‐size: 1.17em;<br />

05 text‐indent: 1.06em;<br />

06 text‐align: justify;<br />

07 }<br />

Listing 2: Schriftdefinition<br />

01 @font‐face{<br />

02 font‐family: "LeipzigFrakturNormal";<br />

03 font‐weight: normal;<br />

04 font‐style: normal;<br />

05 src:url(../Fonts/leipzig.otf);<br />

06 }<br />

07 @font‐face{<br />

08 font‐family: "LeipzigFrakturBold";<br />

09 font‐weight: normal;<br />

10 font‐style: normal;<br />

11 src:url(../Fonts/leipzigb.otf);<br />

12 }<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

123


ePub<br />

Abblldung 4: Die Metadatenbearbeitung in Calibre unter <strong>Windows</strong> XP mit dem Hinzufügen des Titels.<br />

auf den Schalter »Metadatendaten bearbeiten«<br />

aufgerufen. Abbildung 4 zeigt<br />

das Programmfenster unter <strong>Windows</strong><br />

XP, es sieht aber auf allen Plattformen<br />

identisch aus. Die untere Hälfte des Metadatendialogs<br />

widmet sich dem bereits erwähnten<br />

Deckblatt, hier wurde nur eine<br />

einfache Grafik ausgesucht, der Schalter<br />

»Umschlagbild erstellen« legt ein Umschlagbild<br />

in den richtigen D<strong>im</strong>ensionen<br />

mit einem Standard-Calibre-Bild, dem<br />

Namen des Autors <strong>und</strong> des Buchs an. Es<br />

ist aber besser, den eigentlichen Entwurf<br />

des Titelblatts in einer Grafikanwendung<br />

wie beispielsweise G<strong>im</strong>p vorzunehmen.<br />

Der endgültige Dateiname der ePub-Datei<br />

wird von Calibre be<strong>im</strong> Einsortieren in die<br />

Bibliothek nach der eBook-Norm vergeben<br />

<strong>und</strong> besteht aus dem Titel des Buchs,<br />

aus den Metadaten <strong>und</strong> dem Namen des<br />

Autors. Die Originaldatei wird von Calibre<br />

nicht verändert <strong>und</strong> ist ab sofort<br />

veraltet. Calibre ist auch deshalb wichtig,<br />

weil es einen eBook-Reader enthält, in<br />

dem man sehr viel besser als mit Sigil<br />

das Ergebnis der Arbeiten prüfen kann<br />

Abbildung 5: Der eBook-Betrachter von Calibre (hier unter Mac OS X) ist sehr komfortabel <strong>und</strong> gibt einen<br />

guten Eindruck von der Datei.<br />

<strong>und</strong> weil man die Datei damit in weitere<br />

Formate exportiert (Abbildung 5).<br />

Für die Anzeige der Datei gibt es aber<br />

viele weitere E-Reader-Emulatoren, darunter<br />

eine PC-Version des Sony-Readers<br />

[11] <strong>und</strong> einen Kindle Previewer für PC<br />

von [12]. Sehr empfehlenswert ist weiterhin<br />

das Mozilla-ePub-Addon von [8], das<br />

sogar eine Verwaltung für Online-Bücher<br />

enthält. Für den Kindle muss das Buch<br />

ins mobi-Format umgewandelt werden.<br />

Calibre n<strong>im</strong>mt die Konvertierung in dieses<br />

<strong>und</strong> weitere Formate problemlos vor.<br />

Jetzt fehlt nur noch die Übertragung auf<br />

einen oder mehrere eReader für den endgültigen<br />

Test. Das geht auch mit Calibre,<br />

manuelles Kopieren ist aber erheblich bequemer,<br />

insbesondere wenn die Bücher<br />

auf dem Lesegerät strukturiert abgelegt<br />

sein sollen. (ofr)<br />

n<br />

Infos<br />

[1] ePub-Standard: [http:// idpf. org]<br />

[2] Writer2ePub: [http:// lukesblog. it/ ebooks/​<br />

ebook‐tools/ writer2epub]<br />

[3] Writer2ePub bei Apache OpenOffice:<br />

[http:// extensions. openoffice. org/ en/​<br />

project/ Writer2ePub]<br />

[4] Sigil: [https:// code. google. com/ p/ sigil/]<br />

[5] Binäre Sigil-Downloads für <strong>Linux</strong>: [http://​<br />

code. google. com/ p/ sigil/ downloads/ list]<br />

[6] Sigil-Dokumentation: [http:// www.​<br />

kraussverlag. de/ sigil‐auf‐deutsch. htm]<br />

[7] Calibre: [http:// calibre‐ebook. com]<br />

[8] ePubReader für Firefox <strong>und</strong> Seamonkey:<br />

[http:// www. epubread. com/ de/]<br />

[9] EPUBCheck:<br />

[http:// code. google. com/ p/ epubcheck/]<br />

[10] Sony Reader für <strong>Windows</strong> <strong>und</strong><br />

Mac OS X: [http:// www. sony. de/ hub/​<br />

reader‐library‐software]<br />

[11] KindleGen: [http:// www. amazon. com/ gp/​<br />

feature. html? ie=UTF8& docId=1000765211]<br />

[12] Angaben zur Schriftgrößeneinheit „em“:<br />

[http:// de. wikipedia. org/ wiki/ Em_(Schriftsatz]<br />

[13] DJVU-Reader:<br />

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

[14] <strong>Windows</strong>-Reader für verschiedene Comic-<br />

Book-Formate:<br />

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

[15] Wikipedia-Seite zu ePub: [http:// de.​<br />

wikipedia. org/ wiki/ EPUB]<br />

[16] Leipzig-Fraktur: [http:// www. myfont. de/​<br />

download. php? winfont=leipzig‐fraktur&​<br />

type=zip]<br />

124 Ausgabe 02-2013 Admin www.admin-magazin.de


JETZT<br />

MIT DVD!<br />

MAGAZIN<br />

Sonderaktion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Jetzt schnell bestellen:<br />

• Telefon 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

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

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

Mit großem Gewinnspiel unter:<br />

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

Gewinnen Sie...<br />

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

Einsendeschluss ist der 15.03.2013


© Anna Ivanova, 123RF<br />

Fedora 18 als Server-Distribution<br />

Testlabor<br />

Fedora ist eine richtungsweisende Distribution, gibt sie doch den Takt für<br />

künftige Entwicklungen in Red Hat Enterprise <strong>Linux</strong> vor. Administratoren<br />

sind, ob sie Fedora nutzen oder nicht, gut beraten, einen Blick auf die aktuellen<br />

Innovationen der Fedora-Distribution zu werfen. Thomas Drilling<br />

Das neueste Fedora-Release musste mit<br />

mehr als zwei Monaten Verspätung ins<br />

Rennen um die Gunst der Anwender gehen.<br />

Dass sich Fedora 18 nach ersten<br />

Tests je nach Einschätzung als „extrem<br />

buggy“ oder „völlig unbrauchbar“ erwies,<br />

hat die Situation kaum verbessert.<br />

Die Kritik bezieht sich aber vorrangig auf<br />

den Desktop-Einsatz <strong>und</strong> dort vor allem<br />

auf Fehler in der neuen Gnome-Version<br />

3.6.2, sowie den massiv überarbeiteten<br />

Anaconda-Installer. Unter der Oberfläche<br />

finden sich eine ganze Reihe von Neuerungen,<br />

die für ambitionierte Anwender<br />

<strong>und</strong> Administratoren von Interesse sind.<br />

Desktops nach Wahl<br />

Aus Sicht von Admins <strong>und</strong> Entwicklern<br />

bietet Fedora 18 insbesondere <strong>im</strong> Hinblick<br />

auf den Einsatz als Server beziehungsweise<br />

als Virtualisierungs- <strong>und</strong> Cloud-<br />

Management-Plattform einen interessantem<br />

Ausblick auf neue Entwicklungen.<br />

Die zu Recht thematisierten Defizite für<br />

den Desktop-Einsatz (Anaconda-Installer<br />

<strong>und</strong> Gnome) sind für den Admin weniger<br />

schwerwiegend, denn einerseits bietet<br />

Fedora 18 mit KDE SC 4.92, Cinnamon<br />

1.6.7, XFCE 4.10 <strong>und</strong> Mate ausreichend<br />

stabile Alternativen, <strong>und</strong> andererseits<br />

können die meisten Server-Admins wohl<br />

auch ganz auf eine grafische Oberfläche<br />

verzichten.<br />

Im Übrigen steht Fedora 18 nicht nur<br />

in der Standard-Version als installierbare<br />

Live-CD mit Gnome-Desktop zur Vefügung,<br />

sondern auch als für diesen Test<br />

verwendete, direkt installierbare DVD-<br />

Variante <strong>und</strong> in Form von Spins für KDE<br />

<strong>und</strong> XFCE. Der Gnome3-Fork Cinnamon<br />

<strong>und</strong> der Gnome2-Fork Mate lassen sich,<br />

genau wie KDE <strong>und</strong> XFCE, alternativ<br />

aus einem Standard-Fedora-System mit<br />

Gnome 3.6.2 einfach nachinstallieren.<br />

Anaconda bändigen<br />

Trotz aller Mängel des Installers sollte<br />

es jedem Admin gelingen, Fedora 18 mit<br />

dem neuen Installer in der gewünschten<br />

Art <strong>und</strong> Weise (Partitionierung) zu<br />

installieren, auch wenn sich verfügbare<br />

Updates nicht während der Installation<br />

einspielen lassen. Diese Funktion des alten<br />

Anaconda ließ sich aus Zeitgründen<br />

nicht mehr in Fedora 18 integrieren, soll<br />

aber mit Fedora 19 zurückkommen.<br />

Die Kritik am optisch überarbeiteten<br />

Anaconda bezieht sich vor allem auf die<br />

manuelle Partitionierung des Festplattenspeichers.<br />

Anwendern beschert er dank<br />

geschickter Voreinstellungen <strong>und</strong> automatischer<br />

Partitionierung schneller als<br />

bisher ein benutzbares System mit einem<br />

Min<strong>im</strong>um an Benutzer-Interaktion. Der<br />

Boot-Sperre<br />

Auf Rechnern, die für <strong>Windows</strong> 8 zertifiziert<br />

sind, müssen Betriebssysteme mit einem von<br />

Microsoft stammenden Schlüssel signiert werden,<br />

wenn UEFI Secure Boot aktiviert ist. Für<br />

die <strong>Linux</strong>-Welt ist dies ein Problem, denn <strong>Linux</strong><br />

bootet auf solcher Hardware nicht mehr ohne<br />

Weiteres. Die Lösung sieht bei Fedora 18 so aus<br />

[14], dass Fedora einen mit Zertifikaten von<br />

Microsoft signierten Bootloader verwendet. Fedora<br />

geht allerdings einen Schritt weiter als der<br />

von Canonical mit Ubuntu 12.10 eingeführte Ansatz,<br />

bei dem lediglich die Boot-Loader signiert<br />

sind, nicht aber der Kernel.<br />

Gegenüber Canonicals Vorgehen, das lediglich<br />

sicherstellt, dass sich Ubuntu auf <strong>Windows</strong>-8-<br />

PCs starten lässt, schützt Fedoras Ansatz tatsächlich<br />

auch vor Schadsoftware, die sich schon<br />

vor dem Booten des Betriebssystems aktiviert,<br />

worin laut Microsoft der pr<strong>im</strong>äre Zweck von Secure<br />

Boot besteht. Der bei Fedora 18 Microsoftsignierte<br />

Boot-Loader lädt ausschließlich die<br />

von Fedora signierten <strong>Linux</strong>-Kernel <strong>und</strong> die ihrerseits<br />

signierten Module. Damit ist bei Fedora<br />

die vollständige Boot-Kette abgesichert.<br />

Die Methode birgt jedoch gerade für Desktop-Anwender<br />

gravierende Nachteile, denn mit Fedora<br />

18 ist es bei aktiviertem Secure-Boot unmöglich,<br />

proprietäre Grafiktreiber von Nvidia oder ATI zu<br />

laden. Möchte der Desktop-Anwender dennoch<br />

proprietäre Grafiktreiber einsetzen, muss er<br />

Secure Boot in der UEFI-Firmware deaktivieren.<br />

Eine weitere Alternative bestünde allenfalls darin,<br />

den Kernel mit selbst erzeugten Signaturen<br />

auszustatten <strong>und</strong> <strong>im</strong> Setup als vertrauenswürdig<br />

bekannt zu machen. Mehr Einzelheiten zum<br />

Thema UEFI Secure-Boot <strong>und</strong> Fedora lassen sich<br />

<strong>im</strong> „UEFI Secure Boot Guide“ [15] des Fedora-<br />

Projekts, sowie <strong>im</strong> Blog des Fedora-Kernel-Entwickler<br />

Josh Boyer [16] nachlesen.<br />

126 Ausgabe 02-2013 Admin www.admin-magazin.de


Fedora 18<br />

Abbildung 1: Fedora 18 unterstützt das neue Brtfs-Dateisystem auch bei der Boot-Partition zuverlässig –<br />

sofern sie mindestens acht GByte groß ist.<br />

Installer kopiert <strong>im</strong> Hintergr<strong>und</strong> bereits<br />

Dateien, während der Benutzer noch<br />

fehlende oder optionale Einstellungen<br />

vorn<strong>im</strong>mt, etwa die Zeitzone, das Gebietsschema<br />

oder das Root-Passwort.<br />

Zum manuellen Partitionieren klickt man<br />

<strong>im</strong> Anaconda-Startbildschirm auf »INS-<br />

TALLATIONSZIEL« <strong>und</strong> markiert dann<br />

in der Liste »Lokale Standard‐Speichermedien«<br />

das gewünschte Gerät. Optional<br />

liefert der Link »Ausführliche Festplatten‐Zusammenfassung<br />

<strong>und</strong> Optionen«<br />

weitere Informationen zu den oben markierten<br />

Devices. Ein Klick auf »Weiter«<br />

führt zunächst zu den »INSTALLATIONS-<br />

OPTIONEN«, in denen Anaconda <strong>im</strong> Beispiel<br />

darauf hinwies, dass auf der frisch<br />

angelegten virtuellen SCSI-Platte genügend<br />

freier Platz für die automatische<br />

Partitionierung vorhanden sei.<br />

Wer trotzdem manuell partitionieren<br />

möchte, muss zunächst den Knoten<br />

»Konfiguration des Partitionsschemas«<br />

ausklappen <strong>und</strong> dann den Partitionstyp<br />

wählen, wobei neben »Standard‐Partitionen«<br />

auch LVM <strong>und</strong> Btrfs zur Verfügung<br />

stehen. Mithilfe einer unscheinbaren<br />

Checkbox ist es auch möglich, die Partition<br />

zu verschlüsseln.<br />

Die derzeitige Kritik am Partitionier-Modul<br />

bezieht sich zum Beispiel auf die<br />

Bedienbarkeit, die zumindest aus Anwendersicht<br />

umständlicher ist, als be<strong>im</strong><br />

alten Anaconda. Schwerwiegender sind<br />

allerdings einige Bugs <strong>im</strong> neuen Anaconda<br />

[4]. So stürzte das Programm<br />

beispielsweise be<strong>im</strong> Test <strong>im</strong> Zusammenhang<br />

mit der gewählten Btrfs-Partition<br />

reproduzierbar ab, weil sie offenbar zu<br />

Ein neuer, über D-Bus steuerbarer IP-<br />

Tables-Daemon namens »firewalld« [10]<br />

kümmert sich nun um die Firewall-<br />

Regeln. Er unterstützt unter anderem<br />

verschiedene Sicherheitszonen, wie beiklein<br />

war. Der Grenzwert für diesen Bug<br />

liegt laut Fedora-Wiki bei 8 GByte. Im<br />

zweiten Versuch lief die Installation mit<br />

einer größeren Btrfs-Partition einwandfrei<br />

durch, <strong>und</strong> Btrfs erwies sich <strong>im</strong> laufenden<br />

Betrieb als stabil (Abbildung 1).<br />

Auch das unten erläuterte neue Tool zur<br />

Datenträgerverwaltung „System Storage<br />

Manager“ (SSM) kam problemlos mit<br />

Btrfs zurecht.<br />

Nach der Installation sorgen die erstmals<br />

signierten Bootloader <strong>und</strong> Kernel dafür,<br />

dass <strong>Linux</strong> auf per UEFI Secure-Boot<br />

gesicherten Rechnern überhaupt bootet<br />

(siehe den Kasten Boot-Sperre).<br />

DNF-Paketmanger<br />

Fedora 18 enthält ein neues Paketverwaltungs-Tool<br />

DNF [1], das auf dem Code<br />

von Yum 3.4 basiert <strong>und</strong> Yum in einer<br />

der kommenden Fedora-Versionen vollständig<br />

ersetzen soll. DNF nutzt jetzt wie<br />

auch Open Suse die Bibliothek Libsolv<br />

[2] zum zuverlässigeren Auflösen von<br />

Abbildung 2: Fedora 18 bringt ein neues Paket-Werkzeug DNF mit.<br />

Abhängigkeiten. DNF <strong>und</strong> Yum basieren<br />

zudem in Fedora 18 auf der RPM-<br />

Version 4.10, die stabiler <strong>und</strong> schneller<br />

sein soll als der Vorgänger. Außerdem<br />

enthalten zahlreiche RPM-Pakete jetzt<br />

Informationen [3], mit deren Hilfe der<br />

Anwender beziehungsweise ein Debugger<br />

schneller erkennen kann, in welchem<br />

Teil des Codes sich das Problem verbirgt.<br />

Zwar steckt nach wie vor der vollständige<br />

Satz an Debugging-Informationen<br />

in den Debuginfo-Paketen, die sind dank<br />

besserer Dwarf-Kompression aber jetzt<br />

kleiner [4].<br />

Systemd 195<br />

Fedora 18 verwendet zur Systemstart-<br />

Initialisierung die Systemd-Version 195,<br />

die eine Reihe neuer Kommandozeilen-<br />

Tools zur Systemkonfiguration mitbringt.<br />

So dient etwa »t<strong>im</strong>edatectl« der Konfiguration<br />

von Zeitzone <strong>und</strong> Systemzeit,<br />

während sich »localectl« der Systemsprache<br />

<strong>und</strong> dem Tastaturlayout widmet <strong>und</strong><br />

»hostnamectl« zum Konfigurieren des<br />

Systemnamens zum Einsatz kommt. Für<br />

einige dieser Einstellungen kamen bei der<br />

Vorgängerversion Konfigurationsdateien<br />

in »/etc/sysconfig« zum Einsatz. Deren<br />

Anzahl hat sich daher bei Fedora 18 verringert.<br />

Neu an Systemd 195 ist, dass der<br />

Admin jetzt mit »systemctl« auch festlegen<br />

kann, welcher Display-Manager als<br />

grafischer Login-Bildschirm dienen soll.<br />

Firewalld<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

127


Fedora 18<br />

spielsweise öffentliches WLAN, He<strong>im</strong>oder<br />

Unternehmensnetz <strong>und</strong> verwendet<br />

dann jeweils automatisch andere Regeln.<br />

Konfigurieren lässt sich der Dienst mit<br />

dem grafischen Tool »firewall‐config«<br />

(Abbildung 3) oder dem Kommandozeilenwerkzeug<br />

»firewall‐cmd«. Dessen<br />

Oberfläche ist nicht vollständig lokalisiert,<br />

sodass die erwähnten Sicherheitszonen<br />

bislang »home«, »work«, »public«<br />

<strong>und</strong> »trusted« heißen.<br />

Weitere Neuerungen<br />

Fedora 18 enthält auch das aktuelle<br />

<strong>Samba</strong> 4, das einen Active-Directory-<br />

Verzeichnisdienst in einer <strong>Windows</strong>-<br />

Domäne realisiert. Ferner liegt Fedora 18<br />

das GCC-Plugin DragonEgg [6] bei, das<br />

GCC in die Lage versetzt, die Compiler-<br />

Infrastruktur LLVM zu verwenden. Das<br />

kann beispielsweise für Cross-Plattform-<br />

Entwicklung <strong>und</strong> Opt<strong>im</strong>ierungszwecke<br />

nützlich sein.<br />

Darüber hinaus liefert Fedora 18 die<br />

fehlertolerante <strong>und</strong> skalierbare NoSQL-<br />

Datenbank Riak mit. Spätestens mit<br />

Fedora 19 soll MariaDB dann MySQL als<br />

Standard-Datenbank ablösen.<br />

Fedora 18 enthält als eine der ersten Distributionen<br />

das Tool NFSometer [7], ein<br />

Framework zur Performance-Messung inklusive<br />

Reporting für alle aktuellen Versionen<br />

des NFS-Protokolls. NFSometer<br />

beherrscht alle wichtigen NFS-Optionen<br />

<strong>und</strong> berücksichtigt die Besonderheiten<br />

der speziellen NFS-Client-Implementationen<br />

unter <strong>Linux</strong>. NFSometer wurde<br />

ursprünglich als Projekt bei Netapp als<br />

Verfahren zum automatisierten Performance-Testing<br />

unter <strong>Linux</strong> entwickelt,<br />

hat inzwischen aber zahlreiche zusätzliche<br />

Features sowie die Reporting-Schnittstelle<br />

erhalten <strong>und</strong> steht jetzt unter der<br />

GPLv2-Lizenz. Ferner enthält Fedora 18<br />

das Trace-Tool Systemtap [8] in der Version<br />

2 sowie das <strong>Linux</strong> Trace Toolkit Next<br />

Generation (LTTng) [9].<br />

Installiert man Fedora 18 als Gastsystem,<br />

unterstützt KVM jetzt auch Suspend-to-<br />

RAM sowie Suspend-to-Disk, sogar bei<br />

aktiven Virtio-Treibern. Auch das Anlegen<br />

von Snapshots bei laufenden Gastsystemen<br />

soll möglich sein. Für das Einrichten<br />

von Clouds liefert Fedora sowohl<br />

Eucalyptus 3.2 als auch Open Stack „Folsom“<br />

mit; bekanntlich engagiert sich Red<br />

Hat seit einiger Zeit auch in der Open-<br />

Stack-Fo<strong>und</strong>ation.<br />

Ovirt-Framework<br />

Fedora 18 bringt zudem das Ovirt-Framework<br />

in der aktuellen Version 3.1 mit.<br />

Mithilfe der Ovirt-Engine lässt sich eine<br />

komplexe, Hersteller-unabhängige Cloud-<br />

Management-Umgebung aufsetzen. Das<br />

<strong>ADMIN</strong>-<strong>Magazin</strong> hat das Framework in<br />

Heft 05/​12 [10] ausführlich vorgestellt.<br />

Die Ovirt-Version 3.1 in Fedora 18 unterstützt<br />

jetzt Live Snapshots, Shared Disks,<br />

External Disks, CPU-Pinning, Jumbo<br />

Frames, „Prestarted“ Virtual-Machine-<br />

Pools <strong>und</strong> Quotas sowie das Klonen virtueller<br />

Maschinen von einem Snapshot.<br />

Ferner unterstützt Ovirt 3.1 Hotplugging<br />

bei Disk- <strong>und</strong> Network-Interfaces <strong>und</strong><br />

Posix File System Storage. Darüber hinaus<br />

n<strong>im</strong>mt das Ovirt-Framework auf<br />

Wunsch Kontakt mit Red Hat Directory<br />

Server oder IBMs Tivoli Directory Server<br />

auf <strong>und</strong> kann auch Remote-Datenbanken<br />

verwenden. Außerdem ist es jetzt<br />

<strong>im</strong> All-One-Betrieb möglich, Engine <strong>und</strong><br />

Hypervisor auf der gleichen Maschine<br />

zu betreiben.<br />

VirtSandbox<br />

Das in unserem Beitrag zu Fedora 17 [11]<br />

vorgestellte Tool »virt‐sandbox‐server«<br />

ermöglicht das Aufsetzen sicherer Container-Umgebungen,<br />

in denen ein Dienst<br />

abgeschottet vom Rest des Systems läuft.<br />

Virtsandbox ermöglicht es dem Admin,<br />

einzelne Applikationen mithilfe von KVM<br />

(oder wahlweise mit LXC) in eine abgesicherte<br />

Sandbox einzusperren, ähnlich<br />

wie das auch andere Sandbox-Lösungen<br />

tun, etwa die seit 2009 in Fedora <strong>und</strong><br />

Red Hat ebenfalls enthaltene SE<strong>Linux</strong>-<br />

Sandbox.<br />

Virtsandbox basiert auf virtuellen Maschinen.<br />

Der Clou besteht dabei darin,<br />

dass ein explizites Einrichten eines Betriebssystems<br />

in der VM nicht notwendig<br />

ist, weil der VM-Kernel mithilfe des<br />

Plan9fs (Plan 9 File System) Teile des<br />

Host-Dateisystems direkt lesen kann. Damit<br />

ist auch der Overhead der Lösung<br />

sehr klein, sodass der zeitliche Aufwand<br />

zum Starten einer mithilfe der VirtSandbox<br />

eingesperrten Anwendung kaum ins<br />

Gewicht fällt – Red Hat spricht von max<strong>im</strong>al<br />

drei Sek<strong>und</strong>en gegenüber dem nativen<br />

Start der gleichen Applikation.<br />

In der KVM-Variante startet Virtsandbox<br />

den Kernel samt Initramfs in einer VM,<br />

die ihrerseits nach dem Booten die eigentliche<br />

Anwendung aufruft. Laut Red<br />

Hat erfolgt der Zugriff auf die CPU bei<br />

Virtsandbox weitgehend ohne Performance-Einbußen,<br />

während der Zugriff<br />

auf Geräte mit r<strong>und</strong> 90 Prozent der Geschwindigkeit<br />

erfolgt. Die Einrichtung<br />

der Sandbox erledigt der Admin über<br />

das Tool »virt‐sandbox« <strong>und</strong> legt dabei<br />

Abbildung 3: Fedora 18 bringt einen neuen Firewall-Daemon nebst grafischer Oberfläche zur Konfiguration mit.<br />

128 Ausgabe 02-2013 Admin www.admin-magazin.de


Fedora 18<br />

Abbildung 4: Der neue System Storage Manager vereinfacht das Verkleinern logischer Volumes ungemein.<br />

beispielsweise fest, welche Netzwerk-<br />

Ressourcen in der Sandbox zur Verfügung<br />

stehen. Einsatzmöglichkeiten sind<br />

viele denkbar, etwa das Einsperren des<br />

gesamten Webbrowsers in den virtuellen<br />

Sandkasten für sicheres Online-Banking.<br />

System Storage Manager<br />

Sehr interessant ist auch der neue System<br />

Storage Manager (SSM) [12], mit<br />

dem Admins zahlreiche Aufgaben zur<br />

Datenträgerkonfiguration in einheitlicher<br />

Syntax erledigen können, statt Tools wie<br />

»fdisk«, »btrfs«, »cryptsetup«, »lvm2«,<br />

»mdadm« oder »resize2fs« miteinander<br />

kombinieren zu müssen. So kann der<br />

Fedora-Admin zum Beispiel mit der Option<br />

»create« Ext3-, Ext4-, XFS- <strong>und</strong> Btrfs-<br />

Volumes anlegen oder sie mit »check«<br />

überprüfen.<br />

Die Option »snapshot« legt einen Snapshot<br />

an, wenn der Datenspeicher dies unterstützt.<br />

SSM kann auch LVM-, RAID oder<br />

Btrfs-Pools erstellen, erweitern oder löschen<br />

<strong>und</strong> mit »list« Geräte, Volumes<br />

oder LVM-/​RAID-/​Btrfs-Pools auflisten.<br />

Per »resize« vergrößert <strong>und</strong> verkleinert<br />

»ssm« Volumes (Abbildung 4) <strong>und</strong>/​oder<br />

Dateisysteme, »remove« löscht sie auf<br />

Wunsch. Die Befehle sind weitgehend<br />

selbsterklärend. Weitere Informationen<br />

liefert »man ssm«.<br />

Muss der Admin etwa für das Anlegen<br />

logischer Volumes in einer LVM-Volumegroup<br />

be<strong>im</strong> klassischen Vorgehen die<br />

Kommandos »fdisk«, »mkfs«, »pvcreate«,<br />

»vgcreate«, »vgdisplay«, »lvcreate« <strong>und</strong><br />

»lvdisplay« verwenden, genügt mit SSM<br />

ein einziger Befehl. Zunächst verschafft<br />

»ssm list« eine Übersicht sämtlicher verfügbaren<br />

Geräte, neben physischen auch<br />

bereits existente LVM-Groups oder RAID-<br />

Verbünde.<br />

Die LVM-Gruppe für die Fedora-Partition<br />

<strong>im</strong> Beispiel legt Anaconda übrigens be<strong>im</strong><br />

automatischen Partitionieren an, ebenso<br />

wie die 500 MByte große, nicht zur LVM-<br />

Gruppe gehörige Boot-Partititon. Das<br />

Anlegen eines neuen logischen LVM-Volumes<br />

kann dann ganz einfach mit<br />

ssm create ‐s 4G ‐‐fstype ext4 /dev/sdb<br />

erfolgen. Das Kommando legt <strong>im</strong> Beispiel<br />

ein logisches Volume von 4 GByte<br />

Größe an <strong>und</strong> formatiert es mit Ext4. Die<br />

dazu erforderliche Volume-Group »/dev/<br />

lvm_pool« legt das Kommando ebenfalls<br />

automatisch an, was sich leicht mit dem<br />

in Fedora ebenfalls enthaltenen grafischen<br />

Logical Volume Manager verifizieren<br />

lässt, sofern das Paket »system‐config‐vlm«<br />

installiert ist.<br />

Das Tool stellt in vielen Szenarien eine<br />

enorme Arbeitserleichterung da, weil es<br />

viele Dinge automatisch erledigt, etwa<br />

das Anlegen einer Volumegroup be<strong>im</strong><br />

Erzeugen eines logischen Volumes oder<br />

das Anlegen physischer Volumes be<strong>im</strong><br />

Erweitern einer Volumegroup. Umgekehrt<br />

ist es jedoch nicht möglich, etwa<br />

eine LVM- Volumegroup einfach nur anzulegen,<br />

ohne automatisch Volumes zu<br />

erzeugen, wie be<strong>im</strong> Verwenden der klassischen<br />

Werkzeuge. Das Wiederherstellen<br />

von LVM-Snapshots funktioniert mit<br />

SSM ebenfalls noch nicht. Leider zeigt<br />

SSM auch nicht an, welche der zugr<strong>und</strong>e<br />

liegenden Tools es selbst verwendet.<br />

Fazit<br />

Fedora 18 beinhaltet aus Admin-Sicht wie<br />

<strong>im</strong>mer ein Füllhorn neuer Open-Source-<br />

Technologie <strong>und</strong> neuer Funktionen.<br />

Großes Potenzial steckt zweifelsohne<br />

<strong>im</strong> Ovirt-Framework. Dass Fedora mit<br />

Eucalyptus <strong>und</strong> Open Stack gleich zwei<br />

Private-Cloud-Architekturen unterstützt,<br />

zeigt entweder, dass man dem Admin/​<br />

Anwender größtmögliche Freiheit einräumt,<br />

oder dass sich die Planer nicht<br />

sicher sind, wohin die Reise geht. In der<br />

Open-Source-Community hat derzeit<br />

Open Stack mehr Anhänger als Eucalyptus<br />

<strong>und</strong> Open Nebula.<br />

Besonders gut gefallen hat uns auch das<br />

neue Tool System Storage Manager, das<br />

für viele Admins eine erhebliche Arbeitserleichterung<br />

darstellt. Die Anlaufschwierigkeiten<br />

von Fedora 18 insbesondere <strong>im</strong><br />

Anwender-Bereich werden den Admin<br />

kaum beunruhigen. Wie üblich werden<br />

die noch vorhandenen Bugs gefixt werden,<br />

denn Fedora 18 ist die Basis für die<br />

kommende Version 7 von Red Hat Enterprise<br />

<strong>Linux</strong> [13]. (ofr)<br />

n<br />

Infos<br />

[1] DNF: [http:// fedoraproject. org/ wiki/​<br />

Features/ DNF]<br />

[2] Libsolv:<br />

[https:// github. com/ openSUSE/ libsolv]<br />

[3] MiniDebugInfos: [http:// fedoraproject.​<br />

org/ wiki/ Features/ MiniDebugInfo]<br />

[4] DwarfCompressor: [http:// fedoraproject.​<br />

org/ wiki/ Features/ DwarfCompressor]<br />

[5] Firewalld: [http:// fedoraproject. org/ wiki/​<br />

Features/ firewalld‐default]<br />

[6] DragonEgg: [http:// fedoraproject. org/​<br />

wiki/ Features/ DragonEgg]<br />

[7] NFSometer: [https:// fedoraproject. org/​<br />

wiki/ Features/ NFSometer]<br />

[8] SystemTap: [http:// fedoraproject. org/​<br />

wiki/ Features/ Systemtap2]<br />

[9] <strong>Linux</strong> Trace Toolkit Next<br />

Generation:[https:// lttng. org/]<br />

[10] Thomas Drilling, Wirtshaus, <strong>ADMIN</strong> 05/​12:<br />

[http:// www. admin‐magazin. de/ Das‐Heft/​<br />

2012/ 05/ Verwaltung‐virtueller‐Infrastrukt<br />

uren‐mit‐oVirt‐3. 1]<br />

[11] Thomas Drilling, An vorderster<br />

Front, <strong>ADMIN</strong> 04/​2012: [http:// www.​<br />

admin‐magazin. de/ Das‐Heft/ 2012/ 04/ Fed<br />

ora‐17‐bringt‐Ovirt‐Management‐Framewo<br />

rk‐fuer‐Virtualisierungs‐Stack]<br />

[12] System Storage Manager: [https://​<br />

fedoraproject. org/ wiki/ Features/​<br />

SystemStorageManager]<br />

[13] RHEL7-Roadmap:<br />

[http:// rhsummit. files. wordpress. com/​<br />

2012/ 03/ burke_rhel_roadmap. pdf]<br />

[14] Fedora Secure Boot: [http:// fedoraproject.​<br />

org/ wiki/ Features/ SecureBoot]<br />

[15] Fedora Secure Boot Guide:<br />

[http:// docs. fedoraproject. org/ en‐US/​<br />

Fedora/ 18/ html‐single/ UEFI_Secure_Boot_<br />

Guide/ index. html]<br />

[16] Blog Josh Boyer: [http:// jwboyer.​<br />

livejournal. com/ 46149. html]<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 02-2013<br />

129


Service<br />

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

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 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/Test<br />

Marcel Hilzinger, mhilzinger@medialinx-gruppe.de, (mhi)<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 Elke Knitter (Schlussredaktion),<br />

Carsten Schnober, T<strong>im</strong> Schürmann, Claudia Thalgott<br />

Produktionsleitung Christian Ullrich, cullrich@medialinx-gruppe.de<br />

Grafik<br />

Kristina Fleischer, Klaus Rehfeld<br />

Titel: Judith Erb, Ausgangsgrafik: Vince Clements, 123RF.com<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

www.admin-magazin.de/abo<br />

Monika Jölly<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 (2 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 € 49,90 € 54,90 Sfr 99,90 € 59,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe € 9,80 € 9,80 Sfr 10,71 € 9,80<br />

DigiSub (6 Ausgaben) € 44,90 € 44,90 Sfr 49,05 € 44,90<br />

DigiSub (zum Printabo) € 6,— € 6,— sfr 6,— € 6,—<br />

HTML-Archiv (zum Abo 1 ) € 48,— € 48,— sfr 48,— € 48,—<br />

Preise Kombiabos<br />

Profi-Abo 2 € 136,60 € 151,70 Sfr 259,90 € 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>-<strong>Magazin</strong>-Abo <strong>und</strong> beiden Jahres-DVDs<br />

Schüler- <strong>und</strong> Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises oder einer aktuellen<br />

Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlängerung neu zu erbringen. Andere Abo-<br />

Formen, Ermäßigungen <strong>im</strong> Ausland etc. auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht für Zeitschriften gelten.<br />

Pressemitteilungen info@admin-magazin.de<br />

Anzeigen/Repräsentanz<br />

Es gilt die Anzeigenpreisliste vom 01.01.2012<br />

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

Pressevertrieb MZV, Moderner Zeitschriften Vertrieb GmbH<br />

Breslauer Straße 5, 85386 Eching<br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Druck<br />

Vogel Druck <strong>und</strong> 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-Packard) oder Sinix<br />

(Siemens) benutzt, nicht als die Bezeichnung für das Trademark von X/Open. <strong>Linux</strong> ist eingetragenes Marken zeichen von<br />

Linus Torvalds <strong>und</strong> wird in unserem Markennamen mit seiner Erlaubnis verwendet. Alle anderen Marken sind Eigentum<br />

der jeweiligen Inhaber. Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung durch<br />

die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von Manu s kripten gibt der Verfasser seine<br />

Zust<strong>im</strong>mung zum Abdruck <strong>im</strong> Admin-<strong>Magazin</strong>. Für unverlangt ein gesandte Manuskripte kann keine Haftung übernommen<br />

werden. Die Redaktion behält sich vor, Artikel zu kürzen. Das Exklusiv- <strong>und</strong> Verfügungsrecht für angenommene<br />

Manuskripte liegt be<strong>im</strong> Verlag. Es darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden. Copyright © 1994–2013 Medialinx AG<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.eins<strong>und</strong>eins.de 7<br />

<strong>ADMIN</strong> http://​www.admin-magazin.de 36, 97, 105<br />

Android User http://​www.android-user.de 33<br />

ConSol Software GmbH http://​www.consol.de 53<br />

Cyberarms L<strong>im</strong>ited http://​cyberarms.net 19<br />

Dell GmbH http://dell.de/growwithus 61<br />

Diavlon GmbH http://​www.tuxhardware.de 39<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 69<br />

Galileo Press http://​www.galileo-press.de 25<br />

IPTAM GmbH http://​www.iptam.com 45<br />

Kettner Mathias - <strong>Linux</strong> Experte http://​www.mathias-kettner.de 13<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 95<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 125<br />

Management Circle GmbH http://​www.managementcircle.de 59<br />

Medialinx IT-Academy http://​www.medialinx-academy.de 79, 83<br />

Messe Berlin GmbH http://​www.linuxtag.org 89<br />

Microsoft GmbH http://​www.microsoft.com/​germany 35<br />

Netways GmbH http://​www.netways.de 63, 99<br />

outbox AG http://​www.outbox.de 41<br />

pascom -<br />

Netzwerktechnik GmbH & Co.KG http://​www.pascom.net 11<br />

PlusServer AG http://​www.plusserver.de 14, 28, 54, 74<br />

Springer Verlag GmbH & Co.KG http://​www.springer.com 85<br />

Strato AG http://​www.strato.de 1, 2<br />

Thomas Krenn AG http://​www.thomas-krenn.com 132<br />

uib GmbH http://​www.uib.de 101<br />

Verion GmbH http://​www.verion.de 131<br />

Webtropia http://​www.webtropia.com/ 9<br />

<strong>Windows</strong> Phone User http://​www.windows-phone-user.de​ 109<br />

Einem Teil dieser Ausgabe liegt eine Beilage der Firma M-Promotion (http://​www.<br />

poland-it.pl) bei. Wir bitten unsere Leser um fre<strong>und</strong>liche Beachtung.<br />

Autoren dieser Ausgabe<br />

Eric Amberg Reisefreiheit 30<br />

Jörg Braun eGutenberg 118<br />

David J. Dodd Der Spürh<strong>und</strong> 86<br />

Thomas Drilling Kuckucksei 56<br />

Thomas Drilling Testlabor 126<br />

Thomas Joos Blick übern Zaun 42<br />

Thomas Joos Des Pudels Kern 70<br />

Stefan Kania <strong>Samba</strong> senkt Verwaltungskosten 46<br />

Martin Loschwitz Gesicherte Ablage 62<br />

Martin Loschwitz Überbreite 102<br />

Vilma Niclas Unter falschem Namen <strong>im</strong> Netz 16<br />

Christian Pape Durchleuchtet 20<br />

Sebastian Saemann Bauhelfer 67<br />

Thorsten Scherf Finde Nemo 20<br />

Michael Schrenk Im Untergr<strong>und</strong> 114<br />

T<strong>im</strong> Schürmann Motortuning 22<br />

T<strong>im</strong> Schürmann Text-Monster 110<br />

Ronny Trommer Durchleuchtet 98<br />

Adam Tauno Williams Generalüberholt 37<br />

Thomas Zeller Einlasskontrolle 90<br />

VORSCHAU<br />

<strong>ADMIN</strong> 03/2013 erscheint am 08. Mai 2013<br />

Web-Techniken<br />

GreenSQL<br />

Einbrüche in Datenbanken erlauben<br />

nicht nur unerwünschte Einblicke<br />

in möglicherweise sensible Daten.<br />

Auch der Zugang zum Betriebssystem<br />

wird den Einbrechern dadurch<br />

möglich. GreenSQL sichert Datenbanken<br />

dagegen ab.<br />

© Ivan Trucic, 123RF<br />

Immer weiter verdrängen Anwendungen<br />

<strong>im</strong> Webbrowser die althergebrachten<br />

Desktop-Programme.<br />

Unser Schwerpunkt stellt Techniken<br />

auf Client- <strong>und</strong> Serverseite vor, die<br />

dabei für bessere Performance <strong>und</strong><br />

mehr Sicherheit sorgen.<br />

© Andrey Bourdioukov, 123RF<br />

130 Ausgabe 02-2013 Admin www.admin-magazin.de


384 GB Arbeitsspeicher<br />

- auf kleinstem Raum<br />

1HE Intel Dual-CPU RI2108 Server<br />

Kompakter Server auf einer Höheneinheit:<br />

Dieser Server bietet 384 GB RAM Arbeitsspeicher <strong>und</strong> Platz für 3 Zusatzkarten.<br />

Angebot sichern unter:<br />

www.thomas-krenn.com/2108<br />

Neue Serverbezeichnungen<br />

Informieren Sie sich jetzt unter:<br />

www.thomas-krenn.com/neu-bezeichnung<br />

nur bei Thomas Krenn ab:<br />

€ 1.969,-<br />

TRY<br />

&<br />

BUY<br />

Diesen <strong>und</strong> andere Thomas Krenn Server<br />

können Sie auch per Try & Buy testen<br />

DE: +49 (0) 8551 9150 - 0<br />

CH: +41 (0) 848207970<br />

AT: +43 (0)732 - 2363 - 0<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen <strong>und</strong> Behörden. Druckfehler, Irrtümer <strong>und</strong> Änderungen in Preis <strong>und</strong> Ausstattung vorbehalten.<br />

Unsere Versandkosten richten sich nach Gewicht <strong>und</strong> Versandart. Genaue Preisangaben finden Sie unter: www.thomas-krenn.com/versandkosten. Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!