Xenserver 7: Sicherheit erhöhen – Rootserverbetrieb

Wenn der Xenserver auf einem Rootserver im Internet installiert wird, ist dieser über die ihm zugeordnete offizielle IP Adresse erreichbar. Dies bedeutet, dass das Managementnetzwerk / Managementinterface grundsätzlich von jedem aufrufbar ist.

Um dieser Problematik etwas entgegenzuwirken, kann man die iptablesfirewall umkonfigurieren bzw. den SSH-Port verschieben.

Mir ist bewusst, dass nur ein Tropfen auf den heißen Stein ist, jedoch jedenfalls besser wie nichts.

SSH Port verlegen

Per XenCenter Serverkonsole sind folgende Anpassungen durchzuführen.

Im Verzeichnis /etc/ssh/sshd_config wird der Port verlegt. Standardmäßig läuft SSH auf Port 22. Dies verlegt man z.B. auf Port 2232.

Iptables anpassen

Nun muss natürlich die Firewall angepasst werden, damit Verbindungen auf Port 2232 erlaubt werden.

Das anzupassende File namens iptables findet sich im Ordner /etc/sysconfig. Es beinhaltet bereits einige Regeln. Unter anderem findet sich auch die Regel für den Standardport (22) in dieser Datei. Diese wird entsprechend angepasst, sodass sie dem „neuen“ SSH-Port entspricht.

Schließlich ist die Datei noch zu speichern und iptables und sshd neu zu starten.

service iptables restart && service sshd restart

hosts.deny und hosts allow einsetzen

Genaugenommen eigentlich ein MUSS in einer solchen Netzwerkkonstellation.

Sofern der PC, mit dem man auf den Xenserver einsteigt, mit einer statischen offiziellen IP-Adesse ins Internet geht, gibt es eine elegante Methode, den Zugriff auf den Xenserver einzuschränken.

In der Datei /etc/hosts.allow wird definiert, welche IPs auf den Server zugreifen dürfen. Die anzuführenden IPs sind neben der localhost IP (127.0.0), auch noch die statische IP, von der aus man den Xenserver managed.

Der Eintrag kann z.B. so aussehen:

ALL: 127.0.0 89.163.225.17

D.h. diese IPs dürfen sämtliche Services auf dem Xenserver nutzen.

Nun muss in /etc/hosts.deny noch für alle anderen ALLES verboten werden. Dieser Eintrag ist recht simpel gehalten und sieht folgendermaßen aus:

ALL: ALL

Durch diese Einstellungen wird jedem Client der Zugriff verweigert, solange nicht die Ausnahmeregelung in den hosts.allow greift.

Nachteil

Natürlich bedingt dies, dass man immer mit den angeführten IP Adressen auf den Xenserver zugreift. Blöd nur, wenn man gerade „irgendwo“ ist und man nicht von seiner gewohnten IP-Adresse aus aufs Internet zugreift.

Workaround

Sollte neben dem Dedicated Root(Xen)Server noch ein weiterer Server mit statischer offizieller IP im (Inter)net aktiv sein, kann man diese IP ebenso in die hosts.allow eintragen. Schließlich könnte dann der Umweg über den zusätzlichen Server genommen werden.

Sprich also:

Client mit dynamischer IP -> ssh zu zusätzlichem Rootserver (IP steht am Xen in den hosts.allow) -> ssh zu Xenserver.

 

 

 

Xenserver 7: NFS ISO-Store von Synology NAS einrichten

XENSERVER auf einem dedicated Rootserver

Ich möchte hier kurz beschreiben, wie man ein NFS-Share von einer Synology NAS, die in einem lokalen Netzwerk steht, einem XENSERVER (dedicated Rootserver), zur Verfügung stellt.

Die ISO-Dateien werden von einem beliebigen PC im lokalen Netzwerk auf das Share abgelegt und stehen dem Xenserver, nach Einbindung des ISO-Repositories zur Verfügung.

Ports (Virtual Server)

