Beim Aufbau von Firmennetzen gelten Windows-Server als Standardlösung. ZDNet zeigt, wie man mit Linux als Alternative eine Infrastruktur ganz ohne Microsoft aufbaut und dabei seinen Usern in vielerlei Hinsicht bessere Dienste anbietet.
Windows-Server bieten sich als Basis-Infrastrukturserver für Firmennetze geradezu an. Sie sind einfach aufzusetzen, bieten mit dem Active Directory eine gute Benutzerverwaltung, die mit Zusatzkomponenten wie Exchange, SQL-Server und Sharepoint optimal zurechtkommt. Wer jedoch glaubt, dass eine Windows-Server-Infrastruktur nahezu konkurrenzlos ist, zu der es keine praktikable Alternative gibt, hat sich getäuscht.
Auf der Basis von Linux lässt sich eine Infrastruktur für das Intranet schaffen, die Windows in vielerlei Hinsicht sogar überlegen ist. Dafür sind nicht einmal tiefgreifende Unix- und Linux-Kenntnisse erforderlich.
So bietet der deutsche Hersteller Collax mit dem Collax Business Server[1] eine Linux-Distribution, die ohne Kommandozeile mittels eines AJAX-basierten Webinterface administriert werden kann. Collax vertreibt seine Produkte kostenpflichtig. Bei einer privaten Nutzung mit bis zu fünf Usern verlangt der Hersteller allerdings keine Lizenz.
Wer Lizenzkosten sparen will oder jenseits von Standardlösungen eine Infrastruktur aufbauen möchte, die sich sehr stark an die individuellen Bedürfnisse anpassen lässt, der sollte kostenlose Standard-Distributionen wie CentOS 5[2], Ubuntu Server 9[3] oder Debian 5.0[4] einsetzen.
Generell ist CentOS eine gute Empfehlung. CentOS ist binärkompatibel zu RedHat-Linux und gilt als äußerst stabil. Wer daran denkt, später einmal Produkte einzusetzen, die nicht im Source-Code verfügbar sind, kann alle Binaries für RedHat auch auf CentOS ausführen. Wer das höchste Maß an Modularität sucht, sollte Debian verwenden.
Obwohl Debian von den genannten Distributionen die größten Anforderungen an den Administrator stellt, muss man sich darüber im Klaren sein, dass ein Intranet auf der Basis von jeder Standard-Linux-Distribution nur von Admins betrieben werden kann, die große Erfahrung mit Linux besitzen.
Die Arbeit mit der Kommandozeile und Config-Files gehört genauso zum Alltag eines Unix-Administrators wie das Kompilieren von Open-Source-Programmen, was oft kleinere Anpassungen im Source-Code bedeutet. Firmen, die dieses Wissen in Form von gut ausgebildeten Admins nicht dauerhaft vorhalten können, sollten bestenfalls über eine Lösung wie Collax nachdenken. Bevor man sich an die Installation von Produktivdiensten wie File- und Printserver, Mailserver sowie Datenbankserver macht, sollte man die Basis-Infrastruktur aufbauen. Dazu gehört die Einrichtung von DHCP- und DNS-Servern.
Dabei sollte darauf geachtet werden, dass der DHCP-Server die Namen der Clients dynamisch beim DNS-Server ein- und austrägt[5]. So lässt sich sicherstellen, dass man Client-Computer anhand ihres Namens identifizieren kann.
Zu den Überlegungen bei der Einrichtung eines DHCP-Server gehört, welche Informationen Windows-Clients vom DHCP-Server benötigen. Neben IP-Adresse, DNS-Server und Standardgateway sollte man in einem professionellen Umfeld mindestens den Intranet-Domainnamen und die Netbios-Name-Resolution-Policy (Broadcast, Wins, Both oder Hybrid) nutzen.
Wer mehr als einen Linux-Server einsetzt, kommt nicht umhin, die Benutzerverwaltung für alle Server zu synchronisieren. Die Namen von Benutzern und Gruppen müssen auf allen Servern denselben UIDs und GIDs[6] zugewiesen sein. Alles andere führt zu Problemen.
Anders als bei Windows mit dem Active Directory gibt es für die verteilte Benutzerverwaltung verschiedene Möglichkeiten. Generell ist es sinnvoll, OpenLDAP[7] zu verwenden. Zum einen lassen sich Benutzerkonten mit OpenLDAP wie mit dem älteren, aber sicherheitsproblematischen NIS konsistent halten, zum anderen können sich viele Programme, etwa Mailserver oder Content-Management-Systeme, direkt gegen einen OpenLDAP-Server authentifizieren.
Die meisten Mailserver und Content-Management-Systeme benötigen keinen echten Unix-Benutzerkontext, sprich sie müssen keine Prozesse forken, die unter UID und GID des angemeldeten Benutzers laufen. Andere Programme, etwa der Fileserver Samba, benötigen diesen Kontext. Man kommt daher nicht umhin, NSS[8] und PAM[9] sauber zu konfigurieren.
Um Windows-Rechner mit File- und Printdiensten zu versorgen, eignet sich praktisch nur Samba[10]. Windows bietet ab Vista zwar auch einen NFS-Client[11], der allerdings nur Version 3 implementiert. Damit lässt sich keine ausreichende Sicherheit schaffen. Insbesondere können Clients vorgeben, jeder beliebige Benutzer zu sein. Mit der Option root_squash lässt zwar der Zugriff als root verhindern, jedoch kann Benutzer A jederzeit auf die Dateien von Benutzer B zugreifen.
Samba ist eine Implementierung des nativen Windows-File- und Printsharings mit dem Protokoll SMB[12]. Man muss sich darüber im Klaren sein, dass Samba eine Usermode-Implementierung von SMB ist. Samba erreicht daher nicht die Performance eines Windows-Fileservers. Es ist spürbar langsamer.
Was die konfigurierbaren Optionen angeht, übertrifft Samba seinem Windows-Pendant allerdings bei weitem. Das geht so weit, dass beim Auf- oder Abbau einer Verbindung durch einen Client ein Skript ausgeführt wird.
In der Definition für einen Share lassen sich Variablen einsetzen, etwa die IP-Adresse des Clients, der Benutzername oder die Version des Clients. Das eignet sich für eine ganze Reihe von Szenarien. So kann man bestimmte sicherheitsempfindliche Shares nur für IP-Teilnetze zugänglich machen. Nur wer in einem zulässigen Büro sitzt, bekommt Zugriff auf solche Shares.
Mit demselben Mechanismus ist es möglich, die Administratorrechte auf das interne Netzwerk zu beschränken. Wenn ein Admin sich per VPN einwählt, erhält er nur normale Benutzerrechte auf einem Share.
In der Standard-Konfiguration kennt Samba nur die Unix-Rechtestruktur. Mit der Konfigurationsoption nt acl support = yes lassen sich vollständige Access Control Lists[13] von Windows-Clients aus verwalten. Voraussetzungen dafür sind, dass ein Filesystem mit ACL-Unterstützung verwendet wird, etwa ext3 oder ReiserFS, das Filesystem mit der Option acl gemountet wurde und der Kernel ACLs unterstützt. Von Letzterem kann man bei nahezu jeder Distribution ausgehen.
In einer reinen Linux-Server-Installation kann kein Windows-Server die Benutzerauthentifizierung durchführen. Das müssen die Linux-Rechner übernehmen. Allerdings ist das schwieriger zu bewerkstelligen, als man annehmen möchte. Da das SMB-Protokoll Passwörter in der Regel nur als Hash übermittelt, kann der Samba-Server nicht einfach den Benutzer per PAM authentifizieren. Er muss über eine separate Passwort-Datenbank mit Hashwerten verfügen.
Dazu gibt es verschiedene Lösungsansätze. Der einfachste besteht darin, dass Benutzer nur über ihren Windows-Client Passwörter ändern dürfen. Samba lässt sich so konfigurieren, dass das Unix-Passwort ebenfalls geändert wird. Eine andere Möglichkeit bietet das PAM-Modul pam_smbpass.so. Dann kann jede Anmeldung, die PAM unterstützt, etwa per SSH über die Samba-Passwort-Datenbank erfolgen, die man sinnvollerweise mit der Option passdb backend = ldapsam:ldap://myldap.example.com zentral für alle Linux-Rechner vorhält.Unter Windows gibt es Features wie DFS-Replikation[14] und Volume Shadow Copies[15] (Schattenkopien), die ein Backup im laufendem Betrieb ermöglichen. Die DFS-Replikation erlaubt es, zwei Shares auf mehreren Servern mit identischem Datenbestand zu halten. So lässt sich ein Backup-Share anlegen, den man bei Bedarf sofort als Ersatz in den Produktivbetrieb nehmen kann, wenn der Original-Share ausfällt.
Samba unterstützt zwar DFS in der Form, dass mehrere physische Shares unter einem logischen Share erscheinen. Das dient vor allem dazu, Laufwerksbuchstaben auf den Windows-Clients zu sparen. DFS-Replikation wird allerdings nicht unterstützt. Wer eine solche Funktionalität benötigt, sollte ein Storage-System einsetzen, das eine Replikation zu einer zweiten physischen Lokation erlaubt.
Um ein Backup eines konsistenten Zustands aller Dateien sicherzustellen, eignen sich Schattenkopien. Auf diese Weise ist sichergestellt, dass Dateien weder durch andere Benutzer gesperrt sind noch Teile einer größeren Datei während des Backups geändert werden.
Samba bietet Support für Schattenkopien[16], wenn die Partition mit dem Logical Volume Manager[17] (LVM) angelegt wird. Windows-Clients können auf solche Schattenkopien zugreifen.
Das Setup ist allerdings nicht ganz einfach. Um ein konsistentes Backup zu erreichen, bleibt zu Schattenkopien keine Alternative. Auch hier gilt für professionelle Installationen, dass es am einfachsten ist, die Schattenkopiefunktion eines Storage-Systems zu nutzen.
Ferner gibt es keine Funktionalität, die dem Group-Policy-Management entspricht. Wer auf den Client-Rechnern Änderungen der Konfiguration zentral verwalten möchte, findet unter Linux keine einfache Lösung.
Eine kostenlose Mailanbindung mit POP3 und IMAP4 lässt sich unter Unix-Betriebssystemen schnell und einfach realisieren. Wenn aber der volle Komfort von Outlook mit Kontakten, Terminen und Aufgaben erforderlich ist, kommt man mit den Standard-Protokollen nicht weit.
Allerdings ist Microsoft Exchange nicht der einzige Server auf dem Markt, der alle Features von Outlook unterstützt. Produkte wie Communigate[18], Kerio[19], Zarafa[20] und OpenXchange[21] bieten wesentlich bessere Funktionalität als Exchange und laufen unter Linux. Zu Communigate gibt es einen ausführlichen ZDNet-Testbericht[18]. Die genannten Produkte sind nicht kostenlos, liegen preislich jedoch etwa bei der Hälfte von Exchange.
Allen gemeinsam ist die native Unterstützung von Microsoft Outlook über MAPI. Darüber hinaus bieten alle Produkte ein Webmail-Interface und eine Anbindung von Windows-Mobile-Clients mit dem ActiveSync-Protokoll. Andere ActiveSync-kompatible Clients, etwa das iPhone und viele Nokia-Handys, lassen sich ebenfalls integrieren.
Von Communigate und Zarafa gibt es kostenlose Varianten. Communigate erlaubt die volle Funktionalität bei einer privaten Nutzung mit bis zu fünf Mailboxen. Zarafa bietet eine Open-Source-Edition, die Zahl der Nutzer nicht beschränkt, aber keine Outlook-Anbindung via MAPI beherrscht. Das Closed-Source-Modul für Outlook-MAPI kann jedoch für bis zu drei Mailboxen kostenlos lizensiert werden.
Vor einer Entscheidung über den Mailserver sollte man sich mit den Features gut auseinandersetzen. So bietet Communigate etwa noch Instant Messaging via XMPP/Jabber, VoIP via SIP und als Highlight einen Flash-Client, der mehr kann als eine reine Webmail-Lösung. Kerio hingegen bietet eine integrierte Backup- und Archivierungslösung.Auch bei Datenbanken muss sich Linux hinter Windows nicht verstecken. Die Open-Source-Datenbank MySQL bietet eine Performance, Stabilität und Skalierbarkeit, die vielen kommerziellen Datenbanksystemen in nichts nachsteht.
Für MySQL stehen ODBC- und ADO.NET-Treiber für Windows zur Verfügung. Verschlüsselte Verbindungen mittels SSL/TLS stellen für MySQL kein Problem dar. Ebenso ist es möglich, eine Authentifizierung mittels X.509-Zertifikaten zu realisieren.
Wer ein kommerzielles Produkt vorzieht, kann unter anderem auf Oracle und DB2 zurückgreifen. Auf Microsoft SQL-Server muss man allerdings verzichten, was in der Regel verschmerzbar ist.
Webanwendungen mit der LAMP-Plattform
Einen Webserver hat man mit Apache unter Linux schnell aufgesetzt. Die Gemeinsamkeiten mit Microsofts IIS enden jedoch, wenn man über das Anbieten von statischen Webseiten hinausgeht.
Üblicherweise nutzt man Apache als Teil einer sogenannten LAMP-Plattform. LAMP steht für Linux, Apache, MySQL und PHP, während man Webanwendungen unter IIS meist mit dem .NET-Framework implementiert.
Grundsätzlich ist es möglich, MySQL und PHP auch unter Windows mit IIS oder Apache zu nutzen, genauso wie man mittels Mono[22] .NET-Programme unter Linux zum Laufen bringen kann. In einer Produktivumgebung sollte man darauf jedoch verzichten.
So bietet MySQL unter Windows nicht die Stabilität, die man von Linux gewohnt ist. In komplexen Datenbanken gibt es häufig Probleme mit zerstörten Tabellen. Mono unterstützt bisher nur Programme für das .NET-Framework 2.0. Auch bei .NET-Anwendungen unter Linux muss mit Problemen gerechnet werden.
Wer anspruchsvolle Websites bauen möchte, ist grundsätzlich mit einer LAMP-Plattform am besten bedient. Open-Source-Content-Management-Systeme wie Joomla[23] und Typo3[24] sind mittlerweile so weit ausgereift, dass man ohne Programmierkenntnisse interaktive Web-2.0-Sites bauen kann. Teamwork-Sites lassen sich mit Drupal[25] erstellen. An Blogger-Programmen, Wikis und Diskussionsforen gibt es in der Open-Source-Welt eine riesige Auswahl.
Programm wie Joomla lassen sich auch unter Windows mit IIS oder Apache für Windows betreiben. Meist muss man jedoch erhebliche Einschränkungen in Kauf nehmen. Um interaktive Anwendungen zu erstellen, ohne selbst zu programmieren, bleibt in der Microsoft-Welt nur Sharepoint. Zusatzmodule von Drittherstellern sind in der Regel kostenpflichtig. Für Joomla, Typo3 und Drupal existiert eine reiche Auswahl an Open-Source-Erweiterungen.
Wer VoIP-Telefonie betreiben will und eine kostenlose Telefonanlage sucht, findet mit Asterisk[26] sicherlich die beste Lösung. Per TAPI-Treiber können Windows-Clients ihre Outlook-Kontakte genauso gut anrufen wie mit dem Microsoft Office Communication Server.
Schaut man sich Microsoft Office Communication Server und Asterisk näher an, stellt man bald fest, dass Asterisk die bessere Lösung ist. Zwar beherrscht auch der Office Communication Server das SIP-Protokoll, mit dem sich zahlreiche Endgeräte direkt oder über einen SIP-Adapter anschließen lassen, jedoch bietet Asterisk insgesamt mehr Möglichkeiten.
Über unterstützte Hardware lassen sich ISDN-Basis- und Primärmultiplexanschlüsse einbinden. Um einen Analoganschluss zu benutzen, reicht ein Voice-Modem. Eine Anbindung für Faxe gibt es per HylaFAX[27]. Mittlerweile ist auch die Anbindung an Skype kein Problem mehr.
Neben den zahlreichen Transportverfahren für Telefonie und Faxe bietet Asterisk echte Call-Center-Funktionen. Warteschleifen mit An- und Abmeldung von Mitarbeitern stellen kein Problem dar. Telefonkonferenzen und Voicemail gehören ebenfalls zum Funktionsumfang von Asterisk.
Ein Nachteil ist allerdings, dass Asterisk von Haus aus keine GUI zur Administration mitbringt. Es verfügt lediglich über eine sogenannte Manager-Schnittstelle, die zur Einbindung von GUIs und Webfrontends dient. Die verfügbaren Lösungen mit GUI, etwa AsteriskNOW[28], bieten meist nicht den gewünschten Funktionsumfang. Für einen versierten Linux-Administrator ist der Aufbau eines Intranets ganz ohne Microsoft-Server-Produkte kein Problem. Wer weniger Erfahrung mit Linux besitzt, kann auf eine Lösung wie Collax zurückgreifen. Collax wird komplett über ein Webinterface mit AJAX-Anwendungen administriert.
Das größte Problem dabei bleibt der Basisdienst File- und Printsharing. Zum einen existiert keine Kernel-Mode-Implementierung des Samba-Servers, was eine deutliche Performanceeinbuße gegenüber Windows bedeutet. Zum anderen fehlen Dienste wie Replikation von Shares. Beim Thema File- und Printsharing hat Microsoft technologisch die Nase vorn. Samba hinkt hinterher.
Alle anderen Dienste, etwa Mail, Web, Datenbanken und VoIP, lassen sich unter Linux mindestens genauso gut realisieren wie mit Windows - in der Regel sogar besser. Insbesondere in Hinblick auf Mailserver herrscht das Vorurteil, dass Outlook-Clients nur mit Exchange optimal unterstützt werden können. Inzwischen gibt es jedoch eine ganze Reihe von Alternativen, die preisgünstiger und technologisch überlegen sind.
Wer beim Aufbau eines Intranets einen pragmatischen Ansatz verfolgt und erster Linie daran interessiert ist, seinen Nutzern jeweils die besten Lösungen anzubieten, der sollte über eine gemischte Lösung nachdenken, bei der File- und Printsharing mit Microsoft-Technologie realisiert wird und alles andere mit Linux-Lösungen.
URLs in diesem Artikel:[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/
[5] = http:/
[6] = http:/
[7] = http:/
[8] = http:/
[9] = http:/
[10] = http:/
[11] = http:/
[12] = http:/
[13] = http:/
[14] = http:/
[15] = http:/
[16] = http:/
[17] = http:/
[18] = http:/
[19] = http:/
[20] = http:/
[21] = http:/
[22] = http:/
[23] = http:/
[24] = http:/
[25] = http:/
[26] = http:/
[27] = http:/
[28] = http:/