Openwrt建立上网终端白名单

介绍使用OpenWrt防火墙建立上网终端白名单

为避免局域网内终端设备乱改mac地址或ip地址来规避防火墙规则,我们需要建立上网终端白名单。

Openwrt建立上网终端白名单

首先你的了解局域网内所有设备的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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注