HCRM博客

如何在CentOS 7上屏蔽特定IP地址?

在服务器管理中,屏蔽恶意IP地址是保障网站安全的重要措施之一,CentOS 7作为广泛使用的操作系统,提供了多种方式实现IP屏蔽,本文将详细介绍几种常用方法,并结合实际场景分析适用性,帮助管理员高效应对网络攻击或异常访问。

一、使用iptables屏蔽IP

如何在CentOS 7上屏蔽特定IP地址?-图1
(图片来源网络,侵权删除)

iptables是CentOS 7默认的防火墙工具,通过规则配置可快速屏蔽特定IP。

1、临时屏蔽单个IP

执行以下命令立即生效,但重启后会失效:

  • iptables -A INPUT -s 192.168.1.100 -j DROP

若需屏蔽整个网段,可将IP替换为192.168.1.0/24

2、永久保存规则

为避免重启后规则丢失,需保存配置:

如何在CentOS 7上屏蔽特定IP地址?-图2
(图片来源网络,侵权删除)
  • service iptables save
  • systemctl restart iptables

适用场景:需要快速拦截已知攻击源,适合临时应急或短期屏蔽。

二、通过firewalld管理IP黑名单

若系统使用firewalld(如默认安装的CentOS 7),可通过富规则(rich rules)实现更灵活的控制。

1、添加屏蔽规则

  • firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" reject'

执行后需重载配置:

  • firewall-cmd --reload

2、查看当前规则

如何在CentOS 7上屏蔽特定IP地址?-图3
(图片来源网络,侵权删除)
  • firewall-cmd --list-rich-rules

优势:firewalld支持动态更新,规则管理更直观,适合长期维护复杂策略。

三、利用hosts.deny文件限制访问

对于通过SSH或某些服务发起的攻击,可直接修改/etc/hosts.deny文件:

1、编辑配置文件

  • echo "sshd: 192.168.1.100" >> /etc/hosts.deny

此操作会禁止该IP通过SSH连接服务器。

2、生效范围

此方法仅对支持TCP Wrappers的服务有效(如SSH、FTP)。

注意:修改后无需重启服务,立即生效,适合针对特定服务的精准控制。

四、自动化工具Fail2Ban

对于持续攻击或频繁扫描行为,推荐使用Fail2Ban自动封禁IP。

1、安装与配置

  • yum install epel-release -y
  • yum install fail2ban -y
  • systemctl enable fail2ban

2、自定义监控规则

编辑配置文件/etc/fail2ban/jail.local,例如监控SSH登录失败:

  • [sshd]
  • enabled = true
  • maxretry = 3
  • bantime = 3600

上述配置表示:3次失败登录后,封禁IP 1小时。

核心价值:Fail2Ban通过分析日志自动触发规则,大幅降低人工维护成本。

五、操作注意事项

1、避免误封

屏蔽IP前,建议通过netstat或日志分析确认是否为真实攻击源:

  • netstat -an | grep 192.168.1.100

2、定期清理规则

长期未清理的防火墙规则可能影响性能,可通过脚本定期归档旧日志,或使用工具如iptables-utils管理。

3、多节点同步

若服务器为集群部署,需确保屏蔽规则在所有节点生效,避免攻击者切换IP绕过限制。

个人经验分享

在实际运维中,单一方法往往难以应对复杂场景,笔者建议组合使用多种工具:

短期应急:iptables快速响应;

长期防护:Fail2Ban+firewalld实现自动化;

精准控制:结合hosts.deny限制特定服务。

定期审查防火墙日志(路径/var/log/iptables.log/var/log/firewalld)可发现潜在风险,若遇到大规模DDoS攻击,建议联动CDN或云服务商的高防系统,从网络层缓解压力。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/29257.html

分享:
扫描分享到社交APP
上一篇
下一篇