flasher4401
Goto Top

Server Administration, Virtualisierung - Gast Systeme zur Bereitstellung von Services

Guten Tag.

Ich bräuchte mal Rat und ggf. Unterstützung bei der Umsetzung zu folgendem:

Was ich momentan habe:
Ich habe momentan einen physischen Server, der sämtliche Dienste bzw. Anwendungen direkt zur Verfügung stellt. Das bedeutet er agiert als Mail-, Web- (sogar mehrere), Media-, Storage- und Datenbank-Server. Zur Verwaltung von System, Mail und einem der Webserver nutze ich momentan Webmin+Virtualmin.

Was mir Bauchschmerzen bereitet / Warum ich mein aktuelles Setup ändern möchte:
Das System erfüllt inzwischen so viele Aufgaben, dass das Handling zunehmend schwieriger wird. Es beginnt schon damit, mehrere Web-Server zu verwalten und unter einen Hut zu bringen. Das ist aber alles noch machbar. Meine größte Sorge an dem ganzen unterfangen ist folgende:
Mit jeder neuen Anwendung und jedem neuen Datensatz, den der Server verwaltet, wächst bei mir die Angst, dass mir irgendwann, wahrscheinlich durch ein Update, einfach alles um die Ohren fliegt.

Was ich ändern möchte:
Ich möchte weg davon, dass ein System alle Dienste zur Verfügung stellt und dahin, dass ein System jeweils einen Dienst zur Verfügung stellt. Das ganze möchte ich mit meiner bestehenden Hardware realisieren, indem ich meinen physischen Server als Wirt-System einrichte und auf diesem Gast-Systeme virtualisiere, die jeweils einen Dienst zur Verfügung stellen.


Ich habe so etwas noch nie gemacht und bräuchte dahingehend Unterstützung bei der Umsetzung, sei es direkt oder mittels bestehender Ressourcen.

Ich würde mein Host-System am liebsten mit einem Debian austatten (persönl. Präferenz) und die Gast-Systeme über open-source Software virtualisieren (z.B. KVM). Auch schick wäre es, wenn man das ganze über ein Web-Panel verwalten könnte (Promox, oVirt??), ist aber kein muss. Die Gast-Systeme sollen nicht direkt nach außen hin erreichbar sein, d.h. sie sollen kein Bridged-Network nutzen. Ich würde gerne Zugang zu Services, die die Gast-Systeme bereitstellen, mittels Port-Forwarding über mein Host-System gewähren (NAT). (Bsp.: host:8080 -> gast1:80)

Des Weiteren würde ich gerne auf einem Gast-System einen Web-Server bereitstellen (z.B. nginx) der einfach nur als Reverse Proxy Anfragen an die Web-Services der Gäste (per virtual hosts) weiterleitet. Z.B. sub1.domain.tld:80 -> gast1:80, sub2.domain.tld:80 -> gast2:80, sub3.domain.tld:80 -> gast3:80. Dem könnte man dann auch gleich noch SSL Zertifkate mitgeben, um das ganze ein bisschen schöner zu machen. Man hätte dadurch auch noch einen zusätzlichen Gewinn, da sich div. Apps von sich aus (immernoch) mit SSL schwer tun.
Schön wäre es außerdem, wenn man dann auch noch SSH User forwarden könnte. D.h., dass ich nicht SSH auf versch. Ports zugänglich machen muss (gast1-ssh:22, gast2-ssh:23, gast3-ssh:24), sondern entweder die Domain mich an den richtigen Gast weiterleitet (quasi virtual hosts für SSH), das wird aber wahrscheinlich nicht funktionieren, oder wenn ich mich mittels SSH am Host mit einem bestimmten Nutzer anmelde, dieser mich automatisch per SSH auf dem zugehörigen Gast-System anmeldet.

Mit meinem bisherigen Setup musste ich mir ja keine Gedanken um Mail machen, da die Anwendungen direkt Mails versenden konnten. Ich würde das dann wahrscheinlich so handhaben, dass ich auch ein System als Mail-Server einrichte und auf Gast-Systemen, die Mails versenden, postfix installiere und den Mail-Server als relayhost eintrage.


Gebt mal euren Senf dazu!


Gruß

