Hi Everyone
I made modifications to the OpenBSD bridge code (/sys/net/if_bridge.c) to
allow the forwarding of 802.1X EAPOL packets between interfaces of the
bridge.
I changed the following:
@@ -1221,6 +1221,10 @@ bridge_process(struct ifnet *ifp, struct
m);
if (m == NULL)
goto bad;
+ } else if (eh->ether_dhost[ETHER_ADDR_LEN - 1] == 3) {
+ if (ntohs(eh->ether_type) != ETHERTYPE_EAPOL) {
+ goto bad;
+ }
} else if (eh->ether_dhost[ETHER_ADDR_LEN - 1] <= 0xf)
goto bad;
}
@@ -1465,6 +1469,7 @@ bridge_blocknonip(struct ether_header *e
case ETHERTYPE_REVARP:
case ETHERTYPE_IP:
case ETHERTYPE_IPV6:
+case ETHERTYPE_EAPOL:
return (0);
}
These changes aim to enable 802.1X wired authentication inside the OpenBSD
firewall bridge. However, I am concerned about the potential security
implications of this modification, particularly since,
by default, OpenBSD blocks 802.1X packets to prevent unauthorized access
and spoofing.
I would appreciate your insights on the following:
1. What are the best practices for ensuring that allowing 802.1X
packets to pass through a bridge does not compromise the overall security
model of OpenBSD?
2. Are there any specific mechanisms or configurations you recommend
implementing in conjunction with these code changes to maintain a secure
and stable OpenBSD firewall?
3. How would you suggest monitoring or mitigating any unforeseen
security issues that might arise as a result of this modification?
Thanks and Regards
Yogendra
National Institute of Technology, Karnataka