Securing open access points
Hi list
We're operating a few wifi access-points that allow connecting without
any password/encryption.To tighten security a bit, I've added ebtables
rules on the individual AP. (The AP are Pc-engines Alix running Debian,
hostapd.) I'd appreciate feedback on the effectiveness of my approach
and whether there are other low-hanging fruit to further separate
clients.These are the rules:
# Flush
ebtables -F
ebtables -t nat -F
# Block packets from the wifi side that purport to be from a gateway address
ebtables -A FORWARD --in-interface wlan+ --protocol arp --arp-ip-src
10.0.0.1 -j DROP
ebtables -A FORWARD --in-interface wlan+ --protocol arp --arp-ip-src
10.1.1.1 -j DROP
ebtables -A FORWARD --in-interface wlan+ -s 02:ba:de:af:fe:00 -j DROP
# Block DHCP server responses and IP6 router advertisements from wifi side
ebtables -A FORWARD --in-interface wlan+ --protocol ipv4 --ip-protocol
udp --ip-source-port 67 -j DROP
ebtables -A FORWARD --in-interface wlan+ --protocol IPv6 --ip6-protocol
ipv6-icmp --ip6-icmp-type 134 -j DROP
# Allow visitors to talk to the gateway only
# Just send all packets to the gateway at 02:ba:de:af:fe:00 regardless
of target address
ebtables -t nat -A PREROUTING --in-interface wlan0_+ -j dnat
--to-destination 02:ba:de:af:fe:00
ebtables -t nat -A PREROUTING --in-interface wlan1_+ -j dnat
--to-destination 02:ba:de:af:fe:00
# Block STP on the wifi side
for T in OUTPUT FORWARD; do ebtables -A $T --out-interface wlan+
--source BGA -j DROP; done
for T in OUTPUT FORWARD; do ebtables -A $T --out-interface wlan+
--destination BGA -j DROP; done
Explanation of the interfaces:
wlan0, wlan1: used for internal WPA-secured traffic
wlan0_0, wlan1_0: are open for guests
10.0.0.1/24: Internal network (somewhat trusted)
10.1.1.1/24: Guest network (untrusted)
02:ba:de:af:fe:00: MAC-address of the gateway interface in 10.1.1.1
The idea is to prevent guests from talking to each other. This improves
security and removes broadcast noise because broadcast traffic is only
seen by the gateway. In particular, I expect this approach to prevent
wifi-clients from impersonating the IP-gateway. This should prevent the
most common form of MitM attacks. I'm aware that it's not a total
separation and that there are still opportunities for client-address
spoofing.
Maybe you see areas where clients could be separated further?
Thanks
Stephan
Reply to: