Private IT-Infrastruktur mit Proxmox, Docker, Cloudflare usw. planen

ShadowGamer97

Cadet 2nd Year
Registriert
Apr. 2023
Beiträge
19
Hey liebe Community,

ich habe vor, auf meinem Dedizierten Server mehrere Sachen zu realisieren und habe dieses Mal grafisch dargestellt.

PfSense:
Mit einer PfSense habe ich noch nie gearbeitet. Ich frage mich, ob Sie auf Debian 11 Baremetal richtig liegt und dort installiert werden soll, oder soll ich woanders platzieren? Geht mir darum, einfach mal bestimmte Sachen einzurichten, Firewall regeln, evtl. Routing usw usw.

Zu Proxmox:
Mein Gedanke war es, auf meinem dedizierten Server von Hetzner wo Debian 11 drauf läuft, Proxmox zu installieren. Somit sollte ich die Möglichkeit haben eine VM zu erstellen, wo alles über Docker läuft und mir auch die Option übrig lässt, andere VM´s für einen Games-Server beispielsweise zu erstellen oder aber auch mit Windows Server etwas herumhantiere.

Docker:
Unter Docker möchte ich Portainer installieren. Es sollen mehrere Container laufen wie Nextcloud, Checkmk, Bitwarden, Mail, eine CA und evtl. in Zukunft noch mehr. Den Reverse Proxymanager von Nginx Proxy Manager möchte ich für Nextcloud benutzen sowie Checkmk. Bin mir nicht sicher, ob Bitwarden und Mailcow auch den Proxy Manager brauchen?

Cloudflare:
Zusätzlich war der Gedanke, Cloudflare noch mit ins Boot zu holen, weiß aber nicht so recht wie man das am besten implementiert bzw. ob ich mir das richtig vorstelle wie es funktioniert. Gedacht war, dass der Weg von WWW über Cloudflare läuft, und Cloudflare auf den Proxy Manager zeigt, wo es mich dann zu den jeweiligen Diensten wieder führt.

Wireguard:
Soll als Site so Site Tunnel von mir Zuhause nach Hetzner dienen.

Mailcow,Nextcloud,Checkmk,CA
Ich glaube zu den Systemen muss ich nicht viel sagen, alle sollen jeweils in einen Container.



Falls ich das ganze total falsch betrachte, klärt mich bitte, wie ich es am besten richtig implementieren sollte.
Bin für jeden Tipp sehr dankbar!



1695245442579.png
 
Erstmal, ohne deinen text gelesen zu haben, nur was mir im Bild auffällt: Warum docker, wenn du auch direkt auf Proxmox LXC Container laufen lassen kannst?
Warum eigene CA? Letsencrypt tut für die meisten besser
Wo steht der 2. Mailserver? Oder ist Spam score nicht relevant?
CheckMK finde ich zu kompliziert / aufwändig für "nur mal eben" Prometheus+alertmanager+grafana hingegen ist ein recht einfacher stack

Fuer Cloudflare sehe ich hier keinen Sinnvollen Usecase
 
  • Gefällt mir
Reaktionen: TheHille
madmax2010 schrieb:
Warum docker, wenn du auch direkt auf Proxmox LXC Container laufen lassen kannst?
Möchte mich halt Docker & Portainer etwas lernen, das war der Gednake dahinter. Oder spricht etwas dagegen?
madmax2010 schrieb:
Warum eigene CA? Letsencrypt tut für die meisten besser
Auch hier möchte ich lernen wie man eine CA erstellt und wie das ganze in einer Infrastuktur fuß fasst. Soll ich deiner Meinung also ein Wildcard Zertifikat generieren?
madmax2010 schrieb:
Wo steht der 2. Mailserver? Oder ist Spam score nicht relevant?
Wieso genau 2 Mailserver? Reicht da nicht einer? Und was hat der Spam score genau damit zu tun?
madmax2010 schrieb:
CheckMK finde ich zu kompliziert / aufwändig für "nur mal eben" Prometheus+alertmanager+grafana hingegen ist ein recht einfacher stack
Mache mir mal darüber Gedanken
madmax2010 schrieb:
Fuer Cloudflare sehe ich hier keinen Sinnvollen Usecase
Magst du mir näher erläutern wieso du für Cloudflare keinen Sinnvolle Usecase siehst.
 
