防火墙阻止的不是 IP 地址,而是 DNS 名称

防火墙阻止的不是 IP 地址,而是 DNS 名称

系统:CentOS 7 我注意到我的服务器上一些我阻止的 IP 地址实际上并没有被阻止,而是继续保持连接。我开始查看 iptables 级别并发现了一个奇怪的事情。在某些规则中,地址不是通过 IP 地址输入到拒绝中的,而是通过 DNS 名称输入的。我尝试检查这一点并阻止一个 IP 地址,结果 iptables 的规则规定阻止此 IP 地址的 DNS 名称 可能是什么问题?

我像这样阻止:

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address="Х.Х.Х.Х" reject" && firewall-cmd --reload

结果在iptables中出现了如下规则:

REJECT all -- ec2-Х-Х-Х-Х.eu-central-1.compute.amazonaws.com anywhere reject-with icmp-port-unreachable

答案1

解决问题的方法是使用 ipset 安装

# yum install ipset

创建一个新的 ipset 并将其放置在放置区中

# firewall-cmd --permanent --new-ipset=netban --type=hash:net --option=maxelem=1000000 --option=family=inet --option=hashsize=4096
# firewall-cmd --permanent --zone=drop --add-source=ipset:netban

禁止IP

# firewall-cmd --ipset=netban --add-entry=Х.Х.Х.Х/32
# firewall-cmd --reload

相关内容