CentOS服务器配置防火墙黑名单有三种主流方式:1.推荐使用firewalld富规则(持久可靠、支持IPv4/IPv6);2.可选iptables(需停用firewalld并手动保存规则);3.轻量级/etc/hosts.deny(仅限tcpwrappers服务如sshd)。

firewalld 富规则(推荐,持久可靠)
这是 CentOS 7+ 官方推荐方式,规则可永久保存、支持 IPv4/IPv6、与服务管理集成度高。
- 确保 firewalld 正在运行:sudo systemctl start firewalld && sudo systemctl enable firewalld
- 添加单个 IP 黑名单(如封 203.0.113.25):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.25" reject'
- 封整个网段(如 192.168.5.0/24):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.0/24" reject'
- 立即生效:sudo firewall-cmd --reload
- 查看当前所有规则:sudo firewall-cmd --list-all(注意检查输出中是否含 rich rules)
iptables 直接封禁(兼容旧习惯,需手动保存)
适合熟悉 iptables 的管理员,或需精细控制链路顺序的场景。注意:CentOS 7+ 默认不启用 iptables 服务,启用前需停用 firewalld。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 临时封 IP:sudo iptables -A INPUT -s 203.0.113.25 -j DROP
- 封网段:sudo iptables -A INPUT -s 192.168.5.0/24 -j DROP
- 保存规则(CentOS 7 及以后需安装 iptables-services):sudo yum install iptables-services && sudo service iptables save
- 验证:sudo iptables -L -n | grep DROP
/etc/hosts.deny(简单快捷,仅限 inetd 类服务)
不经过内核 netfilter,只对使用 tcpwrappers 的服务生效(如 sshd、vsftpd、xinetd 管理的服务),配置快、无需重启服务,但覆盖范围有限。
- 编辑文件:sudo vim /etc/hosts.deny
- 添加一行:sshd:203.0.113.25:deny(格式为 服务名:IP:deny)
- 支持多 IP,每行一个;也可写成 sshd:203.0.113.0/24:deny
- 无需重启 sshd,规则即时生效(但新连接会受控,已有连接不受影响)
自动封禁暴力破解 IP(实用增强)
单纯手动加黑名单效率低。建议搭配 fail2ban —— 它能自动解析 auth 日志,识别多次失败登录,并调用 firewalld 或 iptables 封禁。
- 安装:sudo yum install epel-release && sudo yum install fail2ban
- 启用并启动:sudo systemctl enable fail2ban && sudo systemctl start fail2ban
- 默认已监控 sshd,封禁 5 次失败后 10 分钟,可按需调整 /etc/fail2ban/jail.local
- 查看被封 IP:sudo fail2ban-client status sshd

