Content-Key: 321518

Url: https://administrator.de/contentid/321518

Printed on: April 22, 2024 at 07:04 o'clock

Member: Vision2015
Vision2015 Nov 19, 2016 at 19:53:42 (UTC)
Goto Top
Zitat von @flasher4401:

Guten Tag.
auf die Uhr schaut, und nabend sacht face-smile

Ich bräuchte mal Rat und ggf. Unterstützung bei der Umsetzung zu folgendem:

Was ich momentan habe:
Ich habe momentan einen physischen Server, der sämtliche Dienste bzw. Anwendungen direkt zur Verfügung stellt. Das bedeutet er agiert als Mail-, Web- (sogar mehrere), Media-, Storage- und Datenbank-Server. Zur Verwaltung von System, Mail und einem der Webserver nutze ich momentan Webmin+Virtualmin.
hm... ok
was du nicht schreibst ist, was für hardware hast du genau ?


Was mir Bauchschmerzen bereitet / Warum ich mein aktuelles Setup ändern möchte:
Das System erfüllt inzwischen so viele Aufgaben, dass das Handling zunehmend schwieriger wird. Es beginnt schon damit, mehrere Web-Server zu verwalten und unter einen Hut zu bringen. Das ist aber alles noch machbar. Meine größte Sorge an dem ganzen unterfangen ist folgende:
Mit jeder neuen Anwendung und jedem neuen Datensatz, den der Server verwaltet, wächst bei mir die Angst, dass mir irgendwann, wahrscheinlich durch ein Update, einfach alles um die Ohren fliegt.

verstehe..
Was ich ändern möchte:
Ich möchte weg davon, dass ein System alle Dienste zur Verfügung stellt und dahin, dass ein System jeweils einen Dienst zur Verfügung stellt. Das ganze möchte ich mit meiner bestehenden Hardware realisieren, indem ich meinen physischen Server als Wirt-System einrichte und auf diesem Gast-Systeme virtualisiere, die jeweils einen Dienst zur Verfügung stellen.


Ich habe so etwas noch nie gemacht und bräuchte dahingehend Unterstützung bei der Umsetzung, sei es direkt oder mittels bestehender Ressourcen.

Ich würde mein Host-System am liebsten mit einem Debian austatten (persönl. Präferenz) und die Gast-Systeme über open-source Software virtualisieren (z.B. KVM). Auch schick wäre es, wenn man das ganze über ein Web-Panel verwalten könnte (Promox, oVirt??), ist aber kein muss. Die Gast-Systeme sollen nicht direkt nach außen hin erreichbar sein, d.h. sie sollen kein Bridged-Network nutzen. Ich würde gerne Zugang zu Services, die die Gast-Systeme bereitstellen, mittels Port-Forwarding über mein Host-System gewähren (NAT). (Bsp.: host:8080 -> gast1:80)
ich würde eher dazu raten einen VMware ESXI 6 zu nehmen!
das port forwarding macht eh dein Router...

Des Weiteren würde ich gerne auf dem Host einen Web-Server bereitstellen (z.B. nginx) der einfach nur als Reverse Proxy Anfragen an die Web-Services der Gäste (per virtual hosts) weiterleitet. Z.B. sub1.domain.tld:80 -> gast1:80, sub2.domain.tld:80 -> gast2:80, sub3.domain.tld:80 -> gast3:80. Dem könnte man dann auch gleich noch SSL Zertifkate mitgeben, um das ganze ein bisschen schöner zu machen. Man hätte dadurch auch noch einen zusätzlichen Gewinn, da sich div. Apps von sich aus (immernoch) mit SSL schwer tun.
dein Reverse Proxy soll als gast in einer VM laufen... auf dem Host wird nix installiert!

Schön wäre es außerdem, wenn man dann auch noch SSH User forwarden könnte. D.h., dass ich nicht SSH auf versch. Ports zugänglich machen muss (gast1-ssh:22, gast2-ssh:23, gast3-ssh:24), sondern entweder die Domain mich an den richtigen Gast weiterleitet (quasi virtual hosts für SSH), das wird aber wahrscheinlich nicht funktionieren, oder wenn ich mich mittels SSH am Host mit einem bestimmten Nutzer anmelde, dieser mich automatisch per SSH auf dem zugehörigen Gast-System anmeldet.

