Wie kann ich am besten eine "richtige" DMZ hinter oder vor meiner FB 7590 einrichten?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Nein. Ich habe auf keinen meiner Raspberries ein Klickie Buntie Desktop. Das sind alles Server. Alle laufen somit headless und ich wollte eigentlich auch das BSD headless ausprobieren und dann eventuell umsteigen. War ein kurzer Versuch BSD mal auf die Rapsi zu bringen. Leider funktioniert das nicht OOTB :(

    Ist auch egal - dann bleibe ich bei RaspianOS. Die Ubiquiti FW wird meine RPi schon schuetzen.

  • Wie kann ich am besten eine "richtige" DMZ hinter oder vor meiner FB 7590 einrichten?? Schau mal ob du hier fündig wirst!

  • Ich habe diesen Thread noch mal auf "unerledigt" gesetzt um vorzustellen wie meine Topologie jetzt aussieht und wie ich die DMZ konfiguriert habe. Vielleicht hat auch jemand mal Lust sich das anzusehen ob ich vielleicht nicht noch was uebersehen habe. Z.B. ist mir eben als ich die Topologie aufs Papier brachte eingefallen dass noch eine FW Rule fehlt die den Zugriff aus den DMZ zu dem FB NTP erlaubt damit die Zeit auch in der DMZ synchronisiert werden kann.

    Der Zugriff aus dem Internet fliesst wie folgt durch mein lokale Netz:

    1) In der Fritzbox (FB) ist der Port P forwarded zum Edgerouter (ER)

    2) Am Homenetz haengen mehrere Accesspoints (AP) fuer Clients sowie kabelgebundene Server

    3) Am ER haengt die DMZ als eigenes Netz

    4) Im ER ist der Port P forwarded zur RPi

    5) Im ER laeuft ein DHCP und DNS Forwarding ist enabled.

    6) Eine Outbound chain von eth2 (DMZ) zu eth0 (Heimnetz) erlaubt established und related Verbindungen fuer Port P und Port 22 sowie Port 123 zur FB new, established und related. Der Default der Chain ist drop.

    6) Inbound chain ist leer und somit jeglicher Inbound Request moeglich

    Ich habe noch ueberlegt ob Inbound Rules notwendig sind. Mir ist keine notwendige Regel eingefallen. DNS lookup ist standardmaessig auch geblocked. Nur wenn ich einen Update auf der RPi vornehmen will enable ich den Port 53 fuer outbound. Ansonsten brauche ich nur Port 22 fuer den SSH Zugriff. Macht es Sinn noch Inbound nur die Ports P, 22 und 123 zuzulassen?

  • Wenn du den ER als DNS-Forwarder bzw DNS Proxy eingerichtet hast sollte die Namensauflösung doch funktionieren ohne dass du den Port 53 für Clienten frei gibst.
    Wenn du auf dem "WAN" Port als DNS die FB eingetragen hast sollte der alles Auflösen, incl fritz.box.
    Der Client in der DMZ fragt ja den ER und dieser forwarded das dann zur FB.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Ja, sieht gut aus.
    Obwohl es meinem inneren Monk triggert dass die DMZ hinter dem LAN ist :)

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Obwohl es meinem inneren Monk triggert dass die DMZ hinter dem LAN ist

    Verstehe ich ganz und gar. Mir waere die erste Topologie auch lieber. Aber dann muss ich zu viel bei mir umbauen und das will ich nicht. D.h. wie es im Topic heisst eine "richtige DMZ" ist es so nicht. Eher eine "DMZchen" bzw "poor man" DMZ :)

  • Die letzten Tage habe ich damit verbracht mich in das EdgeOS sowie das ERX UI und CLI einzuarbeiten und viel gelernt.

    Die DMZ wie ich sie haben will ist jetzt soweit sicher. D.h. ich kann durchaus einem jeden, der eine Raspi ins Internet von aussen im Heimnetzwerk zugreifbar machen moechte, die Loesung mit dem Edgerouter zu gehen. Die Loesung ist jedenfalls wesentlich sicherer :) als die Raspi aus dem Heimnetz einfach so per Portforwarding in der Fritzbox freizugeben :-/

    Die UI ist ganz nuetzlich um FW Regeln zu erstellen. Aber man kommt nicht umhin auch die CLI zu nutzen denn das UI deckt nur einen eher kleinen Subset der Konfigurationsmoeglichkeiten ab. Ausserdem sollte man sich gut mit iptables und tcpdump auskennen um die richtigen FW Regeln zu erstellen und zu testen. Kurzum - so schoen und relativ billig die Loesung auch ist - sie erfordert Netzwerkkenntnisse und Zeit und Musse sich in dem Thema einzuarbeiten. Ich hatte mal anfaenglich angedacht dazu ein Tutorial zu schreiben denn es gibt viele Leute die ihre Raspi leider als Server einfach so ins Heimnetzwerk stellen und ein paar Ports freigeben :-/

    Das wuerde aber eine Doktorarbeit werden mit entsprechendem Aufwand und deshalb lasse ich doch lieber die Finger davon :daumendreh2:

  • Ganz einfach zusammengefasst :
    Wenn man einen PI zum Internet hin frei gibt sollte man Wissen was man macht.
    Und auch bei noch so großem Aufwand ist man nie zu 100% Sicher.
    Ein Restrisiko bleibt immer.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Und auch bei noch so großem Aufwand ist man nie zu 100% Sicher.
    Ein Restrisiko bleibt immer.

    Dem stimme ich absolut zu. Selbst in Firmen die eine kompetente IT Abteilung haben kommt sowas vor. Sei es ein CVE die viele Komponenten betrifft wie log4j wo die Admins mit dem Patchen nicht nachkommen, sei es ein IT Mitarbeiter der bei einer Aenderung eine wichtige Sache aus Versehen vergisst oder auch einfach ein Mitarbeiter, der seine Raspi mit einem offenen AP ins Firmennetz haengt. Auch gibt es ja noch die leidigen zero day exploits.

    Allerdings ist es ein Unterschied ob man eine Anwendung omnipraesent im Netz anbietet oder einen kleinen Server @home dessen DDNS URL nur einem kleinen Kreis (Familienmitglieder) bekannt ist, betreibt. Da sich die IP jeden Tag aendert schlagen nur Leute auf die das Netz scannen. Nimmt man dann noch einen exotischen Port sind auch die Scriptkiddies draussen.

    Meine Raspi haengt ja schon am Netz. Dort laeuft auch ein Fail2ban und ungefaehr einmal pro Monat schlaegt Fail2ban an. Es ist also nicht so wie bei einer omnipraesenten Anwendung wo sowas taeglich passiert.

    Ausserdem habe ich iptable Rules in place die Zugriff von der Raspi auf das Homenetz unterbinden. Mit meiner DMZ Aktion will ich nur noch verhindern dass jemand, der es schafft root Rechte zu erlangen, die iptable Rules deaktiviert. Somit sollten aus 90% Sicherheit 99.9% Sicherheit werden :)

    Ich will hier keinen Server @home rechtfertigen denn wie Du schon schreibst:

    Wenn man einen PI zum Internet hin frei gibt sollte man Wissen was man macht.

    Leider ist ein Port sehr schnell im Router freigegeben und wie man Server aufsetzt ist in diversen Tutorials gut beschrieben :no_sad:

    Zumal dazu kommt dass man das System regelmaessig pflegen sollte und nicht nur einmal installieren und dann never touch a running System :-/

  • Allerdings ist es ein Unterschied ob man eine Anwendung omnipraesent im Netz anbietet oder einen kleinen Server @home dessen DDNS URL nur einem kleinen Kreis (Familienmitglieder) bekannt ist, betreibt. Da sich die IP jeden Tag aendert schlagen nur Leute auf die das Netz scannen. Nimmt man dann noch einen exotischen Port sind auch die Scriptkiddies draussen.


    Nein, die IP Ändert sich nicht mehr jeden Tag. Die bleibt Wochenlang.

    Meine Raspi haengt ja schon am Netz. Dort laeuft auch ein Fail2ban und ungefaehr einmal pro Monat schlaegt Fail2ban an. Es ist also nicht so wie bei einer omnipraesenten Anwendung wo sowas taeglich passiert.

    Ausserdem habe ich iptable Rules in place die Zugriff von der Raspi auf das Homenetz unterbinden. Mit meiner DMZ Aktion will ich nur noch verhindern dass jemand, der es schafft root Rechte zu erlangen, die iptable Rules deaktiviert. Somit sollten aus 90% Sicherheit 99.9% Sicherheit werden :)

    Ich habe so 2-3 pro Stunde

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Nein, die IP Ändert sich nicht mehr jeden Tag. Die bleibt Wochenlang.

    Bei mir wird jeden morgen gegen 5 Uhr eine neue IP vergeben.

    Ich habe so 2-3 pro Stunde

    Auf dem wohlbekannten Port 443 und/oder 80. Ich habe einen exotischeren Port offen.

    Aber das zeigt auch dass das Riskio je nach Umgebung/Anbieter unterschiedlich ausfaellt.

    BTW: Nice Tool um die Zugriffe zu visualisieren. Wie heisst das? Ich werde es wohl nicht einsetzen da es bei 1 Mal pro Monat overkill ist. Interessiert mich aber trotzdem :)

  • BTW: Nice Tool um die Zugriffe zu visualisieren. Wie heisst das? Ich werde es wohl nicht einsetzen da es bei 1 Mal pro Monat overkill ist. Interessiert mich aber trotzdem :)

    Fail2Ban schreibt das bei mir in eine Datenbank ( banned_db externer Link)
    Aus der DB baue ich mir eine Tabelle, zusammen mit GeoIP kommt dann auch das Land.

    Nett wenn du mehrere Server sperren möchtest.
    Also wer Unfug auf dem http-server macht wird auch gleich auf dem ssh-server und vpn-server gesperrt.
    Nett ist auch das ich so per Button einzelne Host wieder Unbannen kann. Sperre mich manchmal selber aus :D
    Geht schneller wie auf der CLI.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Mal ein Update :)

    Der Router ist seit laengerem erfolgreich "in production". Zuerst hat fail2ban haeufiger geblocked weil Port80/443 Requests reinkamen auf /. Die werden jetzt im Nginx sofort mit 403 rejected. Seitdem ist Ruhe im Karton.

    Ansonsten funktioniert alles bestens

  • Seitdem ist Ruhe im Karton.

    fail2ban lauscht bei mir auf die 403 und blockiert 403 Zugriffsversuche nach 3 maligem Versuch. Jede Woche wird da i.d.R. eine iP geblocked. Primaer aus Australien und China. Aber GB und US ist auch praesent.

    Weiss nicht ob meine Einrichtung einer quasi DMZ overkill war denn in den Zugriffslogs findet sich nichts Ungewoehnliches. Es liegt vielleicht auch daran dass fail2ban aktiv ist. Aber dadurch schlafe ich besser :shy:

    Interessant ist dass das initiale Zugriffspattern fast immer gleich ist. Klar: Die HP, die favicon.ico und robots.txt sind bei einer HP normalerweise immer existent. Nur ist der Clienttext ist unterschiedlich. Aber den kann man ja beliebig bei einem Request setzen. Haeufig findet sich auch ein go Client.

    Code
    152.32.168.68 - - [14/Aug/2023:21:10:12 +0200] "GET / HTTP/1.1" 403 34 "-" "-"
    152.32.168.68 - - [14/Aug/2023:21:10:31 +0200] "GET /favicon.ico HTTP/1.1" 403 63 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
    152.32.168.68 - - [14/Aug/2023:21:10:32 +0200] "GET /robots.txt HTTP/1.1" 403 63 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!