欢迎光临
我们一直在努力

DDOS 应急响应Linux防火墙 Iptable 使用方式方法

目录

Linux防火墙介绍

1. IPTables

2. 调整防护策略

3. 限速(Rate Limiting)

4. 软件层防护

🌰 实际案例

Linux防火墙基础防御策略

一、基础防护策略

1. 限制单个IP的HTTP请求速率

2. 限制并发连接数

二、高级过滤规则

3. 封禁异常User-Agent

4. 拦截慢速攻击

三、优化与维护

5. 设置白名单

6. 定期清理旧规则

7. 持久化保存配置

⚠️ 注意事项

实际案例分析结合Iptable

一、攻击特征分析(前5分钟)

二、紧急防御配置(8分钟)

1. 快速封禁攻击源IP段

2. HTTP层精细化过滤

3. 全局连接数管控

三、攻击缓解验证(5分钟)

1. 实时监控规则命中情况

2. 业务健康检查

四、事后加固措施(攻击停止后)

1. 规则持久化

2. 构建分层防御体系

📊 案例效果数据

⚠️ 关键注意事项


Linux防火墙介绍

1. IPTables

  • 是Linux系统自带的防火墙工具,用于配置网络数据包的过滤规则(允许/拒绝特定流量)。

  • 功能示例:

    • 封禁恶意IP地址

    • 控制端口访问权限(如仅开放80/443端口)

    • 实现网络地址转换(NAT)


2. 调整防护策略

指通过修改IPTables规则,动态应对攻击行为。例如:

# 封禁特定IP(如攻击源)
iptables -A INPUT -s [攻击IP] -j DROP

# 仅允许特定端口(如Web服务)
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -j DROP  # 拒绝其他所有流量


3. 限速(Rate Limiting)

通过限制连接频率防止资源耗尽攻击(如DDoS):

# 限制同一IP每秒最多10个新连接
iptables -A INPUT -p tcp –syn -m limit –limit 10/s -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP


4. 软件层防护

  • 特点: 在操作系统层面通过软件配置实现防护,灵活性高、成本低,但依赖服务器性能。

  • 典型应用场景:

    • 防御SYN Flood攻击

    • 阻止端口扫描

    • 缓解CC攻击(HTTP请求洪水)


🌰 实际案例

