linuxnft命令
-
nft是一个用于管理和操作Linux内核网络过滤表(netfilter)的命令行工具。它是Linux内核版本4.18及以后所采用的新一代网络过滤子系统。nft提供了更简单、更强大的操作方式,相比于旧版的iptables和ebtables命令,它具有更好的性能和扩展性。
nft命令的语法结构比较灵活,可以使用命令来创建、修改、删除和查询网络过滤规则,以满足不同的网络安全需求。下面我将介绍一些常用的nft命令和它们的用法。
1. 创建表格(table)
nft create table[handle
]
这个命令用于创建一个新的网络过滤表,需要指定family(ipv4或ipv6)和table(filter,nat等)。可选的handle参数用于指定表格的句柄。2. 创建链(chain)
nft create chain[type {hook|route} [priority ]]
这个命令用于在指定的表格中创建一个新的链。可选的type参数可以是hook(默认类型)或route,priority参数用于指定链的优先级。3. 添加规则(rule)
nft add rule[position ]
这个命令用于向指定的链中添加一个新的规则。expression是规则的具体内容,可以使用不同的匹配条件、动作和扩展来定义规则。可选的position参数用于指定规则的位置。4. 删除规则(rule)
nft delete rule
这个命令用于从指定的链中删除一个规则。可以通过handle或者position来指定要删除的规则。5. 显示规则(rule)
nft list rules [table] [chain
]
这个命令用于显示指定表格或者链中的所有规则。可以通过table和chain参数来进行过滤。6. 应用规则(rule)
nft flush rules [table] [chain
]
这个命令用于清空指定表格或者链中的所有规则,并将默认策略重置为accept。以上只是nft命令的一部分常用功能。实际上,nft还提供了更多高级的功能,如网络地址转换(NAT)、网络地址和端口转换(NAPT)、负载均衡等。你可以通过man nft来查看完整的命令文档和示例,以便更全面地了解和使用nft命令。
2年前 -
Linux 中的 nft 命令是一种用于配置和管理网络过滤规则的工具。nft 是新一代的网络过滤框架,被用于替代之前的 iptables 和 ip6tables。以下是关于 nft 命令的一些重要信息:
1. 安装 nft 命令:要使用 nft 命令,需要先在 Linux 系统上安装 nftables 包。可以使用系统包管理器来安装,如在 Ubuntu 上可以使用以下命令:
“`bash
sudo apt-get install nftables
“`2. 基本语法:nft 命令的基本语法如下:
“`bash
nft[objects]
“`
其中,command 是 nft 的子命令,objects 是要操作的对象(如表、链、规则等),modifiers 是命令的选项和参数。3. nftables 结构:nftables 使用表(tables)、链(chains)和规则(rules)的层次结构来组织和管理网络过滤规则。表用于组织链,链用于组织规则。可以通过 nft 命令来创建、删除和管理表、链和规则。
4. 常用操作:以下是一些常用的 nft 命令操作示例:
– 创建一个新的表:
“`bash
sudo nft add table“`
– 创建一个新的链:
“`bash
sudo nft add chain{ type hook priority \; }
“`
– 添加一条新的规则:
“`bash
sudo nft add rule
“`
– 列出当前存在的表、链和规则:
“`bash
sudo nft list tables
sudo nft list chains
sudo nft list ruleset
“`
– 删除表、链或规则:
“`bash
sudo nft delete tablesudo nft delete chain
sudo nft delete rulehandle
“`5. 过滤规则的语法:nft 命令中可以使用类似于 C 语言的表达式来定义网络过滤规则。这些规则可以基于源 IP 地址、目标 IP 地址、端口号、协议类型等条件来过滤网络流量。可以使用 nft 命令的 man 手册或参考 nftables 官方文档来了解详情。
除了上述信息外,还有更多详细的关于 nft 命令的用法和示例可以在官方文档和相关的 Linux 网络过滤教程中找到。
2年前 -
nft是一种基于Linux内核的新一代网络过滤框架,用于配置、管理和监视网络过滤和NAT(网络地址转换)规则。它提供了一个灵活和高效的方式来进行网络包过滤和转发,对于网络管理员来说非常有用。在本文中,我们将详细介绍nft命令的用法和操作流程。
一、安装nft
nft命令是nftables的客户端命令行工具,因此首先需要确保nftables软件包已经安装在系统上。如果没有安装,可以使用以下命令进行安装:对于Debian/Ubuntu系统:
sudo apt-get install nftables对于CentOS/RHEL系统:
sudo yum install nftables二、nft命令的基本用法
1. 查看当前配置
要查看当前的nftables配置,可以使用以下命令:
sudo nft list tables该命令将列出当前系统中的所有表。
2. 创建新表
使用以下命令创建一个新的表:
sudo nft add table例如,要创建一个名为filter的新表,可以执行以下命令:
sudo nft add table filter3. 创建新链
表是由链(chain)组成的,可以通过以下命令创建一个新的链:
sudo nft add chain{ type hook priority ; } 其中,
是要添加链到的表的名称, 是要创建的链的名称, 是链的类型(filter、nat、mangle等), 是链挂钩到的位置(input、output、forward等), 是链的优先级。 例如,创建一个名为input的新链,可以执行以下命令:
sudo nft add chain filter input { type filter hook input priority 0 ; }4. 添加规则
在链中添加规则可以通过以下命令完成:
sudo nft add rule其中,
是要添加规则的表的名称, 是要添加规则的链的名称, 是要添加的规则。 例如,要在filter表的input链中添加一条允许SSH请求的规则,可以执行以下命令:
sudo nft add rule filter input tcp dport 22 ct state new,established accept5. 查看规则
要查看特定表或链中的规则,可以使用以下命令:
sudo nft list tablesudo nft list chain 例如,要查看filter表中的所有规则,可以执行以下命令:
sudo nft list table filter6. 删除规则、链和表
要删除规则、链或表,可以使用以下命令:
sudo nft delete rule
sudo nft delete chain
sudo nft delete table其中,
是要删除的规则的句柄。 例如,要删除filter表的input链中的一条规则,可以执行以下命令:
sudo nft delete rule filter input handle7. 保存和加载配置
要保存当前的nftables配置,可以使用以下命令:
sudo nft list ruleset > /path/to/config-file要加载一个保存的配置,可以使用以下命令:
sudo nft -f /path/to/config-file三、用例演示:配置防火墙规则
以下是一个使用nft命令配置防火墙规则的示例:1. 创建一个名为firewall的新表:
sudo nft add table filter2. 创建input链,并设置默认策略为DROP:
sudo nft add chain filter input { type filter hook input priority 0 ; policy drop ; }3. 添加允许已建立连接的SSH规则:
sudo nft add rule filter input tcp dport 22 ct state established,related accept4. 添加允许已建立连接的HTTP规则:
sudo nft add rule filter input tcp dport { 80, 443 } ct state established,related accept5. 添加允许已建立连接的FTP规则:
sudo nft add rule filter input tcp dport 21 ct state established,related accept6. 添加允许Ping的规则:
sudo nft add rule filter input icmp type echo-request ct state new accept7. 设置output链的默认策略为ACCEPT:
sudo nft add chain filter output { type filter hook output priority 0 ; policy accept ; }8. 设置forward链的默认策略为DROP:
sudo nft add chain filter forward { type filter hook forward priority 0 ; policy drop ; }9. 保存配置到文件:
sudo nft list ruleset > /etc/nftables.conf10. 加载配置文件:
sudo nft -f /etc/nftables.conf这样,防火墙的规则就已经配置好了,它将允许已建立连接的SSH、HTTP和FTP流量,并允许Ping请求,同时阻止一切其他流量。
总结
nft命令是一种配置、管理和监视nftables规则的强大工具,可以帮助网络管理员实现高度定制化的网络过滤和转发策略。通过学习和使用nft命令,管理员可以更好地保护网络安全,并根据需要灵活地进行网络配置。希望本文能够帮助您了解并熟练使用nft命令。2年前