温馨提示×

ubuntu防火墙连接限制

小樊
40
2025-12-08 18:32:55
栏目: 智能运维

Ubuntu 防火墙连接限制实用指南

一、UFW 快速限速与访问控制

  • 启用与默认策略
    • 启用:sudo ufw enable
    • 默认策略:sudo ufw default deny incomingsudo ufw default allow outgoing
  • 基础放行
    • 放行端口:sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcp
  • 速率限制(防暴力破解)
    • 对 SSH 启用限速:sudo ufw limit sshsudo ufw limit 22/tcp
    • 对指定来源限速:sudo ufw limit from 203.0.113.100 to any port 22 proto tcp
    • 触发阈值说明:UFW 的 limit 规则默认在 30 秒内超过 6 次新连接后触发拒绝(可缓解暴力登录,但对大流量 DoS 仅作辅助手段)。
  • 按来源、端口、接口精细化
    • 仅允许某 IP 访问某端口:sudo ufw allow from 203.0.113.103 to any port 3306
    • 允许某子网访问数据库:sudo ufw allow from 203.0.113.0/24 to any port 5432
    • 仅在某接口放行:sudo ufw allow in on eth1
    • 禁止出站 SMTP:sudo ufw deny out 25
  • 规则管理
    • 查看带编号规则:sudo ufw status numbered
    • 按编号删除:sudo ufw delete <编号>

二、iptables 细粒度控制

  • 限制新连接速率(SYN 洪水缓解)
    • 每分钟最多 10 个新连接:iptables -A INPUT -p tcp --syn -m limit --limit 10/min -j ACCEPT
    • 超出速率的 SYN 丢弃:iptables -A INPUT -p tcp --syn -j DROP
  • 并发连接数限制(每个来源)
    • 每个 IP 最多 5 个并发连接:iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j DROP
  • 黑名单与子网封禁
    • 封禁单个 IP:iptables -A INPUT -s 1.2.3.4 -j DROP
    • 封禁整个网段:iptables -A INPUT -s 1.2.3.0/24 -j DROP
  • 规则持久化
    • 安装持久化工具:sudo apt-get install iptables-persistent
    • 保存规则:sudo netfilter-persistent save(重启后自动恢复)。

三、fail2ban 联动自动封禁

  • 安装与启用
    • 安装:sudo apt-get install fail2ban
    • 启动与开机自启:sudo systemctl start fail2bansudo systemctl enable fail2ban
  • 基础配置示例(/etc/fail2ban/jail.local)
    • 全局:bantime = 600findtime = 600maxretry = 3
    • SSH 段:enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 3
  • 说明:fail2ban 会基于日志自动封禁恶意来源 IP,适合与 UFW/iptables 限速配合使用。

四、实战最小配置示例

  • 目标:仅放通 SSH(22)HTTP(80)HTTPS(443);对 SSH 限速;仅允许办公网访问数据库;禁止服务器对外发信。
  • 步骤
    • 设置默认策略并启用
      • sudo ufw default deny incoming
      • sudo ufw default allow outgoing
      • sudo ufw enable
    • 放行 Web 与限速 SSH
      • sudo ufw allow 80/tcp
      • sudo ufw allow 443/tcp
      • sudo ufw limit ssh
    • 数据库访问控制
      • sudo ufw allow from 203.0.113.0/24 to any port 3306
      • sudo ufw deny 3306(其余来源一律拒绝)
    • 禁止出站 SMTP
      • sudo ufw deny out 25
    • 复核
      • sudo ufw status numbered

五、注意事项与排错

  • 远程操作务必先放行 SSH,再启用 UFW,避免被锁死:sudo ufw allow sshsudo ufw allow 22/tcp

  • 规则顺序很重要,UFW 按顺序匹配;复杂场景用 sudo ufw status numbered 查看并按编号调整或删除:sudo ufw delete <编号>

  • 限速仅能缓解暴力破解与小规模 DoS,面对大流量攻击应结合上游清洗/高防、WAF、CDN 等综合方案。

  • 若使用 iptables 自定义规则,记得做持久化:sudo apt-get install iptables-persistentsudo netfilter-persistent save,否则重启后规则会丢失。

0