Dienste in VMs isolieren?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 10:53:11

Hallo,

ich würde auf meinem neuen Server gerne wieder ein Debian installieren, stehe aber vor der Frage ob ich die Dienste physisch (also nicht virtuell) installieren oder doch eher jeden einzelnen Dienst in einer VM isolieren sollte. Die Frage ist auch: Wäre es sicherer? Wenn ich beispielsweise mein Apache in einer VM isoliere und die MariaDB in einer weiteren VM isoliere und beispielsweise etwas ausfallen oder angegriffen werden sollte wäre das andere zumindest nicht oder kaum davon betroffen. Da ich nur eine IPv4-Adresse habe, und auch nur diese eine benötige (da sowieso alles auf verschiedenen Ports läuft), würde ich hier eine NAT einrichten.

Was ich genau Fragen möchte: Macht so eine Installation überhaupt Sinn, und wie würdet es umsetzen? Welche Virtualisierungstechnologie würde Sinn machen? (VT-x und VT-d sind übrigens aktiviert)
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von hec_tech » 28.12.2017 11:56:33

Es kommt immer auf die Dienste drauf an. Ein Mailserver braucht immer seinen lokalen DNS Cache sonst hat man mit der Performance Probleme.

Eine Datenbank würde ich immer getrennt laufen lassen. Eine Datenbank hat im WAN sowieso nichts verloren. Die gehört in ein privates Netzwerksegment.

Mir gefällt LXC recht gut. Wie wäre es für Virtualisierung Proxmox einzusetzen? Damit kannst du sowohl LXC als auch KVM betreiben.

Sag mal um welche Dienste es konkret geht - dann können wir dir besser helfen.

Sicherer ist es meist die Dienste in verschiedenen VMs zu betreiben. Die Frage ist aber immer wie sicher wurden die Server konfiguriert. Wenn auf allen Servern gleiche User mit sudo Rechten existieren bringt es meistens nichts die Services aufzutrennen. Noch schlimmer sind meist Public Keys ohne PW und dazu eine nette ssh config. Da hat der Angreifen nach dem ersten Server oft gleich alle Server unter Kontrolle. Leider habe ich genug solche Wahnsinnigkeiten schon gesehen.

lg
Gregor

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 12:22:49

Hallo,

Proxmox klingt gut, aber ich würde gerne nach Jahren wieder ein unmodifiziertes Debian bevorzugen, da ich in letzter Zeit eben leider zu viele schlechte Erfahrungen mit Forks und/oder modifizierten Debiandistributionen machen musste. Die Datenbank nicht öffentlich zugänglich zu machen und nur hinter einer NAT zu betreiben klingt besser und sicherer, daran hatte ich nicht gedacht :)

Wenn möglich würde ich mich auch gerne nur auf eine Virtualisierungslösung beschränken, da sonst der Wartungsaufwand steigt und somit auch mehr potentielle Sicherheitslücken entstehen.

Ein eigener Mailserver soll nicht betrieben werden, es soll eben nur ein kleiner Webserver und eine Datenbank installiert werden, eventuell noch andere kleinere Dienste die nicht wirklich lebenswichtig sind und mehr oder weniger kleinere Spielereien sind.

Der Server selbst ist mit iptables sowie ip6tables abgesichert, es ist auch nur das für den Betrieb nötigste installiert und SSH ist ebenso vollständig abgesichert, die Anmeldung mittels Passwort wurde deaktiviert. Ebenso verwende ich für jedes System (dies schließt auch (zukünftige) virtuelle Systeme ein) verschiedene Benutzer und Passwörter. Für etwaige Verbesserungsvorschläge bezüglich der Sicherheit bin ich gerne jederzeit offen :)
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von scientific » 28.12.2017 12:32:59

Docker wär auch noch eine spannende Technologie.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 12:33:59

scientific hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 12:32:59
Docker wär auch noch eine spannende Technologie.
Ist Docker nicht mehr was für Entwickler? Um ehrlich zu sein, ich habe mit Docker noch nie wirklich zu tun gehabt.
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von scientific » 28.12.2017 12:34:49

Ganz und gar nicht. Das wirst du mit systemd-nspawn verwechseln.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 12:40:36

scientific hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 12:34:49
Das wirst du mit systemd-nspawn verwechseln.
Wenn ich dich, Docker und systemd-nspawn richtig verstehe, dann ist Docker nichts anderes als ein erweitertes chroot?
Wenn ja, wo liegt der genaue Unterschied? Ist das dann trotzdem noch alles gut isoliert und sicher?
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Benutzeravatar
spiralnebelverdreher
Beiträge: 1294
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: Dienste in VMs isolieren?