Mit meinem bisherigen Setup musste ich mir ja keine Gedanken um Mail machen, da die Anwendungen direkt Mails versenden konnten. Ich würde das dann wahrscheinlich so handhaben, dass ich auch ein System als Mail-Server einrichte und auf Gast-Systemen, die Mails versenden, postfix installiere und den Mail-Server als relayhost eintrage.


Gebt mal euren Senf dazu!


Gruß
Frank
Member: flasher4401
flasher4401 Nov 19, 2016 updated at 20:25:37 (UTC)
Goto Top
Zitat von @Vision2015:
was du nicht schreibst ist, was für hardware hast du genau ?
Ich habe einen dedizierten Server (16 GB Ram, i7-3770) und eine IP.

ich würde eher dazu raten einen VMware ESXI 6 zu nehmen!
Ich nehme mal an, weil das einfach zu verwalten ist? Promox stellt auch eine komplette System-Installation zur Verfügung.

das port forwarding macht eh dein Router...
Welcher Router? Der Server ist mit einer IP ans Internet angebunden. Anfragen gehen direkt an diese IP und damit ans Host-System. Angenommen ein virtueller Server "server1" stellt einen Dienst an Port 100 und ein anderer "server2" stellt einen Dienst an Port 200 bereit. Dann soll der Host (natürlich per entsprechender Konfiguration) Anfragen an Port 100 an server1 und Anfragen an Port 200 an server2 weiterleiten/routen. D.h. wenn ich eine Anfrage an ip:100 stelle, soll diese dann intern an server1:100 gehen. Eventuell auch an andere Ports (z.B. ip:8080 -> server3:80).

dein Reverse Proxy soll als gast in einer VM laufen... auf dem Host wird nix installiert!
Damit hast du natürlich völlig recht. Man sollte dann auch konsistent sein.

Frank
, liebsten Dank.
Member: Vision2015
Vision2015 Nov 19, 2016 at 21:38:41 (UTC)
Goto Top
Zitat von @flasher4401:

Zitat von @Vision2015:
was du nicht schreibst ist, was für hardware hast du genau ?
Ich habe einen dedizierten Server (16 GB Ram, i7-3770) und eine IP.
nun, eine Ip- 16 GB Ram und ein I7 machen noch keinen Server aus...

ich würde eher dazu raten einen VMware ESXI 6 zu nehmen!
Ich nehme mal an, weil das einfach zu verwalten ist? Promox stellt auch eine komplette System-Installation zur Verfügung.
mit dem esxi kannst du die ressourcen feiner einstellen!

das port forwarding macht eh dein Router...
Welcher Router? Der Server ist mit einer IP ans Internet angebunden. Anfragen gehen direkt an diese IP und damit ans Host-System. Angenommen ein virtueller Server "server1" stellt einen Dienst an Port 100 und ein anderer "server2" stellt einen Dienst an Port 200 bereit. Dann soll der Host (natürlich per entsprechender Konfiguration) Anfragen an Port 100 an server1 und Anfragen an Port 200 an server2 weiterleiten/routen. D.h. wenn ich eine Anfrage an ip:100 stelle, soll diese dann intern an server1:100 gehen. Eventuell auch an andere Ports (z.B. ip:8080 -> server3:80).
ah- es war nicht ersichtlich ob der Server bei dir zuhause steht, oder bei einem Hoster.

dein Reverse Proxy soll als gast in einer VM laufen... auf dem Host wird nix installiert!
Damit hast du natürlich völlig recht. Man sollte dann auch konsistent sein.

Frank
, liebsten Dank.
Frank
Member: tomolpi
tomolpi Nov 19, 2016 at 22:24:47 (UTC)
Goto Top
Zitat von @Vision2015:

Zitat von @flasher4401:

Zitat von @Vision2015:
was du nicht schreibst ist, was für hardware hast du genau ?
Ich habe einen dedizierten Server (16 GB Ram, i7-3770) und eine IP.
nun, eine Ip- 16 GB Ram und ein I7 machen noch keinen Server aus...
Scheint mir, dass die Kiste nicht bei ihm steht sondern bei einem Hoster im RZ face-wink da gibts auch"Server" mit i7...
Member: flasher4401
flasher4401 Nov 19, 2016 updated at 22:42:00 (UTC)
Goto Top
nun, eine Ip- 16 GB Ram und ein I7 machen noch keinen Server aus...

