如何在Linux上配置高可用的防御DDoS攻击

来源:苹果APP网作者:北京网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上配置高可用的防御DDoS攻击》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置高可用的防御DDoS攻击》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中配置高可用的DDoS防御方案,需要从内核参数调优、防火墙规则配置、服务限流等多个维度共同入手,构建多层次的防护体系,确保服务器在遭受攻击时仍能正常提供服务。

如何在Linux上配置高可用的防御DDoS攻击

内核参数优化

首先需要通过sysctl调整内核网络相关参数,提升系统抗DDoS攻击的基础能力,避免内核资源被攻击流量快速耗尽。编辑/etc/sysctl.conf文件添加以下配置:

# 开启SYN Cookie防护,抵御SYN洪水攻击
net.ipv4.tcp_syncookies = 1
# 增大半连接队列长度
net.ipv4.tcp_max_syn_backlog = 8192
# 减少SYN重试次数
net.ipv4.tcp_synack_retries = 2
# 开启ICMP广播防护
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 忽略错误的ICMP响应
net.ipv4.icmp_ignore_bogus_error_responses = 1
# 限制单个源IP的并发连接数
net.ipv4.tcp_max_tw_buckets = 5000
# 开启反向路径过滤,防止IP伪造
net.ipv4.conf.all.rp_filter = 1

配置完成后执行sysctl -p命令让参数生效。

iptables防火墙规则配置

使用iptables设置流量过滤规则,拦截异常攻击流量,同时保证正常业务流量可以正常通过。以下是常用的防御规则:

# 清除现有规则
iptables -F
iptables -X

# 设置默认策略,INPUT链默认丢弃,OUTPUT链默认允许
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许本地回环接口流量
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接和相关连接通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 限制单个源IP每秒的新连接数,超过10个则丢弃,抵御连接洪水攻击
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 10/second --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -m limit --limit 10/second --limit-burst 20 -j ACCEPT

# 限制ICMP请求频率,每秒最多1个,防止ICMP洪水
iptables -A INPUT -p icmp -m limit --limit 1/second -j ACCEPT

# 拦截异常长度的TCP包
iptables -A INPUT -p tcp -m length --length 0:64 -j DROP

# 保存规则,不同系统保存命令可能有差异,以下为CentOS示例
service iptables save

高可用架构补充配置

单台服务器的防御能力有限,结合高可用架构可以进一步提升整体防护效果。可以使用Keepalived实现多节点冗余,当主节点遭受攻击失效时自动切换到备用节点。

首先需要安装Keepalived,然后配置主备节点的健康检查规则,示例主节点配置如下:

global_defs {
   router_id LVS_DEVEL_1
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.0.100
    }
    # 健康检查,检测iptables服务和业务端口是否正常
    track_script {
        chk_iptables
        chk_service
    }
}

# 定义健康检查脚本
vrrp_script chk_iptables {
    script "/usr/bin/systemctl is-active iptables > /dev/null"
    interval 2
    weight -20
}

vrrp_script chk_service {
    script "/usr/bin/nc -z 127.0.0.1 80 > /dev/null"
    interval 2
    weight -20
}

规则验证与维护

配置完成后需要验证规则是否生效,可以使用hping3等工具模拟攻击流量测试防御效果:

# 模拟SYN洪水攻击测试,仅在授权环境下使用
hping3 -S -p 80 --flood 192.168.0.1

日常需要定期查看iptables的流量计数和内核日志,根据实际攻击情况调整规则参数,比如调整连接限制阈值、补充新的过滤规则等,确保防御方案持续有效。

Linux高可用DDoS防御iptablessysctl修改时间:2026-07-02 07:09:26

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。