iptables基于域名的访问控制访问限定网站
需求分析:
在实际的生产环境中,比如超市、商场、便利店等,POS机相关的支付或者牵扯到金钱相关的设备,是不允许上网的。连接用于达到支付的目的。但是局域网内的网络设备只能放行某些ip,提供服务的厂商至提供域名的服务.
这样就需要这些POS设备访问指定的域名来完成支付,其他的域名屏蔽掉,不允许它访问。
解决方案:
dnsmasq+ipset+iptables
iptables一般只能对ip的访问控制,如果做域名控制,iptables会自动解析成IP写入到iptables规则中。
dnsmasq:dns服务器,这里的作用,一个是做dns转发,本身不提供dns解析功能。二是将域名解析到ip自动添加到ipset的表中
ipset:作为iptables和dnsmasq的中转,一个用来记录dnsmasq解析出来的IP,二是iptables使用ipset的表来控制访问权限
设备信息:
主机名 系统 ip
转发设备 centos7_x64 10.8.0.87
验证设备 windows 10 10.8.1.97
网关服务器配置:
一、安装dnsmasq
wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.70.tar.gz
tar zxvf dnsmasq-2.70.tar.gz
cd dnsmasq-2.70
make install
查看dnsmasq是否支持ipset
配置dnsmasq
将.com结尾的域名转发到10.8.0.87 DNS服务器解析,hao123.com与taobao.com的解析的ip记录到dblist的ipset表中。
如果需要添加解析的域名给/后继续添加即可。
二、ipset配置
安装ipset
yum install ipset -y
创建dblist表
members对应的IP就是域名解析的ip,如果members为空是因为还没有通过dnsmasq请求过hao123.com与taobao.com
三、启动服务
dnsmasq -C /etc/dnsmasq.conf
四、配置转发
vi /etc/sysctl.conf
sysctl -p
五、防火墙配置
iptables删除默认配置
iptables配置默认拒绝所有转发
iptables -P FORWARD DROP
iptables开放报名单:允许10.8.1.97用户访问dblist中的地址,而dblist存放的是hao123.com与taobao.com地址,所以这些地址是可以访问到的。
允许整个10.8.1.0/24网段访问白名单域名
六、用户端设置