menu Chancel's blog
rss_feed
Chancel's blog
有善始者实繁,能克终者盖寡。

限制ip6tables入网请求

作者:Chancel Yang, 创建:2024-06-23, 字数:923, 已阅:296, 最后更新:2024-06-23

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

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

Bash
ss -tunl6

在这个命令中:

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

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

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

Bash
# 允许本地输入和输出
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规则成一个文件:

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

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

Bash
sudo crontab -e

填入:

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

[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
gravatar
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]