iptables 实现域名过滤

1.需求

过滤指定的域名、网站:如www.baidu.com, www.bilibili.com

2.实现方案

方案1:字符串过滤

iptables -A FOWARD -m string --algo kmp --string “bilibili.com” -j DROP

1.需求

过滤指定的域名、网站:如www.baidu.com, www.bilibili.com

2.实现方案

方案1:字符串过滤

iptables -A FOWARD -m string --algo kmp --string “bilibili.com” -j DROP

方案缺点: 需要过滤所有报文,网络速率下降20%~50%

方案2:过滤dns请求报文

通过域名访问网站都需要通过dns解析,即过滤udp.port = 53的报文即可

参考博文:iptables拦截域名_使用iptables封锁对某个域名的DNS查询_文强孙的博客-CSDN博客

iptables -A FOWARD -p udp --dport 53 -m string --string "www.baidu.com" --algo bm -j #请参考博文,和DNS协议

iptables -A FOWARD -p udp --dport 53 -m string --hex-string "|03|www|05|baidu|03|com|" --algo bm -j DROP

iptables -A INPUT -p udp --dport 53 -m string --hex-string "|03|www|05|baidu|03|com|" --algo bm -j DROP

方案缺点: 不能过滤 通过修改hosts 的域名。

3.注意事项

1.LAN PC通过dhcp请求,dns服务器是192.168.1.1,需要过滤INPUT链

2.LAN PC设置静态 DNS服务器223.5.5.5, 8.8.8.8, 需要过滤FORWARD链

3.我的做法是,新建链DNS_FILETER,同时添加到INPUT, FOWARD链中

4.其它问题与思考

1.如何过滤网站的子项,如B站舞蹈区 www.bilibili.com/dance

2.是否有更好的方案,欢迎大家讨论留言。

你可能感兴趣的:(网络,网络安全)