Da die Synology-NAS in meinem internen Netzwerk steht und ich aus dem Internet heraus (vom dedicated Rootserver) auf die NFS-Freigabe zugreifen will, muss eine entsprechende Portweiterleitung erfolgen.

Auf meinem TP-Link Router nennt sich dies „Virtual Server“.

Die Weiterleitungen sind folgende:

NFS-Server (Synology NAS)

Als NFS-Server fungiert meine Synology NAS mit DSM 6.0.1-7393 Update 2.

Damit NFS überhaupt funktioniert, muss in der Systemsteuerung der Synology unter Dateidienste NFS aktiviert werden. Optimalerweise setzt man auch gleich das Häkchen bei „NFSv4-Unterstützung“ aktivieren.

Nachdem das  NFS-Service nun „scharf geschaltet“ ist, muss noch eine Freigabe erstellt werden. Zu diesem Zweck, wechselt man in der Synology Systemsteuerung zu den Gemeinsamen Ordnern.

Über den Button „Erstellen“ erfolgt die Konfiguration der Freigabe.

Im Folgefenster können Berechtigungen für lokale Benutzer gesetzt werden. Da man mit einem PC (z.B. SMB-Share) auf die Freigabe zugreift, um ISO-Files abzulegen, muss hier ein User mit entsprechenden Berechtigungen gewählt / oder zuvor angelegt und die Berechtigungen entsprechend gesetzt werden.

Wichtig ist jedoch vor allem der Reiter „NFS-Berechtigungen“, denn dort wird definiert, welche IP-Adressen auf den NFS-Server (die Freigabe) zugreifen dürfen.

In das Feld Hostname oder IP wird die Adresse des NFS-Client eingetragen. (Somit darf nur von dieser IP aus auf NFS zugegriffen werden!) Der NFS-Client ist in diesem Fall der XenServer. Die Privilegien müssen auf Lesen/Schreiben gesetzt sein.

Somit ergeben sich folgende Einstellungen.

Ganz unten im Fenster sieht man den Mountpfad, welcher in dieser Konfiguration: /volume1/NFS_ISO lautet. Der Pfad wird später für die Einbindung der Freigabe auf dem Xenserver verwendet.

Somit sind alle Vorarbeiten auf dem NAS abgeschlossen.

ISO Repository auf dem Xenserver einbinden

Für die Verwaltung des Servers, verwende ich OpenXenManager.

Die Serververbindung ist bereits aufgebaut. Nach einem Rechtsklick auf den Server, welcher auf der linken Seite des OpenXenManager aufgeführt wird, wählt man „New Storage Repository“.

Im Folgefenster wird „ISO Library – NFS ISO“ gewählt. (Aufgrund meiner hohen Auflösung und dem angepassten Skalierung sind die Screenshots leider unschön.)

Im Feld „Share Name“ ist die öffentliche IP des NFS-Servers gefolgt vom lokalen Mountpfad des NFS-Share (in diesem Falle /volume1/NFS_ISO) einzutragen.

Genaugenommen also z.B.: 123.456.789.001:/volume1/NFS_ISO

Wobei es sich bei oben angeführter IP nur um eine fiktive Adresse handelt, die durch die korrekte öffentliche IP – über die die Synology NAS anzusprechen ist- zu ersetzen ist.

Das Ergebnis der Übung – ein NFS ISO Store ist eingebunden.

Download und ablegen des ISO Files

Auf dem lokalen PC kann man sich aufgrund dessen, dass auch eine normale SMB Freigabe erstellt wurde, mit dem Share verbinden und legt dort beispielsweise den Debian Netinstaller (ISO) ab.

Eine VM installieren

Nach Ablage des ISO Files im NFS-Share, muss am Xenserver ein Rescan des ISO-Repositories erfolgen.

Danach kann eine neue VM angelegt werden und die zu installierende ISO-Datei vom NFS-Share aus gewählt werden.

Nach dem Start der VM, präsentiert sich der Debian Installer. Die Daten kommen hierbei dann von der ISO Datei, die per NFS-Share eingebunden wurde.