Scheint mir, dass die Kiste nicht bei ihm steht sondern bei einem Hoster im RZ da gibts auch"Server" mit i7...
Das ist korrekt. Das ist aber die gegebene Hardware auf der das Ganze stattfinden soll. Hierbei betone ich evtl. nochmal, dass sich die Nutzung primär auf den privaten Gebrauch beschränkt, weshalb auch all das Kram auf diesem einen System laufen soll und kann. Ich wollte damit auch nur kundtun, dass es ausreicht, um ein paar VMs mit geringer Last parallel zu betreiben.

mit dem esxi kannst du die ressourcen feiner einstellen!
Definitiv eine Option.

lg
Member: Spirit-of-Eli
Spirit-of-Eli Nov 19, 2016 at 23:15:45 (UTC)
Goto Top
Moin,

- also nutzt du das System Privat und hast, denke ich, eine Infrastruktur mit NAT.
Dann leitest eben die Ports von Extern auf die Einzelnen VMs weiter.

-Als Hypervisor nutze ich Hyper-V, denke die meisten anderen VMware. Spielt aber auch keine Rolle. Suchst dir eines aus und wägst ab, welches dir am besten gefällt.

-Was gedenkst du denn als Betriebssystem für die einzelnen Anwendungen zu nutzen? Dieser Punkt wäre da noch offen.

-Ich würde mir noch kurz Gedanken über die Netzwerkinfrastruktur machen. Sollen die Systeme unter einander Kommunizieren dürfen? Macht z.b. eine DMZ-Konfig Sinn?

Ich denke, diese Punkte sind Grundlegend.


lg Spirit
Member: flasher4401
flasher4401 Nov 19, 2016 at 23:46:53 (UTC)
Goto Top
Zitat von @Spirit-of-Eli:
- also nutzt du das System Privat und hast, denke ich, eine Infrastruktur mit NAT.
Dann leitest eben die Ports von Extern auf die Einzelnen VMs weiter.
Jo, so dachte ich mir das.

-Als Hypervisor nutze ich Hyper-V, denke die meisten anderen VMware. Spielt aber auch keine Rolle. Suchst dir eines aus und wägst ab, welches dir am besten gefällt.
Alles klar. Von anderer Seite her wurde mir noch Docker ans Herz gelegt. Da muss ich mich aber erst einmal ein bisschen einarbeiten, bis ich entscheiden kann, ob das für meinen gewünschten Einsatz geeignet ist.

-Was gedenkst du denn als Betriebssystem für die einzelnen Anwendungen zu nutzen? Dieser Punkt wäre da noch offen.
Primär Debian/Ubuntu (64-Bit). Wenn Windows funktioniert, z.B. für nen Sharepoint Server, wäre das schön, es muss aber nicht.

-Ich würde mir noch kurz Gedanken über die Netzwerkinfrastruktur machen. Sollen die Systeme unter einander Kommunizieren dürfen? Macht z.b. eine DMZ-Konfig Sinn?
Ja sollen sie. Bestes Beispiel: Mailserver. Eine DMZ macht also durchaus Sinn.


lg Spirit
Herzlichen Dank.
Member: Spirit-of-Eli
Spirit-of-Eli Nov 20, 2016 at 00:10:01 (UTC)
Goto Top
Du bekommst das schon geschaukelt, Konzeptionierung ist immer gut.

Zu docker habe ich selbst leider derzeit keine Erfahrungen. Es ist wahrscheinlich eine gute Lösung um in diesem Fall Ressourcen zu schonen.
Die Frage, die hier aufkommt, ist nur wie gut diese Anwendungen in Docker laufen bzw. welchen Unterbau du nutzen willst.

Wenn du zu der Thematik deine Erkenntnisse mitteilen würdest, wäre das super!
Member: runasservice
runasservice Nov 20, 2016 at 14:28:26 (UTC)
Goto Top
Hallo,

