为何您的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在多次登录失败后,自动加入iptables或firewalld规则。


最佳实践与风险提示

  1. 操作前备份:
    • 备份防火墙规则:iptables-save > ~/iptables_backup.txt
    • 避免封禁自己:操作前通过who或last确认当前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 中 ld-linux.so 动态链接器如何安装?

    ld-linux.so是Linux系统中的动态链接器(Dynamic Linker),负责在程序运行时加载所需的共享库(.so文件),是程序能够正常运行的核心组件,当系统提示“error while loading shared libraries: ld-linux.so.2”或类似错误时,通常意味着动态链接……

    2025年9月21日
    29800
  • gstore 如何在linux运行

    gstore是一个开源的基于RDF的图数据库管理系统,主要用于存储、查询和管理语义网数据,支持SPARQL查询语言,适用于知识图谱构建、语义检索等场景,在Linux系统上运行gstore需要完成环境准备、安装部署、数据加载和服务启动等步骤,本文将详细介绍具体操作流程,环境准备在安装gstore前,需确保Linu……

    2025年9月23日
    26100
  • Linux系统中如何获取指定进程的准确名称?

    在Linux系统中,获取进程名是系统管理、调试和监控中的基础操作,进程名(Process Name)通常指进程的可执行文件名或用户定义的标识符,用于区分不同类型的进程,本文将详细介绍多种获取进程名的方法,涵盖基础命令、系统文件、专用工具等场景,并对比不同方法的适用场景与优缺点,基础命令法:ps与top/htop……

    2025年9月30日
    27500
  • 如何远程登录Linux系统?方法步骤、工具及常见问题解析

    远程Linux系统的登入是日常运维和开发中的常见操作,主要通过协议工具实现,以下是详细的方法步骤、注意事项及问题解答,帮助不同需求的用户顺利完成远程连接,远程登入Linux系统的基础准备在进行远程连接前,需确保本地客户端与远程Linux系统满足以下条件:网络连通性:本地设备与远程Linux系统处于同一局域网或通……

    2025年10月3日
    25200
  • Linux系统下如何挂载4T硬盘?分区格式化及挂载步骤详解?

    在Linux系统中挂载4TB硬盘需要分步骤进行,涉及硬盘识别、分区、格式化、挂载点配置及开机自动挂载等操作,以下是详细流程:识别硬盘首先需确认系统是否已识别新硬盘,通过lsblk或fdisk -l命令查看所有存储设备:lsblk # 列出所有块设备,显示设备名、大小、挂载点等信息若4TB硬盘未被识别,检查物理连……

    2025年10月8日
    27900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信