mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-11-04 00:02:05 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			567 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			567 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
:lastproofread: 2024-08-05
 | 
						|
 | 
						|
.. _firewall-configuration:
 | 
						|
 | 
						|
#############################
 | 
						|
Bridge Firewall Configuration
 | 
						|
#############################
 | 
						|
 | 
						|
********
 | 
						|
Overview
 | 
						|
********
 | 
						|
 | 
						|
In this section there's useful information on all firewall configuration that
 | 
						|
can be done regarding bridges, and appropriate op-mode commands.
 | 
						|
Configuration commands covered in this section:
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge ...
 | 
						|
 | 
						|
From the main structure defined in :doc:`Firewall Overview</configuration/firewall/index>`
 | 
						|
in this section you can find detailed information only for the next part
 | 
						|
of the general structure:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   - set firewall
 | 
						|
       * bridge
 | 
						|
            - forward
 | 
						|
               + filter
 | 
						|
            - input
 | 
						|
               + filter
 | 
						|
            - output
 | 
						|
               + filter
 | 
						|
            - prerouting
 | 
						|
               + filter
 | 
						|
            - name
 | 
						|
               + custom_name
 | 
						|
 | 
						|
Traffic which is received by the router on an interface which is member of a
 | 
						|
bridge is processed on the **Bridge Layer**. Before the bridge decision is
 | 
						|
made, all packets are analyzed at **Prerouting**. First filters can be applied
 | 
						|
here, and also rules for ignoring connection tracking system can be configured.
 | 
						|
The relevant configuration that acts in **prerouting** is:
 | 
						|
 | 
						|
  * ``set firewall bridge prerouting filter ...``.
 | 
						|
 | 
						|
For traffic that needs to be switched internally by the bridge, base chain is
 | 
						|
**forward**, and it's base command for filtering is ``set firewall bridge
 | 
						|
forward filter ...``, which happens in stage 4, highlighted with red color.
 | 
						|
 | 
						|
.. figure:: /_static/images/firewall-bridge-forward.png
 | 
						|
 | 
						|
For traffic destined to the router itself, or that needs to be routed (assuming
 | 
						|
a layer3 bridge is configured), the base chain is **input**, the base command
 | 
						|
is ``set firewall bridge input filter ...`` and the path is:
 | 
						|
 | 
						|
.. figure:: /_static/images/firewall-bridge-input.png
 | 
						|
 | 
						|
If it's not dropped, then the packet is sent to **IP Layer**, and will be
 | 
						|
processed by the **IP Layer** firewall: IPv4 or IPv6 ruleset. Check once again
 | 
						|
the :doc:`general packet flow diagram</configuration/firewall/index>` if
 | 
						|
needed.
 | 
						|
 | 
						|
And for traffic that originates from the bridge itself, the base chain is
 | 
						|
**output**, base command is ``set firewall bridge output filter ...``, and
 | 
						|
the path is:
 | 
						|
 | 
						|
.. figure:: /_static/images/firewall-bridge-output.png
 | 
						|
 | 
						|
Custom bridge firewall chains can be created with the command ``set firewall bridge
 | 
						|
name <name> ...``. In order to use such custom chain, a rule with action jump,
 | 
						|
and the appropriate target should be defined in a base chain.
 | 
						|
 | 
						|
************
 | 
						|
Bridge Rules
 | 
						|
************
 | 
						|
 | 
						|
For firewall filtering, firewall rules need to be created. Each rule is
 | 
						|
numbered, has an action to apply if the rule is matched, and the ability
 | 
						|
to specify multiple matching criteria. Data packets go through the rules
 | 
						|
from 1 - 999999, so order is crucial. At the first match the action of the
 | 
						|
rule will be executed.
 | 
						|
 | 
						|
Actions
 | 
						|
=======
 | 
						|
 | 
						|
If a rule is defined, then an action must be defined for it. This tells the
 | 
						|
firewall what to do if all matching criterea in the rule are met.
 | 
						|
 | 
						|
