月下博客

LEDE/OPENWRT用作AP访客网络、无线隔离方法,LEDE/OPENWRT设置访客网络、无线隔离

2018.01.11
如果双频信号都开启无线隔离,可以如下设置firewall

# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
##########################################################
GATEWAY_IP=192.168.6.1
GATEWAY_MAC=aa:bb:cc:dd:ee:fe
SUBNET=192.168.6.0/24
INTERFACE=wlan0 #5G信号,数据量大
INTERFACE1=wlan1-1 #2.4G信号,数据量小
##########################################################
ebtables -t filter -F FORWARD
ebtables -t filter -F INPUT
ebtables -t filter -F OUTPUT
#########################################################
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4 --ip-protocol udp  --ip-destination $GATEWAY_IP --ip-destination-port 53 -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4  --ip-destination $GATEWAY_IP -j DROP
ebtables -t filter -A FORWARD -i $INTERFACE -d $GATEWAY_MAC  -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE1 -p IPV4 --ip-protocol udp  --ip-destination $GATEWAY_IP --ip-destination-port 53 -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE1 -p IPV4  --ip-destination $GATEWAY_IP -j DROP
ebtables -t filter -A FORWARD -i $INTERFACE1 -d $GATEWAY_MAC  -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4 --ip-destination $SUBNET -j DROP
ebtables -t filter -A FORWARD -i $INTERFACE1 -p IPV4 --ip-destination $SUBNET -j DROP
ebtables -t filter -A FORWARD -o $INTERFACE -s ! $GATEWAY_MAC -j DROP
ebtables -t filter -A FORWARD -o $INTERFACE1 -s ! $GATEWAY_MAC -j DROP
#########################################################
ebtables -t filter -A OUTPUT -o $INTERFACE -p ARP -j DROP
ebtables -t filter -A OUTPUT -o $INTERFACE -p IPV4 -j DROP
ebtables -t filter -A OUTPUT -o $INTERFACE1 -p ARP -j DROP
ebtables -t filter -A OUTPUT -o $INTERFACE1 -p IPV4 -j DROP
#########################################################
ebtables -t filter -A INPUT -i $INTERFACE -p IPV4 -j DROP
ebtables -t filter -A INPUT -i $INTERFACE1 -p IPV4 -j DROP

2017.10.10
家里的无线网络连接的客户端比较多,经常有亲戚邻居的手机连接,而他们的手机上还经常会有“万能钥匙”这些软件。
被蹭网倒是其次,关键是连接wifi的手机经常使用支付宝、微信、网银等。为了安全给访客网络开启无线隔离,也就是连接访客网络的客户端间网络是不通的,访客网络和其它网络间也是不通的,只能访问外网。
而openwrt在作为ap时,官方没有可以无线隔离的方法,我用ebtables工具通过防火墙开启无线隔离。
接上次更新,防火墙custom rules支持shell,就设置了几个变量,方便修改,如下:

##########################################################
GATEWAY_IP=192.168.6.1
GATEWAY_MAC=aa:bb:cc:dd:ee:fe
SUBNET=192.168.6.0/24
INTERFACE=wlan0-1
##########################################################
ebtables -t filter -F FORWARD
ebtables -t filter -F INPUT
ebtables -t filter -F OUTPUT
#########################################################
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4 --ip-protocol udp  --ip-destination $GATEWAY_IP --ip-destination-port 53 -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4  --ip-destination $GATEWAY_IP -j DROP
ebtables -t filter -A FORWARD -i $INTERFACE -d $GATEWAY_MAC  -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV4 --ip-destination $SUBNET -j DROP
ebtables -t filter -A FORWARD -o $INTERFACE -s ! $GATEWAY_MAC -j DROP
#########################################################
ebtables -t filter -A OUTPUT -o $INTERFACE -p ARP -j DROP
ebtables -t filter -A OUTPUT -o $INTERFACE -p IPV4 -j DROP
#########################################################
ebtables -t filter -A INPUT -i $INTERFACE -p IPV4 -j DROP
=============================================================

2017.09.02
1。LEDE无线路由器修改LAN ip为和网关同一网段,LAN用网线连接网关。禁用无线路由器LAN的DHCP服务器。
无线隔离方法是使用ebtables配置防火墙,过滤br-lan桥上的数据包。ebtables与iptables不同处是专门过滤网桥的数据包。
先安装ebtables-utils,kmod-ebtables-ipv4,在线安装就可以。
2。Network -> Wireless -> Add添加新的无线网络,无线网络配置不再详说,Mode选AP,Network选LAN,重点记住配置页面上的
Wireless Network: Master "xxxx" (wlan0-1)括号里的网卡名称,也可以用iwinfo查看。
不新建无线网络也可以用原来的。
3。找到网关(如192.168.1.1),网关MAC(如aa:bb:cc:dd:ee:ff)
Network -> Firewall -> Custom Rules,添加如下规则

##########################################################
ebtables -t filter -F FORWARD
ebtables -t filter -F INPUT
ebtables -t filter -F OUTPUT
#########################################################
ebtables -t filter -A FORWARD -i wlan0-1 -p IPV4 --ip-protocol udp  --ip-destination 192.168.1.1 --ip-destination-port 53 -j ACCEPT
ebtables -t filter -A FORWARD -i wlan0-1 -p IPV4  --ip-destination 192.168.1.1 -j DROP
ebtables -t filter -A FORWARD -i wlan0-1 -d aa:bb:cc:dd:ee:ff  -j ACCEPT
ebtables -t filter -A FORWARD -i wlan0-1  -p IPV4 --ip-destination 192.168.1.0/24 -j DROP
ebtables -t filter -A FORWARD -o wlan0-1 -s ! aa:bb:cc:dd:ee:ff -j DROP
#########################################################
ebtables -t filter -A OUTPUT -o wlan0-1 -p ARP -j DROP
ebtables -t filter -A OUTPUT -o wlan0-1 -p IPV4 -j DROP
#########################################################
ebtables -t filter -A INPUT -i wlan0-1 -p IPV4 -j DROP

4。保存,重启。
5。说明:
我的AP没启用IPV6,关闭IPV6方法是在/etc/sysctl.conf添加如下一行

net.ipv6.conf.all.disable_ipv6=1

这个隔离方法是从石像鬼的无线隔离启发得来的,试了今天一天才弄好,有什么可以改进的地方,坛友们提出来,大家共同进步

官方QQ群号码:922069959(空)1093596563(空)

您可能感兴趣的文章