温馨提示×

Ubuntu防火墙能否自定义规则集

小樊
39
2025-12-06 19:06:46
栏目: 智能运维

Ubuntu防火墙自定义规则集指南

概览 可以,Ubuntu 的防火墙支持自定义规则集,既可通过UFW的高级配置与规则文件进行精细化控制,也可直接使用nftables编写完整的规则集。UFW 适合大多数场景,提供 before/after 规则钩子与可编辑的配置文件;nftables 则提供底层的完全自定义能力,适合复杂策略与高性能需求。

使用 UFW 自定义规则

  • 设置默认策略与基础放行
    • 推荐默认:sudo ufw default deny incomingsudo ufw default allow outgoing
    • 放行服务/端口:sudo ufw allow ssh(或 sudo ufw allow 22)、sudo ufw allow 80/tcpsudo ufw allow 443/tcp
  • 按来源、端口、协议、接口精细化控制
    • 来源 IP/子网:sudo ufw allow from 203.0.113.103 to any port 3306
    • 特定接口:sudo ufw allow in on eth0 from 203.0.113.102
    • 协议限定:sudo ufw allow 1725/udp
  • 规则排序与限速
    • 指定插入位置:sudo ufw insert 1 allow from 203.0.113.100
    • 防暴力登录:sudo ufw limit from 203.0.113.100 to any port 22 proto tcp
  • 规则持久化、导出/导入与日志
    • 导出/导入:sudo ufw status > rules.txt;在另一台主机 sudo ufw resetsudo ufw restore < rules.txt
    • 日志:sudo ufw logging on,可设为 low/medium/high
  • 高级自定义与配置文件
    • 编辑前置/后置规则:/etc/ufw/before.rules/etc/ufw/before6.rules/etc/ufw/after.rules/etc/ufw/after6.rules
    • 全局配置:/etc/default/ufw(如 IPV6=no 可禁用 IPv6)
    • 规则文件:直接维护 /etc/ufw/user.rules(UFW 管理的用户规则)

使用 nftables 自定义规则

  • 安装与启用
    • 安装:sudo apt update && sudo apt install nftables
    • 启动/开机启用:sudo systemctl start nftablessudo systemctl enable nftables
  • 编写与加载规则集
    • 示例规则文件 myfirewall.nft
      table inet filter {
        chain input {
          type filter hook input priority 0; policy drop;
          ct state established,related accept
          iif lo accept
          ip protocol icmp accept
          tcp dport 22 accept
        }
      }
      
    • 加载:sudo nft -f myfirewall.nft
  • 查看与维护
    • 查看规则集:sudo nft list ruleset
    • 按需修改 myfirewall.nft 后再次加载即可生效

实践建议

  • 变更前先放行关键服务(如 SSH 22/TCP),再切换默认策略为拒绝入站,避免被锁死;远程操作务必谨慎。
  • 使用 ufw status numbered 管理规则顺序与删除;对复杂策略建议用 nftables 统一管理并在变更前备份规则集。
  • 统一启用日志(UFW 的 /var/log/ufw.log),定期审计开放端口与规则是否符合安全策略。

0