若服务器遭遇DDoS攻击,管理员可能通过以下步骤防御:

  • 分析攻击特征(如高频来源IP/特定协议)

  • 动态更新IPTables规则封禁攻击IP或限制速率

  • 监控流量变化并调整规则策略


  • Linux防火墙基础防御策略

    一、基础防护策略

    1. 限制单个IP的HTTP请求速率

    # 允许每秒最多20个新HTTP连接,超出则丢弃
    iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 20 -j DROP

    # 限制每个IP每秒最多10个HTTP请求(针对短连接攻击)
    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 80 -m state –state NEW -j DROP

    2. 限制并发连接数

    # 每个IP最多保持50个HTTP并发连接
    iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT


    二、高级过滤规则

    3. 封禁异常User-Agent

    常见攻击工具使用特殊UA标识(如"X-attacker"):

    # 封禁含特定关键词的请求
    iptables -A INPUT -p tcp –dport 80 -m string –string "User-Agent: X-attacker" –algo bm -j DROP

    4. 拦截慢速攻击

    防御类似Slowloris的攻击(长时间保持不完整连接):

    # 丢弃HTTP头传输时间超过60秒的连接
    iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –set
    iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –update –seconds 60 –hitcount 10 -j DROP


    三、优化与维护

    5. 设置白名单

    避免误封合法IP(如搜索引擎或API客户端):

    # 允许信任IP段(如192.168.1.0/24)无限制访问
    iptables -I INPUT -s 192.168.1.0/24 -p tcp –dport 80 -j ACCEPT

    6. 定期清理旧规则

    # 查看当前规则(确认无冲突)
    iptables -L -n -v

    # 删除旧测试规则(例如删除INPUT链第3条规则)
    iptables -D INPUT 3

    7. 持久化保存配置

    # Debian/Ubuntu
    iptables-save > /etc/iptables/rules.v4

    # CentOS/RHEL
    service iptables save


    ⚠️ 注意事项

    若攻击规模极大(超过1Gbps),建议启用云服务商的流量清洗服务(如AWS Shield/AliCloud Anti-DDoS)。

  • 性能影响:高频率规则匹配可能增加CPU负载,建议在攻击缓解后适当放宽限制

  • 组合防御:结合Web服务器层防护(如Nginx的limit_req模块)效果更佳

  • 监控调整:实时观察日志 /var/log/iptables.log,动态更新封禁阈值


  • 实际案例分析结合Iptable


    一、攻击特征分析(前5分钟)

    通过监控发现异常指标:

    # 查看当前80端口连接数(发现5000+ ESTABLISHED连接)
    netstat -ant | grep ':80 ' | wc -l

    # 统计TOP10源IP(发现3个IP各占30%流量)
    netstat -ant | grep ':80 ' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

    攻击特征:

  • 高频GET/POST请求(300+次/秒/IP)

  • User-Agent包含[Go-http-client/1.1]

  • 请求路径集中在[/api/search]接口


  • 二、紧急防御配置(8分钟)

    1. 快速封禁攻击源IP段

    # 封禁TOP3攻击IP(假设为101.203.74.0/24)
    iptables -I INPUT -s 101.203.74.0/24 -j DROP

    # 设置IP黑名单自动更新(每10分钟拉取最新攻击IP)
    */10 * * * * curl -s https://attacker-ip-list.com/ddos.txt | xargs -I {} iptables -A INPUT -s {} -j DROP

    2. HTTP层精细化过滤

    # 拦截特定User-Agent
    iptables -A INPUT -p tcp –dport 80 -m string –string "Go-http-client/1.1" –algo bm -j DROP

    # 限制/search接口访问频率(每秒5次)
    iptables -A INPUT -p tcp –dport 80 -m string –string "/api/search" –algo bm \\
     -m hashlimit –hashlimit-name search_limit –hashlimit 5/second –hashlimit-burst 10 -j ACCEPT
    iptables -A INPUT -p tcp –dport 80 -m string –string "/api/search" –algo bm -j DROP

    3. 全局连接数管控

    # 限制单个IP最大并发连接数
    iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT

    # 防御SYN Flood(半连接队列保护)
    iptables -N SYN_FLOOD
    iptables -A SYN_FLOOD -m limit –limit 1000/second –limit-burst 2000 -j RETURN
    iptables -A SYN_FLOOD -j DROP
    iptables -A INPUT -p tcp –syn -j SYN_FLOOD


    三、攻击缓解验证(5分钟)

    1. 实时监控规则命中情况

    # 查看规则计数器(观察DROP规则增长速率)
    iptables -L -n -v | grep DROP

    # 流量统计(确认HTTP请求量下降70%+)
    iftop -i eth0 -f 'port 80'

    2. 业务健康检查

    # 测试核心接口响应(返回200为正常)
    curl -I -X GET http://localhost/api/product/123 -H "User-Agent: Mozilla/5.0"


    四、事后加固措施(攻击停止后)

    1. 规则持久化

    # 保存当前生效规则(Debian系)
    iptables-save > /etc/iptables/rules.v4

    # 设置开机自动加载
    echo "pre-up iptables-restore < /etc/iptables/rules.v4" >> /etc/network/interfaces

    2. 构建分层防御体系
    防御层工具配置
    网络层 iptables + Cloudflare Spectrum
    应用层 Nginx limit_req模块 + WAF规则更新
    日志层 部署ELK收集iptables日志,设置自动告警阈值

    📊 案例效果数据

    指标攻击发生时防御生效后降幅
    CPU使用率 98% 45% ▼54%
    HTTP错误率 82% 3% ▼79%
    API响应时间 12s 230ms ▲98%

    ⚠️ 关键注意事项

  • 规则顺序敏感 -I(插入)和-A(追加)的区别:紧急规则需插入到链首

    # 错误示例:封禁IP的规则被后续ACCEPT规则覆盖
    iptables -A INPUT -s 1.2.3.4 -j DROP  # 应改用-I

  • 性能陷阱 避免使用高消耗匹配模块(如string),必要时改用Nginx层过滤

  • 云环境适配 若服务器位于AWS/AliCloud,需同步配置安全组规则:

    # AWS CLI批量封禁IP
    aws ec2 update-security-group-rule-descriptions –group-id sg-xxx \\
     –ip-permissions '[{"IpProtocol": "tcp", "FromPort": 80, "ToPort": 80,
     "IpRanges": [{"CidrIp": "101.203.74.0/24", "Description": "DDoS Block"}]}]'

  • 赞(0)
    未经允许不得转载:171主机测评 » DDOS 应急响应Linux防火墙 Iptable 使用方式方法
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址