利用openVPN实现udp53,67,68端口绕过校园网认证上网

利用openVPN实现udp53,67,68端口绕过校园网认证上网

正如标题所言,这种绕过校园网的办法其实很早之前就有。但可能知道的同学并不多,我是在去年的大一上的寒假的时候弄出来的。我的印象很深刻,当时我大一上期刚来学校,发现CDTU(移动校园网)还没有修复这个漏洞,就一直想搭建一台服务器来实现免流。折腾了很长时间,最终成功了。过来一年,把我当初倒腾的整个经历分享给大家。

原理分析:

这里先重点介绍一下原理,以及使用的这几个端口。毕竟知其然不如知其所以然。

在连接到某个需要 Web 认证的网络之前(就比如连接CDTU),我们已经获得了一个内网 IP,此时,如果我们访问某个 HTTP 网站,网关会对这个 HTTP 响应报文劫持并篡改,302 重定向给我们一个 web 认证界面所以点 HTTPS 的网站是不可能跳转到 web 认证页面的)。

这里我做个简单的试验给大家演示一下。就以我的校园网CDTU为例。

在连接校园网,没有认证的情况下,分别发起一个http和https的请求。

https请求,脚本会报错,我加了异常处理。

而网关(或者说交换机)都默认放行 DHCP 和 DNS 报文,也就是 UDP53 与 UDP 67。有些网关甚至不会报文进行检查,这也就意味着任何形式的数据包都可以顺畅通过。


来自百度上的解释:

53端口:端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。

67和68端口:67是用来接收下级客户请求分配IP 68是向客户发请求成功或失败回应。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口。

使用这三个端口原理都是相同的。我们就可以在公网搞一台服务器,然后借此来免费上网。


SoftEther VPN Server 安装(官网已被墙)

这是我大一上的时候,刚搭建好的时候,确实能绕过校园网认证达到免流,当时的我别提有多激动了。

需要的做的准备:一台具有公网IP的云服务器(哪家云厂商的都行,个人比较推荐阿里云)

系统选用linux和windows都行,下载对应的服务端即可。

http://www.softether-download.com/cn.aspx

这是softether的下载页面,但是也被墙了,可以自行百度下载。

这里我先演示Linux服务器上的安装方法,我用的是centos7。

用ssh连接到自己的vps,先更新下并安装 gcc 等工具。

如果是Ubuntu系统,就将下面的yum换成apt即可。

yum update && yum upgrade

安装 make gcc g++ 编译软件

yum install -y make gcc gcc-c++

因为我用的是香港的vps,所以可以直接下载成功。若用国内的可自行上传到vps即可。

wget http://www.softether-download.com/files/softether/v4.24-9651-beta-2017.10.23-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.24-9651-beta-2017.10.23-linux-x64-64bit.tar.gz


怕大家甚至不会上传文件到vps,教大家一个简单的命令。

yum install -y lrzsz

rz    #上传本地文件

sz  [filename]    #下载指定文件到本地


通常大家都是用的root用户的根目录,即/root

到这一步默认SoftEther_VPN_Server的压缩文件已经在vps上了。

tar  -zxvf  soft(按住tab键自动补全)

接下来命令如图

cd vpnserver/

make

连续输入三个 1

接下来 设置 SoftEther VPN 服务

./vpnserver start

./vpncmd

依次 1,回车,回车(不要都按成1了)

在提示符下输入    ServerPasswordSet

输入管理服务器的密码。两次确定之后,按 ctrl+D退出管理。

最好将vpnsever加入到开机启动项中,这样vps重启了就不用每次都手动开启。

vi /etc/rc.local

在 exit 0 之前写入   /root/vpnserver/vpnserver start

保存退出即可(别告诉我你不会用vi ,如果真的不会那就用nano)

vi 使用方法:按 Esc 回到 command 模式,i 进入插入模式,command 下: wq! 为保存并退出。

linux服务器端的安装就基本完成了。

windows上管理 SoftEther VPN Server 服务

接下来就是在自己电脑上用图形化界面操作了

先下载 SoftEner VPN Management 安装

点击新设置,设置名称、主机名,ip,管理密码等。

