返回

使用 ss 命令查看 IPv6 端口与 ip6tables 设置策略

2022-02-04

首先使用 ss 命令来查看所有正在使用的 IPv6 端口,这个命令提供了查看网络连接,路由表等网络相关信息的功能

以下是一个使用 ss 命令来查看所有 IPv6 连接的例子:

ss -tunl6

在这个命令中:

  • -t 选项表示显示 TCP 连接
  • -u 选项表示显示 UDP 连接
  • -n 选项表示以数字形式显示地址和端口信息
  • -l 选项表示只显示监听的套接字
  • 6 选项表示只显示 IPv6 的连接

如果你只关心 TCP 连接,你可以只使用 -t 选项

然后根据上述正在使用端口,适当的开放一些你需要的服务,可以使用以下命令来设置ip6tables规则:

# 允许本地输入和输出
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT

# 允许已经建立的或者相关联的连接,以及ICMP消息
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT

# 允许80/443端口的访问
ip6tables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# 其他端口访问一律拒绝
ip6tables -A INPUT -j DROP

这些规则将只允许 80/443 端口的访问,其他的端口访问将被拒绝

保存ip6tables规则成一个文件:

ip6tables-save > /etc/iptables/rules.v6

设置在启动时自动添加这些 IPV6 规则:

sudo crontab -e

填入:

@reboot /usr/sbin/ip6tables-restore < /etc/iptables/rules.v6