ShadowGamer97 schrieb:
Magst du mir näher erläutern wieso du für Cloudflare keinen Sinnvolle Usecase siehst.
Cloudflare ist ein Lastverteilungsdienst, den wirst Du hier nicht brauchen, es sei denn, Du rechnest gleich mit massiven DDoS

Aber zusammengefasst:
Das alles sind Netzwerkdienste, die bei fehlerhafter Konfiguration massiv Schaden einstecken und auch gegen andere austeilen können, mit sowas würde ich erstens nacheinander und dann nur lokal im Netzwerk experimentieren. Kommst Du bei einer Fehlkonfiguration denn wieder auf den Server?
 
  • Gefällt mir
Reaktionen: Thaxll'ssillyia
madmax2010 schrieb:
Erstmal, ohne deinen text gelesen zu haben, nur was mir im Bild auffällt: Warum docker, wenn du auch direkt auf Proxmox LXC Container laufen lassen kannst?
Ich habe auch Proxmox und ursprünglich alles als LXC umgesetzt. Bin dann aber doch auf VM + Docker gewechselt und manage alle Docker Container mit Portainer. Für mich selbst ist das Management mit Portainer übersichtlicher, einfacher und schneller, als alles über separate LXC Container laufen zu lassen.

Gibt es aber sonst Punkte, die ich außer Acht gelassen habe, die LXC doch besser macht als Docker?
 
  • Gefällt mir
Reaktionen: nkler
Hm, ich weiß nicht genau, ob das PfSense kann, aber OPNsense hat nen HAProxy.

Dann kommst du vermutlich mit (OPN/PF)-Sense und Proxmox aus, diese können alle deine Ideen übernehmen.

Kaufst du dir dann für deine CA ein Zertifikat?

Eigener Mailserver im Internet... der muss gut abgesichert sein. Wenn die IP mal irgendwo auf Spamlisten auftaucht, wars das...
 
TheHille schrieb:
Eigener Mailserver im Internet... der muss gut abgesichert sein. Wenn die IP mal irgendwo auf Spamlisten auftaucht, wars das...
Das geht schon ganz gut mit der Kombi Mailcow + Crowdsec
 
  • Gefällt mir
Reaktionen: TheHille
ShadowGamer97 schrieb:
PfSense habe ich noch nie gearbeitet. Ich frage mich, ob Sie auf Debian 11 Baremetal richtig liegt
PfSense ist streng genommen keine Anwendung die du auf Debian installieren kannst. pfsense ist eine komplette Distribution/Appliance auf FreeBSD Basis mit der du dann die Konfiguration von routing, firewall, dns, dhcp und weiteren (optionalen) Features einfacher oder zumindest per grafischer Oberfläche im Browser konfigurieren kannst.

Wenn du alles auf einem Server betreiben willst dann bleibt also nur pfsense/opnsense als VM mittels Proxmox zu betreiben. Das kann man alles machen aber ist wunderbares komplexes Konstrukt was die Analyse im Fehlerfall nicht gerade vereinfacht. Ein von mir sehr geschätzer Mensch schrieb einmal:
“Computers are simple” is what I am telling people I train. “There are only Zeroes and Ones, and it is not getting much more complicated.”

“But computers are hard”, they respond.

“That is correct. In computer systems, complexity is almost never in the individual layers, but it comes from the width and breadth of the stack. It’s in the interactions of the components that we are putting together.”
Wenn es dir nur darum geht mal etwas auszuprobieren, zu lernen, etc. dann mach das so wie du denkst und wenn es nicht klappt lerne daraus und mach es beim nächsten Versuch besser.

