|
本帖最后由 fengchen 于 2023-12-30 20:25 编辑
20231230更新~
2203之后使用了nftables,需安装向下兼容的包才能继续使用原来的规则脚本。共需安装如下几个包
ebtables-legacy ebtables-legacy-utils ebtables-nft kmod-ebtables kmod-ebtables-ipv4 kmod-ebtables-ipv6
由于网页上firewall里面没有自定义脚本的地方了,需要自己添加开机启动
自启动添加
dosomething.sh内容如下
放了30s延时,文件放在/etc文件夹,备份时设置备份整个/etc,这样方便备份
- sleep 30
- sh /etc/firewall.user.sh
复制代码 firewall.user.sh也放在/etc,
firewall.user.sh和以前大致相同,无线网卡名和以前不同了,使用phyX-apY格式
- GATEWAY_IP=192.168.50.1
- GATEWAY_MAC=$(arp |grep "$GATEWAY_IP " |awk '{print $4}')
- SUBNET=192.168.50.0/24
- INTERFACE=phy1-ap0
复制代码
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20220329
最新版本openwrt在/etc/sysctl.conf关闭ipv6似乎不行了,就想到直接用ebtables的规则关闭ipv6
使用ebtables规则刚好只关闭访客网络的ipv6,其它网络正常使用ipv6
新的规则如下
- ##########################################################
- GATEWAY_IP=192.168.5.1
- GATEWAY_MAC=12:23:34:45:56:67
- SUBNET=192.168.5.0/24
- INTERFACE=wlan1
- ##########################################################
- ebtables -t filter -F FORWARD
- ebtables -t filter -F INPUT
- ebtables -t filter -F OUTPUT
- #########################################################
- ebtables -t filter -A FORWARD -i $INTERFACE -p IPV6 -j DROP
- ebtables -t filter -A FORWARD -o $INTERFACE -p IPV6 -j DROP
- ebtables -t filter -A OUTPUT -o $INTERFACE -p IPV6 -j DROP
- ebtables -t filter -A INPUT -i $INTERFACE -p IPV6 -j DROP
- #########################################################
- 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
复制代码 刚开始设置完规则,ipv6的FORWARD规则没有生效,不知道是因为什么,后来重启多次后莫明其妙地好了,
如果有问题大家一起讨论
===================================================================
2018.08.01
添加带独立交换芯片更改switch设置使用五口都是LAN的方法(即ap模式五口都可用)
有的第一行和第二行可能反过来
******************************************************************************************
2018.01.11
如果双频信号都开启无线隔离,可以如下设置firewall
===========================================================================================
2017.10.10
家里的无线网络连接的客户端比较多,经常有亲戚邻居的手机连接,而他们的手机上还经常会有“万能钥匙”这些软件。
被蹭网倒是其次,关键是连接wifi的手机经常使用支付宝、微信、网银等。为了安全给访客网络开启无线隔离,也就是连接访客网络的客户端间网络是不通的,访客网络和其它网络间也是不通的,只能访问外网。
而openwrt在作为ap时,官方没有可以无线隔离的方法,我用ebtables工具通过防火墙开启无线隔离。
接上次更新,防火墙custom rules支持shell,就设置了几个变量,方便修改,如下:
=============================================================
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,添加如下规则4。保存,重启。
5。说明:
我的AP没启用IPV6,关闭IPV6方法是在/etc/sysctl.conf添加如下一行
- net.ipv6.conf.all.disable_ipv6=1
复制代码 这个隔离方法是从石像鬼的无线隔离启发得来的,试了今天一天才弄好,有什么可以改进的地方,坛友们提出来,大家共同进步
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|