Mit jeder neuen Anwendung und jedem neuen Datensatz, den der Server verwaltet, wächst bei mir die Angst, dass mir irgendwann,
wahrscheinlich durch ein Update, einfach alles um die Ohren fliegt.
...
Gebt mal euren Senf dazu!

Für dieses Bauchgefühl ist die Virtualisierung auch nur ein Placeboface-wink

Mit der Virtualisierung stehst Du dann vor ganz neuen Herausforderungen bzw. neuen Problemen. Egal für welchen Hypervisor Du dich entscheidest, Du musst das handhaben/konfigurieren/administrieren können und auch hier gibt es Updates. Wenn Du schon bei einen einzelnen Server Bauchmerzen hast, was ist dann erst mit 3 oder 4 Servern?

Dein Vorhaben wird mit nur einer IP-Adresse auch nicht leichter (kein IPv6?), zumal dein Dedicated Server mit dem "nackten Arsch" im Internet steht.

Viel Erfolg...
Member: BirdyB
BirdyB Nov 20, 2016 at 16:10:08 (UTC)
Goto Top
Hi flasher4401,

Zitat von @flasher4401:
Gebt mal euren Senf dazu!

Sehr gerne...

Also: Ich habe ein ähnliches Setup für meine "Spielwiese". Die Frage ist: Reden wir hier über Bastelserver oder über eine ernstzunehmende Produktivlösung?

Grundsätzlich wird das ganze Unterfangen mit einer IP schon schwierig. Mit einem ESXi kannst du afaik keine Ports an die VMs weiterleiten. Du bräuchtest hier also mindestens eine Management-IP und eine IP für deine Dienste. (Korrigiert mich, falls ich mich irre...)
Mit Proxmox geht das durchaus. Ich hatte selbst längere Zeit Proxmox im Einsatz. Für die Spielwiese ein gutes System, im Firmenumfeld setze ich da doch lieber auf VMware.

Auch wenn jetzt hier wieder alle aufschreien werden, so würde ich die ganze Portweiterleitungsgeschichte in deinem Szenario dann über eine virtuelle Firewall (z.B. pfSense) abwickeln. Es fühlt sich für mich zumindest sicherer an, wenn der ganze Traffic erstmal in einer Firewall landet (auch wenn sie nur virtuell ist), anstelle des Hypervisors direkt.

Ich habe es mit Proxmox mal so gelöst, dass ich den öffentichen Netzwerkadapter direkt an die VM mit pfSense durchgereicht habe. CAVE: Du kommst dann auch nur noch über deine virtuelle pfSense an den Proxmox (oder über die Rescue-Konsole). Bei mir hat es gut funktioniert, ich würde aus aus o.g. Gründen jedoch nicht für den echten Produktivbetrieb empfehlen.

Den Grundgedanken hinter deiner Lösung kann ich übrigens auch gut nachvollziehen und wenn man mal eben was ausprobieren will, ist ein neuer Testserver schnell installiert, ohne dass es Auswirkungen auf die anderen Systeme hat.

Beste Grüße!


Berthold
Member: Spirit-of-Eli
Spirit-of-Eli Nov 20, 2016 at 16:25:52 (UTC)
Goto Top
Mein Gedanke schließt ohne hin die Verwendung einer vorgeschalteten Firewall ein. Ansonsten würde ich dies gar nicht live schalten wollen.

Ich würde pfSense auf zusätzlicher Hardware davor setzen!
Member: BirdyB
BirdyB Nov 20, 2016 at 16:37:04 (UTC)
Goto Top
Wenn du die vorgeschaltete Firewall im RZ bekommst... Ich habe für mich privat einen dedizierten Server gemietet, mehr Möglichkeiten habe ich da nicht...
Member: Spirit-of-Eli
Spirit-of-Eli Nov 20, 2016 at 16:40:08 (UTC)
Goto Top
Habe ich mich verlesen? Ich gehe davon aus, das der TO die Geschichte zuhause stehen hat.
Member: BirdyB
BirdyB Nov 20, 2016 at 16:46:41 (UTC)
Goto Top
Ah, vielleicht habe ich das fehlinterpretiert...
Member: flasher4401
flasher4401 Nov 20, 2016 updated at 20:10:05 (UTC)
Goto Top
Zitat von @Spirit-of-Eli:

