HP ProLiant Microserver als RODC für kleine Standorte

Mit dem NL37 MicroServer bietet HP einen sehr kompakten und dennoch gut Ausgestatteten Server. Das System kann mit bit zu 8 GB ECC-Ram ausgestattet werden, verfügt über 4 SATA II Einschübe und einen DualCore AMD Athlon II NEO Prozessor mit 1.3 Ghz. Die Leistung reicht problemlos für einen Windows Server 208R2 um die Rollen RODC, Dateiserver, Druckserver und BrancheCache für kleine Standorte bis 20 Personen anzubieten.

Zum Gehäuse:
Das sehr gut gelungene massive Gehäuse ist sehr schnell zu öffnen. Die 4 HDD Einschübe befinden sich hinter einer abschließbaren Fronttür, das passende Werkzeug zum Einbau der Festplatten in die Rahmen fehlt leider genau wie die nötigen Schrauben zum befestigen der Festplatten. Standard Sekkopf-Kreuzschlitzschrauben für Festplatten passen glücklicherweise in die vorgesehenen Bohrungen. Um den Speicher zu erweitern muss das Mainboard aus dem Gehäuse herausgenommen werden. Das unter den Festplatteneinschüben liegende Board befindet sich auf einem Schlitten. Zum Herausziehen sind lediglich 2 Schrauben und einige Stecker zu lösen. Nicht gerade der Komfort eines DL380, aber bei diesen Gehäuseabmessungen immer noch relativ komfortabel gelöst. Das System kommt ohne optisches Laufwerk. Über den Festplatten und der Frontklappe befindet sich ein 5 1/4″ Laufwerksschacht mit vorbereiteter S-ATA Verkabelung.Ein Band oder optisches Laufwerk ist hier durch öffnen der oberen Abdeckung schnell eingebaut. Um unerwünschtes Öffnen dieser Abdeckung zu verhindern, kann ein Schloss an der Rückseite angebracht werden. Ausgestattet mit 2x 2TB Enterprise HDD´s wiegt der Server ohne optisches Laufwerk knapp 5 Kg.

Leistung unter Windows Server 2008R2
Direkt nach der Installation können alle Komponenten mit Standardtreibern angesprochen werden. Es empfiehlt sich aber unbedingt den Grafik-/ Netzwerk-karten Treiber zu installieren. Um Datenredundanz zu schaffen sollte auf Windows Bordmittel zurückgegriffen werden. Der interne Controller realisiert das RAID auch nur über die CPU, allerdings ohne Wissen des Betriebssystems. Bei solchen “Soft-RAID” Treibern sollte immer auf die Betriebssystem Funktionen zurückgegriffen werden. Nach Abschluss der Erstsynchronisierung schreibt das System durchschnittlich 80MB/s auf die Datenträger. Das integrierte Gigabit LAN kann damit zwar nicht gesättigt aber immerhin sehr gut Ausgelastet werden.

Serverrollen/Konfiguration
Um einen Server an einem unsicherem Standort aufzustellen, sollte in jedem Fall ein getrenntes Subnet der Größe /24 oder /25 in einer neuen ActiveDirectory Site angelegt werden. Alle Kommunikation von und zu diesem Standort sollten dann IPSec verschlüsselt werden. Um den Standort an den Firmensitz anzubinden, empfiehlt sich ein getrennter L2 VPN-Router. Damit wird eine 2-Faktor Verbindungsverschlüsselung erreicht. Über diese Verbindung dürfen dann ausschließlich IKE und ESP Pakete der IPSec Verbindungen zugelassen werden. Um die Inhalte der Festplatten zu schützen sollte unbedingt EFS aktiviert werden. Somit sind alle nicht Domänenmitglieder aus dem Netzwerk und dem Dateizugriff ausgeschlossen. Der Server selbst wird als RODC konfiguriert. Ein lokaler DNS Server sowie globaler Katalog stellen die Anmeldefunktionen bei fehlender Netzwerkverbindung sicher. Allerdings sollten auf gar keinen Fall Kennwörter Administrativer Konten an den Standort repliziert werden. Eine Anmeldung am Server mit Administrativen Rechten ist so nur möglich wenn die IPSec Verbindung zum Hauptsitz steht. Um Druckfunktionen zur Verfügung zu stellen, empfiehlt sich zusätzlich die Rolle “Druck und Dokumentendienste”. Auch die Rolle “DHCP-Server” ist nützlich. Zum sichern und abgleichen der Daten kann eine DFS-Replikationsgruppe eingerichtet werden. Somit sind immer alle Daten an mindestens 2 Standorten verfügbar.

