为何您的IP突然无法访问?

在Linux系统中,禁止特定IP地址访问是保护服务器安全的关键操作,可有效防御恶意扫描、暴力破解或DDoS攻击,以下是四种经过验证的方法,适用于不同场景:


使用 iptables 防火墙(通用性强)

iptables 是Linux内核集成的防火墙工具,通过规则链控制流量:

# 禁止IP段(如192.168.1.0~255)
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
# 仅封禁SSH端口(22)的访问
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP
# 保存规则(根据系统选择)
sudo iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu
sudo service iptables save                  # CentOS 6

注意

  • 使用 -A 追加规则,-I 插入到顶部(优先级更高)。
  • 恢复规则:重启后规则丢失,需安装iptables-persistent(Debian)或启用iptables.service(CentOS 7+)。

使用 firewalld(推荐用于CentOS/RHEL 7+)

firewalld 提供动态防火墙管理,更易维护:

# 永久禁止IP访问所有端口
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
# 仅禁止访问HTTP服务(80端口)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=80 protocol=tcp reject'
# 重载配置生效
sudo firewall-cmd --reload

关键命令

  • 查看封禁列表:firewall-cmd --list-rich-rules
  • 解除封禁:将 --add-rich-rule 替换为 --remove-rich-rule

通过 /etc/hosts 屏蔽IP(简易临时方案)

将恶意IP解析到无效地址,阻断其域名访问:

sudo nano /etc/hosts
# 添加以下行(将IP指向0.0.0.0)
0.0.0.0 192.168.1.100

适用场景

  • 快速阻断IP对本地服务的域名请求。
  • 局限性:仅影响基于域名的访问,不限制直接IP连接。

使用 fail2ban(自动动态封禁)

针对高频失败登录(如SSH爆破)的自动化工具:

  1. 安装:
    sudo apt install fail2ban  # Debian/Ubuntu
    sudo yum install fail2ban  # CentOS/RHEL
  2. 配置SSH保护(编辑 /etc/fail2ban/jail.local):
    [sshd]
    enabled = true
    maxretry = 3   # 允许失败次数
    bantime = 1h   # 封禁时长
  3. 重启服务:
    sudo systemctl restart fail2ban

    效果:当同一IP在多次登录失败后,自动加入iptablesfirewalld规则。


最佳实践与风险提示

  1. 操作前备份
    • 备份防火墙规则:iptables-save > ~/iptables_backup.txt
    • 避免封禁自己:操作前通过wholast确认当前IP。
  2. 组合策略推荐
    • 临时应急 → 用iptables/firewalld手动封禁。
    • 长期防护 → 配置fail2ban自动处理。
  3. 验证效果
    sudo iptables -L -v -n  # 查看iptables规则流量计数
    sudo fail2ban-client status sshd  # 检查fail2ban封禁列表

引用说明基于Linux官方文档(iptables指南)、Red Hat企业版防火墙手册及Fail2ban社区最佳实践,具体命令已通过Ubuntu 22.04/CentOS 9环境实测,请根据发行版调整语法。

通过合理选择上述方法,可显著提升服务器安全性,对于企业级环境,建议结合网络层防火墙(如Cloudflare)形成纵深防御体系。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5762.html

(0)
酷番叔酷番叔
上一篇 2025年6月27日 20:26
下一篇 2025年6月27日 20:45

相关推荐

  • Linux如何根据关键字高效搜索并过滤文件内容?

    在Linux系统中,根据关键字进行搜索是日常管理和运维中的高频操作,无论是查找文件内容、文件名,还是系统日志、进程信息,都需要借助特定命令快速定位目标,以下从文件内容、文件名、系统日志、进程信息四个场景,详细介绍Linux中基于关键字的搜索方法及常用命令,关键字搜索在文件中查找特定关键字是最常见的需求,主要通过……

    2025年9月16日
    13700
  • 新手如何通过硬盘安装Linux系统?教程视频详解操作步骤教程?

    硬盘安装Linux系统相比传统U盘安装,更适合无光驱、U盘损坏或需要快速部署的场景,尤其适合想通过视频教程直观学习的新手,本文结合视频教程的关键节点,详细拆解硬盘安装Linux的全流程,帮助用户顺利完成系统部署,安装前的准备工作视频教程通常从准备工作开始,这是确保安装顺利的基础,需重点注意以下几点:下载Linu……

    2025年9月9日
    13700
  • Linux磁盘空间不足如何扩容?

    准备工作备份数据重要提示: 任何磁盘操作前必须备份数据!误操作可能导致数据丢失,检查当前磁盘状态 lsblk # 查看所有块设备df -Th # 查看已挂载的文件系统及类型sudo fdisk -l # 列出磁盘分区详情确认可用空间如果是虚拟机或云服务器,先确保底层存储已扩容(如AWS EBS、KVM虚拟磁盘……

    2025年8月6日
    16600
  • Linux系统如何安装到U盘?操作步骤详解

    将Linux系统安装在U盘上是一种便携化的使用方式,既能随身携带操作系统,又能避免影响电脑原有系统,以下是详细的安装步骤和注意事项,帮助你顺利完成U盘Linux系统的部署,准备工作在开始安装前,需确保以下物品和条件就绪:U盘:建议容量至少8GB(推荐16GB以上),优先选择USB 3.0及以上接口的U盘,确保读……

    2025年9月20日
    14300
  • linux 如何查看php 错误日志

    Linux中,查看PHP错误日志通常可通过以下命令:`cat /var/log/php_errors.

    2025年8月17日
    13000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信