openwrt路由器怎么使用iptables进行域名过滤?

有时候在家想不让小孩乱上网,某些网址不能登陆,而这时如果家里的无线路由器刚好是openwrt时,可利用iptables使得当输入的网址包含相关字段是无法登陆该网页。

1、浏览器登陆192.168.1.1

openwrt路由器怎么使用iptables进行域名过滤?_第1张图片

2、然后按照下图点击设置

3、在防火墙自定义规则中写入如下语句:

iptables -I FORWARD -m string --string "gamersky" --algo kmp -j DROP

4、按下提交,这是到达如下页面:

状态=>防火墙

按下重启防火墙

网址包含gamersky时,无法登陆,即使在搜索引擎中键入gamersky也不行。

openwrt路由器怎么使用iptables进行域名过滤?_第2张图片

5、看到FORWARD中已经包含了信息。输入游民星空网址,试试,果然无法登陆了。可以看到已经拦截了请求的数据包。

openwrt路由器怎么使用iptables进行域名过滤?_第3张图片

openwrt路由器怎么使用iptables进行域名过滤?_第4张图片

复制内容到剪贴板
  1. iptables -I FORWARD -m string --string "abcd" --algo kmp -j DROP   
  2.   
  3. or   
  4.   
  5. iptables -I FORWARD -m string --string "abcd" --algo bm -j DROP  

使用string设置过滤域名。当网址中包含相关字段是无法上该网址。

使用ssh客户端可以

把过滤的命令写入/etc/firewall.user中,则每次启动后firewall就会添加进入规则当中。

而且这样添加后,在搜索引擎中也不能够出现该字段,否则不能进行相关搜索。

必须把规则放入FORWARD链中,因为FORWARD是路由器进行转发的中心部分。

当然也可以这样写:

iptables -I FORWARD -s www.xxxx.com -m state --state NEW,RELATED,ESTABLISHED -j DROP

但是可能有问题,首先,一般防火墙会在链接互联网之前就启动,这样域名得不到转化,导致错误。而如果写上ip地址,虽然默认计算机上网是要转化为ip的,但是有一些网站ip有很多个,这样写有问题。不能用

所以经过试验,使用string模块是有效的。但是效率比较低,可能拖慢网速。不知道是不是ipset可以提高效率。

相关推荐:

中兴光猫路由器ZXV10 H108L怎么设置网络最好?

无线路由器级联怎么设置?两个路由器级联的教程

小米路由器DNS地址可以修改吗?小米路由器设置DNS地址的教程

你可能感兴趣的:(openwrt路由器怎么使用iptables进行域名过滤?)