iptables+dnsmasq+ipset联合使用配置方法

发布时间 2023-03-22 21:08:57作者: 清风6661

iptables+dnsmasq+ipset联合使用配置方法

1、安装dnsmasq

1.1yum install dnsmasq

查看dnsmasqipset的支持

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