如何使用 nftables 管理防火墙和设置:完整实用指南
آموزش فایروال و nftables برای مدیران سرور و کسانی که به امنیت شبکه اهمیت می‌دهند.

如何使用 nftables 管理防火墙和设置:完整实用指南

本文提供了如何使用 nftables 作为新的 Linux 防火墙和网络安全管理工具的实用说明,并附有实际示例。.
0 股票
0
0
0
0

如何从基础到高级管理防火墙和 nftables?

防火墙管理和设置 nftables 对于任何系统管理员、DevOps工程师或服务器所有者来说,这都是至关重要的。本指南涵盖了从基础到高级场景的技术和操作术语,并提供了可操作的示例和配置文件。.

nftables 的基本概念

nftables 要设计规则集,您需要熟悉某些特定组成部分:

  • 家庭协议族(例如 互联网 用于同时使用 IPv4 和 IPv6,ip、ip6、arp、桥接)。.
  • 桌子:规则容器(例如: 互联网过滤器).
  • :具有钩子、类型(输入、转发、输出)和优先级的规则链。.
  • 规则:条件和操作(接受、丢弃、拒绝、计数、记录)。.
  • 设置/地图用于保存 IP 地址、端口或值的集合,以便快速匹配。.
  • 连接轨道:跟踪连接状态(已建立、相关、新建、无效)。.

为什么选择 nftables?

选择的主要原因 nftables 其中包括:

  • 同时支持 IPv4 和 IPv6 使用家庭 互联网.
  • 性能更佳 以及这种可能性 原子替换 安全加载规则集。.
  • 支持 设置超时地图 适用于高级NAT。.
  • 通过新发行版中的兼容层实现与iptables的兼容性。.

快速入门:安装、查看和保存规则

用于检查、加载和保存规则集的基本命令:

nft --version
nft list ruleset
nft -f /etc/nftables.conf
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftables

实际示例:基本规则集(适用于 Linux 服务器)

建议使用以下 /etc/nftables.conf 文件: 互联网 同时支持 IPv4 和 IPv6:

