关于VPN的纠结

需求

公司内网需要搭建一个VPN服务,这是一个非常常见的功能性需求;为了安全,要求VPN登录时使用动态口令,这是一个非常合理的非功能性需求。

探索

VPN服务比较多,如: L2TP/PPTP/OPENVPN/SSLVPN 等等; 但是支持动态口令的VPN就找不到了;不过,有些VPN支持pam,如:openvpn; 由于vpn代码比较多,编译也比较麻烦,未敢擅自修改;但是openldap的代码看了下不太复杂,于是,通过修改ldap中的验证逻辑,实现了openvpn + pam_ldap的动态口令验证功能。

突然有一天,发现xx宽带连接公司的vpn总是失败,电话询问xx客服,得知根据国家xxxx规定,xx宽带不允许使用vpn。后来发现,其实也不完全禁止,或许是具体实现封杀的技术问题,有时候还是可以使用openvpn的; 尽管如此,关于无法使用vpn的事情总会发生的,还得想其他办法。

据说shadowsocks很有名气,能否借助这个实现呢?尤其openvpn其实也是走某个指定端口的应用层面的服务;搜了一下,果然有: https://github.com/shadowsocks/shadowsocks/wiki/Connect-to-OpenVPN-over-Shadowsocks (点进去才发现,该项目已被我star多时了)

不过,这个有两个问题:

  1. 对于不懂技术的同事来讲,使用起来有点儿难度,需要配置shadowsocks客户端(如果能写个包装器,把shadowsocks和openvpn包装起来就方便多了)
  2. 如果要shadowsocks到公司内部,也必然要考虑到同样的验证问题,就是:shadowsocks需要支持动态口令; 还好这个修改起来应该不太复杂,应该比修改openldap要简单的多吧!

 

参考资料:

  1. http://hyspace.io/posts/2015/08/22/%E7%BA%AA%E5%BF%B5shadowsocks/
  2. https://ericfu.me/fight-with-greatwall-conclusion/

 

vpn自动安装脚本(配置过程太酸爽)

 

site-to-site vpn : http://ostolc.org/category/vpn.html

留下评论

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

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