Beitrag von spiralnebelverdreher » 28.12.2017 13:56:45

Zelda hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 10:53:11
Was ich genau Fragen möchte: Macht so eine Installation überhaupt Sinn, und wie würdet es umsetzen? Welche Virtualisierungstechnologie würde Sinn machen? (VT-x und VT-d sind übrigens aktiviert)
Interessanten Input findest du vielleicht auch hier: https://www.qubes-os.org/. Qubes verfolgt den Ansatz, dem Nutzer durch Virtualisierung ein vernünftig sicheres Betriebssystem anzubieten, indem verschiedene Nutzungen (privat / beruflich bspw.) in verschiedenen Domänen voneinander isoliert werden.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von scientific » 28.12.2017 14:07:10

Zelda hat geschrieben:
scientific hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 12:34:49
Das wirst du mit systemd-nspawn verwechseln.
Wenn ich dich, Docker und systemd-nspawn richtig verstehe, dann ist Docker nichts anderes als ein erweitertes chroot?
Wenn ja, wo liegt der genaue Unterschied? Ist das dann trotzdem noch alles gut isoliert und sicher?
Jein. Die arbeiten beide mit den Kernel-cgroups. Eigene Namespaces für Prozesse, Netzwerk usw.

Gibt aber eh genügend deutschsprachige Doku im Netz. Ist eine interessante Technik!
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 14:09:15

spiralnebelverdreher hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 13:56:45
Interessanten Input findest du vielleicht auch hier: https://www.qubes-os.org/. Qubes verfolgt den Ansatz, dem Nutzer durch Virtualisierung ein vernünftig sicheres Betriebssystem anzubieten, indem verschiedene Nutzungen (privat / beruflich bspw.) in verschiedenen Domänen voneinander isoliert werden.
Der Ansatz gefällt mir! Wie bereits geschrieben, es ist eben ein Server ohne jegliche GUI und den ganzen anderen Desktop-Kram. Ich habe mal etwas Google bemüht und verschiedene Virtualisierungslösungen gefunden, wobei QEMU bzw. KVM wohl die meistverbreiteteste ist. Zugegeben, mit QEMU/KVM kenne ich mich aus, mit all den anderen, die mir als Suchergebis angezeigt wurden, jedoch nicht. Unter anderem war LXC und LXD dabei sowie Xen. Bei letzterem bin ich immer am GRUB gescheitert.

Wie bereits am Anfang dieses Thema gefragt: Wie würdet ihr es umsetzen? Welche Virtualisierungslösung würdet ihr nehmen? Was könnt ihr mir empfehlen?

Ich bin für jede Hilfe und jeden Ratschlag dankbar!
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von scientific » 28.12.2017 14:10:48

Bei uns im Unternehmen wird momentan alles auf docker umgestellt. Ich arbeite mich selber grad ein. Ist ziemlich lãssig.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 14:12:44

scientific hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 14:10:48
Bei uns im Unternehmen wird momentan alles auf docker umgestellt. Ich arbeite mich selber grad ein. Ist ziemlich lãssig.
Klingt Interessant, wie handhabt ihr das mit den Updates? So wie ich gelesen und verstanden habe braucht man einen sog. "persistenten" Speicher, der extern ist? Da sonst nach einem Container-Update alles weg ist?
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

gugus
Beiträge: 376
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Dienste in VMs isolieren?

Beitrag von gugus » 28.12.2017 15:15:02

Servus
Ich kann für Xen plädieren, in der aktuellen Version mit Debian 8/9 kein Problem.
Grub ist auch kein Problem mehr gegenüber früher.
Da läuft ein fileserver, private cloud und backup server, sowie eine firewall.
Gruss
gugus

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 28.12.2017 15:55:52

Hm, die Entscheidung ist wirklich schwierig. Der eine sagt Docker, der andere sagt Xen, und ich habe nur Erfahrungen mit KVM ... was für meine Zwecke ein wenig zu "Krass" ist.

Bei Docker weiß ich nicht wie das mit den Updates läuft, da ich mehrmals im Internet gelesen habe dass man alles sichern muss bevor man einen Container mal eben nur auf eine neue Version aktualisiert. Ich kann mich auch verlesen haben, ich weiß es nicht. Aber ich werde damit lieber erstmal lokal herumspielen bevor ich es irgendwo produktiv auf einen öffentlich zugänglichen Server einsetze.

LXC sieht nett aus, vorallem dieses LXD. Vielleicht kann hier jemand seine Erfahrung mit mir teilen?

Meine Erfahrung mit Xen unter Debian 8 und Debian 9 war, dass ich Xen zwar problemlos installieren konnte, es hat aber wegen fehlenden GRUB-Modulen nie gebootet. Ich kann mich an irgendein "multiboot"-Fehler erinnern, bin mir nicht sicher, habe es lange nicht mehr angefasst. Für Erfahrungen und evtl. Lösungsvorschläge deinerseits wäre ich dir dankbar, @gugus .
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Dienste in VMs isolieren?

Beitrag von bluestar » 30.12.2017 14:53:34

Zelda hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 15:55:52
LXC sieht nett aus, vorallem dieses LXD. Vielleicht kann hier jemand seine Erfahrung mit mir teilen?
Ich kann dich die Nutzung von LXC nur empfehlen, wir haben in den letzten 6 Monaten rund 50 KVM-VMs komplett durch LXC-Container ersetzt und sparen damit doch eine ganze Menge an Resourcen. Wenn du das Ganze noch auf ZFS einsetzt, dann reduzierst du den administrativen Aufwand merklich.

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 31.12.2017 12:10:55

bluestar hat geschrieben: ↑ zum Beitrag ↑
30.12.2017 14:53:34
Ich kann dich die Nutzung von LXC nur empfehlen, wir haben in den letzten 6 Monaten rund 50 KVM-VMs komplett durch LXC-Container ersetzt und sparen damit doch eine ganze Menge an Resourcen. Wenn du das Ganze noch auf ZFS einsetzt, dann reduzierst du den administrativen Aufwand merklich.
Darf ich Fragen wie das mit dem Punkt Sicherheit aussieht? Wie stark ist die Isolierung und die Gefahr eines Ausbruchs aus dem Container? Und wie verhält es sich mit der Performance verglichen zu einer kompletten VM die emuliert/paravirtualisiert ist?
Denn LXC sieht wirklich sehr interessant aus, ich werde es wohl mal ausprobieren, und wenn es gut läuft auch dabei bleiben :)
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Dienste in VMs isolieren?

Beitrag von bluestar » 31.12.2017 12:42:18

Zelda hat geschrieben: ↑ zum Beitrag ↑
31.12.2017 12:10:55
Darf ich Fragen wie das mit dem Punkt Sicherheit aussieht? Wie stark ist die Isolierung und die Gefahr eines Ausbruchs aus dem Container?
Wir serten ausschließlich unpriviligierte Container ein und nutzen pro Container einen eigenen User-ID-Bereich auf dem Host. Das heißt im Ausbruchsfalle würde max. ein normaler User-Account auf dem Host kompromitiert werden.
Zelda hat geschrieben: ↑ zum Beitrag ↑
31.12.2017 12:10:55
Und wie verhält es sich mit der Performance verglichen zu einer kompletten VM die emuliert/paravirtualisiert ist?
Die Performance von LXC ist „fast“ mit dem Hostsystem identisch, mit Virtualisierung hast du einen deutlich größeren Performanceverlust.

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 31.12.2017 13:55:57

Vielen Dank, LXC klingt wirklich spannend und interessant. Ich werde es mal ausprobieren und etwas damit herumspielen. :)

Noch eine Frage: Hast du auch Erfahrungen mit LXD sammeln können? Worin liegen überhaupt die Unterschiede zwischen LXC und LXD?
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Dienste in VMs isolieren?

Beitrag von bluestar » 01.01.2018 11:57:53

Zelda hat geschrieben: ↑ zum Beitrag ↑
31.12.2017 13:55:57
Hast du auch Erfahrungen mit LXD sammeln können? Worin liegen überhaupt die Unterschiede zwischen LXC und LXD?
Noch haben wir mit LXD keine Erfahrungen.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Dienste in VMs isolieren?

Beitrag von breakthewall » 02.01.2018 00:20:21

Nun wenn man allen Ernstes, jeden Systemdienst in eine VM packen will, dann wird das ausserordentlich kostspielig hinsichtlich der Hardware. Und nebenbei lohnt sich das nicht ansatzweise, oder besser gesagt gibt es keine Belege darüber, dass VMs sicherer wären als Containerlösungen. An und für sich ist es eine Glaubens -bzw. Geschmacksfrage, was nun als besser empfunden wird. Und egal wie man es nimmt, alle Lösungen können Sicherheitslücken haben, da sind auch VMs nicht davon ausgenommen.

