"Sicheres" betreiben eines Webserver

Started by phil435345, Today at 06:18:13 PM

Previous topic - Next topic
Hallo Leute,
wie man erkennen kann bin ich neu hier, habe aber schon sehr viele Posts aus dem Forum gelesen.
(OpnSense für Dummies (speziell für Fritzbox-Umsteiger))
(How (not) to expose services in your home network)
(Netzwerk-Umbau nach Glasfaser-Umstellung - FRITZ!Box vor oder hinter OPNsense?)
(...)

Meine Fragen wurden teilweise schon in anderen Posts beantwortet, wollte hier aber nochmal alles zusammenbringen, damit ich auf der sicheren Seite bin und eventuell auch anderen Personen, die das gleiche Problem haben, mit diesem Post weiterhelfe.

Meine Fragestellung ist, wie betrieb ich einen Webserver ,,sicher" in einem Heimnetz, sicher in ,,"weil es ja bekanntlich nie 100% Sicherheit gibt. Und ich spreche von einem einfach Webserver, der einfach eine persönliche Webseite hosten soll.

Mir ist bewusst das die optimale Lösung eine andere darstellt, jedoch ist optimal immer Ansichtssache und mit meinem Ansatz möchte ich mit wenig Aufwand (FritzBox Telefonie und weiteres so lassen wie es ist), ein hohes Maß an Sicherheit erreichen.

Mein Aufbau würde so aussehen: (alles auf IPv4, ich bekomme auch von meinem ISP eine IPv4 Adresse)

Internet <-->(public ipv4)Fritzbox (10.1.0.1/16) <--> Privates LAN (10.1.0.0/16) <--> (10.1.0.3/16)OpnSense(192.168.0.1/24) <--> "Öffentliches" LAN (192.168.0.0/24)

Aktuell ist mein Netzwerk wie oben aufgebaut jedoch ohne der OpnSense und dem ,,öffentlichen" LAN. Ich will die Fritzbox so lassen wie sie ist, jedoch will ich nicht, dass mein Webserver im gleichen LAN wie meine privaten Geräte hängt. Deswegen würde ich gerne die OpnSense zwischen schalten und in dem neuen ,,öffentlichen" LAN mein Webserver bereitstellen.

Dazu würde ich:
-   Auf der Frirtbox eine statische Route auf mein ,,öffentliches" LAN setzten, damit das doppelte NAT wegfällt.
-   Eine Portweiterleitung (80, 443) auf die IP-Adresse des Webservers im ,,öffentlichen" Netz (192.168.0.2/24).

Zusätzlich würde ich in der OpnSense ein Firewall Regel erstellen, dass alle Verbindungen aus dem Netzt 192.168.0.0/24 auf private IP Adressen blockiert werden.

Ihr könnt davon ausgehen, dass die Default-Gateways an der Fritzbox und der OpnSense richtig gesetzt sind.

Nach meinem Verständnis müsste jetzt mein Webserver aus dem Internet erreichbar sein. Zusätzlich sollte vom Webserver aus nur Verbindungen in das Internet möglich sein (für Updates oä.).

Durch diesen Aufbau erhoffe ich mir ein zusätzliches Maß an Sicherheit, weil wenn mein Webserver kompromittiert wird, dieser in einem abgeschotteten Netzt sitzt und niemanden erreichen kann.

Sind meine Gedanken so korrekt?

Danke für euere Unterstützung! Grüße Philip

Das kannst Du so machen, wenn es auch eine sehr eingeschränkte Nutzung für OpnSense ist, bei der ggf. Blocklisten oder GeoIP erst nach der Fritzbox wirken. Wie Du weisst, sollte man die Angriffsfläche möglichst minimieren. Auch wird das alles in Bezug auf IPv6 schwierig - ich habe keine Ahnung, ob/wie man die IPv6-Präfixe delegieren kann oder ob Du das brauchst/willst.

Ich würde aus pragmatischen Gründen auch das Port-Forwarding nur auf der Fritzbox machen und auf der OpnSense anstelle von Port-Forwards oder Firewall-Regeln lieber einen Reverse-Proxy einsetzen, aber das hast Du ja schon gelesen. Eins davon musst Du auf jeden Fall tun, weil auf einem typischen "WAN" Interface per Default kein eingehender Traffic zugelassen ist (NAT musst Du dort dann auch abschalten).

Was die Subnetze angeht, solltest Du vielleicht noch dies lesen. Ohne Not würde ich weder ein /16 definieren noch 192.168.0.x/24 nutzen.

Richtig ist, dass Du damit eine DMZ schaffen kannst, die nur ins Internet kommt und keinen Zugriff auf interne Geräte hat. Das wäre aber eleganter auch mit einer OpnSense "vorne" möglich.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Today at 09:50:29 PM #2 Last Edit: Today at 09:55:17 PM by phil435345
Danke meyergru für deine schnelle und ausführliche Antwort. Aktuell ist mir die IPv6 Thematik egal und ich habe in deinem Post ,,How (not) to expose services in your home network" schon gelesen, dass man sich der Thematik eigentlich annehmen muss.

Der Hinweis mit dem Revers Proxy ist super, du meinst ich soll dann in meine ,,öffentlichen" LAN ein Reverse Proxy einsetzen, der dann die eingehenden Verbindungen (aus dem Internet) an die entsprechenden Services (z. B. mein Webserver) im ,,öffentlichen" LAN delegiert?

Der verlinkte Beitrag zu den Subnetzen ist auch super, danke. Tatsächlich ist auch der Grund meines 10.1.0.0/16 Netzt, dass ich vor Jahren zwei Netze per VPN verbinden wollte und dann feststellen musste, dass es nicht funktioniert, weil beide Netze die gleichen privaten IP Ranges hatten und ich ein Netzwerk neugestalten musste. Die /16 ist bei mir so, damit ich meine Clients (<254) ein wenig strukturieren kann, da die Fritzbox keine VLANs erstellen kann. (10.1.1.x sind z. B. normale Clients / 10.1.2.x sind Drucker / 10.1.3.x sind ...)

Ziel ist es auf lange Sicht (wenn ich wieder mehr Zeit habe) die OpnSense richtig zu nutzen, also ,,vorne" und die Fritzbox nur noch als Telefonanlage zu nutzen (so wie du das auch schon beschrieben hast). Deswegen würde ich jetzt schon eine ordentliche Hardware für die OpnSense kaufen, um sie dann wieder zu verwenden.
Ziel: OpnSense ganz "vorne" und dann an der OpnSense ein echtes DMZ Netz und ein privates LAN mit verschieden VLANs

Siehst Du, die Subnetzstruktur wäre mit OpnSense eben kein Problem (mit VLANs).

Der Reverse Proxy läuft auf der OpnSense und reicht namensbasiert von seiner IP 10.1.0.3, wo er auf 80/443 lauscht zu dem (oder den) Webserver(n) im "LAN" (= DMZ) durch. Er kann u.a. die Beantragung von Zertifikaten machen. Ob es Caddy oder HAproxy ist, ist dabei ziemlich egal und man kann es natürlich auch mit IPv4 only machen.

Unterschätze den späteren "Umbau" nicht - es ist wahrscheinlich einfacher, gleich alles richtig zu machen - besonders, wenn die Frau und die Kinder dann nerven, weil das Netz wieder nicht mehr funktioniert.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Alles klar, dann weiß ich Bescheid. Danke nochmal für den ganzen Input, ist wirklich Gold wert! :)