Zum Hauptinhalt springen

Firewalleinstellungen

Dieser Abschnitt enthält Informationen zur Firewallkonfiguration.

Standard-Firewall festlegen

Der Standardabschnitt deklariert die globalen Firewall-Einstellungen, die nicht zu bestimmten Zonen gehören.

Tabelle 1. Standard-Firewall festlegen
Syntax
  • sudo uci set firewall.@defaults[0].input=<input>
  • sudo uci set firewall.@defaults[0].output=<output>
  • sudo uci set firewall.@defaults[0].forward=<forward>
  • sudo uci set firewall.@defaults[0].syn_flood=<syn_flood>
  • sudo uci set firewall.@defaults[0].drop_invalid=<drop_invalid>
Tabelle 2. Parameter
NameTypErforderlichStandardBeschreibung

input

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die INPUT-Kette der Filtertabelle fest.

output

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die OUTPUT-Kette der Filtertabelle fest.

forward

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die FORWARD-Kette der Filtertabelle fest.

syn_flood

Boolescher Wert

Nein

0

Aktiviert den SYN-Flutschutz (veraltet aufgrund der „synflood_protect“-Einstellung).

drop_invalid

Boolescher Wert

Nein

0

Löscht ungültige Pakete (die z. B. mit keiner aktiven Verbindung übereinstimmen).

Befehlsbeispiel:

Tabelle 3. Befehlsbeispiel
  • sudo uci set firewall.@defaults[0].input=ACCEPT
  • sudo uci set firewall.@defaults[0].output= ACCEPT
  • sudo uci set firewall.@defaults[0].forward= ACCEPT
  • sudo uci set firewall.@defaults[0].syn_flood=1
  • sudo uci set firewall.@defaults[0].drop_invalid=1
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Neue Zone hinzufügen

In diesem Abschnitt werden allgemeine Eigenschaften von test definiert. Die Optionen „input“ und „output“ legen die Standardrichtlinien für den Datenverkehr fest, der in die Zone eingeht und diese verlässt. Die Option „forward“ beschreibt die Richtlinie für den weitergeleiteten Datenverkehr zwischen verschiedenen Netzwerken innerhalb der Zone. Betroffene Netzwerke geben an, welche verfügbaren Netzwerke zu dieser Zone gehören.

Tabelle 4. Neue Zone hinzufügen
Syntax
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=<name>
  • sudo uci set firewall.@zone[-1].input=<input>
  • sudo uci set firewall.@zone[-1].output=<output>
  • sudo uci set firewall.@zone[-1].forward=<forward>
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • udo uci commit firewall
Tabelle 5. Parameter

Parameter

Typ

Erforderlich

Standard

Beschreibung

Name

Zonenname

Ja

Keine

Eindeutiger Zonenname. Der Firewall-Zonenname darf maximal 11 Zeichen lang sein.

input

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die INPUT-Kette der Filtertabelle fest.

output

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die OUTPUT-Kette der Filtertabelle fest.

forward

Zeichenfolge

Nein

REJECT

Legt die Richtlinie für die FORWARD-Kette der Filtertabelle fest.

masq

Boolescher Wert

Nein

0

Gibt an, ob der ausgehende Zonendatenverkehr getarnt werden soll; ist in der WAN-Zone in der Regel aktiviert.

mtu_fix

Boolescher Wert

Nein

0

Aktiviert MSS-Clamping für den ausgehenden Zonendatenverkehr.

Netz

list

Nein

Keine

Liste der mit dieser Zone verbundenen Schnittstellen. Wenn die Option ausgelassen und keine zusätzlichen* Optionen, Subnetze oder Einheiten angegeben werden, wird standardmäßig der Wert des Namens verwendet. Aliasschnittstellen, die in der Netzwerkkonfiguration definiert werden, können nicht als gültige „eigenständige“ Netzwerke verwendet werden. Verwenden Sie die Listensyntax wie in der UCI beschrieben.

family

Zeichenfolge

Nein

0