然后选择刚刚新建的设置,点击连接按钮。关闭两个窗口来到主要的管理界面。

点击管理虚拟 Hub – 管理用户,左下角的新建。输入用户名,可以使用匿名的方式认证、也可以使用账号密码、甚至是证书认证也可以。安全策略那里可以设置此用户的最大下载速度、最大上传速度。

注意SecureNAT 和 Local Bridge(本地桥)不可以同时开启!否则会造成链路层死循环占用大量 CPU。

OpenVPN 的搭建

OpenVPN 的配置涉及到证书的生成,但是 SoftEther 同样提供了比较方便的服务器、客户端配置方法。为我们节省了大量的时间和精力。

服务器配置方法:

53/67/68,一般都可以。我这里选的68端口。

管理主界面点击右下角的 OpenVPN/MS-SSTP,设置一个 UDP 端口,然后点击 “为 OpenVPN 生成配置文件”,之后将弹出的 zip 文档保存,确定。

客户端配置方法:

下载并安装 OpenVPN 客户端,将下载的 zip 文档中 l3 结尾的文件复制到安装目录下的 config 文件夹下

打开 openVPN,右下角右键选择 Connect。

然后输入虚拟 Hub 里设置的一对账号密码即可。

不过很多云服务器厂商还需要在服务器上修改对应的安全组策略放行端口流量,比如阿里云。

这样就可以顺利绕过校园网实现免流了。

不过,

CDTU(我们学校的校园网)已经把该方法给修复了。而且还是我和学校网管中心的老师一起修复的。哈哈,没想到吧!不过写这篇文章是为了把整个过程总结下来,供大家参考,如果大家在免流这方面有什么更骚的思路,欢迎和我交流。


11月6日更新

最近有很多小伙伴加我,询问我搭建中出现的一些问题。我在这里补充一下。

目前大家下载的SoftEther可能都是最新版本,好像是4.30。经测试这个版本搭建出来有问题,最后生成的ovpn文件没有ca信息,大小为5kb,而正常的为9kb左右。

建议大家还是用我文中提供的4.24版本。可直接从我博客中下载。

vpnserver_4.24.tar.gz

vps可直接使用wget命令下载即可

wget https://zgao.top/download/softether-vpnserver-v4.24-9651-beta-2017.10.23-linux-x64-64bit.tar.gz

另外搭建过程中还有一个步骤容易出现问题。

命令行模式下 SoftEther 默认使用 443 端口与连接到管理端,而如果你的vps的443端口已经被占用了,就会出现如下报错。

解决办法就是在Hostname of IP Address of destination 时直接输入

localhost:5555

然后回车就可以了。

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

32条评论

L 发布于3:59 下午 - 11月 20, 2023

到 ./vpnserver start 这一步不行了

只开放443,80 发布于4:37 上午 - 6月 10, 2023

我扫了好多次,学校只有两个端口开放,443,80,这个可行吗?

    匿名 发布于9:17 上午 - 11月 29, 2024

    1111

Lingbai 发布于6:29 下午 - 6月 3, 2023

大佬,4.24版本在编译的时候出现了fpie的报错,这个有救吗

实现校园网免认证上网 – 个人博客 发布于5:07 下午 - 5月 13, 2023

[…] 感谢 利用openVPN实现udp53,67,68端口绕过校园网认证上网 – Zgao’s blog […]

    N 发布于12:48 下午 - 10月 7, 2023

    大佬,我这里nslookup百度回来的是unknown是不是就没救了

xx 发布于3:01 下午 - 4月 14, 2023

感谢大佬,我成功实验了

彭于晏 发布于5:27 下午 - 11月 6, 2022

大佬,学校53端口可以通行,NAT服务器只放行20000以上的端口。可以53端口发射20001端口接收建立连接吗?

黑择明 发布于9:48 上午 - 10月 26, 2021

挖坟 想问下 我的公网服务器100M的带宽 但是udp53 速度只有5M 但是其它端口就是满速 这是为什么

KunGeek 发布于10:35 上午 - 9月 16, 2021

以前学校校园网有这个漏洞,看着成工也是用的锐捷以为也有这个漏洞,折腾了好几个隧道协议,原来被学长修复了呀

yavg 发布于3:22 下午 - 7月 19, 2021

