mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	firewall: improve zone-based firewall docs (#1622)
This commit is contained in:
		
							parent
							
								
									f2c96f1a32
								
							
						
					
					
						commit
						170869e18d
					
				| @ -65,60 +65,94 @@ Configuration | |||||||
| As an alternative to applying policy to an interface directly, a zone-based | As an alternative to applying policy to an interface directly, a zone-based | ||||||
| firewall can be created to simplify configuration when multiple interfaces | firewall can be created to simplify configuration when multiple interfaces | ||||||
| belong to the same security zone. Instead of applying rule-sets to interfaces, | belong to the same security zone. Instead of applying rule-sets to interfaces, | ||||||
| they are applied to source zone-destination zone pairs. | they are applied to source-destination zone pairs. | ||||||
| 
 | 
 | ||||||
| A basic introduction to zone-based firewalls can be found `here | A basic introduction to zone-based firewalls can be found `here | ||||||
| <https://support.vyos.io/en/kb/articles/a-primer-to-zone-based-firewall>`_, | <https://support.vyos.io/en/kb/articles/a-primer-to-zone-based-firewall>`_, | ||||||
| and an example at :ref:`examples-zone-policy`. | and an example at :ref:`examples-zone-policy`. | ||||||
| 
 | 
 | ||||||
|  | The following steps are required to create a zone-based firewall: | ||||||
|  | 
 | ||||||
|  | 1. Define both the source and destination zones | ||||||
|  | 2. Define the rule-set | ||||||
|  | 3. Apply the rule-set to the zones | ||||||
|  | 
 | ||||||
| Define a Zone | Define a Zone | ||||||
| ============= | ============= | ||||||
| 
 | 
 | ||||||
| To define a zone setup either one with interfaces or a local zone. | To define a zone setup either one with interfaces or the local zone. | ||||||
| 
 | 
 | ||||||
| .. cfgcmd:: set firewall zone <name> interface <interface> | .. cfgcmd:: set firewall zone <name> interface <interface> | ||||||
| 
 | 
 | ||||||
|    Set interfaces to a zone. A zone can have multiple interfaces. |    Assign interfaces as a member of a zone. | ||||||
|    But an interface can only be a member in one zone. | 
 | ||||||
|  |    .. note:: | ||||||
|  | 
 | ||||||
|  |       * An interface can only be a member of one zone. | ||||||
|  |       * A zone can have multiple interfaces, with traffic between interfaces in | ||||||
|  |         the same zone subject to the intra-zone-filtering policy (allowed by | ||||||
|  |         default). | ||||||
| 
 | 
 | ||||||
| .. cfgcmd:: set firewall zone <name> local-zone | .. cfgcmd:: set firewall zone <name> local-zone | ||||||
| 
 | 
 | ||||||
|    Define the zone as a local zone. A local zone has no interfaces and |    Define the zone as the local zone, for traffic originating from and destined | ||||||
|    will be applied to the router itself. |    to the router itself. | ||||||
|  | 
 | ||||||
|  |    .. note:: | ||||||
|  | 
 | ||||||
|  |       * A local zone cannot have any member interfaces | ||||||
|  |       * There cannot be multiple local zones | ||||||
| 
 | 
 | ||||||
| .. cfgcmd:: set firewall zone <name> default-action [drop | reject] | .. cfgcmd:: set firewall zone <name> default-action [drop | reject] | ||||||
| 
 | 
 | ||||||
|    Change the default-action with this setting. |    Change the zone default-action, which applies to traffic destined to this | ||||||
|  |    zone that doesn't match any of the source zone rulesets applied. | ||||||
|  | 
 | ||||||
|  | .. cfgcmd:: set firewall zone <name> default-log | ||||||
|  | 
 | ||||||
|  |    Enable logging of packets that hit this zone's default-action (disabled by | ||||||
|  |    default). | ||||||
| 
 | 
 | ||||||
| .. cfgcmd:: set firewall zone <name> description | .. cfgcmd:: set firewall zone <name> description | ||||||
| 
 | 
 | ||||||
|    Set a meaningful description. |    Set a meaningful description. | ||||||
| 
 | 
 | ||||||
|  | Defining a Rule-Set | ||||||
|  | ============================= | ||||||
|  | 
 | ||||||
|  | Zone-based firewall rule-sets are for traffic from a *Source Zone* to a | ||||||
|  | *Destination Zone*. | ||||||
|  | 
 | ||||||
|  | The rule-sets are created as a custom firewall chain using the commands below | ||||||
|  | (refer to the firewall IPv4/IPv6 sections for the full syntax): | ||||||
|  | 
 | ||||||
|  | * For :ref:`IPv4<configuration/firewall/ipv4:Firewall - IPv4 Rules>`: | ||||||
|  |   ``set firewall ipv4 name <name> ...`` | ||||||
|  | * For :ref:`IPv6<configuration/firewall/ipv6:Firewall - IPv6 Rules>`: | ||||||
|  |   ``set firewall ipv6 name <name> ...`` | ||||||
|  | 
 | ||||||
|  | It can be helpful to name the rule-sets in the format | ||||||
|  | ``<Sourze Zone>-<Destination Zone>-<v4 | v6>`` to make them easily identifiable. | ||||||
|  | 
 | ||||||
