温馨提示×

ubuntu防火墙访问控制

小樊
35
2025-11-23 01:02:47
栏目: 智能运维

Ubuntu 防火墙访问控制速查

一 基础准备与默认策略

  • 检查与安装:查看是否可用命令为ufw --version;未安装可执行sudo apt update && sudo apt install ufw
  • 启用前务必先放行管理通道(如SSH 22/TCP),避免远程被断开:
    • 允许 SSH:sudo ufw allow sshsudo ufw allow 22/tcp
  • 设置默认策略(推荐):sudo ufw default deny incoming(拒绝入站)、sudo ufw default allow outgoing(允许出站)。
  • 启用防火墙:sudo ufw enable(如提示可能中断现有 SSH 连接,请确认已放行 SSH 规则后再继续)。
  • 常用查看:sudo ufw status(简要)、sudo ufw status verbose(详细)、sudo ufw status numbered(带编号便于删除)。

二 常见访问控制场景与命令

  • 按端口/协议放行:
    • 放行单端口:sudo ufw allow 80/tcp;放行 UDP 可写 sudo ufw allow 53/udp;仅写端口(如sudo ufw allow 53)通常同时放行 TCP/UDP。
    • 放行端口范围:sudo ufw allow 8000:9000/tcp(可分别指定 TCP/UDP)。
  • 按来源 IP/网段控制:
    • 允许某 IP 访问所有端口:sudo ufw allow from 203.0.113.10
    • 允许某网段访问某端口:sudo ufw allow from 192.168.1.0/24 to any port 3306
    • 拒绝某网段访问某端口:sudo ufw deny proto tcp from 10.0.0.0/8 to any port 22
  • 按接口/方向控制:
    • 仅对指定网卡入站放行:sudo ufw allow in on eth1 to any port 443
    • 出站限制示例:sudo ufw deny out to 203.0.113.0/24(谨慎,避免把自己封死)
  • 拒绝与限速:
    • 拒绝但不回包:sudo ufw deny 23/tcp;主动拒绝并回 ICMP/拒绝包:sudo ufw reject 23/tcp
    • 防暴力破解(对 SSH):sudo ufw limit sshsudo ufw limit 22/tcp(短时间内多次失败将临时拒绝)。

三 规则管理与维护

  • 删除规则:
    • 按规则内容删除:sudo ufw delete allow 22/tcp
    • 按编号删除:先sudo ufw status numbered,再sudo ufw delete <编号>
  • 插入规则到指定位置:sudo ufw insert 1 allow 2222/tcp(将规则插入到第 1 条,优先匹配)
  • 启用/关闭与重载:sudo ufw enable|disablesudo ufw reload
  • 日志与试运行:
    • 开启日志:sudo ufw logging on(或设为 low/medium/high)
    • 试运行(不真正写入):在任意命令前加**–dry-run**
  • 重置:sudo ufw reset(恢复到初始状态,会提示确认)

四 进阶与安全建议

  • 启用 IPv6:编辑**/etc/default/ufw**,将IPV6=yes,然后sudo ufw reload
  • 禁止被 Ping(ICMP):编辑**/etc/ufw/before.rules**,将
    -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
    改为“DROP”,保存后sudo ufw reload
  • 云服务器注意:除本机 UFW 外,还需在云平台的安全组放行相同端口与来源网段,二者需协同一致。
  • 规则顺序与冲突:UFW 按顺序匹配,使用status numbered检查并调整顺序;删除/插入规则时注意影响范围。
  • 备份与恢复:备份**/etc/ufw/user.rules/etc/ufw/user6.rules**,在需要时恢复并reload

五 快速范例 最小化 Web 与 SSH 访问

  • 重置并设定默认策略:
    • sudo ufw reset
    • sudo ufw default deny incoming
    • sudo ufw default allow outgoing
  • 放行管理通道与业务端口:
    • sudo ufw allow ssh(或 sudo ufw allow 22/tcp
    • sudo ufw limit ssh(防暴力)
    • sudo ufw allow httpsudo ufw allow https
  • 可选:仅内网管理
    • sudo ufw delete allow ssh,再sudo ufw allow from 192.168.1.0/24 to any port 22
  • 检查与启用:
    • sudo ufw status numbered
    • sudo ufw enable

0