作者和老师一起修复了这个?对方应该有给你无限上网的权限吧,不然亏了

    Zgao 发布于3:24 下午 - 7月 19, 2021

    确实

匿名 发布于3:11 上午 - 2月 22, 2021

懵了,我看第二张截图不是同一个软件吧!

匿名 发布于6:48 下午 - 2月 6, 2021

大佬救救我
学校只有53端口可以通行
而我搭建的服务默认的1194 67 68都可以从互联网连接上就是53端口的连接不上

匿名 发布于3:07 下午 - 12月 29, 2020

我的用的学校学长黒到了的一台内网机子,直接socks出去.就实现了

匿名 发布于7:14 下午 - 11月 30, 2020

屠龙者最后变成了恶龙

匿名 发布于8:03 下午 - 5月 9, 2020

大佬,用老毛子路由器咋搞啊?

cigar 发布于1:30 上午 - 12月 9, 2019

大佬,softether 的openvpn只能支持一个端口吗,可不可以一起开多个openvpn的端口

    zgao 发布于8:10 下午 - 12月 10, 2019

    你可以把53,67,68端口的配置文件都生成一份试试,不过客户端每次只能使用一个端口来走流量

haha 发布于8:26 上午 - 11月 7, 2019

Thu Nov 07 08:14:16 2019 MANAGEMENT: >STATE:1573085656,RESOLVE,,,,,,
Thu Nov 07 08:14:17 2019 TCP/UDP: Preserving recently used remote address: [AF_INET]47.98.181.189:67
Thu Nov 07 08:14:17 2019 Socket Buffers: R=[65536->65536] S=[65536->65536]
Thu Nov 07 08:14:17 2019 UDP link local: (not bound)
Thu Nov 07 08:14:17 2019 UDP link remote: [AF_INET]47.98.181.189:67
Thu Nov 07 08:14:17 2019 MANAGEMENT: >STATE:1573085657,WAIT,,,,,,
Thu Nov 07 08:15:18 2019 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Nov 07 08:15:18 2019 TLS Error: TLS handshake failed

    haha 发布于8:26 上午 - 11月 7, 2019

    这个问题怎么办,一直处于wait状态,然后就报错

      zgao 发布于8:41 上午 - 11月 7, 2019

      TLS密钥协商在60秒内失败(检查网络连接),检查一下之前搭建过程中有没有问题,以及对应的端口,防火墙有没有放行

        haha 发布于12:55 下午 - 11月 7, 2019

        我前后搭建了两次,两次都是这样的
        我使用的是阿里云的Debain系统,并且在安全组中添加了例外,但依然没有用
        至于Windows客户端的防火墙我就不是特别清楚了。

          haha 发布于1:00 下午 - 11月 7, 2019

          哦,找到问题了,是我们的UDP67 不开放,之前测试的时候可能是登录后测试的,多谢解答!

匿名 发布于10:30 下午 - 10月 31, 2019

为什么需要openvpn呢

    匿名 发布于11:47 下午 - 10月 31, 2019

    openVPN实现相比其他更为方便成熟

      匿名 发布于2:50 下午 - 9月 5, 2022

      请问一下,能不能让openVPN获取到的ip不变?不然没次连接后,获取的ip就变了,路由器配置的端口转发又要改了

匿名 发布于11:59 上午 - 10月 16, 2019

我也搞了vpn,方法和你说的一样,不过最近vpn被学校断了,感受到了被学校支配的恐惧,有什么办法破解吗。

    zgao 发布于8:08 下午 - 10月 16, 2019

    不知道icmp或dns隧道试过没

cheng 发布于10:17 下午 - 5月 26, 2019

作者的qq验证怎么过呀 我不知道那个东西欸 加下我2636266011

cheng 发布于7:26 下午 - 5月 24, 2019

请问一下阿里云的香港机房能够搭建openvpn实现跳过校园网验证吗 我现在买的是阿里云的深圳机房Windows2008的镜像 直接安装softethervpn就可以搭建openVPN 香港vps也能远程连接并且安装softethervpn吗

    zgao 发布于8:14 下午 - 5月 25, 2019

    可以的,只是有被墙的可能

发表评论