Protokollfamilie (IPv4, IPv6 oder beliebig), für die iptables-Regeln generiert werden.

masq_src

Liste der Subnetze

Nein

0.0.0.0/0

Begrenzt die Tarnung auf die angegebenen Quellsubnetze. Negation ist möglich, indem das Subnetz mit dem Präfix „!“ versehen wird; es sind mehrere Subnetze zulässig.

masq_dest

Liste der Subnetze

Nein

0.0.0.0/0

Begrenzt die Tarnung auf die angegebenen Zielsubnetze. Negation ist möglich, indem das Subnetz mit dem Präfix „!“ versehen wird; es sind mehrere Subnetze zulässig.

conntrack

Boolescher Wert

Nein

„1“ bei Verwendung der Tarnung, andernfalls „0“.

Erzwingt die Verbindungsverfolgung für diese Zone (siehe Hinweis zur Verbindungsverfolgung).

Protokoll

Boolescher Wert

Nein

0

Erstellt Protokollregeln für abgelehnten und gelöschten Datenverkehr in dieser Zone.

log_limit

Zeichenfolge

Nein

10/Minute

Begrenzt die Anzahl der Protokollnachrichten pro Intervall.

Befehlsbeispiel:

Tabelle 6. Befehlsbeispiel
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=test
  • sudo uci set firewall.@zone[-1].input=ACCEPT
  • sudo uci set firewall.@zone[-1].output= ACCEPT
  • sudo uci set firewall.@zone[-1].forward= ACCEPT
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Neue Weiterleitung hinzufügen

Die Weiterleitungsabschnitte steuern den Datenverkehr zwischen den Zonen und ermöglichen MSS-Clamping für bestimmte Richtungen. Nur eine Richtung wird durch eine Weiterleitungsregel abgedeckt. Um bidirektionalen Datenverkehr zwischen zwei Zonen zu ermöglichen, sind zwei Weiterleitungen erforderlich, wobei „src“ und „dest“ jeweils umgekehrt werden.

Tabelle 7. Neue Weiterleitung hinzufügen
Syntax
  • sudo uci set firewall.@zone[-1].src=<src>
  • sudo uci set firewall.@zone[-1].dest=<dest>
  • sudo uci commit firewall
Tabelle 8. Parameter
ParameterTypErforderlichStandardBeschreibung

src

Zonenname

Ja

Keine

Gibt die Quellzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen.

dest

Zonenname

Ja

Keine

Gibt die Zielzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen.

Befehlsbeispiel:

Tabelle 9. Befehlsbeispiel
  • sudo uci set firewall.@zone[-1].src=test
  • sudo uci set firewall.@zone[-1].dest=lan
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Neue Portweiterleitung hinzufügen

Portweiterleitungen (DNAT) werden durch Umleitungsabschnitte definiert. Der gesamte eingehende Datenverkehr in der angegebenen Quellzone, der mit den angegebenen Regeln übereinstimmt, wird an den angegebenen internen Host weitergeleitet. Umleitungen werden gemeinhin auch als „Portweiterleitung“ und „virtuelle Server“ bezeichnet. Portbereiche werden als „start:stop“ angegeben, z. B. 6666:6670. Dies ähnelt der iptables-Syntax.

