Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:network:dsa:dsa-mini-tutorial [2022/09/13 02:13] – [Terminology] Strike out all the Terminology section richb-hanoverdocs:guide-user:network:dsa:dsa-mini-tutorial [2023/10/19 02:58] – [Introduction] saudiqbal
Line 243: Line 243:
  option netmask '255.255.255.0'  option netmask '255.255.255.0'
 </code> </code>
 +
 +==== 5. Firewall zones for VLANs ====
 +
 +Every interface should have a correctly configured firewall zone.
 +However, if you want to only use layer 2 and not layer 3 routing on a VLAN (only switching, no traffic between VLANs), you can set the interface as unmanaged (option proto 'none'), in which case do not set a firewall zone for the interface.
 +
 +Keep in mind, that at least one interface should have an address (static or DHCP) in order to connect to the device for administrative purposes. That interface must be associated with a firewall zone (or rules) to accept input.
 +
 +Example, where VLAN 1, 2 and 3 are only used for switching and VLAN 1 can be used to connect to the device:
 +
 +config/network
 +<code>
 +config device 'switch'
 + option name 'switch'
 + option type 'bridge'
 + option macaddr 'REDACTED'
 + list ports 'lan1'
 + list ports 'lan2'
 + list ports 'lan3'
 + list ports 'lan4'
 +
 +config bridge-vlan 'lan_vlan'
 + option device 'switch'
 + option vlan '1'
 + list ports 'lan1:u*'
 + list ports 'lan4:t'
 +
 +config bridge-vlan
 + option device 'switch'
 + option vlan '2'
 + list ports 'lan1:u*'
 + list ports 'lan4:t'
 +
 +config bridge-vlan
 + option device 'switch'
 + option vlan '3'
 + list ports 'lan3:u*'
 + list ports 'lan4:t'
 +
 +config interface 'lan'
 + option proto 'dhcp'
 + option device 'switch.1'
 +
 +config interface 'iot'
 + option proto 'none'
 + option device 'switch.2'
 +
 +config interface 'guest'
 + option proto 'none'
 + option device 'switch.3'
 +</code>
 +
 +config/firewall
 +<code>
 +config defaults
 + option syn_flood '1'
 + option input 'ACCEPT'
 + option output 'ACCEPT'
 + option forward 'REJECT'
 +
 +config zone
 + option name 'lan'
 + option input 'ACCEPT'
 + option output 'ACCEPT'
 + option forward 'ACCEPT'
 + list network 'lan'
 +</code>
 +
 +==== 6. Security Considerations with VLANs ====
 +
 +See [[https://en.wikipedia.org/wiki/VLAN_hopping#Double_tagging|Wikipedia - VLAN Hopping]]
 +
 +  * If using separated VLANs, it is often recommended not to use VLAN 1 for any data networks. This is because VLAN 1 is often hardcoded as a default on a lot of networking equipment and is therefore more often used in attacks and prone to accidental misconfiguration.
 +
 +  * It is also often recommended to change the native VLAN on all trunk ports to an unused VLAN ID to explicitly only allow tagged traffic on trunk ports. Note that some hardware doesn't allow to mix tagged with untagged VLAN on one port, so this method cannot be used on it.
 +
 +  * Similarly, for added security any unused LAN ports can be also added (as u|*) to an unused VLAN ID.
 +
 +As an example let's assume a setup where: 
 +  * VLANS 10, 20 and 30 are used for seperated VLANs without any layer 3 routing
 +  * the ports lan1 and lan2 are trunked ports with all VLANs 
 +  * port lan3 is only for untagged VLAN 1
 +  * port lan4 is unused
 +  * VLAN 90 is not used anywhere else and is only there for added security
 +
 +<code>
 ++---------+-------+------+------+------+------+
 +| VLAN ID | Local | lan1 | lan2 | lan3 | lan4 |
 ++---------+-------+------+------+------+------+
 +|    10          |    |  u|* |    |
 ++---------+-------+------+------+------+------+
 +|    20          |    |    |    |
 ++---------+-------+------+------+------+------+
 +|    30          |    |    |    |
 ++---------+-------+------+------+------+------+
 +|    90          u|* |  u|* |    |  u|* |
 ++---------+-------+------+------+------+------+
 +</code>
 +
 +<code>
 +config device 'switch'
 + option name 'switch'
 + option type 'bridge'
 + option macaddr 'REDACTED'
 + list ports 'lan1'
 + list ports 'lan2'
 + list ports 'lan3'
 + list ports 'lan4'
 +
 +config bridge-vlan 'lan_vlan'
 + option device 'switch'
 + option vlan '10'
 + list ports 'lan1:t'
 + list ports 'lan2:t'
 + list ports 'lan3:u*'
 +
 +config bridge-vlan
 + option device 'switch'
 + option vlan '20'
 + list ports 'lan1:t'
 + list ports 'lan2:t'
 +
 +config bridge-vlan
 + option device 'switch'
 + option vlan '30'
 + list ports 'lan1:t'
 + list ports 'lan2:t'
 +
 +config bridge-vlan
 + option device 'switch'
 + option vlan '90'
 + list ports 'lan1:u*'
 + list ports 'lan2:u*'
 + list ports 'lan4:u*'
 + option local '0'
 +
 +config interface 'lan'
 + option proto 'dhcp'
 + option device 'switch.10'
 +
 +config interface 'iot'
 + option proto 'none'
 + option device 'switch.20'
 +
 +config interface 'guest'
 + option proto 'none'
 + option device 'switch.30'
 +</code>
 +
 +Note: Because local is not checked for VLAN 90, OpenWrt won't even create a device for it and there should be no interface for it, unlike the other VLANs.
 +
  
  • Last modified: 2024/10/15 17:13
  • by palebloodsky