首页 > 运维 > linux运维 > 正文

Linux 安全:如何防御 SYN Flood 攻击 (iptables + conntrack)

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-11-22 22:29:03
原创
241人浏览过
SYN Flood攻击可通过iptables和conntrack有效缓解。1. 限制每IP并发连接数,使用connlimit模块阻止超过阈值的SYN请求;2. 利用hashlimit控制单位时间内新连接速率,防止突发流量耗尽资源;3. 启用tcp_syncookies、调整synack重试次数和max_syn_backlog提升系统级防护;4. 结合recent模块封禁频繁异常IP,配合日志记录实现动态拦截。需确保nf_conntrack模块加载,规则顺序正确,阈值根据业务合理设置,从而在无硬件支持下显著增强防御能力。

linux 安全:如何防御 syn flood 攻击 (iptables + conntrack)

SYN Flood 是一种常见的 DDoS 攻击方式,攻击者通过大量伪造的 TCP SYN 请求耗尽服务器的连接资源,导致正常用户无法建立连接。在 Linux 系统中,结合 iptables 和 conntrack 模块可以有效缓解此类攻击。以下是具体防御方法。

1. 限制每 IP 的并发连接数

使用 conntrack 跟踪连接状态,配合 iptables 限制每个客户端 IP 建立的并发连接数量,防止单个源发起大量连接。

示例规则:

iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 50 -j REJECT --reject-with tcp-reset

说明:对发起新 TCP 连接(SYN 包)的源 IP,若其当前并发连接数超过 50,则拒绝并返回 TCP RST 包。数值可根据实际业务调整,如 Web 服务一般用户不会同时建立上百个连接。

2. 限制单位时间内的新连接速率

使用 iptables 的 hashlimit 模块控制每个 IP 在一定时间内可建立的新连接数,抵御短时间爆发式请求。

iptables -A INPUT -p tcp --syn -m hashlimit \ --hashlimit-name syn_flood \ --hashlimit-mode srcip \ --hashlimit 3/sec \ --hashlimit-burst 10 \ -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP

说明:允许每个源 IP 每秒最多发起 3 个新的 SYN 请求,突发允许最多 10 个。超出阈值的 SYN 包将被丢弃。注意规则顺序,先 ACCEPT 再 DROP,确保逻辑正确。

Hour One
Hour One

AI文字到视频生成

Hour One 37
查看详情 Hour One

3. 启用系统级防护参数(辅助)

虽然不属于 iptables/conntrack,但合理配置内核参数能增强整体抗性:

  • 开启 SYN Cookies:防止半开连接表溢出
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  • 减少 SYN 超时时间
    echo 30 > /proc/sys/net/ipv4/tcp_synack_retries
  • 增大连接队列容量(适用于高流量服务):
    echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog

4. 封禁异常连接行为的 IP(可选)

结合日志和脚本,识别频繁触发限速规则的 IP,并临时加入黑名单

iptables -A INPUT -m recent --name BADIP --rcheck --seconds 3600 --hitcount 5 -j DROP

配合前面规则记录异常 IP:

iptables -A INPUT -p tcp --syn -m hashlimit ... -j LOG --log-prefix "SYN FLOOD: " iptables -A INPUT -p tcp --syn -m recent --name BADIP --set -j DROP

基本上就这些。iptables + conntrack 提供了灵活且高效的防御机制,关键在于根据实际流量特征设置合理的阈值。配合系统参数调优,可在不依赖外部硬件的情况下显著提升服务器抗 SYN Flood 能力。不复杂但容易忽略细节,比如规则顺序和模块加载。确保 nf_conntrack 模块已加载(modprobe nf_conntrack),否则相关匹配将失效。

以上就是Linux 安全:如何防御 SYN Flood 攻击 (iptables + conntrack)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号