JFFS script to isolate configured guest wifi networks on AsusWRT Merlin into a seperate VLAN.
Original script from: http://www.snbforums.com/threads/ac56u-how-to-add-bridges-with-dhcp-servers.20326/#post-189032
JFFS script to isolate configured guest wifi networks on AsusWRT Merlin into a seperate VLAN.
Original script from: http://www.snbforums.com/threads/ac56u-how-to-add-bridges-with-dhcp-servers.20326/#post-189032
| #!/bin/sh | |
| # get list of configured guest wireless networks | |
| Guest24=`nvram get wl0_vifs` | |
| Guest5=`nvram get wl1_vifs` | |
| # | |
| # Move all Guest wireless to br1 | |
| # attempt to move wireless guest fails (no security only works) until restart of eapd below | |
| # | |
| lan1names="" | |
| # Drop any new connections from guest wifi to the router | |
| iptables -I INPUT -i br1 -m state --state NEW -j DROP | |
| # Allow guest wifi to access DHCP | |
| iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT | |
| # Allow guest wifi to access DNS | |
| iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT | |
| iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT | |
| # Set appropriate firewall rules for new br1 | |
| iptables -I FORWARD -i br1 -m state --state NEW -j ACCEPT | |
| iptables -I FORWARD -i br1 -o br0 -m state --state NEW -j DROP | |
| iptables -I FORWARD -i br0 -o br1 -m state --state NEW -j DROP | |
| for GuestWifiDevice in $Guest24 $Guest5 | |
| do | |
| brctl delif br0 $GuestWifiDevice | |
| brctl addif br1 $GuestWifiDevice | |
| # add name to list with preceding blank | |
| lan1names="$lan1names $GuestWifiDevice" | |
| done | |
| # if guest wifi moved, set some nvram variables and restart eapd to fix security | |
| if [ "x$lan1names" != "x" ] | |
| then | |
| nvram set lan_ifnames="vlan1 eth1 wifi0" | |
| nvram set lan_ifname="br0" | |
| nvram set lan1_ifnames="`echo $lan1names | sed 's/^[ \t]*//;s/[ \t]*$//'`" | |
| nvram set lan1_ifname="br1" | |
| # restart eapd | |
| killall eapd | |
| eapd | |
| fi |