In firewall bridge rules, the action can be:
 | 
						|
 | 
						|
   * ``accept``: accept the packet.
 | 
						|
 | 
						|
   * ``continue``: continue parsing next rule.
 | 
						|
 | 
						|
   * ``drop``: drop the packet.
 | 
						|
 | 
						|
   * ``jump``: jump to another custom chain.
 | 
						|
 | 
						|
   * ``return``: Return from the current chain and continue at the next rule
 | 
						|
     of the last chain.
 | 
						|
 | 
						|
   * ``queue``: Enqueue packet to userspace.
 | 
						|
 | 
						|
   * ``notrack``: ignore connection tracking system. This action is only
 | 
						|
     available in prerouting chain.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> action
 | 
						|
   [accept | continue | drop | jump | queue | return]
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> action
 | 
						|
   [accept | continue | drop | jump | queue | return]
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> action
 | 
						|
   [accept | continue | drop | jump | queue | return]
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> action
 | 
						|
   [accept | continue | drop | jump | notrack | queue | return]
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> action
 | 
						|
   [accept | continue | drop | jump | queue | return]
 | 
						|
 | 
						|
   This required setting defines the action of the current rule. If action is
 | 
						|
   set to jump, then jump-target is also needed.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   jump-target <text>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   jump-target <text>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   jump-target <text>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   jump-target <text>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   jump-target <text>
 | 
						|
 | 
						|
   If action is set to ``queue``, use next command to specify the queue
 | 
						|
   target. Range is also supported:
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   queue <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   queue <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   queue <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   queue <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   queue <0-65535>
 | 
						|
 | 
						|
   Also, if action is set to ``queue``, use next command to specify the queue
 | 
						|
   options. Possible options are ``bypass`` and ``fanout``:
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   queue-options bypass
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   queue-options bypass
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   queue-options bypass
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   queue-options bypass
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   queue-options bypass
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   queue-options fanout
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   queue-options fanout
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   queue-options fanout
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   queue-options fanout
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   queue-options fanout
 | 
						|
 | 
						|
Also, **default-action** is an action that takes place whenever a packet does
 | 
						|
not match any rule in its' chain. For base chains, possible options for
 | 
						|
**default-action** are **accept** or **drop**.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter default-action
 | 
						|
   [accept | drop]
 | 
						|
.. cfgcmd:: set firewall bridge input filter default-action
 | 
						|
   [accept | drop]
 | 
						|
.. cfgcmd:: set firewall bridge output filter default-action
 | 
						|
   [accept | drop]
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter default-action
 | 
						|
   [accept | drop]
 | 
						|
.. cfgcmd:: set firewall bridge name <name> default-action
 | 
						|
   [accept | continue | drop | jump | reject | return]
 | 
						|
 | 
						|
   This sets the default action of the rule-set if a packet does not match
 | 
						|
   any of the rules in that chain. If default-action is set to ``jump``, then
 | 
						|
   ``default-jump-target`` is also needed. Note that for base chains, default
 | 
						|
   action can only be set to ``accept`` or ``drop``, while on custom chains
 | 
						|
   more actions are available.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge name <name> default-jump-target <text>
 | 
						|
 | 
						|
   To be used only when ``default-action`` is set to ``jump``. Use this
 | 
						|
   command to specify jump target for default rule.
 | 
						|
 | 
						|
.. note:: **Important note about default-actions:**
 | 
						|
   If the default action for any base chain is not defined, then the default
 | 
						|
   action is set to **accept** for that chain. For custom chains, if the 
 | 
						|
   default action is not defined, then the default-action is set to **drop**.
 | 
						|
 | 
						|
Firewall Logs
 | 
						|
=============
 | 
						|
 | 
						|
Logging can be enable for every single firewall rule. If enabled, other
 | 
						|
log options can be defined.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> log
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> log
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> log
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> log
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> log
 | 
						|
 | 
						|
   Enable logging for the matched packet. If this configuration command is not
 | 
						|
   present, then the log is not enabled.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter default-log
 | 
						|
.. cfgcmd:: set firewall bridge input filter default-log
 | 
						|
.. cfgcmd:: set firewall bridge output filter default-log
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter default-log
 | 
						|
