From fdeba8da3e99256fe449e331d0b833a941315226 Mon Sep 17 00:00:00 2001 From: sarthurdev <965089+sarthurdev@users.noreply.github.com> Date: Wed, 28 Jul 2021 12:03:21 +0200 Subject: firewall: T2199: Migrate firewall to XML/Python --- interface-definitions/firewall.xml.in | 75 ++++++-------------- .../include/firewall/action.xml.i | 16 +++-- .../include/firewall/common-rule.xml.i | 54 +++++++++++---- .../firewall/source-destination-group-ipv6.xml.i | 33 +++++++++ .../firewall/source-destination-group.xml.i | 9 +++ .../interface/interface-firewall-vif-c.xml.i | 79 ++++++++++++++++++++++ .../include/interface/interface-firewall-vif.xml.i | 79 ++++++++++++++++++++++ .../include/interface/interface-firewall.xml.i | 79 ++++++++++++++++++++++ .../include/interface/vif-s.xml.i | 2 + interface-definitions/include/interface/vif.xml.i | 1 + interface-definitions/interfaces-bonding.xml.in | 1 + interface-definitions/interfaces-bridge.xml.in | 1 + interface-definitions/interfaces-dummy.xml.in | 1 + interface-definitions/interfaces-ethernet.xml.in | 1 + interface-definitions/interfaces-geneve.xml.in | 1 + interface-definitions/interfaces-l2tpv3.xml.in | 1 + interface-definitions/interfaces-macsec.xml.in | 1 + interface-definitions/interfaces-openvpn.xml.in | 1 + interface-definitions/interfaces-pppoe.xml.in | 1 + .../interfaces-pseudo-ethernet.xml.in | 1 + interface-definitions/interfaces-tunnel.xml.in | 1 + interface-definitions/interfaces-vti.xml.in | 1 + interface-definitions/interfaces-vxlan.xml.in | 1 + interface-definitions/interfaces-wireguard.xml.in | 1 + interface-definitions/interfaces-wireless.xml.in | 1 + interface-definitions/interfaces-wwan.xml.in | 1 + 26 files changed, 368 insertions(+), 75 deletions(-) create mode 100644 interface-definitions/include/firewall/source-destination-group-ipv6.xml.i create mode 100644 interface-definitions/include/interface/interface-firewall-vif-c.xml.i create mode 100644 interface-definitions/include/interface/interface-firewall-vif.xml.i create mode 100644 interface-definitions/include/interface/interface-firewall.xml.i (limited to 'interface-definitions') diff --git a/interface-definitions/firewall.xml.in b/interface-definitions/firewall.xml.in index f07c619a8..1bb7fb4a1 100644 --- a/interface-definitions/firewall.xml.in +++ b/interface-definitions/firewall.xml.in @@ -1,6 +1,6 @@ - + 199 Firewall @@ -24,6 +24,7 @@ ^(enable|disable)$ + enable @@ -43,6 +44,7 @@ ^(enable|disable)$ + disable @@ -62,6 +64,7 @@ ^(enable|disable)$ + disable @@ -203,6 +206,7 @@ ^(enable|disable)$ + disable @@ -225,7 +229,7 @@ #include - #include + #include #include @@ -235,7 +239,7 @@ #include - #include + #include #include @@ -292,7 +296,7 @@ ICMP type-name - any echo-reply pong destination-unreachable network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench redirect network-redirect host-redirect TOS-network-redirect TOS host-redirect echo-request ping router-advertisement router-solicitation time-exceeded ttl-exceeded ttl-zero-during-transit ttl-zero-during-reassembly parameter-problem ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply + any echo-reply pong destination-unreachable network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench redirect network-redirect host-redirect TOS-network-redirect TOS host-redirect echo-request ping router-advertisement router-solicitation time-exceeded ttl-exceeded ttl-zero-during-transit ttl-zero-during-reassembly parameter-problem ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply packet-too-big any @@ -454,63 +458,18 @@ address-mask-reply ICMP type/code name + + packet-too-big + ICMP type/code name + - ^(any|echo-reply|pong|destination-unreachable|network-unreachable|host-unreachable|protocol-unreachable|port-unreachable|fragmentation-needed|source-route-failed|network-unknown|host-unknown|network-prohibited|host-prohibited|TOS-network-unreachable|TOS-host-unreachable|communication-prohibited|host-precedence-violation|precedence-cutoff|source-quench|redirect|network-redirect|host-redirect|TOS-network-redirect|TOS host-redirect|echo-request|ping|router-advertisement|router-solicitation|time-exceeded|ttl-exceeded|ttl-zero-during-transit|ttl-zero-during-reassembly|parameter-problem|ip-header-bad|required-option-missing|timestamp-request|timestamp-reply|address-mask-request|address-mask-reply)$ + ^(any|echo-reply|pong|destination-unreachable|network-unreachable|host-unreachable|protocol-unreachable|port-unreachable|fragmentation-needed|source-route-failed|network-unknown|host-unknown|network-prohibited|host-prohibited|TOS-network-unreachable|TOS-host-unreachable|communication-prohibited|host-precedence-violation|precedence-cutoff|source-quench|redirect|network-redirect|host-redirect|TOS-network-redirect|TOS host-redirect|echo-request|ping|router-advertisement|router-solicitation|time-exceeded|ttl-exceeded|ttl-zero-during-transit|ttl-zero-during-reassembly|parameter-problem|ip-header-bad|required-option-missing|timestamp-request|timestamp-reply|address-mask-request|address-mask-reply|packet-too-big)$ - - - P2P application packets - - - - - AppleJuice/BitTorrent/Direct Connect/eDonkey/eMule/Gnutella/KaZaA application packets - - - - - - AppleJuice application packets - - - - - - BitTorrent application packets - - - - - - Direct Connect application packets - - - - - - eDonkey/eMule application packets - - - - - - Gnutella application packets - - - - - - KaZaA application packets - - - - - @@ -533,6 +492,7 @@ ^(enable|disable)$ + disable @@ -552,6 +512,7 @@ ^(enable|disable)$ + disable @@ -571,6 +532,7 @@ ^(enable|disable)$ + enable @@ -662,6 +624,7 @@ ^(enable|disable)$ + disable @@ -681,6 +644,7 @@ ^(enable|disable)$ + enable @@ -704,6 +668,7 @@ ^(strict|loose|disable)$ + disable @@ -757,6 +722,7 @@ ^(enable|disable)$ + enable @@ -776,6 +742,7 @@ ^(enable|disable)$ + disable diff --git a/interface-definitions/include/firewall/action.xml.i b/interface-definitions/include/firewall/action.xml.i index 230f590cb..4ba93e3aa 100644 --- a/interface-definitions/include/firewall/action.xml.i +++ b/interface-definitions/include/firewall/action.xml.i @@ -3,18 +3,22 @@ Rule action [REQUIRED] - permit deny + accept reject drop - permit - Permit matching entries + accept + Accept matching entries - deny - Deny matching entries + reject + Reject matching entries + + + drop + Drop matching entries - ^(permit|deny)$ + ^(accept|reject|drop)$ diff --git a/interface-definitions/include/firewall/common-rule.xml.i b/interface-definitions/include/firewall/common-rule.xml.i index a59c0b390..415b6bf00 100644 --- a/interface-definitions/include/firewall/common-rule.xml.i +++ b/interface-definitions/include/firewall/common-rule.xml.i @@ -55,7 +55,7 @@ Maximum number of packets to allow in excess of rate u32:0-4294967295 - burst__change_me + Maximum number of packets to allow in excess of rate @@ -67,7 +67,7 @@ Maximum average matching rate u32:0-4294967295 - rate__change_me + Maximum average matching rate @@ -121,7 +121,6 @@ - all @@ -285,40 +284,65 @@ Time to match rule - - - Monthdays to match rule on - - Date to start matching rule + + txt + Enter date using following notation - YYYY-MM-DD + + + ^(\d{4}\-\d{2}\-\d{2})$ + Time of day to start matching rule + + txt + Enter time using using 24 hour notation - hh:mm:ss + + + ^([0-2][0-9](\:[0-5][0-9]){1,2})$ + Date to stop matching rule + + txt + Enter date using following notation - YYYY-MM-DD + + + ^(\d{4}\-\d{2}\-\d{2})$ + Time of day to stop matching rule - - - - - Interpret times for startdate, stopdate, starttime and stoptime to be UTC - + + txt + Enter time using using 24 hour notation - hh:mm:ss + + + ^([0-2][0-9](\:[0-5][0-9]){1,2})$ + - Weekdays to match rule on + Comma separated weekdays to match rule on + + txt + Name of day (Monday, Tuesday, Wednesday, Thursdays, Friday, Saturday, Sunday) + + + u32:0-6 + Day number (0 = Sunday ... 6 = Saturday) + diff --git a/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i new file mode 100644 index 000000000..7815b78d4 --- /dev/null +++ b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i @@ -0,0 +1,33 @@ + + + + Group + + + + + Group of addresses + + firewall group ipv6-address-group + + + + + + Group of networks + + firewall group ipv6-network-group + + + + + + Group of ports + + firewall group port-group + + + + + + diff --git a/interface-definitions/include/firewall/source-destination-group.xml.i b/interface-definitions/include/firewall/source-destination-group.xml.i index 30226b0d8..9a9bed0fe 100644 --- a/interface-definitions/include/firewall/source-destination-group.xml.i +++ b/interface-definitions/include/firewall/source-destination-group.xml.i @@ -7,16 +7,25 @@ Group of addresses + + firewall group address-group + Group of networks + + firewall group network-group + Group of ports + + firewall group port-group + diff --git a/interface-definitions/include/interface/interface-firewall-vif-c.xml.i b/interface-definitions/include/interface/interface-firewall-vif-c.xml.i new file mode 100644 index 000000000..1bc235fcb --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall-vif-c.xml.i @@ -0,0 +1,79 @@ + + + + 615 + Firewall options + + + + + forwarded packets on inbound interface + + + + + Inbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Inbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + forwarded packets on outbound interface + + + + + Outbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Outbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + packets destined for this router + + + + + Local IPv4 firewall ruleset name for interface + + firewall name + + + + + + Local IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + diff --git a/interface-definitions/include/interface/interface-firewall-vif.xml.i b/interface-definitions/include/interface/interface-firewall-vif.xml.i new file mode 100644 index 000000000..a37ac5c4a --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall-vif.xml.i @@ -0,0 +1,79 @@ + + + + 615 + Firewall options + + + + + forwarded packets on inbound interface + + + + + Inbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Inbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + forwarded packets on outbound interface + + + + + Outbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Outbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + packets destined for this router + + + + + Local IPv4 firewall ruleset name for interface + + firewall name + + + + + + Local IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + diff --git a/interface-definitions/include/interface/interface-firewall.xml.i b/interface-definitions/include/interface/interface-firewall.xml.i new file mode 100644 index 000000000..b3f20c3bf --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall.xml.i @@ -0,0 +1,79 @@ + + + + 615 + Firewall options + + + + + forwarded packets on inbound interface + + + + + Inbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Inbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + forwarded packets on outbound interface + + + + + Outbound IPv4 firewall ruleset name for interface + + firewall name + + + + + + Outbound IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + packets destined for this router + + + + + Local IPv4 firewall ruleset name for interface + + firewall name + + + + + + Local IPv6 firewall ruleset name for interface + + firewall ipv6-name + + + + + + + + diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i index e7ba6d193..caa5248ab 100644 --- a/interface-definitions/include/interface/vif-s.xml.i +++ b/interface-definitions/include/interface/vif-s.xml.i @@ -18,6 +18,7 @@ #include #include #include + #include Protocol used for service VLAN (default: 802.1ad) @@ -63,6 +64,7 @@ #include #include #include + #include #include diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i index 5644c554f..a2382cc1b 100644 --- a/interface-definitions/include/interface/vif.xml.i +++ b/interface-definitions/include/interface/vif.xml.i @@ -19,6 +19,7 @@ #include #include #include + #include VLAN egress QoS diff --git a/interface-definitions/interfaces-bonding.xml.in b/interface-definitions/interfaces-bonding.xml.in index 17879cf1e..03cbb523d 100644 --- a/interface-definitions/interfaces-bonding.xml.in +++ b/interface-definitions/interfaces-bonding.xml.in @@ -56,6 +56,7 @@ #include #include #include + #include Bonding transmit hash policy diff --git a/interface-definitions/interfaces-bridge.xml.in b/interface-definitions/interfaces-bridge.xml.in index 144f43f32..ebf6c3631 100644 --- a/interface-definitions/interfaces-bridge.xml.in +++ b/interface-definitions/interfaces-bridge.xml.in @@ -41,6 +41,7 @@ #include #include #include + #include Forwarding delay diff --git a/interface-definitions/interfaces-dummy.xml.in b/interface-definitions/interfaces-dummy.xml.in index 2bc88c1a7..c6061b8bb 100644 --- a/interface-definitions/interfaces-dummy.xml.in +++ b/interface-definitions/interfaces-dummy.xml.in @@ -19,6 +19,7 @@ #include #include #include + #include IPv4 routing parameters diff --git a/interface-definitions/interfaces-ethernet.xml.in b/interface-definitions/interfaces-ethernet.xml.in index ceeda12a0..3868ebbbc 100644 --- a/interface-definitions/interfaces-ethernet.xml.in +++ b/interface-definitions/interfaces-ethernet.xml.in @@ -31,6 +31,7 @@ #include #include + #include Duplex mode diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in index 2ca7dd9f6..06ad7c82b 100644 --- a/interface-definitions/interfaces-geneve.xml.in +++ b/interface-definitions/interfaces-geneve.xml.in @@ -23,6 +23,7 @@ #include #include #include + #include GENEVE tunnel parameters diff --git a/interface-definitions/interfaces-l2tpv3.xml.in b/interface-definitions/interfaces-l2tpv3.xml.in index 9364c85cd..c5bca4408 100644 --- a/interface-definitions/interfaces-l2tpv3.xml.in +++ b/interface-definitions/interfaces-l2tpv3.xml.in @@ -32,6 +32,7 @@ 5000 #include + #include Encapsulation type (default: UDP) diff --git a/interface-definitions/interfaces-macsec.xml.in b/interface-definitions/interfaces-macsec.xml.in index 4a566ef8b..5713d985b 100644 --- a/interface-definitions/interfaces-macsec.xml.in +++ b/interface-definitions/interfaces-macsec.xml.in @@ -19,6 +19,7 @@ #include #include #include + #include Security/Encryption Settings diff --git a/interface-definitions/interfaces-openvpn.xml.in b/interface-definitions/interfaces-openvpn.xml.in index 6b4440688..1fe8e63f8 100644 --- a/interface-definitions/interfaces-openvpn.xml.in +++ b/interface-definitions/interfaces-openvpn.xml.in @@ -34,6 +34,7 @@ #include + #include OpenVPN interface device-type (default: tun) diff --git a/interface-definitions/interfaces-pppoe.xml.in b/interface-definitions/interfaces-pppoe.xml.in index 57bb01258..d9c30031e 100644 --- a/interface-definitions/interfaces-pppoe.xml.in +++ b/interface-definitions/interfaces-pppoe.xml.in @@ -19,6 +19,7 @@ #include #include #include + #include Default route insertion behaviour (default: auto) diff --git a/interface-definitions/interfaces-pseudo-ethernet.xml.in b/interface-definitions/interfaces-pseudo-ethernet.xml.in index 366892032..974ba1a50 100644 --- a/interface-definitions/interfaces-pseudo-ethernet.xml.in +++ b/interface-definitions/interfaces-pseudo-ethernet.xml.in @@ -27,6 +27,7 @@ #include #include #include + #include Receive mode (default: private) diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in index cca732f82..b95f07a4b 100644 --- a/interface-definitions/interfaces-tunnel.xml.in +++ b/interface-definitions/interfaces-tunnel.xml.in @@ -30,6 +30,7 @@ #include #include #include + #include 6rd network prefix diff --git a/interface-definitions/interfaces-vti.xml.in b/interface-definitions/interfaces-vti.xml.in index b12434ae7..a8a330f32 100644 --- a/interface-definitions/interfaces-vti.xml.in +++ b/interface-definitions/interfaces-vti.xml.in @@ -35,6 +35,7 @@ #include #include #include + #include diff --git a/interface-definitions/interfaces-vxlan.xml.in b/interface-definitions/interfaces-vxlan.xml.in index 0a8a88596..c5bb0c8f2 100644 --- a/interface-definitions/interfaces-vxlan.xml.in +++ b/interface-definitions/interfaces-vxlan.xml.in @@ -41,6 +41,7 @@ #include #include #include + #include 1450 diff --git a/interface-definitions/interfaces-wireguard.xml.in b/interface-definitions/interfaces-wireguard.xml.in index 403282e5c..c96b3d46b 100644 --- a/interface-definitions/interfaces-wireguard.xml.in +++ b/interface-definitions/interfaces-wireguard.xml.in @@ -22,6 +22,7 @@ #include #include #include + #include 1420 diff --git a/interface-definitions/interfaces-wireless.xml.in b/interface-definitions/interfaces-wireless.xml.in index 048c7b475..da739840b 100644 --- a/interface-definitions/interfaces-wireless.xml.in +++ b/interface-definitions/interfaces-wireless.xml.in @@ -17,6 +17,7 @@ #include + #include HT and VHT capabilities for your card diff --git a/interface-definitions/interfaces-wwan.xml.in b/interface-definitions/interfaces-wwan.xml.in index 6b6fa1a66..926c48194 100644 --- a/interface-definitions/interfaces-wwan.xml.in +++ b/interface-definitions/interfaces-wwan.xml.in @@ -39,6 +39,7 @@ #include #include #include + #include -- cgit v1.2.3