Fazit:
Der kleine Server bietet neue Möglichkeiten um kleine Firmenstandorte, Baustellen oder ähnliches mit Servern auszustatten. In Verbindung mit einem L2 VPN-Router (z.B. Cisco oder Astaro) lässt sich der komplette Netzwerkverkehr so absichern, dass selbst ein Sniffer an einem Monitor-Port kein Risiko darstellt. Dank RODC und EFS sind auch die Daten und Benutzerkonten relativ sicher. Der Nutzen eines solchen Servers übersteigt auf jeden Fall das Restrisiko. Alternativ müssten alle Anwender ihre Daten lokal verwalten, fällt eine Festplatte aus ist alles weg. Truecrypt usw. bringen auch nicht viel wenn die Daten per SMB Freigabe zwischen den Systemen kopiert werden. Dank des Server kann die Kommunikation mit IPSec und Kerberos abgesichert werden und Mitarbeitern an Remote Standorten eine sichere Zusammenarbeit im Netzwerk ermöglicht werden.

Mehr zum Server auf der HP Produktwebsite.

PHP – Shell Scripte mit root-rechten ausführen – sudo

Wie immer steht am Anfang eine Idee. Bei mir war es der Wunsch, vom Smartphone das kopieren der Speicherkarten meiner Kameras zu starten. Das ganze vollständig zu automatisieren war mir zu riskant, da ich schon noch zwischen Mounten (für Samba), Kopieren und Verschieben der Dateien auf der Speicherkarte unterscheiden wollte.

Alles haben diese Befehle gemeinsam, man benötigt root-rechte zum Mounten und Auswerfen der Speicherkarten. Webserver mit root-rechten betreiben? suexec Modul von Apache nutzen? Alles zu riskant und viel zu kompliziert. Der einfachste weg ist es, ein Shellscript mit root-Berechtigungen vom Webserver aus zu starten. Und das geht am besten mit sudo.

Um das Script /usr/local/sbin/webscript.sh unter root rechten zu starten, muss zuerst der Webserver berechtigt werden, das Script unter root Rechten zu starten. Das geht in der Datei /etc/sudoers. Der Eintrag

apache ALL=(ALL) NOPASSWD: /usr/local/sbin/webscript.sh

berechtigt den Benutzer apache von jedem Quellhost ohne zusätzliche Passworteingabe das Script auszuführen. Funktioniert das, sollte der Host auf localhost begrenzt werden.
Anschließend kann das Script aus PHP mittels

system('sudo /usr/local/sbin/webscript.sh');

oder wenn die Ausgabe direkt im Browser ausgegeben werden soll mit

passtruh('sudo /usr/local/sbin/webscript.sh');

ausgeführt werden. erstellt man nun ein Shellscript das eine CF-Karte mountet, je nach Parameter die Dateien kopiert oder verschiebt und startet es per PHP vom webserver, kannd er Kopiervorgang von jedem http fähigen Gerät aufgerufen werden. So ist ein Szenario denkbar, vom Streaming-Radio mit RSS-Reader komplexe Scripte am Webserver auszuführen.

Bilder mit PHP skalieren – image-Funktionen

Nachdem mich nun mehrere Leute nach einem Image Scaler für PHP fragten, und ja finestpics.de so etwas verwendet, habe ich dazu entschlossen ein kleines Script für genau dieses Problem zu veröffentlichen. Das Script lädt ein Bild in den Speicher, ermittelt Länge und Breite und skaliert das Bild auf die lange Seite ohne Verzerrung. Aber mehr dazu sollte jedem beim lesen des Quellcodes klar werden.

Für die ganze Skalierung werden die Image/gd Funktionen von PHP verwendet. Es sollte ab php4 funktionieren.

Hier gehts zum Script.

mySQL multi-instanz Server einrichten

Wer wollte nicht schon mal mehrere MySQL Serverinstanzen auf dem gleichen Host betreiben? Eine Datenbank für Tests, die andere für die produktive Website? Oder mehrere Server pro Kunde? Kein Problem, dazu müssen in der my.cnf einfach “Konfigurationsblöcke” numerisch benannt werden und mit der jeweiligen Konfiguration befüllt werden. Und das geht so:

[mysqld1]
port = 3306
socket = /var/run/mysql/mysql-01.sock
pid-file = /var/run/mysql/mysql-01.pid
datadir = /var/lib/mysql/01
[mysqld2]
port = 3307
socket = /var/run/mysql/mysql-02.sock
pid-file = /var/run/mysql/mysql-02.pid
datadir = /var/lib/mysql/02

Aber Achtung, auf gar keinen Fall dürfen “datadir” Ordner auf das gleiche Ziel zeigen, das würde die Datenbanken in diesem Ordner beschädigen. Die meisten Distributionen verwenden zur Instanzsteuerung noch mysql_muti, wer möchte, kann den neueren und mächtigeren mysqlmanager verwenden. Dazu vielleicht später mehr.