.. cfgcmd:: set firewall bridge name <name> default-log
 | 
						|
 | 
						|
   Use this command to enable the logging of the default action on
 | 
						|
   the specified chain.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   log-options level [emerg | alert | crit | err | warn | notice
 | 
						|
   | info | debug]
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   log-options level [emerg | alert | crit | err | warn | notice
 | 
						|
   | info | debug]
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   log-options level [emerg | alert | crit | err | warn | notice
 | 
						|
   | info | debug]
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   log-options level [emerg | alert | crit | err | warn | notice
 | 
						|
   | info | debug]
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   log-options level [emerg | alert | crit | err | warn | notice
 | 
						|
   | info | debug]
 | 
						|
 | 
						|
   Define log-level. Only applicable if rule log is enabled.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   log-options group <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   log-options group <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   log-options group <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   log-options group <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   log-options group <0-65535>
 | 
						|
 | 
						|
   Define the log group to send messages to. Only applicable if rule log is
 | 
						|
   enabled.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   log-options snapshot-length <0-9000>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   log-options snapshot-length <0-9000>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   log-options snapshot-length <0-9000>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   log-options snapshot-length <0-9000>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   log-options snapshot-length <0-9000>
 | 
						|
 | 
						|
   Define length of packet payload to include in netlink message. Only
 | 
						|
   applicable if rule log is enabled and the log group is defined.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   log-options queue-threshold <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   log-options queue-threshold <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   log-options queue-threshold <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   log-options queue-threshold <0-65535>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   log-options queue-threshold <0-65535>
 | 
						|
 | 
						|
   Define the number of packets to queue inside the kernel before sending them
 | 
						|
   to userspace. Only applicable if rule log is enabled and the log group is 
 | 
						|
   defined.
 | 
						|
 | 
						|
Firewall Description
 | 
						|
====================
 | 
						|
 | 
						|
For reference, a description can be defined for every defined custom chain.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge name <name> description <text>
 | 
						|
 | 
						|
   Provide a rule-set description to a custom firewall chain.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999>
 | 
						|
   description <text>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999>
 | 
						|
   description <text>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999>
 | 
						|
   description <text>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999>
 | 
						|
   description <text>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999>
 | 
						|
   description <text>
 | 
						|
 | 
						|
   Provide a description for each rule.
 | 
						|
 | 
						|
Rule Status
 | 
						|
===========
 | 
						|
 | 
						|
When defining a rule, it is enabled by default. In some cases, it is useful to
 | 
						|
just disable the rule, rather than removing it.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> disable
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> disable
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> disable
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> disable
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> disable
 | 
						|
 | 
						|
   Command for disabling a rule but keep it in the configuration.
 | 
						|
 | 
						|
Matching criteria
 | 
						|
=================
 | 
						|
 | 
						|
There are a lot of matching criteria against which the packet can be tested.
 | 
						|
Please refer to :doc:`IPv4</configuration/firewall/ipv4>` and
 | 
						|
:doc:`IPv6</configuration/firewall/ipv6>` matching criteria for more details.
 | 
						|
 | 
						|
Since bridges operats at layer 2, both matchers for IPv4 and IPv6 are
 | 
						|
supported in bridge firewall configuration. Same applies to firewall groups.
 | 
						|
 | 
						|
Same specific matching criteria that can be used in bridge firewall are
 | 
						|
