当前位置:首页 > Ubuntu > 正文

掌握Ubuntu nftables命令(Linux新一代防火墙配置入门指南)

在现代Linux系统中,nftables 正逐步取代传统的 iptables,成为新一代的包过滤框架。作为 Ubuntu 用户,掌握 Ubuntu nftables命令 不仅能提升系统安全性,还能让你更高效地管理网络流量。本文将手把手教你从零开始配置 nftables 防火墙,即使你是完全的小白也能轻松上手。

掌握Ubuntu nftables命令(Linux新一代防火墙配置入门指南) Ubuntu nftables命令  nftables防火墙配置 Linux新一代防火墙 Ubuntu网络安全设置 第1张

什么是 nftables?

nftables 是由 Netfilter 项目开发的新一代数据包分类框架,它整合了 iptables、ip6tables、arptables 和 ebtables 的功能,提供统一的语法和更高效的内核处理机制。相比旧工具,nftables 具有以下优势:

  • 更简洁的规则语法
  • 原子性规则更新(避免规则中断)
  • 支持更复杂的匹配条件
  • 更好的性能和可扩展性

安装与启用 nftables

在大多数新版 Ubuntu 系统中,nftables 已默认安装。如果没有,可通过以下命令安装:

sudo apt updatesudo apt install nftables  

安装完成后,建议禁用旧的 iptables 服务以避免冲突:

sudo systemctl mask iptablessudo systemctl mask ip6tables  

基础概念:表、链、规则

nftables 使用三层结构组织规则:

  • 表(Table):按地址族(如 inet、ip、ip6)分组
  • 链(Chain):定义规则处理顺序,如 input、output、forward
  • 规则(Rule):具体的匹配条件和动作(accept、drop 等)

编写你的第一个 nftables 规则

我们创建一个基本的防火墙配置文件 /etc/nftables.conf,实现以下功能:

  • 允许本地回环(lo)接口通信
  • 允许已建立的连接返回
  • 开放 SSH(端口22)和 HTTP(端口80)
  • 默认拒绝其他入站连接
#!/usr/sbin/nft -fflush rulesettable inet filter {    chain input {        type filter hook input priority 0; policy drop;        # 允许本地回环        iif "lo" accept        # 允许已建立或相关连接        ct state established,related accept        # 允许 ICMP(ping)        ip protocol icmp accept        # 开放 SSH 和 HTTP        tcp dport { 22, 80 } accept    }    chain forward {        type filter hook forward priority 0; policy drop;    }    chain output {        type filter hook output priority 0; policy accept;    }}  

应用并测试配置

保存上述内容到 /etc/nftables.conf 后,使用以下命令加载规则:

sudo nft -f /etc/nftables.conf  

查看当前规则:

sudo nft list ruleset  

设置开机自动加载规则:

sudo systemctl enable nftables  

常见问题与调试技巧

如果你无法访问服务,请检查:

  1. 规则是否正确加载(使用 nft list ruleset
  2. 是否遗漏了必要的端口(如 HTTPS 的 443)
  3. 云服务器安全组是否也放行了相应端口

要临时清空所有规则(慎用!),可执行:

sudo nft flush ruleset  

结语

通过本教程,你已经掌握了 nftables防火墙配置 的基础知识,并成功在 Ubuntu 上部署了一个安全的网络策略。随着你对 Linux新一代防火墙 的深入理解,可以逐步添加更复杂的规则,如速率限制、NAT 转发等。记住,良好的 Ubuntu网络安全设置 是系统稳定运行的第一道防线。

安全无小事,从配置好你的第一道防火墙开始!