Tabelle 10. Neue Portweiterleitung hinzufügen
Syntax
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=<enabled>
  • sudo uci set firewall.@redirect[-1].name=<name>
  • sudo uci set firewall.@redirect[-1].proto=<proto>
  • sudo uci set firewall.@redirect[-1].src=<src>
  • sudo uci set firewall.@redirect[-1].src_mac=<src_mac>
  • sudo uci set firewall.@redirect[-1].src_ip=<src_ip>
  • sudo uci set firewall.@redirect[-1].src_port=<src_port>
  • sudo uci set firewall.@redirect[-1].src_dip=<src_dip>
  • sudo uci set firewall.@redirect[-1].src_dport=<src_dport>
  • sudo uci set firewall.@redirect[-1].dest=<dest>
  • sudo uci set firewall.@redirect[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@redirect[-1].dest_port=<dest_port>
  • sudo uci set firewall.@redirect[-1].reflection=<reflection>
  • sudo uci commit firewall
Tabelle 11. Parameter
ParameterTypErforderlichStandardBeschreibung

enabled

Zeichenfolge

Nein

1 oder ja

Aktiviert die Umleitungsregel oder nicht.

Name

Zeichenfolge

Nein

Keine

Eindeutiger Umleitungsname.

proto

Protokollname oder -nummer

Ja

tcp udp

Gleicht den eingehenden Datenverkehr mit dem angegebenen Protokoll ab.

src

Zonenname

Nein

Ja für DNAT-Ziel

Gibt die Quellzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen. Für typische Portweiterleitungen ist dies normalerweise WAN.

src_mac

MAC-Adresse

Nein

Keine

Gleicht den eingehenden Datenverkehr von der angegebenen MAC-Adresse ab.

src_ip

IP-Adresse

Nein

Keine

Gleicht den eingehenden Datenverkehr von der angegebenen Quell-IP-Adresse ab.

src_port

Port oder Bereich

Nein

Keine

Gleicht den eingehenden Datenverkehr aus dem angegebenen Quell-Port oder -Portbereich (z. B. „5000–5100“) auf dem Clienthost ab.

src_dip

IP-Adresse

Ja für SNAT-Ziel

Keine

Gleicht bei DNAT den eingehenden Datenverkehr ab, der an die angegebene Ziel-IP-Adresse gerichtet ist. Bei SNAT wird die Quelladresse in die angegebene Adresse umgeschrieben.

src_dport

Port oder Bereich

Nein

Keine

Gleicht bei DNAT den eingehenden Datenverkehr ab, der an den angegebenen Ziel-Port oder -Portbereich (z. B. „5000–5100“) auf diesem Host gerichtet ist. Bei SNAT werden die Quell-Ports in den angegebenen Wert umgeschrieben.

dest

Zonenname

Ja für SNAT-Ziel

Keine

Gibt die Zielzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen. Bei DNAT-Ziel bei Verhaltensanpassung; NAT-Reflexion funktioniert nur, wenn dies gleich LAN ist.

dest_ip

IP-Adresse

Ja für DNAT-Ziel

Keine

Leitet bei DNAT den übereinstimmenden eingehenden Datenverkehr an den angegebenen internen Host um. Gleicht bei SNAT den Datenverkehr ab, der an die angegebene Adresse gerichtet ist. Wenn bei DNAT der dest_ip-Wert mit den lokalen IP-Adressen des Routers übereinstimmt (siehe „ifconfig“), wird die Regel in eine DNAT + Input-„accept“-Regel übersetzt. Andernfalls handelt es sich um eine DNAT + Weiterleitungsregel.

dest_port

Port oder Bereich

Nein

Keine

Leitet bei DNAT den übereinstimmenden eingehenden Datenverkehr an den angegebenen Port auf dem internen Host um. Gleicht bei SNAT den Datenverkehr an, der an die angegebene Ports gerichtet ist. Es kann nur ein Port oder Bereich angegeben werden (z. B. „5000–5100“), nicht unterschiedliche Ports wie bei Regeln (unten).

reflection

Boolescher Wert

Nein

1

Aktiviert die NAT-Reflexion für diese Umleitung – anwendbar auf DNAT-Ziele.

Befehlsbeispiel:

Tabelle 12. Leitet HTTP- (nicht HTTPS-)Datenverkehr an den Webserver weiter, der auf 192.168.1.10 ausgeführt wird:
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].proto=tcp
  • sudo uci set firewall.@redirect[-1].src=wan
  • sudo uci set firewall.@redirect[-1].src_dport=80
  • sudo uci set firewall.@redirect[-1].dest=lan
  • sudo uci set firewall.@redirect[-1].dest_ip=192.168.1.10
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Neue Datenverkehrsregel hinzufügen

Portweiterleitungen (DNAT) werden durch Umleitungsabschnitte definiert. Der gesamte eingehende Datenverkehr in der angegebenen Quellzone, der mit den angegebenen Regeln übereinstimmt, wird an den angegebenen internen Host weitergeleitet. Umleitungen werden gemeinhin auch als Portweiterleitung und virtuelle Server bezeichnet. Portbereiche werden als „start:stop“ angegeben, z. B. 6666:6670. Dies ähnelt der iptables-Syntax.

Tabelle 13. Neue Datenverkehrsregel hinzufügen
Syntax
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=<enabled>
  • sudo uci set firewall.@rule[-1].name=<name>
  • sudo uci set firewall.@rule[-1].family=<family>
  • sudo uci set firewall.@rule[-1].proto=<proto>
  • sudo uci set firewall.@rule[-1].src=<src>
  • sudo uci set firewall.@rule[-1].src_mac=<src_mac>
  • sudo uci set firewall.@rule[-1].src_ip=<src_ip>
  • sudo uci set firewall.@rule[-1].src_port=<src_port>
  • sudo uci set firewall.@rule[-1].dest=<dest>
  • sudo uci set firewall.@rule[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@rule[-1].dest_port=<dest_port>
  • sudo uci set firewall.@rule[-1].target=<target>
  • sudo uci set firewall.@rule[-1].weekdays=<weekdays>
  • sudo uci set firewall.@rule[-1].monthdays=<monthdays>
  • sudo uci set firewall.@rule[-1].start_time=<start_time>
  • sudo uci set firewall.@rule[-1].stop_time=<stop_time>
  • sudo uci set firewall.@rule[-1].start_date=<start_date>
  • sudo uci set firewall.@rule[-1].stop_date=<stop_date>
  • sudo uci set firewall.@rule[-1].utc_time=<utc_time>
  • uci commit firewall
Tabelle 14. Parameter
ParameterTypErforderlichStandardBeschreibung

enabled

Boolescher Wert

Nein

Ja

Aktiviert oder deaktiviert die Regel.

Name

Zeichenfolge

Nein

Keine

Eindeutiger Regelname.

family

Zeichenfolge

Nein

Beliebig

Protokollfamilie (IPv4, IPv6 oder beliebig), für die iptables-Regeln generiert werden.

proto

Protokollname oder -nummer

Nein

tcp udp

Gleicht den eingehenden Datenverkehr mit dem angegebenen Protokoll ab. Kann entweder tcp, udp, tcpudp, udplite, icmp, esp, ah, sctp oder alle sein oder ein numerischer Wert, der eines dieser Protokolle oder ein anderes darstellt. Ein Protokollname von /etc/protocols ist ebenfalls zulässig. Die Zahl 0 entspricht „alle“.

src

Zonenname

Ja (optional seit Firewall v2, Version 58 und höher)

Keine

Gibt die Quellzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen.

src_mac

MAC-Adresse

Nein

Keine

Gleicht den eingehenden Datenverkehr von der angegebenen MAC-Adresse ab.

src_ip

IP-Adresse

Nein

Keine

Gleicht den eingehenden Datenverkehr von der angegebenen Quell-IP-Adresse ab.

src_port

Port oder Bereich

Nein

Keine

Gleicht den eingehenden Datenverkehr vom angegebenen Quell-Port oder -Portbereich (z. B. „5000:5100“, Portbereich gilt nicht für alle Protokolle) ab, falls ein relevantes Protokoll angegeben ist. Es können mehrere Ports wie „80 443 465“ 1 angegeben werden.

dest

Zonenname

Nein

Keine

Gibt die Zielzone für den Datenverkehr an. Muss sich auf einen der definierten Zonennamen beziehen oder * für eine beliebige Zone. Sofern angegeben, gilt die Regel für weitergeleiteten Datenverkehr. Andernfalls wird sie als Eingaberegel behandelt.

dest_ip

IP-Adresse

Nein

Keine

Gleicht den eingehenden Datenverkehr ab, der an die angegebene Ziel-IP-Adresse gerichtet ist. Ohne Zielzone wird dies als Eingaberegel behandelt!

dest_port

Port oder Bereich

Nein

Keine

Gleicht den eingehenden Datenverkehr am angegebenen Ziel-Port oder -Portbereich (z. B. „5000:5100“, Portbereich gilt nicht für alle Protokolle) ab, falls ein relevantes Protokoll angegeben ist. Es können mehrere Ports wie „80 443 465“ 1 angegeben werden.

target

Zeichenfolge

Ja

DROP

Aktiviert die NAT-Reflexion für diese Umleitung – anwendbar auf DNAT-Ziele.

weekdays

Liste der Wochentage

Nein

(immer)

Sofern angegeben, wird nur der Datenverkehr während der angegebenen Wochentage abgeglichen, z. B. So Mo Do Fr für nur sonntags, montags, donnerstags und freitags. Sie können die Liste invertieren, indem Sie ihr ein Ausrufezeichen voranstellen, z. B. „! sat sun“, damit die Werte immer übereinstimmen, außer samstags und sonntags.

monthdays

Liste mit Datumswerten

Nein

(immer)

Sofern angegeben, wird der Datenverkehr nur während der angegebenen Tage des Monats abgeglichen, z. B. 2 5 30, damit die Werte nur an jedem 2., 5. und 30. Tag des Monats übereinstimmen. Sie können die Liste invertieren, indem Sie ihr ein Ausrufezeichen voranstellen, z. B. „! 31“, damit die Werte immer übereinstimmen, außer am 31. des Monats.

start_time

Zeit (hh:mm:ss)

Nein

(immer)

Sofern angegeben, wird nur der Datenverkehr nach der angegebenen Tageszeit abgeglichen (jeweils einschließlich).

stop_time

Zeit (hh:mm:ss)

Nein

(immer)

Sofern angegeben, wird nur der Datenverkehr vor der angegebenen Tageszeit abgeglichen (jeweils einschließlich).

start_date

Datum (yyyy-mm-dd)

Nein

(immer)

Sofern angegeben, wird nur der Datenverkehr nach dem angegebenen Datum abgeglichen (jeweils einschließlich).

stop_date

Datum (yyyy-mm-dd)

Nein

(immer)

Sofern angegeben, wird nur der Datenverkehr vor dem angegebenen Datum abgeglichen (jeweils einschließlich).

utc_time

Boolescher Wert

Nein

0

Behandelt alle angegebenen Zeitwerte als UTC-Zeit anstelle der Ortszeit.

Befehlsbeispiel:

Tabelle 15. Blockiert alle Verbindungsversuche mit der angegebenen Hostadresse.
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=1
  • sudo uci set firewall.@rule[-1].src=lan
  • sudo uci set firewall.@rule[-1].dest=wan
  • sudo uci set firewall.@rule[-1].dest_ip=123.45.67.89
  • sudo uci set firewall.@rule[-1].target=REJECT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Neue Quell-NAT hinzufügen

Die Quell-NAT ändert ein ausgehendes Paket so, dass es so aussieht, als ob das integrierte Switch-System die Quelle des Pakets ist.

Befehlsbeispiel:
Tabelle 16. Definition der Quell-NAT für UDP- und TCP-Datenverkehr

Definieren Sie die Quell-NAT für UDP- und TCP-Datenverkehr, der an Port 123 vom Host mit der IP-Adresse 10.55.34.85 geleitet wird.

Die Quelladresse wird in 63.240.161.99 umgeschrieben:

  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].src=lan
  • sudo uci set firewall.@redirect[-1].src_ip=10.55.34.85
  • sudo uci set firewall.@redirect[-1].src_dip=63.240.161.99
  • sudo uci set firewall.@redirect[-1].dest=wan
  • sudo uci set firewall.@redirect[-1].dest_port=123
  • sudo uci set firewall.@redirect[-1].target=SNAT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart