From fe416b56cfa30494172a0310c16fd2787330c7bb Mon Sep 17 00:00:00 2001 From: Nicolas Fort Date: Fri, 14 Jun 2024 11:14:53 -0300 Subject: [PATCH] Configuration Blueprints: add new example for firewall+vrf. Also, add note about usage of inbound and outbound interface when interface is attached to a non-default vrf. --- .../images/firewall-and-vrf-blueprints.png | Bin 0 -> 84270 bytes docs/configexamples/firewall.rst | 12 ++ docs/configexamples/fwall-and-vrf.rst | 121 ++++++++++++++++++ docs/configexamples/index.rst | 2 +- docs/configexamples/zone-policy.rst | 13 +- docs/configuration/firewall/ipv4.rst | 8 ++ docs/configuration/firewall/ipv6.rst | 8 ++ 7 files changed, 151 insertions(+), 13 deletions(-) create mode 100644 docs/_static/images/firewall-and-vrf-blueprints.png create mode 100644 docs/configexamples/firewall.rst create mode 100644 docs/configexamples/fwall-and-vrf.rst diff --git a/docs/_static/images/firewall-and-vrf-blueprints.png b/docs/_static/images/firewall-and-vrf-blueprints.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3bf9f20a27aa5aeb70b601bb14ee934f3b7e53 GIT binary patch literal 84270 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 |Yv;qDhidULWbP2Rvj)(9w?&p$zv%1>z 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 aZv6y!49Mry15}}aM_NKbyjs*C;Qs;@nBD{c literal 0 HcmV?d00001 diff --git a/docs/configexamples/firewall.rst b/docs/configexamples/firewall.rst new file mode 100644 index 00000000..e0a4ca55 --- /dev/null +++ b/docs/configexamples/firewall.rst @@ -0,0 +1,12 @@ +:lastproofread: 2024-06-14 + +Firewall Examples +================= + +This section contains examples of firewall configurations for various deployments. + +.. toctree:: + :maxdepth: 2 + + fwall-and-vrf + zone-policy diff --git a/docs/configexamples/fwall-and-vrf.rst b/docs/configexamples/fwall-and-vrf.rst new file mode 100644 index 00000000..38663a18 --- /dev/null +++ b/docs/configexamples/fwall-and-vrf.rst @@ -0,0 +1,121 @@ +VRF and firewall example +------------------------ + +Scenario and requirements +^^^^^^^^^^^^^^^^^^^^^^^^^ + +This example shows how to configure a VyOS router with VRFs and firewall rules. + +Diagram used in this example: + +.. image:: /_static/images/firewall-and-vrf-blueprints.png + :width: 80% + :align: center + :alt: Network Topology Diagram + +As exposed in the diagram, there are four VRFs. These VRFs are ``MGMT``, +``WAN``, ``LAN`` and ``PROD``, and their requirements are: + +* VRF MGMT: + * Allow connections to LAN and PROD. + * Deny connections to internet(WAN). + * Allow connections to the router. +* VRF LAN: + * Allow connections to PROD. + * Allow connections to internet(WAN). +* VRF PROD: + * Only accepts connections. +* VRF WAN: + * Allow connection to PROD. + +Configuration +^^^^^^^^^^^^^ + +First, we need to configure the interfaces and VRFs: + +.. code-block:: none + + set interfaces ethernet eth1 address '10.100.100.1/24' + set interfaces ethernet eth1 vrf 'MGMT' + set interfaces ethernet eth2 vif 150 address '10.150.150.1/24' + set interfaces ethernet eth2 vif 150 vrf 'LAN' + set interfaces ethernet eth2 vif 160 address '10.160.160.1/24' + set interfaces ethernet eth2 vif 160 vrf 'LAN' + set interfaces ethernet eth2 vif 3500 address '172.16.20.1/24' + set interfaces ethernet eth2 vif 3500 vrf 'PROD' + set interfaces loopback lo + set interfaces pppoe pppoe0 authentication password 'p4ssw0rd' + set interfaces pppoe pppoe0 authentication username 'vyos' + set interfaces pppoe pppoe0 source-interface 'eth0' + set interfaces pppoe pppoe0 vrf 'WAN' + set vrf bind-to-all + set vrf name LAN protocols static route 0.0.0.0/0 interface pppoe0 vrf 'WAN' + set vrf name LAN protocols static route 10.100.100.0/24 interface eth1 vrf 'MGMT' + set vrf name LAN protocols static route 172.16.20.0/24 interface eth2.3500 vrf 'PROD' + set vrf name LAN table '103' + set vrf name MGMT protocols static route 10.150.150.0/24 interface eth2.150 vrf 'LAN' + set vrf name MGMT protocols static route 10.160.160.0/24 interface eth2.160 vrf 'LAN' + set vrf name MGMT protocols static route 172.16.20.0/24 interface eth2.3500 vrf 'PROD' + set vrf name MGMT table '102' + set vrf name PROD protocols static route 0.0.0.0/0 interface pppoe0 vrf 'WAN' + set vrf name PROD protocols static route 10.100.100.0/24 interface eth1 vrf 'MGMT' + set vrf name PROD protocols static route 10.150.150.0/24 interface eth2.150 vrf 'LAN' + set vrf name PROD protocols static route 10.160.160.0/24 interface eth2.160 vrf 'LAN' + set vrf name PROD table '104' + set vrf name WAN protocols static route 10.150.150.0/24 interface eth2.150 vrf 'LAN' + set vrf name WAN protocols static route 10.160.160.0/24 interface eth2.160 vrf 'LAN' + set vrf name WAN protocols static route 172.16.20.0/24 interface eth2.3500 vrf 'PROD' + set vrf name WAN table '101' + +And before firewall rules are shown, we need to pay attention how to configure +and match interfaces and VRFs. In case where an interface is assigned to a +non-default VRF, if we want to use inbound-interface or outbound-interface in +firewall rules, we need to: + +* For **inbound-interface**: use the interface name with the VRF name, like + ``MGMT`` or ``LAN``. +* For **outbound-interface**: use the interface name, like ``eth0``, ``vtun0``, + ``eth2*`` or similar. + +Next, we need to configure the firewall rules. First we will define all rules +for transit traffic between VRFs. + +.. code-block:: none + + set firewall ipv4 forward filter default-action 'drop' + set firewall ipv4 forward filter default-log + set firewall ipv4 forward filter rule 10 action 'accept' + set firewall ipv4 forward filter rule 10 description 'MGMT - Allow to LAN and PROD' + set firewall ipv4 forward filter rule 10 inbound-interface name 'MGMT' + set firewall ipv4 forward filter rule 10 outbound-interface name 'eth2*' + set firewall ipv4 forward filter rule 99 action 'drop' + set firewall ipv4 forward filter rule 99 description 'MGMT - Drop all going to mgmt' + set firewall ipv4 forward filter rule 99 outbound-interface name 'eth1' + set firewall ipv4 forward filter rule 120 action 'accept' + set firewall ipv4 forward filter rule 120 description 'LAN - Allow to PROD' + set firewall ipv4 forward filter rule 120 inbound-interface name 'LAN' + set firewall ipv4 forward filter rule 120 outbound-interface name 'eth2.3500' + set firewall ipv4 forward filter rule 130 action 'accept' + set firewall ipv4 forward filter rule 130 description 'LAN - Allow internet' + set firewall ipv4 forward filter rule 130 inbound-interface name 'LAN' + set firewall ipv4 forward filter rule 130 outbound-interface name 'pppoe0' + +Also, we are adding global state policies, in order to allow established and +related traffic, in order not to drop valid responses: + +.. code-block:: none + + set firewall global-options state-policy established action 'accept' + set firewall global-options state-policy invalid action 'drop' + set firewall global-options state-policy related action 'accept' + +And finally, we need to allow input connections to the router itself only from +vrf MGMT: + +.. code-block:: none + + set firewall ipv4 input filter default-action 'drop' + set firewall ipv4 input filter default-log + set firewall ipv4 input filter rule 10 action 'accept' + set firewall ipv4 input filter rule 10 description 'MGMT - Allow input' + set firewall ipv4 input filter rule 10 inbound-interface name 'MGMT' \ No newline at end of file diff --git a/docs/configexamples/index.rst b/docs/configexamples/index.rst index d5973eb2..11dee806 100644 --- a/docs/configexamples/index.rst +++ b/docs/configexamples/index.rst @@ -8,7 +8,7 @@ This chapter contains various configuration examples: .. toctree:: :maxdepth: 2 - zone-policy + firewall bgp-ipv6-unnumbered ospf-unnumbered azure-vpn-bgp diff --git a/docs/configexamples/zone-policy.rst b/docs/configexamples/zone-policy.rst index 95648e7a..d0101ebf 100644 --- a/docs/configexamples/zone-policy.rst +++ b/docs/configexamples/zone-policy.rst @@ -1,20 +1,10 @@ -:lastproofread: 2021-06-29 +:lastproofread: 2024-06-14 .. _examples-zone-policy: Zone-Policy example ------------------- -.. note:: Starting from VyOS 1.4-rolling-202308040557, a new firewall - structure can be found on all vyos installations, and zone based firewall is - no longer supported. Documentation for most of the new firewall CLI can be - found in the `firewall - `_ - chapter. The legacy firewall is still available for versions before - 1.4-rolling-202308040557 and can be found in the :ref:`firewall-legacy` - chapter. The examples in this section use the legacy firewall configuration - commands, since this feature has been removed in earlier releases. - .. note:: In :vytask:`T2199` the syntax of the zone configuration was changed. The zone configuration moved from ``zone-policy zone `` to ``firewall zone ``. @@ -428,4 +418,3 @@ Something like: address ip.of.tunnel.broker } } - diff --git a/docs/configuration/firewall/ipv4.rst b/docs/configuration/firewall/ipv4.rst index e53f2480..39370c86 100644 --- a/docs/configuration/firewall/ipv4.rst +++ b/docs/configuration/firewall/ipv4.rst @@ -732,6 +732,10 @@ geoip) to keep database and rules updated. For example: ``eth2*``. Prepending character ``!`` for inverted matching criteria is also supported. For example ``!eth2`` +.. note:: If an interface is attached to a non-default vrf, when using + **inbound-interface**, vrf name must be used. For example ``set firewall + ipv4 forward filter rule 10 inbound-interface name MGMT`` + .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> inbound-interface group .. cfgcmd:: set firewall ipv4 input filter rule <1-999999> @@ -753,6 +757,10 @@ geoip) to keep database and rules updated. For example: ``eth2*``. Prepending character ``!`` for inverted matching criteria is also supported. For example ``!eth2`` +.. note:: If an interface is attached to a non-default vrf, when using + **outbound-interface**, real interface name must be used. For example + ``set firewall ipv4 forward filter rule 10 outbound-interface name eth0`` + .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> outbound-interface group .. cfgcmd:: set firewall ipv4 output filter rule <1-999999> diff --git a/docs/configuration/firewall/ipv6.rst b/docs/configuration/firewall/ipv6.rst index 423f3e09..511fd51f 100644 --- a/docs/configuration/firewall/ipv6.rst +++ b/docs/configuration/firewall/ipv6.rst @@ -723,6 +723,10 @@ geoip) to keep database and rules updated. For example: ``eth2*``. Prepending character ``!`` for inverted matching criteria is also supported. For example ``!eth2`` +.. note:: If an interface is attached to a non-default vrf, when using + **inbound-interface**, vrf name must be used. For example ``set firewall + ipv6 forward filter rule 10 inbound-interface name MGMT`` + .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> inbound-interface group .. cfgcmd:: set firewall ipv6 input filter rule <1-999999> @@ -744,6 +748,10 @@ geoip) to keep database and rules updated. For example: ``eth2*``. Prepending character ``!`` for inverted matching criteria is also supported. For example ``!eth2`` +.. note:: If an interface is attached to a non-default vrf, when using + **outbound-interface**, real interface name must be used. For example + ``set firewall ipv6 forward filter rule 10 outbound-interface name eth0`` + .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> outbound-interface group .. cfgcmd:: set firewall ipv6 output filter rule <1-999999>