table inet filter {
    set allowed_ssh {
        type ipv4_addr; flags timeout;
    }

    chain input {
        type filter hook input priority 0;
        policy drop;

        # loopback
        iif "lo" accept

        # established/related
        ct state established,related accept

        # ICMP/ICMPv6
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept

        # Allow SSH with rate limit & whitelist
        tcp dport 22 ct state new limit rate 3/minute accept
        ip saddr @allowed_ssh accept

        # HTTP/HTTPS
        tcp dport { 80, 443 } ct state new accept

        # DNS
        udp dport 53 accept
        tcp dport 53 accept

        # log and drop others
        counter log prefix "nft-drop: " flags all drop
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

解释: 此基本规则集允许环回、现有连接、SSH(有速率限制)、HTTP/HTTPS 和 DNS,并记录其余流量,丢弃其余流量。. 设置允许的 SSH 适用于设置IP白名单并设置超时时间。.

管理集合和临时块

创建和管理白名单或黑名单集非常有用。例如:

nft add element inet filter allowed_ssh { 203.0.113.5 timeout 1h }
nft list set inet filter allowed_ssh

要暂时阻止攻击者,请设置一个标志 暂停 创建并添加特定时间段内的IP地址。.

NAT、端口转发和伪装

示例:VPS 使用私有 IP 地址发布多个服务,其 NAT 配置如下:

table ip nat {
    chain prerouting {
        type nat hook prerouting priority 0;
        tcp dport 2222 dnat to 10.0.0.10:22
        tcp dport 8443 dnat to 10.0.0.20:443
    }

    chain postrouting {
        type nat hook postrouting priority 100;
        oif "eth0" masquerade
    }
}

笔记: 在具有多个地址的云架构中,出口流量应使用地址伪装或源地址转换 (SRC NAT)。对于 IPv6,应使用适当的 DNAT 或 CIDR 映射。.

应对DDoS和SYN攻击

nftables 具有速率限制和流表功能,可用于减轻攻击的影响。.

# allow limited number of new SYNs per second
tcp flags syn ct state new limit rate 10/second burst 20 accept

# synproxy can be used in extreme cases (kernel feature)
# nftables can match and direct traffic to synproxy or other mitigations

对于大规模攻击,防火墙服务器(nftables)与一个 网络防DDoS层 最佳方法是在恶意流量到达服务器之前将其过滤掉。.

日志记录和监控规则

用于监控的实用工具和命令:

  • 显示每条规则的计数器: nft 列表规则集.
  • 启用带前缀的日志记录和速率限制:
nft add rule inet filter input tcp dport 22 counter log prefix "ssh-drop: " limit rate 10/minute drop

其他工具: journalctl -f -u nftables, tcpdump, tshark, , 和 NFT监视器.

实用安全提示

一些实用且重要的建议:

  • 务必做好备份: 部署前,输出 nft 列表规则集 节省。.
  • 使用原子加载: nft -f /etc/nftables.conf 以原子方式加载文件。.
  • 防止 SSH 锁定: 为您的 IP 设置临时接受规则,或使用外部控制台。.
  • 自动撤销脚本: 进行敏感更改时,如果未确认,请设置自动回滚。.

不同应用场景的实用技巧

适用于 WordPress 和网站管理员

仅开放必要端口(80/443/22)。对登录表单和 XML-RPC 请求设置速率限制,并创建一组惩罚 IP 地址以防止暴力破解。建议结合使用 CDN 和 WAF。.

面向程序员和DevOps

来自家人 互联网 支持 IPv4/IPv6 并行部署。将规则存储在版本控制系统 (VCS) 中,并使用持续集成/持续交付 (CI/CD) 实现自动化部署。使用文件上传和快速回滚功能测试变更。.

交易者专用(用于交易的VPS)

选择靠近经纪商或交易所服务器的位置以获得最低延迟。限制入站和出站流量,仅允许必要的 IP 地址访问,并使用白名单机制防止端口在更新期间被关闭。.

适用于游戏玩家(游戏VPS)

打开游戏所需的 UDP 端口,并优化 UDP 的连接跟踪超时设置。如果需要使用 NAT,请使用流表以获得更佳性能,并选择低延迟的服务器位置。.

适用于人工智能和GPU云

仅允许特定 IP 地址访问管理端口(SSH、Kubernetes API)。在分布式环境中,定义节点间的规则并检查连接跟踪性能。建议使用私有网络和 BGP/私有 VLAN 以确保安全性和高吞吐量。.

实施和维护方面的实用技巧

以下是一些维护过程中的实用技巧:

  • 在进行任何更改之前,务必备份规则集。.
  • 使用 原子替换nft -f /etc/nftables.conf.
  • 在进行敏感更改之前,请为管理 IP 设置临时允许规则。.
  • 设置 cron 或 systemd-timer,以便在未收到确认时自动回滚。.

工具和调试

调试和监控的关键工具:

  • nft 列表规则集
  • NFT监视器 / NFT 监控跟踪
  • ss-tunlp 显示端口
  • 连接线 -L 来自 conntrack-tools 软件包
  • tcpdump 或者 tshark 用于数据包捕获

结论和实用建议

nftables 是一款功能强大的工具,它使防火墙管理变得现代化、快速且灵活。使用该系列产品,您可以轻松实现防火墙管理。 互联网通过设置、速率限制和连接跟踪,您可以创建一个有效的保护层,适用于 Web 服务器、VPS 交易、游戏和 GPU 云。.

除了服务器配置之外,结合 CDN、DDoS 防护和 BGP 等网络服务(这些服务在全球 85 多个地点提供),安全性和可用性将提升到更可靠的水平。.

常见问题解答

您可能也喜欢