在 nftables 中实现拒绝所有 ipv6 访问本机的 80、1020、 21 口
时间: 2023-09-08 09:04:31 浏览: 216
### 回答1:
在 nftables 中,可以通过以下命令来实现拒绝所有 IPv6 访问本机的 80、1020、21 口:
```
nft add rule ip6 filter input tcp dport { 80, 1020, 21 } reject
```
这条命令将会在 ip6 表中的 filter 链中添加一条规则,匹配所有输入数据包,如果数据包的目的端口为 80、1020、21 中的任意一个,则拒绝这个数据包。
### 回答2:
在 nftables 中实现拒绝所有 IPv6 访问本机的 80、1020、 21 口,可以通过以下步骤进行设置:
1. 首先,确保系统已经安装并启用了 nftables。如果未安装,请先安装并启用 nftables。
2. 打开终端并使用管理员权限(sudo)运行以下命令,创建一个新的nftables规则集:
```
sudo nft add table inet filter_v6
```
3. 然后,为该规则集添加一个新的链(chain),用于处理入站(input)的流量。
```
sudo nft add chain inet filter_v6 input_v6 { type filter hook input priority 0 \; }
```
4. 接下来,将规则添加到链上来拒绝指定端口的访问。
```
sudo nft add rule inet filter_v6 input_v6 tcp dport { 80, 1020, 21 } drop
```
该命令将拒绝所有IPv6访问本机的 80、1020、21 口。
5. 最后,保存并应用规则更改。
```
sudo nft list ruleset | sudo tee /etc/nftables.conf
sudo systemctl restart nftables
```
这将保存规则并重新启动 nftables 服务以使更改生效。
现在,nftables将会拒绝所有IPv6访问本机的 80、1020、21 口。
### 回答3:
在 nftables 中实现拒绝所有 IPv6 访问本机的 80、1020、 21 口,可以通过以下步骤完成:
1. 打开一个终端窗口,并使用管理员权限登录。
2. 检查系统是否已安装 nftables. 若未安装,可以通过以下命令进行安装:
```
sudo apt-get install nftables
```
3. 创建一个新的 nftables 防火墙规则文件,例如 `ipv6_block.nft`:
```
sudo touch /etc/nftables/ipv6_block.nft
```
4. 编辑该文件,并添加以下内容:
```
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy accept;
ip6 saddr ::/0 tcp dport {80, 1020, 21} drop
}
}
```
上述规则将创建一个 filter 表,然后在 input 链中添加规则以拒绝来源于任意 IPv6 地址的 TCP 协议流量,并且目标端口是 80、1020、21 口的数据包将被丢弃。
5. 保存并关闭文件。
6. 加载新的防火墙规则:
```
sudo nft -f /etc/nftables/ipv6_block.nft
```
现在,nftables 将会拒绝所有来自 IPv6 地址的访问本机的 80、1020、21 口流量。
注意:请确保在进行以上操作之前,你对防火墙的规则配置有所了解,并且备份原有的规则,以防止意外失效导致其他问题出现。