5154

Good Luck To You!

centos 屏蔽某个ip

在CentOS系统中,屏蔽特定IP地址是一项常见的安全管理操作,可以有效防止恶意访问或未授权的连接,无论是通过防火墙工具还是系统自带的配置文件,管理员都能灵活实现这一目标,以下是几种常用的屏蔽方法及其操作步骤,供不同场景下的需求选择。

centos 屏蔽某个ip

使用iptables屏蔽IP地址

iptables是Linux系统中经典的防火墙工具,功能强大且配置灵活,在CentOS 7及以下版本中,默认使用iptables作为防火墙解决方案,要屏蔽某个IP地址,首先需要检查iptables的当前规则链,确保操作不会影响现有配置。

执行以下命令查看现有规则:

sudo iptables -L -n -v  

若需屏蔽特定IP(例如192.168.1.100),可以使用以下命令:

sudo iptables -I INPUT -s 192.168.1.100 -j DROP  

-I INPUT表示插入到INPUT链的顶部,-s指定源IP地址,-j DROP表示丢弃数据包,为使规则永久生效,需保存iptables配置:

sudo service iptables save  
sudo systemctl restart iptables  

使用firewalld屏蔽IP地址

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,其支持动态规则更新,无需重启服务即可生效,屏蔽IP时,需先将目标IP添加至rich规则或直接使用zone配置。

以下是通过rich规则屏蔽IP的示例:

centos 屏蔽某个ip

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'  

执行后重新加载防火墙配置:

sudo firewall-cmd --reload  

若需临时屏蔽(不保存至重启后),可省略--permanent参数。

通过hosts.deny或hosts.allow文件控制访问

对于基于TCP Wrappers的服务(如SSH、FTP等),可通过修改/etc/hosts.deny/etc/hosts.allow文件实现IP访问控制,编辑hosts.deny文件,添加以下内容:

sshd: 192.168.1.100  

这将阻止该IP通过SSH连接服务器,若需同时允许其他IP,可在hosts.allow文件中明确指定允许的地址范围。

使用fail2ban动态封禁恶意IP

fail2ban是一个基于日志分析的入侵防御工具,可自动检测 repeated failed login attempts 并动态封禁IP,需先安装fail2ban:

sudo yum install fail2ban -y  

配置/etc/fail2ban/jail.local文件,定义监控的日志文件和封禁规则,针对SSH服务的配置示例:

centos 屏蔽某个ip

[sshd]  
enabled = true  
maxretry = 3  
bantime = 3600  
findtime = 600  

保存后重启fail2ban服务:

sudo systemctl restart fail2ban  

验证屏蔽效果

无论采用哪种方法,均可通过以下命令验证IP是否已被屏蔽:

sudo iptables -L -n -v | grep 192.168.1.100  

或使用firewall-cmd --list-rich-rules检查firewalld规则,尝试从目标IP发起连接,确认是否被拒绝访问。

注意事项

  1. 备份配置:修改防火墙规则前,建议备份当前配置,避免误操作导致服务中断。
  2. 测试环境验证:在生产环境应用前,先在测试机验证规则的正确性。
  3. 日志监控:定期检查防火墙日志,确保屏蔽策略未误封合法IP。

相关问答FAQs

Q1: 如何查看当前已屏蔽的IP列表?
A1: 根据使用的防火墙工具不同,查看方式有所区别,若使用iptables,执行sudo iptables -L -n | grep DROP;若使用firewalld,则运行sudo firewall-cmd --list-rich-rules,通过sudo cat /var/log/secure可查看SSH登录失败日志,结合fail2ban的日志(/var/log/fail2ban.log)确认动态封禁的IP。

Q2: 如何解除已屏蔽的IP地址?
A2: 解除屏蔽需根据之前采用的工具反向操作,若通过iptables屏蔽,执行sudo iptables -D INPUT -s 192.168.1.100 -j DROP后保存规则;若使用firewalld,运行sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'并重载配置,对于hosts.deny文件,直接删除对应行即可。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.