Habe ich mich verlesen? Ich gehe davon aus, das der TO die Geschichte zuhause stehen hat.


Nein, das ganze steht in einem Rechenzentrum, nicht bei mir zu Hause und es befindet sich vor dem Server auch noch eine Firewall. Ich würde nur zusätzlich gerne noch eine SW Firewall benutzen, die z.B. dann gleich noch ip2ban, etc. implementiert.
Member: Spirit-of-Eli
Spirit-of-Eli Nov 20, 2016 at 20:13:02 (UTC)
Goto Top
Okay, mein Fehler.

Dann doch lieber die Variante, eine FW in einer VM zu betreiben.
Member: flasher4401
flasher4401 Nov 20, 2016 at 20:15:33 (UTC)
Goto Top
Zitat von @runasservice:

Für dieses Bauchgefühl ist die Virtualisierung auch nur ein Placeboface-wink
...
Wenn Du schon bei einen einzelnen Server Bauchmerzen hast, was ist dann erst mit 3 oder 4 Servern?

Jein.
Das ganze hätte für mich den Vorteil, dass wenn mir eine Anwendung um die Ohren fliegt, die anderen (ungeachtet irgendwelcher dependencies) davon nicht beeinträchtigt werden. Zusätzlich könnte ich mir, wenn ich eine neue Anwendung hinzufügen möchte, einfach einen neuen virtuellen Server erstellen, herumprobieren, und wenn das ganze nichts ist, den Server wieder löschen und von neuem Starten, und das eben ohne die anderen Dienste zu gefährden.

lg
Member: flasher4401
flasher4401 Nov 20, 2016 at 23:23:52 (UTC)
Goto Top
Zitat von @BirdyB:

Also: Ich habe ein ähnliches Setup für meine "Spielwiese". Die Frage ist: Reden wir hier über Bastelserver oder über eine ernstzunehmende Produktivlösung?

Halb/Halb, d.h. div. Services sollen schon vernünftig zur Verfügung gestellt werden, insbesondere Mail + Cloud (Storage, Kalender, collab. Editing)

Grundsätzlich wird das ganze Unterfangen mit einer IP schon schwierig. Mit einem ESXi kannst du afaik keine Ports an die VMs weiterleiten. Du bräuchtest hier also mindestens eine Management-IP und eine IP für deine Dienste. (Korrigiert mich, falls ich mich irre...)

Ungern. Ich könnte mit IPv6 arbeiten, bin mir aber ziemlich sicher, dass einige Dinge damit (noch) nicht zufriedenstellend funktionieren würden.
Damit wäre VMware raus. Ich habe es mir noch nicht angeschaut, aber was hältst du von einem "weniger" virtualisierten Ansatz zur Isolierung einzelner Dienste mittels Docker ?

Auch wenn jetzt hier wieder alle aufschreien werden, so würde ich die ganze Portweiterleitungsgeschichte in deinem Szenario dann über eine virtuelle Firewall (z.B. pfSense) abwickeln. Es fühlt sich für mich zumindest sicherer an, wenn der ganze Traffic erstmal in einer Firewall landet (auch wenn sie nur virtuell ist), anstelle des Hypervisors direkt.

Ich habe es mit Proxmox mal so gelöst, dass ich den öffentichen Netzwerkadapter direkt an die VM mit pfSense durchgereicht habe. CAVE: Du kommst dann auch nur noch über deine virtuelle pfSense an den Proxmox (oder über die Rescue-Konsole). Bei mir hat es gut funktioniert, ich würde aus aus o.g. Gründen jedoch nicht für den echten Produktivbetrieb empfehlen.

Spricht denn etwas dagegen die FW direkt auf dem Host zu installieren ?

Den Grundgedanken hinter deiner Lösung kann ich übrigens auch gut nachvollziehen und wenn man mal eben was ausprobieren will, ist ein neuer Testserver schnell installiert, ohne dass es Auswirkungen auf die anderen Systeme hat.

Ganz genau. Und wenn man was updaten/ausprobieren will, kann man einen Snapshot erstellen, alles zerschießen und dann reverten. In meiner Vorstellung wirkt das ganze deutlich robuster als alles auf einem System zu machen.