首页 > 网管 > 路由交换 > 正文

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

2020-06-22 13:37:30
字体:
来源:转载
供稿:网友
openwrt路由器怎么使用iptables进行域名过滤?域名过滤主要是怕孩子玩游戏或者上不好的网站,所以将一些网址关键字段给封了,这样即使电脑有网也没办法登陆哪些被封的网站,下面我们来看看设置方法
 
 

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

1、浏览器登陆192.168.1.1

openwrt,路由器,iptables,域名过滤

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

openwrt,路由器,iptables,域名过滤

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

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

openwrt,路由器,iptables,域名过滤

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

状态=>防火墙

按下重启防火墙

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

openwrt,路由器,iptables,域名过滤

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

openwrt,路由器,iptables,域名过滤

openwrt,路由器,iptables,域名过滤

复制内容到剪贴板
  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可以提高效率。



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表