Linux网络攻击防御高级指南:结合 iftopiptables(含规则审查)

网络攻击,特别是DDoS(分布式拒绝服务)攻击,可能导致服务器带宽资源枯竭,严重影响服务稳定性。本高级指南将引导您如何使用 iftopiptables 来监控网络流量、有效防御这些攻击,并进行规则审查以确保策略有效性。

监控网络流量:使用 iftop

  1. 安装 iftop:
    如果未安装 iftop,请按照先前的步骤安装。
  2. 启动 iftop 监控:
    使用以下命令来监控网络流量:

    sudo iftop -n -B

    选项 -n 防止 iftop 将IP解析为主机名,-B 显示字节而非位。

  3. 分析 iftop 输出:

    • 左侧列显示本地IP。
    • 中间箭头<==>)指示流量方向。
    • 右侧列展示交互的远程IP地址。
    • 最右侧提供实时流量数据。

关注流量异常的连接,特别是那些带宽使用异常高的。

防御策略:设置 iptables 规则

  1. 针对恶意IP封禁:
    根据 iftop 的结果,对疑似攻击的IP地址或段设置封禁规则。例如,封禁IP 1.2.3.4

    sudo iptables -I INPUT -s 1.2.3.4 -j DROP
  2. 阻止对特定IP的出站流量:
    如果攻击导致服务器向特定IP发送大量数据,阻止这些出站流量:

    sudo iptables -A OUTPUT -d 1.2.3.4 -j DROP
  3. 封禁IP段:
    封禁一个IP段,例如 1.2.3.0/24

    sudo iptables -I INPUT -s 1.2.3.0/24 -j DROP
  4. 移除特定的封禁规则:
    解除对 1.2.3.4 的封禁:

    sudo iptables -D INPUT -s 1.2.3.4 -j DROP
  5. 清空所有 iptables 规则:
    清除所有规则,需谨慎操作:

    sudo iptables -F
  6. 查看当前规则:
    查看 iptables 规则,并特别关注封禁规则:

    sudo iptables -L -v

    这将详细列出所有规则,包括已封禁的IP地址。

  7. 高级防御设置:

    • 防止IP碎片攻击,设置每秒接受的碎片数量:

      sudo iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
    • 控制ICMP包流量,以防ICMP洪水攻击:

      sudo iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

规则审查与管理

1.动态更新规则:

要查看 iptables 当前封禁了哪些 IP 地址,您可以使用 iptables 命令来列出所有的规则,其中包括了所有的封禁(DROP)规则。以下是查看这些信息的步骤:

1.1 查看所有规则: 这个命令将列出 iptables 的所有规则,包括封禁的 IP 地址:

sudo iptables -L

-L 参数意味着列出所有规则。

1.2. 查看详细信息: 为了获得更详细的信息(包括封禁的具体 IP 地址),可以使用 -v(详细)选项:

sudo iptables -L -v

1.3. 只看封禁规则: 如果您只对封禁(DROP)的规则感兴趣,可以通过管道命令 grep 来过滤输出:

sudo iptables -L -v | grep DROP

这些命令将显示所有 iptables 规则,并高亮显示那些具有 DROP 动作的规则。在输出结果中,-s 后面跟着的 IP 地址或 IP 地址段就是当前被封禁的地址

  1. 动态更新规则:
    根据网络流量的变化和安全日志,及时更新 iptables 规则。这可能包括移除不再需要封禁的 IP 或添加新的威胁 IP。
  2. 日志记录:
    开启 iptables 日志记录功能,对封禁的尝试进行记录,以便于事后分析。使用以下命令:

    sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables INPUT denied: " --log-level 7
    sudo iptables -A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "iptables OUTPUT denied: " --log-level 7
  3. 定期审计:
    定期审计 iptables 规则和日志,确保防御策略与当前的网络安全态势相符。
  4. 备份规则:
    定期备份当前的 iptables 规则集,以防需要恢复到之前的状态:

    sudo iptables-save > /path/to/your/iptables-backup.txt
  5. 自动化脚本:
    考虑编写脚本或使用现有的网络管理工具来自动化这一过程,特别是对于大型或动态的网络环境。

应急响应

  1. 应急计划:
    制定并实施一个网络攻击应急响应计划,确保在发生严重攻击时,可以快速而有效地应对。
  2. 故障恢复:
    准备好网络故障恢复策略,以便在网络攻击导致的服务中断后,快速恢复服务。

安全最佳实践

  1. 定期更新:
    定期更新系统和安全软件,包括 iptablesiftop,以确保它们包含最新的安全特性和修复。
  2. 最小权限原则:
    运行网络服务时,始终遵循最小权限原则,减少攻击面。

总结

本高级指南提供了结合 iftopiptables 的方法,不仅用于监控和防御网络攻击,还包括了规则审查、应急响应和安全最佳实践。定期的监控、审计和更新对于维护网络安全至关重要。在操作过程中,务必谨慎,避免误封合法流量,并保证服务的持续稳定运行。

Last modification:December 9, 2023
如果觉得这篇技术文章对你有用,请随意赞赏