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