Openwrt建立上网终端白名单
介绍使用OpenWrt防火墙建立上网终端白名单
为避免局域网内终端设备乱改mac地址或ip地址来规避防火墙规则,我们需要建立上网终端白名单。
首先你的了解局域网内所有设备的mac地址,可以在Openwrt”网络
“-“DHCP/DNS
” – “基本设置
“- “已分配的 DHCP租约
“处查看。 Openwrt建立上网终端白名单对于无线上网很简单,只需再无线网络设置处设置mac地址过滤即可;对于非无线上网的设备终端可以用防火墙来控制。打开 “网络
” – “防火墙” – “自定义规则
“处进行修改。
在我们写语句前先了解下iptables -A 和-I的区别
-I 插入一条或多条规则 ,-A 是追加一条或多条规则。乍看是一样,实际上是:
-A 在指定链的末尾添加(append)一条新的规则,-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
iptables 是自上而下执行的,如下面规则
iptables -I FORWARD -m mac --mac-source 11:22:33:44:55:66 -j ACCEPT iptables -A FORWARD -m mac ! --mac-source 11:22:33:44:55:66 -j DROP
表面是先放行11:22:33:44:55:66,对于非11:22:33:44:55:66地址的则丢弃。
在openwrt中实际上该条命令并不生效,非11:22:33:44:55:66地址的终端一样上网,原因是国内定制编译的Openwrt中已经内置了若干规则,如Turbo ACC 网络加速设置、科学上网、广告屏蔽等。用iptables -A FORWARD 只是在FORWARD表中最后追加了(append)这一条规则,优先级较低。Openwrt里面有其他的规则已经放行了非11:22:33:44:55:66地址的终端。
正确的写法应该是
iptables -I FORWARD -m mac ! --mac-source 11:22:33:44:55:66 -j DROP iptables -I FORWARD -m mac --mac-source 1a:2b:3c:4d:5f:6a -j ACCEPT
注意都是用的都是-I,先拒绝除11:22:33:44:55:66外所有设备连上网络,再增加可以上网的设备mac 1a:2b:3c:4d:5f:6a,由于是-I,它会跑到前一条前先执行。所以并不是第一条执行后就不执行第二条规则。
iptables -I FORWARD -m mac ! --mac-source 11:22:33:44:55:66 -j DROP iptables -I FORWARD -m mac --mac-source 1a:2b:3c:4d:5f:6a -j ACCEPT iptables -I FORWARD -m mac --mac-source 1a:2b:3c:4d:5f:6b -j ACCEPT iptables -I FORWARD -m mac --mac-source 1a:2b:3c:4d:5f:6c -j ACCEPT iptables -I FORWARD -m mac --mac-source 1a:2b:3c:4d:5f:6d -j ACCEPT #添加MAC白名单ACCEPT规则,有多少个设备就添加多少个规则
1a:2b:3c:4d:5f:6a 等换成真实的mac地址,这样我们就完成了上网终端白名单的建立,为了方便管理还可以在"网络" - "IP/MAC 绑定"
处对mac地址和ip地址进行绑定。方便对可以上网的终端进行管理。
以上命令只能针对国内的网站,带科学上网的固件白名单无效,非白名单终端还是可以访问国外域名,只能在科学上网程序内设置。
技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/85.html