Falls du aber vor hast so etwas aufzusetzen und dann längerfristig produktiv zu nutzen, ggf. nicht nur für dich sondern auch für Freunde und Familie dann hast du plötzlich die Verantwortung an der Backe, dass das Setup läuft und das nicht nur heute sondern auch in 3 Wochen, 3 Monaten oder 3 Jahren.
Es ist deine Verantwortung dich um Backups zu kümmern.
Es ist deine Verantwortung dich um Updates zu kümmern.
Es ist deine Verantwortung dich um regelmäßige Anpassung der Härtung zu kümmern.
Aber am wichtigsten: Es ist deine Verantwortung dich um die Fehleranalyse und Behebung zu kümmern wenn etwas nicht klappt wie es soll und allerspätestens dann ist Komplexität dein schlimmster Feind.

ShadowGamer97 schrieb:
Docker & Portainer etwas lernen, das war der Gednake dahinter. Oder spricht etwas dagegen?
Ja, die Verwendung von Portainer. Das ist ein nützliches Tool was einem vieles vereinfacht und abnimmt und hinter Wizards versteckt aber dadurch lernst du nicht wirklich etwas bzw. du lernst nur Klickabfolgen wie du Container bzw. Compose Kombis startest.
Portainer versteckt halt vor dem Anwender viel Komplexität und dadurch wirst du nur sehr oberflächlich etwas lernen bzw. nur begrenzt Verständnis entwickeln über Docker.

ShadowGamer97 schrieb:
wie man eine CA erstellt und wie das ganze in einer Infrastuktur fuß fasst.
Du sitzt da einem allgemeinen Irrglauben auf.

Irgendetwas aufzusetzen bzw. zu installieren ist simpel. Lerne was eine CA ist, warum man diese mindestens zwei- oder besser dreistufig aufbaut, wie man eine CA mit hohem Automatisierungsgrad in seine Umgebung integriert, wie und warum man Zertifikate widerrufen kann und jetzt die Königsdisziplin: Wie und wann man bei seiner eigenen CA die root und intermediate Zertifikate austauscht/erneuert ohne dass einem dabei alles um die Ohren fliegt. Installieren braucht man dazu nix bzw. nur um seine Theorien zu überprüfen.

Die Installation ist ein Kinderspiel. Betrieb und Troubleshooting nach ein paar Jahren ist das wo der Spaß erst richtig los geht.

ShadowGamer97 schrieb:
Soll ich deiner Meinung also ein Wildcard Zertifikat generieren?
Wenn du deine Dienste per TLS absichern möchtest, wäre das der einfachste Weg. Oder einfach ein Zertifikat pro Dienst/Subdomain.

ShadowGamer97 schrieb:
Wieso genau 2 Mailserver? Reicht da nicht einer? Und was hat der Spam score genau damit zu tun?
Theoretisch und aus technischer Sicht reicht ein Mailserver. Aber bei Hetzner laufen nicht nur seriöse Angebote, daher landen die IPs von Hetzner (die du ja als Kunde bekommst bzw. benutzt) gerne auf diversen Spamlisten.

madmax2010 schrieb:
CheckMK finde ich zu kompliziert / aufwändig
Witzig, hätte ich jetzt anders herum empfunden und empfohlen :D
Bin aber auch vorbelastet da ich checkmk aus beruflicher Vergangenheit kenne. Installation des Servers ein NoBrainer, Agenten ausrollen, discovery, fertig. Komplex wirds bei eigenen Rules, ggf. der Alertengine und wenn man die Agent Bakery nutzen will. Dafür hab ich nur begrenzte Erfahrung mit prometheus & Co.
@ShadowGamer97 Daher schau dir einfach beides an und nutze was besser für dich passt und womit du besser klar kommst.

AGB-Leser schrieb:
Cloudflare ist ein Lastverteilungsdienst
ShadowGamer97 schrieb:
für Cloudflare keinen Sinnvolle Usecase siehst
Naja Cloudflare ist schon ein bisschen mehr. CDN, Reverse Proxy, WAF, DNS Provider & Registrar und sd-wan & -firewall im B2B Bereich.
Das Problem ist hier: Keiner von euch beiden benennt hier klar was ggf. genutzt werden soll sondern schwurbelt mit einem Firmennamen herum der zig Produkte & Services anbietet. Klartext reden hilft Missverständnisse zu vermeiden.
Als minimale WAF & Reverse Proxy für die eigenen Dienste kann man das durchaus nutzen, auch als Privatperson. Funktioniert halt afaik nur für Webseiten. VPN, Mail & Co gehen nicht sofern man nicht cloudflare-tunnel nutzen möchte. Muss am Ende jeder für sich entscheiden ob man all seinen verschlüsselten Traffic bei Cloudflare terminieren lassen möchte, kann oder darf.
 
  • Gefällt mir
Reaktionen: rezzler, Snowi, madmax2010 und 3 andere
Hier ist von Lernen die Rede, nicht Profianwendungen. Ich weiß, dass cloudflare auch andere Dienste anbietet, aber allgemein kennt die Firma jeder darunter.

Erstmal klein anfangen, eins nach dem anderen, dann kann man sich an die größeren Sachen wagen.
 
PfSense auf einem Miet-Server halte ich für seltsam. Bin da aber nicht so firm drin, vielleicht sehe ich das falsch.
eigentlich sollte iptables für dich völlig reichen.
Du musst ja nur 443 (ggf. 80 je nach Cert Challenge) und den Wireguard Port öffnen und keine komplizierten Routingregeln einrichten wie auf einem Router für ein ganzes Netzwerk.

Ansonsten finde ich Docker in Proxmox auch deutlich vielseitiger als LXC.
LXC verwende ich fast nur für mini-debians mit single purpose, z.b. als abgekapselter DDNS refresher.

EDIT: Achso, Docker nicht in einem LXC betreiben, auch wenn es Tutorials dafür gibt.
Da stößt man schnell an diverse Probleme, für die man dann selbst eine Lösung suchen muss.
Am besten in eine blanko debian VM.
 
Zuletzt bearbeitet:
madmax2010 schrieb:
CheckMK finde ich zu kompliziert / aufwändig für "nur mal eben" Prometheus+alertmanager+grafana hingegen ist ein recht einfacher stack
Da bin ich auch irgendwie auf der Seite von @snaxilian - ich finde Checkmk ist auch heutzutage noch ein ziemlicher Nobrainer. Installation geht in 5 Minuten, Agenten genau so. Auch die Rules anzupassen ist, wenn man sich mal etwas dran gewöhnt hat, sehr einfach.
Dafür jetzt 3 eigene Tools installieren, diese miteinander koppeln und das Grafana Dashboard erstellen, hört sich für mich deutlich aufwendiger an, kenne mich aber auch bei allen 3 nicht mit der Installation aus.

Eigene CA finde ich aus Lernsicht schon interessant, zumal LetsEncrypt für ggf. nur Intern genutzte Dienste ein Problem sein dürfte, da du die Certs ja irgendwie beantragen / verlängern musst. Da würde ich also auch eher eine eigene PKI betreiben wollen.

Zum Rest kann/will ich nicht viel sagen, da hab ich doch eher wenig Wissen :D
 
Snowi schrieb:
Eigene CA finde ich aus Lernsicht schon interessant
Eben fix eine CA durchzuklicken ist kein Hexenwerk und da lernt man auch wenig denn die spannenden Dinge kommen erst danach bzw. im Betrieb.
Snowi schrieb:
LetsEncrypt für ggf. nur Intern genutzte Dienste ein Problem sein dürfte, da du die Certs ja irgendwie beantragen / verlängern musst.
Das ist ein längst gelöstes Problem.
Zertifikat beantragendes System und Zertifikat verwendendes System müssen ja nicht identisch sein und die Verteilung der Zertifikate vom beantragenden zum verwendenden System lässt sich auch automatisieren.
Snowi schrieb:
Da würde ich also auch eher eine eigene PKI betreiben wollen.
Du musst anschließend deine eigene PKI bei ALLEN Geräten und Anwendungen eintragen. Nur OS reicht nicht, da manche Anwendungen eigene Listen von trusted CAs haben oder willst du immer und überall die Warnungen weg klicken weil deine Geräte und Anwendungen dem selbst erstellten Zertifikat nicht vertrauen?

