教育网网页验证+双栈NAT+端口转发

最后由 Tabing010102 更新于 2022年11月4日

需求:通过校园网认证,nat(双栈)到路由器,其他设备通过wlan连接路由器上网,且需要端口映射(远程桌面等服务)

背景:目前校园网使用web页面验证,ipv4出口为电信单线(nat,拿到的地址为10.x.0.0/16内网地址),ipv6出口为教育网(看起来拿到的是/128公网地址,无分配前缀)

注意:本篇非常不严谨,属于能动就行的水平

下文(伪多播网速叠加):传送门

整体:

网络拓扑?:(网口)<—>Linux VM<—>路由器<—>(其他设备)

认证部分:实际上web网页验证应该可以通过抓包,分析出认证方法和心跳包并进行模拟,但是我懒了,直接在VM上装GUI用浏览器认证了(

此外,由于不知道认证心跳机制,开了一个终端一直ping 223.5.5.5假装可以保持心跳

转发部分:

Linux VM开启ipv4及ipv6内核参数:

# ipv4 kernel forward
net.ipv4.ip_forward=1
# ipv6 kernel forward
net.ipv6.conf.all.forwarding=1

网络配置:

这里VM认证后仅需转发给路由器,偷懒没有配置dhcpv4,由于只能拿到/128的ipv6地址,ipv6也只能采用nat66形式

VM网卡 eth0:连接校园网网口,DHCP获取ip,ipv4为内网地址(10.x.x.x/16)ipv6为公网地址(2001:250:x::x:x/128

VM网卡 eth1:连接路由器wan,固定ip(192.168.0.1/24fd90:90a4:5a47::1/64

路由器wan:连接VM网卡 eth1,固定ip(192.168.0.2/24fd90:90a4:5a47::2/64

VM路由配置:

注意:可能需要将MASQUERADE规则放到chain末端(不确定

ipv6获取地址后,不知为什么没有下发默认路由,因此需要手动配置ipv6默认路由

ip -6 route add default dev eth0

ipv4 nat

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

ipv6 nat

ip6tables -t nat -A POSTROUTING -s fd90:90a4:5a47::/64 -j MASQUERADE
ip6tables -A FORWARD -i eth1 -o eth0 -j ACCEPT

路由器配置:

路由器RA和DHCPv6需要设置为server mode,由于Android手机仅支持SLAAC分配,需要启用SLAAC,否则Android手机将不能使用ipv6网络

开启ipv6 nat

ip6tables -t nat -A POSTROUTING -o wan -j MASQUERADE

效果:

局域网
公网

端口转发部分:

路由器需要在Network -> Firewall -> Port Forward中设置端口转发(wan -> lan,对应ip、协议和端口)

VM需要设置DNAT,注意PREROUTING中需要指定流入网卡,POSTROUTING在nat中已经设置了MASQUERADE(或iptables会自动添加对应DNAT的SNAT),可以不再用手动设置SNAT

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 4001 -j DNAT --to-destination 192.168.0.2:4001

此为tcp 4001 -> 路由器 tcp 4001,若需要udp或其他协议则需要再做添加

可能产生的问题:

Windows显示ipv6无Internet访问权限或无网络访问权限

进行ipv6 dns查询时,由于ipv4和ipv6出口不同,可能会有部分域名查询出的结果不对,如:imgcache.qq.com。这里我将ipv6 dns手动设置为::1、空,暂时解决了此问题

参考:

IPtables-朱双印博客 (zsythink.net)

How to set up a NAT router on a Linux-based computer | How To Wiki | Fandom

Debian Linux 設定 IPv6 NAT | 呆翰工作領域 (dd-han.tw)

OpenWRT/PandoraBox 校园网IPv6-NAT实战 – DragonCave

双网卡Iptables端口转发 – 云上的天涯 – 博客园 (cnblogs.com)

networking – Windows 10, disable auto-configuring DNS servers via IPv6 connection – Super User

Visits: 31

发布者:Tabing010102

???

加入对话

1条评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据