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