当前位置: 首页 > 工具软件 > ipset_list > 使用案例 >

openwrt使用ipset+iptables建立一个简单的家庭网络管理功能

贺景山
2023-12-01

使用ipset建立三个hash表

ipset create direct_ip hash:net  #定向ip或域名
ipset create direct_blacklist_mac hash:mac #定向流量访问黑名单
ipset create auth_pass_mac hash:mac #认证通过终端的mac

设置路由规则

iptables -N AUTH_POLICY
iptables -N FLOW_POLICY
iptables -I FORWARD -j AUTH_POLICY
#没认证通过的mac,无法上网
iptables -I AUTH_POLICY -i br-lan -m set ! --match-set auth_pass_mac src -j DROP

#被拉黑的mac无法访问定向ip或域名
iptables -A AUTH_POLICY -i br-lan -m set --match-set direct_blacklist_mac src -j FLOW_POLICY
iptables -A FLOW_POLICY -i br-lan -m set --match-set direct_ip dst -j DROP

使用例子:

允许特定终端上网

#默认openwrt启动,配置好以上功能之后,所有的终端(mac)都无法上网

#这时我希望我自己可以上网,我电脑的mac为:00:11:22:33:44:55
ipset add auth_pass_mac 00:11:22:33:44:55
#让家里小孩的电脑上网,小孩电脑mac为:00:11:22:33:44:66
ipset add auth_pass_mac 00:11:22:33:44:66
#不让小孩上网
ipset del auth_pass_mac 00:11:22:33:44:66

不让小孩访问特定网址:游戏或视频等

#将小孩电脑放进定向流量访问黑名单
ipset add direct_blacklist_mac 00:11:22:33:44:66
#不让小孩访问 www.bilibili.com
ipset add direct_ip www.bilibili.com

ipset详细介绍网址

 类似资料: