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

Reply via email to