Mikrotik Firewall Rules so passend?
Hallo Leute
ich hab mich mal wieder an meinen kleinen Mikrotik heXs gesetzt und die Firewall für ipv4 und v6 angepasst. Nun bin ich mir nicht sicher ob das Regelwerk so passend ist sowie auch die Reihenfolge so passt. Geht erstmal nur um das normale Regelwerk. Vlan Regelwerk würde dann dazu kommen.
IPv4:
IPv6:
ich hab mich mal wieder an meinen kleinen Mikrotik heXs gesetzt und die Firewall für ipv4 und v6 angepasst. Nun bin ich mir nicht sicher ob das Regelwerk so passend ist sowie auch die Reihenfolge so passt. Geht erstmal nur um das normale Regelwerk. Vlan Regelwerk würde dann dazu kommen.
IPv4:
# 2023-07-27 13:29:30 by RouterOS 7.10.2
# software id = L19Pxssx
# model = RB760iGS
# serial number = HD90xxxx
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=\
established,related hw-offload=yes
add action=accept chain=input in-interface=!ether1 protocol=icmp
add action=accept chain=input comment="IPSEC zur Firewall erlauben" \
connection-state="" dst-port=500,1701,4500 protocol=udp
add action=accept chain=input connection-state="" protocol=ipsec-esp
add action=accept chain=input comment="Wireguard zur Firewall erlauben" \
dst-port=51820 in-interface=ether1 protocol=udp
add action=accept chain=input comment="VLAN10 | DNS erlauben" dst-port=53 \
in-interface=vlan10 protocol=udp
add action=accept chain=input dst-port=53 in-interface=vlan10 protocol=tcp
add action=accept chain=input comment="Zugriff zur Firewall" \
in-interface-list=LAN
add action=accept chain=input in-interface-list=VPN
add action=accept chain=input comment=\
"ALLG. | Aufgebaute Verbindungen erlauben - Estab.,related" \
connection-state=established,related
add action=accept chain=forward comment="LAN | Internetzugriff" \
in-interface-list=LAN out-interface=ether1
add action=accept chain=forward comment=\
"ALLG. | Aufgebaute Verbindungen erlauben - Estab.,related" \
connection-state=established,related
add action=accept chain=forward comment=\
"ALLG. | Aufgebaute Verbindungen erlauben"
add action=drop chain=forward comment="ALLG. | Alles adnere verwerfen"
add action=drop chain=input comment=\
"ALLG. | Alles ohne Verbindungsstatus blockieren+DDOS" connection-state=\
invalid
add action=drop chain=input connection-state=new protocol=tcp tcp-flags=!syn
add action=drop chain=input protocol=tcp psd=20,3s,10,2
add action=drop chain=input limit=2,2:packet protocol=tcp tcp-flags=rst
add action=drop chain=input connection-state=new protocol=tcp tcp-mss=\
!536-65535
add action=drop chain=input
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
add action=dst-nat chain=dstnat comment=Minecraft dst-port=25565 \
in-interface=ether1 protocol=tcp to-addresses=172.16.10.106 to-ports=\
25565
add action=dst-nat chain=dstnat comment="Forwarding rule" dst-port=11800 \
in-interface=ether1 protocol=tcp to-addresses=172.16.10.20 to-ports=3389
add action=dst-nat chain=dstnat comment=Bitwarden dst-port=8555 in-interface=\
ether1 protocol=tcp to-addresses=172.16.10.3 to-ports=8555
add action=dst-nat chain=dstnat comment=NPM dst-port=443 in-interface=ether1 \
protocol=tcp to-addresses=172.16.10.3 to-ports=443
add action=dst-nat chain=dstnat dst-port=80 in-interface=ether1 protocol=tcp \
to-addresses=172.16.10.3 to-ports=80
add action=dst-nat chain=dstnat comment=Nextcloud disabled=yes dst-port=8443 \
in-interface=ether1 protocol=tcp to-addresses=172.16.10.4 to-ports=443
add action=dst-nat chain=dstnat comment=WOL dst-address=172.16.10.0/24 \
dst-port=9 protocol=udp to-addresses=172.16.10.254
add action=dst-nat chain=dstnat dst-address=172.17.17.0/24 dst-port=9 \
protocol=udp to-addresses=172.17.17.254
/ip firewall raw
add action=drop chain=prerouting limit=!1,1:packet protocol=icmp
/ip firewall service-port
set ftp disabled=yes
set pptp disabled=yes
set rtsp disabled=no
IPv6:
# 2023-07-27 13:38:26 by RouterOS 7.10.2
# software id = L19Pxxxx
#
# model = RB760iGS
# serial number = HD9xxx
/ipv6 address
# address pool error: pool not found: DHCPv6-POOL-64 (4)
add from-pool=DHCPv6-POOL-64 interface=vlan10
# address pool error: pool not found: DHCPv6-POOL-64 (4)
add from-pool=DHCPv6-POOL-64 interface=vlan20
/ipv6 dhcp-client
add add-default-route=yes interface=ether1 pool-name=DHCPv6-POOL-64 request=\
prefix
/ipv6 firewall address-list
add address=fe80::/16 disabled=yes list=allowed
add address=ff02::/16 comment=multicast disabled=yes list=allowed
/ipv6 firewall filter
add action=accept chain=input comment="ALLG.-> FW -Ping von WAN blockieren" \
in-interface-list=!WAN protocol=icmpv6
add action=accept chain=forward comment="ALLG Aufgebaute Pings erlauben" \
protocol=icmpv6
add action=accept chain=input comment="ALLG.-> VLAN10 DNS" dst-port=53 \
in-interface=vlan10 protocol=udp
add action=accept chain=input dst-port=53 in-interface=vlan10 protocol=tcp
add action=accept chain=input comment=\
"ALLG. -> WAN Aufgebaute Verbindung Erlauben /established , related" \
connection-state=established,related
add action=accept chain=input comment=\
"WAN-> FW DHCPv6-Client prefix delegation." dst-port=546 in-interface=\
ether1 protocol=udp src-address=fe80::/16 src-port=547
add action=drop chain=input in-interface=ether1 log-prefix=dropLL_from_public \
src-address=fe80::/16
add action=drop chain=input comment="ALLG. Ung\FCltige Pakete verwerfen" \
connection-state=invalid
add action=drop chain=input comment=\
"WAN-> FW Alles verwerfen was eine Verbindung aufbauen m\F6chte" \
connection-state=new in-interface=ether1
add action=accept chain=forward comment=\
"ALLG. Aufgebaute Verbindungen erlauben" connection-state=\
established,related
add action=drop chain=forward comment=\
"ALLG. Ung\FCltige Pakete verwerfen invalid" connection-state=invalid \
log-prefix=ipv6,invalid
add action=accept chain=forward comment=\
"LAN + VLANs Neue Verbindungen Erlauben" connection-state=new \
in-interface=!ether1
add action=drop chain=forward comment="ALLG. Ung\FCltige Pakete Verwerfen" \
connection-state=invalid
add action=drop chain=forward comment="WAN->FW Neue Pakete Verwerfen" \
connection-state=new in-interface=ether1
/ipv6 firewall nat
add action=masquerade chain=srcnat
/ipv6 nd
set [ find default=yes ] disabled=yes
add dns=fe80::4cc3:cfff:fe2e:2414 interface=vlan10 other-configuration=yes
add dns=fe80::4cc3:cfff:fe2e:2414 interface=vlan20 other-configuration=yes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7969147008
Url: https://administrator.de/contentid/7969147008
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
13 Kommentare
Neuester Kommentar
Moin.
Des weiteren musst du im SRCNAT die Netze die im VPN laufen vom Masquerading ausnehmen damit diese innerhalb des Tunnels nicht geNATet werden.
Wenn vlan10 schon in der LAN Interface-Liste ist sind die zwei ersten Regeln für DNS Redundant denn du erlaubst mit der letzten eh jeglichen Traffic auf den Router.
Btw. Bei Firewall sollte der Grundsatz gelten: Never trust anyone else, just fully understand your rules and fix and test them yourself. Also Regeln niemals blind vertrauen schenken.
Gruß siddius
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=\
established,related hw-offload=yes
Vor die Fasttrack Regel gehören noch Regeln zur Ausnahme von IPSec Traffic denn IPSEC Traffic muss zwingend durch die Firewall und darf nicht durch Fasttrack laufen sonst wirst du suuuuper langsamen IPSec Traffic und verworfene Pakete sehen!!add action=fasttrack-connection chain=forward connection-state=\
established,related hw-offload=yes
add action=accept chain=forward comment="IPSEC IN - fasttrack bypass" ipsec-policy=in,ipsec
add action=accept chain=forward comment="IPSEC OUT - fasttrack bypass" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward connection-state=established,related hw-offload=yes
add action=accept chain=input comment="IPSEC zur Firewall erlauben" \
connection-state="" dst-port=500,1701,4500 protocol=udp
Das leere connection-state="" entfernenconnection-state="" dst-port=500,1701,4500 protocol=udp
add action=accept chain=input connection-state="" protocol=ipsec-esp
Das leere connection-state="" entfernenadd action=accept chain=input comment="VLAN10 | DNS erlauben" dst-port=53 \
in-interface=vlan10 protocol=udp
add action=accept chain=input dst-port=53 in-interface=vlan10 protocol=tcp
add action=accept chain=input comment="Zugriff zur Firewall" \
in-interface-list=LAN
in-interface=vlan10 protocol=udp
add action=accept chain=input dst-port=53 in-interface=vlan10 protocol=tcp
add action=accept chain=input comment="Zugriff zur Firewall" \
in-interface-list=LAN
Wenn vlan10 schon in der LAN Interface-Liste ist sind die zwei ersten Regeln für DNS Redundant denn du erlaubst mit der letzten eh jeglichen Traffic auf den Router.
add action=accept chain=forward comment=\
"ALLG. | Aufgebaute Verbindungen erlauben"
FATAL: Damit öffnest du deinen Router komplett jegliche Forwards werden erlaubt, auch vom WAN aus!!"ALLG. | Aufgebaute Verbindungen erlauben"
/ip firewall nat
add action=dst-nat chain=dstnat comment="Forwarding rule" dst-port=11800 \
in-interface=ether1 protocol=tcp to-addresses=172.16.10.20 to-ports=3389
RDP aus dem Internet forwarden?? Sau schlechte Idee...add action=dst-nat chain=dstnat comment="Forwarding rule" dst-port=11800 \
in-interface=ether1 protocol=tcp to-addresses=172.16.10.20 to-ports=3389
Btw. Bei Firewall sollte der Grundsatz gelten: Never trust anyone else, just fully understand your rules and fix and test them yourself. Also Regeln niemals blind vertrauen schenken.
Gruß siddius
Klar wenn du die DNS Regeln entfernst und das WG Interface nicht Mitglied der LAN Liste ist kommen die ja nich mehr rein . Also entweder granular die Port öffnen oder Scheuentor über die Interface-Liste, it's you choice .
Forwarding muss natürlich für das WG Interface erlaubt werden damit die überhaupt irgendwo hinkommen.
Just think before you act.
Forwarding muss natürlich für das WG Interface erlaubt werden damit die überhaupt irgendwo hinkommen.
Just think before you act.
Vor die Fasttrack Regel gehören noch Regeln zur Ausnahme von IPSec Traffic
Das gilt nur für L2TP Regeln oder wenn man das Regelwerk komplett manuell erstellt.Interessanterweise sind die IPsec Ausnahmeregeln im Default Regelwerk (Mikrotik mit Default Konfiguration) schon enthalten wenn man S-2-S VPNs mit IPsec erstellt. M.W. sind im Default Regelwerk die Default IPsec Regeln aber auch erst nach den Fasttrack Regeln. 🤔
Wenn man sichere Regeln will nimmt man immer die Default Konfig mit WAN an ether1 und passt dann einfach die Konfig nach seinen Wünschen an.
Macht er ja hier wie man sieht .
IPSec muss aber nicht nur bei L2TP ausgenommen werden das gilt generell für IPSec-Traffic weil dieser aus Prinzip nicht durch Fasttrack laufen darf. Wenn man sich dazu mal das RouterOS Flow-Schaubild anschaut wird auch klar warum das so sein muss.
https://help.mikrotik.com/docs/display/ROS/Building+Your+First+Firewall
https://help.mikrotik.com/docs/display/ROS/Building+Advanced+Firewall
IPSec muss aber nicht nur bei L2TP ausgenommen werden das gilt generell für IPSec-Traffic weil dieser aus Prinzip nicht durch Fasttrack laufen darf. Wenn man sich dazu mal das RouterOS Flow-Schaubild anschaut wird auch klar warum das so sein muss.
Interessanterweise sind die IPsec Ausnahmeregeln im Default Regelwerk (Mikrotik mit Default Konfiguration) schon enthalten wenn man S-2-S VPNs mit IPsec erstellt. M.W. sind im Default Regelwerk die Default IPsec Regeln aber auch erst nach den Fasttrack Regeln. 🤔
Es gibt wie immer mehrere Wege nach Rom.Wenn man sichere Regeln will nimmt man immer die Default Konfig mit WAN an ether1 und passt dann einfach die Konfig nach seinen Wünschen an.
Jepp, als Anfänger sicher eine erste Basis auf die man aufbauen kann, gibt's auch hier für den TO zum nachlesenhttps://help.mikrotik.com/docs/display/ROS/Building+Your+First+Firewall
https://help.mikrotik.com/docs/display/ROS/Building+Advanced+Firewall
Das gleiche gilt auch wenn man Mangle-Rules benutzt und Traffic mit Connection-Marks versieht. Die dürfen auch nicht durchs Fasttracking da sonst Firewall-Regeln die darauf aufbauen nicht mehr abgearbeitet werden wie bspw. das Setzen von Routing-Tags.
Bei Fasttrack ist also generell Vorsicht geboten und man muss wissen was man tut, sonst vermasselt es einem gerne mal einen Tag wenn man Ursache und Wirkung nicht kennt.
Bei Fasttrack ist also generell Vorsicht geboten und man muss wissen was man tut, sonst vermasselt es einem gerne mal einen Tag wenn man Ursache und Wirkung nicht kennt.
Das gilt aber vermutlich nicht für die Fastrack Counter Dummy Regel die ganz am Anfang der default Regel steht, oder?
Die Fasttrack-Counter ist eh nur ein reiner dynamisch generierter passhrough posten der wird immer zu beginn angelegt das ist OK.Die Regeln die du da in der Grafik markiert hast haben aber mit Fasttrack rein gar nichts zu tun, die sind eh in der INPUT-CHAIN. Fasttracking findet aber nur in der FORWARD-CHAIN statt denn Fasttrack ist ja gerade dazu da bestehende Verbindungen zu beschleunigen in dem man sie am Firewall-Processing vorbei fließen lässt.
M.W. sind im Default Regelwerk die Default IPsec Regeln aber auch erst nach den Fasttrack Regeln. 🤔
Nein, wie der Screenshot in Deinem vorletzten Post auch zeigt.man muss wissen was man tut, sonst vermasselt es einem gerne mal einen Tag...
Wem sagst Du das! Das gilt ja generell. Ich habe mir letztens nen Wolf gesucht, um ein merkwürdiges Scheitern von ICMP-Aufrufen zu klären und konnte die Regel, die da im Weg war partout nicht finden. Bis mir einfiel, mal bei Raw reinzuschauen Dann war plötzlich alles ganz klar Viele Grüße, commodity
wo liegt hier theoretisch der Fehler?
DNAT ist keine Forward-Regel, sondern schreibt nur die Adresse um.Lies den ersten Satz hier: https://de.wikipedia.org/wiki/Netzwerkadress%C3%BCbersetzung#Verwendung_ ...
Sehr anschaulich, wenn man mal 5 Minuten investiert:
https://help.mikrotik.com/docs/display/ROS/Packet+Flow+in+RouterOS#Packe ...
Es bleibt aber bei dem klugen Rat des Kollegen @7907292512:
RDP aus dem Internet forwarden?? Sau schlechte Idee...
Man braucht keine Firewall, wenn man solche Löcher bohrt.Viele Grüße, commodity
Zitat von @nmartin89:
Ich habe mich nochmal ran gesetzt und die Fehler geändert.
1. Frage was ist hiermit gemeint?
Ich habe mich nochmal ran gesetzt und die Fehler geändert.
1. Frage was ist hiermit gemeint?
Des weiteren musst du im SRCNAT die Netze die im VPN laufen vom Masquerading ausnehmen damit diese innerhalb des Tunnels nicht geNATet werden.
Nun, wenn du die internen Netze nicht vom SRCNAT ausnimmst welches du im SRCNAT am WAN machst dann wird die Quell-Adresse jedes Paketes auf die externe IP der Firewall umgeschrieben, welche dann die Gegenstelle nicht annimmt wegen der Phase2 Policies.
IPSec Traffic gelangt nämlich erst nach dem Postrouting in den IPSec Prozess. Und SRCNAT findet nunmal nur in der POSTROUTING Chain statt!
Schau dir einfach mal das Traffic Flow Chart von RouterOS an.
https://help.mikrotik.com/docs/display/ROS/Packet+Flow+in+RouterOS
Pflichtprogramm bei IPSec!!
Diese Regel muss dann auch zwingend vor die generelle SRCNAT Regel!
/ip firewall nat chain=srcnat dst-address=10.11.20.0/24 ipsec-policy=out place-before=0 action=accept
2. Frage wenn ich z.b. den RDP nach außen öffne geschied das doch über NAT also mit der Regel
Und nicht mit dem Normalen Regelwerk Input oder Forward?
Richtig,aber wie gesagt RDP ohne Tunnel, da kannst du auch gleich den Offenbarungseid erklären und brauchst keine Firewall, "Security by Obscurity" bringt dir hier auch nichts...add action=dst-nat chain=dstnat comment="Forwarding rule" dst-port=11800 \
in-interface=ether1 log=yes protocol=tcp to-addresses=172.16.10.20 \
to-ports=3389
Einfach Halber für mich zum testen mal gemacht es geht keine RDP Verbindung raus bzw rein .
/ip firewall filter add chain=forward connection-nat-state=dstnat in-interface=ether1 action=accept