| 1697 Wörter
Befasst man sich etwas länger mit dem Thema eines eigenen Servers oder arbeitet mit diesen, stößt man irgendwann auf Proxmox VEoder auf einen seiner bekannteren Kollegen wie Xen. Proxmox dient zur Server-Virtualisierung, aber es ist kein reines Verwaltungs-Tool für die Virtualisierung mit KVM und OpenVZ, sondern eher ein Rundum-sorglos-Paket mit vielen nützlichen Features. Zwei zusätzliche Features sind z.B. HA und Live Migration. Aber nun zum eigentlichen Thema: Möchte man aus seinem Dedicated Server alles herausholen, oder möchte bestimmte Funktionen (Mail-Server, Web-Server, Bouncer etc) oder kritische Anwendung voneinander und/oder zum Internet abschirmen, kann man dies wunderbar mit Virtualisierung lösen. Was ist aber nun, wenn man aus welchem Grund auch immer nur 2 IPs für seinen Server zur Verfügung hat aber man_n_VMs benötigt? Wenn man bei Google danach sucht, findet man viele Blogeinträge oder Threads in diversen Foren. Mit den dort angebotenen Lösungen, kommt man auch zum Ziel, jedoch finde ich die meisten Lösungen nicht schön. In diesem Post möchte ich auf arno-iptables-firewall eingehen, welches ich für das Umsetzen des oben angesprochenen Problems nutze. Das Ziel ist es eine Bridge aufzusetzen und den VMs über NAT eine private IP zuzuweisen zusätzlich zeige ich noch, wie man dafür sorgt, dass die VMs von außen erreichbar gemacht werden und wie der Host von den VMs „getrennt“ wird.
Update vom 11.08.2015: Sollte es bei der Installation zu Problemen mit dpkg kommen, die wie folgt aussehen können:
|
|
muss überprüft werden, ob die Datei_/etc/hosts_den richtigen Inhalt hat.**Wichtig dabei ist, dass der Hostname des Servers auflösbar ist!**Hier ein Beispiel:
|
|
Für mehr Informationen einfach mal bei Proxmox im wiki vorbeischauen. Nach der erfolgreichen Installation von Proxmox, muss geprüft werden ob das darunter liegende Debian seine IP statisch bezieht oder nicht. Sollte es nicht der Fall sein, muss dies angepasst werden. Hier meine Konfiguration ( /etc/network/interfaces):
|
|
Ihr müsst dort einfach eure Daten eintragen und den Server neu starten. Sollte es Probleme nach einem Neustart des Servers geben, sollte man in den Rescue Modus booten und auf eventuelle Tippfehler schauen. Bringt das alles nichts, reicht es meistens den Support zu kontaktieren mit der Bitte um die richtigen Adressen. Anschließend müssen wir ein neues virtuelles Interface erstellen, welches als Bridge dient. Dazu müssen wir der Datei /etc/network/interfaces folgenden Konfiguration anfügen.
|
|
Jetzt müssen wir nur noch dumy interfaces aktivieren und das geht fix mit dem Befehl.
|
|
Wenn der Server jetzt neu gestartet wird sollte alles laufen, womit wir auch beim Host fertig wären.
**Update vom 09.09.2015:**Ich kann es zwar nicht empfehlen, aber die dummy-interfaces kann man auch ohne Neustart aktivieren. Dazu müssen wir erstmal das Modul_dummy_„entfernen“
|
|
Danach laden wir das Modul direkt wieder, allerdings mit der Option_numdummies=2_
|
|
Ob alles funktioniert hat, kann man ganz einfach mit dem Befehl
|
|
überprüfen. Die Ausgabe sollte wie folgt aussehen:
|
|
An diesem Punkt müssen wir das erste Mal in das Webinterface wechseln, das geht einfach mit https://public.ip:8006/. Bevor wir jedoch unsere erste VM erstellen, müssen wir bei unserem Provider eine zusätzliche IP bestellen. Das geht meistens innerhalb von ein paar Minuten, wenn wir unsere neue IP haben, müssen wir im Kundenpanel unseres Providers eine MAC für die zweite IP generieren. Bei Oneprovider.com geht das über den Menüpunkt_Manage the Server > IP Manage_dort dann einfach aus der Liste eurer IPs die neue auswählen und auf Generate MAC klicken, fertig! Wenn wir jetzt zurück ins Webinterface von Proxmox wechseln und auf Create VM klicken, erscheint ein Dialog wo wir die Daten für die VM eintragen müssen. Bei dem Menüpunkt Network “Bridged mode” auswählen und als Bridge vmbr0 wählen und als_MAC address_die neu generierte MAC eintragen. Wenn der Dialog fertig ausgefüllt und die VM erstellt wurde, wählt sie im linken Menü aus und geht auf den Reiter Hardware , dann auf Add > Network Device wieder_Bridged mode_wählen und dieses Mal als Bridge vmbr1 eintragen, anschließen auf_Add_klicken. Jetzt sollte im Reiter Hardware ganz unten bei Network Devices zuerst vmbr0 und darunter vmbr1 eingetragen sein, etwa so:
Netzwerkgeräte
Auf der VM kann jetzt das OS installiert werden, vorzugsweise Debian ;) Das bei der Installation eine Fehlermeldung kommt, weil die VM kein Internet hat, ist normal, einfach Netzwerk unkonfiguriert lassen auswählen und die Installation fertigstellen. Nun einfach als User root einloggen. Damit die VM jetzt Zugriff zum Internet bekommt, müssen wir auch hier die Konfiguration der Interfaces anpassen. Die nachfolgende Konfiguration könnte bei euch nicht funktionieren, wie auch zuvor ist es dann das Beste ein wenig zu probieren oder den Support anzuschreiben und wieder nach den Adressen für die 2 IP fragen, wenn diese als Bridge benutzt wird. Meine Konfiguration sieht so aus.
|
|
Wenn das eingetragen wurde, muss die VM einmal neugestartet werden. Wenn wir uns nun wieder einloggen, sollte ping 8.8.8.8 folgendes ausgeben:
|
|
Danach einmal ping google.de versuchen:
|
|
Sollte die Fehlermeldung ping: unknown host google.de kommen, einfach mit dem Befehl echo “nameserver 8.8.8.8” » /etc/resolv.conf einen Nameserver eintragen . Da unsere VM nun Zugriff aufs Internet hat, sollten wir die zusätzliche IP, die wir gekauft haben einmal anpingen, um zu prüfen, ob die VM auch von außen erreichbar ist. Daraufhin wollen wir jetzt das zweite Interface (das haben wir zuvor im Webinterface hinzugefügt) einrichten. Darüber werden die zukünftigen VMs ihre private IP beziehen. Bei mir sieht das wie folgt aus.
|
|
Den Adressbereich könnt ihr natürlich auch ändern, zum Beispiel in 192.168.0.0. Nun einfach mit
|
|
das Netzwerk neu starten, kontrollieren ob es funktioniert hat könnt ihr mit ifconfig. Jetzt haben wir alle Grundsteine gesetzt und müssen uns nur noch um das NATing kümmern. Dazu benutzen wir arno-iptables-firewall. Bei Debian ist das Paket in den offiziellen Repos, also einfach mit apt-get install arno-iptables-firewall installieren. Bei der Installation werdet ihr nach der Konfiguration gefragt, alles einfach unkonfiguriert lassen. Wenn das Paket installiert ist, öffnen wir mit
|
|
die Konfigurationsdatei und ersetzen den Inhalt mit:
|
|
Tragt bei OPEN_TCP unbedingt euren SSH-Port (22) ein, sonst sperrt ihr euch aus! Zeile 1 gibt das externe Interface an, bei uns ist es eht0 über welches unsere VM seine öffentlichen IP bezieht, welche wir zuvor gekauft haben. Zeile 2 deaktiviert DHCP, weil wir wollen das alle VMs von uns eine statische IP haben, welches auch zwingend notwendig ist! Zeile 3 und 4 geben an, welche Ports(TCP oder UDP) nach außen offen sein sollen. In Zeile 5 wird das interne Interface eingetragen (darüber laufen nachher die zusätzlichen VMs). Zeile 6 aktiviert NAT und Zeile 7-8 geben das interne IP-Netz an._OPEN_ICMP=1_in Zeile 10 sorgt dafür, dass unsere aktuelle VM via Ping erreichbar ist. In den letzten beiden Zeilen, müssen wir später eintragen welcher öffentliche Port, zu welcher internen IP+Port weitergeleitet werden soll. Mit 222> 10.10.20.11 leiten wir den öffentlichen Port 222 auf die IP 10.10.20.11 weiter, wollen wir das der interne und öffentliche Port unterschiedlich sind, geht das so: 222>10.10.20.11~22 und IP-Ranges geben wir wie folgt an: 17:20 das wären dann Port 17, 18, 19 & 20. Der öffentliche Port muss allerdings auch bei OPEN_TCP oder OPEN_UDP eingetragen werden! Wenn wir nun alles nach unseren Vorstellungen eingestellt haben, starten wir die Firewall so neu:
|
|
Wenn die SSH-Verbindung bestehen bleibt, haben wir alles richtig gemacht - yay! Das Letzte, das wir nun machen müssen, ist eine neue VM erstellen. Als Bridge wählen wir nun vmbr1(zukünftig für alle VMs) und weisen ihr folgende Netzwerk-Konfiguration zu:
|
|
Ihr solltet bei der NAT-VM in den Firewall-Einstellungen noch einen euch beliebigen Port z.B. 122 auf den SSH-Port der neu erstellen VM weiterleiten. Also bei OPEN_TCP 122 einfügen und bei NAT_FORWARD_TCP 122>10.10.20.1~22 und schon könnt ihr via SSH auf die VM! Ich hoffe, ich konnte einen ersten Eindruck vermitteln und die nächsten Schritte schaffst du allein. Falls dann doch mal etwas nicht funktionieren sollte, einfach die Kommentar-Box benutzen :)