Würde dir empfehlen dies auf Basis von Systemd zutun, zumal Systemd bereits alles mitbringt um Programme bzw. Systemdienste zu isolieren. Ist insbesondere für Anfänger bedeutend einfacher, und sehr fein einstellbar hinsichtlich der Restriktionen.

Doch vergessen sollte man auch niemals, dass das jeweils nur eine Schutzschicht darstellt, und echte Sicherheit stets aus mehreren Schutzschichten besteht. Sprich, man kann zusätzlich noch SELinux, AppArmor und anderweitiges nutzen. Die Mischung aus Sicherheitstechniken macht den Unterschied aus, zumal es eher unwahrscheinlich ist, dass alle Maßnahmen zeitgleich versagen.

Alternativ sofern Systemd nicht vorhanden ist, kann man ebenso auch LXC/LXD nutzen, oder auch bspw. Firejail um Systemdienste zu isolieren. Alles eine Frage was einem besser gefällt. Die Lösungen basieren ohnehin großteils auf denselben Kernel-Techniken.

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Dienste in VMs isolieren?

Beitrag von dufty2 » 02.01.2018 10:21:41

Huch!
In meinen bescheidenen Un-wissen werden virtuelle Maschine generell sicherer eingestuft als z. B. container.
Grund dafür ist, dass die Virtualisierung bei entsprechender CPUs (also z. B. nicht ATOMs ;) hardware-maessig unterstützt wird (Stichwort: vt-d).
Joanna Rutkowska (of Qubes fame) hat da mal ein Bildchen dazu gemacht, was ich leider derzeit nicht mehr finde ;)

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dienste in VMs isolieren?

Beitrag von scientific » 02.01.2018 12:31:14

Ich würd jetzt auch mal zur Abschottung mittels systemd neigen. Hab da unlãngst entdeckt, dass der firejailartig Dienste für Zugriffe auf Dateisystem und andere Ressourcen sehr restriktiv abschotten kann.

https://www.freedesktop.org/software/s ... .exec.html
Lies mal bei Capabilities und Protect* nach.

systemd kann da mittlerweile echt viel.

Musst aber gegenchecken, ob die Infos von freedesktop.org mit deinem systemd übereinstimmen.

Alternativ natürlich (die bessere Variante)

Code: Alles auswählen

 man systemd.exec
Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 03.01.2018 13:10:30

Hallo,

vielen Dank für die ganzen Antworten! Ich habe mir mal die verschiedenen Virtualisierungs- und Containertechniken angeschaut und werde wohl nicht jeden einzelnen Dienst isolieren. Ich werde wohl eher zu Docker oder Systemd tendieren, muss ich schauen.

Jedenfalls vielen Dank für eure großzügige Hilfe :)
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Dienste in VMs isolieren?

Beitrag von Lord_Carlos » 03.01.2018 13:38:34

I benutzte auch docker fuer einige kleine Services im Privaten bereicht.
Aber eher weil es angenehmer ist, und nicht wegen der Sicherheit.

Aber man muss viele neue Befehle lernen, und wenn man das nur ab und zu macht vergesse ich die schnell wieder :P Mir gefaellt es. Alleine fuer die Erfahrung lohnt es sich docker mal anzugucken.

Interessant waere vielleicht noch vor wem du dich schuetzten willst. Grosser unterschied ob ein script alle ports in deiner IP durchsucht und zufaellige passwoerter ausprobiert. Oder ob jemand die Ressourcen hat bei dir unbeobachtet einzubrechen und dein Kernel/Bios/UEFI manipuliert.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Zelda
Beiträge: 17
Registriert: 28.12.2017 10:36:20

Re: Dienste in VMs isolieren?

Beitrag von Zelda » 03.01.2018 13:46:20

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
03.01.2018 13:38:34
Interessant waere vielleicht noch vor wem du dich schuetzten willst.
Jeder darf mich gerne paranoid oder ähnliches nennen, aber ich tendiere immer dazu alles so sicher wie nur möglich zu machen. Ich weiß selbst dass es 100%ige Sicherheit nie geben wird, aber solange man die Möglichkeiten hat es potenziellen Angreifen so schwierig wie möglich zu machen dann sollte man sie schon nutzen wie ich finde.
Mit freundlichen Grüßen
Zelda, Princess of Hyrule

Antworten