| Applying a Rule-Set to a Zone | Applying a Rule-Set to a Zone | ||||||
| ============================= | ============================= | ||||||
| 
 | 
 | ||||||
| Before you are able to apply a rule-set to a zone you have to create the zones | Once a rule-set has been defined, it can then be applied to the source and | ||||||
| first. | destination zones. The configuration syntax is anchored on the destination | ||||||
| 
 | zone, with each of the source zone rulesets listed against the destination. | ||||||
| It helps to think of the syntax as: (see below). The 'rule-set' should be |  | ||||||
| written from the perspective of: *Source Zone*-to->*Destination Zone* |  | ||||||
| 
 | 
 | ||||||
| .. cfgcmd::  set firewall zone <Destination Zone> from <Source Zone> | .. cfgcmd::  set firewall zone <Destination Zone> from <Source Zone> | ||||||
|    firewall name <rule-set> |    firewall name <ipv4-rule-set-name> | ||||||
| 
 | 
 | ||||||
| .. cfgcmd::  set firewall zone <name> from <name> firewall name | .. cfgcmd::  set firewall zone <Destination Zone> from <Source Zone> | ||||||
|    <rule-set> |    firewall ipv6-name <ipv6-rule-set-name> | ||||||
| 
 | 
 | ||||||
| .. cfgcmd::  set firewall zone <name> from <name> firewall ipv6-name | It is recommended to create two rule-sets for each source-destination zone pair. | ||||||
|    <rule-set> |  | ||||||
| 
 | 
 | ||||||
|    You apply a rule-set always to a zone from an other zone, it is recommended | .. code-block:: none | ||||||
|    to create one rule-set for each zone pair. |  | ||||||
| 
 | 
 | ||||||
|    .. code-block:: none |    set firewall zone DMZ from LAN firewall name LAN-DMZ-v4 | ||||||
| 
 |    set firewall zone LAN from DMZ firewall name DMZ-LAN-v4 | ||||||
|       set firewall zone DMZ from LAN firewall name LANv4-to-DMZv4 |  | ||||||
|       set firewall zone LAN from DMZ firewall name DMZv4-to-LANv4 |  | ||||||
| 
 | 
 | ||||||
| ************** | ************** | ||||||
| Operation-mode | Operation-mode | ||||||
| @ -133,13 +167,12 @@ Operation-mode | |||||||
|       vyos@vyos:~$ show firewall zone-policy |       vyos@vyos:~$ show firewall zone-policy | ||||||
|       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 |       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 | ||||||
|       ------  ------------  -----------  ---------------  --------------- |       ------  ------------  -----------  ---------------  --------------- | ||||||
|       LAN     eth1          WAN          WAN_to_LAN |       LAN     eth1          WAN          WAN-LAN-v4 | ||||||
|               eth2 |               eth2 | ||||||
|       LOCAL   LOCAL         LAN          LAN_to_LOCAL |       LOCAL   LOCAL         LAN          LAN-LOCAL-v4 | ||||||
|                             WAN          WAN_to_LOCAL     WAN_to_LOCAL_v6 |                             WAN          WAN-LOCAL-v4     WAN-LOCAL-v6 | ||||||
|       WAN     eth3          LAN          LAN_to_WAN |       WAN     eth3          LAN          LAN-WAN-v4 | ||||||
|               eth0          LOCAL        LOCAL_to_WAN |               eth0          LOCAL        LOCAL-WAN-v4 | ||||||
|       vyos@vyos:~$ |  | ||||||
| 
 | 
 | ||||||
| .. opcmd:: show firewall zone-policy zone <zone> | .. opcmd:: show firewall zone-policy zone <zone> | ||||||
| 
 | 
 | ||||||
| @ -150,11 +183,11 @@ Operation-mode | |||||||
|       vyos@vyos:~$ show firewall zone-policy zone WAN |       vyos@vyos:~$ show firewall zone-policy zone WAN | ||||||
|       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 |       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 | ||||||
|       ------  ------------  -----------  ---------------  --------------- |       ------  ------------  -----------  ---------------  --------------- | ||||||
|       WAN     eth3          LAN          LAN_to_WAN |       WAN     eth3          LAN          LAN-WAN-v4 | ||||||
|               eth0          LOCAL        LOCAL_to_WAN |               eth0          LOCAL        LOCAL-WAN-v4 | ||||||
|  | 
 | ||||||
|       vyos@vyos:~$ show firewall zone-policy zone LOCAL |       vyos@vyos:~$ show firewall zone-policy zone LOCAL | ||||||
|       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 |       Zone    Interfaces    From Zone    Firewall IPv4    Firewall IPv6 | ||||||
|       ------  ------------  -----------  ---------------  --------------- |       ------  ------------  -----------  ---------------  --------------- | ||||||
|       LOCAL   LOCAL         LAN          LAN_to_LOCAL |       LOCAL   LOCAL         LAN          LAN-LOCAL-v4 | ||||||
|                             WAN          WAN_to_LOCAL     WAN_to_LOCAL_v6 |                             WAN          WAN-LOCAL-v4     WAN-LOCAL-v6 | ||||||
|       vyos@vyos:~$ |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user