24.02.2014 Aufrufe

ADMIN Magazin Storage - großer Test (Vorschau)

Erfolgreiche ePaper selbst erstellen

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

NAP: Netzzugang für Tomoyo: Selbst lernendes<br />

Laptops abgesichert Security-Modul für Linux<br />

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

Netzwerk & Security<br />

Windows<br />

X-Server zaubert einen Hauch<br />

Linux in die Windows-Welt<br />

Virtualisierung<br />

n Virtualbox für Server<br />

n VMware-Image maßgeschneidert<br />

Applocker: Sperrt<br />

Windows-Apps<br />

<strong>Storage</strong><br />

Großer <strong>Test</strong>: Passendes NAS finden<br />

NDMP und Alternativen<br />

Speicher mit Ceph und RADOS:<br />

Sehr sicher und skalierbar<br />

Server<br />

03 2012<br />

Mai – Juni.<br />

Auf Heft-CD:<br />

Ubuntu Server<br />

LTS-Version 12.04<br />

VIRTUALISIERUNGs-RubRIK<br />

ab Jetzt in JEDEM HEFT<br />

Aktion zum IPv6-Day<br />

<strong>ADMIN</strong> verschenkt digitales<br />

Sonderheft<br />

Netzwerk<br />

VLAN-Grundlagen<br />

leicht verständlich<br />

PostgreSQL<br />

Speicher für<br />

Indizes optimieren<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 03


globalBusiness:<br />

weltweit mehr<br />

als 4.000 Orte<br />

verfügbar<br />

New York – Berlin zum Ortstarif:<br />

globalBusiness verbindet Sie mit der Welt.<br />

Und so geht’s: Sie erhalten von der outbox AG<br />

eine lokale Rufnummer z.B. aus New York.<br />

Alle Anrufe darauf werden umgehend auf Ihre<br />

Festnetznummer in Berlin – oder auf jedes<br />

andere beliebige Ziel – weitergeleitet. So sind<br />

Sie in Ihrem Büro in Deutschland für internationale<br />

Kunden zu deren Ortstarif erreichbar.<br />

Bieten Sie Ihren Kunden und Interessenten mit<br />

globalBusiness diese persönliche und günstige<br />

Kontaktmöglichkeit und sichern Sie sich Ihren<br />

Wettbewerbsvorteil. Alle verfügbaren Länder<br />

und Vorwahlen im Web: www.outbox.de/admin<br />

Infos und Beratung: 0800 / 66 474 640<br />

www.outbox.de/admin


Patente Sache?<br />

Editorial<br />

Patente Sache?<br />

Liebe Leserinnen und Leser,<br />

die Spatzen pfeifen's von den Dächern: Das Handy ist der PC der Zukunft. Hier sind jetzt<br />

die Abermilliarden zu holen, die IT-Giganten in den letzten Jahrzehnten im PC-Geschäft<br />

verdient haben. Die Auswirkungen der Entwicklung sind überall zu sehen: Security-Firmen<br />

schüren Paranoia vor Schadsoftware, die auf Mobiltelefonen grassieren soll, und liefern<br />

dafür den passenden Schutz. Hersteller von Telefonen und Betriebssystemen bekriegen<br />

sich in Gerichtsverfahren um Patente bis aufs Blut.<br />

Auch Oracle wollte einst im Mobilfunkmarkt mitmischen, kam kürzlich im Verfahren gegen<br />

Google heraus, in dem es um das "geistige Eigentum" an der Programmiersprache Java geht. Früher war die Micro-Edition<br />

von Java einmal eine halbwegs populäre Plattform zur Handy-Programmierung, aber seitdem Android über Nacht den<br />

Mobilfunkmarkt umgekrempelt hat, ist davon nicht mehr viel zu hören.<br />

Oracle, das die Rechte an Java mit der Firma Sun erworben hat, kann das nicht gefallen. Zuerst bedrohte es Google mit<br />

Patenten, die aber zum Großteil von den Richtern verworfen wurden, dann versuchte Oracle eine neue Strategie. Da Google<br />

nicht einfach den Quellcode von Java – das sowieso unter einer mehr oder weniger freien Lizenz steht – kopiert, sondern<br />

Teile der Java-API neu implementiert hat, wollte Oracle das Copyright auf die Spezifikation einer API anwenden. Hat Oracle<br />

damit Erfolg, ist die Software-Welt um eine Erfahrung reicher, die dann jede freie Implementation einer API unmöglich<br />

macht.<br />

Oracle hat damit Erfahrung, mit dem "geistigen Eigentum" anderer Geschäfte zu machen. Die Firma vermarktet selbst eine<br />

Linux-Distribution, die im Wesentlichen aus Red Hat Enterprise Linux besteht. Ausgetauscht wurden nur die Verweise auf<br />

"Red Hat", wozu Oracle sogar verpflichtet ist, denn diese Marke hat Red Hat geschützt. Oracles Praxis ist Red Hat ein Dorn<br />

im Auge, während die Linux-Firma nach eigenen Worten nichts gegen freie Distributionen wie CentOS hat, die dasselbe tun.<br />

Vielleicht ist es eine Konsequenz oder nur eine Begleiterscheinung der Popularität von Open Source: Wenn der Quellcode<br />

offenliegt, müssen eben andere Waffen her, die verfeindete Parteien gegeneinander in Anschlag bringen. Ohne den Beistand<br />

eines Rechtsanwalts Software zu entwickeln, scheint aber dank Software-Patenten und API-Copyrights heute bereits<br />

unmöglich zu sein.<br />

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

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

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

3


Service<br />

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

Netzwerk & Security<br />

Inhalt<br />

03/2012<br />

Moderne <strong>Storage</strong>technologien sind<br />

unverzichtbar. Das <strong>ADMIN</strong>-<strong>Magazin</strong><br />

berät bei der Auswahl (ab S. 34).<br />

die Breite gegangen<br />

Hochverfügbaren und<br />

46In<br />

grenzenlos skalierbaren<br />

Speicher verspricht Ceph/Rados.<br />

Login<br />

Netzwerk<br />

<strong>Storage</strong><br />

8 Vorgelesen<br />

Bücher über Business Process Modeling<br />

und KVM-Virtualisierung.<br />

18 Los geht's<br />

Am 6. Juni findet der IPv6 Launch Day<br />

statt. Das <strong>ADMIN</strong>-<strong>Magazin</strong> ist dabei.<br />

34 Ablagesysteme<br />

NAS-Filer von vier bis 40 TByte im<br />

Vergleich.<br />

10 Branchen-News<br />

Neues von Firmen und Projekten.<br />

14 Think Twice<br />

Wie innovativ ist das<br />

Linux-Betriebssystem?<br />

16 Admin-Story<br />

Tagebuch eines IT-Nomaden.<br />

Service<br />

3 Editorial<br />

4 Inhalt<br />

6 Heft-CD<br />

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

22 Eintrittskarte<br />

Portbasierter<br />

Zugriffsschutz<br />

mit NAP und<br />

802.1X.<br />

28 Getrennte Wege<br />

Die Grundlagen von VLANs leicht verständlich<br />

erklärt.<br />

44 Schnellstraße<br />

Das NDMP-<br />

Protokoll und<br />

Alternativen für<br />

das Filer-Backup.<br />

46 In die Breite gegangen<br />

Der RADOS-Objectstore und Ceph (Teil 1):<br />

hochverfüg- und skalierbar.<br />

4 Ausgabe 03-2012 Admin www.admin-magazin.de


Inhalt<br />

Service<br />

im Blick<br />

Kostenloses Monitoring<br />

unter Windows 94Alles<br />

mit dem Zenoss-Paket.<br />

Schwachstellensuche<br />

mit 52Vas-serdicht<br />

OpenVAS.<br />

fremden Federn<br />

X-Server für Windows<br />

104Mit<br />

möbelt Cygwin auf.<br />

Security<br />

52 Vas-serdicht<br />

Der Vulnerability Scanner OpenVAS<br />

findet Sicherheitslücken.<br />

68 Feuermelder<br />

So funktioniert Intrusion Detection mit<br />

Prelude.<br />

Basics<br />

100 Auf ewig<br />

Anforderungen und Strategien zur<br />

E-Mail-Archivierung.<br />

60 Japanischer Sheriff<br />

Mandatory Access Control mit Tomoyo<br />

Linux.<br />

74 Festgeschnallt<br />

Applocker sperrt Anwendungen in<br />

Windows-Netzwerken.<br />

104 Mit fremden Federn<br />

Mobaxterm bringt Linux-Feeling auf den<br />

Windows-Desktop.<br />

Know-how<br />

80 Ansichtssache<br />

Wozu Windows-Bibliotheken<br />

nützlich sind.<br />

Virtualisierung<br />

110 Maßgeschneidert<br />

VMware vSphere an aktuelle Hardware<br />

anpassen.<br />

Programmieren<br />

120 Eingepackt<br />

RPMs von eigenen Python-Skripts und<br />

fertigen Modulen.<br />

86 Wider die Blasen<br />

Speicherplatz für PostgreSQL-B-Baum-<br />

Indexe effizient nutzen.<br />

90 Eingezäunt<br />

Störer abschalten: So verhindert<br />

Fencing Chaos im Cluster.<br />

94 Alles im Blick<br />

Einführung in das Open-Sourcemonitoring<br />

mit Zenoss unter Windows.<br />

114 Trennkost<br />

Mit Commandline und PHP-GUI: Servervirtualisierung<br />

mit Virtualbox.<br />

126 Der Mond ist aufgegangen<br />

Mod-Lua bringt die schlanke Skriptsprache<br />

und Apache 2.4 zusammen.<br />

Mehr Infos auf Seite 6<br />

Ubuntu 12.04<br />

n Installations-CD für 64-Bit-Rechner<br />

n Server-Ausgabe der neuesten Ubuntu-Version mit fünf<br />

Jahren Update-Support<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

5


SErvice<br />

Heft-CD<br />

Heft-CD<br />

Auf dem beiliegenden Datenträger finden Sie die Server-<br />

Ausgabe des neuesten Ubuntu-Release 12.04 mit Long Term<br />

Support:<br />

◗ Installations-CD für 64-Bit-Rechner (AMD64 bzw. EM64T,<br />

beispielsweise Athlon64, Opteron, EM64T Xeon, Core 2<br />

und so weiter).<br />

◗ Long Term Support: fünf Jahre lang vom Hersteller betreute<br />

Updates [2].<br />

◗ Enthält den Linux-Kernel 3.2.0, die Virtualisierungstechnologie<br />

KVM, Open Stack „Essex“ u.v.m.<br />

CD kaputt?<br />

Wir schicken Ihnen kostenlos eine<br />

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

info@admin-magazin.de<br />

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

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

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

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

Info<br />

[1] Projektseite: [http://www.ubuntu.com]<br />

[2] Informationen zum Long Term Support:<br />

[https://wiki.ubuntu.com/LTS]<br />

6 Ausgabe 03-2012<br />

Admin www.admin-magazin.de


www.kamp.de<br />

In der IT setzt man besser<br />

auf einen starken Partner!<br />

IT-Lösungen – stark und individuell. Mehr unter www.kamp.de


Login<br />

Bücher<br />

Business Process Modeling und KVM<br />

Vorgelesen<br />

Dieses Mal im Lesetest: eine Einführung in den BPMN-Standard und ein<br />

Praxisratgeber zum Linux-Hypervisor KVM.<br />

Jens-Christoph Brendel, Oliver Frommel<br />

Der Standard „Business Process Model<br />

and Notation 2.0“ lässt sich sowohl für<br />

die IT-ferne Beschreibung von Geschäftsprozessen<br />

auf der strategischen oder operativen<br />

Ebene verwenden als auch für die<br />

Entwicklung IT-gestützter Prozesse und<br />

schließlich sogar direkt in einer sogenannten<br />

Process Engine ausführen.<br />

Die Autoren, die wenige Gelegenheiten<br />

verpassen, ihre Beratungsfirma zu erwähnen,<br />

verfügen jedenfalls über fundierte<br />

praktische Erfahrungen, von denen<br />

der Leser durchaus profitiert. Allein ihre<br />

ausführliche Diskussion des Standards,<br />

der sonst nur englischsprachig und eher<br />

im IT-Jargon vorliegt, ist sicherlich in vielen<br />

Fällen hilfreich. Dabei reichern sie<br />

ihre Übersetzung mit vielen instruktiven<br />

Beispielen an und bauen sogar Fragen<br />

zur Verständniskontrolle ein. Die Vorstellung<br />

des Standards runden Vergleiche mit<br />

verwandten Normen wie der Ereignisgesteuerten<br />

Prozesskette (EPK) oder der<br />

Unified Modeling Language (UML) ab.<br />

In anschließenden Teilen diskutiert das<br />

Buch spezifische Einsatzmöglichkeiten<br />

der BPMN wie die Nutzung als strategisches<br />

Modell zur Klärung von Verantwortlichkeiten<br />

oder Ressourcen. Die Festlegung<br />

von Kennzahlen von Geschäftsprozessen<br />

wird wiederum an einem Fallbeispiel<br />

durchgespielt. Danach wenden<br />

sich die Autoren operativen Modellen zu,<br />

bei denen es konkret um die Analyse<br />

und Optimierung bestehender Prozesse<br />

geht. Schließlich rücken in einem weiteren<br />

Kapitel technische Prozessmodelle<br />

in den Fokus, die sich via Software direkt<br />

automatisieren lassen. Hier nähert sich<br />

die Darstellung der IT am stärksten an<br />

und beschreibt auch direkt Schnittstellen<br />

zu IT-Systemen und zur BPEL (Business<br />

Process Execution Language) in der Welt<br />

der Webservices.<br />

Ein abschließender Teil des vorliegenden<br />

Buches wendet sich dann noch der Einführung<br />

von BPMN in Unternehmen und<br />

den dabei häufig anzutreffenden Problemen<br />

zu. Insgesamt ist das Buch ein gut<br />

verständlicher Praxisratgeber für alle,<br />

die sich mit Prozessmodellierung unter<br />

Verwendung der BPMN 2.0 auseinandersetzen<br />

wollen.<br />

KVM<br />

Bücher über Virtualisierung gibt es bereits<br />

massenhaft. Ziemlich überschaubar<br />

ist noch das Angebot an Werken zum<br />

Linux-Hypervisor KVM. Umso erfreulicher,<br />

dass der Dpunkt-Verlag nun diese<br />

Lücke geschlossen hat. Geschrieben<br />

wurde der Ratgeber von vier Autoren,<br />

die für das Systemhaus B1 Systems die<br />

Linux-Virtualisierungslösung in der Praxis<br />

einsetzen.<br />

Nach dem obligatorischen Überblick<br />

über Geschichte und Arten von Virtualisierungstechnologien<br />

widmet sich der<br />

Rest des Buches dem praktischen Einsatz<br />

von KVM, vor allem auf der Kommandozeile.<br />

Vom grundsätzlichen Setup geht es<br />

zur Installation virtueller Maschinen und<br />

dann weiter zu komplexeren Fragen des<br />

VM-Managments. Besonders lobenswert<br />

ist, dass die Autoren die Konfigurationsschritte<br />

stets an allen wichtigen Linux-<br />

Distribution vorführen.<br />

Ausführlich stellen sie die Tools rund um<br />

die Libvirt vor. Bei der Installation virtueller<br />

Maschinenen gehen sie auch auf<br />

die automatisierte Bereitstellung des Betriebssystems<br />

ein. Bei den verwendeten<br />

Gast-Systemen berücksichtigen sie ältere<br />

Betriebssysteme und Windows, für das es<br />

spezielle Treiber gibt.<br />

Ausführlich behandelt „KVM Best Practices“<br />

die Netzwerkkonfiguration virtueller<br />

Maschinen und geht sogar auf den<br />

sehr neuen Ansatz Macvtap ein, der eine<br />

spezielle Lösung für moderne Switches<br />

bietet. Auch fortgeschrittene Techniken<br />

wie <strong>Storage</strong> (Pools), Migration physischer<br />

wie virtueller Maschinen, etwa von<br />

VMware und Virtualbox, fehlen nicht.<br />

Selbst Backup-Strategien und Hochverfügbarkeit<br />

werden erklärt, auch wenn<br />

man Letzterem sicher ein eigenes Buch<br />

widmen könnte.<br />

Mit etwas weniger als 300 Seiten zählt es<br />

nicht jede obskure Option der KVM-Tools<br />

auf, aber gerade der Verzicht auf endlose<br />

Befehlsreferenzen macht den kompakten<br />

Ratgeber gut verdaulich. „KVM<br />

Best Practices“ ist als gelungenes Praxis-<br />

Handbuch empfehlenswert für jeden, der<br />

sich für Virtualisierung mit der nativen<br />

Linux-Lösung interessiert. (ofr) n<br />

BPMN 2.0<br />

Jakob Freund, Bernd Rücker<br />

Praxishandbuch BPMN 2.0<br />

Hanser-Verlag<br />

296 Seiten<br />

34,90 Euro<br />

ISBN: 3-446-42986-7<br />

KVM Best Practices<br />

C. Arnold, M. Rode, J. Sperling, A. Steil<br />

KVM Best Practices<br />

Dpunkt-Verlag<br />

289 Seiten<br />

36,90 Euro<br />

ISBN: 978-3-89864-737-3<br />

8 Ausgabe 03-2012 Admin www.admin-magazin.de


VOLLE LEISTUNG -<br />

VOLLE KONTROLLE<br />

Root Server von HOST EUROPE<br />

Performance wie ein dedizierter Server mit dem Administrationskomfort<br />

innovativer Vollvirtualisierung.<br />

Mehr Power<br />

Mehr Komfort<br />

Mehr Flexibilität<br />

Mehr Expertise<br />

Fest zugewiesene CPU- und RAM-Ressourcen<br />

sowie eigenes Hardware-RAID-Subset<br />

Backup, Snapshot, eigene ISO-Images und<br />

VNC-Fernsteuerung wie bei virtuellen Servern<br />

Keine Mindestvertragslaufzeit, Automatische<br />

Systemmigration bei Upgrades<br />

Bester Service und Support von Europas<br />

führendem Virtualisierungsprovider.<br />

Root Server<br />

Professional<br />

Premium<br />

CPU-Leistung bis zu 8 vCores bis zu 24 Cores<br />

RAM bis zu 32 GB bis zu 96 GB<br />

Dedizierte Festplatten bis zu 3 x 1.000 GB bis zu 4 x 3.000 GB<br />

RAID-Subset je Root Server RAID1 oder RAID5 RAID10<br />

Eigene Server-Hardware <br />

ab<br />

€49<br />

monatlich*<br />

ab<br />

€129<br />

monatlich*<br />

www.hosteurope.de<br />

*Zzgl. einmaliger Setupgebühr von € 99. Keine Mindestvertragslaufzeit. Die Kündigungsfrist beträgt 4 Wochen zum Monatsende. Alle angegebenen Preise inklusive MwSt.


Login<br />

News<br />

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

Neue Software und Produkte<br />

Branchen-News<br />

Münchens OB: Linux billiger und zuverlässiger<br />

Der Umstieg auf Limux kommt München<br />

vier bis fünf Millionen Euro günstiger (11<br />

statt 15 Millionen Euro) als die Windows-<br />

Umgebung, lautet das Fazit von Münchens<br />

Oberbürgermeister Christian Ude.<br />

In dieser Summe seien jedoch weitere<br />

Kosten noch nicht eingerechnet, etwa die<br />

Upgrades auf neue Versionen von Office<br />

und Windows, die schätzungsweise alle<br />

vier Jahre hinzukommen.<br />

Alleine die Lizenzkosten für MS-Produkte<br />

schlagen bei den weit über 10.000 PCs<br />

der bayerischen Landeshauptstadt mit etwa<br />

2,8 Millionen Euro zu Buche. Für die<br />

Kostenrechnung geht Ude von 15.000 MS-<br />

Office-Lizenzen, 7500 Windows-Lizenzen<br />

(Aktualisierungen), 7500 Neuanschaffungen<br />

von Hardware sowie Schulungs-, Migrations-<br />

und Entwicklungskosten aus.<br />

In letzterem Posten steckt etwa, dass die<br />

Formatvorlagenverwaltung Wollmux für<br />

Microsoft Office komplett neu entwickelt<br />

werden müsste.<br />

© Michael Nagy, Presseamt München<br />

Oberbürgermeister Christian Ude zieht ein lobendes<br />

Fazit für den Linux-Umstieg.<br />

Interessante Zahlen hat auch das Amtsblatt<br />

Rathausumschau vom März 2012 zu<br />

bieten. Obwohl sich die Linux-Arbeitsplätze<br />

noch in einer Einführungsphase<br />

befänden, wo es normalerweise an vielen<br />

Ecken und Enden „hakt“, können<br />

die Verantwortlichen jedoch bereits jetzt<br />

feststellen, dass in vielen Fällen (Referaten)<br />

nach Auskunft der Administratoren<br />

deutlich weniger Störungen auftreten als<br />

dies mit Windows NT der Fall war.<br />

Münchens Limux fühlt sich jetzt auch so<br />

stark, um erneut und mit vielen positiven<br />

Erfahrungen an die Öffentlichkeit zu<br />

gehen: „Wir sind jetzt so weit, dass wir<br />

etwas zurückgeben wollen, wir haben<br />

unsere eigenen Erfahrungen gemacht. Da<br />

können wir zurückblicken und anderen<br />

Städten und Projekten helfen. Limux geht<br />

jetzt mehr nach außen“, so Kirsten Böge,<br />

verantwortliche Kommunikations- und<br />

Veränderungsmanagerin bei der Landeshauptstadt<br />

zum Linux-<strong>Magazin</strong>. Dazu<br />

wolle man Kontakt mit anderen Vorzeigeprojekten<br />

in Gemeinden, Staaten und<br />

Institutionen aufnehmen, aber auch das<br />

eigene Behördenumfeld mit Informationen<br />

und Erfahrungen versorgen.<br />

VMware gibt Management-Paket Bosh frei<br />

Zum einjährigen Geburtstag des Cloud-Foundry-Projekts hat<br />

VMware die Tool-Sammlung Bosh unter der Apache-Lizenz<br />

veröffentlicht. Mit Bosh lassen sich Anwendungen für verteilte<br />

Infrastrukturen verwalten. Derzeit unterstützt Bosh VMware<br />

vSphere und Amazon Web Services. Über den sogenannten Director<br />

können Anwender einzelne virtuelle Maschinen steuern,<br />

auf denen als Gegenstück spezielle Agent-Programme laufen.<br />

Auf den VMs kann Bosh dann Anwendungen bereitstellen und<br />

im weiteren Verlauf ihren Zustand überwachen. Bosh ist in<br />

Ruby geschrieben und im Github-Repository [https://​github.​com/​<br />

​cloudfoundry/​bosh] von Cloud Foundry zu finden.<br />

Auch die Cloud-Foundry-Software war letztes Jahr von VMware<br />

unter der Apache-Lizenz freigegeben worden. Ähnlich wie mit<br />

Open Stack und Cloudstack lassen sich auch damit Cloud-Infrastrukturen<br />

aufbauen. Allerdings positioniert sich VMware damit<br />

als Konkurrenz zum Open-Stack-Projekt, dem VMware nicht angehört.<br />

Mitbewerber Citrix hatte erst kürzlich bekanntgegeben,<br />

in Zukunft verstärkt auf Cloudstack zu setzen. VMware bietet<br />

unter dem Namen Cloud Foundry auch eine eigene Cloud an,<br />

die mit der gleichnamigen Software realisiert ist.<br />

Linus Torvalds ausgezeichnet<br />

Die Technology Academy Finnland hat Linus Torvalds als Preisträger<br />

für den Millennium Technology Prize benannt. Er wird<br />

dafür geehrt, den Linux-Kernel ins Leben gerufen zu haben,<br />

in dem heute nach den Worten der Akademie hochgerechnet<br />

73000 Mannjahre Entwicklungszeit und 30 Millionen Zeilen<br />

Code stecken. Seine Erfindung hätte „großen Einfluss auf die<br />

Software-Entwicklung sowie die kulturellen und ethischen<br />

Aspekte der Offenheit des Web“, meint die Akademie zu der<br />

Auszeichnung.<br />

Linus Torvalds selbst sagt dazu „Software is too important in<br />

the modern world not to be developed through open sources.<br />

The real impact of Linux is as a way to allow people and companies<br />

to build on top of it, to do their own thing. We’re finally<br />

getting to the point where „data is just data“, and we don’t have<br />

all these insane special communication channels for different<br />

forms of data.“<br />

Der zweite Preisträger neben Linus Torvalds ist der Stammzellenforscher<br />

Shinya Yamanaka aus Japan. Den Gewinner<br />

des endgültigen „Grand Prize“ wird die Jury am 13. Juni 2012<br />

bekanntgeben.<br />

10 Ausgabe 03-2012 Admin www.admin-magazin.de


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

News<br />

Login<br />

Günstige Server von Novell<br />

Mit der Novell Open Workgroup Suite for Small Business bietet<br />

Novell nun kleineren Firmen mit bis zu 200 Mitarbeitern<br />

und fünf Servern günstige Lizenzen in einem Rundum-sorglos-<br />

Paket an. Die Workgroup Suite umfasst Client- und Server-<br />

Lizenzen für den Novell Open Enterprise Server, der auf der<br />

Basis von SLES 11 SP 1 Netzwerk-, Datei- und Druckservices<br />

zur Verfügung stellt. Weiter enthalten ist GroupWise, Novells<br />

Collaboration-Lösung, und Vibe, das mit derselben Zielrichtung<br />

Social Networking Tools, Prozessautomatisierung, Blogs oder<br />

Umfragewerkzeuge bietet.<br />

Für die Verwaltung der Server sind ZENworks Linux Management<br />

und ZENworks Configuration Management integriert.<br />

Desktop-Benutzer können die Bürosuite LibreOffice zusamen<br />

mit dem Linux Enterprise Desktop nutzen. Waren diese Services<br />

auch bereits im Open Enterprise Small Business Server integriert,<br />

so geht die Suite darüber hinaus, indem sie weiter auch<br />

die Novell Cluster Services integriert (zwei Knoten sind im Preis<br />

inbegriffen) und das Angebot um Xen Virtualization sowie das<br />

ZENworks Endpoint Security Management aufstockt.<br />

Webserver-Statistik: Apache wächst<br />

Mit einer Zunahme von rund 23 Millionen Websites baut<br />

Apache seinen Anteil unter den Webservern im April weltweit<br />

auf 65,5 Prozent aus.<br />

Die von Netcraft durchgeführte Monatsmessung hat für insgesamt<br />

rund 677 Millionen Websites den laufenden Server gemeldet.<br />

Fast 33 Millionen Hostnames sind seit der Märzstatistik [http://​<br />

​news.​netcraft.​com/​archives/​2012/​04/​04/​april‐2012‐web‐server‐survey.​<br />

​html] hinzugekommen. Während Apache in Zahlen das größte<br />

Wachstum hinlegte, legte der schlanke Nginx um 4,5 Millionen<br />

Seiten zu und landete mit diesem Wachstum auf dem zweiten<br />

Platz im April.<br />

Microsoft konnte sich zwar um 3,5 Millionen Sites verbessern,<br />

hat aber immer noch mit einem leicht sinkenden Marktanteil<br />

zu kämpfen. Der neue im <strong>Test</strong> befindliche IIS 8.0, der seit<br />

September 2011 mit der öffentlichen Beta des Windows Server<br />

8 ausgeliefert wird, ist bei 278 Sites in Betrieb. Das dreistellige<br />

Ergebnis ist allerdings dem Betabetrieb geschuldet. Netcraft hat<br />

den IIS 8.0 deshalb auch bei keinem großen Hostingprovider<br />

entdeckt.<br />

Neuer Linux-Kernel-Report<br />

Die Linux-Foundation hat den Report „Linux Kernel Development:<br />

How Fast it is Going, Who is Doing It, What They<br />

are Doing, and Who is Sponsoring It“ veröffentlicht, der eine<br />

Bestandsaufnahme der Linux-Kernel-Entwicklung gibt. Die<br />

Autoren sind, neben Amanda McPherson von der Linux-Foundation,<br />

der Kernel-Entwickler Greg Kroah-Hartman und Jonathan<br />

Corbet, der die Website LWN.net betreibt.<br />

Laut dem Kernel-Report fließen in jedes neue Kernel-Release<br />

zwischen 8000 und 12000 Patches ein, wobei sich die Rate der<br />

Änderungen eher noch erhöht. Dies ist das Werk von über 1000<br />

Entwicklern, die vorwiegend bei etwa 200 Firmen angestellt<br />

sind. Seit 2005 haben über 7800 verschiedene Entwickler und<br />

800 Firmen zum Linux-Kernel beigetragen. Der Kernel-Report<br />

erscheint mit dieser Ausgabe zum vierten Mal und berücksichtigt<br />

die Entwicklung bis zu Linux 3.2. Der Schwerpunkt liegt auf<br />

der Entwicklungsphase zwischen 2.6.36 und 3.2.<br />

Als Kuriosum ist zu verzeichnen, dass Microsoft nun unter<br />

den 20 Firmen zu finden ist, die am meisten zum Linux-Kernel<br />

beigetragen haben. Allerdings ist das Maß dafür die Anzahl der<br />

Änderungen und der Grund für deren Vielzahl, dass der von<br />

Microsoft beigesteuerte Code für Hyper-V im Linux-Kernel nicht<br />

den Coderichtlinien entsprach und umgeschrieben wurde.<br />

Jetzt<br />

anrufen<br />

und Termin<br />

sichern!<br />

Linux Schulungen 2012 – Nicht verpassen!<br />

• Linux - Crashkurs für Administratoren: 21.05. / 02.07. / 08.10.<br />

• Linux Administration für Fortgeschrittene: 18.06. / 03.09. / 05.11.<br />

• Linux als Server im Inter-und Intranet: 06.08. / 26.11.<br />

• Shellprogrammierung mit der BASH: 22.10.<br />

• Python Programmierung für Check_MK: 24.09.<br />

• Systemmonitoring mit Nagios & Check_MK: 12.11.<br />

• Python: 15.10.<br />

• Fortgeschrittenes Monitoring mit Nagios & Check_MK:<br />

11.06. / 10.09. / 10.12.<br />

NEU<br />

Linux-<strong>Storage</strong>-Schulung jetzt 4 Tage!<br />

Nächster Termin: 03.12.2012<br />

Gerne machen wir auch Inhouse-Schulungen direkt bei unseren Kunden<br />

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

Webserver im Vergleich. Quelle Netcraft<br />

Tel.: 089 / 18 90 42 10<br />

www.admin-magazin.de<br />

mk@mathias-kettner.de<br />

Ausgabe 03-2012 www.mathias-kettner.de<br />

11


Login<br />

News<br />

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

„Freie Software dient der Sicherheit“<br />

Cornelia Rogall-Grothe, die Beauftragte der Bundesregierung für<br />

Informationstechnologie, hat als Schirmherrin des Linuxtags<br />

2012 die Bedeutung von freier Software hervorgehoben. In einem<br />

Grußwort betont sie die Rolle des Bundes, der sich für die<br />

Interoperabilität, nicht nur in Deutschland, sondern auch auf<br />

EU-Ebene einsetze. Offene Standards, so Rogall-Grothe, seien in<br />

dem Ende 2011 verabschiedeten Leitfaden SAGA 5 für die Bundesverwaltung<br />

das zentrale Kriterium. Der Aspekt Sicherheit<br />

sei ebenfalls eine Stärke der freien Software, so die Politikerin,<br />

Anwender müssten die Hoheit über ihre Systeme und über ihre<br />

Daten behalten. Investitionsschutz, hohe Zukunftssicherheit,<br />

Softwarevielfalt und Flexibilität seien weitere Pluspunkte.<br />

Drupalcon München sucht Vorträge<br />

Für die vom 20. bis 24. August in München stattfindende Konferenz<br />

zum Content-Management-System Drupal haben der<br />

Call for Papers und die Registrierung begonnen. Interessenten<br />

zu Vorträgen rund um das CMS sollen sich an die Drupal Association<br />

und das Munich Drupalcon Committee wenden. Weitere<br />

Informationen gibt es auf der Drupalcon-Webseite [http://​<br />

​munich2012.​drupal.​org/​call‐for‐papers].<br />

1&1 bekommt Document Freedom Award<br />

Die Free Software Foundation Europe (FSFE) und die Foundation<br />

for a Free Information Infrastructure e.V. (FFII) haben die<br />

1&1 Internet AG und deren Portale GMX und Web.de mit dem<br />

German Document Freedom Award ausgezeichnet.<br />

Die FSFE und die FFII loben die ausgezeichneten Portale unter<br />

anderem für den Einsatz von offenen Standards wie das<br />

Extensible Messaging and Presence Protocol (XMPP, ehemals<br />

Jabber). Der Award wurde in Karlsruhe überreicht, pünktlich<br />

zum Document Freedom Day. Stephan Uhlmann vom FFII-<br />

Vorstand lobte die 1&1 Internet AG als Unternehmen, das seine<br />

Geschäftsfelder auf offene Internetstandards wie Web und Mail<br />

aufbaue und seine Services interoperabel halte.<br />

Preisverleihung: (von links) Stephan Uhlmann von der FFII, Jan Oetjen, CEO 1&1<br />

Internet Portals, Tino Anic von 1&1 und Mathias Kirschner von der FSFE.<br />

Red Hat knackt die Umsatz-Milliarde<br />

Das börsennotierte Linux-Unternehmen Red Hat hat im Finanzjahr<br />

2012, das bei der Firma bereits im Februar endet, einen Umsatz<br />

von 1,13 Milliarden US-Dollar erzielt. Red Hat gilt damit als<br />

Erstes auf Open-Source-Produkte aufbauendes Unternehmen,<br />

das die Milliardengrenze überschritten hat. Ein Umsatzwachstum<br />

von 25 Prozent gegenüber dem Geschäftsjahr 2011 war<br />

dafür verantwortlich. Das vierte Quartal hat Red Hat mit einem<br />

Umsatz von 297 Millionen US-Dollar geschlossen, was einer<br />

Steigerung von 21 Prozent gegenüber dem vierten Quartal 2011<br />

entspricht. Red Hat erzielte aus den Subskriptionen für seine<br />

Produkte in Q4 rund 255 Millionen US-Dollar (plus 22 Prozent<br />

im Jahresvergleich). Den Umsatzzahlen stehen die Nettoerlöse<br />

von 36 Millionen US-Dollar im vierten Quartal und rund 147<br />

Millionen US-Dollar im gesamten Geschäftsjahr gegenüber. Laut<br />

Finanzchef Charlie Peters habe es einen signifikanten Anstieg<br />

bei großen Geschäftsabschlüssen gegeben.<br />

Neue Intel-SSD für Preisbewusste<br />

Intel stellt mit der SSD-330-Serie Modelle für den preisbewussten<br />

Anwender vor. Die neuen SSDs mit 6 GByte/​s SATA-Schnittstelle<br />

eignen sich besonders für die Aufrüstung eines vorhandenen<br />

PCs oder Notebooks. Sie sind ab sofort in Kapazitäten von 60,<br />

120 und 180 GByte ab einem empfohlenen Preis von 89 US-<br />

Dollar verfügbar. Die Serie ist mit 25-nm-Multi-Level-Cell-(MLC)<br />

NAND-Speicher ausgestattet. Die 6-GByte/​s-SATA-Schnittstelle<br />

liefert eine sequenzielle Lesegeschwindigkeit von bis zu 500<br />

MByte/​s sowie eine sequenzielle Schreibgeschwindigkeit von<br />

bis zu 450 MByte/​s.<br />

Mit Random-Lesegeschwindigkeiten von bis zu 22 500 IOPS (Input/​Output-Operationen<br />

pro Sekunde) und Schreibgeschwindigkeiten<br />

bis zu 33 000 IOPS erreichen sie zwar nur etwa die<br />

Hälfte der Geschwindigkeit der Rechenzentrenmodelle, liegen<br />

aber deutlich über den Werten einer klassischen Festplatte.<br />

Open-Source-Förderpreis 2012<br />

Wie bereits in den Vorjahren fördert der Serverhersteller Thomas<br />

Krenn zusammen mit Univention, Netways und dem Linuxhotel<br />

auch dieses Jahr wieder Open-Source-Projekte. Bereits<br />

zum Linuxtag, der vom 23. bis 26. Mai in Berlin stattfindet,<br />

erhält Ubuntuusers.de Serverhardware im Wert von 2500 Euro.<br />

Andere Projekte können sich beim Linuxtag am Stand der<br />

Thomas Krenn AG oder per E-Mail an [open‐source‐sponsorship@<br />

thomas‐krenn.​com] bewerben.<br />

Alle drei Monate wählt eine Jury ein Projekt zur Förderung aus,<br />

die aus Server-Hardware im Wert von mindestens 1000 Euro<br />

besteht. In der Jury sitzen Bernd Erk (Netways), Peter H. Ganten<br />

(Univention), Jacqueline Rahemipour (Linuxtag e.V.) und<br />

Ingo Wichmann (Linuxhotel). Direkt auf dem Linuxtag können<br />

sich Open-Source-Projekte je einen von insgesamt acht Pocket-<br />

Servern sichern. Mehr Informationen zum Preis sind unter der<br />

Adresse [http://www.thomas‐krenn.​com/tk-osf-2012] zu finden.<br />

12 Ausgabe 03-2012 Admin www.admin-magazin.de


n immer auf http://www.admin-magazin.de<br />

Open Stack 2012.1 veröffentlicht<br />

Mit Version 2012.1 „Essex“ hat das Cloud-Computing-Framework<br />

Open Stack einige Umbauarbeiten fortgeführt, neue Features<br />

eingebaut und eine Vielzahl von Fehlern behoben. So<br />

haben die Entwickler weitere Fortschritte dabei gemacht, die<br />

Komponenten für Zugriffskontrolle und Rechte aus dem Modul<br />

für die Rechenarbeit („Nova“) zu entfernen und in das nun<br />

dafür zuständige Modul „Keystone“ zu überführen. Auch die<br />

Komponente zur Konfiguration von Open Stack wurde überarbeitet<br />

und bedient sich nun einer Ini-Syntax, wie sie etwa von<br />

Windows-Anwendungen bekannt ist. Open Stack kann jedoch<br />

weiterhin alte Konfigurationsdateien lesen, die es intern in das<br />

neue Format konvertiert. Auch ein separates Tool zur Umwandlung<br />

ist im Paket enthalten.<br />

Insgesamt haben seit dem letzten Open-Stack-Release mehr<br />

als 200 Programmierer um die 3000 Änderungen alleine in<br />

das Modul Nova eingebracht. Neben Nova besteht Open Stack<br />

noch aus den Komponenten Keystone (Authentifizierung), Swift<br />

(<strong>Storage</strong>), Glance (VM-Images) und Horizon (Management-<br />

GUI). Mit Open Stack lassen sich eigene Cloud-Infrastrukturen<br />

aufbauen und zentral steuern. Für Entwickler steht auch eine<br />

API bereit. Hinter Open Stack, das unter der Führung von<br />

Rackspace entstanden ist, steht mittlerweile ein Konsortium von<br />

mehr als 100 Firmen. Obwohl einzelne Cloud-Anbieter Open<br />

Stack bereits implementiert haben, steht ein stabiles Release<br />

bisher immer noch aus. Der Virtualisierungsanbieter Citrix<br />

hat deshalb kürzlich bekanntgegeben, auf das konkurrierende<br />

Framework Cloudstack zu setzen, das seit letzter Woche unter<br />

der Apache-Lizenz steht. Auch Red Hat unterstützt Open<br />

Stack offiziell bislang nicht. Allerdings wird in Insider-Kreisen<br />

berichtet, dass sowohl Red Hat wie auch IBM demnächst ihre<br />

Teilnahme am Open-Stack-Konsortium bekanntgeben werden,<br />

mutmaßlich bei der Open Stack Spring Conference, die am 19.<br />

April in San Francisco stattfindet. Die Release Notes zu Open<br />

Stack 2012.1 „Essex“ sind unter der Adresse [http://​wiki.​openstack.​<br />

​org/​ReleaseNotes/​Essex] einsehbar.<br />

Twitter stellt MySQL-Erweiterungen online<br />

Die Firma Twitter hat einige der MySQL-Erweiterungen freigegeben,<br />

mit denen sie als einer der größten MySQL-Anwender<br />

weltweit die Skalierbarkeit der Datenbank zunächst für den<br />

eigenen Bedarf verbesserte.<br />

Twitter, das die meisten Daten seiner 140 Millionen User in<br />

MySQL-Datenbanken speichert, hat nun die zunächst für eigene<br />

Zwecke entwickelten Erweiterungen auf Github [https://​github.​<br />

​com/​twitter/​mysql] unter einer BSD-Lizenz allen Interessenten zur<br />

Verfügung gestellt. Sie betreffen beispielsweise die Optimierung<br />

der Speicherzuweisung auf großen NUMA-Systemen oder die<br />

neue Möglichkeit, den Innodb Buffer Pool zu sichern und wiederherzustellen,<br />

was es erlaubt, MySQL-Services im laufenden<br />

Betrieb ohne besondere Vorkehrungen neu zu starten. Auch<br />

das Innodb-Monitoring hat Twitter durch neue Statusvariablen<br />

weiter verbessert. Darüber hinaus optimierte Twitter das Zusammenspiel<br />

von MySQL und SSD-Speichern.<br />

www.admin-magazin.de<br />

TM<br />

MobyDick<br />

D i e Z u k u n f t der Telefonie<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 Kommunikationslösung für Ihr<br />

Unternehmen<br />

Unified Communications:<br />

Telefon<br />

Video<br />

VoiceMail<br />

Präsenzmanager<br />

Instantmessaging<br />

FaxEmail Gateway<br />

PrintFax Gateway<br />

Conferencing<br />

Mehr Informationen finden Sie unter:<br />

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

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

NEU<br />

Kostenlose<br />

Community<br />

Version<br />

erhältlich<br />

pascom<br />

Netzwerktechnik GmbH & Co. KG<br />

Berger Straße 42<br />

94469 Deggendorf<br />

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

Admin<br />

Ausgabe 03-2012<br />

13


Login<br />

Think Twice: Innovation<br />

Wo die Innovation in Linux steckt, und warum es manchmal ohne geht<br />

Alles neu oder<br />

nachgemacht?<br />

Hat Linux oder Open Source im Allgemeinen – sagen wir es durch die Blume – eher ein nachschaffendes Talent? Kupfert es<br />

lediglich ab, und ist seine Innovationskraft nur ein Mythos, wie die Gegenposition in dieser Kolumne diesmal behauptet?<br />

Ich glaube das nicht. Aus sechs guten Gründen. Jens-Christoph Brendel<br />

Schnell läuft man<br />

auf der Suche<br />

nach den Linux-<br />

Innovationen Gefahr,<br />

den Wald vor<br />

lauter Bäumen<br />

nicht zu sehen.<br />

Ehe man nämlich nach technischen Details<br />

fahndet, gilt es zu erkennen, dass<br />

man eine der größten Innovationen bereits<br />

vor Augen hat: Linux als solches.<br />

Und das gleich in mehrfacher Hinsicht:<br />

Erstens verkörpern Open Source und speziell<br />

auch Linux ein absolut innovatives<br />

Modell der Softwareentwicklung. Dass<br />

Hunderte Programmierer auf der ganzen<br />

Welt sich selbst organisieren, freiwillig,<br />

oft unentgeltlich und jahrzehntelang in<br />

Projekten mitarbeiten, die Millionen Zeilen<br />

Code produzieren – das gab und gibt<br />

es im proprietären Lager nie und wird es<br />

nicht geben. Das Modell war neu, und<br />

es hat sich praktisch durchgesetzt, mit<br />

anderen Worten: eine Innovation par<br />

exellence.<br />

Mitreden<br />

Diskutieren Sie mit uns! In dieser Rubrik, die<br />

sich auch auf unserer Webseite findet (http://<br />

www.admin-magazin.de/Think-Twice), stellen<br />

wir regelmäßig kontroverse Standpunkte zur<br />

Diskussion. Sagen Sie uns online, welcher Meinung<br />

Sie sich anschließen würden, bekennen<br />

Sie Farbe und reden Sie mit!<br />

Zweitens: Linux ist in vielen Fällen die<br />

Grundlage neuer, innovativer Geschäftsmodelle.<br />

Die bieten kostenlose Software,<br />

die jeder ohne Einstiegshürde zunächst<br />

unter den eigenen Bedingungen testen<br />

kann, bevor er sich vielleicht entscheidet,<br />

einem Anbieter für Dienstleistungen,<br />

Support, Integration, Anpassungen, Erweiterungen<br />

oder daran gekoppelte Hardware<br />

zu bezahlen. Zuvor gab es nur das<br />

Lizenzgeschäft, das die Katze im Sack<br />

an den Mann bringen wollte. Demgegenüber<br />

hat sich ein vollkommen neuartiger<br />

Ansatz erfolgreich etabliert. Das ist, was<br />

man eine Innovation nennt.<br />

Dagegen mag man einwenden: Das waren<br />

zweifellos Innovationen, aber mittlerweile<br />

ist Linux zwanzig. Schon recht<br />

– doch was ist in diesen zwanzig Jahren<br />

passiert?<br />

Drittens: In diesen 20 Jahren ist Linux<br />

das Herzstück unzähliger innovativer<br />

Produkte geworden. Vom aktuellsten<br />

Android Smartphone bis zum Supercomputer,<br />

der in mehr als neun von zehn<br />

Fällen unter Linux läuft. Beide können<br />

fraglos innovativ sein, genauso wie eine<br />

Flut anderer Produkte, in denen Linux<br />

werkelt, vom Navigationssystem bis zur<br />

Kaffeemaschine, vom NAS-Speicher bis<br />

zum Industrieroboter.<br />

Viertens: Daneben gab und gibt es technische<br />

Neuerungen, die auf das Konto<br />

von Linux gehen. Und zwar von Anfang<br />

an: Schon der Kernel 1.2 benutzte in Abhängigkeit<br />

von der Hardwareerkennung<br />

nachladbare Kernel-Module, mindestens<br />

ein halbes Jahr bevor Windows 95 mit<br />

seinem Plug’n’Play etwas Ähnliches<br />

versuchte. Oder die Linux-Paketverwaltungen<br />

– eine Art kostenloser AppStore,<br />

entwickelt lange bevor es Mobil-Applikationen<br />

gab. Und heute? Man schaue nach<br />

den Mega-IT-Trends – Cloud Computing<br />

etwa oder soziale Netze oder Big Data, –<br />

und man wird auf Linux stoßen.<br />

Fünftens: Bei Software lässt sich die Innovationsstärke<br />

in gewisser Weise bereits<br />

am Alter ablesen: Weil sie im Unterschied<br />

zu anderen Waren bei Gebrauch nicht<br />

verschleißt, wäre ihr erster Käufer nämlich<br />

eigentlich zugleich der letzte – er<br />

hätte ausgesorgt – wenn ihr Hersteller die<br />

Kunden nicht immer wieder mit neuen<br />

Features, höherer Performance locken<br />

könnte. Linux zieht in diesem Spiel seit<br />

über zwei Jahrzehnten immer mehr Interessenten<br />

an. Ein Innovationsbeweis.<br />

Sechstens: Aber selbstverständlich gibt<br />

es auch bei Linux nicht ausschließlich<br />

Innovationen – das zu erwarten wäre<br />

weltfremd und unklug. Wie in der Natur<br />

folgt auf jede Schlüsselinnovation<br />

eine längere Periode der Adaption. Das<br />

ist die risikoärmere Form der Evolution,<br />

die durch Fortentwicklung erst einmal<br />

den Spielraum ausnutzt, den Innovationen<br />

eröffnen. Dazu gehört auch die<br />

Übernahme fremder Innovationen, wo<br />

das legitim und effizient ist. So mag man<br />

dem Filesystem-Newcomer Btrfs den Innovationscharakter<br />

absprechen, weil es<br />

zuvor das ähnliche ZFS von Sun/​Oracle<br />

gab. (Genauso könnte man sagen: Für<br />

das Linux-Universum ist das ohne Vorbild<br />

und deshalb innovativ.) Das ändert aber<br />

nichts an der Tatsache, dass Btrfs eine notwendige<br />

und ausgesprochen segensreiche<br />

Entwicklung für Linux ist. Diese Chance<br />

auszuschlagen, um stattdessen in Nörgler-<br />

Pose nach etwas nie da gewesenen zu<br />

rufen, wäre einfach nicht schlau. n<br />

14 Ausgabe 03-2012 Admin www.admin-magazin.de


Think Twice: Innovation<br />

Login<br />

Linux ist nicht der viel gefeierte Innovationsmotor<br />

Besser gut<br />

kopiert<br />

Linux wird von seinen Fans gerne als innovatives System gepriesen, das anderen um Längen voraus ist. Technisch<br />

ist es aber weniger innovativ als andere Systeme. Seine wahren Leistungen liegen eher im ökonomischen<br />

und politischen Feld. Oliver Frommel<br />

In der Werbung<br />

wird gerne die<br />

Frage gestellt: Wer<br />

hat’s erfunden? In<br />

den Augen vieler<br />

Linux-Fans lautet<br />

die Antwort darauf<br />

aber nicht „die Schweizer“, sondern<br />

„Linus Torvalds“. Andere Fußballvereine,<br />

ähem, Software-Hersteller werden dagegen<br />

gerne des Diebstahls oder Plagiats<br />

bezichtigt, allen voran die Lieblingsfeinde<br />

Microsoft und Apple.<br />

Tatsächlich ist die Innovationsleistung<br />

von Linux geringer, als viele denken.<br />

Schon bei seiner Erfindung gab es technisch<br />

nicht viel Bahnbrechendes zu verzeichnen.<br />

Linus Torvalds schrieb einen<br />

Task-Switcher für den 386-Prozessor<br />

und darauf basierend ein rudimentäres<br />

Betriebssystem, das er am 5. Oktober<br />

1991 in der Newsgroup comp.os.minix<br />

veröffentlichte. Es war jedoch nicht nach<br />

einem eigenen innovativen Konzept entworfen,<br />

sondern dem Unix-Vorbild nachempfunden,<br />

das zu diesem Zeitpunkt<br />

schon 20 Jahre auf dem Buckel hatte.<br />

Verschiedene Unix-Varianten wurden damals<br />

von Firmen wie Sun, SGI, Digital<br />

Equipment, HP und IBM mit ihren Workstations<br />

und Servern ausgeliefert.<br />

Selbst Unix auf dem PC war damals<br />

nichts Neues. Ironischerweise wurde<br />

ein PC-Unix mit dem Namen Xenix seinerzeit<br />

von Microsoft verkauft. Konsequenterweise<br />

begegnete der Informatik-<br />

Professor Andrew Tanenbaum schon der<br />

ersten Linux-Veröffentlichung mit dem<br />

berühmten Diktum „Linux is obsolete“<br />

(Linux ist veraltet). Er selbst arbeitet zu<br />

dieser Zeit an einem eigenen Unix-artigen<br />

Betriebssystem namens Minix, das aber<br />

einen Microkernel verwendete und durch<br />

die Verwendung weniger privilegierter<br />

Subsysteme zu größerer Stabilität führen<br />

sollte.<br />

Windows New Technology<br />

Auch das viel geschmähte Windows NT,<br />

das 1993 erschien, hatte in puncto Innovation<br />

einiges zu bieten – auch wenn sich<br />

dies nicht unbedingt in hoher Stabilität<br />

niederschlug. Nachdem die gemeinsame<br />

Entwicklung von OS/​2 zusammen mit<br />

IBM in die Sackgasse führte, schlug Microsoft<br />

einen neuen Weg ein und begann<br />

von Grund auf ein neues System zu<br />

entwickeln, angeführt von Dave Cutler,<br />

dem Architekten des berühmten VMS-Betriebssystems.<br />

Eine Abstraktionsschicht<br />

namens HAL (Hardware Abstraction<br />

Layer) sollte das Betriebssystem einfach<br />

für verschiedene Prozessorarchitekturen<br />

verfügbar machen.<br />

Auch Windows NT war von der Microkernel-Architektur<br />

beeinflusst, verlinkte<br />

allerdings am Ende die einzelnen<br />

Komponten zu einem statischen Block.<br />

Schließlich bescherten die Entwickler<br />

dem neuen OS noch ein modernes Dateisystem<br />

namens NTFS, das Access Control<br />

Lists und Journalling implementierte –<br />

zwei Features, auf die Linux-Anwender<br />

noch lange warten mussten. Selbst in der<br />

einschlägigen Literatur, etwa im Buch des<br />

Informatikprofessors William Stallings,<br />

gilt Windows NT als Beispiel für zeitgemäßes<br />

Design von Betriebssystemen.<br />

Der Konkurrent Apple schlug später einen<br />

ähnlichen Weg ein und verschmolz<br />

den Mach-Microkernel mit BSD-Unix und<br />

Nextstep und konnte endlich ein modernes<br />

Betriebssystem vorlegen, um das alte<br />

System 7 abzulösen. Ein Grund für den<br />

Neid vieler Linux-Anwender auf OS X<br />

dürfte darin zu finden sein, dass Apple<br />

mit seinem System den Einzug von Unix<br />

auf dem Desktop geschafft hat, während<br />

Linux mit seinen diversen Desktop-Systemen<br />

bis heute darauf wartet.<br />

Genauso warten viele Linux-Anwender<br />

heute sehnsüchtig auf ein Dateisystem<br />

namens Btrfs, das moderne Features wie<br />

Snapshots und Rollbacks beherrscht.<br />

Doch auch diese Fähigkeiten haben sich<br />

die Btrfs-Entwickler nicht selbst ausgedacht:<br />

Solaris-Anwender können sich<br />

daran schon länger erfreuen, denn mit<br />

ZFS hat Sun „das letzte Wort“ in Sachen<br />

Dateisystem bereits gesprochen,<br />

wie es die Firma selbst ausdrückt. ZFS<br />

beherrscht nicht nur Snapshots, sondern<br />

erlaubt es sogar, ohne zusätzliche Schicht<br />

RAID-Systeme zu betreiben.<br />

Freiheit statt Innovation<br />

Seit immer mehr Firmen Linux als strategische<br />

Plattform sehen und zur Entwicklung<br />

beitragen, gibt es auch mehr<br />

technische Innovationen. So beschäftigen<br />

etwa Prozessorhersteller selbst Linux-Entwickler,<br />

die den entsprechenden<br />

Support-Code für neue Features in den<br />

Kernel integrieren. Die vorrangige Leistung<br />

von Linux besteht bisher aber weniger<br />

in technischer Innovation als darin,<br />

ein freies Betriebssystem geschaffen zu<br />

haben, das dank der GNU-Lizenz allen<br />

Interessierten zur Verfügung steht. Es<br />

bleibt zu hoffen, dass Software-Patente<br />

diese Zukunft nicht vereiteln. n<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

15


Login<br />

Admin-Story<br />

Der System Security Services Daemon<br />

Abgesteckt<br />

die für ihr Notebook nicht immer einen<br />

Netzanschluss haben, ist die Kommunikation<br />

zu einem zentralen Verzeichnisdienst<br />

somit auch nicht immer möglich.<br />

Der SSSD arbeitet mit einem Cache für<br />

Authentifizierungsinformationen. Möchte<br />

sich ein Benutzer am System anmelden,<br />

und der zentrale Server im Backend steht<br />

nicht zur Verfügung, klappt die Anmeldung<br />

am System trotzdem, da in diesem<br />

Fall die Informationen aus dem SSSD-<br />

Cache kommen. Die Konfigurationsdatei<br />

»/etc/sssd/sssd.conf« gestattet es natürlich,<br />

ganz genau festzulegen, wie dieser<br />

Cache verwendet werden darf. So legt<br />

beispielsweise der Parameter »offline_<br />

credentials_expiration« fest, wie lange<br />

die Daten aus dem Cache Gültigkeit besitzen<br />

sollen, wenn der Backend-Server<br />

nicht zur Verfügung steht.<br />

© Sergei Popov, 123RF<br />

Zentrale Sudo-Regeln auf einem LDAP-Server abzulegen, vereinfacht<br />

die Administration von Workstations und Clients im Firmennetz. Schwierigkeiten<br />

gibt es aber, wenn der so betreute Client-Rechner vom Netz<br />

getrennt ist. Abhilfe schafft die aktuelle Version des System Security<br />

services Daemon (SSSD). Thorsten Scherf<br />

Beim Mittagessen mit einem Kollegen<br />

kamen wir neulich auf das Thema<br />

SSSD und neue Features in Fedora 17<br />

zu sprechen. Dabei ging es auch um<br />

die Sudo-Integration und andere nützliche<br />

Features. Zur Erinnerung: Beim<br />

SSSD (System Security Services Daemon<br />

[1]) handelt es sich um einen Client-<br />

Daemon, der die Kommunikation von<br />

Clients mit zentralen Verzeichnisdiensten<br />

regelt. Hierfür können unterschiedliche<br />

Authentifizierungsmechanismen zum<br />

Einsatz kommen. Die Kommunikation<br />

mit dem Client erfolgt dabei über die<br />

klassischen PAM- und NSS-Schnittstellen,<br />

im Backend gibt es dann unterschiedliche<br />

Security-Provider, beispielsweise für die<br />

Kommunikation mit einem LDAP- oder<br />

FreeIPA-Server [2].<br />

Das Tolle dabei ist, dass die Authentifizierung<br />

von einem Client auch dann noch<br />

funktioniert, wenn der zentrale Backend-<br />

Server gar nicht zur Verfügung steht. Dies<br />

kann natürlich durch einen Ausfall des<br />

Servers passieren, öfter ist die Ursache<br />

aber viel trivialer. Für Roaming-Benutzer,<br />

Schutz gegen Brute Force<br />

Die Anweisung »offline_failed_login_<br />

attempts« sorgt dafür, dass ein Benutzer<br />

nicht beliebig oft versuchen kann, das<br />

Passwort eines anderen Benutzers zu erraten.<br />

Ist der hier definierte Integer-Wert<br />

überschritten, wird der angriffsfreudige<br />

Benutzer für die in der Option »offline_<br />

failed_login_delay« definierte Zeit von<br />

weiteren Anmeldeversuchen ausgesperrt.<br />

Steht die Option auf 0, ist ein Login gar<br />

nicht mehr möglich, solange der Backend-<br />

Server nicht zur Verfügung steht.<br />

Ein Problem bei diesem Ansatz ergibt<br />

sich aber dann, wenn beispielsweise auch<br />

die Sudo-Regeln für einen Benutzer und<br />

ganze Gruppen auf dem zentralen LDAP-<br />

Server im Backend liegen. Sudo überprüft<br />

anhand der Datei »/etc/nsswitch.conf«,<br />

auf welchen Backends nach Regeln zu<br />

suchen ist. Üblicherweise ist dort ein Eintrag<br />

wie beispielsweise »sudoers = files<br />

ldap« vorhanden. Die Kommunikation<br />

erfolgt in einem solchen Fall direkt mit<br />

dem LDAP-Server. Ist der nicht verfügbar,<br />

geht die Anfrage natürlich ins Leere,<br />

und der Benutzer kann die gewünschte<br />

Aktion nicht ausführen, da es nicht<br />

möglich ist, zu verifizieren, ob sie denn<br />

überhaupt für den Benutzer gestattet ist.<br />

Der SSSD löst dieses Problem dadurch,<br />

dass die Sudo-Informationen ebenfalls<br />

in einen Cache wandern. Hierfür musste<br />

aber natürlich die Sudo-Software um ein<br />

Plugin erweitert werden, sodass bei ei-<br />

16 Ausgabe 03-2012 Admin www.admin-magazin.de


Admin-Story<br />

Login<br />

nem entsprechenden Eintrag in der Datei<br />

»/ etc/nsswitch.conf«, die Anfrage auch<br />

tatsächlich an den SSSD geschickt wird.<br />

Dieser braucht ebenfalls einen neuen<br />

Security-Provider, der die Anfragen des<br />

Sudo-Tools entgegennimmt. Die aktuellen<br />

Sudo- und SSSD-Versionen in Fedora<br />

16 haben die entsprechende Unterstützung<br />

bereits eingebaut.<br />

LDAP-Import<br />

Wer das Ganze nun einmal ausprobieren<br />

möchte und noch keine Sudo-Regeln im<br />

LDAP gespeichert hat, findet hier eine<br />

kleine Anleitung. Die in Listing 1 dargestellte<br />

LDIF-Datei ist beispielsweise<br />

mittels »ldapadd« in den persönlichen<br />

Lieblings-LDAP-Server zu laden. Die Anweisungen<br />

erzeugen zuerst den Container<br />

»ou=SUDOers«, in dem dann die<br />

eigentlichen Sudo-Regeln liegen. Hiervon<br />

existieren in meinem Beispiel zwei Stück,<br />

eine für die »goodboys« und eine für die<br />

»badboys«. Erstere dürfen, da sie immer<br />

lieb und artig sind, sämtliche Dateien<br />

auf dem System editieren. Die Badboys<br />

müssen noch lernen und dürfen daher<br />

die Dateien bisher nur lesen.<br />

Schematisch<br />

Damit der Import in den LDAP-Server<br />

funktioniert, muss dieser natürlich über<br />

das passende Schema verfügen, ansonsten<br />

meckert dieser über viele unbekannte<br />

Attribute, und der LDIF-Import schlägt<br />

fehl. Das passende Schema bringt Sudo<br />

aber glücklicherweise von Haus aus mit.<br />

Unter Fedora gibt es für verschiedene<br />

LDAP-Server im Verzeichnis »/usr/share/<br />

doc/sudo‐1.8.x/« entsprechende Schema-<br />

Dateien, diese gelangen ebenfalls wieder<br />

mit einem »ldapadd« in den Server.<br />

Damit nun auch der System Security Services<br />

Daemon von seinem neuen Security-Provider<br />

weiß, ist dieser über die<br />

Der Autor<br />

Thorsten Scherf arbeitet als Senior Consultant für<br />

Red Hat EMEA. Er ist oft als<br />

Vortragender auf Konferenzen<br />

anzutreffen. Wenn neben<br />

Arbeit und Familie noch<br />

Zeit bleibt, nimmt er gerne<br />

an Marathonläufen teil.<br />

Datei »/etc/sssd/sssd.conf« entsprechend<br />

zu konfigurieren. Listing 2 zeigt ein Beispiel<br />

für eine Konfiguration mit einem<br />

reinem LDAP-Server im Backend. Natürlich<br />

kann hier auch ein FreeIPA-Server<br />

zum Einsatz kommen. Die Manpage für<br />

»sssd.conf« hilft dann weiter und zeigt<br />

eine beispielhafte Konfiguration für einen<br />

solchen Fall.<br />

Damit im Cache nun nicht nur die Regeln<br />

landen, die bereits einmal von einem<br />

Benutzer aufgerufen wurden, sind<br />

unbedingt die beiden Anweisungen<br />

»ldap_sudo_refresh_enabled« und »ldap_<br />

sudo_refresh_timeout« zu verwenden.<br />

Diese sorgen dafür, dass wirklich alle<br />

Sudo-Regelsätze in bestimmten Abständen<br />

vom LDAP-Server geladen werden.<br />

Damit beim Aufruf von »sudo« auch der<br />

neue Security-Provider des SSSD-Dienstes<br />

angesprochen wird, ist zwingend noch<br />

die folgende Zeile in der Datei »/etc/<br />

nsswitch.conf« notwendig:<br />

sudoers = files sss<br />

Nach einem Neustart des SSSD-Dienstes<br />

ist dieser nun also in der Lage, die Sudo-<br />

Regeln in einem lokalen Cache abzulegen.<br />

Die Performance der Abfragen sollte<br />

von nun an auch besser sein, selbst beim<br />

Online-Betrieb, da nicht mehr für jede<br />

01 [sssd]<br />

Listing 2: Caching von Sudo-Regeln<br />

02 services = nss, pam, sudo<br />

03 <br />

04 [sudo]<br />

05 sudo_cache_timeout = 180<br />

06 <br />

07 [domain/LDAP]<br />

08 enumerate = true<br />

09 cache_credentials = TRUE<br />

10 ldap_sudo_refresh_enabled = TRUE<br />

11 ldap_sudo_refresh_timeout = 300<br />

einzelne Anfrage eine neue Verbindung<br />

zum LDAP-Server aufgebaut wird. Sämtliche<br />

LDAP-Abfragen laufen nur noch<br />

über eine einzelne Verbindung vom<br />

»sssd« zum LDAP-Server. Zum Schluss<br />

sei noch erwähnt, dass der Artikel davon<br />

ausgeht, dass die Authentifizierung von<br />

Benutzern bereits über den System Security<br />

Services Daemon stattfindet. Sollte<br />

dies nicht der Fall sein, reicht ein Aufruf<br />

von »system‐config‐authentication«, um<br />

dies zu ändern.<br />

Schneller Snack<br />

Da nach der ganzen Schreiberei nun<br />

mein Magen knurrt und ich nicht mehr<br />

viel Zeit habe, bis der Flieger in die Heimat<br />

geht, gibts jetzt noch einen schnellen<br />

Besuch in der British Beer Company.<br />

Anders als der Name vermuten lässt, gibt<br />

es hier neben gutem Bier nämlich auch<br />

hervorragendes Essen. (ofr)<br />

n<br />

Infos<br />

[1] System Security Services Daemon (SSSD):<br />

[https:// fedorahosted. org/ sssd/]<br />

[2] Thorsten Scherf, FreeIPA:<br />

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

Online‐Artikel/ Technical‐Review/ FreeIPA]<br />

Listing 1: LDIF-Anweisungen für die LDAP-Integration von sudo<br />

01 dn: ou=SUDOers,dc=tuxgeek,dc=de<br />

02 objectClass: top<br />

03 objectClass: nsContainer<br />

04 ou: SUDOers<br />

05 <br />

06 dn: cn=goodboys_rule,ou=SUDOers,dc=tuxgeek,dc<br />

=de<br />

07 objectClass: top<br />

08 objectClass: sudoRole<br />

09 cn: goodboys_rule<br />

10 sudoUser: %goodboys<br />

11 sudoHost: ALL<br />

12 sudoCommand: /usr/bin/vim<br />

13 <br />

14 dn: cn=badboys_rules,ou=SUDOers,dc=tuxgeek,dc<br />

=de<br />

15 objectClass: top<br />

16 objectClass: sudoRole<br />

17 cn: badboys_rules<br />

18 sudoUser: %badboys<br />

19 sudoHost: ALL<br />

20 sudoCommand: /usr/bin/less<br />

12 <br />

13 id_provider = ldap<br />

14 auth_provider = ldap<br />

15 chpass_provider = ldap<br />

16 <br />

17 ldap_uri = ldap://ldap.tuxgeek.de<br />

18 ldap_user_search_base = dc=tuxgeek,dc=de<br />

19 ldap_sudo_search_base =<br />

"ou=SUDOers,dc=tuxgeek,dc=de"<br />

20 ldap_tls_cacert = /etc/pki/tls/certs/ca‐bundle.<br />

crt<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

17


Netzwerk<br />

IPv6 Launch Day<br />

© mezzotint123rf, 123RF<br />

Am 6. Juni findet der IPv6 Launch Day statt<br />

Los geht's!<br />

Nachdem nun zum gefühlten dreizehnten Mal der IPv4-Adressraum<br />

erschöpft ist, starten die Netzwerkgremien durch: Am 6. Juni geben sie<br />

den Startschuss für ein wahrhaft IPv6-taugliches Internet. Oliver Frommel<br />

Schon den neuesten IT-Witz gehört? IPv6<br />

kommt! Nein, jetzt aber ohne Scherz,<br />

dieses Mal ist es wirklich ernst. Am 6.<br />

Juni ist der offizielle IPv6 World Launch<br />

Day [1]. Keine Angst, auch nach dem<br />

Stichtag ist es noch erlaubt, seinen Server<br />

weiter mit IPv4 zu betreiben, aber viele<br />

große Unternehmen stellen ihre Netze an<br />

diesem Tag dauerhaft so um, dass sie mit<br />

IPv6 umgehen können.<br />

Selbst die hinter der Initiative steckende<br />

Internet Society (ISOC) war sich wohl<br />

der immer wieder hinausgezögerten Einführung<br />

von IPv6 bewusst, als sie für<br />

den IPv6 Launch Day das Motto ausgab<br />

„This time it’s for real“ – dieses Mal aber<br />

wirklich.<br />

Auf dem 83. Treffen der IETF (Internet<br />

Engineering Task Force) in Paris kündigte<br />

Leslie Daigle, Cheftechnikerin der<br />

ISOC, an, dass bereits über 1000 Unternehmen<br />

ihre Teilnahme an der Initiative<br />

zugesagt hätten, darunter Google, Yahoo,<br />

Cisco, Facebook und Microsoft. Auch<br />

[admin‐magazin.​de] wird ab dem 6. Juni<br />

IPv6-fähig sein – vorausgesetzt die IPv6-<br />

Pakete finden den Weg zum Server.<br />

Kurz vor Redaktionsschluss erklärte die<br />

IETF zur „Best Current Practice“, dass<br />

alle Netzwerkschnittstellen IPv6 beherrschen<br />

sollen [2]. Langsam wird es Zeit,<br />

denn die IANA hat vor mehr als einem<br />

<strong>ADMIN</strong>-MAGAZIN E-MAIL<br />

03/2012<br />

Jahr die letzten IPv4-Adressen an die regionalen<br />

Registries ausgegeben [3]. Diese<br />

haben zwar nun noch einen Vorrat, aber<br />

der wird irgendwann zur Neige gehen.<br />

IPv6-Entwicklungsland<br />

Neben den großen Websitebetreibern nehmen<br />

am IPv6 Launch Day auch Internet-<br />

Provider teil. Die offizielle Teilnahmeliste<br />

deutscher Provider lässt allerdings noch<br />

Das Fachmagazin für IT-Experten<br />

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

Netzwerk & Security<br />

ES GEHT LOS:<br />

www.admin-magazin.de<br />

IPv6 mobil<br />

Was bietet IPv6<br />

Mobilgeräten?<br />

03 2012<br />

Mai – Juni.<br />

IPv6-START<br />

Know-how zum neuen Internet-Protokoll<br />

Dual-Stack<br />

IPv4 und IPv6 parallel<br />

betreiben<br />

Grundlagen<br />

Wie funktioniert IPv6?<br />

Security: Chancen und Risiken<br />

Autokonfiguration<br />

Im <strong>Test</strong>: Wie gut konfigurieren sich<br />

Windows, Mac und Linux selbst?<br />

Jetzt:<br />

Digitales<br />

Extra<br />

Abbildung 1: Zum IPv6 Launch Day gibt es bei <strong>ADMIN</strong><br />

ein digitales Sonderheft zum Thema IPv6.<br />

Platz nach oben, so ist darauf bisher nur<br />

die kleine Firma Degnet zu finden. Teilnehmende<br />

Provider verpflichten sich,<br />

allen Neukunden auch IPv6 anzubieten<br />

und mindestens ein Prozent des Datenverkehrs<br />

über IPv6 abzuwickeln.<br />

Auch Hardware-Hersteller sind unter<br />

den Teilnehmern des IPv6 Launch Day<br />

zu finden. So haben die Home-Router<br />

von Linksys/​Cisco künftig standardmäßig<br />

IPv6 aktiviert, ebenso wie die Geräte<br />

von D-Link. Sie sollen dann vom Provider<br />

IPv6-Adressen anfordern und diese im<br />

LAN verteilen.<br />

Auch mehr und mehr Software-Pakete<br />

beherrschen das neue Internet-Protokoll,<br />

seien es PHP, Monitoring-Pakete wie<br />

OpenNMS, das Cloud-Framework Open<br />

Stack [4] und so weiter. Bleibt „nur“<br />

noch, eventuelle Sicherheitsprobleme zu<br />

lösen, die mangels praktischer Erfahrung<br />

derzeit noch kaum absehbar sind. Sicher<br />

muss man hier nicht den Teufel an die<br />

Wand malen, aber bei umfassend aktiviertem<br />

IPv6-Verkehr sollte man wohl<br />

mindestens doppelte Sorgfalt walten lassen,<br />

um nicht unbeabsichtigt Firewalls<br />

und Ports für IPv6-Pakete zu öffnen.<br />

IPv6-Aktion<br />

Das <strong>ADMIN</strong>-<strong>Magazin</strong> veranstaltet wie<br />

letztes Jahr zum IPv6 World Day wieder<br />

eine Aktion und bietet seinen Lesern ein<br />

digitales Sonderheft zum Thema IPv6<br />

an. Die ersten 2000 Downloader erhalten<br />

das Heft umsonst. Mehr Informationen<br />

zu der Aktion und rund um den IPv6<br />

Launch Day sind unter der Adresse [5]<br />

zu finden.<br />

n<br />

Infos<br />

[1] World IPv6 Launch:<br />

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

[2] IPv6 wird zur Best Practice:<br />

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

IPv6‐wird‐zur‐Best‐Practice]<br />

[3] IANA gibt letzte Runde an IPv4-Adressen<br />

aus:<br />

[http:// www. admin‐magazin. de/ News/ IANA<br />

‐gibt‐letzte‐Runde‐an‐IPv4‐Adressen‐aus]<br />

[4] Open Stack jetzt mit IPv6-Support: [http://​<br />

www. admin‐magazin. de/ News/ Cloud‐API‐<br />

Open‐Stack‐jetzt‐mit‐IPv6]<br />

[5] <strong>ADMIN</strong>-Aktion zu IPv6 Launch: [http://​<br />

www. admin‐magazin. de/ ipv6launch]<br />

18 Ausgabe 03-2012 Admin www.admin-magazin.de


Neu!<br />

Professional Server<br />

Brandneue Dedicated Root-Server von HP<br />

AKTION bis 30.04.2012 31.05.2012 20,00€ sparen mit Gutscheincode<br />

AM-4Z94E03s12-438<br />

Neu! Neu! Neu!<br />

Professional Server S<br />

Professional Server M<br />

Professional Server L<br />

CPU<br />

Intel XEON E3-1230<br />

Intel XEON E3-1240<br />

Intel XEON E3-1270<br />

Leistung<br />

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

4 x 3,3 GHz inkl. HT<br />

4 x 3,4 GHz inkl. HT<br />

Arbeitsspeicher<br />

16 GB DDR3 ECC<br />

24 GB DDR3 ECC<br />

32 GB DDR3 ECC<br />

Festplatten 7.200 rpm<br />

2 x 1 TB Enterprise-Edition<br />

2 x 2 TB Enterprise-Edition<br />

2 x 2 TB Enterprise-Edition<br />

Anbindung<br />

1.000 MBit Flatrate<br />

1.000 MBit Flatrate<br />

1.000 MBit Flatrate<br />

KVM over IP per iLO<br />

IPv4 Adresse inkl.<br />

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

Betriebssysteme<br />

Admin-Panel<br />

Extras<br />

Monatsgrundgebühr ab<br />

Einrichtungsgebühr<br />

Debian 6.0, CentOS 6, openSUSE 12.1, Ubuntu 10.04, FreeBSD 9 & Windows 2008 R2 (19,99 € Aufpreis im Monat)<br />

Plesk 10.4 oder Confixx 3.3 inklusive<br />

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

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

99,99 €<br />

0,00 €<br />

0,00 €<br />

0,00 €<br />

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

powered by


Netzwerk<br />

NAP mit 802.1X<br />

© Sofia Vlasiuk, 123RF<br />

Portbasierter Zugriffsschutz mit NAP und 802.1X<br />

Eintrittskarte<br />

Während die Einhaltung der Sicherheitsstandards bei verwalteten PCs relativ einfach durchzusetzen ist, schleusen<br />

mobile Endgeräte wie Laptops immer wieder Viren ein. Network Access Protection (NAP) kann in Verbindung<br />

mit dem portbasierten Zugriffsschutz nach IEEE 802.1X sicherstellen, dass das mobile Endgerät die geforderten<br />

Sicherheitsstandards einhält, bevor es Zugriff auf das Unternehmensnetzwerk erhält. Eric Amberg<br />

Network Access Protection wurde mit<br />

Windows Server 2008 eingeführt und<br />

ermöglicht die Überprüfung des Sicherheitsstatus<br />

eines Clients beim Zugriff<br />

auf das Netzwerk. Dabei wird die Übereinstimmung<br />

mit definierten Richtlinien<br />

(Health Policies) geprüft. Eine Health<br />

Policy kann beispielsweise testen, ob<br />

n eine Firewall für bestimmte Profile<br />

aktiviert ist,<br />

n ein Virenscanner vorhanden ist,<br />

n die Pattern-Updates aktuell sind oder<br />

n das Betriebssystem auf dem aktuellen<br />

Patchstand ist.<br />

Wenn die Richtlinien nicht eingehalten<br />

werden, kann man den Zugriff auf das<br />

Netzwerk verweigern oder wenigstens<br />

einschränken. Gerade die Einschränkung<br />

ist interessant, da man so den Client beispielsweise<br />

in ein Wartungsnetzwerk<br />

umleiten kann, um ihm dort Updates<br />

oder eine passende Konfiguration zu<br />

vergeben. Ist er richtlinienkonform, darf<br />

er nach einer weiteren Prüfung uneingeschränkt<br />

auf das Netzwerk zugreifen.<br />

Windows unterstützt NAP für Windows<br />

XP SP3 eingeschränkt und ab Windows<br />

Vista uneingeschränkt.<br />

Viele Wege führen nach Rom<br />

Abbildung 1: Der Enforcement-Client stellt auf dem mobilen Rechner die Einhaltung der Policies sicher.<br />

NAP bietet verschiedene Varianten für<br />

den Zugriffsschutz an. Hierzu zählen:<br />

n DHCP<br />

n Terminal-Dienste (beziehungsweise<br />

Remotedesktop-Dienste)<br />

n IEEE 802.1X-Geräte<br />

n VPN<br />

n IPsec<br />

In diesem Artikel geht es um den Zugriff<br />

über kabelgebundene 802.1X-fähige Geräte,<br />

de facto also Switches. Ein weiteres<br />

typisches Einsatzszenario für 802.1X sind<br />

WLAN-Verbindungen über einen Access<br />

22 Ausgabe 03-2012 Admin www.admin-magazin.de


NAP mit 802.1X<br />

Netzwerk<br />

Point. In beiden Fällen geht es weniger<br />

um die Authentifizierung (auch wenn<br />

802.1X dafür konzipiert wurde), sondern<br />

um die Einhaltung von Konfigurationsstandards.<br />

NAP-Terminologie<br />

Damit NAP funktioniert, müssen diverse<br />

Zahnräder ineinandergreifen. Zunächst<br />

benötigt der Client einen NAP-Agent, der<br />

die benötigten Informationen über den<br />

Status der zu überprüfenden Komponenten<br />

sammelt, zum Beispiel:<br />

n Firewallstatus<br />

n Windows-Update<br />

n Virenscanner<br />

n herstellerspezifische Informationen<br />

Diese Informationen erhält er über sogenannte<br />

System Health Agents (SHA). Sie<br />

übermitteln den „Gesundheitszustand“<br />

der jeweiligen Komponente. Der passende<br />

Erzwingungsclient (Enforcement<br />

Client, Abbildung 1), eine Komponente<br />

des NAP-Agents, schickt diese Informationen<br />

dann zum Erzwingungspunkt (NAP<br />

Enforcement Point).<br />

Der Erzwingungspunkt ist, je nach Technologie,<br />

entweder ein DHCP-Server, ein<br />

VPN- oder Remote Desktop-Gateway<br />

oder eben ein 802.1X-fähiger Switch<br />

(Abbildung 2). Der Erzwingungspunkt<br />

leitet den übermittelten Integritätsstatus<br />

an den Netzwerkrichtlinienserver (Network<br />

Policy Server, NPS) weiter, der über<br />

eine sogenannte Systemintegritätsüberprüfung<br />

(System Health Validator, SHV)<br />

die gewünschten Übereinstimmungsprüfungen<br />

vornimmt. Über Netzwerk- und<br />

Integritätsrichtlinien legt der Administrator<br />

fest, unter welchen Bedingungen der<br />

Zugriff in welcher Form gestattet beziehungsweise<br />

verweigert wird.<br />

Abbildung 2: Viele Komponenten sind an der Realisierung der Network Access Policy beteiligt. Neben dem<br />

Client sind das noch der Enforcement Point und der Policy Server.<br />

Dieser leitet die Zugriffsanforderung an<br />

einen Authentication Server (in der Regel<br />

ein RADIUS-Server) weiter. Der RADIUS-<br />

Server überprüft die empfangenen Informationen<br />

und übermittelt dem Switch,<br />

ob und in welcher Art der Client Zugriff<br />

erhalten darf.<br />

Supplicant und Authenticator kommunizieren<br />

über das Extensible Authentication<br />

Protocol (EAP), das hier in der Form<br />

von EAPOL (EAP over LAN) zum Einsatz<br />

kommt. Authenticator und Authentication<br />

Server verwenden das RADIUS-Protokoll,<br />

über das die EAP-Informationen<br />

zwischen Supplicant und Authentication<br />

Server ausgetauscht werden – der Au-<br />

thenticator ist für diese Kommunikation<br />

also nur ein Relay. Hierbei kann sich<br />

übrigens auch der Authentication Server<br />

per Zertifikat dem Supplicant gegenüber<br />

ausweisen.<br />

Vereinfacht entsprechen die Begriffe von<br />

NAP denjenigen von 802.1X in etwa folgendermaßen:<br />

n Supplicant = NAP-Agent (Client)<br />

n Authenticator = Erzwingungspunkt<br />

(Switch)<br />

n Authentication Server = RADIUS-<br />

Server = NPS<br />

Dabei ist stets zu beachten, dass NAP mit<br />

802.1X nur eine der möglichen Ausprägungen<br />

des Zugriffsschutzes ist. In an-<br />

Stopp, Kontrolle!<br />

Der Standard IEEE 802.1X dient zur<br />

Authentifizierung und Autorisierung in<br />

Netzwerken [1] (Abbildung 3). Im Zusammenspiel<br />

mit NAP kann er die NAP-<br />

Richtlinien durchsetzen, sodass nur konforme<br />

Clients uneingeschränkten Zugriff<br />

auf das Netzwerk erhalten. Auch hier gibt<br />

es wiederum spezielle Bezeichnungen:<br />

Der Client tritt als Supplicant (wörtlich:<br />

Bittsteller) auf und verbindet sich mit<br />

dem Authenticator in Form des Switches.<br />

Abbildung 3: Der Standard IEEE 802.1X dient zur Authentifizierung und Autorisierung in Netzwerken und wird<br />

bei NAP zur Durchsetzung der Richtlinien verwendet.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

23


Netzwerk<br />

NAP mit 802.1X<br />

deren Szenarien (zum Beispiel NAP mit<br />

DHCP) ist die Terminologie eine andere.<br />

Die Guten ins Töpfchen …<br />

Die Unterscheidung zwischen kompatiblen<br />

und nicht kompatiblen Clients findet<br />

bei 802.1X-fähigen Switchen in der Regel<br />

über die VLAN-Zuordnung statt. Ein<br />

VLAN (Virtual LAN) ist ein logisch abgegrenztes<br />

Teilnetz innerhalb eines Switches<br />

oder eines kompletten Netzwerks.<br />

VLANs sind voneinander getrennt und<br />

können nur über Router oder Firewalls<br />

miteinander kommunizieren. Das ermöglicht<br />

eine Steuerung der Kommunikation.<br />

Das VLAN für kompatible Clients stellt<br />

einen Zugang zum Unternehmensnetzwerk<br />

bereit, während das VLAN für nicht<br />

kompatible Clients lediglich Zugriff auf<br />

die im isolierten Bereich befindlichen<br />

Wartungsserver zulässt. Dies ermöglicht<br />

dem Client, seinen Integritätsstatus wiederherzustellen,<br />

um anschließend nach<br />

einer neuen Prüfung in das Produktivnetzwerk<br />

zu gelangen. Die Aushandlungsanforderungen<br />

werden automatisch<br />

gesendet. Damit der Switch weiß, welches<br />

VLAN er dem Client-Port zuweisen<br />

muss, übermittelt der RADIUS-Server die<br />

entsprechenden Informationen. Die Konfiguration<br />

hierzu ist standardisiert, aber<br />

nicht ganz trivial. Details hierzu weiter<br />

unten.<br />

NAP auf dem Client<br />

aktivieren<br />

Stellen Sie zunächst sicher, dass auf dem<br />

Client der NAP-Agent aktiv ist. Hierzu<br />

muss der Dienst namens NAP-Agent<br />

auf automatisch gestellt und gestartet<br />

sein. Der gewünschte Erzwingungsclient<br />

Listing 1: Switch-Konfiguration für Cisco Catalyst<br />

01 Switch# configure terminal<br />

02 Switch(config)# aaa new‐model<br />

03 Switch(config)# aaa authentication dot1x default<br />

group radius<br />

04 Switch(config)# aaa authorization network group<br />

radius<br />

05 Switch(config)# dot1x system‐auth‐control<br />

06 Switch(config)# radius‐server host 10.1.1.1 key G@<br />

nZgeHe!m<br />

07 Switch(config)# interface fastethernet0/1<br />

08 Switch(config‐if)# switchport mode access<br />

09 Switch(config‐if)# dot1x port‐control auto<br />

10 Switch(config‐if)# end<br />

Abbildung 4: Konfiguration des NAP-Clients über Gruppenrichtlinien.<br />

wird im MMC-Snap-In NAP-Clientkonfiguration<br />

aktiviert – für 802.1X ist dies<br />

der EAP-Quarantäneerzwingungsclient.<br />

Unter Windows XP SP3 existiert das<br />

Snap-In noch nicht, dort müssen Sie den<br />

Erzwingungsclient über Gruppenrichtlinien<br />

aktivieren. Dazu erstellen Sie optimalerweise<br />

ein eigenes Group Policy<br />

Object (GPO) und verknüpfen es mit der<br />

Domäne beziehungsweise mit der OU,<br />

die die mobilen Geräte enthält. Die NAP-<br />

Konfiguration findet sich im GPO unter<br />

»Computerkonfiguration | Richtlinien |<br />

Windows‐Einstellungen | Sicherheitseinstellungen<br />

| Netzwerkzugriffsschutz«.<br />

In diesem Zusammenhang können Sie<br />

auch die Dienste über das GPO konfigurieren.<br />

Ob der gewünschte Erzwingungsclient<br />

aktiviert wurde, zeigt der Befehl<br />

»netsh nap client show state«.<br />

Des Weiteren muss der Starttyp des<br />

Dienstes »Automatische Konfiguration<br />

(verkabelt)« auf automatisch stehen und<br />

der Dienst aktiv sein. Das ermöglicht die<br />

802.1X-Funktionalität. Ein entsprechendes<br />

Register namens »Authentifizierung«<br />

ist nun im Konfigurationsdialogfenster<br />

des Netzwerkadapters verfügbar. Hier<br />

aktivieren Sie 802.1X und stellen sicher,<br />

dass die Methode für die Netzwerkauthentifzierung<br />

auf »Microsoft: Geschütztes<br />

EAP (PEAP)« eingestellt ist. In den<br />

zusätzlichen Einstellungen dieses Dialogfensters<br />

wird die Computerauthentifizierung<br />

aktiviert, um das Zertifikat des<br />

Netzwerkrichtlinienservers als Verschlüs-<br />

Abbildung 5: Die RADIUS-Attribute für das VLAN, das unbeschränkten Zugriff erlaubt.<br />

24 Ausgabe 03-2012 Admin www.admin-magazin.de


NAP mit 802.1X<br />

Netzwerk<br />

selungsschlüssel zu verwenden. Weitere<br />

Informationen hierzu finden Sie im Abschnitt<br />

der Server-Konfiguration weiter<br />

unten in diesem Artikel.<br />

Die Switch-Konfiguration<br />

Die 802.1X-Konfiguration des Switches<br />

hängt vom Hersteller und vom Modell<br />

ab. Die meisten managed Switches im<br />

Unternehmensumfeld sind inzwischen<br />

auch 802.1X-fähig. Hierzu ist übrigens<br />

keine Layer-3-Funktionalität erforderlich.<br />

Die in Listing 1 gezeigte Konfiguration<br />

gilt für gängige Cisco-Catalyst-Switches,<br />

wobei die Konfiguration auf einem HP-<br />

Procurve-Switch recht ähnlich ist. In<br />

jedem Fall geht es darum, 802.1X zu aktivieren,<br />

den Authentication Server zu<br />

definieren und festzulegen, auf welchen<br />

Switchports 802.1X-Authentifizierung<br />

(beziehungsweise Network Access Protection)<br />

stattfinden soll.<br />

Hierzu muss auf einem Catalyst-Switch<br />

zunächst die Zugriffskontrolle über »aaa<br />

new‐model« aktiviert werden. Im Anschluss<br />

legen Sie fest, dass er für 802.1X<br />

der beziehungsweise die weiter unten<br />

im Beispiellisting konfigurierten RADIUS-<br />

Server verwenden soll. Die VLAN-Zuweisung<br />

nimmt der Befehl »aaa authorization<br />

network network group radius« vor.<br />

Der Befehl »dot1x system‐auth‐control«<br />

aktiviert die portbasierte Zugriffsüberwachung<br />

auf dem Switch. Nun müssen Sie<br />

nur noch für jeden gewünschten Switchport<br />

festlegen, dass es sich um einen<br />

Access-Port mit 802.1X-Portüberwachung<br />

handelt, wie im Beispiel beim Port »Fastethernet0/1«.<br />

Die Serverseite<br />

Der NAP-Assistent führt durch die wichtigsten<br />

Konfigurationsschritte und reduziert<br />

somit die Komplexität erheblich.<br />

Er befindet sich auf der Hauptseite der<br />

Verwaltungskonsole des Netzwerkrichtlinienservers<br />

und verbirgt sich hinter<br />

»NAP konfigurieren«. Dort wählen Sie<br />

als Netzwerkverbindungsmethode den<br />

Punkt »IEEE 802.1X (verkabelt)« aus<br />

dem Drop-down-Menü aus. Im nächsten<br />

Dialogfenster können Sie einen RADIUS-<br />

Client auswählen oder einen neuen erstellen<br />

– beachten Sie, dass der RADIUS-<br />

Client nicht das Endgerät, sondern der<br />

Switch ist! Der gemeinsame geheime<br />

Schlüssel (Shared Secret) muss mit dem<br />

Key auf dem Switch übereinstimmen, im<br />

Beispiel also »G@nZgeHe!m«. Optional<br />

können Sie Benutzer- und Computergruppen<br />

für den Zugriff festlegen, jedoch<br />

ist dies nur selten notwendig, daher kann<br />

dieser Punkt übersprungen werden.<br />

Auf der nächsten Seite des Assistenten<br />

legen Sie das Server-Zertifikat fest, mit<br />

Kompatibel:<br />

Client besteht alle<br />

Systemintegritätsprüfungen<br />

Vollzugriff<br />

Client fordert Zugriff an.<br />

NAP-Agent übermittelt<br />

Statement of Health (SoH)<br />

Authenticator (Switch o.ä.)<br />

leitet Anforderung weiter.<br />

Integritätsrichtlinien<br />

Verbindungsanforderungsrichtlinie:<br />

Anforderung erlaubt?-<br />

Systemintegritätsüberprüfungen:<br />

Firewall aktiviert?<br />

Virenschutz aktiviert?<br />

Virenschutz aktuell?<br />

Updates installiert?<br />

Dreh- und Angelpunkt von NAP ist der<br />

Netzwerkrichtlinienserver (Network Policy<br />

Server, NPS). Diese Rolle müssen Sie<br />

zunächst über den Servermanager hinzufügen.<br />

Der entsprechende Rollendienst<br />

verbirgt sich hinter dem etwas sperrigen<br />

Namen »Netzwerkrichtlinien- und Zugriffsdienste«.<br />

Im Anschluss können Sie<br />

verschiedene Richtlinien erstellen, um<br />

den Network Policy Server als RADIUS-<br />

Server für 802.1X im Zusammenspiel mit<br />

NAP zu konfigurieren. Glücklicherweise<br />

müssen Sie das nicht alles manuell erledigen.<br />

dem sich der NPS beim NAP-Client authentifiziert.<br />

Darüber hinaus kann der<br />

NAP-Client mithilfe des übermittelten öffentlichen<br />

Schlüssels die zu übertragenden<br />

Informationen verschlüsseln. Stellen<br />

Sie sicher, dass hier die Option »Sicheres<br />

Kennwort (PEAP‐MS‐CHAPv2)« aktiviert<br />

ist. Es ist wichtig, dass der Client diesem<br />

Zertifikat vertraut. Im besten Fall handelt<br />

es sich um Zertifikat aus einer eigenen<br />

Organisationszertifizierungsstelle, die<br />

dem Client als Domänenmitglied durch<br />

Active Directory ohnehin vertraut ist.<br />

Das nächste Dialogfenster wurde in Windows<br />

Server 2008 R2 umbenannt und<br />

heißt nun »Datensteuerungselemente<br />

konfigurieren« (das englische Original<br />

»Configure Traffic Controls« klingt da<br />

deutlich griffiger). In jedem Fall können<br />

Sie hier die VLAN-Zuordnung vornehmen.<br />

Hierzu stehen die beiden Bereiche<br />

»Netzwerkvollzugriff« und »Eingeschränkter<br />

Netzwerkzugriff« zur Verfügung.<br />

Das Vorgehen ist in beiden Fällen<br />

Ja<br />

Nein<br />

Anforderung wird<br />

abgelehnt<br />

Nicht kompatibel:<br />

Client besteht mindestens eine<br />

Systemintegritäts-Prüfung nicht.<br />

Eingeschränkter<br />

Zugriff<br />

Abbildung 6: Clients, die die Sicherheitsanforderungen nicht erfüllen, werden ins Wartungsnetz gesteckt.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

25


Netzwerk<br />

NAP mit 802.1X<br />

prinzipiell gleich, daher im Folgenden<br />

nur die Anleitung für den Netzwerkvollzugriff.<br />

Die festzulegenden Attribute<br />

sind durch einen entsprechenden RFC<br />

[2] vorgegeben.<br />

Abschluss<br />

Hinter dem Button »Konfigurieren«<br />

wählen Sie als Tunnel-Typ Virtual LANs<br />

(VLAN) aus (Abbildung 5). Den Tunnel-<br />

Medium-Typ stellen Sie auf 802 ein. Die<br />

Tunnel-PVT-Group-ID legt das VLAN fest.<br />

Hier geben Sie als Wert das gewünschte<br />

VLAN für den Vollzugriff ein, zum Beispiel<br />

100 für VLAN 100. Unter Tunnel-<br />

Assignment-ID geben Sie 1 ein, um eine<br />

Tunnel-Sitzungs-ID festzulegen. Die gleichen<br />

Einstellungen müssen Sie nun auch<br />

für den eingeschränkten Netzwerkzugriff<br />

konfigurieren, also das VLAN des isolierten<br />

Wartungsnetzwerks (zum Beispiel<br />

VLAN 200).<br />

Die nächste Dialogseite legt die Integritätsrichtlinie<br />

und die zu verwendende(n)<br />

Systemintegritätsprüfung(en) fest. Standardmäßig<br />

erscheint hier nur die Windows-Integritätsprüfung,<br />

deren Einstellungen<br />

weiter unten besprochen werden.<br />

Prinzipiell ist es Software-Herstellern aber<br />

möglich, hier eigene Integritätsprüfungen<br />

zu hinterlegen. In jedem Fall müssen<br />

Sie festlegen, wie Sie nicht NAP-fähige<br />

Clients behandeln wollen – standardmäßig<br />

wird diesen nur der eingeschränkte<br />

Zugriff auf das Wartungsnetz erlaubt<br />

(Abbildung 6). Im Anschluss zeigt der<br />

Assistent, dass insgesamt sechs Richtlinien<br />

erstellt werden, die das Verhalten<br />

des NPS festlegen.<br />

Der NAP-Assistent hat seinen Job getan,<br />

ein letztes Zahnrädchen fehlt jedoch<br />

noch: die sogenannte Systemintegritätsprüfung<br />

(Englisch: System Health Validator,<br />

SHV). Zwar wird darauf bereits<br />

in den Integritätsrichtlinien verwiesen,<br />

jedoch ist bisher noch nichts festgelegt.<br />

Um das nachzuholen, öffnen Sie in der<br />

NPS-Konsole unter »Netzwerkzugriffsschutz<br />

| Systemintegritätsprüfungen<br />

| Windows‐Sicherheitsintegritätsverifizierung<br />

| Einstellungen« das Objekt<br />

»Standard«. Hier können Sie – getrennt<br />

für Windows XP und Windows7/​Vista<br />

– diverse Anforderungen vorgeben, die<br />

ein Client erfüllen muss. Hierzu zählen<br />

Firewall-Einstellungen, Antivirensoftware<br />

und so weiter (Abbildung 7).<br />

Anschließend ist das System startklar.<br />

Clients, die über einen mit 802.1X geschützten<br />

Port angebunden werden, müssen<br />

ab sofort die Integritätsprüfungen<br />

durchlaufen, worauf entschieden wird, in<br />

welchen VLAN sie landen. Ein Benutzer<br />

erhält eine entsprechende Rückmeldung<br />

über ein Infofenster, ob das System Vollzugriff<br />

erhält oder eingeschränkt wird.<br />

Darüber hinaus zeigen »ipconfig /all« wie<br />

auch »netsh nap client show state« an, ob<br />

der Zugriff eingeschränkt ist oder nicht.<br />

NAP erleichtert dem Administrator die<br />

Einhaltung von Sicherheitsstandards im<br />

Netzwerk. Insbesondere mobile und externe<br />

Clients, die häufig die Netzwerke<br />

wechseln, sind ohne NAP nur schwer zu<br />

überwachen. NAP ermöglicht die Zutrittskontrolle<br />

über verschiedene Eingänge.<br />

Hierzu zählen DHCP, VPN und IPSec,<br />

Remote Desktop-Dienste und 802.1Xportbasierter<br />

Zugriffsschutz. Letzterer<br />

kann für kabellose (WLAN-) und kabelgebundene<br />

Netzwerke verwendet werden<br />

und hat den Vorteil, dass bereits bei der<br />

physischen Verbindung mit dem Netzwerk<br />

eine Kontrolle stattfindet.<br />

Restrisiko<br />

Der Administrator muss sich jedoch darüber<br />

im Klaren sein, dass NAP keinen<br />

umfassenden Schutz vor Angriffen bietet.<br />

Da die Clients Informationen senden, die<br />

auch gefälscht sein könnten, dient das<br />

Konzept der Network Access Protection<br />

eher zur Vermeidung unbeabsichtigter<br />

Schadensszenarien und schützt weniger<br />

gegen böswillige Angriffsversuche durch<br />

Hacker.<br />

Die Möglichkeiten von NAP gehen jedoch<br />

weit über das hier gezeigte einfache Beispiel<br />

hinaus, sodass jeder Administrator<br />

eines Netzwerks mit hohem Schutzbedürfnis<br />

über den Einsatz von NAP nachdenken<br />

sollte. Microsoft stellt verschiedene<br />

Step-by-Step Guides bereit, um NAP<br />

im <strong>Test</strong>netz zu konfigurieren [3]. (ofr)n<br />

Infos<br />

[1] IEEE 802.1X: [http:// standards. ieee. org/​<br />

getieee802/ download/ 802. 1X‐2004. pdf]<br />

[2] RFC 2868 (RADIUS Tunnel Authentication<br />

Attributes): [http:// www. ietf. org/ rfc/​<br />

rfc2868. txt]<br />

[3] Der Step-by-Step Guide für NAP 802.1X:<br />

[http:// www. microsoft. com/ download/ en/​<br />

details. aspx? displaylang=en& id=733]<br />

Abbildung 7: Hier kann der Administrator eingeben, welche Sicherheitskriterien die beteiligten Clients<br />

erfüllen müssen.<br />

Der Autor<br />

Eric Amberg ist Geschäftsführer der ATRACON<br />

GmbH ([http:// www. atracon. de]), seit vielen<br />

Jahren im Bereich IT-Infrastruktur als Trainer<br />

und Consultant tätig und verfügt über langjährige<br />

Projekterfahrung. Sein<br />

besonderer Fokus liegt auf<br />

Netzwerk-Themen. In seinen<br />

Seminaren legt er großen<br />

Wert auf eine praxisnahe<br />

Schulung.<br />

26 Ausgabe 03-2012 Admin www.admin-magazin.de


CLEVER KOMBINIERT!<br />

Premium Server + Symantec S S L- Z e r t i fi k a t<br />

Leistungsstark! Sicher! Günstig!<br />

Jetzt 4 Wochen unverbindlich testen!<br />

Inkl. Symantec Secure Site SSL -Zertifikat!<br />

VIRTUAL DEDICATED SERVER<br />

» 4 GB RAM<br />

» 100 GB Speicherplatz<br />

» Root-Zugriff<br />

» Parallels<br />

® Plesk<br />

» Hostingsystem von Dell<br />

®<br />

Regulär: 49,-<br />

39,-<br />

EUR / Monat*<br />

DEDICATED SERVER<br />

» Intel ® Xeon ® E3-1260L<br />

» 4 Cores mit je 2,4 GHz<br />

» 8 GB RAM<br />

» 2 x 600 GB SAS HDD<br />

» Dell<br />

® PowerEdge R210 II<br />

EUR / Monat*<br />

Nur bei InterNetX GRATIS!<br />

» Symantec SSL Secure Site<br />

› Malware Scan<br />

› Trust Seal<br />

› Seal-in-Search<br />

› Bis 256-Bit-Verschlüsselung<br />

» Domain-, Server- & SSL -<br />

Management-Tools<br />

Regulär:<br />

Regulär: 129,-<br />

79,-<br />

299,-<br />

0,-<br />

Zu jedem Server<br />

einmalig*<br />

Klickrate in Suchmaschinen maximieren<br />

Durch Seal-in-Search wird in<br />

Suchmaschinen-Einträgen<br />

Trust Seal angezeigt.<br />

Mehr Bestellungen, mehr Kundenanfragen<br />

Zeigen Sie Ihren Kunden,<br />

dass Ihr Unternehmen durch<br />

Trust Seal verifiziert ist.<br />

Security Scan Ihres Servers<br />

Präventivschutz! Prüfen Sie Ihren Server mit<br />

Vulnerability Assessment* auf Schwachstellen.<br />

Vertrauenswürdige Webseite<br />

Der Malware Scan garantiert Ihren Kunden eine<br />

sichere Website – frei von Schad-Software.<br />

Jetzt informieren<br />

und bestellen:<br />

www.internetx.com<br />

+49 (0) 941 / 59 559-483<br />

Unser Partner<br />

*Alle Preise richten sich nur an Gewerbetreibende und verstehen sich zzgl. gesetzlicher MwSt. Bei allen Angeboten sind das Symantec Secure Site SSL-Zertifikat für 12 Monate gratis und<br />

500 GB Traffic/Monat inklusive. Je nach Nutzung fallen weitere Traffic-Gebühren ab 0,29 €/GB an. Der <strong>Test</strong>zeitraum beträgt 28 Kalendertage nach Bereitstellung und ist begrenzt auf einen <strong>Test</strong><br />

pro Kunden. Vulnerability Assessment ist erhältlich ab Symantec Secure Site Pro. Virtual Dedicated Server: 39,- €/Monat. Mindestvertragslaufzeit 12 Monate. Keine Einrichtungsgebühr.<br />

Dedicated Server: 79,- €/Monat. Mindestvertragslaufzeit 24 Monate. Einmalige Einrichtungsgebühr 79,- €. Nur solange der Vorrat reicht. Die Abbildung des Servers ist symbolisch.


Netzwerk<br />

VLANs<br />

© Stef Bennett, 123RF<br />

VLAN-Grundlagen<br />

Getrennte Wege<br />

Oft reicht ein kleiner Fehler, um ein ganzes Netzwerk lahmzulegen. Ein unbedacht installierter DHCP-Server<br />

streut plötzlich falsche Adressen, und der Verkehr kommt zum Erliegen. Virtuelle Netzwerke (VLANs) schützen<br />

vor solchen und ähnlichen Katastrophen. Werner Fischer<br />

Listing 1: Ethernet-Konfiguration<br />

01 auto eth0.1001<br />

02 iface eth0.1001 inet static<br />

03 address 10.0.1.1<br />

04 netmask 255.255.255.0<br />

05 vlan‐raw‐device eth0<br />

Probleme wie das mit dem unabsichtlich<br />

mitinstallierten DHCP-Server sind nicht<br />

neu, und ähnliche Ursachen gibt es viele.<br />

Jemand vertauscht irrtümlich IP-Adresse<br />

und Adresse des Standardgateways oder<br />

koppelt zwei Switches mit einem zweiten<br />

Kabel, was eine Schleife erzeugt. Oder<br />

jemand verbindet zwei Ports eines Patchpanels,<br />

die beide zum gleichen Switch<br />

führen. Teurere Switches können solche<br />

Probleme zwar erkennen, doch längst<br />

nicht alle Geräte haben derartige Funktionen.<br />

Die Folgen sind fatal – das Netzwerk<br />

steht komplett. Alle hier beschriebenen<br />

Probleme haben Auswirkungen auf alle<br />

Rechner im gesamten Netzwerksegment.<br />

Eine Unterteilung in mehrere kleinere<br />

Segmente mit jeweils eigenen Broadcast-<br />

Domänen vermindert die Anzahl der<br />

potenziell betroffenen Systeme. Sie erleichtert<br />

damit auch die Fehlersuche. Außerdem<br />

gehören bestimmte Traffic-Typen<br />

wie iSCSI oder VOIP sowohl aus Sicherheits-<br />

als auch aus Stabilitätsgründen in<br />

eigene Netze.<br />

Netzwerk unterteilen<br />

Das folgende Beispiel illustriert die Aufteilung<br />

auf zwei Netzwerke und veranschaulicht<br />

die Vorteile von VLANs. Ein<br />

Netzwerk wird dabei für die Abteilung<br />

Marketing eingerichtet, ein weiteres für<br />

die Abteilung Vertrieb. Je nach verwendetem<br />

Switch-Typ gibt es zwei Möglichkeiten<br />

zur Einrichtung der beiden Netzwerke:<br />

n Unmanaged Switch: Derartige Switches<br />

können nicht konfiguriert werden. Sie<br />

bieten keine aktive Unterstützung von<br />

VLANs. Daher wären in diesem Fall<br />

zwei Switches erforderlich, um das<br />

bestehende Netzwerk auf zwei Netze<br />

aufzuteilen.<br />

n Managed Switch: Diese Switches<br />

bieten meist mehrere Konfigurationsoptionen,<br />

darunter Unterstützung<br />

für VLANs, Spanning Tree und Link<br />

Aggregation. Diese Switches werden<br />

mit einer eigenen IP-Adresse versehen<br />

und können über diese per Webbrowser<br />

verwaltet werden.<br />

Der Einsatz von VLANs erfordert die<br />

letztgenannten Managed Switches. Wenn<br />

eine Kommunikation zwischen den beiden<br />

aufgeteilten Netzen möglich sein soll,<br />

muss dazu ein Router an beide Netze<br />

angeschlossen werden. Teurere Managed<br />

Switches (sogenannte Layer-3-Switche)<br />

haben eine solche Routing-Funktionalität<br />

direkt eingebaut. Broadcasts und Multicasts<br />

bleiben aber trotz Router im jeweiligen<br />

Netz und werden nicht geroutet. Man<br />

kann damit also von einem PC aus dem<br />

Marketing-LAN auf einen Fileserver im<br />

Vertriebs-LAN zugreifen (Unicast). Ein<br />

DHCP-Request (Broadcast) wird vom<br />

Router aber nicht in das benachbarte<br />

Netz weitergeleitet.<br />

Portbasierte VLANs<br />

Mit portbasierten VLANs wird ein Managed<br />

Switch virtuell auf mehrere Switches<br />

aufgeteilt. Jedes VLAN wird mit einer<br />

VLAN-ID zwischen 1 und 4094 gekennzeichnet,<br />

wobei die VLAN-ID 1 als Stan-<br />

28 Ausgabe 03-2012 Admin www.admin-magazin.de


VLANs<br />

Netzwerk<br />

Abbildung 1: VLAN-IDs können direkt am Switch erstellt und dort mit einem<br />

Namen versehen werden.<br />

dard-VLAN (Default VLAN) Verwendung<br />

findet. Im Auslieferungszustand sind alle<br />

Ports eines Managed Switch dem Standard-VLAN<br />

zugeordnet, er funktioniert<br />

damit quasi wie ein normaler Switch<br />

ohne VLANs. Die IP-Adresse des Switches<br />

ist in der Regel ausschließlich über<br />

Ports erreichbar, die diesem VLAN fix<br />

zugeordnet sind. Im Beispiel wird die<br />

VLAN-ID 1001 für LAN Marketing und<br />

Marketing<br />

PC 1<br />

Marketing<br />

PC 1<br />

Mark.<br />

PC 2<br />

Mark.<br />

PC 2<br />

Vertrieb<br />

PC 1<br />

1 2 3 4 5 6 7<br />

19<br />

10 11 12 13 14 15<br />

Vertrieb<br />

PC 1<br />

1 2 3 4 5 6 7<br />

19<br />

10 11 12 13 14 15<br />

Vertrieb<br />

PC 2<br />

8<br />

16<br />

Vertrieb<br />

PC 2<br />

1002 für LAN Vertrieb<br />

verwendet.<br />

Die VLANs können<br />

in der Weboberfläche<br />

des Switches<br />

definiert werden<br />

(Abbildung 1). Im<br />

Beispiel sind dem<br />

VLAN 1001 die<br />

Ports 1 bis 4 und<br />

dem VLAN 1002<br />

die Ports 5 bis 8<br />

zugewiesen (Abbildung<br />

2). Die<br />

Ethernet Frames<br />

(Netzwerkpakete)<br />

werden in diesem<br />

Modus nicht gesondert<br />

gekennzeichnet.<br />

Der<br />

Switch weiß aufgrund<br />

der Nummer<br />

des Ports auf<br />

dem er einen Frame erhält, zu welchem<br />

VLAN er diesen Frame zuordnen muss.<br />

Man spricht bei portbasierten VLANs<br />

daher oft auch von Untagged VLANs, da<br />

die Ethernet Frames nicht mit einem Tag<br />

versehen werden.<br />

Portbasierte VLANs kommen vor allem<br />

bei kleinen Installationen zum Einsatz.<br />

Aber auch in größeren Umgebungen werden<br />

portbasierte VLANs verwendet, dort<br />

Marketing<br />

PC 3<br />

Marketing<br />

PC 3<br />

Mark.<br />

PC 4<br />

Mark.<br />

PC 4<br />

Vertrieb<br />

PC 3<br />

8 1 2 3 4 5 6 7<br />

Vertrieb<br />

PC 4<br />

16 19<br />

10 11 12 13 14 15 16<br />

tagged VLANs 1001 und 1002<br />

Vertrieb<br />

PC 3<br />

1 2 3 4 5 6 7<br />

19<br />

10 11 12 13 14 15<br />

Vertrieb<br />

PC 4<br />

Abbildung 3: VLANs können sich über mehrere Switches erstrecken. Ohne Tagging braucht es aber pro VLAN<br />

ein eigenes Kabel.<br />

Abbildung 4: VLANs über mehrere Switches mit nur einer Verbindung: Tagged VLANs machen dies möglich.<br />

8<br />

16<br />

8<br />

Marketing<br />

PC 1<br />

Mark.<br />

PC 2<br />

1 2 3 4 5 6 7<br />

aber zumeist mit Tagged VLANs kombiniert.<br />

Wird etwa die Firma in unserem<br />

Beispiel um ein Stockwerk erweitert,<br />

können mit einem zusätzlichen Switch<br />

auch in diesem Stockwerk Rechner sowohl<br />

an das VLAN 1001 als auch an das<br />

VLAN 1002 angeschlossen werden. Mit<br />

ausschließlich portbasierten VLANs sind<br />

dazu aber zwei Kabel erforderlich (Abbildung<br />

3). Ein einzelnes Kabel reicht<br />

nur, wenn für die Verbindung der beiden<br />

Switches ein Tagged VLAN konfiguriert<br />

wird.<br />

Tagged VLANs<br />

Vertrieb<br />

PC 1<br />

19<br />

10 11 12 13 14 15<br />

Vertrieb<br />

PC 2<br />

Abbildung 2: Einfache VLAN-Konfiguration: Der<br />

Switch wird auf drei VLANs aufgeteilt, die grau<br />

dargestellten Ports verbleiben im Standard VLAN 1.<br />

Tagged VLANs arbeiten im Gegensatz zu<br />

Untagged VLANs nicht Port-basiert, sondern<br />

Frame-basiert. Es wird dabei ein Port<br />

nicht mehr nur einem einzelnen, sondern<br />

mehreren VLANs zugeordnet. Damit der<br />

Switch weiß, zu welchem VLAN ein<br />

Ethernet Frame gehört, bekommt jedes<br />

Frame ein sogenanntes VLAN-Tag. Der<br />

Ausdruck Tag kommt aus dem Englischen<br />

und bedeutet Anhängeschild. Genauso<br />

wie Kleider Preisschilder angehängt bekommen,<br />

werden den Ethernetframes<br />

VLAN-Schildchen verpasst. Der große<br />

Vorteil: Für die Verbindung der beiden<br />

Switches aus unserem Beispiel reicht nun<br />

ein einzelnes Kabel (Abbildung 4).<br />

Der Netzwerkport 16 wird als Tagged<br />

Member beiden VLANs zugewiesen (Abbildung<br />

5). Untagged und Tagged VLANs<br />

lassen sich so also ohne Weiteres kombinieren.<br />

Kommt jetzt ein mit einem VLAN-<br />

Tag versehener Ethernet Frame am Port<br />

16 an, dann entfernt der Switch das Tag<br />

bevor er den Frame auf einem passenden<br />

Untagged Port des VLANs zum Zielrechner<br />

weiterschickt. Viele Switches bieten<br />

neben der Option einen Port mehreren<br />

8<br />

16<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

29


Netzwerk<br />

VLANs<br />

Tabelle 1: PCP-Netzwerkprioritäten<br />

PCP-Priorität Kürzel<br />

Traffic-<br />

Eigenschaften<br />

Beschreibung<br />

1 0 (niedrigste) BK Hintergrund (Background)<br />

0 1 BE Best Effort<br />

2 2 EE Excellent Effort<br />

3 3 CA Kritische Anwendungen (Critical Applications)<br />

4 4 VI Video, < 100 ms Verzögerung (Video)<br />

5 5 VO Sprache, < 10 ms Verzögerung (Voice)<br />

6 6 IC Internetwork Control<br />

7 7 (höchste) NC Network Control<br />

Tagged VLANs zuzuordnen auch gleich<br />

die Option VLAN Trunk an. Ein solcher<br />

Port leitet Tagged VLAN Frames für alle<br />

VLAN IDs weiter.<br />

Wie VLAN-Tags im Detail aufgebaut sind,<br />

beschreibt der IEEE Standard 802.1Q<br />

[1] (Abbildung 6). VLAN Tags waren<br />

in Ethernet Frames ursprünglich nicht<br />

vorgesehen. Deshalb wurde nachträglich<br />

der Ethernet-Typ mit dem hexadezimalen<br />

Wert 0x8100 definiert. Der besagt, dass<br />

der eigentliche Ethernet-Typ vier Bytes<br />

später definiert wird und davor Informationen<br />

zur Priorität des Frames und zur<br />

VLAN ID kommen. Welche Prioritätsstufen<br />

(PCPs) es gibt, zeigt Tabelle 1.<br />

Dem PCP folgt der Canonical Format Indicator<br />

(CFI). Dieses Bit sorgt für Kompatibilität<br />

zwischen Ethernet und Token<br />

Ring und ist in der Regel Null. Die verbleibenden<br />

zwölf Bits vor dem Ethernet-<br />

Typ definieren die VLAN ID.<br />

Tagged VLANs lassen sich aber nicht nur<br />

zwischen Switches einsetzen. Auch Betriebssysteme<br />

wie Linux oder Windows<br />

und Virtualisierungslösungen wie VMware<br />

vSphere unterstützen grundsätzlich<br />

Tagged VLANs. Damit können sie mit mit<br />

einer physischen Netzwerkverbindung an<br />

mehrere VLANs angeschlossen werden,<br />

was vor allem bei Bladeservern praktisch<br />

ist. Dort ist die Anzahl an möglichen<br />

Netzwerkkarten meist auf vier Stück pro<br />

Servereinschub limitiert. Dank Tagged<br />

VLANs können aber auch solche Server<br />

problemlos an weitaus mehr Netzwerke<br />

angeschlossen werden.<br />

Linux<br />

Linux bringt alle notwendigen Komponenten<br />

für Tagged VLANs von Haus aus<br />

mit. Das Modul 8021q sorgt für die Kernel<br />

Unterstützung, ein Userspace-Tool<br />

(»vconfig«) ermöglicht die Konfiguration<br />

auf der Kommandozeile. Unter Ubuntu<br />

wird das Tool mit »sudo apt‐get install<br />

vlan« installiert, das Modul mit »sudo<br />

modprobe 8021q« geladen. Ein anschließendes<br />

»sudo vconfig add eth0 1001«<br />

erzeugt das Netzwerkgerät eth0.1001,<br />

das für das VLAN mit der ID 1001 getaggt<br />

wird. Der Befehl »sudo ip addr add<br />

10.0.1.1/24 dev eth0.1001« setzt die IP<br />

Adresse für dieses Gerät.<br />

Damit die Einstellungen permanent gespeichert<br />

werden, wird das Modul 8021q<br />

in der Datei »/etc/​modules« eingetragen.<br />

Den erforderlichen Eintrag für die IP Kon-<br />

Abbildung 5: VLAN 1001 und 1002 haben den Port 16 als Tagged Member.<br />

TPI (Tag Protocol ID),<br />

da dass VLAN Tag optional ist, kennzeichnet<br />

TPI = 8100 (Hex) ein Ethernet Frame<br />

als IEEE 802.1Q-tagged Frame<br />

(Ethertype 8100 (Hex))<br />

01 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0<br />

PCP<br />

(Priorität)<br />

CFI<br />

TCI (Tag Control ID)<br />

VLAN ID,<br />

hier 1001 (Dezimal)<br />

0 0 0 0 0 0 01 01 01 01 01 0 01 0 0 01<br />

81 (Hex) 0<br />

00 (Hex) 0<br />

03 (Hex) 0<br />

E9 (Hex) 0<br />

55 55 55 55 55 55 55 D5 00 1F 16 11 22 33 00 1F 16 44 55 66 81 00 03 E9 08 00 ... ...<br />

Präambel<br />

Ziel MAC<br />

Adresse<br />

Quell MAC<br />

Adresse<br />

VLAN Tag<br />

(optional)<br />

Typ Daten<br />

(0 - 1500 Byte)<br />

SFD<br />

FCS<br />

(32-bit CRC)<br />

Ethernet Frame<br />

Abbildung 6: Schematischer Aufbau eines Ethernet Frames: Das Feld »VLAN Tag« enthält die ID desjenigen<br />

VLANs, zu dem dieses Frame gehört.<br />

Abbildung 7: Unter Windows kommt die Unterstützung<br />

von Tagged VLANs vom Treiber der Netzwerkkarte.<br />

30 Ausgabe 03-2012 Admin www.admin-magazin.de


figuration in »/etc/network/<br />

interfaces« zeigt Listing 1.<br />

Windows<br />

Unter Windows kommt die<br />

Funktionalität für Tagged<br />

VLANs vom Treiber der Netzwerkkarte.<br />

Ob Tagged VLANs<br />

unterstützt werden, hängt von<br />

der jeweiligen Netzwerkkarte<br />

ab, ebenso die konkrete Konfiguration.<br />

Abbildung 7 zeigt<br />

als Beispiel die VLAN Konfiguration<br />

eines Intel 82577LM<br />

Netzwerkchips.<br />

Abbildung 8: Die virtuellen VMware vSwitches unterstützen<br />

portbasierte und Tagged VLANs.<br />

VMware<br />

Bei VMware ist wie bei Linux die Unterstützung<br />

von Tagged VLANs unabhängig<br />

vom Netzwerkkartentreiber. Virtuelle<br />

Server lassen sich problemlos mit unterschiedlichen<br />

VLANs verbinden, auch<br />

wenn die Kommunikation nach außen<br />

über eine einzelne Netzwerkkarte per<br />

Tagged VLAN zum physischen Switch<br />

erfolgt. Der Administrator legt dazu<br />

mehrere Portgruppen am betroffenen<br />

vSwitch an. Jede Portgruppe wird einem<br />

bestimmten VLAN zugeordnet. In diesem<br />

Fall funktionieren die einzelnen virtuellen<br />

Ports der Portgruppe wie Untagged<br />

VLANs eines physischen Switches: Der<br />

dahinter liegende (virtuelle) Rechner ist<br />

fix mit dem konfigurierten VLAN verbunden<br />

und sieht auf den übertragenen<br />

Ethernet Frames keine VLAN Tags.<br />

VMware unterstützt daneben auch den<br />

Betrieb von virtuellen Maschinen, die<br />

selbst das Tagging übernehmen (Abbildung<br />

8).<br />

Sicherheit<br />

Doch wie sieht es mit der Sicherheit von<br />

VLANs aus? Die hängt hauptsächlich von<br />

einer sauberen Konfiguration ab:<br />

n Nicht belegte Switch-Ports soll man<br />

einem ungenutzten VLAN zuordnen<br />

und deaktivieren.<br />

n Aktive Switch-Ports, an denen Endgeräte<br />

angeschlossen sind, werden<br />

entweder nur einem Untagged VLAN<br />

zugeordnet oder nur jenen Tagged<br />

VLANs, die wirklich nötig sind. Keinesfalls<br />

werden Endgeräte an Switch-<br />

Ports angeschlossen, die als Trunk<br />

konfiguriert sind. Ein Angreifer könnte<br />

sonst von einem solchen Endgerät aus<br />

mit allen VLANs kommunizieren.<br />

n Die Unterstützung von dynamischen<br />

VLAN Konfigurationen per Multiple<br />

VLAN Registration Protocol (MVRP)<br />

oder früher GARP VLAN Registration<br />

Protocol ist in kleinen und mittleren<br />

Umgebungen selten erforderlich. Falls<br />

der Switch diese Protokolle unterstützt,<br />

werden sie daher deaktiviert.<br />

n Das Standard VLAN mit der VLAN-ID<br />

1 wird ausschließlich zur Konfiguration<br />

verwendet und der Switch mit<br />

einem sicheren Passwort geschützt.<br />

Neben diesen Sicherheitsmaßnahmen<br />

bieten viele Switches Einstellungen für<br />

erhöhte Netzwerksicherheit. Beispiele<br />

sind Switch-Port Security zur Eingrenzung<br />

von erlaubten MAC-Adressen an<br />

einem Port oder Ingress Filtering zum<br />

Verwerfen von Tagged Frames, deren<br />

VLAN IDs nicht zu den VLANs gehören,<br />

die auf einem Port konfiguriert sind. Ein<br />

Blick in das Handbuch lohnt. (jcb) n<br />

Infos<br />

[1] Media Access Control (MAC) Bridges and<br />

Virtual Bridge Local Area Networks [http://​<br />

standards. ieee. org/ getieee802/ download/​<br />

802. 1Q‐2011. pdf]<br />

Der Autor<br />

Werner Fischer ist seit 2005 Technology Specialist<br />

bei der Thomas-Krenn.AG und Chefredakteur<br />

des Thomas Krenn Wikis. Seine Schwerpunkte<br />

sind Hardware-Monitoring, Virtualisierung, I/​O-<br />

Performance und Hochverfügbarkeit.<br />

MAGAZIN<br />

www.admin-magazin.de<br />

Ausgabe 03-2012<br />

31


1&1 WEBHOSTING<br />

UNENDLICHE MÖGLICHKEIT<br />

PERSÖNLICHER<br />

ANSPRECH-<br />

PARTNER!<br />

MAXIMALE<br />

SICHERHEIT<br />

■ Georedundanter Betrieb –<br />

parallel in räumlich getrennten<br />

Hochleistungs-Rechenzentren<br />

in Deutschland<br />

■ Maximale Verfügbarkeit<br />

MODERNSTE<br />

TECHNIK<br />

■ Über 275 Gbit/s Außenanbindung<br />

■ 9.000 TeraByte monatliches<br />

Transfervolumen<br />

■ Perfekte Entwicklungsumgebung<br />

■ Mehr als 70.000 Hightech-Server<br />

im Parallelbetrieb<br />

■ Hohe Innovationskraft durch<br />

1.300 Entwickler bei 1&1<br />

KOSTENLOSER<br />

PLATIN-SERVICE<br />

■ Profi-Hotline mit persönlichem<br />

Ansprechpartner, über kostenlose<br />

0800-Nummer jeden Tag und<br />

rund um die Uhr erreichbar<br />

* 1&1 Dual Unlimited 6 Monate 0,– €/Monat, danach 29,99 €/Monat. Einmalige Einrichtungsgebühr 14,90 € (entfällt bei .de Domain). 12 Monate Mindestvertragslaufzeit. Preise inkl. MwSt.


EN FÜR IHRE PROFI-WEBSITE!<br />

■ UNLIMITED Webspace<br />

■ UNLIMITED Traffic<br />

■ UNLIMITED E-Mail Postfächer<br />

■ UNLIMITED FTP-Zugänge<br />

■ UNLIMITED MySQL-Datenbanken (je 1 GB)<br />

■ UNLIMITED Click&Build Applications<br />

■ UNLIMITED Subdomains<br />

■ 12 Inklusiv-Domains<br />

■ PHP, Zend Framework, Perl, Python, Ruby, SSI,<br />

Versionsmanagement (git)<br />

■ NetObjects Fusion ® 1&1 Edition oder<br />

Adobe Dreamweaver ® CS4<br />

■ NEU: Facebook Credits in Höhe von 30,– €<br />

■ 24/7 Platin-Service<br />

1&1 DUAL UNLIMITED<br />

6 MONATE FÜR<br />

danach<br />

0,–€/Monat,<br />

29,99 €/Monat*<br />

.DE<br />

DOMAIN<br />

0, 29<br />

Keine Einrichtungsgebühr!<br />

1 JAHR NUR<br />

€/Monat*<br />

Im 2. Jahr 0,49 €/Monat<br />

Weitere Sparangebote auf unserer Website.<br />

Jetzt informieren<br />

und bestellen:<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

www.1und1.info


<strong>Storage</strong><br />

NAS-<strong>Test</strong><br />

© Kevin Penhallow, Fotolia<br />

NAS-Filer von vier bis 40 TByte im Vergleich<br />

Ablagesysteme<br />

Wer dem direkt angeschlossenen Speicher entwachsen ist und etwas Skalierbareres und Flexibleres sucht, aber<br />

auch keine Riesensummen in ein SAN investieren will oder kann, der landet sehr oft bei einem NAS-Speicher. Das<br />

<strong>ADMIN</strong>-<strong>Magazin</strong> hat eine breite Palette dieser Filer getestet. Jens-Christoph Brendel, Michael Kromer, Georg Schönberger, Michael Streb<br />

Bei diesem <strong>Test</strong> hatten wir kleinere bis<br />

mittelgroße Anwendergruppen im Hinterkopf,<br />

angefangen von einer größeren<br />

Arbeitsgruppe oder Außenstelle bis zum<br />

kleineren Mittelständler. Entsprechend<br />

haben wir uns Geräte von vier bis etwa<br />

40 TByte Speicherplatz ausgesucht (von<br />

denen sich einige mit externen Erweiterungen<br />

allerdings bis weit über 100 TByte<br />

aufrüsten lassen, Tabelle 1). In diesem<br />

Limit haben wir eine bunte Mischung<br />

angestrebt, die vielen etwas zu bieten hat<br />

und zu jedem Budget passt: Die <strong>Test</strong>geräte<br />

kosteten zwischen 500 und 50 000<br />

Euro. In jedem Fall waren wir bemüht,<br />

die jeweiligen Stärken und Schwächen<br />

der Geräte abzuwägen und zu verdeutlichen,<br />

wann dieses oder jenes infrage<br />

kommen könnte.<br />

Neben den Geräten, die wir schließlich<br />

in den <strong>Test</strong> aufgenommen haben, hatten<br />

wir auch Modelle der Hersteller EMC<br />

und Dell angefragt. Dell hatte zuerst<br />

Sorge, womöglich das einzige Gerät mit<br />

Windows-Betriebssystem bereitzustellen,<br />

redete sich aber am Ende nicht auf sein<br />

angeknackstes Selbstbewusstsein heraus,<br />

sondern darauf, man habe kein <strong>Test</strong>gerät<br />

zur Verfügung. Dasselbe Problem hatte<br />

angeblich EMC. Wie dem auch sei, die<br />

bereitwilligen Teilnehmer stecken auch<br />

so ein breites und einigermaßen repräsentatives<br />

Feld ab.<br />

E IBM NAS 3300 A20<br />

IBMs Filer bringt kein eigens für ihn<br />

entwickeltes Betriebssystem mit, sondern<br />

nutzt Data Ontap von NetApp in<br />

der Version 7.3.5. Die Software ist auf<br />

Netzwerkspeicher zugeschnitten und<br />

bringt Multiprotokollsupport, Hochverfügbarkeits-Features<br />

oder konfigurierbare<br />

Daten-Policies bereits mit. Bedienbar ist<br />

sie sowohl über ein Webinterface (Abbildung<br />

1) als auch über die Kommandozeile,<br />

die man via SSH-Login oder über<br />

ein serielles Terminal erreicht. Neben<br />

CIFS und NFS unterstützt der Filer auch<br />

WebDAV, FTP- und HTTP-Zugriffe, außerdem<br />

lässt er sich direkt via FibreChannel<br />

oder iSCSI als SAN-Device ansprechen.<br />

Ein 844 Din-A4-Seiten starker Software<br />

Guide deutet bereits an, dass die Handhabung<br />

nicht immer trivial ist. Zumal<br />

man über die Hardware noch einmal 370<br />

Seiten extra lesen kann.<br />

Apropos Web-Interface: Ein Teil der GUI-<br />

Funktionen wird durch Java-Applets<br />

realisiert, die sich in unserem Versuch<br />

erst zur Mitarbeit überreden ließen,<br />

nachdem sowohl im Browser als auch<br />

über das Java Control Panel die Unterstützung<br />

für TLS 1.0 deaktiviert wurde.<br />

Wer das nicht weiß (oder wie wir vom<br />

freundlichen IBM-Support erfährt), verliert<br />

vermutlich etliches an Zeit. Apropos:<br />

Unter Linux gibt es das Control Panel nur<br />

in der Sun-Java-Implementierung, nicht<br />

im OpenJDK.<br />

Stöbert man am Anfang ein wenig in<br />

den Menüs der Web-GUI, hinterlässt den<br />

ersten nachhaltigen Eindruck ein Blick<br />

auf »Filer | Manage Licenses«: Dort sind<br />

über 50 (!) einzeln lizenzierbare Features<br />

aufgelistet, angefangen beim eher<br />

grundlegenden Protokollsupport über<br />

fortgeschrittenere Fähigkeiten wie das<br />

Clustern, Klonen oder Deduplizieren bis<br />

zu hochspezialisierten Integrationsoptionen<br />

zur Einbindung des Speichers in<br />

34 Ausgabe 03-2012 Admin www.admin-magazin.de


NAS-<strong>Test</strong><br />

<strong>Storage</strong><br />

Oracle- oder SAP-Landschaften. Dabei<br />

kristallisiert sich ein etwas zwiespältiges<br />

Bild heraus: Zum einen kann man<br />

IBMs Filer offensichtlich sehr flexibel an<br />

viele Gegebenheiten anpassen und dem<br />

Admin steht dabei ein reicher Fundus an<br />

Optionen offen, zum anderen klingelt bei<br />

jedem Feature die Kasse.<br />

Disk-Management<br />

Den eigentlichen Plattenspeicher organisiert<br />

der Admin in verschiedenen Ebenen:<br />

Das physische Fundament bilden<br />

die Platten, die sich in RAID-Gruppen<br />

konfigurieren lassen, die ihrerseits zu sogenannten<br />

Plexes kombinierbar sind, die<br />

schließlich die Bestandteile physischer<br />

Container namens Aggregates bilden. Darüber<br />

residieren Volumes, Qtrees (eine<br />

Art Sub-Volumes) und Files in den logischen<br />

Etagen.<br />

Auf den meisten dieser Ebenen lässt<br />

sich Redundanz als Ausfallversicherung<br />

einsetzen: Die beiden <strong>Storage</strong>-Controller<br />

können erforderlichenfalls jeweils die<br />

Platten ihres Partners mitverwalten, die<br />

RAID-Gruppen erlauben dank RAID-DP<br />

den Ausfall zweier Disks, zudem ist ein<br />

Spare Drive obligatorisch, die Plexes<br />

kann man innerhalb eines Aggregates<br />

spiegeln, Volumes und Qtrees lassen sich<br />

replizieren (SnapMirror), das eigene,<br />

proprietäre Filesystem WAFL (Write Anywhere<br />

File Layout) bietet Prüfsummen<br />

auf Blocklevel. Mit diesem Instrumenta-<br />

rium sind Konfigurationen möglich, die<br />

wohl so gut wie jede denkbare Panne<br />

abzufedern vermögen.<br />

Sicherheit und Performance<br />

Entsprechend dem gewählten Zugangsprotokoll<br />

kann das N 3300 die Zugriffsrechte<br />

entweder im Windows- oder im<br />

Unix-Stil verwalten oder beide Methoden<br />

sogar mischen. Die Benutzer können<br />

dafür lokal auf dem Speicher verwaltet<br />

werden oder via Active Directory beziehungsweise<br />

LDAP oder NIS eingebunden<br />

werden. Hosts kennt der Filer ebenfalls<br />

entweder aus seiner lokalen Konfiguration<br />

oder aus dem DNS- respektive<br />

WINS-System. Als zusätzliches Sicherheitsfeature<br />

ist Kerberos für die Authentifizierung<br />

nutzbar.<br />

E Infortrend EonNAS 1100<br />

Kurz nach dem IBM Filer erreichte die<br />

Redaktion ein <strong>Test</strong>gerät, das für einen<br />

deutlichen Kontrast sorgte. Zwar war es<br />

ungefähr auf dieselbe Speicherkapazität<br />

ausgebaut (4 TByte), zwar hielt es bei<br />

vielen grundlegenden Software-Features<br />

gut mit, ja es konnte sogar mit dem<br />

Apple Filing Protokoll oder der Zeitsynchronisierung<br />

via NTP aufwarten, die der<br />

Bolide von IBM nicht beherrscht – aber<br />

es kostete nur einen Bruchteil: Während<br />

die IBM-<strong>Test</strong>konfiguration für 53.500<br />

Euro über die Ladentheke ging, waren<br />

für das Infortrend EonNAS 1100 nur rund<br />

1.200 Euro zu berappen, das ist weniger<br />

als ein Vierzigstel.<br />

Auf den zweiten Blick offenbart sich allerdings<br />

schon, dass der sehr günstige Fileserver<br />

eher auf den SMB- und SOHO-Bereich<br />

abzielt und daher auf einige Enterprise-Features<br />

verzichtet, die in manchen<br />

Einsatzszenarien unabdingbar sind: So<br />

gibt es bei ihm nur eine universelle CPU<br />

anstelle spezialisierter <strong>Storage</strong>-Controller,<br />

die mithin einen Single Point of Failure<br />

bildet und genauso wenig im laufenden<br />

Betrieb zu wechseln ist wie die Lüfter<br />

oder das ebenfalls nicht redundante Netzteil.<br />

Außer bei den Platten führt damit<br />

jeder Hardwaredefekt notwendigerweise<br />

zu einer Auszeit für den Speicher.<br />

Nachdem wir unser <strong>Test</strong>gerät angefordert<br />

hatten, gab Infortrend allerdings bekannt,<br />

dass es größere Modelle derselben Serie<br />

entwickelt (EonNAS 3000 und 5000), die<br />

im dritten Quartal verfügbar sein sollen<br />

und dann auch redundante Controller<br />

haben können.<br />

Apropos Platten: Im Infortrend EonNAS<br />

1100 ist bei vier Platten Schluss, in das<br />

Pendant von IBM passen zwölf plus<br />

zwei mal 20 in Erweiterungsgehäusen.<br />

Größter Nachteil für das kleinere System:<br />

Bei RAID-6, das minimal vier Platten<br />

braucht, ist so kein Spare Drive mehr<br />

konfigurierbar. Die im IBM-Filer verbauten<br />

SAS-Disks (Hitachi UltraStar, 15k<br />

U/​min) sind zudem speziell auf Dauerbetrieb<br />

ausgelegt, zuverlässiger (10fach<br />

geringere Bitfehlerrate) und gerade bei<br />

vielen gleichzeitigen Zugriffen auch<br />

schneller als die günstigeren SATA-Platten<br />

(Hitachi DeskStar, 7k U/​min) in dem<br />

Modell von Infortrend. Allerdings sind<br />

sie auch mindestens dreimal so teuer.<br />

Auch Fibre-Channel-Platten, die man bei<br />

IBM benutzen kann, passen nicht in das<br />

kleinere Modell.<br />

Benchmarks<br />

Abbildung 1: Ein Status-Report des IBM-Filers. Das zugrunde liegende Betriebssystem stammt von NetApp.<br />

Unsere Benchmarks können im vorliegenden<br />

Fall nur Anhaltspunkte liefern,<br />

weil sich in den zu testenden Filern<br />

hardwarebedingt nicht überall dieselben<br />

RAID-Level mit derselben Anzahl<br />

gleich<strong>großer</strong> und gleichartiger Platten<br />

konfigurieren ließen. Deshalb sind die<br />

Ergebnisse nicht exakt vergleichbar, sie<br />

liefern aber dennoch eine Vorstellung,<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

35


<strong>Storage</strong><br />

NAS-<strong>Test</strong><br />

mit welcher Größenordnung man in der<br />

Praxis rechnen kann.<br />

Erstaunlicherweise erweist sich das Eon-<br />

NAS dem IBM-Filer in den meisten Disziplinen<br />

ebenbürtig. Beim Lesen kann das<br />

Gerät von IBM dann aber seinen wesentlich<br />

größeren Cache ausspielen, der auch<br />

eine zwei GByte große Datei komplett im<br />

RAM hält. Deshalb liest IBM bis zu dieser<br />

Filegröße deutlich schneller.<br />

Softwareausstattung<br />

Bei den Basis-Features der Softwareausstattung<br />

muss sich das Modell von Infortrend,<br />

wie schon gesagt, ebenfalls<br />

nicht verstecken, sondern hält gut mit<br />

(Abbildung 2). Es beherrscht NFS (inklusive<br />

Version 4), CIFS, AFP und FTP<br />

als Zugriffsprotokolle und versteht sich<br />

aufs Deduplizieren, auf Backup, Replikation<br />

und Snapshots, kennt Benutzer aus<br />

NIS oder LDAP, beherrscht Port Trunking<br />

und Jumbo Frames und verwendet auf<br />

Wunsch RAID-6. Allerdings muss das<br />

SMB-Modell angesichts der Fülle spezieller<br />

Optionen, mit denen IBM aufwartet,<br />

passen – seien das Anpassungen an<br />

spezielle BI-Software, Datenbanken oder<br />

Virtualisierungslösungen, seien es besondere<br />

Sicherheits- oder Management-<br />

Möglichkeiten. Im Gegenzug ist allerdings<br />

auch keines der Feature separat<br />

zu bezahlen, sondern alle sind im Preis<br />

inbegriffen.<br />

Die Kategorien "besser" oder "schlechter"<br />

lassen sich hier nicht ohne Weiteres<br />

anwenden: In Einsatzfällen, in denen<br />

notfalls auch eine kurze Downtime nach<br />

Hardwaredefekt tolerierbar wäre und die<br />

keine besonderen Integrationsansprüche<br />

stellen, könnte das IBM-Modell seine<br />

Stärken nicht ausspielen und wäre überdimensioniert<br />

und viel zu teuer. Für eine<br />

unternehmenskritische Anwendung, die<br />

von sehr vielen Clients gleichzeitig beansprucht<br />

wird, spezielle Integrationsbedürfnisse<br />

hat und ausfallsicher sein<br />

muss, wäre wiederum das günstige Modell<br />

von Infortrend eine Fehlbesetzung<br />

(siehe auch den Kasten „Die richtige<br />

Wahl“).<br />

E EuroStor ES-8724<br />

Die zuerst angelieferten und oben schon<br />

vorgestellten beiden Probanden konnte<br />

ein <strong>Test</strong>er noch alleine aus ihrer Verpackung<br />

heben, jetzt aber waren zwei<br />

Mann gefragt: Das EuroStor ES-8724,<br />

voll bestückt mit 24 Zwei-GByte-Platten,<br />

bringt mehr auf die Waage als einer einzelnen<br />

Wirbelsäule zuträglich ist.<br />

Damit ist zugleich bereits ein wesentliches<br />

Feature angedeutet, das dieses NAS-<br />

System von Konkurrenten aus unserem<br />

<strong>Test</strong>feld unterscheidet: Einerseits lockt es<br />

mit einem moderaten Preis, der ein Mehrfaches<br />

unter den Vorstellungen von IBM<br />

bleibt. Andererseits skaliert das EuroStor-<br />

Abbildung 2: Die Browseroberfläche des Infortrend-Filers bietet diese Performanceübersicht.<br />

System im Gegensatz zum Pendant von<br />

Infortrend bis zu einer ansehnlichen Kapazität<br />

(mit Erweiterungsgehäusen lässt<br />

es sich bis auf 112 Platten ausbauen). In<br />

puncto Ausfallsicherheit ordnet es sich<br />

zwischen den beiden Mitbewerbern ein.<br />

Mit der Redundanz des N 3300 von IBM<br />

kann es nicht mithalten, dafür ist nicht<br />

nur der einzelne RAID-Controller verantwortlich,<br />

es fehlen beispielsweise auch<br />

die Filesystem-Checksummen. Im Unterschied<br />

zum EonNAS von Infortrend verfügt<br />

es aber immerhin über redundante<br />

und im laufenden Betrieb austauschbare<br />

Netzteile und Lüfter.<br />

Einrichten<br />

Konfigurieren lässt sich das EuroStor<br />

über eine Web-GUI (Abbildung 3) des<br />

verwendeten OpenE-Betriebssystems,<br />

hinter dem sich ein Linux-Derivat verbirgt.<br />

Die Oberfläche wirkt eher schlicht,<br />

ist dadurch aber auch übersichtlich und<br />

einfach zu bedienen. Dabei setzt sie auf<br />

einer logischen Speichereinheit auf, deren<br />

physische Konfiguration sie nicht mit verwaltet.<br />

Bei OpenE ist das Sache spezieller<br />

Tools, die der RAID-Controller mitzubringen<br />

hat. Mit ihnen werden dann zunächst<br />

RAID-Gruppen gebildet und gegebenenfalls<br />

Spare Drives bestimmt. Darüber<br />

konstruiert die OpenE-Software anschließend<br />

mithilfe des Linux-typischen Logical<br />

Volume Managers (LVM) eine Volume<br />

Group, Logical Volumes und schließlich<br />

Shares, die die Clients mounten können.<br />

Als Filesystem kommt XFS zum Einsatz,<br />

ein bekanntermaßen stabiles und performantes<br />

Linux-Filesystem, das allerdings<br />

den Nachteil hat, dass es sich bei einem<br />

Resizing der RAID-Konfiguration nicht<br />

verkleinern lässt.<br />

Die Konfigurationsoptionen bieten eine<br />

solide Ausstattung, in der nur Kompression,<br />

Verschlüsselung und Deduplizierung<br />

fehlen. Auch Features zur Integration des<br />

Speichers in spezielle Softwarelandschaften<br />

gibt es nicht. Außerdem zeigt sich,<br />

dass die Art und Weise, wie gleichnamige<br />

Optionen bei unterschiedlichen<br />

Herstellern realisert sind, einen deutlichen<br />

Einfluss auf den Bedienkonmfort<br />

haben kann. So verbergen sich hinter den<br />

OpenE-Snapshots beim EuroStor-System<br />

LVM-Snapshots. Die werden zwar wie<br />

etwa die ZFS-Snapshots von Infortrend<br />

36 Ausgabe 03-2012 Admin www.admin-magazin.de


NAS-<strong>Test</strong><br />

<strong>Storage</strong><br />

Abbildung 3: Ein Performance-Monitor in der OpenE-Web-GUI des EuroStor-Filers.<br />

nach den Copy-On-Write-Prinzip erzeugt,<br />

nur braucht OpenE dafür ein separates<br />

Volume, dessen Dimensionierung zudem<br />

sorgfältig überlegt sein will – es darf nicht<br />

überlaufen. Davon abgesehen sind die<br />

üblichen Features vollständig und gut<br />

bedienbar, die Unterstützung für die Zugriffsprotokolle<br />

umfasst neben CIFS, NFS,<br />

FTP und HTTP auch AppleTalk.<br />

Auf der Habenseite ist weiter zu verbuchen,<br />

dass das Gerät von EuroStor ähnlich<br />

wie das Gegenstück von IBM nicht<br />

nur als NAS-System, sondern auch als<br />

iSCSI- oder Fibre-Channel-Target eingesetzt<br />

werden kann. Nicht die Regel sind<br />

auch eine integrierte Anti-Virus-Software<br />

und drei vorinstallierte Backup-Agents.<br />

Wie nützlich diese sehr beschänkte Auswahl<br />

in der Praxis ist, sei dahingestellt,<br />

wer aber eines der unterstützten Backupprogramme<br />

nutzt, der hat damit eine<br />

Alternative zu NDMP, was das Gerät allerdings<br />

ebenfalls beherrscht (siehe auch<br />

einen weiteren Beitrag zu NDMP in dieser<br />

Ausgabe).<br />

Bei der Performance zeigt sich das Gerät<br />

von EonStor auf Augenhöhe mit den<br />

Mitbewerbern, das heißt beim Schreiben<br />

<strong>großer</strong> Files schafft es knapp 100 MByte/​s<br />

via NFS auf ein großes RAID-6-Volume in<br />

einem Gigabit-Netz. Alles in allem bietet<br />

sich das ES-8724 von EuroStor dem kostenbewussten<br />

Anwender an, der höhere<br />

Kapazitäten benötigt und größere An-<br />

sprüche an die Ausfallsicherheit stellt, als<br />

sie im SOHO-Segment üblich sind. Beides<br />

ist durchaus über den bei diesem Gerät<br />

erreichten Stand hinaus steigerbar, dann<br />

aber nicht mehr in dieser Preisklasse.<br />

E Synology Disk Station<br />

412+<br />

Der nächste NAS-Filer, der die Redaktion<br />

erreichte, fiel schon dadurch aus<br />

dem Rahmen, dass er nicht in einem<br />

Rackmount-, sondern in einem Desktop-<br />

Gehäuse steckte. Glücklicherweise benahm<br />

sich die Synology Diskstation DS<br />

412+ dann auch völlig bürokompatibel:<br />

Während man beispielsweise neben dem<br />

EuroStor-Filer schon deutlich die Stimme<br />

erheben musste, erst recht unter Last, lief<br />

der kleine Würfel mit Steckplätzen für<br />

vier Platten stets angenehm leise.<br />

Auch sonst fällt ins Auge, dass sich diese<br />

Offerte von Synology nicht unbedingt zuerst<br />

an den <strong>Storage</strong>-Spezialisten richtet,<br />

sondern auch von technisch weniger versierten<br />

Büroarbeitern zu administrieren<br />

ist. Die Web-GUI ist sicher die schickste<br />

im <strong>Test</strong> (Abbildung 4) und leicht bedienbar.<br />

Eine Grundkonfiguration erstellt die<br />

Box bei Inbetriebnahme selbst, sofern<br />

ein DHCP-Server verfügbar ist, muss der<br />

Nutzer dabei kaum Hand anlegen.<br />

Wer will und kann, mag natürlich auch<br />

manuell eingreifen. Die Platten darf<br />

der Admin in den RAID-Leveln 0, 1, 5,<br />

6, 10 oder als JBOD konfigurieren. Ein<br />

Spare-Drive ist allerdings nur bei RAID<br />

5 möglich. Volumes lassen sich – auch<br />

im laufenden Betrieb – vergrößern, aber<br />

nicht verkleinern. Dabei können einzelne<br />

Platten gegen solche höherer Kapazität<br />

getauscht oder extern weitere Medien<br />

via USB 3.0- oder eSATA-Interface angeschlossen<br />

werden. Als Zugriffsprotokolle<br />

stehen CIFS, AFP, NFS, FTP, HTTP(S)<br />

oder WebDAV zur Verfügung.<br />

Von den gemeinhin üblichen Features<br />

vermisst man vor allem Snapshots (es sei<br />

Abbildung 4: Die vielleicht schickste Web-GUI im <strong>Test</strong> stammt von Synology. Für größere Filer passt sie<br />

weniger, aber die Diskstation ist damit gut bedient.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

37


<strong>Storage</strong><br />

NAS-<strong>Test</strong><br />

Tabelle 1: Features im Vergleich<br />

IBM N3300 A 20 EonNAS 1100 EuroStor ES-8724<br />

Hersteller IBM Infortrend EuroStor<br />

Preis<br />

Ab 15 500 Listenpreis, 53 500 Euro<br />

(Listenpreis der getesteten<br />

Konfiguration)<br />

1200 Euro 10 200 Euro (Listenpreis der<br />

getesteten Konfiguration)<br />

Betriebssystem Data Ontap 7.3.5 Open Solaris OpenE Version 6<br />

Hardware<br />

Prozessor 2x 2.2 GHz 64-bit Processors 1 x Atom D525, 1.8 GHz Intel Xeon E5620, 2,4 GHz<br />

Memory 2x 1 GByte 2 GByte DDR 3, 800MHz 12 GByte<br />

Netzteile 2x Hot-Swapable, auto-ranging 1x, kein Hot-Swapable 2x Hot-Swapable<br />

Lüfter 2x Hot-Swapable 2x, kein Hot-Swapable 2x Hot-Swapable<br />

Bauform<br />

2U, Standard 19-Zoll Rackmount<br />

Enclosure<br />

1U, Standard 19-Zoll Rackmount<br />

Enclosure<br />

4U, Standard 19-Zoll Rackmount<br />

Enclosure<br />

Remote Access Controller Remote LAN Management (RLM) keiner<br />

IPMI<br />

Port (2x)<br />

Serial Terminal Port Ja (2x) 1x VGA 1x VGA<br />

Networking<br />

Netzwerkinterfaces 2x 2 GbE 2x 1 GbE 4x 10 GbE, 4x 1 GbE<br />

IPv6-Support Ja Ja Ja<br />

DHCP-Client Ja Ja Ja<br />

Festplatten<br />

Arten (SAS/​SATA/​FC/​…) SAS, 10k oder 15k U/​min 3,5-Zoll-HDs SATA-II oder SATA-III 3,5-Zoll-HDs SAS oder SATA, 3,5-Zoll-HDs<br />

max. Plattengröße 300 GByte 3 TByte 2 TByte<br />

max. Anzahl Platten 12 + 40 (2 Expansion Units) 4 24<br />

Volumes<br />

RAID-Level RAID4, RAID-DP 0, 1, 5, 6, 0+1, 1+0 0, 1, 1E, 3, 5, 6, 10, 30, 50, 60, JBOD<br />

Protokolle<br />

CIFS/​SMB Ja Ja Ja<br />

NFS Ja Ja Ja<br />

FTP Ja Ja Ja<br />

HTTP/​HTTPS Ja Ja Ja<br />

AFP (Apple Filing Protocol) Nein Ja Ja<br />

NDMP Ja Ja Ja<br />

iSCSI Ja Ja Ja<br />

Fibre Channel Ja Nein Ja<br />

NAS-Dateisystem WAFL ZFS<br />

Software Features<br />

Snapshots Ja Ja Ja<br />

Deduplizierung Ja (ASIS) Ja Nein<br />

Replikation Ja Ja Ja<br />

Kompression Ja Ja (LZJB) Nein<br />

Verschlüsselung Nein Nein Nein<br />

System Management<br />

Web-based GUI Ja Ja Ja<br />

SNMP Traps Ja Ja Ja<br />

System Status Monitoring Ja Ja Ja<br />

Exportierbare Event Logs Ja Ja Ja<br />

Backup und Restore der System<br />

Settings<br />

Ja Ja Ja<br />

38 Ausgabe 03-2012 Admin www.admin-magazin.de


NAS-<strong>Test</strong><br />

<strong>Storage</strong><br />

DiskStation 412+ RS3412RPxs Snap Server NAS N2000 NetApp FAS 2240-4<br />

Synology Synology Overland NetApp FAS 2240-4<br />

570 Euro (inkl. MwST.) 4800 Euro (Listpreis) 4270 Euro mit 4 TByte ca. 30 000 Euro (Cluster)<br />

Disk <strong>Storage</strong> Manager (DSM) 4 Disk <strong>Storage</strong> Manager (DSM) 4 GuardianOS 6.5 Data Ontap 8.1<br />

Dual Core 2.13GHz 2x 3.1 GHz (Intel Core i3) 1 x Quad-Core Intel Xeon 2x 1.73 GHz 64-bit Processors<br />

1GByte DDR3 2 GByte (max. 6) 4 GByte DDR3 6 GByte<br />

1x , kein Hot-Swapable Hot-Swappable Nein Hot-Swappable, Auto-Ranging<br />

2x, kein Hot-Swap, aber ein Lüfter- Hot-Swappable Hot-Plug redundant Hot-Swappable<br />

Ausfall ist zeitweilig tolerierbar<br />

Desktop-Gehäuse<br />

2U, Standard 19-Zoll Rackmount<br />

Enclosure<br />

2U Rackmount<br />

4U, Standard 19-Zoll Rackmount<br />

Enclosure<br />

keiner Nein Nein Remote LAN Management (RLM)<br />

Port (1x)<br />

keiner Nein 3 Gb/​s SAS ja<br />

2x 1 GbE 4 x 1 GbE 2x 1 GbE (erweiterbar mit Dual- oder 4 x 1 GbE oder 2 x 8 Gb FC<br />

Quad-Port-GbE-Card via PCIe)<br />

Ja Ja Nein Ja<br />

Ja Ja Ja (default) Ja<br />

2,5- oder 3,5-Zoll SATA-II SATA II 3,5-Zoll SAS/​SATA 1, 2 oder 3 TByte SATA-Disks, 450/​<br />

600 GByte SAS-Disks (mit 15k U/​<br />

min)<br />

4 TByte 3 TByte 2 TByte (SATA), 600 GB (SAS) 3 TByte<br />

4 10 12 24 + 120 (5 Expansion Units)<br />

0,1,5,6,10 0,1,5,6,10, Synology Hybrid RAID 0, 1, 5, 6, 10 RAID4, RAID-DP<br />

Ja Ja Ja Ja<br />

Ja Ja Ja Ja<br />

Ja Ja Ja Ja<br />

Ja Ja Ja Ja<br />

Ja Nein Nein Nein<br />

Nein Nein Nein Ja<br />

Ja Ja Ja Ja<br />

Nein Nein Nein Ja<br />

Ext4 Ext 4 WAFL<br />

Nein Nein Ja Ja<br />

Nein Ja Nein Ja<br />

Ja Nein Via optionaler SnapEDR Software Ja<br />

Ja Nein Ja<br />

Ja Console Nein Nein<br />

Ja Ja Ja<br />

Ja Ja Ja<br />

Ja Ja Ja Ja<br />

Ja Ja Ja<br />

Nein, aber Reset auf Factory Settings<br />

Ja<br />

Ja<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

39


<strong>Storage</strong><br />

NAS-<strong>Test</strong><br />

denn man rechnet Apples Time Backup<br />

dazu), aber auch Deduplizierung oder<br />

Kompression sind nicht vorgesehen.<br />

Dafür wartet der Filer mit einer ganzen<br />

Reihe von Zusatzoptionen auf, die weit<br />

über das Kerngeschäft Speichern hinausgehen.<br />

Durch Pakete, die sich ähnlich<br />

wie Apps in Mobilbetriebssystemen automatisch<br />

installieren lassen, wird das<br />

Gerät beispielsweise zum Streaming-Server<br />

für Multimedia-Inhalte, zum DHCP-,<br />

LDAP- oder Syslog-Server, zum zentralen<br />

Speicher für Web-Kameras, zum Backupserver<br />

oder sogar zu einem OpenERP-<br />

Die richtige Wahl<br />

Wer die Wahl hat, hat die Qual. Aber die kann<br />

zumindest lindern, wer sich einer Auswahlentscheidung<br />

systematisch nähert.<br />

„Würdest Du mir bitte sagen, welchen Weg ich<br />

einschlagen muss?“, fragt Alice die Katze. Die<br />

antwortet: „Das hängt in beträchtlichem Maß<br />

davon ab, wohin Du gehen willst.“ „Oh, das ist<br />

ziemlich gleichgültig“, sagt Alice. „Dann ist es<br />

auch einerlei, welchen Weg du einschlägst“, antwortete<br />

die Katze. Mit anderen Worten: Ohne<br />

ein Ziel kann man sich nicht entscheiden. Denn<br />

allein aus dem Ziel leiten sich Kriterien ab, mit<br />

deren Hilfe sich die Wünschbarkeit bestimmter<br />

Alternativen einschätzen lässt. Deshalb steht<br />

bei jeder Auswahl die Zielsetzung immer an erster<br />

Stelle, etwa die Frage: Was will ich erreichen,<br />

und was darf es kosten?<br />

Zum einen sind da technische Ziele, wie etwa<br />

die geforderte Performance oder Ausfallsicherheit,<br />

zum anderen wird es zumeist darum gehen,<br />

diese Ziele nicht koste es was es wolle, sondern<br />

im Rahmen eines Budgets zu erreichen. Das<br />

zwingt in der Regel zu Kompromissen. Außerdem<br />

spielen auch andere nicht-technische Randbedingungen<br />

eine Rolle, zum Beispiel bestehende<br />

Beziehungen zu bestimmten Lieferanten oder<br />

vorhandene Qualifikationen von Mitarbeitern<br />

und so weiter. Um die Zielkonflikte zu lösen,<br />

gilt es so klar wie möglich zu definieren, welche<br />

Kriterien mit welcher Wichtung in die Rechnung<br />

eingehen sollen. Beides ergibt sich wieder primär<br />

aus dem Einsatzzweck. Der gibt auch vor,<br />

wie viel man sinnvollerweise ausgeben kann.<br />

Den Besten berechnen<br />

Für einen praktischen Überschlag ist ein Tabellenkalkulationsblatt<br />

nützlich, in dessen erster<br />

Spalte man Zeile für Zeile die Kriterien aufführt,<br />

nach denen man die Alternativen beurteilen will.<br />

Jeweils eine Gruppe weiterer Spalten beziehen<br />

sich dann auf je eine Alternative nach folgendem<br />

Muster: In der ersten Spalte pro Wahlmöglichkeit<br />

notiert der Anwender den Erfüllungsgrad für<br />

die jeweilige Alternativen-Zeile. Dafür kann er<br />

eine vereinfachte Skala benutzen, sagen wir von<br />

eins (gering) bis neun (vollständig). In die Spalte<br />

neben dem Erfüllungsgrad trägt man einen Gewichtungsfaktor<br />

pro Kriterium ein (zum Beispiel<br />

ebenfalls von eins bis neun). In die Spalte daneben<br />

kommt dann das Produkt aus Erfüllungsgrad<br />

und Gewichtungsfaktor. Am Schluss addiert man<br />

alle Werte dieser letzten Spalte und erhält einen<br />

Punktwert für das fragliche Produkt (Tabelle 2).<br />

Der höchste Punktwert stünde dann für das geeignetste<br />

Modell.<br />

Mehr Mathe möglich<br />

Das ist eine einfache Nutzwertanalyse, die man<br />

mathematisch auch noch verfeinern kann. Beispielsweise<br />

kann man die Werte für den Erfüllungsgrad<br />

mithilfe verschiedener Funktionen<br />

normalisieren und dadurch erreichen, dass sie<br />

nicht-linear in das Ergebnis eingehen. Man kann<br />

Kriterien gruppieren oder Funktionen konstruieren,<br />

die qualitative Merkmale quantifizieren.<br />

Weiter lassen sich die Gewichte aus dem Nutzen<br />

eines Features, seinen Kosten und dem Risiko<br />

ableiten, das eintritt, wenn es nicht verfügbar<br />

ist und so weiter. Die Entscheidungstheorie und<br />

darunter das Multi-Criteria Decision Making<br />

(MDCM) ist tatsächlich eine ganze Wissenschaft<br />

für sich.<br />

Jedoch muss man sich im Klaren sein, dass die<br />

dritte Nachkommastelle hier schnell die trügerische<br />

Sicherheit vorspiegelt, die Entscheidung<br />

wäre damit einfach ausgerechnet. In Wirklichkeit<br />

hängt dagegen alles von der möglichst zutreffenden<br />

Nutzenschätzung und einer realistischen<br />

Beurteilung des Erfüllungsgrades ab. Ist die Unschärfe<br />

dabei zu hoch, wird man die Sache mit<br />

mehr Mathe nur verschlimmbessern.<br />

Server. Die Bedienung ist hier aber nicht<br />

mehr ganz einheitlich – teils lassen sich<br />

diese Applikationen in der Web-GUI des<br />

Filers konfigurieren, teils nur über ihre<br />

eigenen Webseiten. Auch ansonsten hat<br />

die Integration Grenzen: Filer und ERP-<br />

Server verwalten jeweils eigene Benutzer,<br />

Webmailer und ERP-Server eigene<br />

Adressbücher und so weiter.<br />

Sehr viele Events können E-Mail-Benachrichtigungen<br />

triggern, ein einfacher<br />

Performance-Monitor informiert über die<br />

momentane Auslastung und das Allgemeinbefinden.<br />

Das gute Logging offenbart<br />

nur kleinere Schwächen: So kann<br />

man die Systemmeldungen zwar an einen<br />

zentralen Syslog-Server schicken,<br />

dabei aber nicht die Log Facility konfigurieren,<br />

sodass sich die Meldungen auf<br />

dem empfangenden System nicht mehr<br />

in eine separate Datei schreiben oder von<br />

Messages aus anderer Quelle gut unterscheiden<br />

lassen. Nach Installation des<br />

Syslog-Server-Pakets kann man lokale<br />

Systemnachrichten allerdings auch an<br />

Ort und Stelle inspizieren.<br />

Die Performance ist respektabel, reicht<br />

aber nicht ganz an die Werte heran, die<br />

Ein konkretes Beispiel<br />

Ein absichtlich einfaches Beispiel: Gesucht sei<br />

ein Speichersystem, für eine Außenstelle mit<br />

15 Mitarbeitern, die darauf im Stil eines klassischen<br />

Fileservers vorrangig Arbeitsunterlagen<br />

ablegen (Office-Dokumente, Zeichnungen, Fotos,<br />

Präsentationen). Die PCs der Mitarbeiter<br />

laufen unter Windows NT und teilweise unter<br />

Linux. Das Datenvolumen von rund 100 GByte<br />

pro Mitarbeiter und Jahr wird um etwa 20 Prozent<br />

jährlich wachsen. Am Ende der mit fünf<br />

Jahren veranschlagten Lebenszeit des Systems<br />

bräuchte man also etwas weniger als 4 TByte,<br />

es sei denn, man könnte den Zuwachs durch<br />

effizientes Speichern (etwa Deduplizierung oder<br />

Kompression) mindestens zum Teil ausgleichen.<br />

Ein Datenverlust wäre in keinem Fall akzeptabel,<br />

ein kurzzeitiger Ausfall zwar ärgerlich, aber zu<br />

verkraften, wenn der Fehler innerhalb weniger<br />

Stunden behoben ist. Einen eigenen <strong>Storage</strong>-<br />

Spezialisten, kann man hier nicht beschäftigen,<br />

das System sollte also einfach zu handhaben und<br />

auch remote zu administrieren sein. Das Budget<br />

beträgt maximal 5000 Euro.<br />

Maximal ist nicht immer optimal<br />

Tabelle 2 listet dafür beispielhaft Kriterien,<br />

Gewichte und Erfüllungsgrad für die Speichersysteme<br />

von IBM und Infortrend. Deutlich wird,<br />

dass es das Gewicht der Kriterien und damit<br />

letztlich der Einsatzzweck oder das Ziel ist,<br />

was den Ausschlag gibt. Wären alle Kriterien<br />

gleichberechtigt, würde IBM den Vergleich für<br />

sich entscheiden. Durch die Anpassung an unser<br />

Beispielszenario mithilfe der Gewichte macht<br />

aber das Produkt von Infortrend das Rennen.<br />

Trotz unterlegener Fähigkeiten, etwa geringerer<br />

Erweiterbarkeit oder verminderter Redundanz.<br />

Es ist aber einfacher zu handhaben und bleibt<br />

im Preisrahmen, was in diesem Fall höher bewertet<br />

wird. Streng genommen war es in diesem<br />

Fall nicht einmal sinnvoll, das System von IBM<br />

überhaupt als Alternative aufzunehmen, wenn<br />

es ohnehin nicht bezahlbar ist. Hätten wir jedoch<br />

die Anforderungen für ein System untersucht,<br />

das Daten einer unternehmenskritischen<br />

Anwendung für viele Mitarbeiter speichert, nie<br />

ausfallen darf und sich in eine SAP-Landschaft<br />

einpassen soll, wäre der Ausgang garantiert ein<br />

anderer gewesen.<br />

40 Ausgabe 03-2012 Admin www.admin-magazin.de


NAS-<strong>Test</strong><br />

<strong>Storage</strong><br />

Systeme mit dedizierten RAID-Controllern<br />

erreichen können. Wir haben rund 90<br />

MByte/​s schreibend und 108 MByte/​s<br />

lesend ohne Link-Aggregation in einem<br />

Gigabit-Netz gemesen. Das File war dabei<br />

2 GByte groß, die Recordsize betrug<br />

512 KByte.<br />

Alles in allem<br />

Die Synology Diskstation 412+ fühlt<br />

sich als universeller Speicher für kleinere<br />

Arbeitsgruppen oder Außenstellen<br />

wohl. Sie braucht keinen Serverraum und<br />

keinen Profi-Admin und passt sich recht<br />

flexibel in unterschiedliche Büroumgebungen<br />

ein. Dort kann sie bei Bedarf<br />

auch eine Reihe von Zusatzfunktionen<br />

mit übernehmen, die über das reine Speichern<br />

hinausgehen.<br />

E Synology RS3412RPxs<br />

Das aktuelle Flaggschiff von Synology ist<br />

mit 4800 Euro in einer 20 TByte-Konfiguration<br />

eine durchaus interessante Alternative.<br />

Da es sich auch noch auf bis<br />

zu 40 TByte bei 2HE ausbauen lässt, eignet<br />

es sich für viele Szenarien. Mit dem<br />

vorgesehenen (zertifizierten) Einbau von<br />

10-GBit-Netzwerkkarten (momentan Intel<br />

und Emulex) entfällt darüber hinaus das<br />

alte Argument der eingeschränkten Bandbreite.<br />

Einzig die begrenzte CPU kann<br />

im Falle zu hoher Belastung durch viele<br />

Clients recht schnell der limitierende Faktor<br />

sein.<br />

Beim Blick auf die Software muss man die<br />

Abwesenheit etlicher Enterprise-Features<br />

konstatieren, etwa des in größeren Umgebungen<br />

wichtigen NDMP. Ein weiterer<br />

wichtiger Unterschied zu den größeren<br />

Modellen ist das Fehlen eines eigenständigen,<br />

dedizierten <strong>Storage</strong>-Controllers.<br />

Stattdessen müssen alle Funktionen rein<br />

in Software gelöst werden. Dabei greift<br />

der Filer vom RAID bis zum iSCSI-Target<br />

auf den offenen Stack der Linux-Welt zurück,<br />

was durchaus Vorteile hat. Die sehr<br />

einfache Einrichtung über das Synology<br />

Betriebssystem DSM erlaubt selbst relativ<br />

unbedarften Benutzern die Konfiguration<br />

von Port-Trunks, Shares oder iSCSI-LUNs.<br />

Auch die Integration von WebDAV ist gelungen,<br />

die den Zugriff auch von Mobilgeräten<br />

auf den Speicher ermöglicht.<br />

Schade ist, dass für gewisse Spezial-<br />

Funktionen – etwa die Nutzung von<br />

NFSv4 – SSH-Zugriff sowie manuelle<br />

Tricks erforderlich sind. Ansonsten kann<br />

man eine vSphere-5-Umgebung mit dem<br />

Filer bereits in 15 Minuten konfiguriert<br />

haben. Sinnvoll ist der Einsatz eines<br />

redundanten Netzteils, da es sicherlich<br />

nichts Ärgerlicheres gibt, als wegen eines<br />

Verschleißteils einen Totalausfall zu erleiden.<br />

Gleiches gilt für die Lüfter, die auch<br />

im laufenden Betrieb getauscht werden<br />

können.<br />

Die integrierbaren Anwendungen, so<br />

etwa VPN, Mail-Station, Web-Station,<br />

und so weiter sind zwar alles schöne<br />

Funktionen, in größeren Umgebungen<br />

wird man sie aber nicht auf einem <strong>Storage</strong>-System<br />

installieren wollen.<br />

Performance<br />

Tabelle 2: Eignung für kleine Arbeitsgruppen<br />

Nr. Kriterien Kriteriengewicht<br />

(%)<br />

Rating<br />

IBM<br />

gewichtet<br />

Dieser Punkt sorgte für Aufsehen, da wir<br />

die Werte so nicht erwartet hatten: Mit einem<br />

10-GBit-Ethernet-Adapter X520-DA2<br />

von Intel und Intel SSDs der 320er-Serie<br />

mit 300 GByte erreichten wir bei RAID-5<br />

stolze 1050 MByte/​s sequentiell lesend<br />

Rating<br />

EonNAS<br />

1 Preis 20,00 1 20 5 100<br />

2 Protokolle 20,00 4 80 5 100<br />

3 Handhabung 15,00 3 45 5 75<br />

4 Datensicherheit 10,00 5 50 4 40<br />

5 Support 10,00 5 50 4 40<br />

6 Effizienz 7,00 5 35 4 28<br />

7 Performance 6,00 5 30 4 24<br />

8 Ausfallsicherheit 5,00 5 25 3 15<br />

9 Erweiterbarkeit 4,00 5 20 1 4<br />

10 Benutzerverwaltung 3,00 5 15 4 12<br />

Summe 100 370 438<br />

gewichtet<br />

und eine Transferrate von 812 MByte/​s<br />

schreibend (NFSv4, MTU 9000, 802.3ad<br />

Trunk mit 2x10GbE). Das kann sich sehen<br />

lassen. Doch genau da scheint dann<br />

auch die Grenze des Machbaren erreicht,<br />

die i3-CPU ist am Anschlag angelangt.<br />

Praktische Erfahrungen mit dem System<br />

in Produktivumgebungen erwiesen sich<br />

als durchweg positiv.<br />

E Overland SnapServer<br />

N2000<br />

Overland setzt bei seinem SnapServer<br />

N2000 auf sein Linux-basiertes<br />

GuardianOS als Betriebssystem. RAID,<br />

Volumes, Quotas und Snapshots gehören<br />

genauso zum Repertoire wie NFS,<br />

FTP, SMB, Apple AFP oder iSCSI. Die<br />

Kapazität des N2000 lässt sich durch bis<br />

zu fünf Erweiterungseinheiten vom Typ<br />

E2000, die als 2 HE-Module über SAS<br />

an den N2000 angebunden werden, auf<br />

bis zu 144 TByte erweitern. Ohne diese<br />

Erweiterungen muss man sich mit den<br />

12 internen Plattenslots des N2000 begnügen.<br />

Der Administrator kann über verschiedene<br />

Wege auf das N2000 zugreifen: Über<br />

den SnapServer Manager, das Kommandozeilen-Werkzeug<br />

SnapCLI sowie über<br />

ein Web-Interface. Der SnapServer Manager<br />

gibt einen guten Überblick über<br />

den Status des Fileservers, und auch das<br />

CLI steht dem Web-Interface mit Hinblick<br />

auf den Funktionsumfang in nichts nach.<br />

Die Web-GUI protzt zwar nicht gerade<br />

mit aufwendigem Design, lässt sich aber<br />

flott bedienen. Die auf verschiedene Rubriken<br />

verteilten Menüs und eine Site<br />

Map erleichtern das Auffinden einzelner<br />

Punkte, eine übersichtlichere Baumansicht<br />

könnte das noch verbessern. Auch<br />

die SnapExtensions – beispielsweise der<br />

CA Antivirus Scanner – könnten etwas<br />

mehr hervorgehoben werden.<br />

Nach einer ersten Kontaktaufnahme<br />

empfiehlt es sich, die Option »Network |<br />

Web | Enable (non‐secure) HTTP Access«<br />

zu deaktivieren, wodurch eine verschlüsselte<br />

Verbindung zum Administrationsbereich<br />

erzwungen wird.<br />

Disk-Management<br />

Die eingebauten <strong>Storage</strong> Guides bieten<br />

Hilfestellung beim Einrichten der RAID<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

41


<strong>Storage</strong><br />

NAS-<strong>Test</strong><br />

0-,1-, 10-, 5- oder 6-Sets, unter<br />

anderem durch kurze technische<br />

Erklärungen. Auch beim<br />

Konfigurieren eines Volumes<br />

und beim Einrichten eines<br />

Shares verhindern die Guides<br />

fehlerhafte Einstellungen. Außer<br />

über die Guides kann das<br />

Disk-Management natürlich<br />

auch manuell eingerichtet<br />

werden, wobei es womöglich<br />

etwas irritiert, dass sich der<br />

Menüpunkt »Shares« in der Rubrik »Security«<br />

findet. Mit Snapshots wird der<br />

Admin zum ersten Mal beim Anlegen eines<br />

Volumes konfrontiert. Die Standardeinstellungen<br />

reservieren 20 Prozent<br />

der RAID-Größe als Snapshot-Speicher.<br />

Reicht der vorhandene Snapshot-Speicher<br />

für einen weiteren Snapshot nicht mehr<br />

aus, löscht der SnapServer automatisch<br />

den ältesten Snapshot. Will man auf die<br />

Daten eines Snapshots direkt zugreifen,<br />

ist bei der Erstellung eines Shares die erweiterte<br />

Option »Create Snapshot Share«<br />

zu aktivieren.<br />

Zugriffssicherheit<br />

Auch bei den Zugriffsrechten setzt sich<br />

das Konzept der Guides fort. Die sogenannten<br />

»Security Guides« ermöglichen<br />

die Einrichtung einer Verbindung zu einem<br />

Active Directory, den Zugriff auf ein<br />

Volume über ein Share, und den Zugriff<br />

auf einen dedizierten Ordner über ein<br />

Share. Existiert für ein Volume noch kein<br />

Share, lässt sich mithilfe der Guides ein<br />

neues angelegen. Anschließend kann<br />

das Share auf einzelne Benutzer eingeschränkt<br />

oder allen Zugriff gewährt werden.<br />

Die Beschränkungen für NFS-Clients<br />

werden separat geregelt.<br />

Der SnapServer bietet alles was für einen<br />

Misch-Betrieb für Windows- und Linux-<br />

Clients benötigt wird. Die Konfiguration<br />

dafür ist allerdings nicht trivial. Das zeigt<br />

auch das 25-seitige Whitepaper „Understanding<br />

Windows & UNIX File Permissions<br />

on GuardianOS“.<br />

E NetApp FAS 2240-4<br />

Die NetApp FAS2240-4 ist ein 4HE-<strong>Storage</strong>system<br />

der aktuellen NetApp-Einstiegsklasse.<br />

Es basiert auf dem von Net-<br />

App entwickelten Data Ontap Betriebs-<br />

Abbildung 5: Mit bis zu fünf solcher Disk-Shelfs, in die jeweils 24 Platten passen,<br />

lässt sich der NetApp-Filer auf maximal 430 TByte aufstocken.<br />

system in der Version 8.1 und unterstützt<br />

durch die über alle FAS-Systeme hinweg<br />

identische Betriebssystemplattform nahezu<br />

alles, was auch die größeren System-Klassen<br />

des Herstellers bieten. Durch<br />

den Unified <strong>Storage</strong> Ansatz ist die FAS<br />

2240 in der Lage, sämtliche Protokolle<br />

wie CIFS, NFS, iSCSI und Fibre Channel<br />

anzubieten. Kapazität und Funktionen<br />

lassen sich einfach und schnell hinzufügen.<br />

Die Administration kann sowohl<br />

über die Kommandozeile via SSH als<br />

auch über die Verwaltungssoftware On-<br />

Command erfolgen.<br />

Das in den früheren Ontap-Versionen<br />

vorhandene Webinterface zur Administration<br />

„FilerView“ ist in den aktuellen<br />

Versionen ab 8.1 dem Rotstift zum Opfer<br />

gefallen. Die OnCommand Suite steht<br />

dem Administrator allerdings als adäquater<br />

Ersatz zur Verfügung. Zusätzlich legt<br />

NetApp noch ein paar kostenfreie Werkzeuge<br />

oben drauf: Hierzu zählt unter anderem<br />

der Protection Manager mit dem<br />

sich Backup-Beziehungen zwischen Net-<br />

App Systemen konfiguriert lassen oder<br />

der Provisioning Manager, ein Werkzeug<br />

zur Automatisierung von wiederkehrenden<br />

Administrationsaufgaben. Durch die<br />

Verwandtschaft mit der ebenfalls getesteten<br />

IBM N-Series ist die Aufteilung der<br />

Festplatten in RAID Gruppen, Aggregate<br />

und Volumes gleich. Einziger Unterschied<br />

ist die bei der FAS 2240-4 aktuellere Version<br />

des verwendeten Betriebssystems,<br />

wodurch sich einige Limits der älteren<br />

32-Bit-Aggregate durch die Erweiterung<br />

auf 64-Bit-Aggregate verschoben haben.<br />

So liegt das aktuelle Aggregatslimit mit<br />

ONTAP 8.1 in Kombination mit der FAS<br />

2240-4 bei 60 TByte, in früheren ONTAP<br />

Versionen vor 8.x war hier bei 16 TByte<br />

pro Aggregat Schluss.<br />

Sollte das System im Alltagseinsatz durch<br />

die steigende Auslastung an seine Gren-<br />

zen geraten, ist ein Umstieg<br />

auf größere NetApp Systeme<br />

nahtlos möglich. Das Betriebssystem<br />

bleibt dabei dasselbe,<br />

und die FAS 2240-4 lässt sich<br />

bei Bedarf in ein Festplatten-<br />

Shelf umbauen und so an<br />

größere NetApp-Systeme anschließen.<br />

Das lästige Kopieren<br />

der vorhandenen Daten<br />

entfällt.<br />

Wie von NetApp gewohnt,<br />

sind einige Standardverfahren zur Verbesserung<br />

der Speichereffizienz in Ontap<br />

eingebaut, hierzu zählt vor allem die Deduplizierung,<br />

die blockbasiert und asynchron<br />

dafür sorgt, doppelt vorhandene<br />

Inhalte auf den Festplatten nur einmalig<br />

zu speichern. Dieses Verfahren hilft unter<br />

anderem bei virtualisierten Umgebungen,<br />

in denen ein Großteil der verwendeten<br />

Betriebssysteme ähnlich oder gleich sind,<br />

und reduziert den belegten Speicherplatz<br />

auf ein notwendiges Minimum. Eine<br />

Komprimierung der gespeicherten Daten<br />

ist ebenfalls möglich, schlägt aber wie zu<br />

erwarten auf die Systemleistung durch.<br />

Zur Arbeitserleichterung im Alltag stehen<br />

Administrator und Benutzer Snapshots<br />

innerhalb des WAFL-Dateisystems zur<br />

Verfügung, die eine essenzielle Basis<br />

sämtlicher Systeme des Herstellers bilden.<br />

Diese automatisiert nach einem hinterlegten<br />

Zeitplan erstellten Schnappschüsse<br />

werden vollständig performanceneutral<br />

auf Basis des „Append-on-Change“-Mechanismus<br />

erzeugt und sind über das<br />

freigegebene Dateisystem zugänglich.<br />

Durch diese Transparenz wird dem Benutzer<br />

direkt die Möglichkeit gegeben,<br />

vorhandene Snapshots einzusehen und<br />

die darin enthaltenen, eingefrorenen Dateien<br />

zurückzuholen, ohne den Administrator<br />

mit dieser Aufgabe behelligen<br />

zu müssen.<br />

Mit zusätzlichen Software Packs kann das<br />

System nach und nach weiter ausgebaut<br />

werden. Die von NetApp kostenpflichtig<br />

zur Verfügung gestellten SnapManager<br />

arbeiten auf Basis von Snapshots und<br />

bieten eine direkte Integration in Applikationen,<br />

die ihre Daten auf dem NetApp<br />

System ablegen, um konsistente Backups<br />

zu erzeugen. SnapManager sind unter anderem<br />

für VMware, Microsoft Exchange,<br />

SAP, Microsoft Sharepoint, Oracle oder<br />

Microsoft SQL verfügbar. Zusätzlich<br />

42 Ausgabe 03-2012 Admin www.admin-magazin.de


NAS-<strong>Test</strong><br />

<strong>Storage</strong><br />

Die FAS 2240 unterstützt wie alle Net-<br />

App-Systeme verschiedene Plattentypen<br />

(SAS und SATA), je nach Leistungs- und<br />

Kapazitätsanforderung kann so eine passende<br />

Kombination ausgewählt werden.<br />

Das Controllerchassis verfügt über 24 von<br />

vorne zugängliche- Einschübe für HDDs<br />

und kann mit bis zu fünf externen SAS<br />

Disk-Shelves auf maximal 144 Festplatten<br />

unterschiedlichen Types erweitert werden<br />

(Abbildung 5). Intern wie extern<br />

kann das System mit 1, 2 oder 3 TByte<br />

SATA-Disks, sowie 450 GByte und 600<br />

GByte SAS-Disks (mit 15k U/​min) betrieben<br />

werden. Daraus ergibt sich eine<br />

theoretische maximal Kapazität von 430<br />

TByte. Vor einem zweifachen Festplattenausfall<br />

innerhalb einer RAID-Gruppe<br />

schützt RAID-DP, ein von NetApp patentiertes<br />

RAID-6 ähnliches Verfahren,<br />

das im Gegensatz zu normalen RAID-6<br />

performanceneutral arbeitet. Für einen<br />

problemlosen Betrieb im Rechenzentrum<br />

sorgen vier verbaute Netzteile und digibt<br />

es den kostenfreien OpenSystem-<br />

SnapVault (OSSV) womit ein Backup von<br />

Linux-, Windows und diversen anderen<br />

UNIX Varianten auf der NetApp erstellt<br />

werden kann.<br />

In der Basisvariante ist jeder Controller<br />

mit 4x1-GBit-Ethernet und zwei SAS-<br />

Ports bestückt, zusätzlich sind noch<br />

ein Netzwerkanschluss für das Remotemanagement<br />

und eine serielle Konsole<br />

vorhanden. Über einen Mezzanine-Slot<br />

kann die FAS 2240-4 wahlweise mit zusätzlichen<br />

2x10 GbE oder 2x8Gb FC-Ports<br />

ausgerüstet werden.<br />

Die NetApp FAS 2240-4 ist als Single-<br />

Controller oder HA-Cluster konfigurierbar,<br />

der Aktiv/Aktiv betrieben wird.<br />

Im Fehlerfall übernimmt ein Controller<br />

zusätzlich die Disks und Dienste seines<br />

Cluster-Partners. Dieser Take-Over ist in<br />

den meisten Anwendungsfällen transparent<br />

für den User, oder die Applikation<br />

und führt nicht zu Unterbrechungen bei<br />

der Bereitstellung der Dienste.<br />

verse auch redundant ausgelegte Lüfter<br />

im Inneren des Gehäuses.<br />

Fazit: Die FAS2240-4 ist ein extrem skalierbares<br />

und leistungsfähiges <strong>Storage</strong><br />

System, welches mit den Anforderungen<br />

wachsen kann. Es ist ideal für mittelständische<br />

Unternehmen und dezentrale Umgebungen<br />

und kann kombiniert als NAS<br />

und als SAN-System betrieben werden.n<br />

Die Autoren<br />

Dieser Text ist ein Gemeinschaftwerk der Redaktion<br />

und verschiedener externer Autoren. Jens-<br />

Christoph Brendel, Chefredakteur des <strong>ADMIN</strong>-<br />

<strong>Magazin</strong>s, übernahm die Koordination, die <strong>Test</strong>s<br />

der Geräte von IBM, Infortrend, EuroStor und<br />

der Synology DiskStation sowie die allgemeinen<br />

Erläuterungen im Text. Michael Kromer (Topalis<br />

GmbH) steuerte seine Einschätzung der Synology<br />

RS3412RPxs bei, von Georg Schönberger (Thomas<br />

Krenn AG) stammen die Passagen zum Overland<br />

N2000, und Michael Streb (teamix GmbH)<br />

schrieb die Absätze zu NetApp.<br />

lucA<br />

41 Jahre<br />

BEruf: System-Administrator<br />

hErAuSfordErung: Komplexität,<br />

Problempriorisierung, Zeitmanagement<br />

WünScht Sich:<br />

Mehr Wertschätzung für seinen Job<br />

liEBt: Urlaube ohne Handy<br />

Ein Job ohne netEye?<br />

Ein Verlust fürs ganze Team<br />

Enterprise System & Application Monitoring<br />

› <strong>Test</strong>ed und supported Open Source<br />

› Nagios als Basisplattform<br />

› End User Monitoring mit ntop<br />

› Integriertes Help Desk mit OTRS<br />

› Asset- und Inventory Management<br />

www.wuerth-phoenix.com/neteye<br />

› SAP Monitoring<br />

› Business Process Monitoring<br />

› ITIL basierte Supportprozesse<br />

› Einfache Inbetriebnahme<br />

› Flexibel erweiterbar<br />

www.admin-magazin.de<br />

Admin<br />

NetEye<br />

Ausgabe 03-2012<br />

43


<strong>Storage</strong><br />

NDMP<br />

© Suwit Luangpipatsorn, 123RF<br />

Das NDMP-Protokoll und Alternativen für das Filer-Backup<br />

Schnellstraße<br />

NAS-Filer sind in der Regel geschlossene Systeme, auf denen der Anwender nichts installieren kann. Auch keinen<br />

Backup-Agenten. Ein Backup wird aber gebraucht – was nun? Jens-Christoph Brendel<br />

Wie man es auch anstellt: Will man einen<br />

Server sichern, muss auf ihm Software<br />

laufen, die die Daten direkt auf ein<br />

Medium oder zu einem zentralen Backupserver<br />

schickt. Vorkonfigurierte Server<br />

– darunter beispielsweise auch NAS-Filer<br />

– verwehren ihren Benutzern in der Regel<br />

aber ausdrücklich und mit Absicht die<br />

Installation zusätzlicher Software. Das<br />

würde ein Backup unmöglich machen,<br />

das gleichzeitig gerade für einen Fileserver<br />

unverzichtbar ist. Und nun?<br />

Ein Ausweg könnte natürlich sein, dass<br />

der NAS-Hersteller auch Backup-Agenten<br />

in seine Software integriert. Manche tun<br />

das tatsächlich, doch bei näherem Hinsehen<br />

entpuppt sich dieser Ansatz als<br />

nicht so gute Lösung, denn sie bindet<br />

den Anwender an eine bestimmte Sicherungssoftware.<br />

Außerdem könnten die<br />

wenigen integrierten Versionen niemals<br />

die Bandbreite abdecken, die der Markt<br />

für solche Anwendungen bereithält: Von<br />

einfach bis hoch komplex, von kostenlos<br />

bis ziemlich teuer ist hier für jeden Anwendungsfall<br />

Passendes im Angebot.<br />

Eine weitere Lösung des Problems kann<br />

darin bestehen, die zu sichernden Volumes<br />

am Backupserver zu mounten, auf<br />

dem dann wieder auch Agenten laufen<br />

können. Aber auch dieses Vorgehen hat<br />

Nachteile. So wandern dabei alle Daten<br />

der Sicherung über das LAN zum Backupserver.<br />

Existiert dafür keine dedizierte<br />

Verbindung, sind wegen der großen Datenmengen<br />

Beeinträchtigungen programmiert.<br />

Zum anderen können auch Sicherheitsrichtlinien<br />

dagegen sprechen, alle<br />

Volumes an einem Server zu mounten<br />

(und sei es auch nur read-only).<br />

So entstand NDMP<br />

Um diesen gordischen Knoten zu zerschlagen,<br />

taten sich 1996 Intelliguard<br />

Data Connection<br />

Fileserver (NAS) NDMP<br />

DATA-Server<br />

Tape-Library NDMP<br />

TAPE-Server<br />

File History<br />

Logs Cmds<br />

G Abbildung 2: Eine API bringt NetApp-Verzeichnisse in ein Fenster der<br />

Backupsoftware SEP sesam.<br />

Backup-Server /<br />

NDMP Control<br />

F Abbildung 1: Ablaufschema einer NDMP-Session.<br />

44 Ausgabe 03-2012 Admin www.admin-magazin.de


(später aufgekauft von Legato, das heute<br />

wiederum zu EMC gehört) und Network<br />

Appliance (NetApp) zusammen und<br />

entwickelten das NDMP-Protokoll. Dieser<br />

Standard ermöglicht es einem vom<br />

Protokoll sogenannten Data Server, der<br />

von Festplatten liest oder darauf schreibt,<br />

einen Datenstrom an einen Tape Server<br />

zu senden, der das Sicherungsmedium<br />

bedient. Heute verstehen zahlreiche Speichersysteme<br />

von NetApp, HP, EMC und<br />

anderen das Protokoll, daneben listet<br />

die NDMP-Webseite ein gutes Dutzend<br />

Hersteller von NDMP-kompatibler Backupsoftware,<br />

darunter die bedeutendsten<br />

wie IBM, EMC, HP, Symantec, CA oder<br />

Fujitsu-Siemens. Das NDMP-Modul im<br />

Backup-Programm hat damit seinen genormten<br />

Gegenpart im Diskarray und in<br />

der Tape Library, mit denen es direkt<br />

kommunizieren kann. Dabei fällt es in<br />

die Zuständigkeit des Agenten im Array,<br />

die Daten effizient bereitzustellen oder<br />

zurückzuschreiben, während die Backupsoftware<br />

die Zeitsteuerung übernimmt,<br />

dem Anwender eine GUI bietet und einen<br />

Katalog der gesicherten Files führt. Ein<br />

Kontrollmodul stößt den Prozess an und<br />

speichert Logs und History.<br />

NDMP im Detail<br />

Soll ein Backup über NDMP abgewickelt<br />

werden, passiert im Einzelnen Folgendes<br />

(Abbildung 1):<br />

1. Das NDMP-Kontrollprogramm kontaktiert<br />

zuerst den Tape-Server via TCP-Port<br />

10000, authentifiziert sich und veranlasst<br />

das Laden des benötigten Bandes in ein<br />

Laufwerk. Erforderlichenfalls wird das<br />

Band initialisiert und gelabelt.<br />

2. Danach spricht das Kontrollprogramm<br />

den Data-Server an, weist sich auch ihm<br />

gegenüber aus und konfiguriert einige<br />

Verbindungsdaten.<br />

3. Jetzt kann der Data Server eine Direktverbindung<br />

zum Tape Server aufbauen<br />

und darüber einen Stream von Backupdaten<br />

schicken. Die Logs beider Seiten<br />

und die Historie der übertragenen Files<br />

landen beim Kontrollprogramm.<br />

4. Wenn nötig initiiert das Kontrollprogramm<br />

das Wechseln der Bänder während<br />

des Backups mithilfe des Media<br />

Changer Supports der Tape Library.<br />

5. Der Data Server unterrichtet das Kontrollprogramm<br />

über den Abschluss des<br />

www.admin-magazin.de<br />

Backups. Die Verbindungnen werden<br />

wieder abgebaut. Ein Restore verläuft<br />

sinngemäß nach demselben Schema.<br />

Eingeschlafen<br />

Aktuell ist die NDMP-Version 4. Für einen<br />

Nachfolger befanden sich bereits<br />

zahlreiche Erweiterungen in der Pipeline,<br />

darunter der Umgang mit mehreren Quellen<br />

und Zielen, Checkpoints bei Backup<br />

und Recovery, die einen Wiederanlauf<br />

nach einer Unterbrechung ermöglichen<br />

würden, ein Snapshot Management, eine<br />

verbesserte Authentisierung oder eine<br />

höhere Kompatibilität mit Firewalls und<br />

NAT-Umgebungen. Allerdings scheint<br />

die Entwicklung eingeschlafen zu sein,<br />

die letzten Dokumente zur Standardisierung<br />

der Version 5 sind rund zehn Jahre<br />

alt und haben Entwurfscharakter. Eine<br />

Nachfrage der Redaktion bei der IETF<br />

ergab denn auch, dass die Standardisierungsbemühungen<br />

2003 ausgelaufen<br />

seien. Vielleicht hätten wir bei NDMP.org<br />

mehr Glück. Eine Nachfrage dort wurde<br />

allerdings überhaupt nicht beantwortet.<br />

Alternativen<br />

Das allein mag Grund genug sein, sich<br />

nach Alternativen umzusehen und eine<br />

bietet der Backup-Hersteller SEP. Er nutzt<br />

eine API, die NetApp zur Verfügung stellt,<br />

um seine Filer fernzusteuern. Die Backupsoftware<br />

kann über diese API den Speicher<br />

mounten und dessen Verzeichnisse<br />

in ihrem Browser darstellen (Abbildung<br />

2). Im Zuge eines Backups wird über<br />

diese Schnittstelle zunächst ein Snapshot<br />

erzeugt, der dann gesichert wird. Dafür<br />

empfiehlt SEP eine eigene LAN-Verbindung,<br />

sodass die Backup-Daten das restliche<br />

Netz nicht ausbremsen.<br />

Das Verfahren hat auch Nachteile: So<br />

funktioniert es nur mit NetApp oder<br />

kompatiblen Speichern, wogegen NDMP<br />

herstellerübergreifend arbeitet. Außerdem<br />

erzwingt es das Mounten sämtlicher<br />

Volumes am Backupserver, und es<br />

belastet das lokale Netz, solange man<br />

keine separate Verbindung zwischen Filer<br />

und Backupserver geschaltet hat. Wo das<br />

aber möglich ist, und wo vielleicht ohnehin<br />

nur Produkte von NetApp gesichert<br />

werden sollen, da ist es eine interessante<br />

und gut funktionierende Alternative. n<br />

Managed<br />

Server<br />

Profitieren Sie von:<br />

aktuelle Clustertechnologie<br />

ISO 9001 zertifiziertem<br />

Managed Hosting<br />

Hochsicherheits-Datacenter<br />

DE-CIX Direktanbindung<br />

24/7 Service und Support<br />

Individuelle Linux-Server<br />

Professionelles Hosting mit flexiblem,<br />

persönlichem und kompetentem<br />

Support. Für mehr Performance,<br />

Sicherheit und Verfügbarkeit, jeden<br />

Tag, rund um die Uhr.<br />

Wir bieten Hostinglösungen vom<br />

Server bis zum Clustersystem inkl.<br />

Beratung, Planung und Service 24/7.<br />

hostserver.de/server<br />

Managed Hosting<br />

zertifiziert nach<br />

ISO 9001 : 2008<br />

0 30 / 420 200 24 hostserver.de<br />

Berlin Marburg Frankfurt am Main<br />

Ausgabe 03-2012 45


<strong>Storage</strong><br />

Ceph/​RADOS<br />

Der RADOS-Objectstore und Ceph (Teil 1)<br />

In die Breite<br />

gegangen<br />

Skalierbares <strong>Storage</strong> ist eine Kernkomponente von Cloud-Umgebungen. RADOS und Ceph treten mit dem<br />

Versprechen an, nahtlos skalierbares <strong>Storage</strong> zu ermöglichen. Martin Loschwitz<br />

Der IT-Thema der Gegenwart ist zweifellos<br />

das Cloud Computing. Kaum eine<br />

Frage treibt die Verantwortlichen für<br />

Infrastruktur bei großen Unternehmen<br />

gegenwärtig so an wie die nach der besten<br />

Umsetzung der Wolke. Das Prinzip<br />

Cloud ist dabei eigentlich sehr einfach:<br />

Das Ziel von typischen IaaS-Systemen ist<br />

es, Benutzern Kapazitäten in Form von<br />

Rechenleistung und Speicherplatz anzubieten<br />

und zwar so, dass für den Anbieter<br />

selbst dabei so wenig Arbeit wie möglich<br />

entsteht und die gesamte Plattform so<br />

flexibel wie möglich ist. Konkret heißt<br />

das, dass Kunden Rechenleistung und<br />

Plattenplatz nach eigenem Gutdünken<br />

anfordern können und benutzen, solange<br />

sie die Services tatsächlich brauchen. Für<br />

die IT-Dienstleister ergibt sich die Notwendigkeit,<br />

die eigenen Setups möglichst<br />

skalierbar anzulegen: Lastspitzen sollten<br />

ohne Probleme abzufangen sein. Wenn<br />

die Plattform wächst – und Wachstum<br />

ist letztlich das Ziel von praktisch jedem<br />

Unternehmen – soll auch die dauerhafte<br />

Erweiterung kein Problem sein.<br />

In der Praxis gestaltet sich die Umsetzung<br />

einer solchen Lösung freilich etwas umständlicher.<br />

Skalierbare Virtualisierungsumgebungen<br />

gehören zu den eher leicht<br />

umzusetzenden Themen; Xen und KVM<br />

tragen in Verbindung mit den einschlägigen<br />

Management-Tools dazu bei, dass<br />

sich Virtualisierungshosts ohne Schwierigkeiten<br />

verwalten lassen. Auch der<br />

Scale-Out ist kein Problem: Braucht die<br />

Plattform mehr Rechenleistung, kommen<br />

weitere Rechner dazu, die sich nahtlos in<br />

die vorhandene Infrastruktur einfügen.<br />

Knackpunkt <strong>Storage</strong><br />

Interessant wird die Sache beim Thema<br />

<strong>Storage</strong>. Die Art und Weise, wie in IT-<br />

Umgebungen Daten gespeichert werden,<br />

hat sich im Grunde in den letzten Jahren<br />

kaum verändert. Anfang der 90er gab es<br />

in Rechenzentren viele Server mit lokalem<br />

<strong>Storage</strong>, die alle die klassischen Probleme<br />

eines Single Point of Failure (SPOF) hatten.<br />

Ab Mitte der 90er hielten SANs Einzug<br />

samt dazugehöriger FibreChannel-<br />

HBAs. Die boten zwar wesentlich mehr<br />

Redundanz als ihre Vorgänger, waren und<br />

sind im Gegenzug aber auch empfindlich<br />

teuer. Wer es lieber etwas günstiger mag,<br />

setzt seit ein paar Jahren auf DRBD mit<br />

Standard-Hardware und umgeht so die<br />

teils horrenden Kosten von SANs. Ein<br />

Problem haben all diese Ansätze gemein:<br />

Sie skalieren nicht nahtlos.<br />

Scale-Out & Scale-Up<br />

Admins unterscheiden grundsätzlich zwischen<br />

zwei Formen von Skalierbarkeit:<br />

Skalieren in die Höhe (Scale-Up) basiert<br />

auf der Idee, die Ressourcen bereits vorhandener<br />

Geräte zu erweitern. Dem gegenüber<br />

steht das Skalieren in die Breite<br />

(Scale-Out), das darauf setzt, neue Geräte<br />

hinzuzufügen (Abbildung 1). Ein Beispiel<br />

46 Ausgabe 03-2012 Admin www.admin-magazin.de


Ceph/​RADOS<br />

<strong>Storage</strong><br />

RADOS steht für »reliable autonomic distributed<br />

object store« (es heißt tatsächlich<br />

„autonomic“, nicht „autonomous“).<br />

Die Software wird seit einigen Jahren von<br />

der Firma Dreamhost unter Federführung<br />

von Sage A. Weil entwickelt und stellt im<br />

Wesentlichen dessen Doktorarbeit an der<br />

University of California, Santa Cruz dar.<br />

RADOS implementiert genau die zuvor<br />

beschriebene Arbeitsweise eines Object<br />

Stores – es unterscheidet dabei zwischen<br />

drei einzelnen Ebenen:<br />

1. Object <strong>Storage</strong> Devices (OSDs). Ein<br />

OSD ist in RADOS stets ein Ordner innerhalb<br />

eines bereits existierenden Dateisystems.<br />

Sämtliche OSDs sind zusammen<br />

der eigentliche Object Store, hierin<br />

lagern die binären Objekte, die RADOS<br />

aus abzulegenden Dateien generiert. Die<br />

Hierarchie innerhalb der OSDs ist flach:<br />

Es gibt lediglich Dateien mit UUID-artigen<br />

Namen, aber keine Unterordner.<br />

2. Monitoring-Server (MONs): Diese bilden<br />

die Schnittstelle zum RADOS-Store<br />

und erlauben den Zugriff auf Objekte<br />

innerhalb des Speichers. Sie wickeln<br />

die Kommunikation mit allen externen<br />

Applikationen ab und funktionieren dezentral:<br />

Ihre Anzahl ist nicht beschränkt,<br />

und jeder Client kann mit jedem MON<br />

sprechen. MONs verwalten die MONmap<br />

(eine Liste aller MONs) und die OSDmap<br />

(eine Liste aller OSDs). Die Informationen<br />

aus diesen beiden Listen erfür<br />

Scale-Out-Lösungen sind Datenbanken:<br />

Hier ist es oft möglich, die Last auf<br />

mehrere Slave-Server zu verteilen.<br />

Im Hinblick auf <strong>Storage</strong> ist Scale-Out allerdings<br />

ein nahezu unbekanntes Thema:<br />

Lokales <strong>Storage</strong> in Servern, SAN-<strong>Storage</strong>s<br />

oder Server mit DRBD sind meistens nur<br />

in die Höhe erweiterbar (mehr Platten),<br />

aber nicht in die Breite. Wenn das Gehäuse<br />

voll ist, muss im Zweifelsfalle ein<br />

zweites <strong>Storage</strong> her, das sich dann aber<br />

oft genug nicht mit dem schon vorhandenen<br />

zusammenfassen lässt und so die<br />

Wartung erschwert. Bei SAN-<strong>Storage</strong>s gilt<br />

außerdem: Zwei SAN-<strong>Storage</strong>s verdoppeln<br />

den ohnehin hohen Preis!<br />

Guter Rat ist nicht<br />

automatisch teuer<br />

Wer eine Cloud plant und sich Gedanken<br />

um nahtlos skalierbares <strong>Storage</strong> macht,<br />

muss an dieser Stelle nicht die Flinte ins<br />

Korn werfen: Die Autoren der gängigen<br />

Cloud-Anwendungen haben dieses Problem<br />

im Blick und bieten mittlerweile tragfähige<br />

Lösungen an – Object Stores.<br />

Diese funktionieren nach einem simplen<br />

Prinzip: Auf sämtlichen Servern, die<br />

zum Teil eines Object Stores werden sollen,<br />

läuft eine Software, die den lokalen<br />

Plattenplatz dieses Servers verwaltet und<br />

exportiert. Sämtliche Instanzen dieser<br />

Software arbeiten im Rechnerverbund<br />

zusammen und sorgen so dafür, dass für<br />

den Betrachter von außen das Bild eines<br />

einzelnen, großen <strong>Storage</strong>s entsteht. Um<br />

die Verwaltung des Speichers intern zu<br />

ermöglichen, legt die Object-<strong>Storage</strong>-Software<br />

die Daten nicht in ihrer ursprünglichen<br />

Form auf den einzelnen <strong>Storage</strong>-<br />

Knoten ab, sondern als binäre Objekte.<br />

Der Clou an der Sache: Die<br />

Zahl einzelner Knoten, aus<br />

denen sich das große Object<br />

<strong>Storage</strong> zusammensetzt, ist<br />

beliebig. Selbst im laufenden<br />

Betrieb ist es problemlos<br />

möglich, neue <strong>Storage</strong>-Knoten<br />

hinzuzufügen. Weil sich<br />

die Object-<strong>Storage</strong>-Software<br />

außerdem um das Thema<br />

Redundanz intern kümmert<br />

und der ganze Aufbau gut<br />

mit Standard-Hardware funktioniert,<br />

vereint solch eine<br />

Lösung die Vorteile von SANs<br />

Scale up<br />

oder DRBD-<strong>Storage</strong>s mit denen nahtloser<br />

Skalierbarkeit in die Breite. RADOS<br />

tritt zusammen mit dem dazugehörigen<br />

Dateisystem Ceph an, um der Platzhirsch<br />

auf diesem Gebiet zu werden.<br />

Wie RADOS funktioniert<br />

Scale out<br />

Abbildung 1: Der Unterschied zwischen vertikaler und horizontaler Skalierung.<br />

möglichen es Clients, später sich selbst<br />

auszurechnen, welches OSD zu kontaktieren<br />

ist, um an eine bestimmte Datei<br />

zu kommen. MONs kümmern sich im<br />

Stile eines PAXOS-Clusters auch darum,<br />

die Funktionstüchtigkeit von RADOS im<br />

Hinblick auf ein vorhandenes Quorum<br />

sicherzustellen.<br />

3. Metadata Server (MDS): Sie bieten<br />

POSIX-Metadaten zu Objekten im RADOS<br />

Object Store für Ceph-Clients an.<br />

Und was ist Ceph?<br />

Die meisten Beiträge zu RADOS sind ausschließlich<br />

mit Ceph übertitelt, was zu<br />

einiger Verwirrung führt. Um das Verhältnis<br />

von RADOS und Ceph zu verstehen,<br />

ist eine Aussage von Sage A. Weil<br />

sehr hilfreich: RADOS und Ceph sind<br />

zwei Teile der gleichen Lösung, wobei<br />

RADOS der „untere“ Teil und Ceph der<br />

„obere“ Teil der Lösung ist. So viel steht<br />

fest: Der schönste Object Store ist nichts<br />

wert, wenn er keine Möglichkeit bietet,<br />

an die in ihm abgelegten Daten wieder<br />

heranzukommen. Ceph bietet für RADOS<br />

genau das: Es ist ein Dateisystem, das<br />

im Hintergrund auf den Object Store zugreift<br />

und so dessen Daten direkt aus<br />

Applikationen heraus nutzbar macht. Die<br />

Metadata-Server greifen Ceph bei dieser<br />

Aufgabe unter die Arme: Sie bieten die<br />

laut POSIX-Standard nötigen Meta-Daten<br />

zu jeder Datei, auf die Ceph zugreift,<br />

wenn ein Benutzer eine Datei über Ceph<br />

anfordert. Das Chaos hinsichtlich der<br />

Namen von RADOS & Ceph verwirrt; offensichtlich<br />

ist man bei Dreamhost erst<br />

in einem späteren Stadium darauf gekommen,<br />

dass sich RADOS selbst auch<br />

als Backend für andere Werkzeuge als<br />

ein Dateisystem einsetzen<br />

lässt. Oft genug ist auch in<br />

den offiziellen Anleitungen<br />

von Dream host lediglich von<br />

„Ceph“ die Rede, obwohl<br />

RADOS und Ceph gemeint<br />

sind.<br />

Das erste RADOS-<br />

Setup<br />

Grau ist alle Theorie, und auch<br />

das Verständnis von RADOS<br />

und Ceph gelingt am lebenden<br />

Objekt wesentlich leichter<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

47


<strong>Storage</strong><br />

Ceph/​RADOS<br />

als in der Beschreibung. Ein vollständiges<br />

RADOS-Ceph-Setup braucht nicht viel:<br />

Drei Server mit lokalem <strong>Storage</strong> genügen.<br />

Die Zahl Drei steht im Zusammenhang<br />

damit, dass RADOS sich um das Thema<br />

Hochverfügbarkeit selbstständig kümmert:<br />

Über die schon erwähnte PAXOS-<br />

Implementation stellen die MONs sicher,<br />

dass stets mehr als eine Kopie eines Objektes<br />

innerhalb eines RADOS-Clusters<br />

verfübar ist. Zwar ließe sich auch ein<br />

einzelner Knoten zu einem RADOS-Store<br />

machen, mit der Hochverfügbarkeit wäre<br />

es dann allerdings vorbei. Ein RADOS-<br />

Cluster aus zwei Knoten ist noch kritischer:<br />

Dieser erreichte im Normalfall<br />

zwar durchaus ein Quorum, aber der<br />

Ausfall eines einzelnen Knotens würde<br />

im Anschluss auch den anderen Knoten<br />

unbrauchbar machen, weil RADOS ein<br />

Quorum braucht, es mit einer Instanz<br />

aber per Definition nicht erreichen kann.<br />

Erst mit drei Knoten ist man auf der sicheren<br />

Seite, weil der Ausfall eines Knotens<br />

hier kein Problem ist.<br />

Es spricht übrigens überhaupt nichts<br />

dagegen, sich anfangs auf rein virtuellen<br />

Maschinen mit RADOS zu beschäftigen –<br />

Funktionen, die spezielle Hardware-Features<br />

brauchen, gibt es in RADOS nicht.<br />

Die Software besorgen<br />

Am Anfang der Arbeit steht freilich die<br />

Installation von RADOS & Ceph. Ceph,<br />

das auf Linux-Systemen ein ganz normaler<br />

Dateisystem-Treiber ist, so wie beispielsweise<br />

auch Ext3 oder Ext4, ist seit<br />

Linux 2.6.34 fixer Bestandteil des Linux-<br />

Kernels und steht somit auf allen Distributionen<br />

mit diesem oder einem neueren<br />

Kernel zur Verfügung (Abbildung 2). Mit<br />

RADOS sieht es etwas weniger rosig aus –<br />

Abbildung 2: Nach dem Laden des »ceph«-Kernelmoduls<br />

steht das Dateisystem auf Linux zur Verfügung.<br />

Seit 2.6.34 ist es Bestandteil des Kernels.<br />

in der Dokumentation [1] finden sich für<br />

alle gängigen Distributionen allerdings<br />

fertige Pakete oder zumindest Installationsanleitungen.<br />

Vorsicht: Obwohl jeweils<br />

von „ceph“ die Rede ist, enthalten<br />

die entsprechenden Pakete auch alle für<br />

RADOS notwendigen Bestandteile. Sind<br />

die Pakete installiert, geht es mit den<br />

Vorbereitungen für RADOS weiter.<br />

OSDs vorbereiten<br />

RADOS braucht OSDs – wie bereits<br />

erwähnt, kann jeder Ordner in einem<br />

Dateisystem als OSD fungieren. Allerdings<br />

muss das jeweilige Dateisystem<br />

Extended Attributes beherrschen. Die<br />

RADOS-Autoren selbst empfehlen Btrfs,<br />

erwähnen aber auch XFS als Alternative<br />

für alle, denen Btrfs noch zu heiß ist.<br />

Der Einfachheit halber geht dieses Beispiel<br />

im Folgenden davon aus, dass auf<br />

drei Servern jeweils ein Verzeichnis in<br />

»/srv« namens »osd.ID« existiert, wobei<br />

ID jeweils durch den Hostname des Servers<br />

zu ersetzen ist. Heißen die drei Server<br />

»alice«, »bob« und »charlie«, gäbe es<br />

auf »alice« den Ordner »/srv/osd.alice«<br />

und so weiter. Soll ein extra für diesen<br />

Zweck angelegtes lokales Dateisystem<br />

zum Einsatz kommen, so ist darauf zu<br />

achten, dass dieses unter »/srv/osd.ID«<br />

gemountet ist. Zu guter Letzt sollte auf jedem<br />

der Hosts in »/srv« auch ein Ordner<br />

»mon.ID« vorhanden sein, wobei ID wie<br />

zuvor durch den tatsächlichen Hostname<br />

zu ersetzen ist.<br />

Für dieses Beispielsetup könnte die zentrale<br />

RADOS-Konfiguration in »/etc/ceph/<br />

ceph.conf« aussehen wie in Listing 1.<br />

Die Konfigurationsdatei legt die folgenden<br />

Details fest: Jeder der drei Hosts stellt<br />

einen OSD sowie einen MON-Server zur<br />

Verfügung, auf Host alice läuft zusätzlich<br />

ein MDS, damit eventuelle Clients<br />

mit Ceph später die benötigten POSIXkompatiblen<br />

Metadaten vorfinden. Die<br />

Authentifizierung zwischen den Knoten<br />

findet verschlüsselt statt, der passende<br />

Keyring liegt im Ordner »/etc/ceph« und<br />

trägt im Beispiel den Namen »$name.<br />

keyring«, wobei »name« von RADOS später<br />

automatisch durch den tatsächlichen<br />

Wert ersetzt wird.<br />

Wichtig ist, dass die Knoten des RADOS-<br />

Clusters sich untereinander jeweils über<br />

die in »ceph.conf« verwendeten Hostnames<br />

direkt erreichen, sodass im Falle eines<br />

Falles »/etc/hosts« um entsprechende<br />

Einträge zu erweitern ist. Außerdem muss<br />

für den Aufruf von »mkcephfs« später<br />

Listing 1: Beispielhafte »/etc/ceph/ceph.conf«<br />

01 [global]<br />

02 auth supported = cephx<br />

14 <br />

15 [mon.a]<br />

03 keyring = /etc/ceph/$name.keyring<br />

16 host = alice<br />

04 <br />

17 mon addr = 10.42.0.101:6789<br />

05 [mon]<br />

06 mon data = /srv/mon.$id<br />

18 <br />

19 [mon.b]<br />

07 <br />

20 host = bob<br />

08 [mds]<br />

21 mon addr = 10.42.0.102:6789<br />

09 <br />

10 [osd]<br />

11 osd data = /srv/osd.$id<br />

22 <br />

23 [mon.c]<br />

24 host = charlie<br />

12 osd journal = /srv/osd.$id.journal<br />

25 mon addr = 10.42.0.103:6789<br />

13 osd journal size = 1000<br />

26 <br />

27 [osd.0]<br />

28 host = alice<br />

29 <br />

30 [osd.1]<br />

31 host = bob<br />

32 <br />

33 [osd.2]<br />

34 host = charlie<br />

35 <br />

36 [mds.a]<br />

37 host = alice<br />

48 Ausgabe 03-2012 Admin www.admin-magazin.de


Ceph/​RADOS<br />

<strong>Storage</strong><br />

Abbildung 3: Welche Ceph-Dienste auf einem Host laufen, lässt sich mittels »ps« herausfinden. Im Beispiel ist der Host sowohl ODS wie auch MON und MDS.<br />

der Login als »root« auf allen RADOS-<br />

Knoten klappen und »root« sollte »sudo«<br />

ohne eine zusätzliche Passwortabfrage<br />

auf sämtlichen Knoten aufrufen können.<br />

Wenn das der Fall ist, folgt im nächsten<br />

Schritt das Anlegen des Keyrings, damit<br />

sich die RADOS-Knoten untereinander<br />

autentifizieren können: »mkcephfs ‐a ‐c /<br />

etc/ceph/ceph.conf ‐k /etc/ceph/admin.<br />

keyring«.<br />

Der nächste Schritt besteht darin, sicherzustellen,<br />

dass »ceph.conf« auf allen<br />

Hosts vorhanden ist, die zum Cluster gehören<br />

(Abbildung 3). Ist das der Fall, ist<br />

auf sämtlichen Servern bloß noch RADOS<br />

selbst zu starten, was mittels »/etc/<br />

init.d/ceph start« geschieht. Nach einigen<br />

Sekunden sollten sich die drei Knoten<br />

als Cluster zusammengefunden haben,<br />

überprüfen lässt sich das per »ceph ‐k<br />

/etc/ceph/admin.keyring ‐c /etc/ceph/<br />

ceph.conf health«, das eine Ausgabe wie<br />

in Abbildung 4 auf den Bildschirm befördern<br />

sollte.<br />

Das Dateisystem per Ceph<br />

mounten<br />

Weiter geht es damit, das frisch angelegte<br />

Dateisystem auf einem anderen<br />

Host an einem der RADOS-Knoten zu<br />

mounten. Das geht wie gewohnt mit »<br />

mount« – als Zielhost dient jeweils einer<br />

der MON-Server, im Beispiel also<br />

»alice«, deren MON-Adresse in »ceph.<br />

conf« auf »10.42.0.101:6789« festgelegt<br />

ist. Weil die Cephx-Autentifizierung<br />

zum Einsatz kommt, gilt es vorher,<br />

die von Ceph automatisch generierten<br />

Login-Credentials für den Mount herauszufinden.<br />

Dazu dient der folgende<br />

Befehl auf einem der RADOS-Knoten:<br />

»ceph‐authtool ‐l /etc/ceph/admin.keyring«<br />

gibt die Credentials aus. Dann folgt<br />

der eigentliche Mountvorgang: »mount<br />

‐t ceph 10.0.0.1:6789:/ /mnt/osd ‐vv ‐o<br />

name=admin,secret=Schlüssel«, wobei<br />

»Schlüssel« durch den Wert von »key«<br />

zu ersetzen ist, den das vorangegangene<br />

Kommando ergeben hat. Der Mountpoint<br />

im Beispiel ist »/mnt/osd«, das im Anschluss<br />

als ganz normales Verzeichnis<br />

benutzt werden kann.<br />

Die Crush Map<br />

RADOS und Ceph benutzen im Hintergrund<br />

einige Magie, die das Setup gegen<br />

Ausfälle aller Art absichern soll. Das fängt<br />

schon beim Mount an: Jeder der vorhandenen<br />

MON-Server kann als Mountpoint<br />

Verwendung finden, allerdings bedeutet<br />

das nicht, dass die Kommunikation anschließend<br />

stets nur zwischen dem Client<br />

und diesem spezifischen MON stattfindet.<br />

Stattdessen erhält Ceph auf dem<br />

Client vom kontaktierten MON-Server die<br />

MON- und die OSDmap und rechnet sich<br />

anschließend selbst aus, welchen OSD<br />

er für eine bestimmte Datei am besten<br />

verwendet, und wickelt mit eben diesem<br />

OSD die Kommunikation direkt ab.<br />

Ein weiterer Schritt zur Erhöhung der Redundanz<br />

ist die Crush Map. In ihr ist festgelegt,<br />

welche Hosts zu einem RADOS-<br />

Cluster gehören, wie viele OSDs dort<br />

vorhanden sind und wie Daten auf diese<br />

Hosts sinnvollerweise aufzuteilen sind.<br />

Über die Crush Map wird RADOS Rack-<br />

Aware und Admins haben die Möglichkeit,<br />

die interne Replikation von RADOS<br />

im Hinblick auf einzelne Server, Racks<br />

oder Sicherheitszonen im Rechenzentrum<br />

zu manipulieren. Auch das im Beispiel<br />

Abbildung 4: Ob der RADOS-Paxos-Cluster funktioniert, lässt sich mittels der Ceph-eigenen „health“-Option<br />

herausfinden.<br />

angelegte Setup hat eine rudimentäre<br />

Default Crush Map. Die Beschreibung<br />

aller Crush-Map-Optionen wird im zweiten<br />

Teil dieses Artikels im nächsten Heft<br />

ausführlich erklärt; dabei wird es auch<br />

darum gehen, innerhalb des RADOS-<br />

Stores verschiedene Pools einzurichten,<br />

also den großen Brocken Speicherplatz<br />

in mehrere kleine Teile aufzusplitten. Wer<br />

sich bis dahin mit der Crush Map genauer<br />

befassen möchte, findet im Ceph-Wiki<br />

unter [2] die wichtigsten Informationen<br />

für den Einstieg.<br />

Das bestehende Setup<br />

erweitern<br />

Wie verhält es sich nun also mit der<br />

Erweiterung eines RADOS-Clusters um<br />

weitere Knoten, um den verfügbaren<br />

Speicherplatz zu vergrößern? Angenommen,<br />

das Beispielsetup sei um den Knoten<br />

»daisiy« zu erweitern, so besteht der<br />

erste Schritt darin, für diesen Knoten eine<br />

ID festzulegen. Im Beispiel sind die IDs<br />

null bis drei bereits vergeben, sodass der<br />

neue Knoten die ID vier erhält, was mit<br />

»ceph osd create 4« geschieht.<br />

Im Anschluss sind die vorhandenen<br />

»ceph.conf«-Dateien auf sämtlichen<br />

schon vorhandenen Clusterknoten so zu<br />

erweitern, dass ein Eintrag für Daisy dort<br />

vorhanden ist. Auf daisy selbst ist dazu<br />

die Ordnerstruktur anzulegen, die für die<br />

Arbeit als OSD notwendig ist, insbesondere<br />

also die Verzeichnisse in »/srv« analog<br />

zu den bisherigen Beispielen dieses<br />

Artikels. Danach ist die neue »ceph.conf«<br />

in den Ordner »/etc/ceph« auf daisy zu<br />

kopieren.<br />

Damit daisy weiß, welche MON-Struktur<br />

vorhanden ist – sie selbst muss sich in<br />

weiterer Folge an einem existierenden<br />

MON registrieren – benötigt sie eine aktuelle<br />

Version der MONmap (Abbildung<br />

5) des existierenden RADOS-Clusters.<br />

Diese ist auf einem der existierenden<br />

RADOS-Knoten per »ceph mon getmap<br />

‐o /tmp/monmap« auszulesen und dann<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

49


<strong>Storage</strong><br />

Ceph/​RADOS<br />

G Abbildung 5: Die Monmap enthält Informationen darüber, welche MONs<br />

innerhalb eines RADOS-Clusters bereits vorhanden sind. Neue OSDs benötigen<br />

diese Information unbedingt.<br />

E Abbildung 6: Mittels »ceph auth list« gibt Ceph preis, welche Keys eine MON-<br />

Instanz bereits kennt und was die Credentials dem Knoten erlauben.<br />

auf Daisy per »scp« zu kopieren (das Beispiel<br />

geht davon aus, dass sie auch auf<br />

daisy in »/tmp/monmap« landet). Dann<br />

folgt die Initialisierung des OSD-Verzeichnisses<br />

auf Daisy: »ceph‐osd ‐c /etc/ceph/<br />

ceph.conf ‐i 4 ‐‐mkfs ‐‐monmap /tmp/<br />

monmap ‐‐mkkey«. Hätte der zusätzliche<br />

Clusterknoten eine andere ID als vier, so<br />

wäre dieser Wert hinter -i entsprechend<br />

einzusetzen.<br />

Schließlich lernt der schon bestehende<br />

Cluster den neuen Knoten kennen (Abbildung<br />

6). Im Beispiel existiert auf<br />

»daisy« nach dem letzten Befehl eine Datei<br />

namens »/etc/ceph/osd.4.keyring«,<br />

die mittels »scp« auf einen der bereits<br />

existierenden MONs zu kopieren ist. Danach<br />

bindet »ceph auth add osd.ID osd<br />

'allow *' mon 'allow rwx' ‐i /etc/ceph/<br />

osd.4.keyring« auf eben diesem Knoten<br />

den neuen OSD in die bestehende Autentifizierungsstruktur<br />

ein. Indem per<br />

»/etc/init.d/ceph« auf daisy RADOS in<br />

Gang gesetzt wird, meldet sich der neue<br />

OSD am existierenden RADOS-Cluster<br />

an. Der allerletzte Schritt ist, die vorhandene<br />

Crush Map anzupassen, sodass der<br />

neue OSD tatsächlich auch verwendet<br />

wird. Das geschieht im Beispiel mit »ceph<br />

osd crush add 4 osd.4 1.0 pool=default<br />

host=daisy« – danach ist das neue OSD<br />

Bestandteil des existierenden RADOS/​<br />

Ceph-Clusters.<br />

Zwischenfazit<br />

Es ist nicht besonders kompliziert, die<br />

Kombination aus RADOS und Ceph erstmalig<br />

einsatzbereit zu machen. Diese Art<br />

der Konfiguration lässt aber auch viele<br />

der großartigen<br />

Funktionen, die<br />

RADOS ab Werk<br />

bietet, komplett ungenutzt. So bietet die<br />

schon erwähnte Crush-Map-Funktionalität<br />

die Möglichkeit, riesige RADOS-Setups<br />

über ganze Racks in Rechenzentren zu<br />

deployen und obendrein intelligent ausfallsicher<br />

zu machen. Indem RADOS zudem<br />

die Möglichkeit bietet, seinen Speicher<br />

in einzelne Pools variabler Größe<br />

aufzuteilen, ist eine weitere Granulierung<br />

im Hinblick auf jeweils unterschiedliche<br />

Aufgaben und Zielgruppen möglich.<br />

Unerwähnt geblieben sind bisher auch<br />

die RADOS-Frontends weit jenseits von<br />

Ceph. Fakt ist: Ceph ist ein Frontend von<br />

vielen, in diesem Falle erlaubt es den<br />

Zugriff auf Dateien innerhalb des Object<br />

Stores über den Umweg eines Linux-<br />

Dateisystems.<br />

Es stehen allerdings noch einige andere<br />

Optionen im Raum, um an Daten<br />

in RADOS heranzukommen: Das Rados<br />

Block Device, kurz »rbd« ist beispielsweise<br />

gut, wenn Zugriff auf Dateien im<br />

Object Store auf Block-Device-Ebene passieren<br />

soll. Das ist unter anderem bei<br />

virtuellen Maschinen der Fall, die meist<br />

Block-Devices als Backend für ihre virtuellen<br />

Festplatten akzeptieren und so die<br />

langsamere Lösung mit Images umgehen.<br />

RADOS wird auf diese Weise zum<br />

umfassenden <strong>Storage</strong>-System für große<br />

Virtualisierungslösungen und löst für den<br />

Admin ein weiteres Problem im Kontext<br />

der Cloud. Apropos: Neben »rbd« stehen<br />

über die »librados« auch verschiedene<br />

Schnittstellen zum HTTP-Zugriff bereit,<br />

so existiert eine Variante, die kompatibel<br />

mit Amazons S3 ist genauso wie eine<br />

Swift-kompatible Variante. Außerdem ist<br />

ein generisches REST-Interface verfügbar.<br />

An Schnittstellen zur Außenwelt mangelt<br />

es RADOS insofern sicher nicht.<br />

Ausblick<br />

Der zweite Teil des Workshops wird sich<br />

mit den RADOS-Details fernab von Ceph<br />

und den gängigen Default-Setups beschäftigen<br />

– vielleicht liegen die RADOS-<br />

Ceph-Komponenten dann bereits in offiziell<br />

stabilen und als „enterprise-ready“<br />

markierten Versionen vor: Derzeit handelt<br />

es sich noch um Vorserienversionen,<br />

doch die Entwickler wollen laut eigener<br />

Aussage in den nächsten Wochen die Version<br />

1.0 auf den Markt bringen und so<br />

ein in ihren Augen enterprise-taugliches<br />

Release vorstellen. (jcb)<br />

n<br />

Infos<br />

[1] Wiki-Seite mit Paketlinks für verschiedene<br />

Distributionen: [http:// ceph. newdream.​<br />

net/ docs/ master/ ops/ install/]<br />

[2] Informationen zur Crush Map: [http:// ceph.​<br />

newdream. net/ wiki/ Custom_data_placement_with_CRUSH]<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 und<br />

pflegt in seiner Freizeit den Linux-Cluster-Stack<br />

für Debian GNU/​Linux.<br />

50 Ausgabe 03-2012 Admin www.admin-magazin.de


Bei uns steht<br />

Linux auf der<br />

Tagesordnung!<br />

Unsere Server sind getestet mit...<br />

... Ubuntu<br />

Debian<br />

RedHat Enterprise Linux<br />

CentOS<br />

Suse Linux Enterprise Server usw...<br />

Bernhard Seibold,<br />

Senior Engineer<br />

Thomas Krenn empfiehlt:<br />

2HE INTEL DUAL-CPU SC826 SERVER mit Linux<br />

Neueste Intel Westmere - CPUs, bis zu 3.33GHz und 6 Kerne pro CPU<br />

Hochwertige, energieeffiziente Speichermodule, bis zu 192 GB möglich<br />

HDDs bis zu 36 TB (Brutto) SAS-2 (6Gb/s) oder 24 TB (Brutto) SATA (3Gb/s)<br />

Lesen Sie unser <strong>Test</strong>protokoll mit allen Linux Distributionen unter:<br />

www.thomas-krenn.com/sc826_testprotokoll<br />

Nur bei uns!<br />

EUR<br />

ab 1.899,-<br />

23.- 26. Mai<br />

Berlin 2012<br />

Thomas Krenn Open<br />

Source Förderungen<br />

Thomas Krenn steht für Server made in Germany. Wir<br />

assemblieren und liefern europaweit innerhalb von 24<br />

Stunden. Unter www.thomas-krenn.com können Sie<br />

Ihre Server individuell konfi gurieren.<br />

Unsere Experten sind rund um die Uhr für Sie unter<br />

+49 (0) 8551 9150-0 erreichbar<br />

(CH: +41 (0) 848207970, AT +43 (0) 7282 20797-3600)<br />

Made in Germany!<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen und Behörden. Druckfehler, Irrtümer und Änderungen in Preis und Ausstattung vorbehalten.<br />

Unsere Versandkosten richten sich nach Gewicht und Versandart. Genaue Preisangaben finden Sie unter: www.thomas-krenn.com/versandkosten. Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung


Security<br />

OpenVAS<br />

© Guido Vrola, 123RF<br />

Der Vulnerability Scanner OpenVAS<br />

Vas-serdicht<br />

Mit steigender Komplexität der IT-Infrastrukur sind Tools zur Schwachstellenanalyse (Vulnerability Scanner) unverzichtbar.<br />

Wer als Admin nicht gerade eine Umschulung zum Profi-Hacker anstrebt, vertraut für das Aufspüren<br />

von Schwachstellen auf spezialisierte Software wie OpenVAS. Dieser Beitrag gibt einen Überblick über Installation<br />

und Bedienung. Thomas Drilling<br />

Das Open Vulnerability Assessment<br />

System (OpenVAS) ist die derzeit am<br />

weitesten verbreitete und mit Abstand<br />

professionellste Open-Source-Lösung<br />

zur Schwachstellen-Analyse. Das Programm<br />

ist 2005 aus einer Abspaltung<br />

des Nessus-Projekts hervorgegangen, das<br />

vielen erfahrenen Administratoren noch<br />

ein Begriff sein dürfte. Während viele<br />

heute bekannte Open-Source-Lösungen<br />

aus kommerziellen Projekten entstanden<br />

sind, ging Nessus den umgekehrten Weg<br />

und wechselte im Jahr 2005 mit Fertigstellung<br />

der Version 3.0 zu einer kommerziellen<br />

Lizenz.<br />

Mit dieser Entscheidung des Projekt-<br />

Teams um Nessus-Erfinder Renaud Deraison<br />

ging der Open-Source-Gemeinde im<br />

Jahr 2005 eines der bis dahin erfolgreichsten<br />

Projekte verloren. Deraisons<br />

Firma Tenable Security konzentriert sich<br />

seitdem auf technischen Support und bietet<br />

Schulungen zu Nessus an.<br />

Neben der Aussicht, auf diese Weise<br />

mehr Geld in die Firmenkasse zu spielen<br />

erfordert die Pflege aktueller Sicherheitstests<br />

nämlich auch entsprechende Ressourcen.<br />

Die Brauchbarkeit eines Vulnerability<br />

Scanners wie OpenVAS lebt vom<br />

täglich aktualisierten Feed-Service, der<br />

die Network Vulnerability <strong>Test</strong>s (NVTs)<br />

in einem eigens definierten Format liefert<br />

[7]. Stand April 2012 beinhaltet der freie<br />

OpenVAS-Feed über 25 000 NVTs.<br />

Freundlicherweise vermachten die<br />

Nessus-Entwickler der Open-Source-<br />

Gemeinde aber den bis dato (2005) bereits<br />

seit sieben Jahren unter der GPL<br />

stehenden Code der Nessus-Version 2.2,<br />

auf dem das Nachfolge-Projekt Open-<br />

VAS aufsetzt und bis heute weiterentwickelt<br />

wird. Die derzeit aktuelle, stabile<br />

OpenVAS-Version vom März 2011 ist<br />

4.0. OpenVAS ist mit Ausnahme einiger<br />

C++-Module fast durchgängig in C programmiert<br />

und unter der GPLv2-Lizenz<br />

verfügbar. Nessus selbst hat inzwischen<br />

den Release-Stand 5.0 erreicht [2]. Übrigens<br />

empfiehlt auch das Bundesamt<br />

für Sicherheit in der Informationstechnik<br />

(BSI) OpenVAS.<br />

OpenVAS-Ableger und<br />

Add-ons<br />

Im Zusammenhang mit OpenVAS darf die<br />

Osnabrücker Greenbone Networks GmbH<br />

[3] nicht unerwähnt bleiben, deren Entwickler<br />

nicht nur laut eigener Angabe<br />

über 60 Prozent des OpenVAS-Teams ausmachen.<br />

Das Geschäftsmodell der Osnabrücker<br />

basiert auf der Entwicklung von<br />

Sicherheitslösungen für Kunden, die ausschließlich<br />

auf freier Software aufsetzen,<br />

in der Hauptsache OpenVAS [4]. Einige<br />

der interessantesten Tools und Add-ons<br />

für OpenVAS unter der Bezeichnung<br />

„Greenbone Security Solutions“ [5], wie<br />

etwa das Webinterface »gsa« (Greenbone<br />

52 Ausgabe 03-2012 Admin www.admin-magazin.de


OpenVAS<br />

Security<br />

Security Assistant), das Desktopinterface<br />

»vmcc« (Vulnerability Management<br />

Control Center) oder das erweiterte CLI-<br />

Interface »vmbpi« (Vulnerability Management<br />

Batch Process Integration) wurden<br />

von Greenbone entwickelt, wie auch der<br />

Greenbone Security Explorer [6], eine<br />

interaktive, kartenbasierte, eigenständige<br />

Webanwendung zum Analysieren eines<br />

Scan-Reports. Die Greenbone-Utilities<br />

sind je nach Distribution in der Regel<br />

ebenfalls über die OpenVAS-Repos erhältlich<br />

beziehungsweise Teil des jeweiligen<br />

Gesamtpaketes.<br />

OpenVAS-Architektur<br />

Dem OpenVAS-Framework liegt eine relativ<br />

komplexe Client/​Server-Architektur<br />

zugrunde, in deren Zentrum der – im<br />

Unterschied zu Nessus – nur für Linux<br />

verfügbare OpenVAS-Server steht. Die<br />

Zusammenhänge lassen sich der Abbildung<br />

1 entnehmen.<br />

Der OpenVAS-Server lädt beim Start automatisch<br />

die verfügbaren Plugins, die<br />

etwaige Sicherheitslücken auf dem zu<br />

scannenden Host aufspüren. Die Plugins<br />

sind in der Nessus-eigenen Skriptsprache<br />

„Nessus Attack Scripting Language“<br />

(NASL) geschrieben. Im praktischen Einsatz<br />

verbindet sich der Admin mithilfe eines<br />

Client-Interfaces mit dem Server und<br />

erstellt für jeden Scan eine Session, in der<br />

er jeweils die zu verwendenden Plugins,<br />

den Zielhost und weitere Einstellungen<br />

angibt. Nach dem Ausführen eines Scans<br />

zeigt der Client eine Übersicht der Ergebnisse<br />

in Form eines Reports, der etwa<br />

Informationen über offene Ports (der<br />

Admin kann dazu übrigens in OpenVAS<br />

verschiedene Port-Scanner einbinden)<br />

oder andere entdeckte Sicherheitslücken<br />

enthält.<br />

Zusätzlich verdeutlicht die Paket-Matrix<br />

[8] auf der Download-Seite, welche<br />

Komponenten im Einzelfall erforderlich<br />

sind und wie die einzelnen Module zusammenarbeiten.<br />

So gibt es zum Beispiel<br />

den Client in einer CLI-Version sowie als<br />

Desktopsoftware (auch für Windows)<br />

und als Webinterface. Der OpenVAS-<br />

Server läuft stets auf der Maschine,<br />

die die eigentlichen <strong>Test</strong>s initiiert und<br />

implementiert in der Version 4 die Services<br />

„OpenVAS Scanner“ (Port 9391),<br />

„OpenVAS Manager“ (Port 9390) und<br />

Abbildung 1: Die OpenVAS-Architektur.<br />

„OpenVAS Administrator“ (Port 9393).<br />

Die Paket-Matrix gibt über die verfügbaren<br />

Versionen Auskunft. Beim OpenVAS-<br />

Scanner ist das in der Regel die Version<br />

3.2, bei einigen Versionen aber auch nur<br />

3.0 oder 3.2. Der OpenVAS-Manager kontrolliert<br />

die Scanner über das „OpenVAS<br />

Transfer Protocol“ (OTP) und lässt sich<br />

selbst über das XML-basierte zustandslose<br />

„OpenVAS Management Protocol“<br />

(OMP) ansprechen.<br />

Genau genommen ist die gesamte Intelligenz<br />

der Lösung im OpenVAS Manager<br />

implementiert. Der Manager kontrolliert<br />

auch die SQLite-Datenbank, welche die<br />

Konfiguration und sämtliche Scan-Ergebnisse<br />

zentral auf dem Server speichert.<br />

Der dritte auf dem OpenVAS-Server verfügbare<br />

Dienst „OpenVAS-Administrator“<br />

dient dem Verwalten beziehungsweise<br />

Administrieren der OpenVAS-Umgebung<br />

und lässt sich vom Client aus über das<br />

„OpenVAS Administration Protocol“<br />

(OAP) steuern.<br />

Vulnerability <strong>Test</strong>s<br />

Die Ziele seiner Scans legt der Admin<br />

in einer Session fest. Zum <strong>Test</strong>en kommen<br />

dabei vordefinierte Sicherheitstests,<br />

sogenannte Network Vulnerability <strong>Test</strong>s<br />

(NVTs) zum Einsatz. Eine praxisgerechte<br />

Basisausstattung mit NVTs stellt das Paket<br />

»openvas-plugins« zur Verfügung;<br />

Abbildung 2: Der Desktop-Client basiert auf Nokia Qt – hier die „alte“ Version aus den Ubuntu-Repos.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

53


Security<br />

OpenVAS<br />

Abbildung 3: Das Webinterface von Greenbone.<br />

tagesaktuelle NVTs besorgt sich der Admin<br />

dann durch ein Synchronisieren mit<br />

dem von den OpenVAS-Entwicklern angebotenen<br />

Feed-Service, der auf Rsync<br />

und Wget basiert. Neben dem freien<br />

NVT-Feed des OpenVAS-Projekts gibt es<br />

auch einen kommerziellen von Greenbone<br />

betriebenen NVT-Feed.<br />

Das Paket »libopenvasnasl« enthält sämtliche<br />

von OpenVAS genutzten Shared-<br />

Libaries und stellt damit funktional die<br />

wichtigste Komponente dar. Die Paketmatrix<br />

der OpenVAS-Downloadseite<br />

zeigt, dass fast alle aktuellen OpenVAS-<br />

Kompilationen auf der Library-Version 4<br />

basieren.<br />

Quickstart<br />

Abbildung 4: Vor dem ersten Start eines Clients muss der Administrator auf dem<br />

OpenVAS-Server einen Benutzer anlegen.<br />

OpenVAS findet sich auch in den Standard-Paketquellen<br />

vieler Distributionen.<br />

Für einen Schnellstart unter Ubuntu kann<br />

der Admin beispielsweise auf dem vorgesehenen<br />

Server die Pakete »openvas‐server«,<br />

»openvasnasl2«, »openvas‐plugins‐base«<br />

und »libopenvas2« installieren,<br />

kommt dann aber<br />

nur in den Genuss<br />

der alten Version<br />

2.<br />

Da die Qualität der<br />

Scan-Ergebnisse<br />

von der Aktualität<br />

der Scan-Engine<br />

und der NVTs abhängt,<br />

empfiehlt<br />

es sich, die auf der<br />

Download-Seite<br />

von OpenVAS angebotenen<br />

Paketquellen<br />

und Installationsprozeduren<br />

zu nutzen.<br />

Sämtliche bisher<br />

beschriebenen<br />

Komponenten und<br />

Module laufen auf<br />

dem OpenVAS-<br />

Server. Das Steuern, Konfigurieren und<br />

Verwalten des Server hingegen erfolgt<br />

von einem beliebigen Client über das<br />

OMP-Protokoll. Bei dessen Wahl hat der<br />

Admin wie beschrieben verschiedene<br />

Möglichkeiten, nämlich ein CLI-Interface<br />

und die Qt-basierte Desktop-Software, die<br />

es wahlweise in einer Linux- und einer<br />

Windows-Version gibt, beziehungsweise<br />

den ebenfalls auf Qt basierenden Vorgänger<br />

OpenVAS-Client (Abbildung 2).<br />

Alternativ steht noch das Webinterface<br />

„Greenbone Security Assistant“ zur Verfügung,<br />

das nicht nur der Steuerung des<br />

Managers via OMP dient, sondern als<br />

OAP-Client auch den OpenVAS-Administrator<br />

steuern kann (Abbildung 3).<br />

Achtung: Obwohl „gsa“ funktional ein<br />

weiterer OpenVAS-Client ist, muss der<br />

Admin das zugehörige Paket »greenbone‐security‐assistant«<br />

auf dem Server<br />

installieren.<br />

Der Greenbone Security Assistant ist ein<br />

kompakter, auf hohe Sicherheit ausgelegter<br />

Webservice, der dem Admin die<br />

volle Funktionalität des OpenVAS-Managers<br />

erschließt und mit jedem beliebigen<br />

Webserver läuft. GSA arbeitet zustandslos,<br />

also ebenfalls ohne Cookies,<br />

Javascript oder andere aktive Inhalte und<br />

nutzt zur Authentifizierung HTTP Basic<br />

Authentication. Allerdings läuft gsa nur<br />

mit Version 4 von OpenVAS, weil es auf<br />

der »libopenvas4« aufsetzt, welche in der<br />

aktuellen Version die beschriebene »libnasl2«<br />

ersetzt.<br />

Auf Wunsch mit SSL<br />

Die Kommunikation sämtlicher Module<br />

untereinander erfolgt auf Wunsch durchweg<br />

gesichert via SSL. Für einen ersten<br />

<strong>Test</strong> kann der Admin beispielsweise die in<br />

vielen Distributionen enthaltene Version<br />

2 von OpenVAS, inklusive der Version<br />

2.0.5 des Qt-Clients nutzen, indem er beispielsweise<br />

unter Ubuntu rasch das Paket<br />

»openvas‐client« auf dem vorgesehen<br />

Client-Rechner installiert. Vor der ersten<br />

Verbindungsaufnahme muss er allerdings<br />

auf dem OpenVAS-Server einen Benutzer<br />

mit den zum Scannen erforderlichen<br />

Rechten anlegen, etwa mit dem Befehl<br />

»openvas‐adduser« (Abbildung 4). Das<br />

CLI-Tool fragt den gewünschten Benutzernamen<br />

samt Passwort ab und außerdem,<br />

ob die Kommunikation ausschließ-<br />

54 Ausgabe 03-2012 Admin www.admin-magazin.de


OpenVAS<br />

Security<br />

E Abbildung 5: Die Verbindungsaufnahme kann<br />

beim ersten Mal etwas dauern, weil der Client etwa<br />

im Beispiel der Version 2.05 (Ubuntu) rund 12000<br />

Plugins importieren muss.<br />

lich über Passwort oder verschlüsselt via<br />

SSL ablaufen soll. In letzterem Fall generiert<br />

es die benötigten Zertifikate.<br />

Das Anlegen eines Benutzers beinhaltet<br />

auch das Festlegen von Scan-Regeln im<br />

interaktiven CLI-Modus. Mit<br />

accept 192.168.0.0/24<br />

erlaubt der Admin dem Benutzer »drilling«<br />

beispielsweise das Scannen aller<br />

Hosts im lokalen Class-C-Netz. Selbstverständlich<br />

lassen sich die Berechtigungen<br />

auch gezielt und granular einschränken.<br />

Das Anlegen der Regeln lässt sich mit<br />

[Ctrl]+[D] beenden, und der Admin<br />

landet wieder auf der Kommandozeile.<br />

Jetzt ist eine Verbindung vom Client<br />

zum Server möglich (Abbildung 5). Ein<br />

erster <strong>Test</strong>-Scan lässt sich einfach mit<br />

dem Scan Assistant konfigurieren, der<br />

die Adresse des Zielhosts erwartet. Zum<br />

Ausführen eines <strong>Test</strong>s klickt der Admin<br />

im letzten Schritt des Assistenten auf<br />

die Schaltfläche »Ausführen« oder auf<br />

rz lam-0018 Anzeige_210x148:la1 lam-0010 Anzeige_210x148 18.08.2010 15:26 Uhr Seite 1<br />

das zugehörige Symbol rechts oben in<br />

der Werkzeugleiste. Nach Fertigstellung<br />

des <strong>Test</strong>s zeigt der Client die Ergebnisse<br />

im Reiter »Report« an (Abbildung 6).<br />

Selbstverständlich muss der Admin dazu<br />

„Es gibt drei Möglichkeiten, eine Firma zu ruinieren:<br />

mit Frauen, das ist das Angenehmste;<br />

mit Spielen, das ist das Schnellste;<br />

mit Computern, das ist das Sicherste.“<br />

Oswald Dreyer-Eimbcke, deutscher Unternehmer<br />

Es gibt allerdings auch eine ganze Reihe von Möglichkeiten, mit IT zum Unternehmenserfolg beizutragen.<br />

Und genau damit beschäftigen wir uns seit dem Jahr 1989. In weit über 100.000 Stunden IT-Training,<br />

technischem Consulting und Software-Entwicklung haben wir eine ganze Menge Know-how entwickelt.<br />

Dieses umfassende Wissen kommt Ihnen heute zugute, wenn wir Sie in allen IT-Fragen unterstützen.<br />

Wie Sie von unserem Know-how profitieren, erfahren Sie unter www.lamarc.com.<br />

Rufen Sie uns an +49 611 26 00 23 oder schicken eine E-Mail an info@lamarc.com<br />

Seminare OnSite Coaching Netzwerk Consulting System Consulting Developer Support Software-Entwicklung<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

55


Security<br />

OpenVAS<br />

Bindet er das Repository auf dem Client<br />

eine, kann er auch dort die gewünschten<br />

Programme installieren.<br />

sudo apt‐get install gsd openvas‐cli<br />

Soll die Kommunikation zwischen den<br />

beteiligten Komponenten verschlüsselt<br />

ablaufen, sind anschließend die benötigten<br />

Zertifikate wie folgt zu generieren.<br />

Abbildung 6: Lohn der Mühe: der Report von OpenVAS.<br />

einen Account auf dem Zielsystem besitzen.<br />

Außerdem ist für das Scannen<br />

von Zielsystemen, die nicht Eigentum<br />

des Admins oder seines Auftraggebers<br />

sind, eine Genehmigung einzuholen. Zur<br />

Sicherheit sind gefährliche <strong>Test</strong>s per Default<br />

abgeschaltet.<br />

Aktuelle OpenVAS-Version<br />

Wer OpenVAS ernsthaft nutzen möchte,<br />

sollte eine möglichst aktuelle Version<br />

(derzeit 4 oder Beta 5) gemäß den Empfehlungen<br />

auf der Download-Seite installieren.<br />

Für Ubuntu und Open Suse gibt<br />

es dazu je ein eigenes „OBS-Repository“.<br />

Ubuntu/​Debian-Admins müssen vorher<br />

noch ein Paket installieren:<br />

sudo apt‐get ‐y install python‐U<br />

software‐properties<br />

Danach können Sie das Repository einbinden.<br />

Im Unterschied zu den bis Redaktionsschluss<br />

auf der OpenVAS-Downloadseite<br />

verfügbaren Informationen, binden<br />

Admins eines aktuellen Ubuntu-Systems<br />

(11.10) die Paketquelle so ein:<br />

sudo add‐apt‐repository "deb http://U<br />

download.opensuse.org/repositories/securityU<br />

:/OpenVAS:/STABLE:/v4/xUbuntu_11.10/ ./"<br />

Die Nutzung des Open-Suse-Security-<br />

Repository erfordert einen GnuPG-<br />

Schlüssel:<br />

sudo apt‐key adv ‐‐keyserver hkp://U<br />

keys.gnupg.net ‐‐recv‐keys BED1E87979EAFD54<br />

Nach dem Aktualisieren der Paketquellen<br />

mit »sudo apt‐get update« bei Debian und<br />

Ubuntu stehen im Paketmanager aktuelle<br />

Versionen der zugehörigen Pakete zur Verfügung.<br />

Der Admin kann die gewünschten<br />

Pakete nun mit »apt‐get« oder einem<br />

grafischen Paketmanager installieren:<br />

sudo apt‐get ‐y install openvas‐managerU<br />

openvas‐scanner openvas‐administrator U<br />

greenbone‐security‐assistant sqlite3<br />

xsltproc<br />

test ‐e /var/lib/openvas/CA/cacert.pemU<br />

|| sudo openvas‐mkcert ‐q<br />

Das Unix-Kommando »test« überprüft<br />

zuerst, ob ein Zertifikat schon existiert<br />

und führt andernfalls das entsprechende<br />

Skript aus. Bei der Gelegenheit kann der<br />

Admin mit folgenden Befehl auch die angebotenen<br />

NVTs auf den aktuellen Stand<br />

bringen<br />

sudo openvas‐nvt‐sync<br />

Vorausgesetzt der Admin hat den ersten<br />

User (im Beispiel »drilling«) wie oben beschrieben<br />

erzeugt, erzeugt er die Client-<br />

Zertifikate mit (Abbildung 7):<br />

test ‐e /var/lib/openvas/users/drillingU<br />

|| sudo openvas‐mkcert‐client ‐n drilling ‐i<br />

Wer beim Paketierungsschema von Open-<br />

VAS 4 genau hinsieht, stellt auch fest,<br />

dass es zur Inbetriebnahme nicht mehr<br />

wie bei der Version 2 genügt, den Service<br />

»openvas« zu starten. Stattdessen<br />

muss man der Reihe nach die Services<br />

OpenVAS-Scanner »openvassd«, Open-<br />

VAS-Manager »openvasmd« und Open-<br />

VAS-Administrator »openvasad« aktivieren.<br />

Dazu ist es nötig, einmalig Folgendes<br />

einzugeben:<br />

Abbildung 7: Das Generieren der Client-Zertifikate für die SSL verschlüsselte Verbindungsaufnahme.<br />

56 Ausgabe 03-2012 Admin www.admin-magazin.de


OpenVAS<br />

Security<br />

sudo openvassd<br />

sudo openvasmd ‐‐migrate<br />

sudo openvasmd ‐‐rebuild<br />

sudo killall openvassd<br />

sleep 15<br />

Die benötigten Dienste lassen sich dann<br />

künftig mit<br />

sudo service openvas‐scanner start<br />

sudo service openvas‐manager start<br />

sudo service openvas‐administrator restart<br />

starten. Möchte der Admin das Webinterface<br />

»gsa« nutzen, startet er den zu<br />

gehörigen Service »gsad«, vorausgesetzt<br />

das Paket »greenbone‐security‐assistant«<br />

ist auf dem Server installiert, mit:<br />

sudo /etc/init.d/greenbone‐security‐U<br />

assistant start<br />

Das Anlegen eines administrativen Users,<br />

zum Beispiel »admin«, übernimmt für<br />

Version 4<br />

test ‐e /var/lib/openvas/users/admin ||U<br />

sudo openvasad ‐c add_user ‐n admin ‐r Admin<br />

wobei hinter »‐r« das sogenannte Rules-<br />

File folgt, hier »Admin«. Alternativ steht<br />

auch das oben im Zusammenhang mit<br />

der Version 2 beschriebene Kommando<br />

»openvas‐adduser« zur Verfügung.<br />

Arbeiten mit OpenVAS<br />

Im täglichen Betrieb arbeitet der Admin<br />

ausschließlich wahlweise via CLI, der<br />

Desktop-Anwendung »gsd« (Abbildung<br />

8) oder dem Webinterface »gsa«, das unter<br />

»https://Server:9392« erreichbar ist.<br />

Im <strong>Test</strong> gelang die Anmeldung am Web-<br />

interface nicht auf Anhieb. Der Grund<br />

dafür war in der Konfiguration »/etc/<br />

default/greenbone‐security‐assistant« zu<br />

finden. Hier muss die Default-Einstellung<br />

»GSA_ADDRESS=127.0.0.1« auf die korrekte<br />

IP-Adresse des Servers geändert<br />

werden, weil das Login sonst nur an<br />

Localhost möglich ist. Wer im lokalen<br />

Netz auf die Verschlüsselung zwischen<br />

Webinterface und Manager verzichten<br />

will, muss zudem in derselben Datei die<br />

Option »HTTP_ONLY=1« einbauen, im<br />

Startskript »/etc/init.d/greenbone‐security‐assistant<br />

«die Zeile<br />

[ "$GSA_ADDRESS" ] && DAEMONOPTS=U<br />

"‐‐listen=$GSA_ADDRESS"<br />

durch<br />

Troubleshooting<br />

Für den Fall, dass eine Komponente des<br />

OpenVAS-Stacks nicht startet oder andere<br />

Probleme auftreten, stellt das OpenVAS-<br />

Team unter [9] ein Skript zur Verfügung,<br />

das die Installation prüft und Hinweise zur<br />

Problemlösung liefert. Der Admin kann das<br />

Skript einfach per Copy-and-Paste in den<br />

Editor seiner Wahl kopieren, unter dem Namen<br />

»openvas‐check‐setup« speichern, mit<br />

»chmod +x openvas‐check‐setup« ausführbar<br />

machen und anschließend starten. Der Aufruf<br />

»./ openvas‐check‐setup« checkt eine Open‐<br />

VAS-4-Installation, »./ openvas‐check‐setup<br />

‐v5« hilft bei OpenVAS-5. Das Skript prüft<br />

unter anderem, ob die erforderlichen Open‐<br />

VAS-Dienste laufen und Verbindungen auf den<br />

richtigen Ports entgegennehmen.<br />

[ "$GSA_ADDRESS" ] && DAEMONOPTS=U<br />

"‐‐http‐only"<br />

Abbildung 8: Der Greenbone Security Desktop ist eine Desktop-Anwendung zur Steuerung von OpenVAS.<br />

ersetzen und »gsa« anschließend mit<br />

»/ etc/init.d/greenbone‐security‐assistant<br />

restart« neu starten. Alternativ kann der<br />

Admin auch mit dem Greenbone Security<br />

Desktop arbeiten, allerdings als normaler<br />

User, nicht als Root. Hierzu genügt es, auf<br />

dem Client-Host »gsd« einzugeben und<br />

sich dann anzumelden.<br />

Zum Erstellen einer neuen Scan-Konfiguration<br />

kann der Admin entweder den<br />

beschriebenen Assistenten nutzen oder<br />

eine neue Scan-Konfiguration in der Liste<br />

anlegen. Eine detaillierte Anleitung zur<br />

Schwachstellenanalyse sprengt allerdings<br />

des Rahmen des Beitrages und erfordert<br />

weitreichende administrative Unix-Kenntnisse<br />

und fundiertes Netzwerkwissen.<br />

Fazit<br />

Nessus war viele Jahre eines der erfolgreichsten<br />

Open-Source-Projekte und hat<br />

in OpenVAS einen würdigen Nachfolger<br />

gefunden. Im Sektor professionelle<br />

Schwachstellenanalyse mit Open-Source-<br />

Werkzeugen gibt es keine Alternative zu<br />

OpenVAS. Besonders erwähnenswert ist<br />

hierbei das Engagement der Entwickler<br />

von der Firma Greenbone, die nicht nur<br />

die OpenVAS-Entwicklung vorantreiben,<br />

sondern der Community auch leistungsfähige<br />

Add-ons wie das das Webinterface<br />

»gsa« oder den neuen Qt-Client »gsd« zur<br />

Verfügung stellen. (ofr)<br />

n<br />

Infos<br />

[1] OpenVAS: [http:// www. openvas. org]<br />

[2] Nessus 5: [http:// www. tenable. com/​<br />

products/ nessus/ nessus‐product‐overview]<br />

[3] Greenbone Security Feed:<br />

[http:// greenbone. net/ solutions/ gbn_feed.​<br />

de. html]<br />

[4] Greenbone OpenVAS: [http:// greenbone.​<br />

net/ technology/ openvas. de. html]<br />

[5] Greenbone Security Assistant:<br />

[http:// greenbone. net/ technology/ tool_architecture.<br />

de. html]<br />

[6] Greenbone Security Explorer: [http://​<br />

greenbone. net/ technology/ gse. de. html]<br />

[7] OpenVAS Feed Service: [http:// www.​<br />

openvas. org/ openvas‐nvt‐feed. html]<br />

[8] OpenVAS-Download-Seite:[http:// www.​<br />

openvas. org/ install‐packages. html]<br />

[9] OpenVAS Check Setup:<br />

[https:// svn. wald. intevation. org/ svn/​<br />

openvas/ trunk/ tools/ openvas‐check‐setup]<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

57


Security<br />

Tomoyo Linux<br />

© jtanki, 123RF<br />

Mandatory Access Control mit Tomoyo Linux<br />

Japanischer<br />

Sheriff<br />

Fast jede halbwegs aktuelle Linux-Distribution enthält einen kleinen<br />

japanischen Sheriff. Er sperrt auf Wunsch jeden Prozess in ein eigenes Gefängnis,<br />

beobachtet alle seine Aktionen und hilft so nebenbei auch gleich<br />

noch beim Debugging. Im Gegensatz zu anderen Sicherheitslösungen ist<br />

seine Bedienung zudem relativ einfach. Tim Schürmann<br />

Anders als man meinen könnte, handelt<br />

es sich bei Tomoyo Linux nicht um<br />

eine komplette Linux-Distribution, sondern<br />

um ein Kernel-Modul für Linux.<br />

Es kann den laufenden Prozessen direkt<br />

auf die Finger schauen und bei Bedarf<br />

ihre Zugriffe und Aktionen einschränken<br />

(Mandatory Access Control, kurz MAC).<br />

Hinzu kommen noch ein paar Kommandozeilenwerkzeuge,<br />

mit denen der Administrator<br />

Tomoyo konfiguriert. Was<br />

ein Prozess darf und was nicht, legen<br />

Sicherheitsregeln fest, die man entweder<br />

von Hand anlegt oder Tomoyo Linux<br />

halbautomatisch in einem Lernmodus<br />

ermitteln lässt. In diesem beobachtet Tomoyo<br />

ein Programm eine Zeit lang und<br />

erlaubt dann die in diesem Zeitraum von<br />

ihm ausgeführten Aktionen – alle anderen<br />

bleiben verboten.<br />

Bereits 2003 entwickelte die japanische<br />

NTT Data Corporation (ein Ableger des<br />

japanischen Telefongiganten Nippon<br />

Telegraph and Telephone, NTT) einen<br />

Kernel-Patch, der recht einfach Prozesse<br />

sowohl maßregeln als auch ihr Verhalten<br />

unter die Lupe nehmen konnte. Wer<br />

diese erste Version von Tomoyo nutzen<br />

wollte, musste sich folglich seinen eigenen<br />

Kernel erstellen.<br />

Seit der Kernel-Version 2.6.0 sollen Sicherheitsmodule<br />

die dafür geschaffene,<br />

einheitliche LSM-Schnittstelle verwenden<br />

(Linux Security Modules [2]), die auch<br />

von anderen bekannten Sicherheitssysteme<br />

wie SELinux, AppAmor und SMACK<br />

verwendet werden. Da die Integration<br />

in den offiziellen Kernel lockte, passten<br />

die Tomoyo-Entwickler ihr Modul an die<br />

LSM-Schnittstelle an. Um jedoch restlos<br />

alle Funktionen von Tomoyo-Linux portieren<br />

zu können, hätte die LSM-Schnittstelle<br />

erweitert werden müssen. Die<br />

Entwickler entschlossen sich daher zu<br />

einer für Administratoren folgenreichen<br />

wie verwirrenden Maßnahme: Sie bieten<br />

zwei Versionen von Tomoyo an, die unterschiedlich<br />

viele Funktionen enthalten.<br />

Die erste Tomoyo-Version ist weiterhin<br />

erhältlich und bietet den gesamten Funktionsumfang.<br />

Zum Redak tionsschluss aktuell<br />

war die Version 1.8.3, die mit allen<br />

Kerneln ab Version 2.4 arbeitet.<br />

Fortschritt mit Verlust<br />

Die zweite Version von Tomoyo ist bereits<br />

Bestandteil aller Linux-Kernel ab Version<br />

2.6.30 und nutzt die LSM-Schnittstelle.<br />

Als Preis dafür bietet sie nicht alle Funktionen<br />

der Tomoyo-Version 1. Vor allem<br />

fehlen ihr einige MAC-Möglichkeiten:<br />

Beispielsweise kann sie nicht den dynamischen<br />

Linker (»ld«) kontrollieren.<br />

Doch es kommt noch schlimmer: Die<br />

unterschiedlichen Linux-Kernel enthalten<br />

verschiedene Tomoyo-Versionen, die teilweise<br />

unterschiedlich einzurichten und<br />

zu steuern sind. Tabelle 1 fasst zusammen,<br />

welche Tomoyo-Versionen in welchen<br />

Kerneln schlummern. Die größten<br />

Leistungsunterschiede im Vergleich zur<br />

Version 1.x weisen die Tomoyo-Versionen<br />

2.2.x und 2.3.x auf, in der aktuellen Version<br />

2.5 fehlen nur noch wenige Funktionen.<br />

Dummerweise ist die Version 2.5<br />

erst in Linux-Kernel 3.2 enthalten, der<br />

wiederum nur in wenigen Distributionen<br />

anzutreffen ist. Wer es ganz genau<br />

wissen will, findet eine ausführliche Gegenüberstellung<br />

der einzelnen Tomoyo-<br />

60 Ausgabe 03-2012 Admin www.admin-magazin.de


Tomoyo Linux<br />

Security<br />

Versionen und ihrer Funktionen unter<br />

[3]. Die Version 1.8.x bieten die Tomoyo-<br />

Entwickler für einige ausgewählte Distributionen<br />

als fertige Pakete an, darunter<br />

Fedora, Open Suse, Debian, Ubuntu (sogar<br />

ab Version 8.04) und RHEL beziehungsweise<br />

Cent OS. Die Pakete gibt es<br />

allerdings durchweg nur für eine 32-Bit-<br />

Standard-Installation, die Pakete für Fedora<br />

16 und RHEL 6.2 setzen hingegen<br />

ein 64-Bit-System voraus. Darüber hinaus<br />

ersetzen die Pakete den kompletten Kernel.<br />

Bei Sicherheitsaktualisierungen ist<br />

man folglich auf das Tomoyo-Projekt angewiesen<br />

– oder man erstellt doch wieder<br />

seinen eigenen Kernel. Wer erst einmal<br />

testen möchte, ob Tomoyo Linux 1.8.x<br />

diesen Aufwand wert ist, kann das mit<br />

einer vom Projekt bereitgestellten LiveCD<br />

tun. Unter [4] warten jeweils ein entsprechend<br />

präpariertes Ubuntu 10.04, CentOS<br />

5.8 und CentOS 6.2.<br />

Scharfmacher<br />

Bei einem Produktivsystem ist es normalerweise<br />

die bessere Lösung, das schon<br />

im Kernel eingebaute Tomoyo Linux zu<br />

verwenden. So ist diese Variante nicht<br />

nur wesentlich leichter in Betrieb zu<br />

nehmen, die Distributoren übernehmen<br />

In jedem Fall sollte man einen Blick in<br />

das Verzeichnis »/etc« werfen. Dort sollte<br />

es ein Unterverzeichnis »tomoyo« mit<br />

mehreren Konfigurationsdateien geben.<br />

Andernfalls erzeugt sie das Skript »/usr/<br />

lib/tomoyo/init_policy«, unter Tomoyo<br />

2.2 bemüht man »/usr/lib/tomoyo_init_<br />

policy«.<br />

Auf 64-Bit-Systemen versteckt sich das<br />

Skript auch manchmal in »/usr/lib64«. Es<br />

eignet sich übrigens auch hervorragend<br />

dazu, eine verkorkste Tomoyo-Konfiguration<br />

wieder in ihren Ausgangszustand<br />

zu versetzen. Dazu löscht man das Verauch<br />

die Wartung. Ob der eigene Kernel<br />

Tomoyo Linux mitbringt, ermittelt man<br />

schnell mit einem der Befehle aus Tabelle<br />

2. Wenn Tomoyo im Kernel vorhanden<br />

ist, gibt er eine mehr oder weniger kryptische<br />

Zeichenkette, ein »T« und dann<br />

einen Begriff mit »tomoyo« aus (wie in<br />

Abbildung 1). Andernfalls bleibt die Konsole<br />

stumm.<br />

Ein Sonderfall ist das aktuelle CentOS<br />

6.2. Es enthält noch den Kernel 2.6.32,<br />

für das eigentlich keine der Tomoyo-<br />

Versionen aus der 2.x-Reihe vorgesehen<br />

ist (siehe Tabelle 1). Hier bleibt nur die<br />

angesprochene LiveCD zu nutzen oder<br />

mithilfe des vom Tomoyo-Projekt bereitgestellten<br />

RPM-Pakets den Kernel auszutauschen.<br />

Tools und Grub<br />

Tabelle 1: Derzeit erhältliche Tomoyo-Versionen<br />

Ist Tomoyo Linux einsatzbereit, müssen<br />

als Nächstes die Kommandozeilenwerkzeuge<br />

her. Die meisten Distributionen<br />

führen sie im Paket »tomoyo‐tools«,<br />

das man nur noch über den Paket manager<br />

einspielen muss.<br />

In Ubuntu taucht es allerdings nicht<br />

im Software Center auf, hier hilft die<br />

Kommandozeile: »sudo apt‐get install<br />

tomoyo‐tools«.<br />

Tomoyo-Linux-Version Kernel-Version Enthalten unter anderem in<br />

1.8.x 2.4.37, 2.6.27 bis 2.6.39 und 3.0<br />

2.2.x. 2.6.30 bis 2.6.35 Debian 6 (Squeeze)<br />

2.3.x. 2.6.36 bis 3.0 Ubuntu 11.10<br />

2.4.x. 3.1. Open Suse 12.1<br />

2.5.x. 3.2. und später Ubuntu 12.04 (Beta 2)<br />

Tabelle 2: <strong>Test</strong> auf aktiviertes Tomoyo Linux<br />

Tomoyo-Version Befehl Antwort bei aktiviertem Tomoyo<br />

2.2. grep tomoyo_io_printf /proc/​kallsyms ffffffff812765f0 T tomoyo_io_printf<br />

2.3. grep tomoyo_supervisor /proc/​ ffffffff812765f0 T tomoyo_supervisor<br />

kallsyms<br />

2.4. grep tomoyo_poll_log /proc/​kallsyms ffffffff812765f0 T tomoyo_poll_log<br />

2.5. grep tomoyo_write_inet_network /<br />

proc/​kallsyms<br />

F Abbildung 1: Schon<br />

zwei kleine Befehle reichen<br />

aus, um zu prüfen,<br />

ob Tomoyo im Kernel<br />

vorhanden ist und ob<br />

es beim Systemstart<br />

aktiviert wurde.<br />

ffffffff812765f0 T tomoyo_write_inet_<br />

network<br />

Abschließend muss man das Tomoyo-<br />

Modul noch aktivieren. Dazu gibt man<br />

dem Kernel beim Start den Parameter<br />

»security=tomoyo« mit auf den Weg –<br />

entweder direkt am Bootprompt oder<br />

über die Konfiguration des Bootloaders.<br />

Kommt noch der alte Grub Legacy zum<br />

Einsatz, wie unter Open Suse 12.1, öffnet<br />

man die Datei »/boot/grub/menu.<br />

lst« (manchmal auch »grub.conf« genannt),<br />

sucht in ihr den Abschnitt für<br />

den Standard-Start (etwa »title Desktop<br />

‐‐ openSUSE 12.1 ...«) und hängt dort<br />

der Zeile »kernel ...« den Parameter<br />

»security=tomoyo« an. Bei Grub 2, wie<br />

ihn Debian 6 (Squeeze) und Ubuntu einsetzen,<br />

stellt man den Parameter in der<br />

Datei »/etc/default/grub« an das Ende<br />

der Zeile »GRUB_CMDLINE_LINUX_<br />

DEFAULT«, also beispielsweise unter<br />

Debian:<br />

GRUB_CMDLINE_LINUX_DEFAULT="quiet U<br />

security=tomoyo"<br />

Anschließend bringt der folgende Befehl<br />

die Konfiguration auf den aktuellen<br />

Stand:<br />

sudo update‐grub<br />

Trockenübungen<br />

Die ersten Gehversuche mit Tomoyo Linux<br />

sollte man in einem <strong>Test</strong>system wagen, das<br />

man am besten in einer virtuellen Maschine<br />

aufsetzt. Damit konfiguriert man nicht versehentlich<br />

einen produktiven Server kaputt und<br />

spürt schneller Fehler auf. In unseren <strong>Test</strong>s<br />

blieb beispielsweise der Kernel in der zweiten<br />

Beta-Version von Ubuntu 12.04 nach der Aktivierung<br />

von Tomoyo einfach stehen, das System<br />

ließ sich gar nicht erst booten. In derart<br />

hartnäckigen Fällen hängt man dem Kernel am<br />

Bootprompt den Parameter »security=none«<br />

an. Damit startet das System ohne Tomoyo.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

61


Security<br />

Tomoyo Linux<br />

Kernel<br />

<br />

startet<br />

init<br />

/sbin/init<br />

startet<br />

sshd<br />

/sbin/init /usr/sbin/sshd<br />

bash<br />

init … /bin/bash<br />

sshd<br />

init … /bin/bash /usr/sbin/sshd<br />

G Abbildung 2: Für jeden gestarteten sshd-Prozess erstellt Tomoyo eine eigene<br />

Domain (die Domainnamen der Prozesse sind hier kursiv gesetzt).<br />

E Abbildung 3: Die von Tomoyo automatisch erzeugten Domains.<br />

zeichnis »/etc/tomoyo« und wirft dann<br />

noch einmal besagtes Skript an.<br />

Nach einem Neustart sollte der Kernel<br />

den Einsatz von Tomoyo melden. Prüfen<br />

lässt sich dies über den Aufruf »dmesg |<br />

grep TOMOYO« (Groß- und Kleinschreibung<br />

beachten). Wenn Tomoyo läuft,<br />

gibt der Befehl die Versionsnummer aus<br />

(Abbildung 1).<br />

Jeden Prozess sperrt Tomoyo Linux in<br />

einen eigenen Käfig, die sogenannte Domain.<br />

Jede dieser Domains bekommt<br />

einen eindeutigen Namen. Er besteht<br />

aus dem kompletten Pfadnamen des<br />

Programms, das den Prozess erzeugt hat<br />

– beim SSH-Daemon also beispielsweise<br />

»/usr/sbin/sshd«. Zusätzlich stellt Tomoyo<br />

dieser Bezeichnung die kompletten<br />

Pfade aller vorhergehenden Programme<br />

und Skripte voran, die zu seinem Aufruf<br />

geführt haben. Das geht sogar zurück<br />

bis zum Kernel, der den speziellen<br />

Domainnamen »« bekommt.<br />

Die Domain des »sshd«-Daemons heißt<br />

somit vollständig » /sbin/init<br />

/usr/sbin/sshd«. Die so entstehenden<br />

Bandwurmnamen erscheinen zunächst<br />

umständlich. Auf diese Weise kann man<br />

jedoch genau kontrollieren, in welcher<br />

Situation der SSH-Daemon welche Aktionen<br />

ausführen darf. So kann man etwa<br />

dem von »init« aufgerufenen »sshd« mehr<br />

zutrauen, als einem nachträglich über<br />

die Konsole gestarteten Bruder (Abbildung<br />

2).<br />

Domains editieren<br />

Alle bislang schon erstellten Domains begutachtet<br />

man als Benutzer Root mit dem<br />

Policy-Editor:<br />

sudo tomoyo‐editpolicy<br />

Er begrüßt seinen Benutzer mit dem Domain<br />

Transition Editor. In Abbildung 3<br />

war Tomoyo seit dem Systemstart fleißig<br />

und hat 640 Domains erstellt (wie in<br />

der obersten Zeile zu lesen). Die graue<br />

dritte Zeile zeigt an, dass gerade die<br />

»«-Domain ausgewählt ist.<br />

Darunter folgt dann eine Liste mit allen<br />

Domains. Der Übersicht halber klatscht<br />

der Policy-Editor nicht einfach alle kompletten<br />

Domainnamen auf den Schirm,<br />

sondern rückt die einzelnen Prozesse entsprechend<br />

ein. Durch die Liste navigiert<br />

man mit den Pfeiltasten, [Pos1], [Ende]<br />

sowie Bild auf und ab. Der komplette<br />

Domainname eines Prozesses erscheint<br />

dann immer in der hellgrau unterlegten<br />

Zeile am oberen Rand. Wer jetzt weitere<br />

Programme startet und dann mit [r] die<br />

Ansicht aktualisiert, kann sogar dabei<br />

zusehen, wie Tomoyo für sie weitere Domains<br />

anlegt. Einen Eintrag findet man<br />

schnell, indem man [f] drückt und den<br />

Suchbegriff eintippt. Zur jeweils nächsten<br />

Fundstelle springt [n]. [q] beendet<br />

den Policy-Editor – und zwar ohne Rückfrage.<br />

Die einzelnen Domains muss Tomoyo<br />

Linux unterschiedlich behandeln. Wäh-<br />

Horch, was kommt von draußen rein<br />

Ab Tomoyo 2.4 gehört der Daemon »tomoyo‐auditd« zum Lieferumfang.<br />

Er protokolliert auf Wunsch alle akzeptierten und/​oder zurückgewiesenen<br />

Aktionen eines Programms. Auf diese Weise kann man einem Prozess in<br />

Ruhe auf die Finger schauen und die Protokolle gleichzeitig als Grundlage<br />

für weitere Einschränkungen heranziehen. Programmierer können<br />

damit gleichzeitig das Verhalten ihrer Eigenentwicklungen unter die Lupe<br />

nehmen.<br />

Welche Aktionen der Daemon protokolliert, legen die beiden Parameter<br />

»grant_log« und »reject_log« in der »CONFIG«-Zeile eines jeden Profils<br />

fest. Steht dort »grant_log=yes«, reicht Tomoyo alle vom Profil akzeptierten<br />

Aktionen an den Daemon weiter, bei »reject_log=yes« gilt das auch für<br />

die blockierten Aktionen.<br />

»tomoyo‐auditd« muss man entweder als Benutzer root per Hand starten<br />

oder das Programm »/usr/sbin/tomoyo‐audit« der »/etc/rc.local« (beziehungsweise<br />

»/etc/rc.d/boot.local« in Open Suse) hinzufügen. Ein fertiges<br />

Startskript fehlt leider, eine Konfigurationsdatei für Distributionen mit<br />

»systemd« findet man immerhin in der Tomoyo-Dokumentation [5].<br />

Die zu protokollierenden Aktionen stellt Tomoyo Linux über »/sys/kernel/<br />

security/tomoyo/audit« bereit. Wohin der Daemon diese Informationen<br />

schreiben soll, bestimmt seine Konfigurationsdatei »/etc/tomoyo/tools/<br />

auditd.conf«. Sie ist gut dokumentiert und selbst erklärend. Standardmäßig<br />

verwirft der Daemon alle von Tomoyo akzeptierten Aktionen (genauer<br />

gesagt wandern sie nach »/dev/null«), während die übrigen Informationen<br />

in einzelnen Log-Dateien unter »/var/log/tomoyo/« landen.<br />

62 Ausgabe 03-2012 Admin www.admin-magazin.de


Tomoyo Linux<br />

Security<br />

sshd möchte auf<br />

/dev/random zugreifen<br />

Tabelle 3: Die Arbeitsmodi von Tomoyo Linux<br />

Wert hinter »mode=«<br />

disabled<br />

learning<br />

Auswirkung<br />

Erlaubt alle Aktionen.<br />

Aktiviert den Lernmodus (lässt also alle Aktionen zu und<br />

fügt sie gleich als erlaubt dem Regelwerk hinzu).<br />

Erlaubt alle Aktionen, auch wenn sie die Regeln verletzen.<br />

Blockt eine Aktion, wenn sie eine Regel verletzt.<br />

Ist diese Aktion erlaubt?<br />

änderbar im<br />

Domain Policy Editor<br />

Welches Verhalten schreibt<br />

das Profil dafür vor?<br />

änderbar im<br />

Profile Editor<br />

permissive<br />

enforcing<br />

Abbildung 4: Das einer Domain zugewiesene Profil entscheidet,<br />

was mit erlaubten und verbotenen Aktionen passieren soll.<br />

Hinter »COMMENT=« steht ein Name<br />

oder eine Beschreibung des Profils. In<br />

diesem Fall heißt es schlicht »disabled«.<br />

Tomoyo-Linux kann alle Aktionen einer<br />

Domain gestatten, die verbotenen Aktionen<br />

abblocken oder sich in einem Lernmodus<br />

alle gerade von der Domain durchgeführten<br />

Aktionen als erlaubt notieren.<br />

Was Tomoyo davon machen soll, steht<br />

hinter »CONFIG=« in den geschweiften<br />

Klammern. Ein »mode=disabled« winkt<br />

beispielsweise später alle Aktionen der<br />

Domain einfach durch. Tabelle 3 listet<br />

alle weiteren Arbeitsmodi auf. Hinter<br />

»mode=« folgen noch ein paar weitere<br />

Parameter, die das Log-Verhalten von Torend<br />

es einen Webserver genau im Auge<br />

behalten und im Fall der Fälle maßregeln<br />

muss, kann es hingegen »init« meist<br />

blind vertrauen und alle seine Aktionen<br />

durchwinken. Man müsste folglich für<br />

jede einzelne Domain festlegen, wie sich<br />

Tomoyo ihr gegenüber verhalten soll. Da<br />

das ziemlich aufwendig wäre, geht Tomoyo<br />

einen anderen Weg: Zunächst erstellt<br />

der Administrator ein sogenanntes<br />

Profil. In ihm notiert er, wie sich Tomoyo<br />

verhalten soll. So könnte etwa im Profil<br />

stehen, dass Tomoyo Linux grundsätzlich<br />

alle Aktionen zuzulassen, sie aber<br />

vorsichtshalber protokollieren soll. Nach<br />

dem gleichen Prinzip darf der Administrator<br />

bis zu 256 weitere Profile erstellen.<br />

Abschließend notiert er zu jeder Domain,<br />

welches Profil auf sie zutrifft. Möchte die<br />

Domain später eine Aktion ausführen,<br />

zieht Tomoyo das ihr zugeordnete Profil<br />

zurate und verhält sich dann genau<br />

wie dort angegeben (Abbildung 4 veranschaulicht<br />

das noch einmal).<br />

Profile editieren<br />

Tomoyo Linux bringt von Haus aus bereits<br />

ein paar fertige Profile mit. Der Profile-<br />

Editor zeigt sie an, wenn man zunächst<br />

per [w] in sein Auswahlmenü und dann<br />

Eine Ausnahme bildet Tomoyo Linux 2.2,<br />

wie es etwa noch Debian 6 einsetzt. Dort<br />

ist jedes Profil mit gleich vier Einträgen<br />

vertreten (Abbildung 6). Wie bei den<br />

Nachfolgerversionen gibt es auch hier<br />

zunächst eine »COMMENT«-Zeile. Hinter<br />

»MAC_FOR_FILE=« steht der Arbeitsmodus,<br />

erlaubt sind dabei wieder die Werte<br />

aus Tabelle 3. »MAX_ACCEPT_ENTRY=«<br />

legt die Anzahl der Aktionen fest, die sich<br />

Tomoyo im Lernmodus höchstens merkt.<br />

Steht schließlich noch »TOMOYO_VERweiter<br />

mit [p] in den »Profile<br />

Editor« wechselt (Abbildung<br />

5). Jedes Profil bekommt eine Nummer<br />

von 0 bis 255 zugewiesen. Der Profile<br />

Editor zeigt in der ersten Spalte die Zeilennummern<br />

an, die Profil-Nummer steht<br />

immer links vom Bindestrich. In Abbildung<br />

5 gibt es vier Profile von 0 bis 3.<br />

Ab der Tomoyo-Version 2.3 existieren für<br />

jedes Profil bis zu drei Einträge. Das Profil<br />

mit der Nummer 0 ist typischerweise<br />

mit folgenden drei Zeilen vertreten:<br />

0‐COMMENT=disabled<br />

0‐CONFIG={ mode=disabled grant_log=yes U<br />

reject_log=yes }<br />

0‐PREFERENCE={ max_audit_log=1024 max_U<br />

learning_entry=2048 }<br />

moyo steuern (mehr dazu im Kasten<br />

„Horch, was kommt von draußen<br />

rein“).<br />

Abschließend darf man noch ein paar<br />

Feineinstellungen in den geschweiften<br />

Klammern hinter »PREFERENCES« vornehmen.<br />

Unter Tomoyo Linux 2.4 und<br />

2.5 nennt »max_audit_log=« die maximale<br />

Anzahl der Audit-Logs, die sich der<br />

Kernel merkt, während »max_learning_<br />

entry=« die Anzahl der Aktionen vorgibt,<br />

die Tomoyo im Lernmodus höchstens an<br />

das Profil anhängt. Unter Tomoyo Linux<br />

2.3 hat »max_entry« die gleiche Bedeutung<br />

wie »max_learning_entry«. Verletzt<br />

ein Prozess eine Regel, legt ihn Tomoyo<br />

2.3 die hinter »enforcing_penalty« angegebene<br />

Zeit schlafen.<br />

Komplizierter mit Debian<br />

G Abbildung 5: Standardmäßig bringt Tomoyo Linux vier Profile mit.<br />

E Abbildung 6: Unter Tomoyo 2.2 besteht ein Profil noch aus vier Einträgen.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

63


Security<br />

Tomoyo Linux<br />

Abbildung 7: Für alle Prozesse des SSH-Daemon gibt es jetzt nur noch eine<br />

einzige Domain – nämlich die hier hervorgehobene mit dem Sternchen.<br />

BOSE=« auf »enabled« protokolliert Tomoyo<br />

alle Regelverstöße im Syslog.<br />

In der Praxis reichen die vier vorgegebenen<br />

Profile normalerweise aus. Wer<br />

dennoch eigene erstellen möchte oder<br />

muss, drückt [a] und gibt die Nummer<br />

des neuen Profils ein. Der Profile Editor<br />

erstellt jetzt ein neues Profil mit Standardwerten.<br />

Doch Vorsicht: Ein so angelegtes<br />

Profil bleibt bis zum Neustart<br />

erhalten (vorausgesetzt man hat die Konfiguration<br />

nicht gespeichert, dazu später<br />

noch mehr). Um eine Zeile zu verändern,<br />

steuert man sie an, drückt [s] und gibt<br />

dann den neuen Parameter ein beziehungsweise<br />

editiert die angezeigte Zeile.<br />

Jeder Domain kann man jetzt eines der<br />

vorhandenen Profile zuweisen. Dazu<br />

geht es via [w] und [d] zurück zum Domain<br />

Transition Editor. Das einer Domain<br />

zugewiesene Profil steht in der zweiten<br />

Spalte. Die Nullen weisen dort im Moment<br />

darauf hin, dass Tomoyo Linux<br />

auf jede Domain das Profil 0 anwendet<br />

und somit alle ihre jeweiligen Aktionen<br />

durchgehen lässt. Man könnte jetzt eine<br />

der Domains ansteuern und ihr via [s] ein<br />

anderes Profil zuweisen, etwa das für den<br />

Lernmodus. Dabei gibt es allerdings noch<br />

ein kleines Problem.<br />

Am Domain-Namensschema kann man<br />

sehen, wie ein Prozess gestartet wurde.<br />

Dabei entstehen jedoch häufig mehrere<br />

Domains, die man dann einzeln maßregeln<br />

müsste. Paradebeispiel ist der Apache-Webserver<br />

»httpd«, für den normalerweise<br />

immer mehrere Prozesse existieren.<br />

Zudem weiß<br />

man oft nicht im<br />

Voraus, wer einen<br />

Prozess wie startet.<br />

Möchte man ein<br />

Programm immer<br />

gleich behandeln,<br />

egal unter welchen<br />

Bedingungen es<br />

gestartet wurde,<br />

wechselt man<br />

zunächst via [w]<br />

und [e] in den Policy<br />

Exception Editor.<br />

Er verwaltet<br />

alle Aktionen, die<br />

sämtliche Domains<br />

ausführen dürfen. Hier erstellt man jetzt<br />

mit [a] eine neue Regel der Form:<br />

initialize_domain /usr/sbin/sshd from any<br />

»/usr/sbin/sshd« steht dabei für den<br />

vollen Pfadnamen zum entsprechenden<br />

Programm, in diesem Beispiel dem SSH-<br />

Daemon. Tomoyo erstellt ab sofort nur<br />

noch eine einzige Domain, in der sich<br />

grundsätzlich alle »sshd«-Prozesse befinden.<br />

Solchen Domains stellt der Domain<br />

Transition Editor ein Sternchen »*« voran<br />

(Abbildung 7). Sollte Tomoyo zuvor<br />

schon Domains für laufende »sshd«-Prozesse<br />

erstellt haben, werden diese nun<br />

überflüssig. Solche Domains kennzeichnet<br />

der Domain Transition Editor mit einem<br />

Ausrufezeichen »!«. Man kann sie<br />

getrost mit [d] löschen.<br />

Im Beispiel würde Tomoyo also alle<br />

»sshd«-Prozesse gleichbehandeln. Mit zusätzlichen<br />

»no_initialize_domain«- Regeln<br />

kann man davon gezielt Ausnahmen erstellen:<br />

initialize_domain /usr/sbin/sshd from any<br />

no_initialize_domain /usr/sbin/sshd from U<br />

/bin/bash<br />

Hier würde Tomoyo einem »sshd«-Prozess<br />

dann wieder eine eigene Domain<br />

spendieren, wenn ihn die Bash gestartet<br />

hätte – und wirklich nur dann.<br />

Apropos Bash: Startet ein Programm aus<br />

einer Shell heraus, so soll es meistens<br />

den gleichen Einschränkungen unterliegen<br />

wie die Shell. Für solche Fälle gibt<br />

es die Regel »keep_domain«:<br />

keep_domain any from /bin/bash<br />

Damit erstellt Tomoyo für alle in der<br />

Shell gestarteten Programme, wie »ls«<br />

oder »cat«, keine eigene Domain. Stattdessen<br />

gelten für sie alle Einschränkungen,<br />

die auch auf die Shell zutreffen.<br />

Für einzelne Programme hebt man diese<br />

Einschränkung mit »no_keep_domain«<br />

wieder auf:<br />

no_keep_domain /bin/cat from /bin/bash<br />

Gemeinschaftszelle<br />

Abbildung 8: In der Ansicht aller Prozesse stellt Tomoyo den Domainnamen hinter die Prozesse. In der zweiten<br />

Spalte stehen die Profilnummern.<br />

64 Ausgabe 03-2012 Admin www.admin-magazin.de


Tomoyo Linux<br />

Security<br />

nachschlagen und<br />

dann mühevoll eine<br />

Regel nach der anderen<br />

via [a] anlegen.<br />

Bequemer ist jedoch,<br />

die Domain in den<br />

Lernmodus zu versetzen<br />

und dann alle erlaubten<br />

Aktionen von<br />

Tomoyo aufzeichnen<br />

zu lassen. Dazu fährt<br />

man im Domain Transition<br />

Abbildung 9: Wie der Lernmodus enthüllt, greift der SSH-Daemon bei seinem<br />

Start unter anderem auch auf »/dev/urandom« zu.<br />

Editor (Tasten-<br />

kombination [w], [d])<br />

die entsprechende Domain<br />

Damit erstellt Tomoyo Linux für das Programm<br />

»cat« ausnahmeweise doch wieder<br />

eine eigene Domain.<br />

an, wie etwa »/usr/sbin/sshd«, und<br />

drückt dort [s], gefolgt von der Nummer<br />

des Lernmodus-Profils. Standardmäßig<br />

ist dies die »1«.<br />

Zuckerbrot und Peitsche<br />

Mit [@] wechselt man in eine Übersicht<br />

mit allen laufenden Prozessen (Abbildung<br />

Als Nächstes gilt es festzulegen, welche<br />

Aktionen einer Domain überhaupt erlaubt<br />

und welche verboten sind. Dazu<br />

8). Unter Tomoyo 2.2 muss man<br />

stattdessen per [q] den Profile Editor<br />

verlassen und dann das Kommando<br />

markiert man im Domain Transition Editor<br />

»tomoyo‐pstree« bemain<br />

(erreichbar via [w] und [d]) eine Domühen.<br />

In jedem Fall Anzeige<br />

und drückt die Eingabetaste. Der sollte dem Prozess<br />

jetzt erscheinende Domain Policy Editor<br />

zeigt alle Aktionen an, die diese Domain<br />

der Anwendung eine<br />

»1« voranstehen. Sehr<br />

ausführen darf. Direkt nach dem Start wahrscheinlich sieht<br />

sollte die Liste noch leer sein, später sieht<br />

sie wie in Abbildung 9 aus. In der ersten<br />

Spalte steht wieder die Zeilennummer,<br />

in der zweiten folgt die Aktion. »allow_<br />

read« etwa erlaubt den Lesezugriff auf<br />

die rechts danebenstehende Datei. Ab<br />

Tomoyo 2.4 tragen die Aktionen leicht<br />

geänderte Namen, »allow_read« ist dort<br />

etwa als »file read« bekannt. In den Dateiund<br />

Verzeichnisnamen sind zudem zwei<br />

man zunächst nur das<br />

Ende der Liste, die<br />

Pfeiltaste nach oben<br />

fördert alle übrigen Einträge<br />

zutage. Mit [@]<br />

gelangt man wieder<br />

zur alten Darstellung<br />

zurück, unter Tomoyo<br />

2.2 startet man erneut<br />

den Profile-Editor.<br />

Platzhalter erlaubt: »\$« steht für ein beliebiges<br />

Zeichen, »\*« für beliebig viele.<br />

Mit folgender Regel dürfte etwa »sshd«<br />

Erlaubt<br />

beliebige Dateien im »/tmp«-Verzeichnis<br />

anlegen:<br />

allow_write /tmp/\*<br />

beziehungsweise ab Tomoyo 2.4:<br />

file write /tmp/\*<br />

Hat man sich vertippt, löscht [d] die gerade<br />

markierte Regel. Eine Aufstellung<br />

aller möglichen Regeln beziehungsweise<br />

Schlüsselwörter liefert ein Anhang der<br />

Tomoyo-Dokumentation [6], [7]. Um<br />

eine Domain und somit ein Programm<br />

zu maßregeln, könnte man jetzt dort<br />

Jetzt sollte man den<br />

Dienst in einem weiteren<br />

Terminal einmal<br />

neu starten, dann im<br />

Domain Transition Editor<br />

seine Domain ansteuern<br />

und per Eingabetaste<br />

in den Domain<br />

Policy Editor wechseln.<br />

Hier erscheinen jetzt<br />

alle Aktionen, die der<br />

Prozess bei seinem<br />

Start ausgeführt hat<br />

(wie in Abbildung 9).<br />

Das sind gleichzeitig alle Aktionen, die<br />

Tomoyo Linux später dem Daemon erlauben<br />

wird. Um die Liste zu komplettieren,<br />

sollte man jetzt ein paar typische<br />

Aufgaben durchführen – im Fall des SSH-<br />

Daemon sich beispielsweise einloggen.<br />

Via [r] aktualisiert man die Ansicht des<br />

Domain Policy Editors. Die Lernphase<br />

ist übrigens eine Funktion von Tomoyo,<br />

man kann den Policy Editor folglich auch<br />

vorübergehend beenden.<br />

Abschließend kann man natürlich noch<br />

eigene Aktionen hinzufügen oder vorhandene<br />

streichen. Sind alle Aktionen<br />

beisammen, springt man wieder per [w]<br />

und [d] zurück zum Domain Transition<br />

Editor und weist dort der Domain das<br />

Standard-Profil 3 und somit den Enforcing-Modus<br />

zu (mit [s] und [3]). Tomoyo<br />

erlaubt dann nur noch alle vorhin gemerkten<br />

Aktionen. Nach außen hin sieht<br />

das übrigens niemand, die geblockten<br />

Programme liefern nichts zurück. Hat<br />

man beispielsweise das Anmelden am<br />

I<br />

P<br />

N<br />

U<br />

Das Linux-Systemhaus<br />

Wir suchen zur Unterstützung und Erweiterung unseres Teams einen<br />

Senior Linux Consultant (m/w) zum nächstmöglichen Termin.<br />

Ihre Aufgaben:<br />

• Konzeption, Installation und Administration<br />

diverser Linux- und Windows-Server bei unseren Kunden,<br />

• Unterstützung und Betreuung unserer Kunden im Support,<br />

• Evaluierung und Einführung neuer Software für verschiedenste<br />

Aufgabengebiete<br />

Ihr Profil:<br />

• mindestens 5 Jahre Erfahrung im Betrieb von Linux-Servern,<br />

• sehr gute Kenntnisse im Umgang mit Samba, Apache, Squid,<br />

MySQL, Postfix,<br />

• fundierte Kenntnisse in Netzwerktechnik,<br />

• gute Kenntnisse in Shell-Skripting, Perl und PHP,<br />

• gute schriftliche Englischkentnisse,<br />

• gute Windows-Kenntnisse (XP, Win7, Windows Server 2k8),<br />

• eine strukturierte und sorgfältige Arbeitsweise,<br />

• soziale Kompetenz, Kommunikations-, Konflikt- und Teamfähigkeit<br />

Wir bieten:<br />

• eine anspruchsvolle Tätigkeit in einem kleinen Team und<br />

abwechslungsreiche Aufgaben bei Kunden aus<br />

verschiedenen Branchen,<br />

• spannende, komplexe und strategisch wichtige Projekte für<br />

unsere Kunden,<br />

• kein Arbeiten nach Schema 08/15,<br />

• ein gesundes Betriebsklima in einem engagierten<br />

und motivierten Team<br />

Ihre Bewerbung in PDF-Form senden Sie bitte an<br />

personal@in-put.de oder auf postalischem Weg.<br />

in-put GbR Moltkestraße 49 76133 Karlsruhe www.in-put.de<br />

-<br />

T<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

65


Security<br />

Tomoyo Linux<br />

Abbildung 10: Die Statistik verrät, dass es bislang vier verbotene Aktionen gegeben hat. Welche das genau<br />

waren, verraten die Log-Dateien.<br />

SSH-Daemon gesperrt, erhält ein Nutzer,<br />

der das trotzdem probiert, nur die<br />

lapidare Meldung »Connection closed by<br />

remote host«.<br />

Elefantengedächtnis<br />

Ein Neustart des Systems löscht das Gedächtnis<br />

von Tomoyo, alle mühsam angelegten<br />

Regeln sind dann futsch. Um das<br />

zu verhindern, sollte man die aktuelle<br />

Konfiguration speichern. Dazu beendet<br />

man den Policy Editor via [q] und zückt<br />

den Befehl:<br />

sudo /usr/sbin/tomoyo‐savepolicy<br />

Die aktuelle Konfiguration landet damit<br />

in den Dateien »exception_policy.<br />

YYYY‐MM‐DD.hh:mm:ss.conf« und »domain_policy.YYYY‐MM‐DD.hh:mm:ss.<br />

conf« im Verzeichnis »/etc/tomoyo«. Tomoyo-Versionen<br />

ab 2.4 erstellen zunächst<br />

in »/etc/tomoyo« ein Unterverzeichnis<br />

mit dem aktuellen Datum und legen dort<br />

gleich vier Dateien ab.<br />

Egal, welche Tomoyo-Version man nutzt,<br />

die Konfiguration lässt sich mit den Befehlen<br />

in Listing 1 wieder laden.<br />

Bei einem erneuten Systemstart passiert<br />

das automatisch, man muss die Befehle<br />

folglich nicht extra in die Startskripte einbauen.<br />

Die Dateien »domain_policy.conf«,<br />

»exception_policy.conf« und so weiter<br />

sind übrigens symbolische Links auf die<br />

jeweils zuletzt von »tomoyo‐savepolicy«<br />

erstellten ».conf«-Dateien. Die sind zu-<br />

Listing 1: Konfiguration laden<br />

01 sudo /usr/sbin/tomoyo‐loadpolicy ‐df < /etc/tomoyo/<br />

domain_policy.conf<br />

02 sudo /usr/sbin/tomoyo‐loadpolicy ‐ef < /etc/tomoyo/<br />

exception_policy.conf<br />

03 sudo /usr/sbin/tomoyo‐loadpolicy ‐p < /etc/tomoyo/<br />

profile.conf<br />

04 sudo /usr/sbin/tomoyo‐loadpolicy ‐m < /etc/tomoyo/<br />

manager.conf<br />

dem einfache Textdateien, die man auch<br />

bequem per Hand editieren kann. Das ist<br />

gerade bei großen Regelwerken komfortabler<br />

als der Weg über den Policy Editor.<br />

Wer mit dem schon gearbeitet hat, sollte<br />

sich in den Konfigurationsdateien sofort<br />

zurechtfinden.<br />

Die von Tomoyo geblockten Aktionen<br />

kann man sich mit dem »tomoyo‐auditd«-<br />

Daemon einsammeln lassen (siehe<br />

Kasten „Horch, was kommt von draußen<br />

rein“). Eine schnelle Statistik liefert<br />

ab Tomoyo 2.4 der Befehl:<br />

cat /sys/kernel/security/tomoyo/stat<br />

Interessant ist hier vor allem die Zahl<br />

neben »Policy violation in enforcing<br />

mode:«. Sie gibt an, wie oft Tomoyo im<br />

Enforcing-Modus Aktionen blockiert hat<br />

(Abbildung 10). Die Tomoyo-Versionen<br />

2.2 und 2.3 schreiben hingegen jede<br />

Verletzung als Textmeldung ins Syslog –<br />

vorausgesetzt im entsprechenden Profil<br />

steht »TOMOYO_VERBOSE=enabled«<br />

beziehungsweise unter Tomoyo<br />

2.3 »PREFERENCE::permissive={<br />

verbose=yes }«.<br />

Fazit<br />

Tomoyo Linux macht es mit seinem<br />

Lernmodus sehr einfach, per Mandatory<br />

Access Control (MAC) einen Prozess in<br />

seine Schranken zu verweisen. Die dabei<br />

von Tomoyo protokollierten Aktionen<br />

helfen zudem Softwareentwicklern,<br />

Fehlverhalten in ihren Programmen aufzuspüren.<br />

Aber auch eigene Regeln sind<br />

mit wenigen Tastendrücken hinzugefügt<br />

– vorausgesetzt man hat sich mit der<br />

etwas gewöhnungsbedürftigen Tomoyo-<br />

Terminologie und den Konzepten angefreundet.<br />

Der einzige Haken sind die vielen Tomoyo-Versionen<br />

mit ihren unterschiedlichen<br />

Fähigkeiten und Konfigurationen.<br />

Gerade wer mehrere Linux-Rechner mit<br />

unterschiedlichen Distributionen betreut,<br />

dürfte bei der Einrichtung von Tomoyo<br />

mehr als einmal fluchen.<br />

Hilfe gibt es zudem nur auf einer Mailingliste<br />

[8] sowie in der etwas merkwürdig<br />

strukturierten Dokumentation [9]. Zu<br />

allem Überfluss arbeiten die Tomoyo-<br />

Entwickler auch noch an einem weiteren<br />

System namens Akari, das auf Tomoyo-<br />

Linux basiert und als (nach-)ladbares<br />

Kernel-Modul konzipiert ist [10]. Die<br />

Arbeit geht an allen Tomoyo-Versionen<br />

sowie Akari gleichberechtigt weiter, eine<br />

Empfehlung der Entwickler für ein System<br />

gibt derzeit es nicht. So muss man<br />

als Administrator selbst entscheiden, ob<br />

und wenn ja welches man davon einsetzt.<br />

(ofr)<br />

n<br />

Infos<br />

[1] Tomoyo Linux:<br />

[http:// tomoyo. sourceforge. jp]<br />

[2] Wikipedia-Eintrag zur LSM-Schnittstelle:<br />

[http:// en. wikipedia. org/ wiki/ Linux_Security_Modules]<br />

[3] Vergleich der unterschiedlichen Tomoyo-<br />

Versionen: [http:// tomoyo. sourceforge. jp/​<br />

comparison. html. en]<br />

[4] LiveCDs mit aktiviertem Tomoyo Linux:<br />

[http:// tomoyo. sourceforge. jp/ download.​<br />

html. en]<br />

[5] Systemd-Konfigurationsdatei für tomoyoauditd:<br />

[http:// tomoyo. sourceforge. jp/ 2. 5/​<br />

chapter‐4. html. en]<br />

[6] Policy Specification von Tomoyo Linux<br />

2.5: [http:// tomoyo. sourceforge. jp/ 2. 5/​<br />

policy‐specification/ index. html. en]<br />

[7] Policy Specification von Tomoyo Linux<br />

2.3: [http:// tomoyo. sourceforge. jp/ 2. 3/​<br />

policy‐specification/ index. html. en]<br />

[8] Tomoyo-Linux-Mailingliste: [http://​<br />

lists. sourceforge. jp/ mailman/ listinfo/​<br />

tomoyo‐users‐en]<br />

[9] Offizielle Dokumentation zu Tomoyo<br />

Linux: [http:// tomoyo. sourceforge. jp/​<br />

documentation. html. en]<br />

[10] Akari: [http:// akari. sourceforge. jp]<br />

Der Autor<br />

Tim Schürmann ist selbstständiger Diplom-<br />

Informatiker und derzeit hauptsächlich als freier<br />

Autor unterwegs. Zu seinen Büchern gesellen<br />

sich zahlreiche Artikel, die in Zeitschriften und<br />

auf Internetseiten in mehreren Ländern veröffentlicht<br />

wurden.<br />

66 Ausgabe 03-2012 Admin www.admin-magazin.de


Security<br />

Prelude<br />

© Chittima Kasa, 123RF<br />

Intrusion Detection mit Prelude<br />

Feuermelder<br />

Nachdem Edenwall Technologies, Hersteller des Security-Informationmanagement-Systems<br />

Prelude im letzten Jahr Konkurs anmeldete, war<br />

nicht klar, wie es weitergeht. Nun scheint die Zukunft gesichert. Wir<br />

stellen Architektur und Konzept der SIEM-Lösung vor. Thomas Drilling<br />

Das früher schlicht als IDS-System bezeichnete<br />

Prelude [1] gibt es außer in<br />

der kommerziellen Version Prelude Pro<br />

auch in einer Open-Source-Variante, die<br />

aktuell in den Paketquellen nahezu aller<br />

wichtigen Distributionen enthalten ist.<br />

Die Download-Seite [2] sollte optional<br />

die Sourcen zur Verfügung stellen, befand<br />

sich aber zum Zeitpunkt des <strong>Test</strong>s<br />

in Überarbeitung.<br />

Die CS-Group, neuer Besitzer von Prelude<br />

ist ein Anbieter von IT-Dienstleistungen<br />

in Frankreich und Deutschland. Prelude<br />

firmiert heute selbstbewusst als SIEM-Lösung<br />

(Security-Information-Management-<br />

System). Als solches sammelt sie sämtliche<br />

sicherheitsrelevanten Ereignisdaten<br />

im Netzwerk ein. Neben der Analyse<br />

sowie der grafischen Aufbereitung leitet<br />

ein SIEM gegebenenfalls auch Abwehrmaßnahmen<br />

ein. Genau genommen sind<br />

moderne SIEM-Systeme eine Kombination<br />

aus Security-Information- und Event-<br />

Management-Systemen. Prelude vereint<br />

den Großteil der zugehörigen Funktionen<br />

unter einer gemeinsamen Oberfläche.<br />

Der Wald vor lauter Bäumen<br />

SIEM-Systeme sind zwar ein wichtiger<br />

Bestandteil einer modernen Sicherheits-<br />

Infrastruktur, stellen den Admin aber vor<br />

das Problem, dass es oft schwierig ist,<br />

zwischen False-Positive-Meldungen und<br />

tatsächlichen Einbruchsversuchen zu unterscheiden.<br />

Das Problem trifft allerdings<br />

bei allen Sicherheitslösungen bis zum<br />

einfachen Virenscanner zu. False Positives<br />

treten zum Beispiel auf, wenn die<br />

Sicherheitslösung unzureichend getestet<br />

wurde, sodass angebliche Viren-Signaturen<br />

auf harmlose Programme zutreffen.<br />

Nicht immer ist die Sicherheitslösung<br />

schuld. Eine nicht sauber programmierte<br />

Anwendung, die sich nicht an RFCs hält,<br />

kann ein Fehlansprechen der SIEM-Signaturen<br />

verursachen.<br />

Ein weiteres Problem mit komplexen<br />

SIEM-Lösungen besteht darin, die Vielzahl<br />

analysierter Logs so aufzubereiten,<br />

dass der Admin überhaupt eine Chance<br />

hat, diese systematisch nach Anzeichen<br />

für Problemfälle zu durchsuchen.<br />

Prelude-Architektur<br />

Prelude versucht, die skizzierten Probleme<br />

durch seine modulare Architektur<br />

in den Griff zu bekommen, in deren<br />

Zentrum der Prelude Manager samt zugrunde<br />

liegendem Framework (»libprelude«,<br />

»libpreludedb«) steht. Er sammelt<br />

Ereignisdaten von den angeschlossenen<br />

Sensoren beziehungsweise Agenten ein<br />

und speichert sie in einer MySQL-Datenbank,<br />

von wo aus sie das Webinterface<br />

Prewikka auslesen und aufbereiten<br />

kann. Die einzelnen Sensoren sowie der<br />

Prelude Correlator sind das eigentliche<br />

Herzstück der Lösung und ermöglichen<br />

es, Log-Meldungen aus unterschiedlichsten<br />

Quellen miteinander in Beziehung<br />

zu setzen (zu korrelieren). Dabei spielt<br />

das von der IETF beschriebene Intrusion<br />

Detection Message Exchange Format<br />

(IDMEF) eine zentrale Rolle, das Prelude<br />

in die Lage versetzt, die Meldungen unterschiedlicher<br />

Sensoren in ein einheitliches<br />

Format zu bringen und in einer<br />

MySQL-Datenbank abzulegen. Prelude<br />

selbst liefert etwa den Sensor Prelude<br />

LML, einen Logfile-Monitor mit vordefiniertem<br />

Regelsatz mit.<br />

Prelude unterstützt aber noch eine große<br />

Zahl weiterer Sensoren, deren Outputs es<br />

normiert und ins einheitliche IDMEF-Format<br />

bringt. Neben Snort und Linux-PAM<br />

stehen als Sensoren außerdem der Linux<br />

Audit Daemon »auditd«, das Versatile<br />

Tool »nepenthes«, der File Itegrity Checker<br />

»samhain« oder NuFW, eine Identity<br />

Access-Management-Lösung (Firewall)<br />

aus der Edenwall-Konkursmasse, zur Verfügung.<br />

Alle sind in den Paketquellen von<br />

Ubuntu 11.x und Debian 6.x enthalten.<br />

Außerdem steht das Host-basierte IDS<br />

OSSEC von Trend Micro [4] zur Wahl.<br />

68 Ausgabe 03-2012 Admin www.admin-magazin.de


Prelude<br />

Security<br />

Sensor 1, z.B.<br />

Prelude-LML<br />

Sensor 2, z.B.<br />

SNORT<br />

Sensor 3, z.B.<br />

auditd<br />

Abbildung 1: Die Architektur des Prelude-Systems.<br />

Läuft der Prelude Manager auf einem<br />

Remote Server, sorgt der in Python realisierte<br />

regelbasierte Prelude Correlator<br />

dafür, Alerts von einem Remote Prelude-<br />

Manager-Server abzuholen und mit den<br />

auf dem lokalen System eingehenden<br />

Meldungen in Beziehung zu setzen. Das<br />

Webinterface Prewikka holt die normierten<br />

Meldungen aus der MySQL-Datenbank<br />

und bereitet sie visuell auf. Abbildung<br />

1 verdeutlicht die architektonischen<br />

Zusammenhänge.<br />

Prelude installieren<br />

Trotz relativ komplexer Architektur ist<br />

das Installieren der einzelnen<br />

Komponenten bei den meisten<br />

aktuellen Distributionen kein<br />

großes Problem, weil nahezu<br />

alle benötigten Module in den<br />

gängigen Paketquellen enthalten<br />

sind. Außerdem sind Installation<br />

und Konfiguration im<br />

Admin-Manual [3] gut dokumentiert.<br />

Die jeweilige Konfiguration<br />

erfordert allerdings<br />

etwas Aufwand. Anmerkung:<br />

In den folgenden Beispielen<br />

nutzen wir für Datenbanknamen<br />

(Prelude, Prewikka) und<br />

Benutzernamen (Datenbank-<br />

Admin, Prelude-Manager,<br />

Prewikka-User) der Einfachheit<br />

halber die Defaults oder<br />

Beispiele des Herstellers. Der<br />

Admin sollte die Werte aber<br />

unbedingt ändern. Außerdem<br />

PRELUDE Manager<br />

MySQL<br />

Prewikka<br />

Web-Interface<br />

Keys, Libpreludedb enthält alle für das<br />

Datenbank-Setup notwendigen Daten<br />

und Tabellen. Achtung: Wer das Paket<br />

»prelude‐manager« mit Synaptic installiert,<br />

sollte sich je nach Rechner nicht<br />

über ein vermeintliches Einfrieren des<br />

GUI wundern. Nur wer Installationsdetails<br />

einblendet merkt, dass das Generieren<br />

der RSA-Schlüssel schlicht etwas dauert,<br />

was den einen oder anderen Admin<br />

vielleicht beunruhigt, weil die visuelle<br />

Rückmeldung fehlt.<br />

Die Konfigurationseinstelllungen für den<br />

Prelude-Manager finden sich nach erfolgreicher<br />

Installation unter »/etc/prelude‐manager/prelude‐manager.conf«.<br />

Die Paketverwaltung weist gegebenenfalls<br />

darauf hin, dass der Prelude-Manager<br />

zwingend eine Datenbank benötigt und<br />

bietet deren automatische Konfiguration<br />

für Prelude an. Der Prelude-Manager unterstützt<br />

wahlweise MySQL, Postgres oder<br />

SQLite. Bei Distributionen, die auf Debian<br />

basieren, fragt auf Wunsch »debconf« die<br />

benötigten Konfigura tionsparameter für<br />

die Datenbank ab, was voraussetzt, dass<br />

eine Datenbank (etwa MySQL) schon<br />

installiert ist.<br />

Die Datei »/etc/prelude‐manager/<br />

prelude‐manager.conf« sollte im Abschnitt<br />

»[db]« anschließend in etwa so aussehen<br />

wie in Listing 1.<br />

Bei manueller Konfiguration der Datenbank<br />

muss der Admin in seiner »prelude‐manager.conf«<br />

mindestens die<br />

Datenbank-Einstellungen in<br />

der Sektion »[db]« vervollständigen<br />

oder anpassen. Im<br />

Beispiel verwenden wir den<br />

Datenbank-Typ »mysql«, mit<br />

den für MySQL typischen<br />

Defaults (Host: localhost,<br />

Port: 3306). Als Datenbank-<br />

Name dient »preludedb«,<br />

der Prelude Admin-Account<br />

soll »user=prelude« mit<br />

»pass=prelude« lauten. Außerdem<br />

sollte der Admin<br />

einen Blick auf die Default-<br />

Option »listen = 127.0.0.1«<br />

werfen, die selbstverständlich<br />

nur in Setups Sinn macht, in<br />

denen Prelude-Manager und<br />

Webinterface auf der gleichen<br />

Maschine laufen. Bei verteilten<br />

Setups ist die Option »listen«<br />

anzupassen. Das manubenötigen<br />

alle im Folgenden verwendeten<br />

Kommandos Rootrechte.<br />

Als zentrale Schnittstelle zwischen den<br />

einzelnen Sensoren und dem Webinterface<br />

muss sich der Admin zunächst<br />

dem Prelude Manager widmen. Dessen<br />

Installation unter Debian oder Ubuntu<br />

mit »apt‐get install prelude‐manager«<br />

zieht zur Vervollständigung der Framework-Komponenten<br />

auch die Installation<br />

von »libprelude« und »libpreludedb«<br />

nach sich. Wahlweise gelingt das Installieren<br />

mit einem grafischen Werkzeug.<br />

Die Bibliothek »libprelude« erzeugt unter<br />

anderem die zur Kommunikation mit<br />

dem Prelude-Manager benötigten RSA-<br />

Abbildung 2: Das Erzeugen der RSA-Keys nimmt je nach Hardware etwas Zeit in<br />

Anspruch. Unter »Details« lässt sich der Verlauf verfolgen.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

69


Security<br />

Prelude<br />

elle Einrichten der Datenbank (etwa bei<br />

RPM-basierten Distributionen) erfordert<br />

minimale SQL-Kenntnisse. Mit »mysql ‐u<br />

root« meldet sich der Admin als Administrator<br />

beim MySQL DBMS an. Ist MySQL<br />

so konfiguriert, dass der Root-Zugriff<br />

ohne Passwort nicht erlaubt ist, muss<br />

man stattdessen »mysql ‐u root ‐p« gefolgt<br />

vom MySQL-Passwort verwenden.<br />

Im interaktiven MySQL-Modus erzeugt<br />

der Admin mit<br />

mysql> CREATE database prelude<br />

die Datenbank für Prelude und versorgt<br />

sie durch<br />

mysql> GRANT ALL PRIVILEGES ON prelude.* U<br />

TO prelude@'localhost' IDENTIFIED BY U<br />

'password';<br />

mit den erforderlichen Rechten. Das<br />

Kommando »exit« beendet den interaktiven<br />

Datenbank-Modus. Wahlweise lässt<br />

sich das Datenbank-Setup selbstverständlich<br />

auch mit grafischen Werkzeugen wie<br />

Chive oder PHPMyAdmin erledigen.<br />

Zurück auf der Linux-Konsole liest der<br />

Admin mit folgendem Befehl das weitere<br />

Datenbank-Setup aus der mitgelieferten<br />

SQL-Datei ein, also die anzulegenden<br />

Tabellen:<br />

mysql ‐u prelude prelude ‐p < /usrU<br />

/share/libpreludedb/classic/mysql.sql<br />

Das Einrichten eines administrativen Prelude-Nutzers<br />

erfolgt dann mit dem Tool<br />

»prelude‐admin«:<br />

prelude‐admin add prelude‐manager U<br />

‐uid 0 ‐gid 0<br />

Anschließend muss der Admin den Dienst<br />

»prelude‐manager« starten, je nach Distribution<br />

zum Beispiel mit<br />

service prelude‐manager start<br />

Unter Ubuntu und Debian setzt das<br />

voraus, dass in der Datei »/etc/default/<br />

prelude‐manager« der Eintrag »Run=no«<br />

zuvor auf »Yes« gesetzt ist.<br />

Webinterface aufsetzen<br />

Das in Python geschriebene Webinterface<br />

für Prelude hört auf den Namen Prewikka<br />

und lässt sich ebenfalls problemlos über<br />

das Paketmanagement installieren. Das<br />

Web-Frontend braucht ebenfalls Datenbank-Zugriff.<br />

Neben MySQL, das im<br />

Beispiel bereits installiert ist, unterstützt<br />

Prewikka wie der Prelude-Manager auch<br />

PostgreSQL und SQLite3. Das Aufsetzen<br />

der Datenbank funktioniert ähnlich, wie<br />

beim Prelude-Manager. Debian- oder<br />

Ubuntu-Nutzer können diesen Schritt<br />

»debconf« überlassen (Abbildung 4).<br />

Die manuelle Konfiguration erfordert wieder<br />

ein Minimum an SQL-Syntax: »mysql<br />

‐u root ‐p« gefolgt vom MySQL-Passwort<br />

wechselt in den Datenbank-Modus. Das<br />

Anlegen der Datenbank, nebst passender<br />

Berechtigungen erfolgt mit<br />

mysql> CREATE database prewikka;<br />

mysql> GRANT ALL PRIVILEGES ON U<br />

prewikka.* TO prewikka@'localhost' U<br />

IDENTIFIED BY 'password';<br />

mysql> exit;<br />

Das weitere Setup erfolgt wieder durch<br />

Einlesen einer mitgelieferten SQL-Datei,<br />

wodurch die benötigten Tabellen zur Verfügung<br />

gestellt werden.<br />

$ mysql ‐u prewikka prewikka ‐p U<br />

< /usr/share/prewikka/database/mysql.sql<br />

Auch hier schließt die Eingabe des Datenbank-Passwortes<br />

die Konfiguration ab<br />

und legt die benötigten Tabellen an. Die<br />

Konfiguration des Prewikka-Webinterfaces<br />

erfolgt in der Konfigurationsdatei<br />

»/etc/prewikka/prewikka.conf«, die nach<br />

automatischer Konfiguration durch debconf<br />

im Bereich des Datenbank-Setups<br />

etwa so aussehen sollte wie in Listing<br />

2 zu sehen.<br />

Webserver einrichten<br />

Zwar ist das Webinterface jetzt installiert<br />

und konfiguriert, es fehlt aber noch<br />

der passende Webserver. Prelude bringt<br />

dazu einen eigenen, kleinen Webserver<br />

mit, den der Admin auf Wunsch mit »/<br />

usr/bin/prewikka‐httpd« starten kann.<br />

Der Prewikka-Webserver nimmt Anfragen<br />

per Default auf Port 8000 entgegen.<br />

Läuft dagegen auf dem Host bereits ein<br />

Apache, wird der Admin diesen in der Regel<br />

bevorzugen. Passende Virtual-Host-<br />

Konfigurationsdateien für ein CGI-Setup<br />

(Listing 3) finden sich freundlicherweise<br />

im Prelude-Wiki unter [4].<br />

Der Admin muss also nur seine Apache-<br />

Konfigurationsdatei um den entsprechenden<br />

Code erweitern. Bei Ubuntu<br />

verweist »/etc/apache2/apache2.conf«<br />

per include-Directive auf das Unterverzeichnis<br />

»/etc/apache2/sites‐enabled«<br />

G Abbildung 4: Dank debconf kümmert sich die Paketverwaltung automatisch um<br />

das Einrichten der Datenbank.<br />

F Abbildung 3: Debconf kümmert sich bei Debian-basierten Systemen<br />

automatisch um die Konfiguration des Prelude Managers, etwa im Bereich des<br />

Datenbank-Setups.<br />

70 Ausgabe 03-2012 Admin www.admin-magazin.de


Prelude<br />

Security<br />

und von dort via Symlink auf »/etc/<br />

apache2/sites‐available«, wo dann für<br />

jeden virtuellen Host eine eigene Konfigurationsdatei<br />

bereitliegt. Bei Ubuntu ist<br />

bekanntlich sogar der Default-Webserver<br />

als virtueller Host (»/etc/apache2/<br />

sites‐enabled/000‐default«) realisiert.<br />

Außerdem ist bei Ubuntu per Default die<br />

Directive »ServerName« nicht gesetzt.<br />

Bei einem Mod-Python-Setup sollte der<br />

Admin außerdem daran denken, das Paket<br />

»libapache2‐mod‐python« zu installieren.<br />

Nach einem Neustart oder Reload des<br />

Apachen mit »sudo /etc/init.d/ apache2<br />

reload« oder »sudo service apache2 restart«,<br />

sollte das Prewikka Webinterface<br />

unter »http://localhost/prewikka« zur<br />

Verfügung stehen.<br />

Sensoren<br />

Laufen Prelude-Manager und Webinterface,<br />

wird es Zeit, den ersten Sensor<br />

zu installieren. Der mitgelieferte Log-<br />

Agent Prelude-LML kann zum Beispiel<br />

verschiedenste Log-Dateien auswerten.<br />

Prelude-LML lässt sich dazu so konfigurieren,<br />

dass er die Rolle eines zentralen<br />

Syslog-Servers übernimmt. Der Admin<br />

muss seine Log-Erzeuger dann im<br />

Einzelfall nur für die Zusammenarbeit<br />

mit einem Syslog-Dienst wie Prelude-<br />

LML konfigurieren. Prelude-LML wertet<br />

dann sämtliche Log-Meldungen auf<br />

Basis seiner Regelwerke aus und sendet<br />

die gewonnenen Informationen an den<br />

Prelude-Manager. Prelude-LML erfasst<br />

Logs typischer Unix-Dienste, etwa des<br />

Paketfilters (IPTables) oder von Routern<br />

und Switches. Im <strong>Test</strong> installieren wir<br />

Prelude-LML auf der gleichen Maschine,<br />

auf der auch der Prelude-Manager läuft.<br />

Der spätere Praxis-Einsatz würde sämtliche<br />

Agenten sinnvollerweise auf den zu<br />

überwachenden Hosts respektive in den<br />

zu überwachenden Netzwerksegmenten<br />

betreiben. Prelude-LML findet sich in den<br />

Paketquellen aller gängigen Distributionen;<br />

das Installieren kann also auch hier<br />

wahlweise via Frontend oder per<br />

»apt‐get install prelude‐lml«<br />

erfolgen. Nach der Installation muss der<br />

Admin den Sensor beim Prelude-Manager<br />

registrieren, wozu wiederum das Kommando<br />

»prelude‐admin« zum Einsatz<br />

kommt, diesmal mit der Option »register«.<br />

Beim Registrieren legt der Prelude-<br />

Manager für jeden Sensor einen eindeutigen<br />

Identifier sowie ein Verzeichnis an.<br />

Außerdem generiert die »register«-Option<br />

gegebenenfalls erforderliche RSA-Keys,<br />

sollten Sensor und Manager auf unterschiedlichen<br />

Hosts laufen oder ein Remote<br />

Prelude Manager zum Einsatz kommen.<br />

Der »register«-Prozess speichert die<br />

benötigten Informationen im zugehörigen<br />

Sensor-Profil, dessen Name der Admin<br />

frei wählen kann. Die allgemeine Syntax<br />

für das »register«-Kommando lautet:<br />

prelude‐admin register Profilname U<br />

Berechtigung Manager-Adresse U<br />

‐‐uid UID ‐‐gid GID<br />

Der »profil name« ist der Name des zu<br />

installierenden Sensors, im Beispiel »prelude‐lml«.<br />

Der Parameter »requested permission«<br />

richtet sich nach dem jeweiligen<br />

Sensor. Für gewöhnlich erfordert ein Sensor<br />

mindestens Schreib-Berechtigungen<br />

(»w«) für IDMEF-Nachrichten. Optional<br />

besteht die Möglichkeit, dass der Sensor<br />

administrative Kommandos akzeptiert.<br />

Dafür genügt ein Leserecht, im Beispiel:<br />

prelude‐admin register prelude‐lml U<br />

"idmef:w admin:r" localhost ‐uid 0 U<br />

‐gid 0<br />

Das Kommando weist unter anderem darauf<br />

hin, dass der Admin an localhost<br />

einen Registration Server starten muss,<br />

wozu er am besten ein zweites Terminal-<br />

Fenster nutzt, während das erste Fenster<br />

auf die Eingabe eines One-Shot-Passwortes<br />

wartet. Zum Starten des Registration<br />

Servers kommt ebenfalls das Kommando<br />

»prelude‐admin« zum Einsatz:<br />

prelude‐admin registration‐server U<br />

prelude‐manager<br />

Das Kommando generiert einen Zufallswert,<br />

der im ersten Fenster als Einmalpasswort<br />

einzugeben ist. Der Sensor<br />

»prelude‐lml« ist damit beim Prelude-<br />

Manager registriert und lässt sich mit<br />

service prelude‐lml start<br />

starten. Im Webinterface sollte sich dann<br />

feststellen lassen, dass der Sensor beim<br />

Prelude-Manager bekannt ist. Die eigentliche<br />

Konfiguration des Sensors erfolgt in<br />

der zugehörigen Konfigurationsdatei »/<br />

etc/prelude‐lml/prelude‐lml.conf«. Hier<br />

kann der Admin beispielsweise gezielt<br />

festlegen, welche welche der Log-Dateien<br />

der Prelude-Dienst LML als zentraler Syslog-Server<br />

überwachen soll.<br />

Weitere Sensoren<br />

Wie schon erwähnt, unterstützt Prelude<br />

noch eine ganze Reihe weiterer Sensoren.<br />

Einer der interessantesten, um Prelude<br />

als Netzwerkwerk basiertes IDS einsetzen<br />

zu können, ist sicherlich Snort. Snort<br />

identifiziert als Netzwerk-Sniffer verdächtige<br />

Pakete anhand von Signaturen,<br />

welche sich etwa von der Snort-Webseite<br />

herunterladen lassen, allerdings erst 30<br />

Tage nach ihrem erstem Erscheinen. Für<br />

aktuelle Signaturen ist ein kostenpflichtiges<br />

Abo fällig. Das Installieren, sowie<br />

die grundlegende Funktionsweise von<br />

Snort dürfte wenige Admins vor Probleme<br />

stellen.<br />

Die Vorgehensweise beim Registrieren<br />

des Sensors ist ähnlich wie bei Prelude-<br />

LML. Snort lässt sich ebenfalls mit einer<br />

MySQL-Datenbank als Backend betrei-<br />

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

01 type: mysql<br />

02 host: localhost<br />

03 user: prelude<br />

04 pass: prelude<br />

05 name: prelude<br />

06 <br />

Listing 1: »prelude‐manager.conf«<br />

01 # The type of database: mysql, pgsql or sqlite3.<br />

02 type = mysql<br />

03 <br />

04 # Only if you use sqlite3.<br />

05 # file = /your/path/to/your/db/idmef‐db.sql<br />

06 <br />

07 # Host the database is listening on.<br />

08 host = localhost<br />

09 <br />

10 # Port the database is listening on.<br />

11 port = 3306<br />

12 <br />

13 # Name of the database.<br />

14 name = preludeg 1<br />

15 <br />

16 # Username to be used to connect the database.<br />

17 user = prelude<br />

18 <br />

19 # Password used to connect the database.<br />

20 pass = <br />

07 [database]<br />

08 type: mysql<br />

09 host: localhost<br />

10 user: prewikka<br />

11 pass: <br />

12 name: prewikka<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

71


Security<br />

Prelude<br />

Abbildung 5 : Prelude ist kein Newcomer, und Kenner nutzen das System schon seit Jahren. Im Laufe der Zeit<br />

wurden eine Reihe von Management-Oberflächen für Prelude entwickelt. Offizieller Vorgänger des Python-<br />

Interfaces Prewikka war das Perl-Interface PIWI.<br />

ben. Freundlicherweise enthält das Snort-<br />

Paket eine passende Schema-Datei in<br />

»/usr/share/doc/snortxxx/create mysql«,<br />

mit der die zugehörige Datenbank im Nu<br />

erstellt und die benötigten Tabellen angelegt<br />

sind. Die für den praktischen Einsatz<br />

maßgeblichen Variablen setzt der Admin<br />

in der zugehörigen Snort-Konfigurationsdatei<br />

»/etc/snort/snort.conf«, etwa<br />

das Netzwerk-Interface, welches Snort<br />

zur Überwachung des Netzwerkverkehrs<br />

nutzt, sowie den Pfad zum Ordner mit<br />

den Signaturen.<br />

Listing 3: Virtual-Host-Setup<br />

01 <br />

02 ServerName my.server.org<br />

03 Setenv PREWIKKA_CONFIG "/etc/prewikka/prewikka.conf"<br />

04 <br />

05 <br />

06 AllowOverride None<br />

07 Options ExecCGI<br />

08 <br />

09 <br />

10 AddHandler cgi‐script .cgi<br />

11 <br />

12 <br />

13 Order allow,deny<br />

14 Allow from all<br />

15 <br />

16 <br />

17 Alias /prewikka/ /usr/share/prewikka/htdocs/<br />

18 ScriptAlias / /usr/share/prewikka/cgi‐bin/prewikka.cgi<br />

19 <br />

In den Paketquellen der meisten Distributionen<br />

finden sich noch weitere Sensoren<br />

für Prelude. Nützlich ist unter anderem<br />

der Notify-Sensor, zu installieren über das<br />

Paket »prelude‐notify«. Prelude-Notify ist<br />

ein Gnome-Applet, das im Prelude-Manager<br />

eintreffende Nachrichten in einem<br />

Popup-Fenster anzeigt. Der Admin kann<br />

dann das Webfrontend aufrufen und in<br />

Ruhe nach der Ursache für die Meldung<br />

forschen. Zuvor muss er jedoch noch<br />

»prelude‐notify« via »prelude‐admin«<br />

als Sensor registrieren. Erst nach einer<br />

erfolgreichen Registrierung kann er das<br />

Applet aus dem Gnome-Menü tatsächlich<br />

starten.<br />

Fazit<br />

Wer bisher nur ein HIDS, wie etwa Tripwire<br />

oder ein NDIS wie Snort alleine genutzt<br />

hat, sollte unbedingt einen Blick<br />

auf ein kostenloses Hybrid-System wie<br />

Prelude werfen. Prelude ist ein über viele<br />

Jahre bewährtes, extrem leistungsfähiges<br />

und flexibles SIEM-System.<br />

Der Einsatz als IDS deckt nur eine seiner<br />

zahlreichen Anwendungsmöglichkeiten<br />

ab. Dank der Vielzahl verfügbarer Sensoren<br />

und Agents verschwimmen die<br />

Grenzen zwischen Log-Analyzer und<br />

Netzwerk-basiertem (NIDS), beziehungsweise<br />

Host-basiertem (HIDS) Intrusion<br />

Detection- oder Event-Management-System.<br />

Mit der Übernahme des im letzten<br />

Jahr in Konkurs gegangenen Vorbesitzers<br />

Edenwall duch die CS Group scheint die<br />

Zukunft eines extrem leistungsfähigen<br />

Systems jetzt gesichert.<br />

Doch wo viel Licht, ist auch Schatten. Die<br />

von uns im Beispiel installierte Community-Version<br />

versetzt den Admin zwar in<br />

die Lage, ein ausgewachsenes Enterprise-<br />

System kostenlos zu nutzen, teilt aber<br />

auch das Schicksal anderer Community-<br />

Ableger von Enterprise-Lösungen insofern,<br />

als der Weg zu einem praktisch<br />

einsetzbaren System lang ist.<br />

Zwar lassen sich Installation und Basis-<br />

Konfiguration des Frameworks mit etwas<br />

Aufwand unter Zuhilfenahme der Informationen<br />

im gut gepflegten Wiki mit<br />

vertretbaren Aufwand bewältigen, das<br />

Installieren und Anpassen der für den eigenen<br />

Einsatzzweck passenden Sensoren,<br />

deren Konfiguration und das Auswerten<br />

der ermittelten Informationen erfordert<br />

aber viel Geduld. Das Python-Interface<br />

Prewikka ist zwar eine unverzichtbare<br />

Hilfe, optisch und funktional ist es aber<br />

sichtlich in die Jahre gekommen.<br />

Wer Prewikka partout nicht mag,<br />

kann bei den meisten Distribu tionen<br />

problemlos die Vorgänger-Lösung PIWI<br />

(Abbildung 5) installieren, die ebenfalls<br />

in allen gängigen Paket quellen enthalten<br />

ist. PIWI ist nun aber keineswegs ein<br />

Fortschritt, sonst wäre es ja nicht durch<br />

Prewikka abgelöst worden.<br />

Eine Javascript- oder auch Ajax-Oberfläche<br />

wäre für die Zukunft sicherlich sehr<br />

wünschenswert. (jcb)<br />

n<br />

Infos<br />

[1] Prelude-Produktseite: [http:// www.​<br />

prelude‐technologies. com/ en/ solutions/​<br />

index. html]<br />

[2] Download OSS-Version: [http://​<br />

www. prelude‐technologies. com/ en/​<br />

development/ download/ index. html]<br />

[3] Prelude Admin Manual: [https:// dev.​<br />

prelude‐technologies. com/ wiki/ prelude/​<br />

ManualPreludeAdmin]<br />

[4] Apache-Setup für Prewikka: [https:// dev.​<br />

prelude‐technologies. com/ wiki/ prelude/​<br />

InstallingPreludePrewikka# Running‐Prewikk<br />

a‐from‐the‐Apache‐web‐server‐CGIApache]<br />

[5] OSSEC IDS: [http:// www. ossec. net/]<br />

72 Ausgabe 03-2012 Admin www.admin-magazin.de


Digitales aBO<br />

linuxUser: Das Monatsmagazin für die Praxis<br />

DigisUB *<br />

nur 56,10 €<br />

im Jahr (12 PDFs)<br />

* Digitales Abo, jederzeit kündbar<br />

Jetzt Bestellen Unter:<br />

www.linux-user.de/digisub<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

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

Lesen Sie News und Artikel<br />

fast 1 Woche vor dem Kiosk!<br />

Sparen Sie im Abo 15% im<br />

Vergleich zum PDF-Einzelkauf!<br />

Nutzbar auf Notebook und<br />

PC, Tablet oder Smartphone!


Security<br />

Applocker<br />

© Micha Rosenwirth, 123RF.com<br />

Mit Applocker Anwendungen in Netzwerken sperren<br />

Festgeschnallt<br />

Dank Applocker können Administratoren in Windows Server 2008 R2 und Windows 7 über Richtlinien einzelne<br />

Anwendungen sperren. So verhindern sie, dass Anwender unerwünschte Programme über USB-Stick oder E-Mail<br />

einschleusen. Thomas Joos<br />

Auch wenn Anwender keine Administratorrechte<br />

haben, können sie doch problemlos<br />

viele Programme starten, die dann<br />

die gleichen Rechte wie der Benutzer<br />

besitzen und Firmendaten ins Internet<br />

übertragen können. Aus diesem Grund ist<br />

es durchaus sinnvoll, hier die Freiheit des<br />

Anwenders in Maßen zu beschränken.<br />

Hierbei kann Applocker helfen.<br />

Um Applocker (Abbildung 1) zu nutzen,<br />

müssen Sie Windows 7 in den Editionen<br />

Enterprise und Ultimate einsetzen.<br />

App locker ist außerdem in den Editionen<br />

Standard, Enterprise und Datacenter von<br />

Windows Server 2008 R2 enthalten. Auf<br />

diesem Weg erstellen Sie Richtlinien, die<br />

auf den Windows-7-Clients automatisch<br />

angewendet werden. Betriebssysteme,<br />

die nicht kompatibel mit Applocker sind,<br />

wenden die Regeln nicht an. Es besteht<br />

keine Gefahr, Rechner außer Funktion zu<br />

setzen, nur weil das Betriebssystem Applocker-Regeln<br />

nicht versteht.<br />

Applocker ermöglicht die Erstellung von<br />

Whitelists und Blacklists. Auch eine<br />

Kombination von Regeln ist möglich.<br />

Applocker kann Anwendungen sperren<br />

und in speziellen Einsatzszenarien sogar<br />

einzelne DLL-Dateien. Auch Versionen<br />

von Programmen und DLL-Dateien<br />

lassen sich berücksichtigen. Applocker<br />

kann auch automatisch Regeln erstellen<br />

und bestimmte Verzeichnisse auf neue<br />

Programme hin überwachen. Neben<br />

Gruppenrichtlinien können Sie auch<br />

über Sicherheitsgruppen filtern. Applocker<br />

lässt sich auch mit der Powershell<br />

steuern (Abbildung 2). Dazu laden Sie in<br />

mit »import‐module applocker« die entsprechenden<br />

Commandlets. Eine Liste<br />

der verfügbaren Commandlets verschafft<br />

»get‐command *applocker*«.<br />

Microsoft bietet verschiedene Dokumente<br />

zur Planung und Umsetzung von Applocker-Richtlinien<br />

zum Download an [1].<br />

Auch im Microsoft Technet finden sich<br />

Anleitungen zum Thema [2]. Ein Video,<br />

das bei der Einrichtung hilft, bietet Windowssecurity.com<br />

an [3].<br />

Gruppenrichtlinien für<br />

Applocker erstellen<br />

Die Konfiguration von Richtlinien läuft<br />

in zwei Schritten ab. Sie erstellen eine<br />

Richtlinie und weisen ihr Applocker-Regeln<br />

zu. Die Gruppenrichtlinie erstellen<br />

74 Ausgabe 03-2012 Admin www.admin-magazin.de


Applocker<br />

Security<br />

Sie genau so wie jede andere. Um ein<br />

neues GPO zu erstellen, starten Sie die<br />

Gruppenrichtlinienverwaltung, klicken<br />

in der GPMC auf den Knoten »Gruppenrichtlinienobjekte«<br />

und wählen im Kontextmenü<br />

den Befehl »Neu« aus. Nach der<br />

Erstellung verknüpfen Sie die Richtlinie<br />

mit der OU oder Domäne, um die Einstellungen<br />

anzuwenden. Sie können aber<br />

auch innerhalb der Applocker-Regeln<br />

durch Sicherheitsgruppen filtern.<br />

Um Applocker zu verwenden, navigieren<br />

Sie zu »Computerkonfiguration/Richtlinien/Windows‐Einstellungen/Sicherheitseinstellungen/Anwendungssteuerungsrichtlinien«.<br />

Klicken Sie auf »App-<br />

Locker«. Hier erstellen Sie die Regeln für<br />

Applocker. Bei »Ausführbare Regeln« erstellen<br />

Sie Regeln für das Programme mit<br />

den Endungen ».exe« und ».com«.<br />

Installer-Regeln steuern die Ausführung<br />

von Setup-Dateien (».msi« und ».msp«).<br />

Über Skriptregeln erfassen Sie Dateien<br />

mit den Endungen ».js«, ».ps1«, ».vbs«,<br />

».cmd« und ».bat«. Sie dürfen die Regeln<br />

kombinieren und auswählen, ob die<br />

entsprechende Regel Programme erlauben<br />

oder sperren soll. Zusätzlich können<br />

Sie bei jeder Regel noch Ausnahmen<br />

für bestimmte Programme hinterlegen.<br />

Verweigerungsregeln überschreiben die<br />

Zulassungsregeln.<br />

Wenn Sie die Ausführung von Programmen<br />

verweigern, haben Sie nicht die<br />

Möglichkeit, eine Regel zu erstellen, die<br />

einer bestimmte Gruppe die Ausführung<br />

erlaubt. In diesem Fall sollten Sie die<br />

Filter der Regel so auslegen, dass nicht<br />

alle Benutzer eingeschränkt sind. Applocker<br />

unterstützt hierbei auch Gruppen in<br />

Active Directory. Erstellen Sie eine neue<br />

Applocker-Regel, hinterlegen Sie die Benutzergruppe.<br />

Später können Sie dann<br />

die Ausführung von Programmen über<br />

die Gruppenmitgliedschaft steuern, ohne<br />

die Applocker-Regeln neu erstellen oder<br />

ändern zu müssen.<br />

dungssteuerungsrichtlinien« und klicken<br />

Sie auf Applocker und dann mit der rechten<br />

Maustaste auf »Ausführbare Regeln«.<br />

Wählen Sie im Kontextmenü »Neue Regel<br />

erstellen« aus, dann auf der Seite die »Berechtigungen«,<br />

die festlegen, ob die Regel<br />

Anwendungen zulassen oder verweigern<br />

soll. Wählen Sie im Drop-down-Menü<br />

die Gruppe aus, auf die Sie diese Regel<br />

anwenden wollen. Auf der nächste Seite<br />

bestimmen Sie das Merkmal, nach dem<br />

Sie Programme sperren wollen:<br />

n Herausgeber: Durch diese Auswahl<br />

können Sie Anwendungen auf Basis<br />

Ihres Zertifikats filtern. Dazu muss<br />

die Anwendung jedoch digital signiert<br />

sein. Bei Standardsoftware ist das oft<br />

der Fall, beim Einsatz selbst entwickelter<br />

Anwendungen funktioniert das<br />

nicht, wenn die Anwendung nicht signiert<br />

ist (Abbildung 3).<br />

n Pfad: Hiermit berücksichtigt die Regel<br />

Programme in einem bestimmten Verzeichnis.<br />

Anwender können in diesem<br />

Abbildung 1: Mit Applocker lässt sich die Ausführung von Programmen im Firmennetz beschränken.<br />

Regeln für Applocker<br />

Ausführbare Regeln bieten einen Einstieg<br />

in Applocker. Hier können Sie bestimmte<br />

Programme blockieren oder bestimmte<br />

Versionen sperren lassen:<br />

Navigieren Sie zu »Computerkonfiguration/Richtlinien/Windows‐Einstellungen/Sicherheitseinstellungen/Anwen-<br />

Abbildung 2: Verwalten von Applocker in der Powershell.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

75


Security<br />

Applocker<br />

Program Files (x86)\SDM Software\<br />

Group Policy Health Cmdlet « finden Sie<br />

eine Hilfedatei zum Commandlet. Mit<br />

»Get‐SDMGPHealth ‐computer Computername«<br />

rufen Sie den Status des Computers<br />

und dessen umgesetzte Richtlinien<br />

auf. Stellen Sie sicher, dass die Applocker-<br />

Richtlinie angewendet wird. Funktioniert<br />

eine Regel nicht, liegt das nicht an der<br />

Richtlinie, sondern der Regel innerhalb<br />

der Richtlinie, wenn der Zielcomputer<br />

diese anwendet (Abbildung 4).<br />

Regel-Automatik<br />

Abbildung 3: Programme lassen sich beispielsweise nach Hersteller filtern.<br />

Fall aber Programme aus dem Verzeichnis<br />

verschieben. Dann greift die<br />

Regel nicht mehr.<br />

n Datei-Hash: Hierbei handelt es sich<br />

um den Fingerabdruck der Datei. Dieser<br />

ändert sich bei jeder neuen Version<br />

und Aktualisierung. Bei jeder Änderung<br />

des Programms müssen Sie auch<br />

die entsprechende Regel ändern.<br />

Die weiteren Fenster unterscheiden sich<br />

abhängig von der Auswahl, die Sie zum<br />

Filtern verwenden. Zunächst wählen Sie<br />

ein Referenzprogramm des Herstellers<br />

aus, dessen Programme Sie filtern wollen.<br />

Mit dem Schieberegler legen Sie Einstellungen<br />

wie die Version des Programms<br />

fest, das Sie erfassen wollen. Sie haben<br />

auch die Möglichkeit, einzelne Versionen<br />

von Programmen zu sperren. Aktivieren<br />

Sie die Option »Benutzerdefinierte Werte<br />

verwenden«, können Sie bestimmen, ab<br />

oder bis welcher Version die Regel das<br />

Programm erfassen soll. Auf diesem Weg<br />

lassen sich unerwünschte Versionen von<br />

Programmen ausfiltern.<br />

In weiteren Fenstern des Assistenten legen<br />

Sie fest, ob es Ausnahmen für eine<br />

Regel geben soll. Regeln lassen sich natürlich<br />

jederzeit nachträglich anpassen.<br />

Auf diesem Weg erstellen Sie alle Regeln,<br />

die Sie in der GPO erfassen wollen. Sobald<br />

die GPO mit den Regeln fertiggestellt<br />

ist, verknüpfen Sie sie mit einer OU oder<br />

der Domäne. Anschließend wenden die<br />

Computer die Richtlinie an und setzen<br />

die hinterlegten Regeln um. Die Umsetzung<br />

von Applocker-Richtlinien testen<br />

Sie am besten durch einen Neustart oder<br />

indem Sie »gpupdate /force« in einer Eingabeaufforderung<br />

mit Administratorrechten<br />

eingeben.<br />

Für eine erweiterte Analyse der Anwendung<br />

einer Applocker-Richtlinie laden<br />

Sie von der Seite SDMSoftware [4] das<br />

kostenlose Commandlet »Group Policy<br />

Help« herunter. Nachdem Sie das Commandlet<br />

installiert haben, können Sie mit<br />

dem Befehl »Get‐SDMGPHealth ‐computer<br />

Computername« überprüfen, ob die<br />

Gruppenrichtlinien funktionieren. Auf<br />

diesem Weg schließen Sie Probleme bei<br />

Applocker-Regeln aufgrund falsch angewendeter<br />

Gruppenrichtlinien aus. Haben<br />

Sie das Tool installiert, müssen Sie noch<br />

eine DLL des Commandlets registrieren.<br />

Öffnen Sie dafür ein Textfenster, und navigieren<br />

Sie zu »C:\Windows\Microsoft.<br />

NET\Framework64\v2.0.50727«. Verwenden<br />

Sie ein 32-Bit-System, müssen Sie in<br />

das Verzeichnis »C:\Windows\Microsoft.<br />

NET\Framework« wechseln. Geben Sie<br />

den Befehl<br />

installutil "c:\Programm Files (x86)\SDM U<br />

Software\Group Policy Health CMDlet\U<br />

GetSdmGPHealth.dll"<br />

ein. Denken Sie daran, dass der Befehl<br />

nur in Eingabeaufforderungen mit Administratorrechten<br />

funktioniert. Rufen<br />

Sie »Launch PowerShell with GP Health<br />

Snap‐In« in der Programmgruppe »SDM<br />

Software« auf. Im Verzeichnis »C:\<br />

Sie können Applocker auch veranlassen,<br />

automatisch Regeln zu erstellen. Dazu<br />

legen Sie ein bestimmtes Verzeichnis fest,<br />

das Applocker regelmäßig nach neuen<br />

Programmen scannt und diese automatisch<br />

in die Regeln aufnimmt. Klicken<br />

Sie zur Erstellung einer solchen automatischen<br />

Regel mit der rechten Maustaste<br />

auf »Ausführbare Regeln«, und wählen<br />

Sie die Option »Regeln automatisch generieren«.<br />

Wählen Sie im Assistenten das<br />

Verzeichnis aus, das Applocker einbinden<br />

soll, sowie die Benutzergruppe, für<br />

die die Regel gelten soll.<br />

Im Anschluss wählen Sie aus, auf welcher<br />

Grundlage Applocker die Regel<br />

erstellen soll. Auch hier haben Sie die<br />

Möglichkeit, Herausgeber, Datei-Hash<br />

oder Pfad zu verwenden, genauso wie bei<br />

den manuellen Regeln. Ähnliche Dateien<br />

lassen sich auch in gemeinsamen Regeln<br />

zusammenfassen. Anschließend erstellt<br />

der Assistent Zulassungsregeln für die gefundenen<br />

Programme. Auch diese Regeln<br />

können Sie nachträglich anpassen.<br />

Klicken Sie auf »Applocker« im linken<br />

Bereich der Konsole, können Sie auf der<br />

rechten Seite festlegen, wie sich Applocker<br />

auf den Client-Computern verhalten<br />

soll. Dazu wählen Sie die Option<br />

»Regel erzwingung konfigurieren«. Aktivieren<br />

Sie »Regeln erzwingen« oder die<br />

Einstellung »Nur überwachen«. Im Überwachungs-Modus<br />

setzt Applocker die Regeln<br />

nicht um, sondern protokolliert nur<br />

die betroffenen Anwendungen. Sie finden<br />

die Meldungen in der Ereignisanzeige unter<br />

»Anwendungs‐ und Dienstprotokolle |<br />

Microsoft | AppLocker«.<br />

Auf der Registerkarte »Erweitert« aktivieren<br />

Sie die DLL-Regeln. Nach der Aktivierung<br />

finden Sie im linken Bereich der<br />

76 Ausgabe 03-2012 Admin www.admin-magazin.de


Applocker<br />

Security<br />

Konsole die neue Option »DLL‐Regeln«.<br />

Hier erstellen Sie Applocker-Regeln auf<br />

Basis von DLL-Dateien. Diesen Bereich<br />

sollten Unternehmen aber erst dann verwenden,<br />

wenn es bereits eine Applocker-<br />

Infrastruktur gibt. DLL-Regeln erstellen<br />

Sie genauso wie Ausführbare-Regeln. Der<br />

Unterschied dabei ist nur, dass Sie keine<br />

».com«- oder ».exe«-Dateien auswählen,<br />

sondern DLL-Dateien, welche die Regel<br />

erfassen soll. Auch hier können Sie<br />

bestimmte Versionen sperren, erlauben<br />

oder filtern wie bei Ausführbare-Regeln.<br />

Die Erstellung dieser Regeln funktioniert<br />

genauso wie alle anderen Regeln. Das<br />

Filtern von DLL-Dateien kann die Clientcomputer<br />

stark ausbremsen und eine<br />

große Anzahl von Anwendungen ungewollt<br />

sperren<br />

Die Vorgängerversionen von Applocker<br />

sind die Richtlinien für Softwareeinschränkung<br />

(Windows Software Restrictions).<br />

Diese müssen Sie einsetzen,<br />

wenn Sie nicht zu Applocker kompatible<br />

Betriebssysteme im Einsatz haben. Die<br />

Richtlinien für Softwareeinschränkung<br />

unterstützen Windows XP/​Vista, aber<br />

auch Windows Server 2003/​2008.<br />

USB-Sticks<br />

Neben Applocker können Sie in Gruppenrichtlinien<br />

auf weitere Arten verhindern,<br />

dass Anwender Programme ausführen<br />

und dadurch die Sicherheit erhöhen. In<br />

Windows Server 2008 R2, Windows Vista<br />

und Windows 7 können Sie den Zugriff<br />

auf Wechselmedien wie USB-Sticks per<br />

Gruppenrichtlinie steuern. Die Richtlinie<br />

zur Steuerung von Wechselmedien<br />

finden Sie sowohl unter der Computerkonfiguration<br />

als auch in der Benutzer-<br />

Abbildung 4: Überprüfen eines Computers auf angewendete Gruppenrichtlinien.<br />

Wollen Sie auf Computern oder Dateiservern<br />

den Zugriff auf Dateien oder Programme<br />

überwachen, können Sie das<br />

ebenfalls über Richtlinien tun. Öffnen<br />

Sie die lokale oder Gruppenrichtlinie für<br />

den Computer, und navigieren Sie anschließend<br />

zu »Computerkonfiguration/<br />

Windows‐Einstellungen/Sicherheitseinstellungen/Lokale<br />

Richtlinien/Überwachungsrichtlinien«.<br />

Die Überwachung der<br />

Zugriffe auf das Dateisystem aktivieren<br />

Sie über »Objektzugriffsversuche überwachen«.<br />

Nach der Aktivierung müssen<br />

Sie noch auswählen, ob erfolgreiche und/​<br />

oder fehlgeschlagene Zugriffsversuche<br />

protokolliert werden.<br />

Nachdem Sie die Überwachung aktiviert<br />

haben, müssen Sie die eigentliche Überkonfiguration.<br />

Die Einstellungen für den<br />

Zugriff auf Wechselmedien sind unter<br />

»Computerkonfiguration/Richtlinien/<br />

Administrative Vorlagen/System/Wechselmedienzugriff«<br />

zu erreichen.<br />

Die Einstellungen dieser Richtlinie sind<br />

selbst erklärend. Wenn Sie eine Richtlinie<br />

aufrufen, finden Sie auf der Registerkarte<br />

»Erklärung« eine ausführliche<br />

Information über die Auswirkungen<br />

der Richtlinien. Nicht jedes Brennprogramm<br />

von Drittherstellern hält sich an<br />

die Einstellungen in der Richtlinie für<br />

den schreibenden Zugriff auf CDs oder<br />

DVDs. Wenn Sie sicherstellen wollen,<br />

dass keine CDs oder DVDs gebrannt werden<br />

können, sollten Sie die Installation<br />

von DVD- oder CD-Brennern über die<br />

entsprechende Richtlinie einstellen. Die<br />

generellen Einstellungen für die Geräteinstallationen<br />

finden Sie über »Computerkonfiguration/Administrative<br />

Vorlagen/<br />

System/Geräteinstallation/Einschränkungen<br />

bei der Geräteinstallation«. Auf<br />

diesem Weg lässt sich verhindern, dass<br />

Anwender auf unberechtigte USB-Sticks<br />

zugreifen können.<br />

Benutzerkontensteuerung<br />

über Gruppenrichtlinien<br />

Im Firmennetz lässt sich das Verhalten<br />

der Benutzerkontensteuerung per Gruppenrichtlinie<br />

konfigurieren. Die dazu notwendigen<br />

Einstellungen finden Sie unter<br />

»Computerkonfiguration/Richtlinien/<br />

Windows‐Einstellungen/Sicherheitseinstellungen/Lokale<br />

Richtlinien/Sicherheitsoptionen«.<br />

Führt ein Anwender<br />

Aufgaben durch, die Administratorrechte<br />

voraussetzen, erscheint ein Bestätigungsfenster<br />

oder ein Authentifizierungsfens-<br />

ter, wenn Sie an einer Arbeitsstation als<br />

Standardbenutzer angemeldet sind. Auch<br />

auf diesem Weg lassen sich Anwendungen<br />

sperren.<br />

Bitlocker<br />

In Windows 7 können Sie Festplatten und<br />

auch USB-Sticks mit Bitlocker verschlüsseln.<br />

Damit das funktioniert, muss im PC<br />

aber das TPM-Sicherheitsmodul installiert<br />

sein. Um dennoch die Festplattenverschlüsselung<br />

nutzen zu können, besteht<br />

auch die Möglichkeit, Gruppenrichtlinieneinstellungen<br />

zu ändern. In diesem Fall<br />

benötigen Sie einen USB-Stick, der mit<br />

dem Computer verbunden ist.<br />

Wechseln Sie in der Konsolenstruktur<br />

der Gruppenrichtlinienverwaltung<br />

zum Eintrag »Computerkonfiguration/<br />

(Richtlinien)/Administrative Vorlagen/<br />

Windows‐Komponenten/BitLocker‐Laufwerksverschlüsselung/Betriebssystemlaufwerke«.<br />

Doppelklicken Sie im rechten<br />

Bereich des Fensters auf die Richtlinie<br />

»Zusätzliche Authentifizierung beim Start<br />

anfordern«. Für Windows Vista-Clients<br />

oder Windows Server 2008 gibt es dazu<br />

eine eigene Richtlinie, die Sie aktivieren<br />

müssen.<br />

Wählen Sie im Dialogfeld die Option »Aktiviert«,<br />

stellen Sie sicher, dass das Kästchen<br />

»BitLocker ohne kompatibles TPM<br />

zulassen« aktiviert ist, und klicken Sie<br />

auf »OK«. Die Richtlinie erhält darauf in<br />

der Statuszeile den Status »Aktiviert«.<br />

Dateisystemzugriffe<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

77


Security<br />

Applocker<br />

Abbildung 5: iPhones kann der Administrator mit dem iPhone-Konfigurationsprogramm verwalten.<br />

wachung für die entsprechenden Dateien<br />

und Verzeichnissen aktivieren. Öffnen Sie<br />

dazu die Eigenschaften des Objekts, also<br />

des Verzeichnisses mit den Daten, und<br />

wählen Sie auf der Registerkarte »Sicherheit«<br />

die Schaltfläche »Erweitert«. Auf der<br />

Registerkarte »Überwachung« sehen Sie,<br />

welche Operationen protokolliert werden.<br />

Damit Sie die bei der Überwachung anfallenden<br />

Protokolldaten sinnvoll bearbeiten<br />

können, sollten Sie von diesem Filter<br />

Gebrauch machen und nur das Nötigste<br />

protokollieren.<br />

Über »Hinzufügen« legen Sie die Überwachung<br />

fest. Wie bei den NTFS-Berechtigungen<br />

gilt auch hier das Prinzip der<br />

Vererbung, das Sie bei Bedarf ausschalten<br />

können. Nachdem Sie »Hinzufügen« gewählt<br />

haben, können Sie über »Ändern«<br />

den zu überwachenden Benutzer oder die<br />

Gruppe auswählen. Wie bei der Vergabe<br />

spezieller NTFS-Berechtigungen können<br />

Sie angeben, inwieweit sich diese Einstellungen<br />

auf untergeordnete Objekte und<br />

Verzeichnisse auswirken. Wählen Sie anschließend<br />

im Feld »Zugriff« aus, welche<br />

Zugriffe protokolliert werden sollen und<br />

ob Sie erfolgreiche oder fehlgeschlagene<br />

Zugriffe protokollieren wollen.<br />

Die Protokollierung der Überwachung erfolgt<br />

in der Ereignisanzeige. Starten Sie<br />

die Verwaltungskonsole über »eventvwr.<br />

msc«. In der Ereignisanzeige finden Sie<br />

die protokollierten Zugriffsversuche im<br />

»Sicherheitsprotokoll«. Die mit einem<br />

Schlüssel gekennzeichneten Einträge stehen<br />

für erfolgreiche Zugriffe, während<br />

ein Schloss für fehlgeschlagene Zugriffe<br />

steht. Genauere Informationen zu einem<br />

Eintrag bekommen Sie, wenn Sie ihn öffnen.<br />

Ein einzelner Zugriff erzeugt eine<br />

ganze Reihe von Einträgen im Sicherheitsprotokoll.<br />

iPhone-Konfiguration<br />

Auch Anwendungen auf Smartphones,<br />

wie zum Beispiel iPhones, lassen sich mit<br />

Applocker sperren. Durch das ohnehin<br />

sehr restriktive System können Unternehmen<br />

Anwendungen und die Installation<br />

von Apps zuverlässig verhindern.<br />

Zusammen mit Activesync-Richtlinien<br />

in Exchange Server 2007/​2010 können<br />

Administratoren mit dem iPhone-Konfigurationsprogramm<br />

iOS-Geräte konfigurieren.<br />

Den Umgang mit dem Tool, sowie<br />

Hinweise zur Bereitstellung erklärt Apple<br />

auf einer eigenen Seite, auf der auch das<br />

iPhone-Konfigurationsprogramm zur Verfügung<br />

steht [5].<br />

Mit dem Konfigurationsprogramm erstellen<br />

Administratoren verschiedene Profile,<br />

die Einstellungen enthalten. Bei den Profilen<br />

handelt es sich um XML-Dateien,<br />

die die Einstellungen des iPhone festlegen.<br />

Die Profile enthalten Einstellungen,<br />

die Anwender normalerweise direkt<br />

im iPhone vorgeben. Die Konfiguration<br />

erfolgt über eine grafische Oberfläche.<br />

Einstellungen, die Administratoren über<br />

ein Konfigurationsprofil vorgeben, lassen<br />

sich auf dem iPhone/​iPad nicht mehr<br />

manuell anpassen.<br />

Mit dem Tool lassen sich auch einzelne<br />

Bereich im iPhone und installierte Apps<br />

deaktivieren und ausblenden. Dazu können<br />

Administratoren etwa Programm-<br />

Icons auf den Endgeräten ausblenden<br />

und auf diese Weise zum Beispiel das<br />

Installieren von Apps über den App-Store<br />

verhindern. Im Bereich »Einschränkungen«<br />

sind alle Einstellungen zu finden,<br />

die verschiedene Bereiche auf den Endgeräten<br />

deaktivieren können.<br />

Einschränkungen und Einstellungen<br />

lassen sich in getrennten Profilen oder<br />

in einem gemeinsamen Profil konfigurieren.<br />

Einschränkungen geben Sie wie<br />

alle anderen Einstellungen als Konfigurationsprofil<br />

weiter. Die Erstellung von<br />

Profilen geschieht über den Menüpunkt<br />

»Konfigurationsprofile«. Über einen Klick<br />

auf »Neu« erstellt das Konfigurationsprogramm<br />

das Profil. Im oberen Bereich »Allgemein«<br />

vergeben Administratoren einen<br />

Namen für das Profil, eine Kennung und<br />

eine Beschreibung fest und klicken sich<br />

anschließend durch die verschiedenen<br />

Einstellungen. Interessant für große Unternehmen<br />

ist vor allem die Möglichkeit,<br />

Exchange-Einstellungen, Zertifikate und<br />

die Anbindung an WLANs zu konfigurieren.<br />

(ofr)<br />

n<br />

Infos<br />

[1] Applocker-Richtlinien:<br />

[http:// www. microsoft. com/ download/ en/​<br />

details. aspx? displaylang=en& id=13431]<br />

[2] Technet-Anleitungen:<br />

[http:// technet. microsoft. com/ de‐de/​<br />

library/ dd723686(WS. 10). aspx]<br />

[3] Applocker-Video: [http:// www.​<br />

windowsecurity. com/ articles/​<br />

Video‐AppLocker‐Tips‐Tricks. html]<br />

[4] SDMSoftware:<br />

[http:// www. sdmsoftware. com/ freeware]<br />

[5] iPhone-Konfigurationsprogramm:<br />

[http:// www. apple. com/ de/ support/ iphone/​<br />

enterprise]<br />

Der Autor<br />

Thomas Joos ist freiberuflicher IT-Consultant und<br />

seit über 20 Jahren in der IT tätig. Neben seinen<br />

Projekten schreibt er praxisnahe Fachbücher<br />

und Fachartikel rund um Windows und andere<br />

Microsoft-Themen. Online trifft man ihn unter<br />

[http:// thomasjoos. spaces. live. com].<br />

78 Ausgabe 03-2012 Admin www.admin-magazin.de


Admin-mAGAZin<br />

im JAhres-Abo<br />

Jede Ausgabe des Admin-<strong>Magazin</strong>s bietet praktisch anwendbares Wissen<br />

von ausgewiesenen Experten und ausführliche Hintergrundberichte für alle<br />

Systemverwalter von Linux, Unix und Windows. Die Schwerpunkte reichen von<br />

<strong>Storage</strong> und Backup bis hin zu Netzwerk-Themen und Security.<br />

Ein Sonderteil hilft Admins heterogener Welten.<br />

15 % sparen<br />

Jetzt bestellen unter:<br />

www.admin-magazin.de/abo<br />

sichern sie sich ihr<br />

GrAtis Admin t-shirt!<br />

• Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />

Mit dem Jahres-Abo erhalten Sie 6 Ausgaben des Admin-<strong>Magazin</strong>s zum Vorzugspreis von E 49,90 * statt E 58,80 *<br />

(Lieferung frei Haus).<br />

* Preise gelten für Deutschland. Schweiz: SFr 82,32; Österreich: E 54,90; anderes Europa: E 59,90


Know-How<br />

Windows-Bibliotheken<br />

© Pedro Antonio Salaverrà a Calahorra, 123RF<br />

Windows-Bibliotheken effizient zentral steuern<br />

Ansichtssache<br />

Bibliotheken in Windows 7 können physische Verzeichnisse auch aus verschiedenen Laufwerken logisch zusammenfassen<br />

und bieten eine gemeinsame Ansicht auf die enthaltenen Dateien. Das erhöht die Übersicht über<br />

wichtige Daten und die Effizienz im Umgang mit Dokumenten. Thomas Joos<br />

Bibliotheken zeigt Windows auch ohne<br />

Active Directory direkt im Explorer in einem<br />

eigenen Bereich auf der linken Seite<br />

an (Abbildung 1). Über das Kontextmenü<br />

von Bibliotheken erstellen Anwender<br />

oder Administratoren neue Bibliotheken<br />

und ändern die Einstellungen der Standardbibliotheken.<br />

In den Eigenschaften einer Bibliothek<br />

können Sie festlegen, welche physischen<br />

Verzeichnisse sie enthalten und anzeigen<br />

soll. Dabei gibt es nahezu<br />

keine Beschränkungen: Bibliotheken<br />

können sich über<br />

mehrere physische Laufwerke<br />

und unterschiedliche Verzeichnisse<br />

erstrecken. Windows-Anwender<br />

sehen mit<br />

einem Klick den Inhalt aller<br />

angebundenen Verzeichnisse<br />

in einem Explorer-Fenster.<br />

Wählen Anwender eine Bibliothek<br />

zum Speichern aus,<br />

legt Windows die Datei in<br />

dem konfigurierten Verzeichnis<br />

ab. Zusätzlich lässt sich<br />

festlegen, welche Art von Dateien<br />

die Bibliothek enthalten<br />

soll. Windows optimiert dann<br />

die Ansicht der Bibliothek<br />

entsprechend.<br />

Bibliotheken dürfen allerdings keine<br />

Netzwerkpfade, also Freigaben auf den<br />

Rechnern enthalten, sie unterstützen nur<br />

indexierte Verzeichnisse. Diese durchsucht<br />

Windows im Hintergrund ständig<br />

und speichert die Ergebnisse in einem<br />

Index. Es gibt aber die Möglichkeit,<br />

Bibliotheken und Verzeichnisse der Bibliotheken<br />

auf einen Server umzuleiten,<br />

was für Anwender vollkommen transparent<br />

geschieht.<br />

Abbildung 1: Bibliotheken im Explorer von Windows 7.<br />

Netzwerklaufwerke lassen sich über einen<br />

Umweg auch zu Bibliotheken hinzufügen.<br />

Dazu müssen Anwender die<br />

entsprechenden Verzeichnisse als Offline-<br />

Dateien konfigurieren. Windows überträgt<br />

dann die Dateien vom Server auf<br />

den lokalen Client in einen Cache. Die<br />

Offline-Verfügbarkeit lässt sich für komplette<br />

Netzlaufwerke oder für einzelne<br />

untergeordnete Verzeichnisse festlegen.<br />

Allerdings lassen sich auf Client-Computern<br />

nur die Freigaben offline<br />

verfügbar machen, die auf<br />

dem Server die entsprechende<br />

Einstellung verwenden. Das<br />

ist zwar standardmäßig der<br />

Fall, allerdings kann diese<br />

Funktion bei einzelnen Freigaben<br />

auch deaktiviert sein.<br />

Offline-Dateien für<br />

Netzfreigaben<br />

Auf Servern mit Windows<br />

Server 2008 R2 können Sie<br />

die Nutzung von Offlinedateien<br />

über die Eigenschaften<br />

der Freigabe steuern. Die Offline-Verfügbarkeit<br />

steuert die<br />

Option »Zwischenspeichern«<br />

(Abbildung 2). Es gibt ver-<br />

80 Ausgabe 03-2012 Admin www.admin-magazin.de


Windows-Bibliotheken<br />

Know-How<br />

schiedene Möglichkeiten, den Zugriff zu<br />

steuern und Anwendern das Recht einzuräumen,<br />

Verzeichnisse auf dem Server<br />

offline verfügbar zu machen.<br />

Wenn Sie die Option »Keine Dateien oder<br />

Programme der Freigabe sind offline verfügbar«<br />

aktivieren, erscheint der Befehl<br />

»Immer offline verfügbar« im Kontextmenü<br />

von Freigaben auf den Clients<br />

nicht. Darüber hinaus lassen sich folgende<br />

Varianten auswählen:<br />

n Mit »Nur von Benutzern angegebene<br />

Dateien und Programme sind offline<br />

verfügbar«, können die Benutzer<br />

selbst auswählen, welche Dateien<br />

sie verwenden wollen, indem sie im<br />

Kontextmenü der Freigabe die Offline-<br />

Verfügbarkeit aktivieren.<br />

n »Alle Dateien und Programme, die Benutzer<br />

auf der Freigabe öffnen, sind<br />

automatisch offline verfügbar« legt<br />

fest, dass Windows 7 automatisch jede<br />

geöffnete Datei der Freigabe offline<br />

verfügbar konfiguriert.<br />

n Über »Für hohe Leistung optimieren«<br />

lässt sich festgelegen, dass ausführbare<br />

Dateien aus dieser Freigabe auf<br />

dem Client verfügbar bleiben, wenn<br />

sie einmal genutzt wurden. In diesem<br />

Fall sollten die Zugriffsberechtigungen<br />

für die Freigabe auf »Lesen« gesetzt<br />

sein, um zu verhindern, dass Windows<br />

veränderte Programme zurückspeichert.<br />

Wer festlegen möchte, dass bestimmte<br />

Verzeichnisse von Bibliotheken automa-<br />

tisch auf Servern gespeichert werden,<br />

ohne dass Benutzer davon etwas mitbekommen,<br />

kann dafür Gruppenrichtlinien<br />

benutzen. Dokumentenbibliotheken<br />

verwenden standardmäßig den lokalen<br />

Profilpfad des Benutzerkontos und das<br />

öffentliche Profil auf einem Client. Das<br />

heißt, gespeicherte Dokumente sind nicht<br />

auf dem Server gespeichert, wenn Anwender<br />

die Bibliothek nutzen.<br />

Umgeleitet<br />

Mit Gruppenrichtlinien lassen sich Ordner<br />

aber auch ohne den Umweg mit Offline-Dateien<br />

umleiten. Windows 7 und<br />

Windows Server 2008 R2 bieten dazu die<br />

Möglichkeit, verschiedene Ordner innerhalb<br />

des Profils auf ein Serverlaufwerk<br />

umzuleiten. So ist sichergestellt, dass<br />

Daten, die Anwender in der Bibliothek<br />

speichern, automatisch auf einem Server<br />

gespeichert sind. Die Umleitungen<br />

dieser Ordner nehmen Sie über Ordnerumleitungen<br />

in Gruppenrichtlinien vor.<br />

Die Einstellungen finden sich im Gruppenrichtlinienverwaltungs-Editor<br />

unter<br />

»Benutzerkonfiguration/Richtlinien/<br />

Windows‐Einstellungen/Ordnerumleitungen«<br />

(Abbildung 3).<br />

Bei der Umleitung können Sie wichtige<br />

Ordner der Standard-Bibliotheken in Verzeichnisse<br />

auf den Servern umleiten lassen.<br />

Über die Registerkarte »Ziel« legen<br />

Sie die Umleitungsoptionen fest. Einen<br />

Stammordner, also eine Freigabe auf die<br />

alle Anwender zentral zugreifen dürfen,<br />

müssen Sie manuell anlegen. In diesem<br />

Ordner legt Windows automatisch Unterordner<br />

für die einzelnen Benutzer an<br />

und konfiguriert automatisch die entsprechende<br />

Rechte. Die Freigabe müssen Anwender<br />

nicht als Laufwerk verbinden, die<br />

Daten stehen automatisch zur Verfügung,<br />

sobald der Anwender die entsprechende<br />

Bibliothek im Explorer öffnet.<br />

Haben Sie die neue übergeordnete Freigabe<br />

erstellt, öffnen Sie die Gruppenrichtlinienverwaltung<br />

und navigieren<br />

zu »Benutzerkonfiguration/Richtlinien/<br />

Windows‐Einstellungen/Ordnerumleitungen«.<br />

Rufen Sie die Eigenschaften<br />

von »Dokumente« auf, und öffnen Sie<br />

die Registerkarte »Ziel«. Wählen Sie die<br />

Option »Standard – Leitet alle Ordner<br />

auf den gleichen Pfad um«. Aktivieren<br />

Sie bei »Zielordner« die Option »Einen<br />

Ordner für jeden Benutzer im Stammpfad<br />

erstellen«. Hinterlegen Sie als Stammverzeichnis<br />

den Pfad »\\Servername\<br />

Erstellte Freigabe«, und klicken Sie auf<br />

»OK« (Abbildung 4).<br />

Meldet sich der Anwender das nächste<br />

Mal an seinem Rechner an, legt Windows<br />

automatisch in der erstellten Freigabe einen<br />

Ordner mit dem Benutzernamen des<br />

Anwenders an. In diesem Ordner auf dem<br />

Server liegen zukünftig alle Dateien, die<br />

der Anwender in seiner Dokumentenbibliothek<br />

speichert. Rufen Sie nach der<br />

Ordnerumleitung im Startmenü die Eigenschaften<br />

der Bibliothek »Dokumente«<br />

Abbildung 2: Konfigurieren von Offlinedateien unter Windows Server 2008 R2.<br />

Abbildung 3: Ordnerumleitungen über Gruppenrichtlinien steuern.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

81


Know-How<br />

Windows-Bibliotheken<br />

auf, sehen Sie, dass Windows die Daten<br />

automatisch auf dem Server speichert.<br />

Damit Anwender die Dokumente auch<br />

zur Verfügung haben, wenn der Computer<br />

nicht mit dem Netzwerk verbunden<br />

ist, verwendet Windows automatisch die<br />

Offlinedateisynchronisierung.<br />

Einstellungen per Skript<br />

anpassen<br />

Die Konfiguration von Bibliotheken findet<br />

über die grafische Oberfläche und<br />

XML-Dateien auf den Clientcomputern<br />

statt. Sie können die XML-Dateien mit<br />

Skripten auf den Clients bearbeiten oder<br />

die XML-Dateien über Anmeldeskripte<br />

auf die Computer kopieren lassen. Im<br />

Verzeichnis »C:\Users\Benutzername\<br />

AppData\Roaming\Microsoft\Windows\<br />

Libraries« liegen die XML-Dateien der<br />

Bib liotheken. Damit der Ordner »App-<br />

Data« sichtbar ist, lassen Sie sich über<br />

»Organisieren/Ordner‐ und Suchoptionen«<br />

zunächst die versteckten Dateien<br />

anzeigen. In diesem Verzeichnis sind die<br />

Konfigurationseinstellungen der Bibliotheken<br />

gespeichert. Nach dem Öffnen<br />

der Datei der Bibliothek im Windows-<br />

Editor können Sie Einstellungen vornehmen,<br />

wie etwa das Icon der Bibliothek<br />

anpassen. Das Symbol ist zum Beispiel<br />

in der Zeile »imageres.<br />

dll,‐1005« festgelegt.<br />

Die XML-Dateien lassen sich auch verwenden,<br />

um Bibliotheken zum Beispiel<br />

auf Remotedesktop-Servern zu steuern.<br />

Dazu erstellen Sie eine Bibliothek mit<br />

beliebigen Pfaden und Einstellungen.<br />

Die XML-Datei<br />

der Bibliothek verteilen Sie<br />

dann mit Gruppenrichtlinien<br />

auf Clientcomputer, um die<br />

Bibliothek dort verfügbar zu<br />

machen. Durch das Kopieren<br />

einer XML-Datei auf einen<br />

Clientcomputer oder Remotedesktop-Server,<br />

zum Beispiel<br />

über ein Anmeldeskript, über<br />

Gruppenrichtlinien oder die<br />

Benutzereigenschaften, ist die<br />

Bibliothek auf dem entsprechenden<br />

Computer ebenfalls<br />

automatisch vorhanden, sobald<br />

die Datei kopiert ist.<br />

Auch Einstellungen wie das<br />

Icon lassen sich über diesen<br />

Weg steuern. Kopieren Sie die Datei bei<br />

jedem Anmelden, ist sichergestellt, dass<br />

die Bibliothek immer die gleichen Einstellungen<br />

verwendet. Das Kopieren funktioniert<br />

in Echtzeit auch im laufenden<br />

Betrieb von Rechnern, die Bibliothek ist<br />

nach dem Kopieren der Datei in das Verzeichnis<br />

»C:\Users\\<br />

AppData\Roaming\Microsoft\Windows\<br />

Libraries« sofort verfügbar.<br />

Es gibt auch die Möglichkeit, Bibliotheken<br />

über eine Verknüpfung zentral auf den<br />

Desktops verfügbar zu machen. Dazu erstellt<br />

man eine Verknüpfung und kopiert<br />

diese per Anmeldeskript auf den Desktop<br />

der Benutzer. Wer auf diesem Weg zum<br />

Beispiel alle Programme der Systemsteuerung<br />

auf einmal in einem Explorer-Fenster<br />

anzeigen möchte, klickt mit der rechten<br />

Maustaste auf den Desktop, wählt »Neu«<br />

und dann »Verknüpfung«. Der einzugebende<br />

Pfad lautet: »explorer.exe shell:::{<br />

ED7BA470‐8E54‐465E‐825C‐99712043E01<br />

C}«. Auf die gleiche Art lassen sich auch<br />

andere Systemordner öffnen und anzeigen,<br />

wie etwa der Papierkorb (645FF040-<br />

5081-101B-9F08-00AA002F954E) oder das<br />

Wartungscenter (BB64F8A7-BEE7-4E1A-<br />

AB8D-7D8273F7FDB6). Auf [1] findet<br />

sich eine vollständige Liste.<br />

Anmeldeskripte und<br />

Gruppenrichtlinien<br />

Sind die Musterdateien für die Bibliotheken<br />

erstellt, lassen sich diese am einfachsten<br />

über Anmeldeskripte kopieren.<br />

Die klassischen Anmeldeskripte legen<br />

Abbildung 4: Erstellen einer Ordnerumleitung am Beispiel von SBS 2011 Essentials.<br />

Sie auf der Registerkarte »Profil« in den<br />

Eigenschaften bei den Benutzerkonten<br />

fest. Diese Skripte können problemlos<br />

in einem Windows Server 2008 R2 Active<br />

Directory verwendet werden. Damit<br />

die Skripte beim Anmelden auch starten,<br />

müssen Sie die Dateien in der Freigabe<br />

»netlogon« auf den Domänencontrollern<br />

speichern. Das gilt auch für Programme<br />

oder andere Skripte, die wiederum von<br />

den Anmeldeskripten gestartet werden.<br />

Wenn ein Skript in die Netlogon-Freigabe<br />

kopiert ist, wird es durch den Dateireplikationsdienst<br />

(File Replication Service,<br />

FRS) automatisch auf die anderen Domänencontroller<br />

repliziert. Der lokale<br />

Speicherort der netlogon-Freigabe auf<br />

einem Windows Server 2008 R2 ist das<br />

Verzeichnis »\Windows\SYSVOL\sysvol\<br />

Domäne\scripts«.<br />

In einem Active Directory können Sie<br />

neben den klassischen Skripten auch<br />

Skripte beim Anmelden und Abmelden,<br />

sowie beim Starten und Herunterfahren<br />

eines Computers verwenden. Die Skripte<br />

finden sich in den Gruppenrichtlinien an<br />

den folgenden Stellen:<br />

n Skripte für Computer zum Starten und<br />

Herunterfahren unter »Computerkonfiguration/Richtlinien/Windows‐Einstellungen/Skripte«.<br />

n Skripte für Anwender beim An- oder<br />

Abmelden unter »Benutzerkonfiguration/Richtlinien/Windows‐Einstellungen/Skripte«.<br />

Klicken Sie doppelt auf den jeweiligen<br />

Eintrag und dann auf die Schaltfläche<br />

»Dateien anzeigen«, öffnet sich ein Explorer-Fenster.<br />

Hierher ist<br />

anschließend die Skriptdatei<br />

und die verwendeten Steuerdateien<br />

von Bibliotheken zu<br />

kopieren. Über die Schaltfläche<br />

»Hinzufügen« wählen Sie<br />

dann das Skript aus. Auch<br />

die Kombination von klassischen<br />

Skripten und Skripten<br />

über Gruppenrichtlinien ist<br />

möglich. Es ist auch möglich,<br />

dass die Skripte in den Gruppenrichtlinien<br />

von übergeordneten<br />

OUs nach unten vererbt<br />

und in den untergeordneten<br />

OUs weitere Skripts gestartet<br />

werden. Neben herkömmlichen<br />

Ordnerumleitungen in<br />

Active Directory, die auch mit<br />

82 Ausgabe 03-2012 Admin www.admin-magazin.de


Windows-Bibliotheken<br />

Know-How<br />

SBS 2011 Essentials funktionieren,<br />

bietet SBS 2011 Standard<br />

in seiner Konsole einen<br />

eigenen Eintrag, um Ordner<br />

von Bibliotheken zentral zu<br />

steuern und umzulegen. Über<br />

den Eintrag »Ordner« in den<br />

Eigenschaften von Benutzerkonten<br />

in der SBS-Konsole<br />

können Sie festlegen, wie<br />

groß die Datenmenge sein<br />

darf, die Anwender speichern<br />

dürfen. Zusätzlich können Sie<br />

an dieser Stelle die Ordnerumleitungen<br />

konfigurieren. Bei diesen Umleitungen<br />

lenkt SBS 2011 die Zugriffe der<br />

Anwender automatisch auf den Server<br />

um, wenn diese ein bestimmtes lokales<br />

Verzeichnis öffnen.<br />

Für den Anwender ist der Zugriff transparent,<br />

aber die Daten liegen auf dem<br />

Server nicht auf der lokalen Arbeitsstation.<br />

Die Steuerung der Grenzwerte erfolgt<br />

über den Ressourcen-Manager für<br />

Dateiserver in der Programmgruppe »Verwaltung«.<br />

Man muss daher mit SBS 2011<br />

Standard keine Ordner manuell erstellen,<br />

die Aufgaben lassen sich bequem in der<br />

SBS-Konsole vornehmen. Die Ordnerumleitung<br />

selbst erfolgt über Gruppenrichtlinien<br />

wie in einem normalen Active Directory<br />

oder mit SBS 2011 Essentials.<br />

Welche lokalen Ordner die Arbeitsstation<br />

auf den SBS-Server umleitet, steuert man<br />

ebenfalls in der SBS-Konsole. Klicken Sie<br />

auf »Benutzer und Gruppen«, und aktivieren<br />

Sie die Registerkarte »Benutzer«.<br />

Klicken Sie auf »Ordner für Benutzerkonten<br />

an den Server umleiten«, und aktivieren<br />

Sie das Kontrollkästchen bei jenen<br />

Ordnern, die die Clients umleiten sollen<br />

(Abbildung 5).<br />

Über den Eintrag »Benutzerkonten« aktivieren<br />

Sie das Kontrollkästchen bei den<br />

Benutzern, für die Sie die Umleitung aktivieren<br />

wollen. Die Benutzer müssen sich<br />

nach der Änderung bis zu dreimal neu<br />

anmelden, bis der Server die Änderungen<br />

übernimmt. Nach der aktiven Ordnerumleitung<br />

speichert der Windows-Client automatisch<br />

alle Dateien, die ein Anwender<br />

in den entsprechenden Ordnern, zum Beispiel<br />

der Dokumenten-Bibliothek ablegt,<br />

auf dem Server. Der Anwender muss dabei<br />

nichts beachten, die Vorgänge laufen<br />

im Hintergrund ab. Die Dateien bleiben<br />

aber als Offlinekopie auf dem Computer,<br />

Abbildung 5: Konfigurieren der Ordnerumleitung in SBS 2011.<br />

sodass auch mobile Anwender unterwegs<br />

mit den Dateien arbeiten können.<br />

Sobald ein Computer eine Verbindung<br />

mit dem Server herstellt, repliziert der<br />

Client neue und veränderte Dateien auf<br />

den Server. Auf dem SBS-Server finden<br />

Sie die Dateien im Verzeichnis »C:\Users\<br />

FolderRedirections«. Für jeden Anwender<br />

legt der Server ein eigenes Verzeichnis<br />

an. Anwender können auch über die<br />

Freigabe auf die Verzeichnisse zugreifen.<br />

Der Zugriff auf umgeleitete Ordner erfolgt<br />

für Anwender wie der lokale Zugriff auf<br />

Ordner. Der Unterschied besteht darin,<br />

dass die Daten im freigegebenen Ordner<br />

auf dem Server gespeichert sind. Wenn<br />

sich Benutzer an verschiedenen Computern<br />

im Netzwerk anmelden, haben<br />

diese auf allen Computern Zugriff auf<br />

ihre Dateien.<br />

Benutzer in Active<br />

Directory<br />

Da die Verzeichnisse von Bibliotheken<br />

normalerweise im Benutzerprofil liegen,<br />

können Sie für Anwender auch servergespeicherte<br />

Profile aktivieren. Dann kopiert<br />

der Client automatisch alle Dateien<br />

der Bibliothek beim Abmelden auf den<br />

Server. Abhängig von der Datenmenge<br />

kann das aber durchaus etwas dauern.<br />

Auf der Registerkarte »Profil« eines Benutzerkontos<br />

in der Verwaltungskonsole<br />

»Active Directory‐Benutzer und ‐Computer«<br />

können Sie die notwendigen Angaben<br />

hinterlegen, um komplette Profile<br />

auf den Server auszulagern. Sie finden<br />

die Benutzerkonten in SBS 2011 Standard<br />

über »Domäne/MyBusiness/Users/<br />

SBSUSers«. In dieser Organisationseinheit<br />

sind alle Benutzerkonten gespeichert, die<br />

Sie in der SBS-Konsole angelegt haben.<br />

Die Profile funktionieren aber<br />

auch in ganz normalen Active<br />

Directorys.<br />

Um servergespeicherte Profile<br />

für Anwender festzulegen,<br />

rufen Sie die Eigenschaften<br />

des Benutzerkontos auf und<br />

wechseln zur Registerkarte<br />

»Profile«. Bei »Profilpfad« geben<br />

Sie das Verzeichnis an,<br />

in dem Windows das Benutzerprofil<br />

des Anwenders beim<br />

Abmelden speichern und<br />

beim Anmelden laden soll.<br />

Bei Verwendung eines serverbasierenden<br />

Benutzerprofils steht dieses Profil<br />

an allen Arbeitsstationen im Netzwerk<br />

zur Verfügung. Durch die Angabe dieses<br />

Pfads wird automatisch ein leerer Ordner<br />

für diesen Benutzer erstellt. Die Angabe<br />

des Profilpfads erfolgt in der Form »\\Servername\Freigabename\%username%«.<br />

Der Profilpfad verweist auf den Ordner, in<br />

dem das Benutzerprofil des Anwenders<br />

abgelegt wird. Ist kein Pfad angegeben,<br />

arbeitet Windows nur mit lokalen Benutzerprofilen.<br />

Wenn sich ein Benutzer<br />

anmeldet, überprüft Windows, ob für<br />

diesen Benutzer ein Profilpfad angegeben<br />

und damit ein serverbasierendes Profil<br />

definiert ist. Ist dies der Fall, vergleicht<br />

Windows, ob das serverbasierte oder das<br />

lokale Profil aktueller ist. Ist das serverbasierte<br />

Profil aktueller, lädt Windows<br />

die geänderten Dateien aus diesem Profil<br />

auf das lokale System.<br />

Achten Sie aber darauf, dass die Gruppe<br />

»Jeder« – oder eine Sicherheitsgruppe,<br />

in der sich die Benutzer befinden – die<br />

nötigen Rechte besitzen muss, Ordner<br />

in der Freigabe für die Profile zu erstellen<br />

und in die Ordner zu schreiben. Bei<br />

der Abmeldung aktualisiert Windows das<br />

serverbasierende Profil durch die lokal<br />

veränderten Dateien. Bei der ersten Anmeldung<br />

eines Benutzers nach der Definition<br />

eines Profilpfads lädt Windows<br />

entweder ein vordefiniertes Profil vom<br />

Server oder kopiert bei der Abmeldung<br />

das bisherige lokale Profil des Benutzers<br />

auf den Server. (ofr)<br />

n<br />

Infos<br />

[1] Canonical Names of Control Panel Items:<br />

[http:// msdn. microsoft. com/ en‐us/ library/​<br />

ee330741%28VS. 85%29. aspx]<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

83


Know-How<br />

PostgreSQL Indexe<br />

Speicherplatz für PostgreSQL-B-Baum-Indexe richtig nutzen<br />

Wider die Blasen<br />

© Roland Warmbier, 123RF<br />

Obwohl viele PostgreSQL-Benutzer ihre Datenbank regelmäßig mit VACUUM aufräumen, und obwohl die Tabellen<br />

kaum wachsen, kann der B-Baum-Index immer mehr Speicherplatz belegen. Denn auch hier ist der Admin in der<br />

Pflicht und muss vorsorgen. Susanne Ebrecht<br />

Genau wie Tabellen speichert PostgreSQL<br />

auch die Daten von Indexen, die<br />

mit dem B-Tree-Verfahren erzeugt wurden,<br />

immer in 8 kByte großen Pages (solange<br />

die Pagegröße beim Kompilieren<br />

nicht geändert wurde). Die Anzahl an<br />

Pages, die Indexe und Tabellen für sich<br />

in Anspruch nehmen, sowie die Anzahl<br />

der abgelegten Tupel lässt sich einfach<br />

mithilfe der PostgreSQL-internen Tabelle<br />

»pg_class« herausfinden:<br />

SELECT relname, reltuples, relpages<br />

FROM pg_class<br />

WHERE relname LIKE 't\_%';<br />

relname | reltuples | relpages<br />

‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐<br />

t_index | 10000 | 30<br />

t_tabelle | 10000 | 45<br />

Zu sehen ist, dass der Index 30 und<br />

die Tabelle selbst 45 Pages in Anspruch<br />

nimmt. Wird die Anzahl der Pages mit<br />

8 kByte multipliziert, so ergibt das den<br />

tatsächlichen Speicherverbrauch in<br />

kByte. Wenn alle Datensätze einer Tabelle<br />

gelöscht werden sollen, kommt häufig<br />

die Frage auf, was der Unterschied<br />

zwischen »DELETE« und »TRUNCATE«<br />

ist. Tatsächlich gibt es gleich zwei gravierende<br />

Unterschiede: Erstens gibt »DE-<br />

LETE« den Speicherplatz für eine Tabelle<br />

erst nach einem »VACUUM« an das System<br />

zurück – »TRUNCATE« dagegen sofort.<br />

Zweitens: TRUNCATE befreit auch<br />

den Index vom Ballast.<br />

Ein kleines Experiment verdeutlicht das<br />

(Listing 1). Dort ist zu sehen, dass der<br />

Speicherplatz für die Tabelle erst nach<br />

»VACUUM ANALYZE« vollständig an<br />

das System zurückgegeben wurde. Der<br />

Index jedoch beansprucht danach immer<br />

noch 30 Pages für sich. Werden<br />

jetzt wieder 10000 Werte in die Tabelle<br />

eingespielt, legt die Datenbank für den<br />

Index 27 weitere Pages neu an, statt die<br />

vorhandenen 30 auszunutzen. Obwohl<br />

hier lediglich wieder genauso viele Zeilen<br />

eingefügt wie vorher gelöscht wurden,<br />

ist der Index fast doppelt so groß geworden.<br />

»DELETE« plus »VACUUM« reichen<br />

also nicht aus, um<br />

den Indexspeicher<br />

auf das kleinstmögliche<br />

Maß zu<br />

schrumpfen.<br />

»TRUNCATE« gibt<br />

den Speicher sofort<br />

und unverzüglich<br />

zurück an das<br />

System (Listing<br />

2). »TRUNCATE«<br />

hat nicht nur den<br />

Speicherplatz der<br />

Tabelle an das<br />

System zurückgegeben,<br />

sondern<br />

bis auf eine Page<br />

auch den Index<br />

vom Ballast befreit.<br />

Fügt man danach<br />

wie oben wieder 1000 Datensätze<br />

ein, ist der Index wieder so groß wie zu<br />

Anfang – und nicht verdoppelt, wie im<br />

ersten Beispiel.<br />

Minimum ist eine Page<br />

Abbildung 1: So könnte ein B-Baum-Index aussehen.<br />

Aber warum hat Truncate beim Index<br />

eine Page stehen lassen? Die eine Page<br />

wird auch angelegt, wenn auf einer frischen,<br />

leeren Tabelle ein Index erzeugt<br />

wird: Ein Index nimmt immer mindestens<br />

8 kByte in Anspruch. Diese erstePage<br />

enthält wichtige Metainformation. Jeder<br />

Index, egal ob leer oder nicht, braucht<br />

57<br />

58<br />

59<br />

60<br />

61<br />

86 Ausgabe 03-2012 Admin www.admin-magazin.de


PostgreSQL Indexe<br />

Know-How<br />

diese Page. Hier wird festgehalten, wo<br />

sich die Wurzel des Baumes befindet. Der<br />

eigentliche Indexbaum beginnt erst mit<br />

der zweiten Page. Wie sieht ein solcher<br />

B-Baum in PostgreSQL aus? Der B-Baum<br />

ist eine Daten struktur, die schon 1972<br />

von Rudolf Bayer, damals für Boeing tätig,<br />

und Edward M. McCreight entwickelt<br />

wurde. Die Entwickler haben bis heute<br />

nicht verraten, wofür das „B“ steht. Die<br />

Interpretationen gehen von „Balanciert“<br />

über „Bayer“ und „Boeing“ bis hin zu<br />

„Barbara“ (Bayers Frau). Für die Verwendung<br />

zum Speichern von Datenbank-<br />

Indexen warf der B-Baum-Algorithmus<br />

jedoch zunächst einige Fragen auf: Was<br />

ist mit zeitgleichen Zugriffen? Was ist mit<br />

Locking? Wie ist er MVCC-konform zu<br />

implementieren? Wie soll er sich beim<br />

Löschen verhalten? Über diese Themen<br />

haben unter anderem Phillip L. Lehman<br />

und S. Bing Yao sowie Vladimir Lanin<br />

und Dennis Shasha Abhandlungen geschrieben,<br />

die bei der PostgreSQL-Implementierung<br />

Berücksichtigung fanden.<br />

Bei der PostgreSQL-B-Baum-Implementierung<br />

handelt es sich um eine korrekte<br />

Implementierung des Lehman und Yao<br />

High-Concurrency B-Tree Management<br />

Algorithmus sowie einer vereinfachten<br />

Version der Lösch-Logik, die Lanin und<br />

Shasha beschrieben haben.<br />

Einfaches Prinzip<br />

Das Prinzip des B-Baums ist einfach.<br />

Ganz unten befinden sich die Blätter<br />

(Leaves). Sie enthalten neben den indizierten<br />

Datenwerten (in Hex) den Link<br />

zu dem Tupel der zugehörigen Tabelle.<br />

Das obere Ende des Baumes markiert die<br />

Wurzel, in der ebenfalls ein Schlüsselwert<br />

hinterlegt ist. Es kann immer nur<br />

eine Wurzel geben. Die Ebenen zwischen<br />

Wurzel und Blättern enthalten innere<br />

Knoten, die den Baum in Unterbäume<br />

gliedern. Die inneren Knoten enthalten<br />

ebenfalls Schlüsselwerte, anhand derer<br />

der weitere Weg zu erkennen ist. Alle<br />

Schlüsselwerte, die kleiner als der Schlüssel<br />

der Wurzel sind, befinden sich auf der<br />

linken Seite des Baumes, alle anderen auf<br />

der rechten Seite. Abbildung 1 zeigt wie<br />

ein B-Baum aussehen könnte.<br />

Wie viele Einträge auf eine Page passen,<br />

hängt von den indizierten Datensätzen<br />

ab. Bei einem Index über eine einzelne<br />

Integer-Spalte können durchaus mehrere<br />

Hundert auf eine Page passen. Der implementierte<br />

Algorithmus sieht jedoch vor,<br />

dass mindestens drei Einträge auf die<br />

Leave Pages passen müssen. PostgreSQL<br />

kann die Funktionalität nicht sicherstellen,<br />

wenn die Datensätze größer als 1/​3<br />

der Pagegröße sind. Um leere Pages in der<br />

Mitte zu vermeiden, muss eine linke Page<br />

immer mindestens zwei Datensätze enthalten.<br />

Wird der vorletzte Dateneintrag<br />

entfernt, sorgt das nächste »VACUUM«<br />

für eine Umsortierung.<br />

Wurzelspaltung<br />

Lehman und Yao sind von uniquen Indexen<br />

ausgegangen. Aber nicht alle Indexe<br />

sind unique. Ein Wert kann in einem<br />

Index mehrfach vorkommen. Es können<br />

mehrere Pages Einträge für den gleichen<br />

Wert haben. PostgreSQL hat daher die<br />

Lehman-Yao-Formel Schlüssel < Wert<br />


Know-How<br />

PostgreSQL Indexe<br />

Wurzel, und die inneren Knoten werden<br />

bei ihrer Erzeugung maximal bis 70 Prozent<br />

gefüllt, die Blätter per Default zu 90<br />

Prozent. Der maximale initiale Füllfaktor<br />

der Blätter lässt sich für jeden Index einstellen:<br />

CREATE INDEX … ON … WITH (FILLFACTOR = U<br />

Wert); ALTER INDEX … SET (FILLFACTOR = U<br />

Wert);<br />

Das passiert beim Löschen<br />

Werden Datensätze aus der Tabelle gelöscht<br />

oder geändert, so werden die alten<br />

Daten erst im Index und dann in der<br />

Tabelle für tot erklärt. Genauso wie bei<br />

Tabellen werden die Tupel erst nach einem<br />

»VACUUM« entfernt. Wird auf diese<br />

Weise eine komplette Index-Page geleert,<br />

so entfernt »VACUUM« den Link vom inneren<br />

Knoten beziehungsweise der Wurzel,<br />

ändert den Höchstwert der linken<br />

Nachbarin auf den ersten Eintrag der<br />

rechten Nachbarin und erzählt ihr, wer<br />

ihre neue rechte Nachbarin ist. Danach<br />

setzt es den Schlüssel im Knoten auf den<br />

neuen Höchstwert der Nachbarin und<br />

erzählt auch noch der rechten Nachbarin,<br />

wer ihre neue linke Nachbarin ist.<br />

Abbildung 3 zeigt, wie der Index aus<br />

Abbildung 2 nach Löschen der Sieben<br />

und nach Ausführung von »VACUUM«<br />

aussehen könnte.<br />

Die gelöschte Indexpage kann aus verschiedenen<br />

MVCC-Gründen nicht sofort<br />

wiederverwendet werden. Daneben muss<br />

für die Wiederverwendung der Page auch<br />

erst einmal sichergestellt sein, dass die<br />

Werte auch aus der Tabelle entfernt wurden.<br />

Egal, ob in der Mitte oder rechts<br />

Listing 3: Page-Details<br />

01 SELECT blkno, type, live_items, dead_items, free_<br />

size,<br />

02 btpo_prev, btpo_next, btpo<br />

03 FROM bt_page_stats('hunderttausender_index',3);<br />

04 <br />

05 ‐[ RECORD 1 ]‐‐‐‐<br />

06 blkno | 3<br />

07 type | i<br />

08 live_items | 285<br />

09 dead_items | 0<br />

10 free_size | 2456<br />

11 btpo_prev | 0<br />

12 btpo_next | 289<br />

13 btpo | 1<br />

außen Werte dazukommen, ein einzelnes<br />

»VACUUM« reicht nicht aus, damit die<br />

Page wiederverwendet wird. Stattdessen<br />

werden bei Bedarf neue Pages alloziert.<br />

Erst nach einem zweiten »VACUUM« wird<br />

auch die gelöschte Page wieder mit eingebunden.<br />

Da die Rechts-außen-Page niemals gelöscht<br />

wird, wird ein Index-Baum nie<br />

kleiner. Stattdessen führen Pages, die<br />

nach »VACUUM« nicht sofort wieder genutzt<br />

werden und viele Pages, die geteilt<br />

werden mussten, dazu, dass sich der Index<br />

aufblähen kann. Gerade bei Tabellen<br />

in denen viele Änderungen passieren,<br />

kann er schnell wachsen und viel ungenutzten<br />

Speicherplatz beinhalten.<br />

Zur Demonstration wird eine Tabelle mit<br />

zehntausend Datensätzen angelegt und<br />

eine Spalte mit drei Indexen versehen.<br />

Einer mit Default-Fillfactor (90 Prozent)<br />

einer mit Fillfactor 100 und einer mit<br />

Fillfactor 50.<br />

relname | relpages | reltuples<br />

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐<br />

t_tabelle | 45 | 10000<br />

index_ff_50 | 52 | 10000<br />

index_ff_100 | 27 | 10000<br />

index_ff_default | 30 | 10000<br />

Anschließend werden diverse »DELETE«,<br />

»UPDATE« und »INSERT« und zwischendurch<br />

immer wieder »VACUUM« auf der<br />

Tabelle ausgeführt:<br />

relname | relpages | reltuples<br />

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐<br />

t_tabelle | 87 | 19457<br />

index_ff_50 | 125 | 19457<br />

index_ff_100 | 88 | 19457<br />

index_ff_default | 71 | 19457<br />

Die Tabelle enthält jetzt fast doppelt so<br />

viele Datensätze wie vorher. Sie nimmt<br />

etwas weniger als das Doppelte an Speicherplatz<br />

ein. Der fünfzigprozentige-Index<br />

dagegen ist ungefähr um das 2,4-Fache<br />

und der hundertprozentige fast um<br />

das Dreifache angewachsen. Der Default-<br />

Index nimmt jetzt 2,3-mal so viel Platz<br />

ein. Jeder der Indexe beansprucht jetzt<br />

schon mehr Speicherplatz als eigentlich<br />

nötig wäre. Die Indexe haben begonnen,<br />

aus dem Ruder zu laufen. Je stärker dieser<br />

Effekt ist, desto ineffektiver wird der<br />

Index.<br />

Um Werte anhand des Index zu finden,<br />

aber auch um die Stelle zu finden, wo<br />

eingefügt, geändert oder gelöscht werden<br />

soll, muss der Index-Baum ab der<br />

Abbildung 3: So könnte der Index aus Abbildung 2<br />

nach Löschen der Sieben und Vaccum aussehen.<br />

Wurzel nach den entsprechenden Blättern<br />

suchen. Indexe müssen nicht unique<br />

sein. Es können viele Pages den gleichen<br />

Wert enthalten. Jede Page, die den Wert<br />

enthält, muss eingesehen werden. Eine<br />

Vielzahl von Pages zu durchlaufen, die<br />

immer nur zur Hälfte gefüllt sind, ist<br />

weniger effektiv als gut gefüllte Pages<br />

zu durchsuchen. Das Wachstum von<br />

Indexen sollte daher im Auge behalten<br />

werden. Wenn das Verhältnis zwischen<br />

Wachstum des Indexes und Wachstum<br />

der Tabelle aus dem Ruder läuft, empfiehlt<br />

es sich zu reagieren.<br />

Reorganisieren ohne Lock<br />

Natürlich könnte der Index einfach gelöscht<br />

und neu erstellt werden, aber<br />

»CREATE INDEX« lockt die Tabelle<br />

und kann lange dauern. Daneben gilt,<br />

während »CREATE INDEX« läuft, müssen<br />

Schreibzugriffe auf die Tabelle<br />

warten. Eine weitere Möglichkeit wäre<br />

»REINDEX«. Aber auch »REINDEX«<br />

blockiert Schreibzugriffe. Eine weitaus<br />

bessere Lösung bietet das Feature<br />

»CREATE INDEX CONCURRENTLY«. Es<br />

können zwar nicht mehrere solcher Pozesse<br />

zeitgleich laufen, sondern immer<br />

nur einer pro Tabelle, aber dafür wird<br />

nichts gelockt, und es kann auf der Tabelle<br />

weiterhin geschrieben werden. Zum<br />

Reorganisieren des Index legt man ihn<br />

mit »CREATE INDEX CONCURRENTLY«<br />

nochmal mit anderem Namen an. Anschließend<br />

kann der entartete Index mit<br />

»DROP INDEX« gelöscht werden, wonach<br />

auch der alte Name wieder für den neuen<br />

88 Ausgabe 03-2012 Admin www.admin-magazin.de


PostgreSQL Indexe<br />

Know-How<br />

Index benutzt werden kann: »ALTER<br />

INDEX name_neu_angelegter RENAME<br />

TO name_alter«.<br />

Bereinigt man die Indexe aus dem vorherigen<br />

Beispiel auf diese Weise, wird ein<br />

ziemlicher Unterschied erkennbar:<br />

relname | relpages | reltuples<br />

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐<br />

t_tabelle | 87 | 19457<br />

index_ff_50 | 99 | 19457<br />

index_ff_100 | 50 | 19457<br />

index_ff_default | 56 | 19457<br />

Es ist einiges an Speicherplatz frei geworden<br />

und die Indexe können erstmal wieder<br />

eine Zeitlang vor sich hin wachsen.<br />

Ist zu erwarten, dass viele Daten mit<br />

Werten dazukommen, die in der Mitte<br />

des Indexes angesiedelt werden, so ist<br />

es sinnvoll, einen kleineren Fillfactor<br />

zu verwenden, da dann Pages nicht so<br />

schnell geteilt werden. Ein Fillfactor von<br />

100 Prozent ist nur dann sinnvoll, wenn<br />

wirklich sichergestellt werden kann, dass<br />

nicht in der Mitte eingefügt wird, sondern<br />

immer nur linear rechts.<br />

Tiefe Einblicke<br />

Mithilfe des PostgreSQL-Contrib-Moduls<br />

»pageinspect« lässt sich tiefer und genauer<br />

in die Indexpages schauen. Nach<br />

der Installation kann das Modul in PostgreSQL<br />

9.1 mit :<br />

CREATE EXTENSION pageinspect;<br />

eingespielt werden. In älteren PostgreSQL-Versionen<br />

stellen die Co ntrib-<br />

Module nach der Installation eine SQL-<br />

Datei zur Verfügung, die hochgeladen<br />

werden muss.<br />

Um nicht nur Nullen in der Metapage zu<br />

sehen, wird ein Blick in die Metapage eines<br />

Indexes über eine Integer-Spalte mit<br />

110 000 Datensätzen geworfen:<br />

SELECT root, level FROM bt_metap(U<br />

'hunderttausender_index');<br />

‐[ RECORD 1 ]‐‐‐‐‐<br />

root | 290<br />

level | 2<br />

Die Spalte »level« gibt an, wie tief der<br />

Baum ist. Der Beispielbaum hat also eine<br />

Tiefe von 3 (Ebene 0, 1 und 2). Die Spalte<br />

»root« gibt an, in welcher Pagenummer<br />

sich die Wurzel befindet. Sie befindet<br />

sich in Page 290. Die Metapage ist Page<br />

0, die erste Page des Baumes ist Page 1.<br />

Anhand der Statistik von Page 290 lässt<br />

sich noch mehr herausfinden (Listing<br />

3): In »blkno« ist die Pagenummer 290<br />

gespeichert. Der »type« gibt an, ob es<br />

eine Root- (Wurzel-) oder eine Leave-<br />

Page (Blattpage) oder eine Page zwischen<br />

Wurzel- und Blattebene ist. Die Ebenen<br />

dazwischen bekommen die Abkürzung<br />

»i« für innerer Knoten. Page 290 hat Typ<br />

»r« für Root. Mit »live«- beziehungsweise<br />

»dead‐items« wird angegeben, wie viele<br />

lebende oder tote Einträge die Page enthält.<br />

Die Page enthält also zwei Einträge<br />

und aus »free_size« geht hervor, dass<br />

noch 8116 Byte in der Page frei sind. Die<br />

Abkürzung »btpo« steht für B-Tree-Position.<br />

In der Spalte »btpo« ist angegeben,<br />

auf welcher Ebene sich die Page befindet.<br />

Sie ist auf Ebene 2, also auf der höchsten<br />

Ebene. In »btpo_prev« steht, welche<br />

Page sich links und in »btpo_next« welche<br />

Page sich rechts neben dieser Page<br />

befindet. Der Wert »0« bedeutet hier, es<br />

gibt weder eine linke noch eine rechte<br />

Nachbarin. Da es immer nur genau eine<br />

Rootpage geben sollte, hat sie natürlich<br />

keine Nachbarinnen. Was steht denn in<br />

der Page?<br />

SELECT itemoffset, ctid, data<br />

FROM bt_page_items('hunderttausenderU<br />

_index',290);<br />

itemoffset | ctid | data<br />

‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

1 | (3,1) |<br />

2 | (289,1) | 09 96 01 00 00 00<br />

Der »itemoffset« zählt einfach die Einträge<br />

der Reihe nach durch. Da die Page<br />

eine Rootpage ist, sind die Datenwerte in<br />

»data« Schlüsselwerte. Der erste Wert in<br />

»data« ist leer und der zweite ist umgerechnet<br />

die Zahl 69928. Aus der Spalte<br />

»ctid« (Current Tuple ID) lässt sich entnehmen,<br />

dass alles kleiner gleich 69928<br />

in Page 3 beginnend mit dem ersten Datensatz<br />

und alles größer gleich in Page<br />

289 beginnend beim ersten Datensatz zu<br />

finden ist. Ein Blick in die Statistik von<br />

Page 3 verät noch mehr: Der Typ besagt,<br />

dass Page 3 ein innerer Knoten ist. Die<br />

Page beinhaltet 285 Datensätze, und es<br />

sind noch 2456 Byte frei. Die Page liegt<br />

auf Ebene 1. Ihre rechte Nachbarin ist<br />

Page 289. Da sie eine rechte Nachbarin<br />

hat, ist sie nicht die Wurzel, sondern ein<br />

innerer Knoten. Da sie keine linke Nachbarin<br />

hat und auf Ebene 1 liegt (Ebene 0<br />

sind die Blätter), ist sie die Wurzel des<br />

Unterbaumes ganz links außen. Auch<br />

die einzelnen Einträge lassen sich mit<br />

»pageinspect« einsehen. Die Ausgabe<br />

kann lang sein. Page 3 hat 285 Einträge.<br />

Hier sind die obersten fünf Zeilen aus<br />

Page 3 (Listing 4).<br />

Wo was steht<br />

Da Page 3 links liegt, steht in der ersten<br />

Zeile der Höchstwert. Umgerechnet ist es<br />

der Wert 69928. Aus der ersten Zeile der<br />

Spalte ctid lässt sich entnehmen, dass<br />

dieser Wert, der Wert aus der ersten Datenzeile<br />

von Page 286 ist. Page 286 ist<br />

die links-außen Page des rechten Unterbaumes.<br />

Des Unterbaumes von Page 289.<br />

Der Wert in Zeile 3 ist umgerechnet 367,<br />

der in Zeile 4 ist 733 und der in Zeile 5<br />

ist 1099. Aus Zeile zwei geht hervor, dass<br />

alles kleiner gleich 367 in Page 1 ab der<br />

1. Datenzeile steht. Alles größer gleich<br />

367 aber kleiner gleich 733 lässt sich<br />

auf Page 2 finden, alles zwischen und<br />

einschließlich 733 und 1099 auf Page 4<br />

und so weiter.<br />

Fazit<br />

Das Wachstum eines Index sollte der<br />

Datenbank-Admin in jedem Fall im Auge<br />

behalten. Läuft der Index aus dem Ruder,<br />

empfiehlt es sich, manuell einzugreifen.<br />

Die beste Lösung ist dabei, mit »CREATE<br />

INDEX CONCURRENTLY« einen identischen,<br />

neuen Index mit anderem Namen<br />

zu erstellen. Anschließend kann<br />

der Admin den alten Index löschen und<br />

gegebenenfalls den Namen des neuen<br />

Indexes auf den Namen des alten ändern.<br />

Wer tiefere Einblicke in die Struktur der<br />

B-Baum-Indexe nehmen möchte, dem<br />

hilft dabei das Contrib-Modul »pageinspect«<br />

weiter. (jcb)<br />

n<br />

Listing 4: Einblick mit »pageinspect«<br />

01 SELECT itemoffset, ctid, data<br />

02 FROM bt_page_items('hunderttausender_index',3)<br />

LIMIT 5;<br />

03 itemoffset | ctid | data<br />

04 ‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<br />

05 1 | (286,1) | 09 96 01 00 00 00 00 00<br />

06 2 | (1,1) |<br />

07 3 | (2,1) | 6f 01 00 00 00 00 00 00<br />

08 4 | (4,1) | dd 02 00 00 00 00 00 00<br />

09 5 | (5,1) | 4b 04 00 00 00 00 00 00<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

89


Know-How<br />

Fencing<br />

© kobra78, Fotolia.com<br />

Fencing verhindert Chaos im Cluster<br />

Eingezäunt<br />

Manchmal hilft nur die Keule: Damit defekte Knoten in einem Pacemaker-<br />

Cluster keinen Schaden anrichten, können sie sich gegenseitig ausschalten.<br />

Doch Brutalität alleine ist noch nicht die Lösung, ein paar Feinheiten<br />

sind von <strong>großer</strong> Bedeutung. Martin Loschwitz<br />

Das englische Wort Fence steht für Zaun.<br />

Im Kontext von Hochverfügbarkeitsclustern<br />

bezeichnet es eine Methode, die<br />

es einem Knoten des Clusters erlaubt,<br />

einen anderen Knoten – notfalls gewaltsam<br />

– aus dem Cluster auszugrenzen,<br />

um so zu verhindern, dass gleichzeitiger<br />

Schreibzugriff auf sensible Daten zu<br />

Inkonsistenz führt.<br />

Tut der Cluster, was er soll?<br />

Fencing-Mechanismen sind im Clusterkontext<br />

immer dann wichtig, wenn es<br />

um die Integrität von Daten einerseits<br />

und um die Verfügbarkeit von Diensten<br />

andererseits geht. Fencing hat stets den<br />

Zweck, durch das Entfernen einzelner<br />

Ressourcen oder Knoten aus dem Cluster<br />

die Funktionstüchtigkeit des gesamten<br />

Clusters zu gewährleisten.<br />

Grundsätzlich geht die Software, die in einem<br />

Cluster das Management übernommen<br />

hat – im Beispiel also Pacemaker<br />

– davon aus, dass ihr die Hoheit über alle<br />

Aktionen obliegt, die im Cluster passieren.<br />

Pacemaker nimmt an, dass Befehle<br />

innerhalb des Clusters ausschließlich von<br />

ihm kommen, dass die Kommunikation<br />

der Knoten des Clusters reibungslos funktioniert<br />

und dass sichergestellt ist, dass<br />

die im Cluster konfigurierten Dienste so<br />

funktionieren, wie sie sollen.<br />

Fencing muss in einem Cluster dann aktiv<br />

werden, wenn einer dieser Punkte<br />

nicht mehr erfüllt ist. Wie soll der Clustermanager<br />

beispielsweise mit Knoten<br />

umgehen, die plötzlich von alleine aus<br />

dem Cluster-Verbund verschwinden?<br />

Im Ernstfall wäre es durchaus denkbar,<br />

dass auf dem verschwundenen Knoten<br />

lediglich Pacemaker selbst abgestürzt ist<br />

und sich dort nun noch laufende Ressourcen<br />

tummeln, auf die Pacemaker<br />

aber keinen Einfluss mehr hat. Der auf<br />

dem noch funktionierenden Knoten laufende<br />

Pacemaker kann in diesem Beispiel<br />

seine Vorrechte nur durchsetzen, indem<br />

er den anderen Rechner fenced, sprich<br />

ihn rebootet. Ähnlich verhält es sich mit<br />

Ressourcen, die sich nicht ordnungsgemäß<br />

stoppen lassen: Befiehlt Pacemaker<br />

beispielsweise MySQL, sich auf einem<br />

Knoten zu beenden, erwartet er, dass<br />

MySQL genau das tut. Schlägt diese Aktion<br />

aber fehl, muss Pacemaker davon<br />

ausgehen, dass auf dem jeweils betroffenen<br />

Knoten nunmehr ein MySQL-Zombie<br />

läuft, der unkontrollierbar ist. Auch dann<br />

kann er dem Treiben bloß ein Ende bereiten,<br />

indem er den Rechner gewaltsam<br />

rebootet.<br />

Fencing-Levels<br />

Wie immer gibt es mehrere Wege nach<br />

Rom: Fencing lässt sich in Pacemaker<br />

einerseits auf Ressourcen-Ebene durchführen.<br />

Wenn die eingesetzte Lösung zur<br />

Datenverwaltung diese Option bietet,<br />

dann ist das sogenannte Resource Level<br />

Fencing die sanftere Methode. Sie zielt<br />

darauf ab, dass Pacemaker im Falle eines<br />

Falles lediglich eine bestimmte Ressource<br />

so konfiguriert, dass Datenkorrumpierung<br />

ausgeschlossen ist. In der Praxis<br />

relevant ist hier besonders DRBD, das<br />

Resource Level Fencing in Kooperation<br />

mit Pacemaker beherrscht.<br />

Variante B führt andererseits zum sprichwörtlichen<br />

Tabula Rasa: Node Level Fencing<br />

versetzt einen Pacemaker-Knoten<br />

in die Lage, einen anderen Knoten des<br />

Clusters zu rebooten oder auch einen<br />

kompletten Shutdown herbeizuführen.<br />

Im Cluster-Sprech nennt sich diese Methode<br />

STONITH, die Abkürzung für Shoot<br />

The Other Node In The Head.<br />

Vorbereitungen<br />

Für sämtliche Fencing-Methoden gilt es,<br />

die passenden Vorbereitungen zu treffen.<br />

Was in Sachen Redundanz für den<br />

normalen Pacemaker-Betrieb gilt, gilt<br />

im Fencing-Kontext um so mehr: Die<br />

einzelnen Knoten eines Clusters sollten<br />

90 Ausgabe 03-2012 Admin www.admin-magazin.de


Fencing<br />

Know-How<br />

Abbildung 1: Solange die DRBD-Kommunikation wie hier gezeigt funktioniert, ist alles in Ordnung. Bricht der<br />

Link weg, sind die Secondaries als Outdated zu markieren.<br />

Die Aufgabe des Resource Level Fencings<br />

in diesem Beispiel ist es, dafür zu sorgen,<br />

dass der Secondary-Knoten als »Outdamehrere,<br />

voneinander unabhängige Kommunikationspfade<br />

haben. Kommt DRBD<br />

zum Einsatz, ist das meist kein größeres<br />

Problem: Häufig findet sich in Zwei-<br />

Knoten-Clustern mit DRBD ein eigener<br />

Back-to-Back-Link, über den die DRBD-<br />

Kommunikation läuft. Diese Verbindung<br />

zusammen mit der „normalen“ Verbindung<br />

zur Außenwelt, über die der jeweils<br />

andere Clusterknoten ebenso erreichbar<br />

ist, sorgt für ein zuverlässiges redundantes<br />

Netzwerk-Setup. Denn damit alle<br />

Kommunikationspfade sterben, müsste<br />

einerseits der Switch kaputtgehen, über<br />

den die beiden Knoten kommunizieren.<br />

Und andererseits müsste auch die direkte<br />

Netzwerkverbindung Schaden nehmen,<br />

beispielsweise weil ein Chip auf einer<br />

Netzwerkkarte versagt. Kommunikationspfade<br />

heißen im Pacemaker-Kontext<br />

Ring, folglich ist ein Setup wie das beschriebene<br />

ein Redundant Ring Setup.<br />

Auch wenn kein DRBD zum Einsatz<br />

kommt, sollte es mehr als einen Ring<br />

geben, über den die Clusterknoten miteinander<br />

kommunizieren können. Dabei<br />

sei vor Setups gewarnt, die letztlich<br />

wieder zu einem gemeinsamen Single<br />

Point of Failure führen: Zwei Kommunikationsringe,<br />

die durch denselben Switch<br />

führen, sind Augenwischerei, denn ein<br />

Ausfall des Switches bewirkt dann den<br />

Ausfall beider Kommunikationspfade.<br />

Resource Level Fencing<br />

mit DRBD<br />

DRBD beherrscht wie bereits erwähnt das<br />

Fencing auf Ressourcen-Ebene. Im Falle<br />

eines Falles hat Pacemaker so die Mög-<br />

lichkeit, die DRBD-Resource auf einem<br />

Clusterknoten temporär unbrauchbar zu<br />

machen. Das Feature ist nützlich, um<br />

Pacemaker bei Ausfall des DRBD-Replikationslinks<br />

richtig reagieren zu lassen.<br />

Im Normalfall wird eine DRBD-Ressource<br />

auf dem einen Knoten die Primary‐Rolle<br />

haben und auf dem anderen die Secondary-Rolle.<br />

Solange der Datenaustausch<br />

funktioniert und der Disk-State der Ressource<br />

auf den Knoten »UpToDate« ist<br />

– überprüfen lässt sich das über den Inhalt<br />

von »/proc/drbd« – ist für DRBD die<br />

Welt in Ordnung. Bricht der DRBD-Link<br />

allerdings weg, gerät die Replikationslösung<br />

in Schwierigkeiten. Denn dass der<br />

Secondary-Knoten dann immer weiter<br />

hinterherhinkt, bemerkt er nicht. Ohne<br />

fremden Eingriff wäre es denkbar, dass<br />

zu einem späteren Zeitpunkt der Primary-<br />

Knoten ausfällt, Pacemaker dann einen<br />

Failover durchführt und anschließend mit<br />

den alten Daten des Secondary-Knotens<br />

weiterarbeitet, der sich problemlos in die<br />

Primary-Rolle schalten lässt.<br />

Als veraltet markiert<br />

Listing 1: STONITH-Eintrag<br />

01 primitive stonith_Hostname stonith:external/ipmi \<br />

Abbildung 2: Durch den Eintrag »fencing<br />

resource‐only« und die passenden Fence-Handlers<br />

weiß Pacemaker, wie es DRBD-Ressourcen temporär<br />

unbrauchbar machen kann.<br />

ted« gilt (Abbildung 1). Das »Outdated«-<br />

Flag ist ein eigener Disk-State in DRBD.<br />

Ist es gesetzt, weigert DRBD sich, eine<br />

Ressource in den Primary-Modus zu<br />

schalten. Wenn es im beschriebenen Szenario<br />

mehrere Kommunikationsringe gibt<br />

und einer davon noch funktioniert, kann<br />

Pacemaker das Flag für den betroffenen<br />

Knoten setzen. Die Grundvoraussetzung<br />

dafür ist, dass die Fencing-Funktion in<br />

DRBD aktiviert ist. In DRBD 8.4 geht das,<br />

wenn im »disk { }«-Block einer Ressource<br />

der Parameter »fencing resource‐only;«<br />

gesetzt ist (Abbildung 2). Ferner muss<br />

der »handlers { }«-Abschnitt der Ressource<br />

die folgenden Einträge haben:<br />

fence‐peer "/usr/lib/drbd/U<br />

crm‐fence‐peer.sh";<br />

after‐resync‐target "/usr/lib/drbd/U<br />

crm‐unfence‐peer.sh";<br />

02 params hostname="Hostname" ipaddr="Adresse" userid="Login"<br />

03 passwd="Passwort" interface="lanplus" \<br />

04 op start interval="0" timeout="60" \<br />

05 op stop interval="0" timeout="60" \<br />

06 op monitor start‐delay="0" interval="1200" \<br />

07 meta resource‐stickiness="0" failure‐timeout="180"<br />

Wer die Optionen für sämtliche Ressourcen<br />

aktivieren möchte, fügt die Einträge<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

91


Know-How<br />

Fencing<br />

Abbildung 3: Im Verzeichnis »/usr/lib/stonith/<br />

external« finden sich die Plugins, die Pacemaker für<br />

STONITH verwenden kann.<br />

stattdessen in die jeweiligen Abschnitte<br />

der »common { }«-Section ein, die üblicherweise<br />

in »/etc/drbd.d/global_common.conf«<br />

definiert ist. Erfolgt die Änderung<br />

im laufenden Betrieb, ist ein<br />

»drbdadm adjust all« fällig, nachdem die<br />

neue Konfiguration ihren Weg auf den<br />

anderen Clusterknoten gefunden hat – im<br />

Anschluss ist das Fencing aktiv.<br />

STONITH in Pacemaker<br />

Wer die STONITH-Funktionen von Pacemaker<br />

einsetzen möchte, sollte zunächst<br />

die passende Hardware dafür besitzen.<br />

Nötig ist ein Management-Interface, das<br />

den Zugriff auf eine Maschine auch ohne<br />

funktionierendes Betriebssystem ermöglicht.<br />

Beispiele hierfür sind HPs iLO-<br />

Karten, IBMs RSA oder auch DRAC von<br />

Dell. Alternativ funktioniert mit Pacemaker<br />

jede andere Management-Karte, die<br />

IPMI versteht.<br />

Pacemaker wickelt STONITH-Befehle<br />

über entsprechende Plugins ab (Abbildung<br />

3) und für die oben genannten<br />

Management-Karten steht entweder<br />

ein eigenes Modul oder das generische<br />

IPMI-Plugin zur Verfügung. Die Konfiguration<br />

von STONITH erfolgt dann über<br />

die Cluster-CIB, also die Cluster Information<br />

Base. STONITH-Einträge sind hier<br />

»primitive«-Anweisungen, die allerdings<br />

keinen Resource Agent verwenden, sondern<br />

ein STONITH-Plugin.<br />

Um STONITH per IPMI zu nutzen, sind<br />

ein paar Informationen nötig: Bekannt<br />

sein muss neben den IP-Adressen der Managementkarten<br />

auch der Benutzername<br />

sowie das Passwort für den IPMI-Login.<br />

Wenn diese Daten vorhanden sind, empfiehlt<br />

sich ein <strong>Test</strong> mit »ipmitool«:<br />

ipmitool ‐H Adresse ‐U LoginU<br />

‐a chassis power cycle<br />

Dieser Befehl sollte nach Eingabe des<br />

korrekten Passworts das jeweilige System<br />

dazu bringen, einen Reboot durchzuführen.<br />

Wenn das funktioniert, steht der Integration<br />

von STONITH in Pacemakers<br />

CIB nichts mehr im Wege. Die bisherigen<br />

Teile der HA-Serie gingen jeweils<br />

davon aus, dass STONITH deaktiviert<br />

ist. Verantwortlich hierfür ist der Eintrag<br />

»stonith‐enabled=false« im »Property«-<br />

Abschnitt der CIB. Um STONITH scharf<br />

zu schalten, ist das »false« durch »true«<br />

zu ersetzen – vorher sollten allerdings<br />

die STONITH-Einträge selbst ihren Weg<br />

in die Cluster-Konfiguration finden (Abbildung<br />

4).<br />

Ein STONITH-Eintrag in Pacemaker folgt<br />

der Syntax aus Listing 1.<br />

In jedem Cluster sollten so viele Stonith-<br />

Einträge vorhanden sein, wie es Knoten<br />

gibt, nämlich für jeden Clusterknoten<br />

einen. Ein komplettes Setup für einen<br />

2-Knoten-Cluster aus »alice« und »bob«<br />

könnte so aussehen, wie in Listing 2<br />

gezeigt.<br />

Die »location«-Constraints bewirken im<br />

Beispiel, dass Alice nur Bob und Bob nur<br />

Alice per STONITH neustarten würde.<br />

Das sogenannte Self-Fencing, also das<br />

Szenario, in dem ein Server sich selbst<br />

rebootet, ist so ausgeschlossen.<br />

Wenn diese Einträge ihren Weg in die<br />

CIB gefunden haben und STONITH per<br />

»property«-Eintrag aktiviert ist, steht das<br />

Abbildung 4: Damit STONITH in Pacemaker funktioniert, sollte das property-Flag »stonith‐enabled=true«<br />

gesetzt sein.<br />

Listing 2: STONITH für alice und bob<br />

01 primitive stonith_alice stonith:external/ipmi \<br />

02 params hostname="alice" ipaddr="192.168.122.111"<br />

userid="4STONITHonly" passwd="sehrgeheim" interface="lanplus" \<br />

03 op start interval="0" timeout="60" \<br />

04 op stop interval="0" timeout="60" \<br />

05 op monitor start‐delay="0" interval="1200" \<br />

06 meta resource‐stickiness="0" failure‐timeout="180"<br />

07 <br />

08 primitive stonith_bob stonith:external/ipmi \<br />

09 params hostname="bob" ipaddr="192.168.122.111"<br />

userid="4STONITHonly" passwd="nochvielgeheimer" interface="lanplus" \<br />

10 op start interval="0" timeout="60" \<br />

11 op stop interval="0" timeout="60" \<br />

12 op monitor start‐delay="0" interval="1200" \<br />

13 meta resource‐stickiness="0" failure‐timeout="180"<br />

14 <br />

15 location l_stonith_alice stonith_alice ‐inf: alice<br />

16 location l_stonith_bob stonith_bob ‐inf: bob<br />

92 Ausgabe 03-2012 Admin www.admin-magazin.de


Fencing<br />

Know-How<br />

Feature zur Verfügung. Ein <strong>Test</strong>, der darin<br />

besteht, auf einem der beiden Knoten<br />

Pacemaker per »kill ‐9« ins Jenseits zu<br />

befördern, sollte beispielsweise den sofortigen<br />

Reboot dieses Knotens nach sich<br />

ziehen.<br />

Ein STONITH-Deathmatch<br />

verhindern<br />

STONITH per IPMI setzt freilich eine<br />

funktionierende Netzwerkverbindung<br />

voraus, sodass an dieser Stelle nochmals<br />

darauf hingewiesen sei, dass es in einem<br />

entsprechend konfigurierten Cluster mindestens<br />

zwei voneinander unabhängige<br />

Netzwerkverbindungen geben sollte. Es<br />

empfiehlt sich aber, eine dieser beiden<br />

Verbindungen für STONITH zu nutzen,<br />

und nicht etwa eine unter Umständen<br />

vorhandene dritte Verbindung. Denn<br />

wenn sämtliche Ringe ausgefallen sind,<br />

der STONITH-Link aber noch funktioniert,<br />

würden die beiden Clusterknoten<br />

sich gegenseitig immer und immer wieder<br />

abschießen (STONITH-Deathmatch).<br />

Fazit<br />

STONITH ist in Clustern von <strong>großer</strong> Bedeutung,<br />

um im Falle von Problemen<br />

Ruhe und Ordnung wiederherzustellen.<br />

Das gezeigte Beispiel per IMPI ist der<br />

Klassiker und so mit fast jedem Server<br />

möglich. Allerdings bietet STONITH per<br />

IPMI (oder irgendeiner anderen Methode,<br />

die auf einer aufrechten Netzwerkverbindung<br />

beruht), keinen Schutz in Szenarien,<br />

bei denen sämtliche Kommunikationspfade<br />

zwischen den Knoten eines<br />

Clusters ausfallen. Hier stehen allerdings<br />

noch andere Möglichkeiten zur Verfügung:<br />

Erwähnt sei beispielsweise Sbd,<br />

das einen Knoten dann zum Neustart<br />

bringt, wenn dieser den Zugriff auf sein<br />

<strong>Storage</strong> verliert [1]. Ebenfalls zur Verfügung<br />

steht der meatware-Client [2], der<br />

im Falle eines Falles alle Cluster-Aktionen<br />

anhält und auf Interaktion vom Admin<br />

wartet. Eine sehr brauchbare Übersicht<br />

über die verschiedenen allgemein verfügbaren<br />

STONITH-Mechanismen findet<br />

sich auf [3]. (jcb)<br />

n<br />

Infos<br />

[1] Erläuterungen zu STONITH mit SBD: [http://​<br />

www. linux‐ha. org/ wiki/ SBD_Fencing]<br />

[2] Infos zum Meatware-STONITH-Plugin:<br />

[http:// hg. linux‐ha. org/ glue/ file/​<br />

0a08a469fdc8/ doc/ stonith/ README.​<br />

meatware]<br />

[3] Übersicht über Fencing in Pacemaker:<br />

[http:// www. clusterlabs. org/ doc/ crm_fencing.<br />

html]<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 und<br />

pflegt in seiner Freizeit den Linux-Cluster-Stack<br />

für Debian GNU/​Linux.<br />

Anzeige<br />

Kann eine<br />

Schulungseinrichtung<br />

für mehr als EINEN<br />

Themenbereich<br />

berühmt werden?<br />

Das Linuxhotel ist bekannt für erstklassige Open-Source-Schulungen. In den letzten Jahren kamen Java<br />

und andere Programmiersprachen hinzu - wie immer in Kooperation mit führenden Spezialisten, und in<br />

abgeschiedener, konzentrierter, aber auch ziemlich verspielter Umgebung. Es ist so naheliegend, auch<br />

Entwicklerthemen bei den OpenSource‘lern zu lernen, weil man dort schon immer sehr „unter die<br />

Haube“ guckte und mit viel Freude intensivst arbeitet. Das weiss ein Großteil der deutschen Admins, nur<br />

unter Entwicklern hat's sich noch nicht so ganz herumgesprochen.<br />

Mehr siehe www.linuxhotel.de<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

93


Know-How<br />

Zenoss<br />

© Wannaporn Intryong, 123RF<br />

Einführung in das Open-Source-Monitoring unter Windows<br />

Alles im Blick<br />

Wer Server und die Netzwerkinfrastruktur überwachen will, ist nicht immer auf kostenpflichtige Lösungen angewiesen,<br />

der Open-Source-Bereich hält ebenfalls professionelle Produkte bereit, die kommerzieller Software in<br />

nichts nachstehen. Ein Beispiel dafür ist Zenoss Core. Thomas Joos<br />

Zenoss wird mit Unterstützung des<br />

gleichnamigen Unternehmens entwickelt,<br />

das auch eine kommerzielle Version<br />

anbietet. Die Web-GUI, die das<br />

komplette System verwaltet, baut auf<br />

dem in Python geschriebenen Applikationsserver<br />

Zope auf. Beim Einrichten<br />

der Anwendung hilft ein Assistent. Die<br />

Abbildung 1: Vom Zenoss Core-Server überwachte Dienste in der Übersicht.<br />

eigentliche Überwachung basiert vor allem<br />

auf SNMP. Agenten sind nicht unbedingt<br />

erforderlich. Neben SNMP kann<br />

Zenoss auf Windows-Servern auch WMI<br />

zur Überwachung verwenden.<br />

Zenoss Core steht für interessierte <strong>Test</strong>er<br />

auch als VMware-Appliance zur Verfügung,<br />

die sich bei VMware kostenlos<br />

herunterladen lässt [1]. Die Appliance<br />

stützt sich auf CentOS 5.4 und lässt<br />

sich auch in Windows über VMware<br />

Workstation oder Player einbinden. Bei<br />

einer Neuinstallation des Produkts auf<br />

einem Server, können Administratoren<br />

auf verschiedene Linux-Distributionen<br />

wie Debian, Suse oder Ubuntu setzen.<br />

Auch eine Installation auf Mac OS X ist<br />

möglich. Entsprechende Anleitungen und<br />

Webcasts finden Sie auf der Downloadund<br />

Community-Seite [2].<br />

Zenoss überwacht neben Linux-Servern<br />

aber auch Windows-Server und alle Arten<br />

von Netzwerkgeräten (Abbildung 1).<br />

VMware Virtual Infrastructure (VI3) Management,<br />

Xen Monitoring und Amazon<br />

EC2 lassen sich ebenfalls an den Server<br />

anbinden. Wer sich näher mit dem Produkt<br />

auseinandersetzen will, erhält auf<br />

der Seite der Zenoss Community umfassende<br />

Hilfe, eine Dokumentation und den<br />

aktuellen Installer. Auf derselben Seite<br />

finden sich auch viele Einrichtungsvideos<br />

94 Ausgabe 03-2012 Admin www.admin-magazin.de


Zenoss<br />

Know-How<br />

zum Produkt. Auf der Sourceforge-Seite<br />

des Produkts [3] gibt es ebenfalls die<br />

Download-Dateien und Hilfen.<br />

Zenoss Core über<br />

Assistenten einrichten<br />

Sobald die Software installiert ist oder<br />

die Appliance startet, lässt sich Zenoss<br />

über das Webinterface (Abbildung 2)<br />

einrichten. Die entsprechende Seite ruft<br />

man durch Eingabe von »http://IP-Adresse:8080«<br />

auf. Die IP-Adresse lässt sich<br />

nach dem Start des Linux-Servers ablesen.<br />

Wer die virtuelle Appliance verwendet,<br />

sollte in den Netzwerkeinstellungen<br />

von VMware für die virtuelle Maschine<br />

das Netzwerk auf »Bridged« stellen. In<br />

diesem Fall ruft sich der virtuelle Server<br />

seine IP-Adresse per DHCP ab. Soll eine<br />

statische IP-Adresse hinterlegt werden,<br />

muss der Admin die Einstellungen via<br />

Linux-Shell eingeben.<br />

Der erste Schritt des Einrichtungsassistenten<br />

verlangt nach einem Kennwort für<br />

den Administrator und legt den ersten<br />

Benutzer an, der auf die Software zugreifen<br />

darf. Später sollte jeder Administrator<br />

ein eigenes Konto erhalten. Auf<br />

diese Weise lassen sich Berechtigungen<br />

delegieren, und jeder Administrator kann<br />

seine Oberfläche selbst so einstellen wie<br />

er sie gerne hätte. Außerdem kann so<br />

jeder überwachte Server seinen eigenen<br />

Admin haben, der nur die ihn betreffenden<br />

Nachrichten erhält und Ereignisse<br />

bearbeitet. Anschließend lassen sich weitere<br />

Benutzer anlegen.<br />

Mithilfe des Einrichtungsassistenten<br />

werden zunächst nur der übergeordnete<br />

Administrator und ein erstes Benutzerkonto<br />

eingerichtet. Der Benutzername<br />

des Administrators ist »admin«. Die<br />

Kennwörter lassen sich nachträglich in<br />

der Weboberfläche anpassen. Sobald der<br />

Workflow des Assistenten durchlaufen<br />

ist, meldet Zenoss den Benutzer mit seinem<br />

Konto an. Kenntlich ist das an der<br />

rechten oberen Ecke, über die man sich<br />

auch ausloggen kann.<br />

Auch erste zu überwachende Geräte<br />

lassen sich bereits über den Assistenten<br />

einbinden. Auf der linken Seite gibt man<br />

die IP-Adresse oder den Rechnernamen<br />

ein, auf der rechten Seite wählt man einen<br />

Device-Typ aus. Geräte lassen sich<br />

zudem zu jeder Zeit über das Dashboard<br />

Abbildung 2: Das Einrichten von Zenoss Core ist ein einfacher und geradliniger Prozess.<br />

»Geräte« hinzufügen oder entfernen. Neben<br />

der manuellen Integration besteht die<br />

Möglichkeit, Netzwerkgeräte von Zenoss<br />

automatisch entdecken und einbinden zu<br />

lassen. Aber das lässt sich auch später<br />

noch ausführen.<br />

Zenoss Dashboard im<br />

Überblick<br />

Nach der ersten Einrichtung der Software<br />

und der Anmeldung am System, ist das<br />

Dashboard das zentrale Verwaltungsinstrument<br />

von Zenoss, das nach der Authentifizierung<br />

im Webinterface startet.<br />

Auf der Einsstiegsseite finden sich verschiedene<br />

Portlets genannte Webparts,<br />

die sich an eigene Bedürfnisse anpassen<br />

lassen. Das bewerkstelligt ein Klick auf<br />

das Zahnrad in der rechten oberen Ecke<br />

eines Portlets. Er führt zu den Einstellungen,<br />

auch lässt sich so das Portlet von der<br />

Startseite entfernen.<br />

Weitere Portlets lassen sich über den Link<br />

»Add Portlet« im Hauptfenster integrieren<br />

und wie gewünscht anordnen. Die<br />

Oberfläche speichert für jeden Benutzer<br />

individuelle Einstellungen, sodass sich<br />

jeder Administrator seine eigene Oberfläche<br />

einrichten kann.<br />

Abbildung 3: Ein Blick auf die Eventverwaltung in Zenoss.<br />

Beim Überwachen spielt der Menü bereich<br />

»Events« eine wichtige Rolle. Hier<br />

laufen die einzelnen Ereignisse und Fehlermeldungen<br />

der überwachten Geräte<br />

auf. Die Meldungen lassen sich auch in<br />

CSV-Dateien exportieren. Events können<br />

als gelöst markiert oder geschlossen werden,<br />

auch lassen sich eigene Events hinzufügen<br />

(Abbildung 3).<br />

Eine zweite wichtige Seite nennt sich »Infrastructure«.<br />

Sie zeigt alle Geräte, die Zenoss<br />

aktuell überwacht, die überwachten<br />

Dienste und weitere Informationen. Hier<br />

lassen sich auch neue Geräte hinzufügen<br />

und Probleme der einzelnen Geräte<br />

anzeigen. Klickt man hier auf ein Gerät,<br />

lassen sich weitere Einstellungen vornehmen,<br />

und es kommen detaillierte Informationen<br />

zu den überwachten Diensten<br />

zum Vorschein. Der linke Bereich zeigt<br />

die verschiedenen Geräteklassen an, die<br />

überwacht werden. Die Klassifizierung<br />

ist vor allem in großem Umgebungen<br />

sehr hilfreich, um sortierte Listen zu<br />

erhalten.<br />

Nachdem ein Gerät hinzugefügt wurde,<br />

kann es einige Minuten dauern, bis Zenoss<br />

es anzeigt. Über den Bereich »Reports«<br />

im Dashboard lassen sich Berichte und<br />

Inventarlisten erstellen. So kann man<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

95


Know-How<br />

Zenoss<br />

auf diese Weise zum Beispiel<br />

zentral die CPU-Verwendung<br />

und den Arbeitsspeicherverbrauch<br />

aller überwachten Geräte<br />

beobachten. Die Option<br />

»Advanced« legt fest, welche<br />

Benutzer die verschiedenen<br />

Portlets nutzen dürfen, konfiguriert<br />

den SMTP-Server für<br />

den Nachrichtenversand bei<br />

Problemen und verwaltet die<br />

Benutzer. Für jeden Bereich<br />

findet sich auf der linken Seite<br />

ein Menüpunkt, der die verschiedenen<br />

Einrichtungsoptionen startet.<br />

Über »Advanced | Daemons« erreicht man<br />

die verschiedenen Dienste von Zenoss<br />

und startet sie im Bedarfsfall.<br />

Sobald man sich etwas mit Zenoss beschäftigt,<br />

wird klar, dass die Einarbeitung<br />

und die Anbindung von Geräten einfacher<br />

von der Hand geht als bei anderen<br />

Open-Source-Lösungen wie OpenNMS<br />

oder Nagios. Die Software lässt sich<br />

leichter bedienen, und die Weboberfläche<br />

macht einen aufgeräumten und durchdachten<br />

Eindruck. Dennoch bietet das<br />

System viele Möglichkeiten, vor deren<br />

Beherrschung es allerdings die Dokumentation<br />

durchzuarbeiten gilt.<br />

Zenoss an das E-Mail-<br />

System abinden<br />

Zenoss kann nicht nur Ereignisse der<br />

überwachten Server in der Weboberfläche<br />

anzeigen (Abbildung 6), sondern<br />

auch per E-Mail darüber informieren. Ist<br />

Zenoss in das Netzwerk eingebunden,<br />

sollte man so schnell wie möglich das<br />

E-Mail-System integrieren. Zenoss muss<br />

dazu nicht unbedingt Zugriff auf einen<br />

internen E-Mail-Server haben, es lässt<br />

sich auch direkt an einen Provider im Internet<br />

koppeln. Die entsprechenden Einstellungen<br />

enthält der Bereich »Advanced<br />

| Settings« im Dashboard. Unter »SMTP<br />

Host« muss die IP-Adresse oder der Name<br />

eines Mail-Servers eingetragen werden.<br />

Die nächsten Feldern nehmen einen<br />

Anmeldenamen und das Kennwort für<br />

das Konto auf, über das Zenoss E-Mails<br />

versenden soll (Abbildung 4). Auch die<br />

Absendeadresse legt man hier fest. Wichtig<br />

sind oft auch der Port und die Verwendung<br />

von TLS, das vor allem Provider<br />

im Internet immer häufiger einsetzen.<br />

Abbildung 4: Über diesen Dialog bindet der Administrator Zenoss an das E-Mail-<br />

System an, über das Zenoss auch das <strong>ADMIN</strong>-Passwort verschickt.<br />

Die Anbindung an das E-Mail-System ist<br />

auch deshalb wichtig, weil neue Administratoren<br />

von Zenoss automatisch ein<br />

Kennwort zugewiesen und per E-Mail<br />

zugeschickt bekommen.<br />

Benutzerverwaltung in<br />

Zenoss<br />

Die Benutzerverwaltung findet sich im<br />

Bereich »Advanced | Users«. Hier lassen<br />

sich neue Benutzer anlegen, die Kennwörter<br />

anpassen und die Rechte für<br />

Administratoren setzen (Abbildung 5).<br />

Daneben kann man Gruppen bilden, um<br />

bestimmten Administratoren gemeinsame<br />

Rechte zuzuteilen. Um einen neuen<br />

Benutzer anzulegen, klickt man auf das<br />

das Zahnradsymbol und wählt »Add New<br />

User«. Das Fenster ist recht einfach: Benutzernamen<br />

und eine E-Mail-Adresse<br />

angeben und auf »OK« klicken reicht.<br />

Für weitergehende Einstellungen führt<br />

ein Klick auf den angelegten Benutzer<br />

Abbildung 5: Hier lassen sich die Zenoss-Benutzer verwalten.<br />

zu einer Detail-Ansicht. Hier<br />

kann man Rollen festlegen<br />

und ihnen die Benutzer<br />

Gruppen zuordnen. Eine Ausnahme<br />

bilden Administratoren:<br />

Ihr Kennwort generiert<br />

das System automatisch nach<br />

einem Klick auf die Schaltfläche<br />

»Reset Password«. Der Administrator<br />

erhält eine E-Mail<br />

mit dem Kennwort zugestellt.<br />

Daher ist es wichtig, dass man<br />

bereits frühzeitig die E-Mail-<br />

Einstellungen konfiguriert.<br />

Änderungen in der Benutzerverwaltung<br />

muss der Ausführende im unteren Bereich<br />

durch das Kennwort seines eigenen<br />

Kontos bestätigen. Erst dann lassen sich<br />

die Änderungen speichern.<br />

Wer möchte, kann später für jedes überwachte<br />

Gerät einen Administrator festlegen.<br />

Wurde das entsprechende Gerät<br />

angebunden, klickt man dafür im Bereich<br />

»Infrastructure« auf dessen Link<br />

und wählt in der Detailansicht des Geräts<br />

die Option »Administration« aus. In<br />

der Mitte des Fensters lassen sich dann<br />

die Benutzer auswählen, die das System<br />

überwachen sollen.<br />

Zusätzlich lassen sich für einzelne Benutzer<br />

auch Alerting Rules definieren,<br />

die regeln, unter welchen Umständen<br />

der Benutzer eine Information erhalten<br />

soll. Die Einstellungen finden sich über<br />

den Link »Alerting Rules« in den Einstellungen<br />

der einzelnen Benutzer auf der<br />

linken Seite. Will man eine neue Regel<br />

anlegen, muss zunächst ein Name dafür<br />

96 Ausgabe 03-2012 Admin www.admin-magazin.de


Zenoss<br />

Know-How<br />

festgelegt werden. Anschließend konfiguriert<br />

man im Detail, was Zenoss tun soll,<br />

wenn ein bestimmtes Gerät nicht mehr<br />

funktioniert. Die Dokumentation enthält<br />

dazu ausführliche Informationen.<br />

Geräte und Server an<br />

Zenoss anbinden<br />

Hat man die grundlegenden Einstellungen<br />

von Zenoss vorgenommen, lassen sich<br />

weitere Geräte und Server in das Überwachungssystem<br />

aufnehmen. Die entsprechenden<br />

Einstellungen nimmt man über<br />

die »Infrastructure«-Sektion vor. Das Fenster<br />

stellt bereits alle überwachten Geräte<br />

dar, und im linken Bereich finden sich die<br />

verschiedenen Geräteklassen. Klickt man<br />

auf ein Gerät, erhält man weiterführende<br />

Informationen. Via »Add a single Device«<br />

oder »Add Multiple Devices« lassen sich<br />

weitere Geräte hinzufügen. Dabei kann<br />

man mittels »Device Class« wählen, zu<br />

welcher Gruppe das Gerät gehören soll.<br />

Wer auf »More« klickt, kann weitere optionale<br />

Einstellungen vornehmen. Ein<br />

Klick auf »Add« fügt dagegen das neue<br />

Gerät hinzu. Das wird im oberen Bereich<br />

bestätigt.<br />

Der Link »Information« öffnet den Log-<br />

Bereich. Hier lassen sich die einzelnen<br />

Schritte mitverfolgen, die Zenoss beim<br />

Hinzufügen eines Geräts absolviert.<br />

Wenn die Aufgabe erfolgreich abgeschlossen<br />

ist, überwacht Zenoss das entsprechende<br />

Gerät. Dann ergibt ein Klick auf<br />

das Gerät weiterführende Informationen.<br />

Bei jedem überwachten Gerät oder Server<br />

findet sich auf der rechten Seite eine Zusammenfassung<br />

von Fehlern, Warnungen<br />

und Informationen zum entsprechenden<br />

Gerät. Auch hier öffnet ein Klick eine detaillierte<br />

Ansicht mit den Ereignissen.<br />

Die Detailansicht eines Geräts ist im linken<br />

Bereich weiter untergliedert. »Events«<br />

zeigt Fehler und Warnungen des Systems,<br />

»Components« listet die überwachten<br />

Dienste und deren Funktion. Sollen einzelne<br />

Dienste nicht überwacht werden,<br />

kann man sie hier entfernen. »Software«<br />

präsentiert die installierten Anwendungen<br />

auf dem Server, »Graphs« zeigt einen<br />

Performance-Graphen.<br />

SNMP- und WMI-Überwachung<br />

unter Windows<br />

Zenoss benutzt zur Überwachung hauptsächlich<br />

SNMP oder WMI. Windows-<br />

Server brauchen daher zunächst keinen<br />

Agenten, müssen aber SNMP und WMI<br />

konfigurieren. Dafür muss auf dem zu<br />

überwachenden Server der SNMP-Dienst<br />

laufen. Das lässt sich am schnellsten über<br />

»services.msc« auf dem Windows-Server<br />

überprüfen. Läuft der SNMP-Dienst nicht,<br />

muss er über den Server-Manager erst als<br />

Feature installiert werden.<br />

Um den Server an Zenoss anzubinden,<br />

ruft man die Eigenschaften des Dienstes<br />

auf und wechselt auf die Registerkarte<br />

Sicherheit. Hier klickt man auf »Akzeptierte<br />

Communitynamen«, dann auf<br />

»Hinzufügen« und wählt »NUR LESEN«<br />

aus. Als Communitynamen kommt zum<br />

Beispiel »public« infrage. Anschließend<br />

ist noch die Option »SNMP‐Pakete von<br />

jedem Host annehmen« zu aktivieren. Alternativ<br />

kann man hier auch explizit die<br />

IP-Adresse des Zenoss-Servers angeben.<br />

Nun muss der SNMP-Verkehr noch die<br />

Firewall passieren dürfen. Dazu ruft man<br />

die Firewall-Einstellungen auf dem Server<br />

in der Systemsteuerung auf und klickt auf<br />

»Ein Programm oder Feature durch die<br />

Windows‐Firewall zulassen«. Damit ist<br />

sicherzustellen, dass der SNMP-Dienst<br />

im Netzwerk kommunizieren darf.<br />

Alternative OpenNMS<br />

Neben Nagios [4] und Zenoss Core gibt es<br />

im Bereich der Netzwerkverwaltung noch<br />

die Open-Source-Anwendung OpenNMS.<br />

Auch OpenNMS (Abbildung 7)baut auf<br />

SNMP auf und lässt sich über eine Weboberfläche<br />

verwalten. OpenNMS ist in<br />

Java geschrieben. Daten speichert das<br />

System in einer PostgreSQL-Datenbank.<br />

OpenNMS lässt sich auch auf Windows-<br />

Servern installieren. Überwachen kann<br />

das System Daten auf Basis von SNMP,<br />

JMX, HTTP, WMI, JDBC und dem<br />

NSClient-Client [5]. OpenNMS hat teilweise<br />

noch Probleme mit Version 1.7<br />

von Java. Daher sollte man die Version<br />

1.6 installieren, wenn das Starten von<br />

OpenNMS einen Fehler erzeugt. Neben<br />

Java benötigt OpenNMS noch PostgreSQL<br />

für Windows [6]. Zusätzlich ist auf dem<br />

Server die JICMP [7] notwendig. Hierbei<br />

handelt es sich um eine Schnittstelle zwischen<br />

Java und dem ICMP-Protokoll. Die<br />

Anmeldung an der Weboberfläche erfolgt<br />

Abbildung 6: Ereignisanzeige für überwachte Geräte – hier werden eventuelle Störungen im Detail aufgelistet.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

97


Know-How<br />

Zenoss<br />

Abbildung 7: Netzwerküberwachung mit der OpenNMS-Software.<br />

mit dem Benutzernamen »admin« und<br />

dem Kennwort »admin«. Anschließend<br />

definiert man über »Add« im Bereich »Include«<br />

IP-Ranges, in denen der Server<br />

nach zu überwachenden Geräten fahnden<br />

soll. Administratoren, die ein iPhone<br />

einsetzen, können sich die OpenNMS-<br />

App he runterladen und installieren. Ausführliche<br />

Anleitungen zu Installation und<br />

Betrieb finden sich auf der Seite [8].<br />

Alternative Nagios<br />

Ein bekanntes Überwachungsprogramm<br />

und eine weitere Alternative zu Zenoss<br />

Core ist Nagios [9]. Nagios kommt aus<br />

der Linux-Welt, kann aber problemlos<br />

auch Windows-Server überwachen. Einem<br />

Nagios-Server arbeiten Agenten auf<br />

den überwachten Servern zu. Sie senden<br />

Statusmeldungen des Servers, also<br />

Informationen über Dienste, CPU- und<br />

Arbeitsspeichernutzung, Festplattenplatz<br />

oder Fehler in den Ereignisanzeigen an<br />

den Nagios-Server. Zusätzlich führt der<br />

Agent Befehle und Abfragen aus, die Administratoren<br />

auf dem Server festlegen.<br />

Der Server bereitet die einzelnen Statusmeldungen<br />

auf und zeigt sie in einem<br />

Webinterface an. Der Server kann zusätzlich<br />

Administratoren oder auch andere<br />

Anwender, die besondere Aufgaben<br />

haben, via E-Mail oder SMS benachrichtigen.<br />

Außerdem können Administratoren<br />

über die Weboberfläche selbst jederzeit<br />

den Status der einzelnen überwachten<br />

Server oder aller Serverdienste im Netzwerk<br />

anzeigen lassen.<br />

Der Betrieb einer Nagios-Lösung ist keine<br />

einfache Angelegenheit. Generell sind die<br />

Installation des linuxbasierten Systems<br />

und auch die Einrichtung der Überwachung<br />

recht komplex. Nagios ist Open<br />

Source und steht vollkommen kostenlos<br />

zur Verfügung. Diese Version trägt die Bezeichnung<br />

Nagios Core [10]. Die kommerzielle<br />

Version Nagios XI [11] enthält eine<br />

leistungsfähigere Weboberfläche, mit der<br />

sich Server sehr leicht anbinden lassen,<br />

auch ohne Linux-Kenntnisse. Dafür stehen<br />

verschiedene Assistenten zur Verfügung,<br />

die dabei helfen, die Überwachung<br />

genau zu steuern. Mit dieser Lösung können<br />

Unternehmen bis zu sieben Server<br />

vollkommen kostenlos überwachen. Die<br />

Entwickler bieten zur Lösung auch einige<br />

Webcasts und Whitepapers an. Der Webcast<br />

[12] erklärt die Einbindung in das<br />

Netzwerk, die Anleitungen unter [13]<br />

zeigen die Installation als virtueller Server.<br />

Zusätzlich zum Nagios-Server muss<br />

man auf den zu überwachenden Servern<br />

den kostenlosen Nagios-Agenten installieren<br />

und mit dem Nagios-Server verbinden.<br />

Der NSClient++ steht auf der<br />

Seite [14] zur Verfügung. Der Agent ist<br />

für Nagios Core und Nagios XI identisch.<br />

Für Linux-Server gibt es einen eigenen<br />

Client zum Download. Dieser findet sich<br />

auf der Seite [15]. (jcb)<br />

n<br />

Infos<br />

[1] Zenoss-Appliance: [http:// www. vmware.​<br />

com/ appliances/ directory/ 155743]<br />

[2] Zenoss-Community: [http:// community.​<br />

zenoss. org]<br />

[3] Zenoss bei Sourceforge: [http://​<br />

sourceforge. net/ projects/ zenoss/]<br />

[4] Nagios: [http:// www. nagios. org]<br />

[5] NSClient: [http:// www. nsclient. org/ nscp]<br />

[6] PostgreSQL für Windows: [http:// www.​<br />

postgresql. org/ download/ windows]<br />

[7] JICMP: [http:// sourceforge. net/ projects/​<br />

opennms/ files/ JICMP]<br />

[8] OpenNMS-Wiki: [http:// www. opennms. org/​<br />

wiki/ Main_Page]<br />

[9] Nagios: [http:// www. nagios. org]<br />

[10] Nagios Core: [http:// www. nagios. com/​<br />

products/ nagioscore]<br />

[11] Nagios XI: [http:// library. nagios. com/​<br />

library/ products/ nagiosxi]<br />

[12] Nagios Webcast: [http:// library. nagios.​<br />

com/ library/ products/ nagiosxi/ tutorials/ 2<br />

36‐running‐the‐xi‐virtual‐machine‐using‐v<br />

mware‐player]<br />

[13] Nagios VM: [http:// assets. nagios. com/​<br />

downloads/ nagiosxi/ docs/ XI_Virtual_Machine_Notes.<br />

pdf]<br />

[14] NSC-Client: [http:// www. nsclient. org/​<br />

nscp/ downloads]<br />

[15] Linux-Client: [http:// assets. nagios.​<br />

com/ downloads/ nagiosxi/ agents/​<br />

linux‐nrpe‐agent. tar. gzhttp:// assets.​<br />

nagios. com/ downloads/ nagiosxi/ agents/​<br />

linux‐nrpe‐agent. tar. gz]<br />

98 Ausgabe 03-2012 Admin www.admin-magazin.de


JETZT<br />

MiT dVd!<br />

MAGAZIN<br />

SondErAkTion<br />

<strong>Test</strong>en 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 />

diE 7LinkS ouTdoor-iP-kAMErA „iPC-710ir“<br />

Einsendeschluss ist der 15.06.2012


Basics<br />

E-Mail-Archivierung<br />

© Angela Luchianiuc, 123RF<br />

Anforderungen und Strategien zur E-Mail-Archivierung<br />

Auf ewig<br />

Wer hätte gedacht, dass eine uralte Vorschrift im digitalen Leben plötzlich<br />

dermaßen Schwierigkeiten macht? Seit jeher müssen sogenannte Handelsbriefe<br />

archiviert werden. Doch mit der Verbreitung von E-Mails in Unternehmen<br />

kam Streit auf: Können E-Mails „Handelsbriefe“ sein? Peer Heinlein<br />

Während eine juristische Ansicht ganz<br />

pragmatisch auf den Sinn und Zweck<br />

der E-Mails abstellt und zu dem Schluss<br />

kommt, dass diese schon ihrem Inhalt<br />

nach Handelsbriefe seien und darum unter<br />

die gleichen Archivierungsvorschriften<br />

fallen würden, lehnten andere Ansichten<br />

derartige Verpflichtungen rundherum ab:<br />

Schon mangels „Verkörperung“ wären<br />

E-Mails ja noch nicht mal als Urkunde im<br />

rechtlichen Sinne geeignet und könnten<br />

darum als solches auch kein (Handels-)<br />

Brief sein.<br />

Doch seit 1. Januar 2006 ist der Streit entschieden.<br />

Durch eine Gesetzesänderung<br />

hat der Gesetzgeber klargestellt: E-Mails<br />

sind „elektronische Handelsbriefe“ und<br />

müssen folgerichtig archiviert werden.<br />

Der Streit hat ein Ende, doch die Probleme<br />

haben damit erst begonnen. Bislang<br />

galt bei E-Mails nämlich das Prinzip ex<br />

und hopp. Aber nun? Wie archiviert man<br />

eine derartige unkontrollierte, unsortierte<br />

Datenflut? Diese heikle Mischung<br />

aus echten E-Mails, reinem Geplänkel,<br />

privaten Nachrichten und totalem Datenmüll?<br />

Wie soll das getrennt sein und<br />

vor allem: wohin eigentlich mit dem<br />

ganzen Speichervolumen? Wer soll das<br />

alles bezahlen? Und überhaupt: Welche<br />

Anforderungen werden an ein solches<br />

Archiv gestellt?<br />

Unbequeme Fragen,<br />

unbequeme Antworten<br />

Viele Fragen, auf die es auch durchaus<br />

Antworten gibt. Die jedoch sind oft so<br />

unbequem, dass sie viele nicht wahrhaben<br />

wollen.<br />

Beginnen wir also mit einer guten Nachricht:<br />

Interne E-Mails zwischen den Mitarbeitern<br />

eines Unternehmens sind mangels<br />

Außenwirkung per se keine Handelsbriefe<br />

und müssen nicht archiviert<br />

werden. Lediglich ein- und ausgehende<br />

E-Mails sind also betroffen, das reduziert<br />

das Volumen schon einmal erheblich.<br />

Nun zu den schlechten Nachrichten:<br />

Handelsbriefe sind mitnichten nur Dinge<br />

wie Rechnungen oder andere Dokumente<br />

mit Zahlen, Steuersätzen oder Finanzdetails.<br />

Stattdessen umfasst der Begriff des<br />

Handelsbriefs alle Briefe, die zur Vorbereitung,<br />

Durchführung, Abwicklung oder<br />

Rückabwicklung eines Handelsgeschäfts<br />

dienen. Oder anders ausgedrückt: Abgesehen<br />

von Spam und privaten Nachrichten<br />

ist im Zweifel so gut wie jede<br />

E-Mail, die das Unternehmen empfängt<br />

oder versendet, ein elektronischer Handelsbrief.<br />

Da kommt ein gehöriges Volumen<br />

zusammen – insbesondere, weil<br />

normale Handelsbriefe sechs Jahre, steuerlich<br />

relevante Daten zehn Jahre aufzubewahren<br />

sind. An dieser Stelle hört die<br />

handelsrechtliche E-Mail-Archivierung<br />

bereits auf, Spaß zu machen.<br />

Duplizieren reicht nicht<br />

Natürlich haben auch viele Unternehmen<br />

ein eigenes egoistisches Interesse daran,<br />

aus- und eingehende E-Mails zu archivieren,<br />

beispielsweise um im Streitfall später<br />

gewisse Umstände beweisen oder zumindest<br />

besser nachvollziehen zu können.<br />

Mancher Admin und Geschäftsführer<br />

richten ihre Mailrelays seit jeher so ein,<br />

dass von allen E-Mails stets eine Kopie in<br />

ein Archiv-Postfach geschrieben wird, das<br />

im Idealfall tageweise weggesichert wird.<br />

Unter Postfix ist das über Parameter wie<br />

»always_bcc« oder »sender_bcc_maps«<br />

problemlos möglich. Doch wer sich mit<br />

100 Ausgabe 03-2012 Admin www.admin-magazin.de


E-Mail-Archivierung<br />

Basics<br />

dieser simplen Lösung auf der sicheren<br />

Seite wähnt, der irrt gewaltig.<br />

Auch Ausdrucken geht nicht<br />

Ebenso auf dem Holzweg befindet sich,<br />

wer eingegangene E-Mails als PDF speichert<br />

oder kurzerhand ausdruckt und<br />

abheftet, auch wenn Letzteres leider immer<br />

wieder fälschlicherweise empfohlen<br />

wird. Denn Sinn und Zweck der handelsrechtlichen<br />

E-Mail-Archivierung ist<br />

die sogenannte „elektronische Betriebsprüfung“<br />

eines Unternehmens – das Finanzamt<br />

lässt grüßen. Und diese elektronische<br />

Betriebsprüfung erfordert den<br />

Zugriff auf die fraglichen Daten im originären<br />

ursprünglichen Format. Doch auch<br />

Banken (Kredite!) oder Wirtschaftsprüfer<br />

(Börsenaufsicht!) können sich für das<br />

Mail-Archiv eines Unternehmens interessieren<br />

– denn wenn dieses fehlt, ist dem<br />

jeweiligen Unternehmen ein erhebliches<br />

wirtschaftliches Risiko zu attestieren.<br />

Dabei muss ausgeschlossen werden, dass<br />

ein Unternehmen sein Archiv nachträglich<br />

frisieren und fälschen könnte, um<br />

Unstimmigkeiten in der Buchhaltung, Bilanzierung<br />

oder Steuererklärung zu verdecken.<br />

Notwendig ist darum ein sogenanntes<br />

„revisionssicheres Archiv“, das<br />

keinerlei nachträgliche Datenänderung<br />

unbemerkt bleiben lässt. Gerade auch der<br />

Geschäftsführung und den Administratoren<br />

muss die Manipulation unmöglich<br />

Zeitstempel-Dienstleister<br />

Internet<br />

Firewall<br />

Spamschutz<br />

Mail-Archiv<br />

Firewall<br />

Groupware<br />

Abbildung 1: Nach dem Signaturgesetz akkreditierte<br />

Dienstleister verkaufen signierte NTP-Zeitstempel,<br />

um die Zeit beweissicher speichern zu können.<br />

gemacht worden sein. Einfache Dateien<br />

oder eine Datenbank mit bloßem Passwortschutz<br />

scheiden demnach aus. Selbst<br />

die direkte Manipulation der Datenbank<br />

oder einzelner Sektoren des Datenträgers<br />

dürfen nicht zum Erfolg führen. Das Unternehmen<br />

muss von seinem eigenen Archiv<br />

letztendlich „ausgesperrt“ werden.<br />

Das klingt zunächst absurd und unmöglich<br />

wenn man bedenkt, dass fähige<br />

Administratoren mindestens beim direkten<br />

Zugriff auf die Festplattensektoren<br />

alles mögliche frei verändern können.<br />

Doch in der Praxis haben sich zwei<br />

Lösungen herauskristallisiert, die eine<br />

solche Revisionssicherheit grundsätzlich<br />

ermöglichen.<br />

Ist Worm-Firmware wirklich<br />

sicher?<br />

Da wäre zunächst das sogenannte WORM<br />

(Write Once, Read Many). Eigentlich ein<br />

SAN mit normalen Festplatten, doch einmal<br />

dorthin geschriebene Daten können<br />

nachträglich nicht mehr geändert werden.<br />

Das SAN verhält sich also so, wie<br />

der gute alte CD-Rohling. Dass die Festplattenbereiche<br />

nicht noch einmal beschrieben<br />

werden können, dafür sorgt<br />

die spezielle Firmware im Controller des<br />

SANs, die entsprechende Schreibzugriffe<br />

unterbindet. Das klingt zunächst nach einer<br />

recht einfachen und (wenn man einmal<br />

von den durchaus beachtenswerten<br />

Kosten absieht) sehr charmanten Lösung.<br />

Doch stellt sich dem kritischen Betrachter<br />

oder möglicherweise später einmal beauftragten<br />

Gutachter natürlich die Frage, ob<br />

es tatsächlich unmöglich war, die Daten<br />

zu ändern. War die Firmware fehlerfrei?<br />

Hat jemand die Firmware vielleicht durch<br />

eine eigene gepatchte Version ersetzen<br />

können, die Schreibzugriffe erlaubte?<br />

Letzteres erscheint bei genauerem Hinsehen<br />

nicht so absurd, als dass man es<br />

pauschal ausschließen könnte. Schließlich<br />

zeigt die Praxis, wie schnell findige<br />

Hacker Systeme öffnen konnten, obwohl<br />

MAGAZIN<br />

ONLINE<br />

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

Newsletter<br />

informativ<br />

kompakt<br />

Nachrichten rund um die<br />

Themen Linux und Open<br />

Source lesen Sie täglich<br />

im Newsletter des Linux-<br />

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

tagesaktuell<br />

www.admin-magazin.de<br />

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

Admin<br />

Ausgabe 03-2012<br />

101


Basics<br />

E-Mail-Archivierung<br />

deren Hersteller alles daran setzten, dass<br />

genau das nicht passiert: Egal, ob X-Box,<br />

Playstation, iPhones oder andere Systeme<br />

mit embedded Firmware – es dauerte oft<br />

nicht lange bis zum Root-Exploit oder<br />

dem Release alternativer Firmware. Und<br />

nun soll genau das bei einem WORM eines<br />

beliebigen Herstellers nicht passieren<br />

können? Das klingt nach dem Prinzip<br />

Hoffnung – und es drängen sich zu recht<br />

Zweifel auf.<br />

Andere gehen stattdessen den mathematischen<br />

Weg und sorgen über kryptographische<br />

Signaturen dafür, dass Veränderungen<br />

nicht unbemerkt bleiben können.<br />

Derartige Verfahren mit asymetrischen<br />

Schlüsseln sind schließlich seit langer<br />

Zeit erprobt, bekannt und vielfach mathematisch<br />

überprüft. Dabei werden<br />

kryptographisch signierte NTP-Zeitstempel<br />

eingesetzt, um dokumentieren<br />

zu können, wann sich die archivierten<br />

Daten in diesem Zustand befanden – andernfalls<br />

könnte bei manipulierten Daten<br />

kurzerhand neu signiert werden, um die<br />

Veränderung zu vertuschen.<br />

Doch auch das reicht nicht aus, um echte<br />

Revisionssicherheit zu erreichen. Der<br />

Administrator könnte kurzerhand auch<br />

die Systemzeit ändern, um rückdatierte<br />

Zeitstempel zu erhalten. Also muss bei<br />

diesen Verfahren auf externe Zeitstempelgeber<br />

zurückgegriffen werden – im<br />

Idealfall auf darauf spezialisierte Dienstleister,<br />

die nach dem Signatur-Gesetz<br />

akkreditiert und damit erstmal per juristischer<br />

Definition vertrauenswürdig sind<br />

(Abbildung 1).<br />

Signierte Zeitstempel<br />

sichern ein Jahrzehnt<br />

Doch auch dann ist dieser Weg für die<br />

Hersteller entsprechender Archiv-Lösungen<br />

durchaus steinig: Wenn derart<br />

signierte Daten mehr als ein Jahrzehnt<br />

gesichert werden sollen, muss ein Weg<br />

gefunden werden, die im Laufe der Zeit<br />

unsicher gewordenen Mechanismen (wie<br />

beispielsweise jüngst MD5) auszutauschen<br />

und den Archiv-Bestand mit besseren<br />

Verfahren nachzusignieren.<br />

Nur so kann garantiert werden, dass die<br />

Daten zu keinem Zeitpunkt mit einem<br />

als unsicher geltenden Algorithmus geschützt<br />

waren. Anders, als es vielleicht<br />

zunächst den Anschein hat, ist ein revisionssicheres<br />

Mail-Archiv selbst für findige<br />

Linux-Bastler keineswegs schnell im Eigenbau<br />

umzusetzen.<br />

Für fast jede Groupwarelösung sind<br />

entsprechende Archiv-Systeme auf dem<br />

Markt verfügbar – von Drittanbietern,<br />

aber auch von den Herstellern selbst.<br />

Kein Wunder, ist eine in der Groupware<br />

selbst integrierte Lösung schließlich eine<br />

hervorragende Form der Kundenbindung.<br />

Da bei einem Wechsel der Groupwarelösung<br />

des jeweilige Archiv nicht mitgenommen<br />

werden kann, müssten selbst<br />

abgeschaltete Softwarelösungen mit ihrem<br />

Archiv noch zehn weitere Jahre betriebsbereit<br />

gehalten werden. Das nimmt<br />

dem Admin die Freude am Wechsel.<br />

Archiv als Relay<br />

Sinnvoll ist es darum, auf Archiv-Systeme<br />

zu setzen, die als Mailrelay zwischen<br />

Anti-Spam-Schutz und dem IMAP- oder<br />

Groupware-Server platziert sind. Da diese<br />

Relays die Mails einfach per SMTP empfangen<br />

und weiterrouten, sind sie vom<br />

eigentlichen Backend unabhängig und<br />

können auch bei einem Strategiewechsel<br />

bequem weiter betrieben werden.<br />

Die Einführung eines Mail-Archivs ist<br />

noch mit weiteren Fallen gespickt: Es ist<br />

zwar relativ einfach, alle erwünschten<br />

Nachrichten zu archivieren, doch viel beachtenswerter<br />

ist die Frage, wie alle unerwünschten<br />

Nachrichten nicht archiviert<br />

werden! Angesichts der großen Datenvolumen<br />

und langen Speicherzeit sollte<br />

man sich auf das tatsächlich Notwendige<br />

beschränken. Bei der Platzierung nach<br />

einem gut funktionierenden Spamfilter,<br />

der alle unerwünschten E-Mails gleich<br />

von vornherein blockt und ablehnt, lässt<br />

sich zumindest dieses Thema recht einfach<br />

abhaken.<br />

Doch die in vielen Unternehmen offiziell<br />

erlaubte oder praktisch geduldete<br />

private E-Mail-Nutzung wirft angesichts<br />

der strengen deutschen Datenschutzvorschriften<br />

die Frage auf, wie verhindert<br />

werden kann, dass private E-Mails ebenfalls<br />

im Langzeit-Archiv gespeichert werden,<br />

wo sie nichts zu suchen haben. Inhaltserkennung<br />

durch Software fällt aus<br />

und auch die Möglichkeit, nicht zu archivierende<br />

E-Mails durch entsprechende<br />

Markierungen im Betreff („[PRIVAT]“)<br />

zu filtern, dürfte mindestens bei empfangenen<br />

E-Mails in der Praxis wenig<br />

zuverlässig funktionieren.<br />

Private Nutzung erlauben?<br />

Nicht wenige Unternehmen sehen sich<br />

spätestens mit der Einführung eines<br />

Archivs dem Dilemma ausgesetzt, die<br />

ausgeuferte private Nutzung wieder zu<br />

verbieten, was verständlicherweise bei<br />

Arbeitnehmern zunächst auf wenig Gegenliebe<br />

stößt. Andererseits ist die private<br />

E-Mail-Nutzung auch an anderen Stellen<br />

für Unternehmen äußerst risikobehaftet<br />

zu sehen – bei Langzeit-Backups oder<br />

dem Zugriff Dritter auf das Postfach von<br />

kranken oder ausgeschiedenen Mitarbeitern,<br />

sind datenschutzrechtliche Verstöße<br />

schnell an der Tagesordnung. Doch auch<br />

Spam-Quarantäne und Logfile-Auswertung<br />

können bei privater Nutzung bereits<br />

äußerst heikel sein. Am Ende handelt es<br />

sich bei all diesen Fragen jedoch um ein<br />

ganz generelles Problem, das durch die<br />

Einführung eines Mail-Archivs lediglich<br />

deutlich zum Vorschein kommt.<br />

E-Mail-Archivierung ist demnach eher<br />

ein organisatorisches, denn ein technisches<br />

Problem. Die Praxis zeigt, dass<br />

Unternehmen, die bereits vor Beginn der<br />

E-Mail-Archivierung alle praktischen und<br />

rechtlichen Fragen des Datenschutzes,<br />

der privaten Nutzung oder der Anti-<br />

Spam-Taktik sauber geklärt haben, die<br />

Einführung eines Mail-Archivs schnell<br />

und sauber realisieren können, ohne<br />

sich dabei mit größeren Schwierigkeiten<br />

konfrontiert zu sehen. Wer hier jedoch<br />

mit organisatorischen Fehlern und rechtlichem<br />

Wildwuchs zu kämpfen hat, kann<br />

gut und gerne ein Jahr Projektlaufzeit<br />

(mit vielen Diskussionen) einrechnen,<br />

wenn zwischendurch noch Nutzungsvereinbarungen<br />

entworfen, Betriebsoder<br />

Personalrat einbezogen und die<br />

Geschäftsführung beruhigt oder auch<br />

sensibilisiert werden muss (jcb) n<br />

Der Autor<br />

Diplom-Jurist Peer Heinlein stellt mit seinem Unternehmen<br />

„Heinlein Support“ die Verfügbarkeit<br />

geschäftskritischer Linux-Infrastrukturen sicher.<br />

Er ist seit 1992 auf Maildienste spezialisiert,<br />

schrieb das „Postfix-Buch“ und ist unter anderem<br />

für Mailserver und Archivierung vieler ISPs,<br />

Rechenzentren und Unternehmen verantwortlich.<br />

102 Ausgabe 03-2012 Admin www.admin-magazin.de


Alles zum ThemA<br />

Android<br />

Neu!<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

DigisuB: nur 39,90 € im Jahr (12 PDFs)<br />

ihre Vorteile:<br />

+ News und Artikel<br />

fast 1 Woche vor<br />

dem Kiosk lesen!<br />

+ Hardware und App-<br />

<strong>Test</strong>s, Workshops,<br />

Tipps und Tricks für<br />

Anfänger und Profis!<br />

+ Nutzbar auf Smartphone,<br />

Tablet oder<br />

Notebook/PC!<br />

Jetzt bestellen unter:<br />

www.android–user.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Basics<br />

Mobaxterm<br />

© Alesia Tsvetaeva, 123RF<br />

Mobaxterm bringt Linux-Feeling auf den Windows-Desktop<br />

Mit fremden Federn<br />

Das Tool Mobaxterm ist ein portabler X-Server für Windows, der samt mitgelieferter Unix/​Posix-Tools in einer einzigen<br />

portablen Exe-Datei steckt. Mobaxterm bringt damit im Handumdrehen eine Linux-Kommandozeile samt<br />

Tools auf den Windows-Desktop. Dieser Beitrag nimmt die kostenlose Version unter die Lupe und demonstriert,<br />

was der Admin mit der Software anfangen kann. Thomas Drilling<br />

Ein X-Server, der unter Windows läuft,<br />

ist prinzipiell für zwei Nutzer-Gruppen<br />

interessant. Linux-Admins, die freiwillig<br />

oder per Dienstanweisung gelegentlich<br />

auch Windows-Rechner administrieren<br />

müssen, steht mit dem portablen X-Server<br />

für Windows eine komfortable Möglichkeit<br />

zur Verfügung, den Windows-<br />

Rechner wie gewohnt mit Linux Befehlen<br />

zu steuern. Bei Bedarf ist außerdem ein<br />

Remote-Login auf einen Linux-Rechner,<br />

sowie das Verwenden populärer Remote-<br />

Tools möglich. Auf der anderen Seite profitieren<br />

umsteigewillige Windows-User<br />

von der eleganten Möglichkeit, vorab<br />

unter Windows mit Linux-Befehlen, der<br />

Linux-Syntax und der Linux-Verzeichnisstruktur<br />

experimentieren zu können.<br />

Da Mobaxterm zudem als portable One-<br />

Click-EXE ausgelegt ist, entfällt ein aufwendiges<br />

Installieren.<br />

Funktionsumfang<br />

Die Funktionalität von Mobaxterm geht<br />

weit über das Zurverfügungstellen eines<br />

erweiterten Linux-Terminals unter Windows<br />

hinaus, denn die EXE-Datei enthält<br />

neben essenziellen Unix-Kommandos<br />

einen Session-Manager, der alle wichtigen<br />

Remote Netzwerk-Tools wie SH,<br />

RDP, VNC, Telnet, Rlogin, FTP, SFTP<br />

oder XDMCP verfügbar macht. Das X11-<br />

Forwarding läuft über OpenSSH. Das Gesamtkunstwerk<br />

Mobaxterm besteht also<br />

aus dem eingebetteten X-Server, dem<br />

Tabbing fähigen Terminal mit eingebetteten<br />

Unix-Kommandos wie »ls«, »cd«,<br />

»cat«, »sed«, »grep«, »awk«, »rsync«,<br />

»wget« und dem Session-Manager. Die<br />

Free-Version 4.4 steht auf der Projektseite<br />

[1] zum Download [2] zur Verfügung.<br />

Außerdem gibt es eine Professional Version<br />

für 49 Euro mit einem erweiterten<br />

Funktionsumfang.<br />

Die Feature-Liste findet sich unter [3];<br />

von dort führt auch ein Link zur Bestell-<br />

Seite. Die Terminal-Funktion unterstützt<br />

Antialiasing, Schriften und Makros. Darüber<br />

hinaus besitzt Mobaxterm eine<br />

Plugin-Schnittstelle. Die Projektseite hält<br />

unter [4] eine stattliche Anzahl Plugins<br />

bereit. Außerdem gibt es eine Reihe von<br />

Third-Party-Tools. Das Zip-Archiv der<br />

Free-Version enthält außerdem »Mobaxterm_Personal_Customizer_4.4«,<br />

mit dem<br />

sich das Tool im Erscheinungsbild an die<br />

eigenen Wünschen anpassen lässt.<br />

Beim ersten Start von Mobaxterm wird<br />

möglicherweise eine aktive Windows<br />

Firewall Alarm schlagen. Mit »Zulassen«<br />

legt der Admin dazu eine passende Regel<br />

fest. Danach zeigt Mobaxterm eine lokale<br />

Terminal-Sitzung, samt einiger Hinweise<br />

zur Default-Konfiguration. Der Prompt<br />

gehorcht in typischer Unix-Manier in der<br />

Form »Benutzer.Hostname«. Sämtliche<br />

unter Windows verfügbaren Laufwerke<br />

– auch verbundene Netzwerklaufwerke<br />

– stehen Unix-typisch als Mountpunkt<br />

unter /»drives« zur Verfügung.<br />

Außerdem informiert der Startbildschirm<br />

über die aktuelle IP-Adresse und die<br />

Display-Nummer der Sitzung. Das zugehörige<br />

»Banner« mit genau jener Info<br />

lässt sich im »Mobaxterm_Personal_Customizer«<br />

der Pro-Version individuell konfigurieren.<br />

Da Mobaxterm auf Cygwin<br />

basiert, steht dem experimentierfreudigen<br />

Windows-Admin eine komplette<br />

Linux-Verzeichnisstruktur zur Verfügung<br />

(Abbildung 1).<br />

Die GUI ist übersichtlich und wirft<br />

keine Fragen auf, auch wenn die Werk-<br />

104 Ausgabe 03-2012 Admin www.admin-magazin.de


Mobaxterm<br />

Basics<br />

Abbildung 1: Mobaxterm stellt unter Windows eine komplette Unix-Umgebung mit klassischer<br />

Verzeichnishierarchie zur Verfügung.<br />

System- und Office-Tools, inklusive einem<br />

eigenen Editor »MobaTextEditor«<br />

und einem eingebauten Bildbetrachter<br />

»MobaPictureViewer«. Selbige stehen<br />

analog auch im Menü »Tools« zur Verfügung.<br />

So zeigt etwa »List Running<br />

Processes« die aktuelle Prozessliste in<br />

Unix-typischer Topdarstellung in einem<br />

neuen Terminal-Reiter. In der Default-<br />

Einstellung läuft der X Serverm zu erkennen<br />

am grünen »X‐Server«-Symbol rechts<br />

oben. Sollte er nicht laufen, lässt er sich<br />

jederzeit im Menü »X server« starten.<br />

Nützlich für einen schellen Security-<br />

Check ist auch das Tool »List open network<br />

ports« (Abbildung 3).<br />

Auf der Kommandozeile kann der Admin<br />

jetzt nach Herzenslust in Unix-Manier<br />

im Windows-Dateisystem navigieren,<br />

Dateioperationen ausführen, Textdateien<br />

anzeigen oder bearbeiten oder andere<br />

Unix-Tools aufrufen.<br />

SFTP mit GUI<br />

zeugleiste etwas überladen wirkt und die<br />

schicken Icons in Spiegeloptik den Linux-<br />

Admin kaum beeindrucken werden. Im<br />

Menü »Settings / Configuration« stehen<br />

im Bereich »Display Settings« auch weitere<br />

Skins zur Verfügung.<br />

SSH-Agenten<br />

Wichtiger sind hingegen die Einstellungen<br />

in den Bereichen »Terminal Setting«<br />

(Fonts, Charset), »X server settings« (Font<br />

Server) und vor allem »SSH ‐Settings«.<br />

Hier lässt sich zum Beispiel ein grafischer<br />

SSH-Browser aktivieren oder das<br />

X11-Forwarding beziehungsweise SSH<br />

Agent Forwarding aktivieren. Außerdem<br />

lässt sich hier der SSH Agent in Betrieb<br />

nehmen. Im SSH Agent kann der Admin<br />

seinen privaten Schlüssel hinterlegen,<br />

damit sich der SSH Agent selbsttätig um<br />

die Authentifizierung kümmert. Der SSH<br />

Agent behält den Key bis zum Abmelden<br />

vom lokalen Client im Speicher, und der<br />

Admin muss nur einmal seine Passphrase<br />

eingeben. Die meisten Linux-Distributionen<br />

starten den SSH-Agent automatisch<br />

im Hintergrund.<br />

Mit »ssh‐add ‐i« listet SSH Agent die momentan<br />

gespeicherten Schlüssel. Hier<br />

vorgenommene Settings erfordern einen<br />

Neustart von Mobaxterm. Links vom<br />

Terminal-Fenster findet sich ein Navigationsbereich<br />

mit zwei Tabs »Sessions«<br />

und »Tools«, Ersterer zum Wechseln<br />

zwischen den offenen Sitzungen, denn<br />

Mobaxterm ist multisessionfähig. Sessions<br />

lassen sich über das Menü »Sessions«<br />

speichern. Überhaupt ist die GUI überaus<br />

wandelbar und kennt je nach Einsatzzweck<br />

eine stattliche Anzahl von Views,<br />

zu finden im gleichnamigen Menü.<br />

Der Reiter »Tools« (Abbildung 2) ermöglicht<br />

einen schnellen Zugriff auf eine<br />

Reihe von für Admins eher obsoleten<br />

Terminal-Games, sowie einige nützliche<br />

Baut der Admin eine SSH-Sitzung auf,<br />

wenn die Option »Activate the graphical<br />

SSH browser when connected« aktiviert<br />

ist, steht im Navigationsbereich im Reiter<br />

»SFTP« der grafische SSH-Browser<br />

zur Verfügung, was der eine oder andere<br />

Administrator möglicherweise als<br />

komfortable Erleichterung begrüßen wird<br />

(Abbildung 4).<br />

Bekanntlich lässt sich mit SSH auch die<br />

X11-Bildschirmausgabe eines entfernt gestarteten<br />

grafischen Unix-Programms auf<br />

ein lokales Display umleiten (X11 Port<br />

Forwarding). SSH tunnelt und verschlüs-<br />

Abbildung 2: Mobaxterm enthält eine Reihe nützlicher Systemwerkzeuge direkt im Menü »Tools«.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

105


Basics<br />

Mobaxterm<br />

Abbildung 3: Das Tool »openports« zeigt auf die Schnelle die auf dem Windows-Host zugänglichen Ports.<br />

selt dazu die übertragenen Bildinhalte<br />

und Eingaben. Voraussetzung auf Serverseite<br />

dafür ist, dass in der Datei »/<br />

etc/ssh/sshd_config« die Option »X11Forwarding<br />

Yes« gesetzt ist. Bei den meisten<br />

Linux-Distributionen ist das Default. Außerdem<br />

muss in den Mobaxterm-Seetings<br />

die Option »Enable X11 Forwarding« gesetzt<br />

sein. Ist beides der Fall, kann sich<br />

der Admin via<br />

ssh ‐XC Benutzername@Server‐Name<br />

am entfernten Server anmelden. Die<br />

Option sorgt »‐X« dafür, dass SSH beim<br />

Verbindungsaufbau sofort die Weiterleitungen<br />

von X11-Daten vorbereitet. Die<br />

Option »‐C« aktiviert das Komprimieren<br />

der übertragenden Bildschirminhalte.<br />

Nach erfolgreichem Login kann der Admin<br />

in Mobaxterm unter Windows ein<br />

beliebiges grafisches X11-Programm auf<br />

dem entfernten Linux-Host starten, dessen<br />

Bildschirminhalte ab sofort ins Windows-Fenster<br />

umgeleitet werden, etwa<br />

Xemacs (Abbildung 5).<br />

Selbstverständlich funktioniert das nur<br />

für „echte“ X11-Tools. Erfahrene Adminstratoren<br />

wissen aber, dass es von der<br />

Sorte leistungsfähiger X-Tools auch bei<br />

modernen Distribution noch jede Menge<br />

gibt. Die Eingabe von »x[Tab]« fördert<br />

eine stattliche Anzahl zutage. Darüber<br />

hinaus steht dem Admin mit Mobaxterm<br />

am Windows-Rechner das gesamte<br />

Repertoire an SSH-Funktionen zur Verfügung,<br />

darunter mit Port-Forwarding<br />

auch eine sichere und ad hoc verfügbare<br />

VPN-Lösung. Diese und andere nützliche<br />

SSH-Tricks beschreibt der <strong>ADMIN</strong>-Artikel<br />

unter [5].<br />

Neben SSH und SSTP erschließt Mobaxterm<br />

dem Admin unter Windows den<br />

komfortablen Zugang zu weiteren Typen<br />

von Remote-Sitzungen, wie Telnet, RSH,<br />

RDP, VNC, FTP und unterstützt, wie es<br />

sich für ein Terminal gehört, auch serielle<br />

Verbindungen. Außerdem kann der<br />

Admin eine DOS-Shell starten. Zum Konfigurieren<br />

und Verwenden der übrigen<br />

Remote-Sitzungs-Typen klickt der Admin<br />

auf »Server / Xdmcp« und kann dann im<br />

Dialog »Session Settings« die verschiedenen<br />

Session-Typen einrichten.<br />

Das X Display Manager Control Protocol<br />

(XCMCP) stellt eine zentrale Funktionalität<br />

der X11-Architektur dar. Das X-Netzwerkprotokoll<br />

ermöglicht zusammen mit<br />

XDMCP den verteilten Betrieb von X-<br />

Server und X Display Manager, wobei<br />

der anfragende X-Server auf dem Client<br />

läuft, in der Regel einem X-Terminal, dem<br />

damit ein Anmeldedienst zur Verfügung<br />

gestellt wird. Der in Mobaxterm mithilfe<br />

von Cygwin portierte X Server unterstützt<br />

daher auch XDMCP. Möchte der Admin<br />

beispielsweise eine VNC-Sitzung zu einem<br />

entfernten VNC-Server starten, genügt<br />

es, im Bereich »VNC« die IP-Adresse<br />

des entfernten VNC-Servers einzugeben;<br />

der Default-VNC-Port ist bereits eingetragen.<br />

Die Abbildung zeigt den komfortablen<br />

Zugriff via VNC auf eine virtuelle<br />

Maschine eines KVM-basierten Hypervisors<br />

(Abbildung 6).<br />

Genauso einfach und schnell gelingt der<br />

Zugriff auf einen entfernten Windows-<br />

Server via RDP oder der Aufbau einer<br />

FTP-Verbindung, etwa zum schnellen<br />

Herunterladen eines CD-ISOs von einen<br />

anonymen FTP-Server. Jeder Sitzungstyp<br />

lässt sich übrigens im Reiter »Sessions«<br />

unter einem beliebigen Namen speichern<br />

und/​oder als Schnellstart-Icon auf dem<br />

Windows-Desktop ablegen.<br />

Unix-Tricks<br />

Selbstverständlich erschließt Mobaxterm<br />

ganz nebenbei auch ein unerschöpfliches<br />

Repertoire an Tricks, die auf so<br />

bewährten Unix-Tools wie »awk«, »sed«,<br />

»grep« und so weiter basieren. Versierten<br />

Linux-Admins steht so ihr vertrautes<br />

Instrumentarium auch unter Windows<br />

zur Verfügung, und Windows-Nutzer<br />

finden bisweilen Anwendungsmöglichkeiten,<br />

zu denen CMD nicht in der Lage<br />

wäre.<br />

Als kleines Beispiel unter Hunderten sei<br />

die Unterstützung von Imagemagick genannt,<br />

eine extrem leistungsfähige kom-<br />

Abbildung 4: Der grafische SFTP-Browser erleichtert das Navigieren beim Remote-Dateitransfer.<br />

106 Ausgabe 03-2012 Admin www.admin-magazin.de


Mobaxterm<br />

Basics<br />

Lokale Partitionen spricht Cygwin unter<br />

»/cygdrive/c«, »/cygdrive/d« und so<br />

weiter an. Windows-Freigaben stehen<br />

unter »//host/share/file« zur Verfügung.<br />

Mobaxterm mappt sämtliche Laufwerksmandozeilenorientierte<br />

Toolsammlung<br />

zur Bildbearbeitung, für die es unter<br />

Windows kein Pendant gibt. Ein typisches<br />

Praxisbeispiel ist das gleichzeitige<br />

Skalieren und Beschneiden einer großen<br />

Anzahl von Fotos mit unterschiedlichen<br />

Ausgangsformaten, etwa für eine Bildergalerie:<br />

cd fotos<br />

mkdir fotos‐normiert<br />

for i in .jpg ; do convert $i ‐resize U<br />

600x350 ‐gravity center crop 480x320+0+0U<br />

+repage fotos‐normiert/$i; done<br />

Version 1.7 auch unter Windows 7 und<br />

Windows Server 2008. Nur sehr alte und<br />

einfache Posix-Programme laufen auch<br />

unter Windows9x.<br />

Cygwin Drives<br />

zugriffe wie beschrieben der Einfachheit<br />

halber nach »/drives«. Mithilfe des per<br />

»startxwin.bat«gestarteten X-Servers<br />

kann Mobaxterm für Windows kompilierte<br />

Linux-Programme lokal ausführen<br />

und Programme, die auf einem Linux-<br />

Rechner im Netz laufen, unter Windows<br />

darstellen. Cygwin macht es ebenfalls<br />

möglich, dass sich Nutzer vom Windows-<br />

Rechner aus via XDMCP direkt auf dem<br />

Linux-Rechner einloggen können. Dazu<br />

nutzt Cygwin das Skript »startxdmcp.<br />

Kern der Funktionalität von Mobaxterm<br />

ist die Cygwin-Kompatibilitätsschicht,<br />

welche auch Cygwin/​X, eine Portierung<br />

des X.Org-Servers auf die Cygwin-<br />

Umgebung enthält. Die in Mobaxterm<br />

enthaltene Cygwin/​X-Version (1.7.5-1)<br />

verwendet allerdings für Cygwin/​X noch<br />

das X.Org-Release 6.8.99. Cygwin [6] ist<br />

eine Tool-Sammlung, die unter Windows<br />

das Look-and-Feel einer Linux/​Unix-Umgebung<br />

zur Verfügung stellt. Dreh- und<br />

Angelpunkt ist dabei die DLL »cygwin1.<br />

dll«, die als Kompatibilitäts-Schicht substanzielle<br />

Linux-API-Aufrufe zur Verfügung<br />

stellt. So ist es mit Cygwin möglich,<br />

Programme für Posix-Systeme wie<br />

Unix, Linux oder BSD nach Windows zu<br />

portieren. Mit Cygwin übersetzte Posix-<br />

Programme laufen in der Regel unter allen<br />

Windows-Versionen ab NT (Windows<br />

2000, Windows XP, Windows Vista, Windows<br />

Server 2003) und seit der Cygwin-<br />

Abbildung 5: Mobaxterm holt dank XDMCP ohne Murren auch grafische X11-Programme auf den Windows-<br />

Desktop.<br />

Jahres-DVD 2011<br />

Jetzt gleich bestellen!<br />

www.admin-magazin.de/DVD2011 oder 089 - 99 34 11 - 00<br />

www.admin-magazin.de<br />

alle artikel des Jahres 2011<br />

■ Artikel zu <strong>Storage</strong>, Backup, Netzwerk,<br />

Monitoring, Virtualisierung u.v.m.<br />

Admin<br />

e14,95<br />

■ Zum Lesen am Bildschirm oder Ausdrucken:<br />

PDF und HTML-Format<br />

■ Search Engine für Artikel-Volltext-Suche<br />

Außerdem auf der DVD:<br />

Bootbares Rettungssystem<br />

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

Netzwerk & Security<br />

Ausgabe 03-2012<br />

107


Basics<br />

Mobaxterm<br />

term unter die Haube schaut, findet dort<br />

allerdings kaum etwas, was er nicht auch<br />

direkt mit den beteiligen Werkzeugen<br />

(Cygwin), sowie den auf Cygwin portierten<br />

Unix-Tools zuwege bringen würde.<br />

Für Mobaxterm spricht, dass Cygwin<br />

zwar im Handumdrehen eine funktionale,<br />

freie Posix-Umgebung für Windows<br />

zur Verfügung stellt, aber kein vernünftiges<br />

Terminal mitbringt. Unter purem Cygwin<br />

könnte der Admin zwar automatisch<br />

einen X-Server starten und dann etwa ein<br />

Xterm verwenden, allerdings mangelt es<br />

dann an vernünftigen Schriften. Mobaxterm<br />

dagegen erlaubt sogar das komfortable<br />

Einbinden eines Font-Servers.<br />

Leicht befremdlich wirkt nur, wie selbstbewusst<br />

der Hersteller Mobatek die gebotenen<br />

Funktionen auf der Projektseite als<br />

eigene Entwicklung darstellt. Alternativ<br />

zu Mobaxterm kann man mittlerweile<br />

auch den Cygwin-Patch „PuTTYcyg“ [7]<br />

für Putty verwenden. (ofr)<br />

n<br />

Abbildung 6: Mobaxterm ermöglicht auch den schnellen grafischen Zugriff auf eine VNC-Session.<br />

bat«. Cygwin ermöglicht sogar das Aufsetzen<br />

eines SSH-Servers als Windows-<br />

Service.<br />

Fazit<br />

Zweifellos ist Mobaxterm ein sehr nützliches<br />

und vielseitiges Tool. Rein funktional<br />

gibt es an der Software nichts auszusetzen,<br />

und potenzielle Windows-Umsteiger,<br />

die sich in vertrauter Umgebung ein Bild<br />

von Linux machen möchten, profitieren<br />

von der einfachen Möglichkeit, ein wenig<br />

Linux-Luft zu schnuppern. Wer Mobax-<br />

Infos<br />

[1] Mobaxterm-Projektseite:<br />

[http:// mobaxterm. mobatek. net/]<br />

[2] Mobaxterm-Download: [http:// mobaxterm.​<br />

mobatek. net/ download‐home‐edition. html]<br />

[3] Featureliste Free- und Pro-Version: [http://​<br />

mobaxterm. mobatek. net/ download. html]<br />

[4] Mobaxterm-Plugins: [http:// mobaxterm.​<br />

mobatek. net/ plugins. html]<br />

[5] Thomas Drilling, SSH-Tricks, <strong>ADMIN</strong> 01/​12:<br />

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

2012/ 01/ SSH‐Tipps‐fuer‐den‐Alltag]<br />

[6] Cygwin: [http:// www. cygwin. com]<br />

[7] Cygwin-Patch für Putty:<br />

[http:// code. google. com/ p/ puttycyg/]<br />

Der Autor<br />

Thomas Drilling ist seit mehr als zehn Jahren<br />

hauptberuflich als freier Journalist und Redakteur<br />

für Wissenschafts- und IT-<strong>Magazin</strong>e tätig. Er<br />

selbst und das Team seines Redaktionsbüros verfassen<br />

regelmäßig Beiträge zu den Themen Open<br />

Source, Linux, Server, IT-Administration und Mac<br />

OSX. Außerdem arbeitet Thomas Drilling als Buchautor<br />

und Verleger, berät als IT-Consultant kleine<br />

und mittlere Unternehmen und hält Vorträge zu<br />

Linux, Open Source und IT-Sicherheit.<br />

Plugins<br />

Mobaxterm preist die Unterstützung von Plugins<br />

an. Dabei handelt es sich meist Unix- und X11-<br />

Tools, die mit Cygwin portiert wurden. Folgende<br />

Plugins finden sich im Lieferumfang.<br />

Emacs: der Kult-Editor für Unix-Admins.<br />

Fontforge: ein leistungsfähiger Font-Editor.<br />

GCC, G++ and development tools: die Komplette<br />

GNU-C(++)-Entwicklungsumgebung.<br />

Gvim: der beliebte Vim, mit GTK-Oberfläche.<br />

MPlayer: einer der leistungsfähigsten Medienplayer<br />

überhaupt, aber per Default ohne GUI.<br />

Perl: die Programmiersprache Perl.<br />

Corkscrew: Das Plugin Corkscrew kann TCP-<br />

Verbindungen über einen HTTP Proxy tunneln.<br />

Connect-Proxy: Das Plugin aus dem gleichnamigen<br />

Debian-Paket ermöglicht ebenfalls das<br />

Tunneln von TCP-Verbindungen via SOCKS oder<br />

HTTPS Proxies.<br />

Tcl/Tk/Expect: stellt eine komplette Tcl/​Tk-<br />

Entwicklungsumgebung zur Verfügung.<br />

Screen: Das Screen-Plugin ist ein Terminal Multiplexer,<br />

der separate Sitzungen auf einem einfachen<br />

zeichenbasierten Terminal zur Verfügung<br />

stellen kann.<br />

Png2Ico: Das Plugin Png2Ico konvertiert PNG-<br />

Bilddateien in Windows Icon Resource Files.<br />

Nedit: Nedit ist ein weiterer X11-Editor.<br />

Midnight Commander: der beliebte Klon des aus<br />

DOS-Zeiten bekannten Norton Commander.<br />

Subversion (SVN): ermöglicht den Zugriff aus<br />

Mobaxterm auf das Subversion-Versionsmanagement.<br />

Git: ermöglicht den Zugriff aus Mobaxterm auf<br />

das Git-Versionsmanagement.<br />

FVWM2: einer der ersten und ältesten Window<br />

Manager für X11.<br />

Xorg (legacy): Das Installieren des „alten“ X11-<br />

Servers (Xorg v1.6.5) ist meistens nur dann notwendig,<br />

wenn es Probleme beim XDMCP-Zugriff<br />

auf eine „alte“ Unix- oder Linux-Workstation<br />

gibt.<br />

DnsUtils: Das Plugin stellt die Linux/​Unix-eigenen<br />

DNS-Utilities (»dig«, »host«, »nslookup«<br />

und »nsupdate«) in Mobaxterm zur Verfügung.<br />

PdKsh: Open-Source-Implementation einer<br />

Korn-Shell.<br />

Exif: Das Kommandozeilentool zeigt in JPG-<br />

Bildern enthaltene Exif-Information.<br />

Lynx: Das Plugin stellt den betagten aber bisweilen<br />

noch nützlichen textbasierten Webbrowser<br />

zur Verfügung.<br />

E2fsProgs: Die E2fs-Utilities erlauben das Erzeugen,<br />

Reparieren, Konfigurieren oder Debuggen<br />

von Ext2/​3/​4-Dateisystemen in Mobaxterm.<br />

108 Ausgabe 03-2012 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


Virtualisierung<br />

vSphere Image Builder<br />

© Artisticco LLC, 123RF<br />

VMware vSphere an aktuelle Hardware anpassen<br />

Maßgeschneidert<br />

VMware vSphere ist nach wie vor die umfangreichste Virtualisierungslösung auf dem Markt. Um vSphere noch<br />

einfacher auf aktuellster Hardware installieren zu können, hat der Hersteller vSphere 5 den Image Builder spendiert<br />

und eine Möglichkeit für die Installation vom USB-Stick geschaffen. Werner Fischer<br />

Der Einsatz aktuellster Hardware erfordert<br />

immer auch die neuesten Treiber.<br />

Das gilt für normale Betriebssysteme wie<br />

Windows oder Linux und auch für Virtualisierungslösungen<br />

wie VMware vSphere.<br />

Im Gegensatz zu Windows und Linux<br />

gibt es Treiber für vSphere aber nicht als<br />

Exe-Datei oder Linux-Paket, sondern nur<br />

in Form von vSphere Installation Bundles<br />

(VIB). Auch zusätzliche Softwarekomponenten<br />

zur Hardwareüberwachung und<br />

‐konfiguration (sogenannte CIM-Provider)<br />

werden von den Hardwareherstellern<br />

als VIBs bereitgestellt.<br />

Bei einem VIB handelt es sich um ein<br />

Ar-Archiv, das neben den eigentlichen<br />

Dateien eine Descriptor-Datei im XML-<br />

Format und eine Signaturdatei enthält<br />

Listing 1: Inhalt eines VIB<br />

01 $ ar ‐tv Adaptec_Inc_bootbank_scsi‐aacraid_5.0.5.1.7.<br />

28700‐1OEM.500.0.0.406165.vib<br />

02 ‐‐‐‐‐‐‐‐‐ 0/0 1356 Jan 1 01:00 1970 descriptor.xml<br />

03 ‐‐‐‐‐‐‐‐‐ 0/0 2122 Jan 1 01:00 1970 sig.pkcs7<br />

04 ‐‐‐‐‐‐‐‐‐ 0/0 53423 Jan 1 01:00 1970 scsi‐aac<br />

(Listing 1). Die Signaturdatei dient zur<br />

Auszeichnung der Akzeptanzebene<br />

(Acceptance Level) (siehe Tabelle 1 „Akteptanzebenen“),<br />

die Administrator für<br />

jeden ESXi-Host vergeben kann, in der<br />

Standardkonfiguration Partner-Supported.<br />

Erfüllt ein VIB diese Vorgabe nicht,<br />

lässt es sich auch nicht installieren. VIBs<br />

mit einer leeren Signaturdatei gelten als<br />

Community-Supported. Für die drei höheren<br />

Levels „Partner Supported“, „VMware<br />

Accepted“ und „VMware Certified“<br />

ist eine entsprechende Signaturdatei<br />

obligatorisch.<br />

VIBs lassen sich entweder nachträglich<br />

auf einem bereits installierten ESXi Host<br />

Tabelle 1: Akzeptanzebenen (Acceptance Levels)<br />

installieren oder schon vor der Installation<br />

mithilfe des VMware vSphere ESXi Image<br />

Builders in ein ESXi Image einpflanzen.<br />

Für die Integration in ein solches Image<br />

muss ein VIB verpackt in einem sogenannten<br />

Offline Bundle bereitstehen. Bei<br />

einem offline Bundle handelt es sich um<br />

eine Zip-Datei, die neben dem VIB noch<br />

weitere Metadaten enthält.<br />

Will man nun ESXi auf ein Volume eines<br />

RAID-Controllers installieren, braucht<br />

der Installer des Installationsmediums einen<br />

passenden Treiber. Für 6 GBit/​s SAS<br />

Adaptec RAID Controller der Serie 6 fehlt<br />

ein solcher Treiber im ESXi Installationsimage<br />

von VMware. Der erforderliche Trei-<br />

Level Beschreibung Support<br />

VMware Certified Höchster Level Durch VMware<br />

VMware Accepted VMware-Partner testet VIB. VMware Durch VMware-Partner<br />

verifiziert die <strong>Test</strong>ergebnisse.<br />

Partner Supported VMware-Partner testet VIB und stellt Durch VMware Partner<br />

dieses bereit.<br />

Community Supported VIB ohne Signatur Keiner<br />

110 Ausgabe 03-2012 Admin www.admin-magazin.de


vSphere Image Builder<br />

Virtualisierung<br />

ber mit der Versionsnummer 5.1.7.28700<br />

steht aber als VMware-Certified signiertes<br />

VIB in einem Offline-Bundle bei VMware<br />

zum Download bereit – somit spricht<br />

nichts gegen eine Integration in ein individuelles<br />

ESXi Image.<br />

Selbst wenn man ESXi auf einem USB-<br />

Stick installiert, bringt die Integration vor<br />

der Installation Vorteile: Bei mehreren<br />

Hosts erspart man sich das manuelle<br />

Nachinstallieren des Treibers auf jeder<br />

Maschine. Bei der Installation auf USB ist<br />

es ferner empfehlenswert, manuell eine<br />

Scratch-Partition auf einem VMFS-Dateisystem<br />

nach der Installation einzurichten.<br />

Andernfalls zweigt ESXi 512 MByte<br />

des Arbeitsspeichers für die Scratch-Partition<br />

ab, deren Inhalt bei einem Reboot<br />

naturgemäß verloren geht [1].<br />

Windows gefragt<br />

Der Image Builder ist Bestandteil des<br />

VMware vSphere PowerCLI 5.0 [2], das<br />

mindestens Windows XP SP2 und .NET<br />

ab Version 2.0 sowie die Windows Powershell<br />

2.0 erfordert. Damit alle PowerCLI-<br />

Funktionen genutzt werden können,<br />

empfiehlt VMware, am Ende der Installation<br />

die Powershell Execution Policy<br />

auf Remote-Signed zu setzen. Dazu klickt<br />

man nach der Installation mit der rechten<br />

Maustaste auf das Icon »VMware vSphere<br />

PowerCLI« und wählt »Als Administrator<br />

ausführen«. Der anschließende Befehl<br />

»Set‐ExecutionPolicy RemoteSigned«<br />

setzt die Execution Policy entsprechend.<br />

Beim nächsten Starten zegit das Power-<br />

CLI dann eine Willkommensmeldung<br />

mit einigen Befehlen zum Abrufen der<br />

PowerCLI-Hilfe (Abbildung 1).<br />

Als Ausgangsbasis für ein individuelles<br />

Image dient das Image Profile eines<br />

Offline-Bundle-Installationsimages von<br />

VMware. Das Offline Bundle steht bei<br />

VMware als Zip-Datei neben den herkömmlichen<br />

ISO-Installationsimages<br />

zum Download bereit [3]. Der Befehl<br />

»Add‐EsxSoftwareDepot« bindet das Offline<br />

Bundle ein (Listing 2). »Get‐Esx-<br />

ImageProfile« zeigt danach alle verfügbaren<br />

Image-Profile des Offline Bundles<br />

(Abbildung 2).<br />

Ab ESXi 5.0 Update 1 enthalten die Offline<br />

Bundles sowohl die bisherigen General<br />

Image Profiles als auch security-only<br />

Image Profiles. Letztere sind mit einem<br />

Abbildung 1: Nach dem Setzen der PowerShell Execution Policy auf Remote-Signed startet das PowerCLI ohne<br />

Fehlermeldung.<br />

Abbildung 2: Get-EsxImageProfile zeigt alle Image-Profile eines Offline Bundles.<br />

s im Namen gekennzeichnet und eignen<br />

sich zum Updaten bereits installierter<br />

ESXi Hosts. Als Basis für ein neues Installationsimage<br />

sind sie ungeeignet. Von den<br />

General Image Profiles gibt es zwei: ein<br />

Standardprofil (ESXi-5.0.0-20120302001-<br />

standard) und ein Profil ohne integrierte<br />

VMware Tools für Gastsysteme (ESXi-<br />

5.0.0-20120302001-no-tools).<br />

Geklont<br />

Im nächsten Schritt wird das Offline-<br />

Bundle des Adaptec-Treibers eingebunden.<br />

Das geschieht wieder mit<br />

»Add‐EsxSoftwareDepot«. Der Befehl<br />

»New‐EsxImageProfile« erstellt einen<br />

Klon des Standardprofils. Bei der<br />

Benennung des neuen Profils empfiehlt<br />

sich ein aussagekräftiger Name, zum<br />

Beispiel »ESXi‐5.0u1‐standard‐Adaptec«.<br />

»Get‐EsxSoftwarePackage« zeigt<br />

Listing 2: Individuelles Image mit Image Builder<br />

alle verfügbaren Software-Pakete an,<br />

darunter »scsi‐aacraid« von Adaptec in<br />

der Version 5.0.5.1.7.28700. Ein Aufruf<br />

von »Add‐EsxSoftwarePackage« fügt<br />

»scsi‐aacraid« dem neuen Image-Profil<br />

hinzu. Ob dabei alles glatt gegangen ist,<br />

zeigt ein Vergleich des Standardprofils mit<br />

dem neuen Image-Profil durch das Tool<br />

»Compare‐EsxImageProfile« (Abbildung<br />

3). »Export‐EsxImageProfile« exportiert<br />

das Image-Profil abschließend in eine<br />

ISO-Datei, die sich auf CD/​DVD brennen<br />

lässt oder als Basis zur Erstellung eines<br />

Installations-USB-Sticks dient.<br />

Installation vom Stick<br />

Wie eingangs erwähnt, lässt sich ESXi<br />

neben lokalen oder SAN-RAID-Volumes<br />

auch auf USB Sticks installieren. Ein<br />

solcher USB-Stick kann aber auch als<br />

Installationsquelle dienen [4]. Das geht<br />

01 PowerCLI C:\> Add‐EsxSoftwareDepot E:\update‐from‐esxi5.0‐5.0_update01.zip<br />

02 PowerCLI C:\> Get‐EsxImageProfile<br />

03 PowerCLI C:\> Add‐EsxSoftwareDepot E:\aacraid‐1.0.1‐offline_bundle‐560288.zip<br />

04 PowerCLI C:\> New‐EsxImageProfile ‐CloneProfile ESXi‐5.0.0‐20120302001‐standard ‐Name<br />

"ESXi‐5.0u1‐standard‐Adaptec"<br />

05 PowerCLI C:\> Get‐EsxSoftwarePackage<br />

06 PowerCLI C:\> Add‐EsxSoftwarePackage ‐ImageProfile ESXi‐5.0u1‐standard‐Adaptec ‐SoftwarePackage<br />

scsi‐aacraid<br />

07 PowerCLI C:\> Compare‐EsxImageProfile ESXi‐5.0.0‐20120302001‐standard ESXi‐5.0u1‐standard‐Adaptec<br />

08 PowerCLI C:\> Export‐EsxImageProfile ‐ImageProfile ESXi‐5.0u1‐standard‐Adaptec ‐FilePath E:\<br />

ESXi‐5.0u1‐standard‐Adaptec.iso ‐ExportToIso<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

111


Virtualisierung<br />

vSphere Image Builder<br />

Abbildung 3: Der Vergleich des neu erstellten Profils mit dem Standardprofil zeigt, dass der neue Treiber<br />

erfolgreich integriert ist.<br />

die Server-IP und »‐u« für den Benutzernamen<br />

erforderlich (Abbildung 4).<br />

Bei der Installation des vSphere-CLI auf<br />

Linux-Rechnern lauert übrigens noch eine<br />

kleine Hürde. Nur wenn vor dem Aufruf<br />

des Installationskriptes »vmware‐install.<br />

pl« die Umgebungsvariablen »http_proxy«<br />

und »ftp_proxy« gesetzt werden, läuft<br />

die Installation auch tatsächlich durch.<br />

Werden keine Proxys genutzt, müssen<br />

die Variablen mit leerem Inhalt gesetzt<br />

werden [7].<br />

deutlich schneller als die Installation von<br />

einer CD oder DVD. Außerdem besitzen<br />

viele aktuelle Server kein CD/​DVD-Laufwerk,<br />

ein weiterer Grund, sich mit einem<br />

USB Stick als Installationsmedium<br />

zu befassen.<br />

Für die Vorbereitung des Installations-<br />

Sticks wird von VMware ein Linux-System<br />

empfohlen. Im Beispiel wird der<br />

USB-Stick vom Linux-System als »/dev/<br />

sdb« erkannt. Wenn der Stick einen anderen<br />

Gerätenamen bekommt, ersetzt<br />

man in den folgenden Kommandos »/<br />

dev/sdb« entsprechend. Der Stick wird<br />

zuerst per »fdisk« mit einer einzelnen<br />

primären Partition des Partitionstyps »c«<br />

(W95 FAT32 (LBA)) versehen. Danach<br />

markiert man mit »a« die Partition als aktiv<br />

markiert und formatiert sie mit »mkfs.<br />

vfat ‐F 32 ‐n USB /dev/sdb1«.<br />

Damit der Server später vom USB-Stick<br />

booten kann, wird Syslinux 3.86 [5] auf<br />

dem Stick installiert und der Master Boot<br />

Record eingespielt. Das geschieht über<br />

die beiden Kommandos<br />

syslinux‐3.86/linux/syslinux /dev/sdb1<br />

cat syslinux‐3.86/mbr/mbr.bin > /dev/sdb<br />

Achtung: Das erste Kommando bezieht<br />

sich auf die Partition »/dev/sdb1«, das<br />

zweite aber auf das Device »/dev/sdb«.<br />

Neuere Syslinux 4.* Versionen, wie sie<br />

bei den aktuellen Linux-Distributionen,<br />

enthalten sind, eignen sich für diese<br />

Schritte übrigens nicht.<br />

Als Nächstes mountet man das soeben<br />

auf dem USB-Stick erstellte Dateisystem<br />

sowie das zuvor erstellte ESXi-ISO-Installationsimage.<br />

Der Aufruf<br />

cp ‐r /mnt/esxi‐cdrom/* /mnt/usbdisk/<br />

kopiert alle Daten auf den USB-Stick.<br />

Dort ist dann die Datei »isolinux.cfg« in<br />

»syslinux.cfg« umzubenennen. In dieser<br />

Datei muss man in der Zeile »APPEND<br />

‐c boot.cfg« noch den Parameter »‐p 1«<br />

ergänzen. Dann noch unmounten: Fertig<br />

ist der ESXi-Installations-Stick.<br />

VIBs nachinstallieren<br />

Ist ein ESXi-Host installiert, lassen sich<br />

VIBs mit dem »esxcli«-Kommando nachträglich<br />

installieren. Das Kommando<br />

lässt sich direkt in einer ESXi-Shell auf<br />

dem Host ausführen. Wenn auf einem<br />

entfernten Rechner das vSphere CLI [6]<br />

installiert ist, ist der Aufruf von Esxcli<br />

auch von dort aus möglich.<br />

Die Installation eines VIBs erfolgt mit<br />

»esxcli software vib install ‐v VIB‐URL«.<br />

Bei der VIB-URL sind Zugriffe über<br />

HTTP, HTTPS, FTP und lokal auf dem<br />

ESXi-Host gespeicherte VIBs möglich.<br />

Wird das Esxcli remote per vSphere-CLI<br />

aufgerufen, sind die Parameter »‐s« für<br />

Fazit<br />

VMware hat mit dem vSphere ESXi Image<br />

Builder ein wertvolles Tool geschaffen,<br />

um Images für die ESXi-Installation mit<br />

aktuellen Treibern und anderen Softwarekomponenten<br />

auszustatten. Es gibt<br />

den Image Builder nur für Windows,<br />

doch da der vSphere-Client ausschließlich<br />

unter Windows läuft, kommt man<br />

ohne das Betriebssystem von Microsoft<br />

in einer VMware-Umgebung ohnedies<br />

nicht aus. Dass die Installation nun auch<br />

einfach ohne CD/​DVD-Laufwerk klappt,<br />

wird außerdem viele Administratoren<br />

freuen. (ofr)<br />

n<br />

Infos<br />

[1] ESXi 5.0 auf USB-Stick installieren:<br />

[http:// tkwiki. cc/ ESXi‐5‐USB‐Stick]<br />

[2] PowerCLI:<br />

[http:// www. vmware. com/ go/ PowerCLI]<br />

[3] Thomas Joos, Geschenkter Gaul, Virtualisierung<br />

kostenlos mit VMware vSphere,<br />

<strong>ADMIN</strong> 2/​2012, S. 113<br />

[4] ESXi 5.0 vom USB-Stick aus installieren:<br />

[http:// tkwiki. cc/ ESXi‐5‐Install‐Stick]<br />

[5] Syslinux 3.86: [http:// www. kernel. org/ pub/​<br />

linux/ utils/ boot/ syslinux/ 3. xx/]<br />

[6] vSphere CLI: [http:// www. vmware. com/​<br />

support/ developer/ vcli/]<br />

[7] vSphere CLI installieren:<br />

[http:// tkwiki. cc/ vCLI]<br />

Abbildung 4: Die nachträgliche Installation des VIB für den LSI CIM-Provider klappt, für die Aktivierung ist ein<br />

Reboot erforderlich.<br />

Der Autor<br />

Werner Fischer ist seit 2005 Technology Specialist<br />

bei der Thomas-Krenn.AG und Chefredakteur<br />

des Thomas Krenn Wikis.<br />

Seine Arbeitsschwerpunkte<br />

liegen in den Bereichen<br />

Hardware-Monitoring, Virtualisierung,<br />

I/​O-Performance<br />

und Hochverfügbarkeit.<br />

112 Ausgabe 03-2012 Admin www.admin-magazin.de


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

ACADEMY<br />

LPIC-1<br />

All-in-One Solution<br />

✓<br />

✓<br />

✓<br />

Stellen Sie Ihr Linux-Wissen mit<br />

einer Zertifizierung unter Beweis!<br />

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

der Zeiteinteilung Ihrer Schulung!<br />

Holen Sie sich alles, was Sie<br />

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

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

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

100% flexibel!<br />

Weitere Infos: academy.linux-magazin.de/solution


Virtualisierung<br />

Virtualbox<br />

© flashpics, Fotolia<br />

Servervirtualisierung mit Virtualbox<br />

Trennkost<br />

Auf Desktops wird Virtualbox gerne zur Virtualisierung eingesetzt. Der folgende Artikel zeigt, wie sich Virtualbox<br />

auch auf einem Linux-Server betreiben lässt – und zwar mit dem von der grafischen Benutzeroberfläche gewohnten<br />

Komfort. Thomas Zeller<br />

Listing 1: Extension-Pack installieren<br />

01 $ vboxmanage ‐v<br />

01 4.1.12r77245<br />

01 $ wget http://download.virtualbox.org/<br />

virtualbox/4.1.12/Oracle_VM_Virtualbox_Extension_<br />

Pack‐4.1.12‐77245.vbox‐extpack<br />

01 $ sudo vboxmanage extpack install Oracle_VM_<br />

Virtualbox_Extension_Pack‐4.1.12‐77245.vbox‐extpack<br />

Oracles kostenlose Virtualisierungslösung<br />

Virtualbox ist eigentlich für den<br />

Einsatz auf dem Desktop gedacht. Denn<br />

die Verwaltung virtueller Maschinen erfolgt<br />

über eine GUI, die sich nur lokal<br />

und nicht übers Netzwerk verwenden<br />

lässt. Alternativ steht zwar ein Kommandozeilenbefehl<br />

zur Verfügung, diese Möglichkeit<br />

ist aber wenig komfortabel. Mit<br />

den hier vorgestellten Tools lassen sich<br />

Virtualbox-VMs auf dem Server bequem<br />

fernsteuern.<br />

Virtualbox bietet gegenüber anderen<br />

Virtualisierungslösungen eine Reihe von<br />

Vorteilen: So steht das Programm beispielsweise<br />

für die wichtigsten Plattformen<br />

wie Windows, Linux, Mac OS X und<br />

Solaris kostenfrei zur Verfügung und unterstützt<br />

darüber hinaus eine breite Zahl<br />

von Gastsystemen, darunter auch Exoten<br />

wie DOS/​Win 3.1 und OS/​2.<br />

Die Installation von Virtualbox geht auf<br />

allen Plattformen leicht von der Hand,<br />

da dazu in der Regel nur eine Setup-<br />

Datei ausgeführt beziehungsweise ein<br />

Paket in das System eingespielt werden<br />

muss. Virtualbox stellt keine gehobenen<br />

Ansprüche an die Hardware und benötigt<br />

weder Intel VTx / AMD-V noch einen<br />

speziellen Linux-Kernel und bietet dank<br />

eigener Gasterweiterungen dennoch gute<br />

Performance. Mit dem VRDP-Protokoll<br />

(Virtualbox RDP, Abbildung 1) verfügt<br />

Virtualbox außerdem über eine integrierte<br />

grafische Schnittstelle zu allen virtuellen<br />

Maschinen: Ein RDP-Client reicht<br />

aus, um unabhängig vom verwendeten<br />

Gastbetriebssystem über das Netzwerk<br />

auf VMs zuzugreifen.<br />

Bis Version 4.0 existierte von Virtualbox<br />

eine kommerzielle und eine Open-Source-<br />

Version (OSE). Letztere wurde von den<br />

Linux-Distributoren häufig bereits über<br />

die Repositories zur Verfügung gestellt,<br />

sodass Anwender diese einfach über<br />

die Paketquellen einspielen konnten.<br />

Seit Version 4.0 hat Oracle diese beiden<br />

Versionen nun in einem Binary zusammengeführt,<br />

das auf der Virtualbox-Website<br />

[1] zum Download bereitsteht. Für<br />

Linux-Anwender stellt Oracle unter [2]<br />

weiterhin Repositories für diverse Linux-<br />

Distributionen zur Verfügung.<br />

Nicht frei, aber kostenlos<br />

Die nicht freien Bestandteile wie der Support<br />

für USB-2.0-Geräte, der VRDP-Server<br />

und PXE-Boot für Intel-Netzwerkkarten,<br />

wurden in den sogenannten Extension<br />

Pack ausgelagert. Nicht frei bedeutet<br />

hier, dass Oracle den Sourcecode für<br />

diese Funktionen nicht freigegeben hat.<br />

114 Ausgabe 03-2012 Admin www.admin-magazin.de


Virtualbox<br />

Virtualisierung<br />

Gleichwohl ist der Extension Pack ebenfalls<br />

kostenfrei.<br />

Für den Betrieb auf Geräten ohne grafische<br />

Oberfläche kann Virtualbox virtuelle<br />

Maschinen im sogenannten Headless-Mode<br />

starten. Derart gestartete VMs<br />

werden automatisch mit VRDP-Unterstützung<br />

ausgestattet, sodass ein Netzwerk-<br />

Zugriff auf das in der virtuellen Maschine<br />

laufende System mit einem RDP-Client<br />

möglich ist.<br />

Installation<br />

Im <strong>Test</strong>-Szenario haben wir Virtualbox<br />

auf einem Ubuntu 10.04.4 LTS (Lucid<br />

Lynx) Server in der 64-Bit-Version installiert.<br />

Nur wenn auf dem Host ein<br />

64-Bit-Kernel läuft, lassen sich später<br />

auch 64-Bit-VMs anlegen. Die Installation<br />

geht am schnellsten, wenn Sie die<br />

Virtualbox-Paketquelle erst in der Datei<br />

»sources.list« eintragen:<br />

sudo sh ‐c 'echo "# Virtualbox repositoryU<br />

Ubuntu 10.04 LTS Lucid deb http://download.U<br />

virtualbox.org/virtualbox/debian lucid U<br />

contrib" >> /etc/apt/sources.list'<br />

und dann den GPG-Key dem Schlüsselbund<br />

hinzufügen:<br />

sudo apt‐key adv ‐‐recv‐keys ‐‐keyserver U<br />

keyserver.ubuntu.com 98AB5139<br />

Nun aktualisieren Sie die Paketliste und<br />

installieren Virtualbox 4.1:<br />

apt‐get update && apt‐get install U<br />

virtualbox‐4.1<br />

Für die VRDP-Unterstützung benötigen<br />

Sie noch den zur Virtualbox-Version pas-<br />

senden Extension-Pack. Zur Sicherheit<br />

sollten Sie daher mit<br />

vboxmanage ‐v<br />

noch einmal die Version überprüfen und<br />

dann den Extension-Pack von [http://​<br />

download. virtualbox. org/ virtualbox/]<br />

herunterladen und installieren. Für unseren<br />

<strong>Test</strong>server sieht die Vorgehensweise<br />

dazu wie in Listing 1 aus.<br />

Im Prinzip war es das schon, und Virtualbox<br />

läuft jetzt bereits auf Ihrem Server.<br />

Virtualbox zu Fuß<br />

Da auf dem Linux-Server keine grafische<br />

Benutzeroberfläche zur Verfügung steht,<br />

bleibt nur die Bedienung mithilfe der<br />

Kommandozeile. Dreh- und Angelpunkt<br />

ist dabei der Befehl »vboxmanage«, der<br />

mit dem Parameter »‐h« aufgerufen nicht<br />

weniger als 448 Zeilen an Kommandos<br />

und Parametern liefert. Bereits mit wenigen<br />

lassen sich virtuelle Maschinen<br />

anlegen, klonen, löschen und ändern<br />

sowie Snapshots erstellen. Erschöpfend<br />

Auskunft dazu gibt Kapitel 8 der Virtualbox<br />

Online-Hilfe [3].<br />

Wer das umständlich findet, nutzt alternativ<br />

einfach ein am Arbeitsplatz installiertes<br />

Virtualbox (egal, auf welchem<br />

Betriebssystem) in der gleichen Version,<br />

um sich die VMs für den Server nach<br />

Bedarf zusammenzuklicken. Natürlich<br />

muss die Konfiguration – zum Beispiel<br />

des Netzwerks – auf die Konfiguration<br />

des späteren Hosts abgestimmt werden.<br />

Die VM kann dann leicht über das Hauptmenü<br />

»Datei / Appliance exportieren«<br />

mitsamt der virtuellen Festplatte in eine<br />

».ova«-Datei exportiert werden. Verwenden<br />

Sie dagegen die Extension ».ovf«,<br />

werden Konfigurationsdatei und virtuelle<br />

Disk in jeweils eigene Dateien exportiert.<br />

Ist die VM erst einmal auf den Server<br />

kopiert, können Sie sie dort mit dem Befehl<br />

vboxmanage import meine‐vm.ova<br />

gleich wieder importieren. Zum Starten<br />

der virtuellen Maschine auf dem Server<br />

genügt dann<br />

vboxmanage startvm UUID/Name<br />

Wer sich beim Namen oder der UUID für<br />

die VM nicht mehr ganz sicher ist, kann<br />

diese Information leicht mit dem Befehl<br />

vboxmanage list vms<br />

herausfinden.<br />

Virtualbox grafisch übers<br />

Netzwerk bedienen<br />

Nicht immer will man alle Arbeiten mit<br />

Virtualbox auf dem Server über die Kommandozeile<br />

erledigen. Alternativ dazu<br />

gibt es das grafische Webfrontend PHP-<br />

Virtualbox [4] von Ian Moore, das die<br />

Steuerung über einen Webbrowser erlaubt.<br />

PHP-Virtualbox bildet die Virtualbox-GUI<br />

bis ins Detail mithilfe der Ajax-<br />

Technologie im Browser nach (Abbildung<br />

2), sodass man gegenüber der gewohnten<br />

Bedienung des nativen GUI praktisch<br />

keine Abstriche machen muss. Allerdings<br />

eignet sich PHP-Virtualbox nicht dazu,<br />

C13<br />

Abbildung 1: Dank VRDP-Unterstützung kann man mit PHP-Virtualbox auch direkt im Browser auf die Konsole<br />

der virtuellen Maschinen zugreifen.<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

115


Virtualisierung<br />

Virtualbox<br />

Danach starten Sie »vboxwebsrv« mit<br />

dem Befehl<br />

sudo /etc/init.d/vboxweb‐service start<br />

und sorgen mit<br />

sudo update‐rc.d vboxweb‐service defaults<br />

Abbildung 2: PHP-Virtualbox bildet mit seiner Ajax-Oberfläche exakt die aus dem nativen GUI bekannten<br />

Funktionalitäten ab.<br />

dafür, dass der Dienst auch nach einem<br />

Reboot automatisch startet. Jetzt installieren<br />

Sie die benötigten Pakete für PHP-<br />

Virtualbox (Listing 2). Hat alles geklappt,<br />

wechseln Sie ins Verzeichns »/var/www«<br />

und laden dort mit dem folgenden Befehl<br />

die neueste stabile Version von der PHP-<br />

Virtualbox-Projektseite herunter:<br />

wget http://phpvirtualbox.googlecode.com/U<br />

files/phpvirtualbox‐4.1.17.zip<br />

einen Hosted Service aufzubauen, bei<br />

dem mehrere Benutzer unterschiedliche<br />

Berechtigungen für die verschiedenen<br />

VMs erhalten sollen: Der Administrator<br />

hat über PHP-Virtualbox immer die volle<br />

Kontrolle über alle VMs auf dem Host.<br />

Unverschlüsselt<br />

PHP-Virtualbox bedient sich für die<br />

Kommunikation mit dem Virtualbox-<br />

Host der SOAP-Schnittstelle von Oracle,<br />

die den Namen »vboxwebsrv« trägt. In<br />

Kombination mit einem lokal installierten<br />

Apache2-Webserver mit PHP-5-Unterstützung<br />

ist das Team dann komplett. Prinzipiell<br />

könnten der Virtualbox-Host und<br />

der Apache mit PHP-Virtualbox auch auf<br />

zwei getrennten physikalischen Maschinen<br />

installiert werden.<br />

Da Oracles »vboxwebsrv« allerdings<br />

keine Verschlüsselung vorsieht, erfolgt<br />

die Kommunikation und damit die Übertragung<br />

des Passworts vom Webserver<br />

zum Virtualbox-Host unverschlüsselt.<br />

Virtualbox ordnet VMs nicht global dem<br />

System, sondern immer dem User zu,<br />

der die VM erstellt hat. Daher legen Sie<br />

Listing 2: Pakete für PHP-Virtualbox<br />

01 sudo apt‐get install apache2‐mpm‐prefork<br />

apache2‐utils apache2.2‐bin apache2.2‐common apache2<br />

apache2‐mpm‐prefork apache2‐utils apache2.2‐bin<br />

apache2.2‐common apache2‐doc apache2‐suexec<br />

libapache2‐mod‐php5 libapr1 libaprutil1<br />

libaprutil1‐dbd‐sqlite3 libaprutil1‐ldap libapr1<br />

libaprutil1 libaprutil1‐dbd‐sqlite3 libaprutil1‐ldap<br />

php5‐common php5‐common php5‐mysql php5‐suhosin<br />

php‐pear wget<br />

als Erstes einen geeigneten Benutzer und<br />

eine Gruppe für diesen an. Hier sollen der<br />

Benutzer »vbox« und die Gruppe »vboxusers«<br />

heißen. Unter Ubuntu erledigen<br />

das die Aufrufe<br />

sudo groupadd vboxusers<br />

sudo useradd ‐m vbox ‐G vboxusers<br />

Die virtuellen Maschinen werden später<br />

in »/home/vbox/VM« angelegt. Abschließend<br />

geben Sie dem neuen Benutzer mit<br />

»sudo passwd vbox« noch ein Passwort.<br />

Bevor Sie PHP-Virtualbox konfigurieren,<br />

müssen Sie zunächst noch den Apache-<br />

Server, PHP und einige weitere Pakete<br />

installieren und den »vboxwebsrv« einrichten.<br />

Dazu erstellen Sie mit dem Editor Ihrer<br />

Wahl die Datei »/etc/default/virtualbox«<br />

und tragen hier den Benutzer »vbox«<br />

ein:<br />

VBOXWEB_USER=vbox<br />

Apache absichern<br />

Bleibt noch zu erwähnen, dass die Kommunikation<br />

mit dem Webserver beim aktuellen Stand<br />

der Konfiguration noch unverschlüsselt läuft.<br />

Sie sollten daher die Verbindung zum Apache<br />

per SSL verschlüsseln, zur Einrichtung von<br />

»mod_ssl« gibt der Ubuntu-Server-Guide unter<br />

[5] erschöpfend Auskunft. Wem das zu viel<br />

Aufwand ist, der kann die Verbindung zum Webserver<br />

natürlich auch über andere Verschüsselungstechnologien<br />

wie SSH oder über ein VPN<br />

absichern. In diesem Fall sollte man natürlich<br />

darauf achten, dass der Apache nur vom lokalen<br />

Host und nicht über das Internet erreichbar ist.<br />

Dazu genügt es, in »/etc/apache2/ports.conf«<br />

den Eintrag<br />

Nach dem Entpacken mit<br />

sudo unzip phpvirtualbox‐*.zip<br />

finden Sie das neue Verzeichnis »phpvirtualbox‐4.1‐7«<br />

in »/var/www«. Der Einfachheit<br />

halber ändern Sie den Verzeichnisnamen<br />

auf »phpvirtualbox«, um sich<br />

später unnötige Tipparbeit zu ersparen.<br />

Leicht gemacht<br />

Zuletzt müssen Sie noch den Benutzernamen<br />

und das Passwort in die Konfigurationsdatei<br />

von PHP-Virtualbox eintragen.<br />

Glücklicherweise liefert der Entwickler<br />

gleich eine passende Vorlage mit, die Sie<br />

einfach kopieren:<br />

sudo cp /var/www/phpvirtualbox/config.U<br />

php‐example /var/www/phpvirtualbox/config.php<br />

und danach die beiden Zeilen mit den<br />

Account-Daten in der Datei »/var/www/<br />

phpvirtualbox/config.php« hinzufügen<br />

NameVirtualHost *:80<br />

Listen 80<br />

wie folgt zu ändern:<br />

NameVirtualHost *:80<br />

Listen 127.0.0.1:80<br />

Ein SSH-Tunnel für den Zugriff, auf den dann nur<br />

noch lokal erreichbaren Apache, ist ebenfalls<br />

schnell eingerichtet:<br />

ssh ‐L 8080:127.0.0.1:80<br />

user@IP‐Adresse‐des‐Virtualbox‐Host<br />

Danach können Sie sich mit dem Browser unter<br />

der Adresse »http://localhost:8080/phpvirtualbox«<br />

an PHP-Virtualbox anmelden.<br />

116 Ausgabe 03-2012 Admin www.admin-magazin.de


Virtualbox<br />

Virtualisierung<br />

Die Lösung ist Vboxtool, eine Reihe von<br />

Wrapper-Skripten für das Virtualbox<br />

CLI »vboxmanage«, die beispielsweise<br />

den automatischen Start und Stopp einzelner<br />

oder aller virtuellen Maschinen<br />

emöglichen, wenn der Host-Rechner<br />

gestartet oder heruntergefahren wird<br />

( Abbildung 3).<br />

Mit Vboxtool können Sie sich weiterhin<br />

Informationen zum Status aller oder nur<br />

der laufenden virtuellen Maschinen ausgeben<br />

lassen, oder auch Massenoperativar<br />

$username = 'vbox';<br />

var $password = 'Passwort‐des‐Users‐vbox';<br />

Jetzt können Sie im Webbrowser unter<br />

der Adresse »http://Hostname/phpvirtualbox«<br />

bereits auf PHP-Virtualbox<br />

zugreifen.<br />

Bei der ersten Anmeldung melden Sie<br />

sich dort mit dem Benutzer »admin« und<br />

dem Passwort »admin« an und stellen<br />

unter »File | Preferences | Language« als<br />

Sprache Deutsch ein.<br />

Als Nächstes legen Sie unter »Ablage |<br />

Globale Einstellungen | Benutzer« den<br />

Benutzer »vbox« an, weisen ihm administrative<br />

Rechte zu und vergeben ein<br />

Passwort für die Anmeldung am Webinterface.<br />

Den Benutzer »admin« löschen<br />

Sie danach am besten gleich oder ändern<br />

zumindest dessen Passwort auf ein<br />

sicheres. Über die Web-GUI von PHP-<br />

Virtualbox können Sie Virtualbox nun<br />

vollständig über das Netzwerk steuern,<br />

wie Sie es vom nativen Client gewohnt<br />

sind. Doch so einfach die Arbeit mit PHP-<br />

Virtualbox auch ist, leider sieht die API<br />

von Virtualbox keinen automatischen<br />

Start und Stopp von VMs beim Systemstart<br />

oder Shutdown das gastgebenden<br />

Systems vor. Das ist unschön, und wir<br />

müssen nochmal in die Werkzeugkiste<br />

greifen, um den Betrieb des Virtualbox-<br />

Hosts weitestgehend zu automatisieren.<br />

Vboxtool<br />

onen auf der Kommandozeile mit einem<br />

einzigen Befehl ausführen. So genügen<br />

etwa die Befehle<br />

vboxtool start<br />

vboxtool stop<br />

vboxtool save<br />

vboxtool backup<br />

um alle virtuellen Maschinen auf einmal<br />

zu starten, zu stoppen, in den<br />

»save‐mode« zu versetzen oder von den<br />

VMs automatisch ein Backup mithilfe<br />

von »rsync« zu erstellen. Bei der Ausführung<br />

des Backup-Befehls kümmert sich<br />

Vboxtool auch darum, dass die Maschine<br />

automatisch in den gesicherten Modus<br />

versetzt und nach dem Kopieren wieder<br />

gestartet wird.<br />

Die Installation von Vboxtool ist ein<br />

Kinderspiel: Laden Sie zunächst das<br />

ZIP-Archiv von der Projektseite unter<br />

[6] herunter, entpacken Sie den Inhalt<br />

zunächst in Ihr Home-Verzeichnis auf<br />

dem Server<br />

E<br />

Zur Verstärkung unseres Teams suchen wir ab sofort:<br />

WEBHOSTING · SCHULUNGEN · SUPPORT<br />

Die Mittwald CM Service GmbH & Co KG ist einer der führenden Webhosting-Anbieter für Agenturen und Unternehmen im deutschsprachigen Raum.<br />

Neben sehr guten beruflichen Perspektiven bieten wir als ein Familienunternehmen mit langer Tradition ein hohes Maß an Eigenständigkeit in<br />

einem hoch motivierten Team.<br />

LINUX Systemadministrator (m/w)<br />

Ihre Aufgaben:<br />

Als Mitarbeiter in der Systemadministration bzw. Systementwicklung<br />

realisieren Sie im Team innovative Serverlösungen für unsere Hostingkunden.<br />

Darüber hinaus gehören Wartung und Optimierung unserer<br />

Systeme sowie die Automatisierung wieder kehrender Tätigkeiten zu Ihrem<br />

Aufgabengebiet.<br />

Netzwerkadministrator (m/w)<br />

Ihre Aufgaben:<br />

In dieser Position sind Sie für den Betrieb, die Überwachung und die Optimierung<br />

der hochredundanten Netzwerkinfrastruktur im Rechenzentrum<br />

zuständig. Sie arbeiten im Team neue Lösungen aus und sind kompetenter<br />

Ansprechpartner für andere administrative Abteilungen.<br />

Ihr Profil:<br />

Sie besitzen umfangreiche Kenntnisse im Umgang mit Apache<br />

Webservern sowie MySQL Datenbanken. Darüber hinaus verfügen Sie über<br />

praktische Erfahrungen im Erstellen von Shell-Skripten. Analytisches<br />

Denkvermögen und Kreativität helfen Ihnen bei der Entwicklung neuer<br />

Systemlösungen.<br />

Ihr Profil:<br />

Sie besitzen gute bis sehr gute Kenntnisse in den Bereichen IP-Routing<br />

sowie Switching und Ihnen sind Begriffe wie BGP und MPLS vertraut. Sie<br />

haben optimalerweise Erfahrungen mit F5 und Juniper Hardware gesammelt<br />

und fühlen sich bei der Fehlersuche auch unter Zeitdruck sehr wohl.<br />

Wir freuen uns auf Ihre aussagekräftige E-Mail Bewerbung an jobs@mittwald.de<br />

Kontakt: Mittwald CM Service GmbH & Co KG · Frau Sonja Brinkmann · Königsberger Straße 6 · 32339 Espelkamp<br />

Weitere Informationen erhalten Sie unter www.mittwald.de/jobs<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

117


Virtualisierung<br />

Virtualbox<br />

VM‐Name,VRDP‐Port<br />

Abbildung 3: Vboxtool vereinfacht das Management virtueller Maschinen auf einem Virtualbox-Host. Mit<br />

einem einzigen Befehl kann man sich den Status der VMs anzeigen lassen sowie diese starten, stoppen oder<br />

per Rsync sichern.<br />

unzip vboxtool‐0.4.zip<br />

und kopieren Sie das Haupt-Skript dann<br />

nach /usr/​local/​bin<br />

sudo cp ~/script/vboxtool /usr/local/bin<br />

Jetzt muss das Skript noch ausführbar<br />

gemacht werden:<br />

sudo chmod +x /usr/local/bin/vboxtool<br />

Genauso gehen Sie danach mit dem Init-<br />

Skript vor:<br />

sudo cp script/vboxtoolinit /etc/init.d<br />

sudo chmod +x /etc/init.d/vboxtoolinit<br />

das Sie zum Abschluss noch für die entsprechenden<br />

Runlevels aktivieren:<br />

sudo update‐rc.d vboxtoolinit defaultsU<br />

99 10<br />

Die Konfiguration von Vboxtool basiert<br />

auf zwei Dateien, für die Sie zunächst in<br />

»/etc« ein Verzeichnis anlegen:<br />

sudo mkdir /etc/vboxtool<br />

Mit dem Editor Ihrer Wahl erstellen Sie<br />

dort die Datei »vboxtool.conf«. Diese<br />

enthält dann nur den Benutzernamen,<br />

mit dessen Rechten Vboxtool ausgeführt<br />

Tabelle 1: Vboxtool<br />

Kommando<br />

vboxtool show<br />

vboxtool showrun<br />

vboxtool showconfig<br />

vboxtool start<br />

[session]<br />

vboxtool save<br />

[session]<br />

vboxtool stop<br />

[session]<br />

voboxtool backup<br />

[session]<br />

wird. Im Beispiel soll dies ebenfalls der<br />

User »vbox« sein:<br />

vbox_user='vbox'<br />

Optional können Sie in dieser Datei auch<br />

ein abweichendes Backup-Verzeichnis<br />

angeben, in welches die virtuellen Maschinen<br />

später automatisch gesichert<br />

werden können. Auf diese Weise kann<br />

man virtuelle Maschinen problemlos<br />

über das Netzwerk, zum Beispiel auf ein<br />

NAS oder eine Freigabe auf einem anderen<br />

Server sichern. A<br />

llerdings müssen Sie darauf achten, dass<br />

der betreffende Benutzer in dem hier<br />

angegebenen Verzeichnis auch über die<br />

entsprechenden Schreibrechte verfügt.<br />

backup_folder=/home/user/vboxbackup<br />

Wenn Sie keinen Backup-Ordner explizit<br />

angeben, werden die Backups im jeweiligen<br />

Verzeichnis der VMs erstellt. Damit<br />

VboxTtol weiß, für welche VMs es ab<br />

sofort zuständig ist, legen Sie die Datei<br />

/etc/vboxtool/machines.conf<br />

an. In dieser Konfigurationsdatei tragen<br />

Sie für jede virtuelle Maschine auf Ihrem<br />

Host eine eigene Zeile im folgenden<br />

Format ein:<br />

Funktion<br />

Zeigt den Status aller VMs an.<br />

Zeigt nur den Status der gerade laufenden virtuellen Maschinen an.<br />

Zeigt den Inhalt der Konfigurationsdateien an.<br />

Ohne Parameter werden alle in »/etc/vboxtool/machines.conf« angelegten<br />

VMs gestartet, sonst die jeweilige Session.<br />

Wie oben, alle oder nur eine bestimmte virtuelle Maschine werden in den<br />

Modus „Gesichert“ versetzt.<br />

Wie oben, alle oder nur eine bestimmte VM werden gestoppt.<br />

Alle oder nur eine bestimmte VM werden zunächst in den Modus „Gesichert“<br />

versetzt und dann per Rsync in das in der Datei »/etc/vboxtool/<br />

vboxtool.conf« definierte Backup-Verzeichnis gesichert.<br />

Wichtig hierbei: Vor und nach dem<br />

Komma dürfen sich keine Leerzeichen<br />

befinden.<br />

Auf unserem <strong>Test</strong>server sieht »/etc/vboxtool/machines.conf«<br />

entsprechend wie<br />

folgt aus<br />

zarafa,3389<br />

WindowsXP,3390<br />

Die so aufgeführten Maschinen werden<br />

nun von Vboxtool beim Start des Hostsystems<br />

automatisch gestartet und beim<br />

Shutdown wieder gestoppt. Die in Tabelle<br />

1 aufgeführten Befehle stehen nun zur<br />

Steuerung der VMs zur Verfügung:<br />

Fazit<br />

Virtualbox ist eine echte Alternative<br />

zu den etablierten und meist wesentlich<br />

komplexeren Virtualisierungsumgebungen<br />

von VMware und Co.<br />

Zwar ist Virtualbox eigentlich für den<br />

Einsatz auf dem Desktop gedacht, jedoch<br />

lässt sich der Hypervisor im sogenannten<br />

Headless-Mode auch ohne grafische<br />

Oberfläche steuern.<br />

Die fehlende Netzwerkfähigkeit des<br />

Virtualbox GUI lässt sich durch den Einsatz<br />

zweier Open-Source-Projekte vollständig<br />

kompensieren. (ofr)<br />

n<br />

Infos<br />

[1] Virtualbox: [http:// www. virtualbox. org]<br />

[2] Linux-Downloads: [https:// www. virtualbox.​<br />

org/ wiki/ Linux_Downloads]<br />

[3] Kommandoreferenz für Vboxmanage:<br />

[http:// www. virtualbox. org/ manual/ ch08.​<br />

html]<br />

[4] PHP-Virtualbox:<br />

[http:// code. google. com/ p/ phpvirtualbox]<br />

[5] Ubuntu-Apache-Dokumentation:<br />

[https:// help. ubuntu. com/ 10. 04/​<br />

serverguide/ C/ httpd. html]<br />

[6] Vboxtool: [http:// sourceforge. net/ projects/​<br />

vboxtool/ files/ vboxtool/ 0. 4/]<br />

Der Autor<br />

Thomas Zeller beschäftigt sich seit 15 Jahren<br />

mit IT-Sicherheit und Open Source. Er ist Autor<br />

/ Co-Autor der Bücher „OpenVPN kompakt“ und<br />

„Mindmapping mit Freemind“. Im richtigen Leben<br />

ist er Geschäftsführer eines mittelständischen<br />

IT-Systemhauses.<br />

118 Ausgabe 03-2012 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 admin magazin<br />

der letzten 12 monate ganz einfach und versandkostenfrei<br />

unter www.admin-magazin.de/einzelheft nachbestellen:<br />

admin 03/2011 admin 04/2011 admin 05/2011<br />

admin 06/2011 admin 01/2012 admin 02/2012<br />

damit Sie keine ausgabe mehr verpassen,<br />

bestellen Sie am besten gleich ein abo<br />

vom admin magazin und sparen:<br />

Telefonisch unter: 07131 / 2707 274,<br />

per Fax: 07131 / 2707 78 601 oder<br />

E-Mail: abo@admin-magazin.de,<br />

Web: www.admin-magazin.de/abo


Programmieren<br />

Python-RPMs<br />

© Oleg Zhukov, 123RF<br />

RPM-Pakete von und für Python<br />

Eingepackt<br />

Um auf einem Linux-System Ordnung zu halten, verwendet jede Distribution<br />

ein System zum Paketmanagement. Skriptsprachen wie Python<br />

verwalten ihre Pakete aber selbst, was dann ins Chaos führt. Dieser Artikel<br />

weist auf RPM-basierten Systemen einen Ausweg. Oliver Frommel<br />

Wer einmal mehr als oberflächliche Bekanntschaft<br />

mit einer Skriptsprache unter<br />

Linux gemacht hat, kennt das Problem:<br />

Jede kocht, was das Management von<br />

Modulen und Bibliotheken betrifft, ihr<br />

eigenes Süppchen. Da haben die Distributoren<br />

viel Mühe aufgewendet, um<br />

mit Dpkg/​Apt und RPM alle Dateien in<br />

Pakete zu packen, die sich einfach installieren<br />

und wieder entfernen lassen, doch<br />

die Programmiersprachen machen nicht<br />

mit. Perl hat schon seit Urzeiten sein<br />

CPAN-Interface, Ruby seine Gems, PHP<br />

will statt Äpfel lieber Birnen und setzt<br />

auf Pear. Die Lua-Gemeinde ist sich noch<br />

uneinig und bietet neben Luarocks noch<br />

Luadist, selbst Node.js, der neueste Hype<br />

der Webwelt, hat mit NPM ein eigenes<br />

Paketsystem zu bieten.<br />

Wenn eine Linux-Distribution eine der<br />

Sprachen ausliefert, sind oft auch wichtige<br />

Bibliotheken im distributionseigenen<br />

Format vorhanden, doch früher oder später<br />

braucht man ein Modul, das im Repository<br />

fehlt. Dies lässt sich zwar leicht<br />

installieren, doch dann ist die schöne Konsequenz<br />

des Paketmanagements dahin.<br />

Bei einem Upgrade oder einer Migration<br />

muss man sich mindestens eine Liste der<br />

installierten Skript-Module machen und<br />

sie dann erneut von Hand installieren.<br />

Eier legen<br />

In der Python-Community sind Erweiterungsmodule<br />

auch als Eggs [1] bekannt,<br />

die früher über das Tool »easy_install«<br />

[2] verwaltet wurden, wenn man das so<br />

nennen will, denn außer der Installation<br />

beherrscht es wenige Funktionen. Zum<br />

Beispiel kann es nicht die installierten<br />

Pakete auflisten oder wieder entfernen.<br />

Mittlerweile wurde es von »pip« [3] abgelöst,<br />

das in dieser Beziehung mehr zu<br />

bieten hat. Beide Tools können jedoch<br />

Abhängigkeiten auflösen und die geforderten<br />

Pakete direkt aus dem Netz laden<br />

und anschließend installieren.<br />

Zentrale Anlaufstelle für alle Bedürfnisse<br />

rund um Python-Module ist der Python<br />

Package Index (PyPI, [4]), informell auch<br />

Cheeseshop genannt – gerne benennen<br />

Python-Programmierer ihre Werkzeuge<br />

nach Gegenständen aus der Welt von<br />

Monty Python, den Namenspatronen der<br />

Sprache [5]. Wenn Sie zum Beispiel die<br />

Bibliothek Cloth installieren möchten, die<br />

virtuelle Maschinen der Amazon-Cloud<br />

EC2 fernsteuern kann, verwenden Sie<br />

dazu den folgenden Befehl:<br />

pip install cloth<br />

Sie müssen ihn allerdings mit Root-Rechten<br />

ausführen, denn das kleine Programm<br />

will in die Python-Modulverzeichnisse<br />

schreiben, die typischerweise in »/usr/<br />

lib/pythonVersion«, »/usr/lib64/python-<br />

Version« und so weiter liegen. Im konkreten<br />

Fall installiert »pip« zusätzlich noch<br />

die benötigten Python-Module »fabric«<br />

und »ssh«. Bei Fedora Linux heißt Pip,<br />

wenn man es über den Paketmanager<br />

installiert, übrigens »python‐pip«, das zugehörige<br />

Kommando aber »pip‐python«.<br />

Eine Liste der installierten „Eier“ zeigt<br />

»pip freeze«, das Upgrade eines Pakets<br />

spielt man per »pip install ‐U Paketname«<br />

ein. Entfernen lässt sich ein Modul mit<br />

»pip uninstall Paketname«.<br />

Spätestens jetzt ist aber der Punkt erreicht,<br />

an dem es unübersichtlich wird:<br />

Manche der Eggs, die sich etwa auf dem<br />

120 Ausgabe 03-2012 Admin www.admin-magazin.de


Python-RPMs<br />

Programmieren<br />

Fedora-System in »/usr/lib/python2.7/<br />

site‐packages/« befinden, wurden mit<br />

dem RPM-Paketmanager des Systems<br />

installiert; die anderen mit Pip, aber von<br />

denen weiß RPM nichts, wie ein Aufruf<br />

von »rpm ‐qf« zeigt (Listing 1).<br />

Das Problem lässt sich dadurch lösen,<br />

dass man von den benötigten Python-Modulen<br />

eigene RPM-Pakete baut und diese<br />

auf dem System installiert, statt direkt Pip<br />

zu verwenden. Das ist etwas aufwendiger,<br />

doch wenn man eine größere Zahl<br />

von Produktionssystemen betreut, auf die<br />

man kontrolliert und regelmäßig Python-<br />

Module installieren möchte, lohnt sich<br />

der Aufwand.<br />

Phasenweise<br />

Im Prinzip unterscheiden sich RPM-<br />

Pakete mit Python-Modulen nur wenig<br />

von solchen mit Binärprogrammen: Das<br />

sogenannte Spec-File enthält die Metadaten<br />

für das Paket und legt fest, welche Dateien<br />

enthalten sind, und wo sie auf dem<br />

Zielsystem landen sollen. Anders sind<br />

nur die Phasen der Konfiguration und<br />

der Übersetzung. Wo Binärprogramme<br />

heute meistens Autoconf verwenden, um<br />

den Quellcodebaum vorzubereiten, gibt<br />

es bei Python dafür andere Mittel. Die bei<br />

C-Programmen obligatorische Compile-<br />

Phase fällt bei Python-Modulen oft weg –<br />

allerdings gibt es auch Module, die kleine<br />

C-Bibliotheken compilen.<br />

Zu Beginn sind die gleichen Voraussetzungen<br />

zu erfüllen, wie sie beim Bauen<br />

von RPM-Paketen immer nötig sind. Als<br />

Administrator Root zu arbeiten, ist weder<br />

ratsam noch notwendig. Also legen Sie<br />

sich als gewöhnlicher Benutzer im Home-<br />

Verzeichnis ein Verzeichnis »rpmbuild«<br />

mit den Unterverzeichnissen »BUILD«,<br />

»RPMS«, »SOURCES«, »SPECS« und »SR-<br />

PMS« an. Das lässt sich mit einem einzigen<br />

Befehl erledigen:<br />

mkdir ‐p ~/rpmbuild/{BUILD,RPMS,SOURCES,U<br />

SPECS,SRPMS}<br />

Typischerweise verwenden die RPM-<br />

Tools standardmäßig diese Einstellungen.<br />

Tun sie das nicht, hinterlegen Sie das<br />

entsprechende Makro »%_topdir« in der<br />

Einstellungsdatei »~/.rpmmacros«:<br />

echo '%_topdir %(echo $HOME)/rpmbuild' U<br />

>> ~/.rpmmacros<br />

Makros sind mit einem Prozentzeichen<br />

gekennzeichnet und können auch Befehle<br />

enthalten.<br />

Die Programme, die nötig sind, um<br />

RPMs zu bauen, stecken im Paket<br />

»rpm‐build«. Weitere wichtige Makros<br />

und andere Einstellungen finden sich in<br />

»redhat‐rpm‐config«. Auch die Python-<br />

Entwicklungspakete sollten Sie bei der<br />

Gelegenheit gleich installieren:<br />

yum install rpm‐build redhat‐rpm‐config U<br />

python‐devel python‐setuptools<br />

Damit sind alle Voraussetzungen erfüllt,<br />

und Sie können daran gehen, die Spec-<br />

Datei für das Paket zu schreiben.<br />

Ran an den Spec<br />

Wer auf Fedora Linux mit dem Vim-Editor<br />

eine Datei mit der Endung ».spec«<br />

öffnet, hat es einfach, denn er bekommt<br />

ein leeres Template für Spec-Dateien präsentiert<br />

(Abbildung 1). Zur Veranschaulichung<br />

soll im Folgenden zunächst ein<br />

RPM-Paket für ein selbst geschriebenes<br />

Python-Tool entstehen, das aus einem<br />

Skript, einer Glade-Datei für die GUI und<br />

einer Konfigurationsdatei besteht. Nach<br />

der Installation des Pakets sollen die Dateien<br />

an folgenden Stellen auf dem Dateisystem<br />

liegen.<br />

/etc/encoder.cfg<br />

/usr/bin/encoder‐gui<br />

/usr/share/encoder/encoder‐gui.glade<br />

Wer dies nachmachen möchte, kann dazu<br />

einfach beliebige Dateien verwenden und<br />

entsprechend benennen.<br />

Der »Name« (erste Zeile der Spec-Datei)<br />

soll »encoder« lauten, die »Version« ist<br />

»1.0«. Die darauf folgende Release-Zahl<br />

ist spezifisch für das RPM-Paket und soll<br />

dazu dienen, dass es für ein und dieselbe<br />

Upstream-Version einer Software mehrere<br />

RPMs geben kann, etwa für distributionsspezifische<br />

Updates. Die »Summary« gibt<br />

eine kurze Beschreibung der Software,<br />

dann folgt die Anwendungsgruppe, in die<br />

sie eingeordnet werden soll. Im Beispiel<br />

soll es »Applications/Multimedia« sein,<br />

da es sich um einen einfachen Video-<br />

Encoder handelt. Listen existierender<br />

Gruppen für Fedora und Open Suse finden<br />

sich unter [6] und [7]. Dann folgen<br />

die Lizenz und eine URL für das zu<br />

paketierende Projekt.<br />

Interessanter wird es beim Eintrag<br />

»Source0«. Hierher gehört meistens ein<br />

Tar-Paket, in dem sich der Quellcode des<br />

Programms verbirgt und das das Build-<br />

Abbildung 1: Praktisch: Unter Fedora bringt der Vim-Editor ein Template für Spec-Files mit.<br />

Listing 1: Uneinheitlich<br />

01 $ rpm ‐qf /usr/lib/python2.7/site‐packages/<br />

virtinst‐0.600.1‐py2.7.egg‐info<br />

02 python‐virtinst‐0.600.1‐1.fc16.noarch<br />

03 $ rpm ‐qf /usr/lib/python2.7/site‐packages/<br />

cloth‐0.2‐py2.7.egg‐info/<br />

04 Die Datei /usr/lib/python2.7/site‐packages/<br />

cloth‐0.2‐py2.7.egg‐info gehört zu keinem Paket<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

121


Programmieren<br />

Python-RPMs<br />

Skript im Verzeichnis »SOUR-<br />

CES« erwartet. Im Beispiel ist<br />

es die Datei »encoder‐1.0.tar.<br />

gz«, die folgende Dateien enthält:<br />

$ tar tfz encoder‐1.0.tar.gz<br />

encoder‐1.0/<br />

encoder‐1.0/encoder.cfg<br />

encoder‐1.0/encoder‐gui.glade<br />

encoder‐1.0/encoder‐gui<br />

Der vorgegebene Eintrag<br />

»BuildRequires« wird im<br />

Beispiel gelöscht, denn eine<br />

Übersetzung des Programms<br />

findet nicht statt, also gibt es dafür auch<br />

keine Voraussetzungen. Üblicherweise<br />

werden hier sonst Pakete aufgeführt, die<br />

vorhanden sein müssen, damit die Übersetzung<br />

klappt, also Entwicklungspakete<br />

mit Header-Dateien und so weiter.<br />

Das Feld »Requires« gibt dagegen Pakete<br />

an, die vorhanden sein müssen, damit<br />

das installierte Programm starten kann.<br />

Fürs Erste soll es hier keine Voraussetzungen<br />

geben, also löschen Sie auch dieses<br />

Feld, damit es keine Fehlermeldung gibt.<br />

Die Architektur ist bei plattformübergreifenden<br />

Skripts wie Python als »noarch«<br />

zu kennzeichnen. Unterhalb des Makros<br />

»%description« sollten Sie noch eine ausführlichere<br />

Beschreibung einfügen.<br />

Dann folgen die Stufen des eigentlichen<br />

Paketbaus: Prepare, Build, Install und<br />

Clean mit ihren jeweiligen Makros. Für<br />

das einfache Beispiel können die Phasen<br />

»%prep« und »%build« leer bleiben, man<br />

könnte aber beispielsweise hier Variablen<br />

und Pfade in Skripten ersetzen. An dieser<br />

Stelle lassen sich die Syntax der Spec-<br />

Datei und die Prepare-Phase mit dem<br />

Befehl »rpmbuild ‐bp« testen:<br />

Listing 2: »encoder.spec«<br />

01 Version: 1.0<br />

02 Release: 1%{?dist}<br />

03 Summary: Video Encoder for Ogg/Theora<br />

04 <br />

05 Group: Applications/Multimedia<br />

06 License: Inhouse<br />

07 URL: http://www.admin‐magazin.de<br />

08 Source0: encoder‐1.0.tar.gz<br />

09 BuildRoot: %(mktemp ‐ud %{_tmppath}/%{name}‐%{v<br />

ersion}‐%{release}‐XXXXXX)<br />

10 BuildArch: noarch<br />

11 ...<br />

12 %install<br />

13 rm ‐rf $RPM_BUILD_ROOT<br />

Abbildung 2: Der Befehl »rpmbuild ‐bp« testet die Syntax des Spec-File und die<br />

Prepare-Phase.<br />

rpmbuild ‐bp rpmbuild/SPECS/encoder.spec<br />

Ohne Fehlermeldung mit Error 0 beendet,<br />

hat das Spec-File den <strong>Test</strong> bestanden<br />

(Abbildung 2)<br />

In der Install-Phase simuliert das RPM-<br />

Build-Tool eine Installation im sogenannten<br />

Build-Root, das für diesen Zweck die<br />

Wurzel des Dateisystems darstellt. Bei der<br />

„echten“ Installation des fertigen RPMs<br />

wandern die enthaltenen Dateien an die<br />

entsprechenden Orte im Dateisystem.<br />

Vor dem simulierten Installationsprozess<br />

löscht der Befehl »rm ‐rf $RPM_<br />

BUILD_ROOT« sicherheitshalber die<br />

alten Dateien. Üblicherweise wird über<br />

die Spec-Datei danach nur »make install«<br />

aufgerufen, was die nötigen Unterverzeichnisse<br />

erstellt. Das einfache Beispiel<br />

führt alle nötigen Befehle stattdessen direkt<br />

im Spec-File auf: Erst werden die<br />

nötigen Verzeichnisse angelegt, dann die<br />

drei enthaltenen Dateien an ihren Bestimmungsort<br />

kopiert. Auch das Clean-<br />

Makro entfernt anschließen wieder das<br />

Build-Root. Abschließend müssen Sie<br />

beim Makro »%files« noch alle Dateien<br />

14 mkdir ‐p $RPM_BUILD_ROOT/etc<br />

15 mkdir ‐p $RPM_BUILD_ROOT/usr/bin<br />

16 mkdir ‐p $RPM_BUILD_ROOT/usr/share/encoder<br />

17 cp encoder.cfg $RPM_BUILD_ROOT/etc/<br />

18 cp encoder‐gui $RPM_BUILD_ROOT/usr/bin<br />

19 cp encoder‐gui.glade $RPM_BUILD_ROOT/usr/share/<br />

encoder<br />

20 ...<br />

21 %files<br />

22 %defattr(‐,root,root,‐)<br />

23 %doc<br />

24 /etc/encoder.cfg<br />

25 /usr/bin/encoder‐gui<br />

26 /usr/share/encoder/encoder‐gui.glade<br />

auflisten, die letztlich im RPM<br />

enthalten sein sollen. Listing<br />

2 zeigt ausschnittweise die<br />

wichtigsten Einträge im Spec-<br />

File.<br />

Den Bau des RPM-Pakets startet<br />

nun der Aufruf »rpmbuild<br />

‐ba« beziehungsweise »rpmbuild<br />

‐bb«. Der Unterschied<br />

besteht darin, dass die erste<br />

Variante alle (»a«) Pakete<br />

baut, das heißt das Binärpaket<br />

und das Source-RPM (SRPM),<br />

während der zweite Aufruf<br />

sich auf das Binärpaket beschränkt<br />

(»b«). Den erfolgreichen Ablauf zeigt Abbildung<br />

3. Als Ergebnis finden sich die<br />

beiden Dateien »~/rpmbuild/SRPMS/<br />

encoder‐1.0‐1.fc16.src.rpm« und »~/<br />

rpmbuild/RPMS/noarch/encoder‐1.0‐1.<br />

fc16.noarch.rpm«. Letztere lässt sich mit<br />

»rpm -i« wie gewohnt installieren.<br />

Abhängig<br />

In der Praxis ist es oft etwas komplizierter,<br />

zum Beispiel, wenn das Skript<br />

Abhängigkeiten von anderen Paketen besitzt.<br />

So verwendet der oben paketierte<br />

Video-Encoder zum Parsen von XML das<br />

Elementtree-Modul [8]. Diese Abhängigkeit<br />

lässt sich im Spec-Datei über die<br />

folgende Zeile festlegen:<br />

Requires: elementtree<br />

Baut man nun das Encoder-Paket neu<br />

und versucht es zu installieren, quittiert<br />

RPM das mit einer Fehlermeldung über<br />

das fehlende Elementtree-Paket. Das<br />

wiederum fehlt im Fedora-Repository<br />

und ist somit ein Kandidat für ein weiteres<br />

RPM-Projekt. Per Wget lässt sich<br />

das Quell codepaket gleich im passenden<br />

Verzeichns herunterladen:<br />

cd rpmbuild/SOURCES<br />

wget http://effbot.org/media/downloads/U<br />

elementtree‐1.2.6‐20050316.tar.gz<br />

In »rpmbuild/SPECS« editieren Sie dann<br />

die Datei »elementtree.spec«. Wie gehabt<br />

füllen Sie die einzelnen Felder für Name<br />

und so weiter aus. Die Version ist hier<br />

die Upstream-Version von Elementtree,<br />

also 1.2.6. Als »Source0« geben Sie die<br />

Datei »elementtree‐1.2.6‐20050316.tar.gz«<br />

an. Wenn Sie nun »rpmbuild ‐bp« aufrufen,<br />

bekommen Sie eine Fehlermeldung,<br />

122 Ausgabe 03-2012 Admin www.admin-magazin.de


Python-RPMs<br />

Programmieren<br />

der eben beschriebene Weg dazu verwenden,<br />

RPM-Pakete aus ihnen zu bauen. In<br />

anderen Fällen müssen gegebenenfalls<br />

nur die Aufrufe zur Konfiguration und<br />

Übersetzung angepasst werden.<br />

Ausblick<br />

Abbildung 3: Der Befehl »rpmbuild ‐ba« erzeugt das binäre sowie das Source-RPM des Python-Skripts.<br />

Mit den beschriebenen Mitteln lassen<br />

sich aus eigenen Python-Skripts wie aus<br />

fertigen Bibliotheken RPM-Pakete bauen.<br />

Damit sind auch die installierten Python-<br />

Programme Teil des distributionseigenen<br />

Paketmanagements. Nicht gelöst ist damit<br />

das Problem einfacher Updates, die direkt<br />

von den Paket-Maintainern kommen.<br />

Wer unterschiedliche Python-Versionen<br />

mit verschiedenen Modulen auf einem<br />

Server betreiben muss, findet eine Lösung<br />

in Virtualenv, um das es in einem<br />

künftigen Artikel zur Python-Programmierung<br />

gehen wird.<br />

n<br />

denn das Tool findet das Verzeichnis der<br />

entpackten Dateien nicht. Standardmäßig<br />

erwartet es, entsprechend dem Projektnamen<br />

und der Versionsnummer, das<br />

Verzeichnis »elementtree‐1.2.6«, aber das<br />

entpackte Verzeichnis heißt »elementtree‐1.2.6‐20050316«.<br />

Damit alles funktioniert,<br />

übergeben Sie dem Setup-Makro<br />

den richtigen Verzeichnisnamen:<br />

%setup ‐q ‐n elementtree‐1.2.6‐20050316<br />

Auch der Build-Abschnitt lässt sich dieses<br />

Mal sinnvoll nutzen, denn mit den<br />

Python-Distutils gebaute Module können<br />

mit »python setup.py config« konfiguriert<br />

werden. Damit ersetzen Sie das im<br />

Template vorgegebene »%configure«-<br />

Makro und löschen die Zeile mit »make«.<br />

Schließlich ist es in diesem Fall auch nicht<br />

nötig, die Dateien von Hand zu kopieren,<br />

dies übernimmt ein Aufruf von »python<br />

setup.py install«, hinter dem aber noch<br />

ein Parameter folgen muss, der das Build-<br />

Root angibt:<br />

python setup.py install ‐‐root %{buildroot}<br />

Die im RPM enthaltenen Dateien können<br />

beim Files-Makro dieses Mal mit einer<br />

Wildcard angegeben werden:<br />

/usr/lib/python2.7/site‐packages/*<br />

Wer jetzt den Paketbau mit »rpmbuild<br />

‐bb« startet, findet nur wenige Augenblicke<br />

später das RPM-Paket »elementtree‐1.2.6‐1.fc16.noarch.rpm«<br />

im Verzeichnis<br />

»~/rpmbuild/RPMS/noarch«.<br />

Das Spec-File dafür ist noch einmal in<br />

Listing 3 zu sehen.<br />

Weil viele Python-Module die Distutils<br />

zur Konfiguration verwenden, lässt sich<br />

Infos<br />

[1] The Internal Structure of Python Eggs:<br />

[http:// peak. telecommunity. com/​<br />

DevCenter/ EggFormats]<br />

[2] Easy_install: [http:// peak. telecommunity.​<br />

com/ DevCenter/ EasyInstall]<br />

[3] Pip: [http:// www. pip‐installer. org]<br />

[4] Python Package Index („Cheeseshop“):<br />

[http:// pypi. python. org/ pypi]<br />

[5] Why is it called Python?:<br />

[http:// docs. python. org/ faq/ general.​<br />

html# why‐is‐it‐called‐python]<br />

[6] RPM-Gruppen Fedora: [http://​<br />

fedoraproject. org/ wiki/ RPMGroups]<br />

[7] RPM-Gruppen Open Suse:<br />

[http:// en. opensuse. org/​<br />

openSUSE:Package_group_guidelines]<br />

[8] Elementtree: [http:// effbot. org/ downloads/​<br />

# elementtree]<br />

Listing 3: »elementtree.spec«<br />

01 Name: elementtree<br />

13 %description<br />

25 <br />

02 Version: 1.2.6<br />

14 ElementTree ‐ a light‐weight XML object model<br />

26 %clean<br />

03 Release: 1%{?dist}<br />

for Python.<br />

27 rm ‐rf $RPM_BUILD_ROOT<br />

04 Summary: XML Parsing Library for Python<br />

15 <br />

28 <br />

05 <br />

16 %prep<br />

29 %files<br />

06 Group: Development/Libraries<br />

17 %setup ‐q ‐n elementtree‐1.2.6‐20050316<br />

30 %defattr(‐,root,root,‐)<br />

07 License: Python<br />

18 <br />

31 %doc<br />

08 URL: http://effbot.org/zone/element‐index.htm<br />

19 %build<br />

32 /usr/lib/python2.7/site‐packages/*<br />

09 Source0: elementtree‐1.2.6‐20050316.tar.gz<br />

20 python setup.py config<br />

33 <br />

10 BuildRoot: %(mktemp ‐ud %{_tmppath}/%{name}‐%<br />

21 <br />

34 %changelog<br />

{version}‐%{release}‐XXXXXX)<br />

22 %install<br />

35 * Fri Apr 13 2012 O. Frommel <br />

12 <br />

24 python setup.py install ‐‐root %{buildroot}<br />

36 ‐ Initial RPM Release<br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

123


Programmieren<br />

Mod-Lua<br />

© Karel Miragaya, 123RF<br />

Apache 2.4 mit Mod-Lua<br />

Der Mond ist<br />

aufgegangen<br />

Lua ist eine kleine, schlanke und schnelle Skriptsprache – ideal also eigentlich,<br />

um auf einem Webserver zu werkeln. Doch erst die brandneue<br />

Version 2.4 des Apache Webservers liefert offiziell ein passendes Modul<br />

mit. Das hat nicht nur ein paar kleinere Macken, sondern es durchaus<br />

auch in sich. Tim Schürmann<br />

Die Skriptsprache Lua entstand bereits<br />

1993 an der Universität von Rio de<br />

Janeiro und steht ab Version 5 unter der<br />

MIT-Lizenz [1]. Der nur wenige Kbyte<br />

(!) kleine Interpreter ist extrem schnell<br />

und lässt sich über eine C-Schnittstelle<br />

bequem an andere Programme anflanschen.<br />

Aus diesem Grund war und ist<br />

Lua vor allem in der Spielebranche äußerst<br />

beliebt. Mittlerweile hat Lua aber<br />

auch seriöse Anwendungen erobert, so<br />

werkelt es etwa in Adobes Lightroom<br />

oder Wireshark. Lua selbst ist eine imperative<br />

und funktionale Sprache, eine<br />

objektorientierte Programmierung ist in<br />

Ansätzen möglich. Die Syntax kommt so<br />

mit wenigen Schlüsselwörtern aus, im<br />

Gegenzug wirken Lua-Programme etwas<br />

kryptischer als beispielsweise ihre PHP-<br />

Pendants.<br />

Mit all diesen Eigenschaften drängt sich<br />

Lua förmlich auch als Skriptsprache für<br />

Webserver auf. So verwundert es wenig,<br />

dass immer mal wieder entsprechende<br />

Module für Apache entstanden. Das<br />

ambitionierte Kepler-Projekt ging sogar<br />

noch einen Schritt weiter [2]. Mit einem<br />

Haufen selbst entwickelter Werkzeuge,<br />

Bibliotheken und Standards sollte man<br />

in Lua ganz einfach komplette Web-<br />

Anwendungen schreiben können. Eines<br />

der Ergebnisse war Xavante, ein in Lua<br />

geschriebener Webserver [4]. Seit 2010<br />

liegt das Kepler-Projekt jedoch auf Eis.<br />

Auch die vielen Apache-Module schafften<br />

nie den Sprung in das offizielle Apache-<br />

Paket und verschwanden schnell wieder<br />

von der Bildfläche – mit einer Ausnahme.<br />

2006 begann Brian McCallister die Arbeit<br />

an einem Modul mit dem etwas kuriosen<br />

Namen »mod_wombat«. Es flanscht den<br />

Lua-Interpreter an den Apache-Webserver<br />

an, sodass dieser Lua-Skripte starten<br />

und ausführen kann – ganz analog zu<br />

»mod_php« und »mod_perl«. Obwohl die<br />

Weiterentwicklung über die Jahre eher<br />

schleppend verlief, wanderte McCallisters<br />

Modul ganz offiziell in den neuen<br />

Apache 2.4. Im Zuge dessen benannten<br />

es seine Entwickler in »mod_lua« um.<br />

Dummerweise hießen so jedoch auch<br />

schon viele ausgemusterte Apache-Module.<br />

Wer nach einer Dokumentation im<br />

Internet sucht, stolpert folglich über viele<br />

unbrauchbare Altlasten.<br />

Work in progress<br />

Und es gibt noch einen Haken: »mod_<br />

lua« gehört zwar zum Lieferumfang von<br />

Apache, ist aber immer noch als experimentell<br />

gekennzeichnet. Es eignet sich<br />

somit nicht für den produktiven Betrieb.<br />

Nichtsdestotrotz arbeitet es bereits durchweg<br />

stabil und lockt mit der Einbindung<br />

von Hooks – folglich lohnt durchaus<br />

schon jetzt ein Blick.<br />

Wer »mod_lua« nutzen möchte, muss<br />

das Modul bereits bei der Übersetzung<br />

des Apache-Servers miterstellen lassen.<br />

Dazu benötigt man wiederum die Lua-<br />

Bibliothek in der Version 5.1 einschließlich<br />

der zugehörigen Entwicklerdateien.<br />

Unter Ubuntu heißen die entsprechenden<br />

Pakete »lua5.1« und »liblua5.1.0‐dev«,<br />

Open-Suse-Besitzer spielen hingegen<br />

»lua‐devel« und »liblua5_1« ein.<br />

Liegt Lua auf der Festplatte, wendet man<br />

sich dem Quellcode des Apache-Webservers<br />

zu. Das beiliegende »configure« startet<br />

man mit dem zusätzlichen Parameter<br />

»‐‐enable‐lua«. Alternativ kann man<br />

auch hinter »‐‐enable‐mods‐shared=«<br />

noch »lua« ergänzen oder gleich »‐‐enable‐mods‐shared=all«<br />

verwenden.<br />

Abkürzung XAMPP<br />

Wer keine Erfahrung mit dem Übersetzungsprozess<br />

hat, aber »mod_lua« unbedingt<br />

in einer kleinen <strong>Test</strong>installation<br />

auf seinem eigenen Linux-PC ausprobieren<br />

möchte, findet im Kasten „Schnellinstallation“<br />

eine kurze Anleitung. Die<br />

kommende Version 1.8.0 des für solche<br />

Zwecke beliebten Komplettpakets<br />

XAMPP wird zwar Apache 2.4 enthalten,<br />

126 Ausgabe 03-2012 Admin www.admin-magazin.de


Mod-Lua<br />

Programmieren<br />

»mod_lua« gab es in der zum<br />

Redaktionsschluss verfügbaren<br />

zweiten Beta- Version erstaunlicherweise<br />

aber nur in<br />

der Windows-Variante [4].<br />

Um das Lua-Modul zu aktivieren,<br />

ergänzen Sie in der<br />

»httpd.conf« folgende Zeile<br />

(wer dem Kasten „Schnellinstallation“<br />

gefolgt ist, findet die Datei im<br />

Verzeichnis »~/httpd/conf«):<br />

LoadModule lua_module modules/mod_lua<br />

Mit einer weiteren Zeile darunter können<br />

Sie Apache anweisen, alle Dateien<br />

mit der Endung ».lua« als Lua-Skripte<br />

auszuführen:<br />

AddHandler lua‐script .lua<br />

»lua‐script« ist ein so genannter Handler,<br />

den »mod_lua« bereitstellt. Man kann<br />

ihn selbstverständlich wie die übrigen<br />

Apache-Handler nutzen.<br />

Nach dem Speichern der geänderten<br />

Konfiguration müssen Sie Apache einmal<br />

neustarten und können sich dann ans<br />

Schreiben von Lua-Skripten machen.<br />

Ein von Apache gestartetes Lua-Skript<br />

muss zwingend die Funktion »handle()«<br />

anbieten. Diese ruft »mod_lua« auf und<br />

übergibt ihr dabei ein Request-Objekt,<br />

das die meisten Beispiele »r« nennen:<br />

function handle(r)<br />

... mache etwas ...<br />

end<br />

Schnellinstallation<br />

Die folgenden Schritte installieren Apache mit<br />

»mod_lua« im Unterverzeichnis »httpd« des<br />

eigenen Heimatverzeichnisses. Dabei darf kein<br />

anderer Webserver laufen.<br />

Nachdem die Lua-Bibliotheken über den Paketmanager<br />

eingespielt sind, laden Sie sich von der<br />

Homepage des Apache-Webservers das aktuelle<br />

Archiv [5] und entpacken es. Unter [6] laden<br />

Sie sich die Pakete zu APR und APR-util herunter<br />

und entpacken sie im Unterordner »srclib/<br />

apr‐util« des Apache-Verzeichnisses. Anschließend<br />

streichen Sie die Versionsnummer aus<br />

den beiden Verzeichnisnamen. Der Inhalt des<br />

APR-Archivs liegt dann im Unterordner »srclib/<br />

apr«, der aus dem APR-Util-Paket unter »srclib/<br />

apr‐util«.<br />

Im Verzeichnis mit dem Apache-Quellcode setzen<br />

Sie jetzt die folgenden Befehle ab:<br />

./configure ‐‐prefix=$HOME/httpd U<br />

‐‐enable‐lua ‐‐with‐included‐apr<br />

Abbildung 1: Ausschließlich Laufzeitfehler schiebt »mod_lua« in die Ausgabe.<br />

Das Request-Objekt stellt ein paar Methoden<br />

bereit, über die man die fertige Seite<br />

zusammensetzt beziehungsweise ausgibt.<br />

Wie das funktioniert, zeigt Listing 1<br />

mit dem obligatorischen Hello-World-Beispiel.<br />

Kommentare beginnen in Lua immer<br />

mit zwei Bindestrichen. »r.content_<br />

type« ändert zunächst den MIME-Typ des<br />

zurückgelieferten Dokuments auf »text/<br />

plain«, »r.puts« gibt anschließend die Zeichenkette<br />

»Hallo Welt« aus.<br />

Um das Skript zu starten, parken Sie<br />

es unter dem Namen »hallo.lua« im<br />

Document-Root (wer dem Kasten<br />

„Schnell installation“ gefolgt ist, nimmt<br />

das Verzeichnis »~/httpd/htdocs«). Jetzt<br />

können Sie es einfach über den Browser<br />

ansteuern, also etwa über die URL<br />

»http://localhost/hallo.lua«.<br />

Sollte sich ein Tippfehler eingeschlichen<br />

haben, meldet Apache einen internen<br />

Server-Fehler (Nummer 500). Nur in bestimmten<br />

Fällen erscheint eine Fehlermeldung<br />

des Lua-Interpreters (Abbildung 1).<br />

Haben Sie vergessen, den MIME-Type zu<br />

setzen, bietet Apache in der Standard-<br />

make<br />

make install<br />

Am Ende sollte im Verzeichnis »~/httpd/modules«<br />

auch das Modul »mod_lua« liegen. Den<br />

Webserver startet schließlich:<br />

sudo ~/httpd/bin/apachectl start<br />

Wenn alles geklappt hat, erreichen Sie mit dem<br />

Browser unter der URL »http://localhost« eine<br />

Seite mit einer Erfolgsmeldung.<br />

Einen Neustart des Webservers veranlasst:<br />

sudo ~/httpd/bin/apachectl restart<br />

Der folgende Befehl beendet den Apache-Server<br />

wieder:<br />

sudo ~/httpd/bin/apachectl stop<br />

Um Apache nach den <strong>Test</strong>s wieder zu deinstallieren,<br />

löschen Sie einfach das Verzeichnis<br />

»~/httpd«.<br />

konfiguration sogar an, das<br />

Lua-Skript herunterzuladen.<br />

Namenstag<br />

In der Regel möchte man in<br />

einem Skript die Daten aus<br />

einem Formular auswerten.<br />

Ein einfaches Exemplar zeigt<br />

Listing 2. Die dortige HTML-Datei erstellt<br />

ein Formular, das den Vor- und Nachnamen<br />

seines Benutzers erfragt und diesen<br />

dann per Get-Methode an das Lua-Skript<br />

»antwort.lua« schickt.<br />

Dessen Inhalt zeigt Listing 3. Zunächst<br />

setzt die »handler()«-Funktion den<br />

MIME-Typ auf »text/html« und baut<br />

dann mit mehreren »r.puts()« den Anfang<br />

eines HTML-Dokuments zusammen.<br />

Anschließend muss sie an die Daten<br />

aus dem Formular gelangen. Dabei<br />

hilft wieder das Request-Objekt. Seine<br />

Methode »r:parseargs()« liefert alle per<br />

Get-Methode gesendeten Parameter in<br />

einer sogenannten Tabelle zurück. Diese<br />

Datenstruktur kennen andere Programmiersprachen<br />

auch als assoziatives Array<br />

oder Dictionary.<br />

Die von »parseargs()« zurückgelieferte<br />

Tabelle besitzt für jedes Formularfeld einen<br />

Eintrag mit dem Namen des Feldes<br />

und dem darin abgelegten Wert. Um an<br />

den Vor- und Nachnamen zu kommen,<br />

Listing 1: „Hello World“ mit Lua und »mod_lua«<br />

01 function handle(r)<br />

02 ‐‐ Setzte MIME‐Type auf text/plain:<br />

03 r.content_type = "text/plain"<br />

04 <br />

05 ‐‐ gebe den Text "Hallo Welt" zurück:<br />

06 r:puts("Hallo Welt!")<br />

07 end<br />

01 <br />

Listing 2: Datei »frage.html« mit einem Formular<br />

02 Frage<br />

03 <br />

04 Bitte geben Sie Ihren Vor‐ und Nachnamen<br />

ein:<br />

05 <br />

06 <br />

07 <br />

08 <br />

09 <br />

10 <br />

11 <br />

www.admin-magazin.de<br />

Admin<br />

Ausgabe 03-2012<br />

127


Programmieren<br />

Mod-Lua<br />

durchläuft die folgende »for«-Schleife die<br />

komplette Tabelle. Die »pairs()«-Funktion<br />

hilft ihr dabei, indem Sie auf den jeweils<br />

nächsten Eintrag in der Tabelle zeigt. In<br />

der Variablen »k« landet dabei der Name<br />

des Formularfeldes, in »v« sein entsprechender<br />

Inhalt.<br />

Die If-Abfrage prüft, ob es sich um den<br />

Vornamen handelt. Wenn ja, wandert<br />

er in die Variable »vorname«. Analog<br />

speichert die Variable »nachname« den<br />

Listing 3: Formularauswertung »antwort.lua«<br />

01 require 'string'<br />

02 <br />

03 function handle(r)<br />

04 r.content_type = "text/html"<br />

05 r:puts("")<br />

06 r:puts("Antwort")<br />

07 r:puts("")<br />

08 <br />

09 for k, v in pairs(r:parseargs()) do<br />

10 if k=='vorname' then<br />

11 vorname=v<br />

12 elseif k=='nachname' then<br />

13 nachname=v<br />

14 end<br />

15 end<br />

16 <br />

17 r:puts(string.format("Hallo %s %s!", vorname,<br />

nachname))<br />

18 <br />

19 r:puts("")<br />

20 end<br />

Listing 4: Unterscheidung Post und Get in Lua<br />

01 if r.method == 'GET' then<br />

02 for k, v in pairs( r:parseargs() ) do<br />

03 ‐‐ Hier folgt die Auswertung bei GET<br />

...<br />

04 end<br />

05 elseif r.method == 'POST' then<br />

06 for k, v in pairs( r:parsebody() ) do<br />

07 ‐‐ Hier folgt die Auswertung bei POST<br />

...<br />

08 end<br />

09 else<br />

10 r:puts("Unbekannte HTTP‐Methode")<br />

11 end<br />

Nachnamen. Variablen darf man in Lua<br />

einfach immer direkt benutzen und in<br />

ihnen zudem beliebige Werte abladen.<br />

Lua-Kenner dürften an dieser Stelle einwenden,<br />

dass man sich die ganze Schleife<br />

auch sparen und etwa per:<br />

alleparameter = r:parseargs();<br />

vorname = alleparameter["vorname"]<br />

direkt den Vornamen aus der Tabelle holen<br />

könnte. Dies führt jedoch zu einer<br />

Fehlermeldung, wenn der Vorname aus<br />

irgendeinem Grund gar nicht übertragen<br />

wurde.<br />

Nachdem in Listing 3 der Vorname und<br />

Nachname in ihren entsprechenden Variablen<br />

liegen, setzt sie die Funktion<br />

»string.format()« zu einer neuen Zeichenkette<br />

zusammen. Die Platzhalter<br />

»%s« tauscht »string.format()« dabei gegen<br />

die Inhalte der Variablen »vorname«<br />

und »nachname«. Das Ergebnis landet<br />

wiederum in »r:puts()« und somit dem<br />

fertigen HTML-Dokument (Abbildung<br />

2). »string.format()« stammt übrigens<br />

aus Luas Standardbibliothek »string«,<br />

die der Befehl »require« ganz am Anfang<br />

hinzuholt.<br />

Keine Postzustellung<br />

Listing 3 funktioniert nur, wenn das<br />

Skript die Formularinhalte per Get erhält.<br />

Sofern die Post-Methode zum Einsatz<br />

kommt, liefert »r:parsebody()« alle<br />

gewünschten Daten. Die verwendete<br />

HTTP-Methode verrät »r.method«. Damit<br />

lässt sich dann eine Fallunterscheidung<br />

wie in Listing 4 basteln. Obwohl sie so<br />

auch die offizielle »mod_lua«-Dokumentation<br />

vorschlägt, produzierte »parsebody()«<br />

in unseren <strong>Test</strong>s nur eine Fehlermeldung.<br />

Ein Blick in den Quellcode von<br />

»mod_lua« offenbarte, dass die Funktion<br />

zumindest unter Apache 2.4.2 noch gar<br />

nicht implementiert ist. Alle weiteren<br />

Funktionen und Attribute des Request-<br />

Objekts listet übrigens in der offiziellen<br />

Dokumentation des Moduls der Abschnitt<br />

„Data Structures“ auf [7].<br />

Leerstellen<br />

Standardmäßig muss das Lua-Skript die<br />

Funktion »handle()« enthalten. Die Konfigurations-Direktive<br />

»LuaMapHandler«<br />

kann das jedoch ändern. Fügt man der<br />

»httpd.conf« etwa die Zeile:<br />

LuaMapHandler /info /var/www/beispiel.luaU<br />

saghallo<br />

hinzu, würde Apache beim Abruf der<br />

URL »http://localhost/info« die Funktion<br />

»saghallo« im Lua-Skript »/var/www/<br />

beispiel.lua« starten.<br />

Die Betonung liegt dabei auf „würde“,<br />

denn diese Direktive ist ähnlich wie<br />

»parsebody()« schlichtweg nicht implementiert<br />

– und das, obwohl bereits fertige<br />

<strong>Test</strong>skripte dafür existieren (unter<br />

Listing 5: URL-Umleitung über ein Lua-Skript<br />

01 require 'string'<br />

02 require 'apache2'<br />

03 <br />

04 function translate_name(r)<br />

05 if r.uri == "/geheim" then<br />

06 r.uri = "/verboten.html"<br />

07 return apache2.DECLINED<br />

08 end<br />

09 return apache2.DECLINED<br />

10 end<br />

Abbildung 2: Das Antwort-Skript im Vordergrund nimmt die Anfrage entgegen und bastelt aus dem Namen<br />

eine neue Grußmeldung.<br />

Abbildung 3: Einige der Direktiven aus der »mod_lua«-Dokumentation waren schlichtweg noch nicht<br />

implementiert.<br />

128 Ausgabe 03-2012 Admin www.admin-magazin.de


Wert<br />

apache2.OK<br />

Tabelle 1: Standard-Rückgabewerfe für Hooks<br />

apache2.DECLINED<br />

apache2.DONE<br />

»/modules/lua/test« im Apache-Quellcode).<br />

Auch weitere interessante Direktiven<br />

glänzen durch ihre Abwesenheit,<br />

wie etwa »LuaCodeCache«, mit der man<br />

eigentlich das Cacheverhalten für Lua-<br />

Skripte beeinflussen soll.<br />

Am Haken<br />

Selbst geschriebene Module können sich<br />

über so genannte Hooks in die verschiedenen<br />

Verarbeitungsphasen des Webservers<br />

einklinken und Veränderungen vornehmen.<br />

»mod_lua« ermöglicht das auch<br />

einem Lua-Skript. Auf diese Weise kann<br />

man beispielsweise eine URL-Umleitung<br />

als Lua-Skript implementieren. Listing 5<br />

liefert beim Zugriff auf die URL »http://<br />

localhost/geheim« die HTML-Datei »verboten.html«<br />

zurück.<br />

Die im Listing 5 eingebundene Bibliothek<br />

»apache2« bietet unter anderem die<br />

Konstanten aus Tabelle 1. Je nach Hook<br />

können auch andere Rückgabewerte<br />

sinnvoll sein, etwa ein HTTP-Statuscode.<br />

Damit Apache weiß, in welcher Lua-Datei<br />

es wann welche Funktion aufzurufen<br />

hat, müssen Sie in der »httpd.conf« noch<br />

eine Zeile der Form:<br />

LuaHookTranslateName /usr/local/apache2/U<br />

skripte/umleitung.lua translate_name early<br />

hinzufügen. »LuaHookTranslateName«<br />

weist Apache an, die Lua-Funktion<br />

»translate_name« möglichst früh bei<br />

der Interpretation der Anfrage-URL<br />

aufzurufen.<br />

Den Funktionsnamen im Lua-Skript<br />

könnte man folglich auch anders benennen,<br />

wie in Listing 5 bietet es sich<br />

jedoch an, ihn wie den entsprechenden<br />

Apache-Hook zu taufen. Die Zeile »/usr/<br />

local/apache2/skripte/umleitung.lua«<br />

führt schließlich noch den kompletten<br />

Pfad zur Skript-Datei auf. Der optionale<br />

Parameter »early« sorgt dafür, dass Apache<br />

die Funktion so früh wie möglich im<br />

Verarbeitungsprozess anwirft. Mit »late«<br />

würde Apache die Funktion möglichst<br />

spät aktivieren.<br />

Bedeutung<br />

Anfrage war erfolgreich<br />

Skript nicht zuständig<br />

Anfrage komplett bearbeitet<br />

Alle weiteren existierenden Hook-<br />

Direktiven listet die offizielle Dokumentation<br />

des Moduls am unteren Seitenende<br />

auf [7]. Es gibt jedoch auch hier wieder<br />

einige Direktiven, die noch gar<br />

nicht implementiert sind. Weitere Beispielskripte<br />

insbesondere zu den Hooks<br />

warten im Apache-Quellcodeverzeichnis<br />

unter »modules/lua/test«.<br />

Fazit<br />

Mod-Lua ist verführerisch: Die über das<br />

Modul gestarteten Lua-Skripte klöppeln<br />

schneller ein HTML-Dokument zusammen<br />

als ihre PHP- oder Perl-Pendants<br />

und man darf Lua-Skripte über Hooks<br />

in die sogar Verarbeitungskette<br />

des Apache-<br />

Servers einhängen.<br />

Wer sich jedoch mit<br />

dem Modul etwas näher<br />

beschäftigt, stolpert<br />

schnell über zahlreiche<br />

Baustellen. Die<br />

Dokumen tation weist<br />

sogar explizit daraufhin,<br />

dass sich die Konfiguration<br />

und Arbeitsweise<br />

des Moduls in<br />

der Zukunft noch einmal<br />

ändern kann. Da<br />

passt es ins Bild, dass<br />

die einzige offizielle<br />

Dokumentation aus<br />

einer einzigen kargen<br />

Seite besteht [7].<br />

Angesichts dieser Mängel<br />

erstaunt es etwas,<br />

dass es »mod_lua«<br />

dennoch in das offizielle<br />

Apache-Paket<br />

geschafft hat. Andererseits<br />

steigen so auch<br />

die Chancen, dass<br />

mehr Entwickler auf<br />

das kleine Modul aufmerksam<br />

werden – was<br />

es eindeutig verdient<br />

hätte. (ofr)<br />

n<br />

Infos<br />

[1] Lua: [http:// www. lua. org]<br />

[2] Kepler-Projekt:<br />

[http:// www. keplerproject. org/ en/ Kepler]<br />

[3] Xavante:<br />

[http:// keplerproject. github. com/ xavante/]<br />

[4] XAMPP Beta-Versionen:<br />

[http:// sourceforge. net/ projects/ xampp/​<br />

files/ BETAS/]<br />

[5] Apache 2.4 Download: [http:// httpd.​<br />

apache. org/ download. cgi# apache24]<br />

[6] APR und APR-Util:<br />

[http:// apr. apache. org/ download. cgi]<br />

[7] Dokumentation zu Mod-Lua: [http:// httpd.​<br />

apache. org/ docs/ 2. 4/ mod/ mod_lua. html]<br />

Der Autor<br />

Tim Schürmann ist selbstständiger Diplom-<br />

Informatiker und derzeit hauptsächlich als freier<br />

Autor unterwegs. Zu seinen Büchern gesellen<br />

sich zahlreiche Artikel, die in Zeitschriften und<br />

auf Internetseiten in mehreren Ländern veröffentlicht<br />

wurden.<br />

www.admin-magazin.de<br />

Ausgabe 03-2012<br />

129


Service<br />

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

Impressum ISSN 2190-1066<br />

<strong>ADMIN</strong>-<strong>Magazin</strong><br />

eine Publikation der Linux New Media 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<br />

Chefredakteure<br />

Redaktion<br />

News/Report<br />

Software/<strong>Test</strong><br />

Security/Networking<br />

Ständige Mitarbeiter<br />

Produktionsleitung<br />

Grafik<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

Brian Osborn (Vorstand), bosborn@linuxnewmedia.de<br />

Hermann Plank (Vorstand), hplank@linuxnewmedia.de<br />

Oliver Frommel (V.i.S.d.P.),<br />

ofrommel@admin-magazin.de (ofr)<br />

Jens-Christoph Brendel<br />

jbrendel@admin-magazin.de (jcb)<br />

Ulrich Bantle (Ltg.), ubantle@linuxnewmedia.de (uba)<br />

Mathias Huber, mhuber@linuxnewmedia.de (mhu)<br />

Marcel Hilzinger, mhilzinger@linuxnewmedia.de, (mhi)<br />

Kristian Kißling, kkissling@linuxnewmedia.de, (kki)<br />

Markus Feilner, mfeilner@linuxnewmedia.de (mfe)<br />

Thomas Leichtenstern, tleichtenstern@linuxnewmedia.de (tle)<br />

Elke Knitter (Schlussredaktion),<br />

Carsten Schnober, Tim Schürmann, Claudia Thalgott<br />

Christian Ullrich, cullrich@linuxnewmedia.de<br />

Klaus Rehfeld, Judith Erb<br />

Titel: Judith Erb, Ausgangsgrafik: tiero, 123RF<br />

www.admin-magazin.de/abo<br />

Veronika Kramer<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 Linux-<strong>Magazin</strong>-Abo und beiden Jahres-DVDs<br />

Schüler- und 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 im 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.2010<br />

National<br />

Petra Jaser<br />

Tel.: 089/99 34 11 24, Fax: 089/99 34 11 99<br />

E-Mail: anzeigen@admin-magazin.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 und Medienservice GmbH<br />

97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unix-ähnlichen Betriebssysteme<br />

verschiedener Hersteller, zum Beispiel Eurix (Comfood), Ultrix (Digital Equipment), HP/UX (Hewlett-Packard) oder Sinix<br />

(Siemens) benutzt, nicht als die Bezeichnung für das Trademark von X/Open. Linux ist eingetragenes Marken zeichen von<br />

Linus Torvalds und 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 />

Zustimmung zum Abdruck im 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- und Verfügungsrecht für angenommene<br />

Manuskripte liegt beim 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–2012 Linux New Media AG<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 20<br />

<strong>ADMIN</strong> http://​www.admin-magazin.de 79, 107, 119<br />

Android User GY http://​www.android-user.de 103, 109<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 115<br />

Hetzner Online AG http://​www.hetzner.de 132<br />

Host Europe GmbH http://​www.hosteurope.de 9<br />

Hostserver GmbH http://​www.hostserver.de 45<br />

in-put Schulungen http://​www.in-put.de 65<br />

InterNetX GmbH http://​www.internetx.com 27<br />

Kamp Netzwerkdienste GmbH http://​www.kamp.net 7<br />

Kettner Mathias - Linux Experte http://​www.mathias-kettner.de 11<br />

Lamarc EDV-Schulungen u. Beratung<br />

GmbH http://​www.lamarc.com 55<br />

Linux-Hotel http://​www.linuxhotel.de 93<br />

Linux-<strong>Magazin</strong> http://​www.linux-magazin.de 99<br />

Linux-<strong>Magazin</strong> Academy http://​academy.linux-magazin.de 113, 131<br />

Linux-<strong>Magazin</strong> Online http://​www.linux-magazin.de 101<br />

Mittwald CM Service GmbH & Co. KG http://​www.mittwald.de 117<br />

netways GmbH http://​www.netways.de 31<br />

Netzwerktotal http://​www.netzwerktotal.de 129<br />

outbox AG http://​www.outbox.de 2<br />

pascom - Netzwerktechnik<br />

GmbH & Co.KG http://​www.pascom.net 13<br />

PlusServer AG http://​www.plusserver.de 32, 58, 84, 124<br />

SEP Aktiengesellschaft http://​www.sep.de 67<br />

Thomas Krenn AG http://​www.thomas-krenn.com 51<br />

Webtropia http://​www.webtropia.com 19<br />

Würth Phönix http://​wuerth-phoenix.com 43<br />

Einem Teil dieser Ausgabe liegen Beilagen des <strong>ADMIN</strong> (http://​www.admin-magazin.de) und der<br />

Linux-<strong>Magazin</strong> Academy (http://​www.academy.linux-magazin.de) bei. Wir bitten unsere Leser<br />

um freundliche Beachtung.<br />

Autoren dieser Ausgabe<br />

Eric Amberg Eintrittskarte 22<br />

Thomas Drilling Feuermelder 68<br />

Thomas Drilling Mit fremden Federn 104<br />

Thomas Drilling Vas-serdicht 52<br />

Susanne Ebrecht Wider die Blasen 86<br />

Werner Fischer Getrennte Wege 28<br />

Werner Fischer Maßgeschneidert 110<br />

Peer Heinlein Auf ewig 100<br />

Thomas Joos Alles im Blick 94<br />

Thomas Joos Ansichtssache 80<br />

Thomas Joos Festgeschnallt 74<br />

Martin Loschwitz Eingezäunt 90<br />

Martin Loschwitz In die Breite gegangen 46<br />

Thorsten Scherf Abgenabelt 16<br />

Tim Schürmann Der Mond ist aufgegangen 126<br />

Tim Schürmann Japanischer Sheriff 60<br />

Thomas Zeller Trennkost 114<br />

VORSCHAU<br />

<strong>ADMIN</strong> 04/2012 erscheint am 12. JULI 2012<br />

Sicherheit<br />

Wie gefährlich sind Seitenkanal—<br />

angriffe im Web? Welche Gefahren<br />

birgt Wildwuchs bei IPv6? Lassen sich<br />

Honeypot-Sensoren auf normale Server<br />

auslagern? Die Anworten gibt der<br />

Security-Schwerpunkt in der nächsten<br />

Ausgabe des <strong>ADMIN</strong>.<br />

Backups<br />

Es muss nicht immer ein<br />

Enterprise-Backup-System sein.<br />

Die Software Burp ermöglicht<br />

inkrementelle Backups, die Platz<br />

und Netzwerk-Traffic sparen. Für<br />

Windows-Systeme beherrscht es<br />

sogar Volume Shadow Copy.<br />

norebbo, 123RF<br />

130 Ausgabe 03-2012 Admin www.admin-magazin.de


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

ACADEMY<br />

... wir qualifizieren Ihre Mitarbeiter!<br />

IT Trainings Online<br />

Linux und Open Source<br />

Nutzen Sie die Vorteile<br />

der Linux-<strong>Magazin</strong> Academy!<br />

✓<br />

✓<br />

✓<br />

✓<br />

✓<br />

Kompetent: Unsere Dozenten sind ausge wiesene<br />

Profis mit lang jähriger Schulungserfahrung.<br />

Flexibel: Der Schulungsteilnehmer lernt, wann,<br />

wo und sooft er möchte.<br />

Kosteneffizient: Nutzen Sie Einsparungen<br />

gegenüber Vor-Ort-Schulungen.<br />

Übersichtlich: Die komfortable Web- Oberfläche<br />

zeigt gleich zeitig den Trainer und dessen<br />

Arbeitsfläche<br />

Individuell: Jeder Teilnehmer folgt seinem eigenen<br />

Lerntempo.<br />

Trainingspakete:<br />

• LPIC-1-Training<br />

LPIC-2-Training<br />

IT-Sicherheit Grundlagentraining<br />

• WordPress 3.0<br />

www.lpi.org<br />

OpenOffice – Arbeiten mit Vorlagen<br />

Was Teilnehmer über die<br />

Linux-<strong>Magazin</strong> Academy sagen:<br />

„Mit den Videos haben Sie ins Schwarze<br />

getroffen. Es gibt nichts Vergleichbares.“<br />

„Eine hervorragende Anleitung zum<br />

praktischen Arbeiten.“<br />

<strong>Test</strong>en Sie unsere Demovideos:<br />

academy.linux-magazin.de/demo<br />

Präsentiert von:<br />

www.linux-magazin.de<br />

www.linuxhotel.de<br />

Weitere Infos: academy.linux-magazin.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!