iptables+dnsmasq+ipset联合使用配置方法
iptables+dnsmasq+ipset联合使用配置方法
1、安装dnsmasq
1.1yum install dnsmasq
查看dnsmasq对ipset的支持
Dnsmasq -v
1.2 dnsmasq配置
前两句的意思是将所有.com和.hk结尾的域名请求都发往OpenDNS的服务器,端口5353,这样可以防止ISP和GFW的一些域名污染,防止请求的页面被误导或者页面上出现莫名其妙的广告
最后一行是指将yahoo.com和google.com的域名解析IP结果存储到vpn和search的ipset结果中,准备交给iptables识别和转发。
2、ipset安装配置
Yum install ipset
Ipset list 查询所有列表
Ipset create wlist hash:net 建立列表
通过dnsmasq配置文件/etc/dnsmasq.d中的配置文件,建立与ipset列表的关联,再使用nslookup 查询域名
3、安装iptables
3.1 Yum install iptables
注意检查主机已经使用的防火墙 systemctl status firewalld 和 systemctl status ufw 如果不存在其它防火墙,则直接打开iptables防火墙,如果其它防火墙已经启动,先关闭其它防火墙
Systemctl stop firewalld
Systemctl stop ufw
Systemctl disable firewalld
Systemctl disable ufw
3.2 设置防火墙规则
iptables -A OUTPUT --proto tcp -m multiport --dport 80,443 -m set --match-set wlist dst -j DROP
这是一条阻止访问的防火墙规则 匹配TCP协议 端口号80,443 和前面wlist配置列表中的地址阻止访问。
防火墙使用方法请参考:
https://blog.csdn.net/weixin_38166318/article/details/127344897
注意:安装完dnsmasq,并启动后需要修改/etc/resolv.conf文件,使dns请求经过本机dnsmasq解析,才能正确获取ipset list