described in this section:
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> ethernet-type
 | 
						|
   [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> ethernet-type
 | 
						|
   [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> ethernet-type
 | 
						|
   [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> ethernet-type
 | 
						|
   [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> ethernet-type
 | 
						|
   [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
 | 
						|
   Match based on the Ethernet type of the packet.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> vlan
 | 
						|
   ethernet-type [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> vlan
 | 
						|
   ethernet-type [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> vlan
 | 
						|
   ethernet-type [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> vlan
 | 
						|
   ethernet-type [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> vlan
 | 
						|
   ethernet-type [802.1q | 802.1ad | arp | ipv4 | ipv6]
 | 
						|
 | 
						|
   Match based on the Ethernet type of the packet when it is VLAN tagged.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> vlan id
 | 
						|
   <0-4096>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> vlan id
 | 
						|
   <0-4096>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> vlan id
 | 
						|
   <0-4096>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> vlan id
 | 
						|
   <0-4096>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> vlan id
 | 
						|
   <0-4096>
 | 
						|
 | 
						|
   Match based on VLAN identifier. Range is also supported.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge forward filter rule <1-999999> vlan priority
 | 
						|
   <0-7>
 | 
						|
.. cfgcmd:: set firewall bridge input filter rule <1-999999> vlan priority
 | 
						|
   <0-7>
 | 
						|
.. cfgcmd:: set firewall bridge output filter rule <1-999999> vlan priority
 | 
						|
   <0-7>
 | 
						|
.. cfgcmd:: set firewall bridge prerouting filter rule <1-999999> vlan priority
 | 
						|
   <0-7>
 | 
						|
.. cfgcmd:: set firewall bridge name <name> rule <1-999999> vlan priority
 | 
						|
   <0-7>
 | 
						|
 | 
						|
   Match based on VLAN priority (Priority Code Point - PCP). Range is also
 | 
						|
   supported.
 | 
						|
 | 
						|
Packet Modifications
 | 
						|
====================
 | 
						|
 | 
						|
Starting from **VyOS-1.5-rolling-202410060007**, the firewall can modify
 | 
						|
packets before they are sent out. This feaure provides more flexibility in
 | 
						|
packet handling.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [prerouting | forward | output] filter
 | 
						|
   rule <1-999999> set dscp <0-63>
 | 
						|
 | 
						|
   Set a specific value of Differentiated Services Codepoint (DSCP).
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [prerouting | forward | output] filter
 | 
						|
   rule <1-999999> set mark <1-2147483647>
 | 
						|
 | 
						|
   Set a specific packet mark value.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [prerouting | forward | output] filter
 | 
						|
   rule <1-999999> set tcp-mss <500-1460>
 | 
						|
 | 
						|
   Set the TCP-MSS (TCP maximum segment size) for the connection.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [prerouting | forward | output] filter
 | 
						|
   rule <1-999999> set ttl <0-255>
 | 
						|
 | 
						|
   Set the TTL (Time to Live) value.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [prerouting | forward | output] filter
 | 
						|
   rule <1-999999> set hop-limit <0-255>
 | 
						|
 | 
						|
   Set hop limit value.
 | 
						|
 | 
						|
.. cfgcmd:: set firewall bridge [forward | output] filter
 | 
						|
   rule <1-999999> set connection-mark <0-2147483647>
 | 
						|
 | 
						|
   Set connection mark value.
 | 
						|
 | 
						|
 | 
						|
Use IP firewall
 | 
						|
===============
 | 
						|
 | 
						|
By default, for switched traffic, only the rules defined under ``set firewall
 | 
						|
bridge`` are applied. There are two global-options that can be configured in
 | 
						|
order to force deeper analysis of the packet on the IP layer. These options
 | 
						|
are:
 | 
						|
 | 
						|
.. cfgcmd:: set firewall global-options apply-to-bridged-traffic ipv4
 | 
						|
 | 
						|
   This command enables the IPv4 firewall for bridged traffic. If this
 | 
						|
   options is used, then packet will also be parsed by rules defined in ``set
 | 
						|
   firewall ipv4 ...`` 
 | 
						|
 | 
						|
.. cfgcmd:: set firewall global-options apply-to-bridged-traffic ipv6
 | 
						|
 | 
						|
   This command enables the IPv6 firewall for bridged traffic. If this
 | 
						|
   options is used, then packet will also be parsed by rules defined in ``set
 | 
						|
   firewall ipv6 ...`` 
 | 
						|
 | 
						|
***********************
 | 
						|
Operation-mode Firewall
 | 
						|
***********************
 | 
						|
 | 
						|
Rule-set overview
 | 
						|
=================
 | 
						|
 | 
						|
In this section you can find all useful firewall op-mode commands.
 | 
						|
 | 
						|
General commands for firewall configuration, counter and statistics:
 | 
						|
 | 
						|
.. opcmd:: show firewall
 | 
						|
.. opcmd:: show firewall summary
 | 
						|
.. opcmd:: show firewall statistics
 | 
						|
 | 
						|
And, to print only bridge firewall information:
 | 
						|
 | 
						|
.. opcmd:: show firewall bridge
 | 
						|
.. opcmd:: show firewall bridge forward filter
 | 
						|
.. opcmd:: show firewall bridge forward filter rule <rule>
 | 
						|
.. opcmd:: show firewall bridge name <name>
 | 
						|
.. opcmd:: show firewall bridge name <name> rule <rule>
 | 
						|
 | 
						|
Show Firewall log
 | 
						|
=================
 | 
						|
 | 
						|
.. opcmd:: show log firewall
 | 
						|
.. opcmd:: show log firewall bridge
 | 
						|
.. opcmd:: show log firewall bridge forward
 | 
						|
.. opcmd:: show log firewall bridge forward filter
 | 
						|
.. opcmd:: show log firewall bridge name <name>
 | 
						|
.. opcmd:: show log firewall bridge forward filter rule <rule>
 | 
						|
.. opcmd:: show log firewall bridge name <name> rule <rule>
 | 
						|
 | 
						|
   Show the logs of all firewall; show all bridge firewall logs; show all logs
 | 
						|
   for forward hook; show all logs for forward hook and priority filter; show
 | 
						|
   all logs for particular custom chain; show logs for specific Rule-Set.
 | 
						|
 | 
						|
Example
 | 
						|
=======
 | 
						|
 | 
						|
Configuration example:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   set firewall bridge forward filter default-action 'drop'
 | 
						|
   set firewall bridge forward filter default-log
 | 
						|
   set firewall bridge forward filter rule 10 action 'continue'
 | 
						|
   set firewall bridge forward filter rule 10 inbound-interface name 'eth2'
 | 
						|
   set firewall bridge forward filter rule 10 vlan id '22'
 | 
						|
   set firewall bridge forward filter rule 20 action 'drop'
 | 
						|
   set firewall bridge forward filter rule 20 inbound-interface group 'TRUNK-RIGHT'
 | 
						|
   set firewall bridge forward filter rule 20 vlan id '60'
 | 
						|
   set firewall bridge forward filter rule 30 action 'jump'
 | 
						|
   set firewall bridge forward filter rule 30 jump-target 'TEST'
 | 
						|
   set firewall bridge forward filter rule 30 outbound-interface name '!eth1'
 | 
						|
   set firewall bridge forward filter rule 35 action 'accept'
 | 
						|
   set firewall bridge forward filter rule 35 vlan id '11'
 | 
						|
   set firewall bridge forward filter rule 40 action 'continue'
 | 
						|
   set firewall bridge forward filter rule 40 destination mac-address '66:55:44:33:22:11'
 | 
						|
   set firewall bridge forward filter rule 40 source mac-address '11:22:33:44:55:66'
 | 
						|
   set firewall bridge name TEST default-action 'accept'
 | 
						|
   set firewall bridge name TEST default-log
 | 
						|
   set firewall bridge name TEST rule 10 action 'continue'
 | 
						|
   set firewall bridge name TEST rule 10 log
 | 
						|
   set firewall bridge name TEST rule 10 vlan priority '0'
 | 
						|
 | 
						|
And op-mode commands:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
      vyos@BRI:~$ show firewall bridge
 | 
						|
      Rulesets bridge Information
 | 
						|
 | 
						|
      ---------------------------------
 | 
						|
      bridge Firewall "forward filter"
 | 
						|
 | 
						|
      Rule     Action    Protocol      Packets    Bytes  Conditions
 | 
						|
      -------  --------  ----------  ---------  -------  ---------------------------------------------------------------------
 | 
						|
      10       continue  all                 0        0  iifname "eth2" vlan id 22  continue
 | 
						|
      20       drop      all                 0        0  iifname @I_TRUNK-RIGHT vlan id 60
 | 
						|
      30       jump      all              2130   170688  oifname != "eth1"  jump NAME_TEST
 | 
						|
      35       accept    all              2080   168616  vlan id 11  accept
 | 
						|
      40       continue  all                 0        0  ether daddr 66:55:44:33:22:11 ether saddr 11:22:33:44:55:66  continue
 | 
						|
      default  drop      all                 0        0
 | 
						|
 | 
						|
      ---------------------------------
 | 
						|
      bridge Firewall "name TEST"
 | 
						|
 | 
						|
      Rule     Action    Protocol      Packets    Bytes  Conditions
 | 
						|
      -------  --------  ----------  ---------  -------  --------------------------------------------------
 | 
						|
      10       continue  all              2130   170688  vlan pcp 0  prefix "[bri-NAM-TEST-10-C]"  continue
 | 
						|
      default  accept    all              2130   170688
 | 
						|
 | 
						|
      vyos@BRI:~$
 | 
						|
      vyos@BRI:~$ show firewall bridge name TEST
 | 
						|
      Ruleset Information
 | 
						|
 | 
						|
      ---------------------------------
 | 
						|
      bridge Firewall "name TEST"
 | 
						|
 | 
						|
      Rule     Action    Protocol      Packets    Bytes  Conditions
 | 
						|
      -------  --------  ----------  ---------  -------  --------------------------------------------------
 | 
						|
      10       continue  all              2130   170688  vlan pcp 0  prefix "[bri-NAM-TEST-10-C]"  continue
 | 
						|
      default  accept    all              2130   170688
 | 
						|
 | 
						|
      vyos@BRI:~$
 | 
						|
 | 
						|
Inspect logs:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
      vyos@BRI:~$ show log firewall bridge
 | 
						|
      Dec 05 14:37:47 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102
 | 
						|
      Dec 05 14:37:48 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102
 | 
						|
      Dec 05 14:37:49 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102
 | 
						|
      ...
 | 
						|
      vyos@BRI:~$ show log firewall bridge forward filter
 | 
						|
      Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0
 | 
						|
      Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0
 |