Dann brauchst du ja, wenn du es halbwegs richtig und sicher betreiben willst, eine offline-root-ca und eine issueing-ca die die Zertifikate ausstellen kann und auch das ausstellen und verteilen der Zertifikate sollte automatisierbar sein denn die Browserhersteller überlegen gerade die Laufzeit vertrauenswürdiger Zertifikate von einem Jahr auf 90 Tage zu senken.
Der nächste "Spaß" ist dann das rollover der issueing-ca und später der root-ca denn auch deren Gültigkeit ist ja nicht unbegrenzt. (Verteilen der neuen root- & issueing Zerts auf Geräte und Anwendungen nicht vergessen ;) )
Für's lernen: Nette Spielerei wenn man es einfach mal machen möchte aber am Ende hat man dann nur "gelernt" wie man dieses eine CA Produkt durchklickt. Wirklich gelernt hat man etwas wenn man das Prinzip/Konzept dahinter verstanden hat und nicht die einzelne Implementierung.

Das ist vergleichbar mit Virtualisierung. Wenn ich einmal verstanden habe was Virtualisierung ist und wie dies umgesetzt wird dann ist es anschließend nebensächlich ob ich das mit HyperV, ESXi/vSphere oder qemu/kvm umsetze. Ich muss dann nur noch die jeweiligen Produktfeinheiten lernen und bin nicht völlig aufgeschmissen wenn ich nach Jahren mit vSphere plötzlich HyperV machen müsste oder, was wahrscheinlicher ist, irgendwelche Setups mit EC2 betreuen sollte.
 
Deshalb schrieb ich ja "zum lernen"; Klar. Wenn du nur die CA durchklickst, lernst du nicht viel. Aber es geht ja um das Gesamtkonzept, das du ja im anfallen Umfang erläutert hast. Zu Lernzwecken, wenn man Zeit, Lust und Geduld mitbringt, finde ich das super.
Wenn man die Zeit und Lust nicht hat, dann sollte man was anderes machen.

Dann brauchst du ja, wenn du es halbwegs richtig und sicher betreiben willst, eine offline-root-ca und eine issueing-ca die die Zertifikate ausstellen kann
Dann darf ich aber auch die Private Keys für LetsEncrypt nicht auf einem System A generieren, und dann auf den Systemen B-Z diese Keys einspielen. Der Key hat den Server eigentlich nicht zu verlassen, auf dem er eingesetzt wird ;)
Ist alles eine Frage der Definition. Einen Raspberry-Pi incl. Backup des Backups der SD Karte lässt sich schnell und einfach umsetzen, und da hast du dann eine Offline CA.

denn die Browserhersteller überlegen gerade die Laufzeit vertrauenswürdiger Zertifikate von einem Jahr auf 90 Tage zu senken.
Tun sie, aber das tun sie schon lange. Ich beobachte das auch und bin gespannt, weil ich Beruflich auch sehr aktiv von dieser Entscheidung betroffen sein werde, aber aktuell geht man von Ende 2024 aus. Es kam aber auch immer sehr aktiv Gegenwind, bin gespannt wie es in Zukunft läuft. An sich begrüße ich das aber.
Was es hier aber zu beachten gilt: Das Konzept greift nur für Externe CAs. Du kannst dir weiterhin deine eigene CA bauen und Zertifikate mit 3 Jahren Laufzeit ausstellen, wenn du das willst.
 
Snowi schrieb:
Dann darf ich aber auch die Private Keys für LetsEncrypt nicht auf einem System A generieren, und dann auf den Systemen B-Z diese Keys einspielen. Der Key hat den Server eigentlich nicht zu verlassen, auf dem er eingesetzt wird
Ich sehe kein Problem darin die private keys auf jedem System zu haben, CSR damit zu erstellen, CSR zentral zu sammeln, von da aus alle certs erstellen lassen und dann die Zertifikate zu verteilen. Ist mit bisschen Ansible o.ä. problemlos unzusetzen.
 
snaxilian schrieb:
Ich sehe kein Problem darin die private keys auf jedem System zu haben
Joa ist auch definitiv machbar, aber noch mehr Aufwand für jemanden, der es gerade erst lernt / sich damit befassen will.
Ich glaube am Ende nimmt es sich nicht viel, man sollte eher schauen, woran man mehr Interesse / Spaß hat bei sowas.
 
Zurück
Oben