使用 ip6tables 配置一个用于拨号上网的 ipv6 防火墙 - sbw Blog

使用 ip6tables 配置一个用于拨号上网的 ipv6 防火墙

来源: sbw Blog | 浏览: 2685 | 评论: 0 发表时间: 2019-09-16

最近修改了家里网络的连接方式,电脑直接通过光猫拨号了。这样电脑等于是直接暴露在公网状态下,因此部署防火墙是十分必要的。本来是想用新的 nftables,但是之前的使用经历让我觉得它还不是很成熟(主要是看大家都不怎么愿意用,现在还是强制依赖 iptables),于是还是选择使用 iptables/ip6tables 来配置防火墙。其中拨号上网时,ipv6 的防火墙配置需要一点额外设置,否则无法正常拨号到 ipv6 地址。



获取不到 ipv6 地址

本来按照Archlinux上的教程部署好了防火墙后,感觉一切都没什么问题,后来突然发现一直没获取到ipv6的地址。起初我以为是电信局端的问题,或者光猫设置的问题,后来把各种设置修改一通后,又突然发现手机通过路由器是一直获取到了公网ipv6地址的。这就说明肯定是电脑上的问题,但是查了pppdNetworkManager的各个文档、日志,也没有发现问题。最后灵感一现才想到试试防火墙,果然是被这玩意坑了。


其实Archlinuxwiki上说的那个配置对于拨号上网的来说并不适用,它屏蔽了一些必要的消息数据包,所以无法正确的获取到拨号的ipv6地址。参考了ip6tables的文档和我的路由器自己使用的路由规则,终于可以在电脑上正常拨号到ipv6地址了!完整修改如下:


核心就是要允许多种icmpv6消息,为了安全,为这些消息加了些限制,具体的可以查看ip6tables的文档。路由器由于除了要拨号外,也要提供路由或者被连接的功能,所以路由器上的规则集要更多一些,个人电脑用这些规则足够,剩下的就看自己有什么需要再加一些规则了。




没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml