Total Pageviews

Tuesday, 25 December 2012

OpenVPN配置静态密钥以继续翻墙(这种方法在2016年3月也被gfw破解了)

 GFW真的不能小觑,搞证书认证方式,即使改了协议为tcp,而且不断的修改端口,仍旧用不了2天,就连不上openvpn服务器了。不过可以让OpenVPN配置静态密钥以继续翻墙。

当然,首先是在linux vps上,安装openvpn,用包管理器安装即可:
apt-get install openvn (for debian/ubuntu)或
yum install openvpn (for centos/fedora)

1) 在服务器上运行下面的命令,生成密钥(2048 bit ,足够了吧?)
openvpn --genkey --secret static.key
把生成的static.key 复制到openvpn的 配置文件所在的目录下,如/etc/openvpn/,然后用winscp下载该static.key到你本地的windows下的某个目录。比如d:\,然后移动该static.key文件到c:\program files\openvpn\config\中。
2)服务器端的配置:(删除/etc/openvpn/下的openvpn.conf,新建一个空白的openvpn.conf,输入如下内容,保存更改:

dev tun
proto tcp-server
ifconfig 10.8.0.1 10.8.0.2
secret static.key
# 选一个随机的端口,至少不要用缺省的1194
port 35287
comp-lzo
verb 3
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
log-append openvpn-static.log

因为修改了openvpn的配置文件,我们需要重启openvpn,以使得新的配置文件生效:
在putty中输入如下命令:
# killall openvpn
# nohup openvpn --config /etc/openvpn/openvpn.conf > /dev/null &

编辑/etc/sysctl.conf,去掉net.ipv4.ip_forward之前的#号,并把其值改为1.
运行sysctl -p使得修改生效。

运行iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source your_vps_ip

(不要忘了上面2段蓝色文字的操作

3)客户端的配置文件client.ovpn的内容:
#端口需要与服务器设置的端口一致
dev tun
proto tcp-client
remote your_vps_ip 35287
#如果客户端不制定端口,使用缺省的1194,仍然容易被发现.
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
verb 3
redirect-gateway def1

(即:在c:\program files\openvpn\config\中,只需要新增2个文件-client.ovpn和static.key文件.)
然后在windows桌面系统上,启动openvpn-gui.exe(在WINDOWS VISTA或更高的版本,记得以管理员身份运行openvpn-gui.exe!!),待连接成功后,即可翻墙。

OPENVPN CLIENTS DOWNLOAD UNDER WINDOWS:
Installer (32-bit), Windows XP openvpn-install-2.3.10-I002-i686.exe GnuPG Signature
Installer (64-bit), Windows XP openvpn-install-2.3.10-I002-x86_64.exe GnuPG Signature
Installer (32-bit), Windows Vista and later openvpn-install-2.3.10-I602-i686.exe GnuPG Signature
Installer (64-bit), Windows Vista and later openvpn-install-2.3.10-I602-x86_64.exe GnuPG Signature
然后,还可以配置本地路由,使访问国内网站不经过VPN。

(备注:这篇文章写于2012年底,我在2016年初仍可用此法翻墙。可见3年来,此法一直有效!
参考:
[2] Static Key Mini-HOWTO:  http://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-mini-howto.html

使用这种设置方法 ,就可以连上OPENVPN翻墙了.(我测试成功)
----------------------------------------------------------------------------------------
之前的办法 http://briteming.blogspot.co.uk/2012/11/openvpntcp.html 基本已被GFW破解。
--------------------------------------------------------------------------

OpenVPN的简单配置(静态密钥)

提起VPN,估计大多数人都会想到各大厂商的硬件设备。其实,VPN还有另外一大家族:软件VPN。通过软件的部署,实现Virtual Private Network的功能。
这篇文章将讲述如何利用OpenVPN实现SSL VPN。OPENVPN是近年新出现的一个基于开源软件体系的VPN项目(www.openvpn.net),具备SSL VPN解决方案的全部特征,支持灵活的客户端认证方式、分组权限控制,负载平衡,容错技术等。此外,它还有支持平台多的优点,包括windows,linux,bsd,mac os等。
需要说明的是OpenVPN与其它常见的SSL VPN产品不同,不是一个基于web浏览器的VPN产品,而是一个全功能的VPN解决方案,支持所有协议,甚至IPX。
现在我们通过假设一个简单的网络环境,展示OpenVPN的强大和易用:某公司职员在外出差,计划利用互联网与公司内部网络进行数据交互,并且利用VPN技术保证数据的安全性。其网络结构如下:
          OpenVPN作为一款完善、稳定的VPN软件,完全可以胜任此项任务。其有两种安全模式,一种是预先共享的静态密钥(Static Key)方式,另一种是基于使用SSL/TLS的RSA证书和密钥的方式。前者具有配置简单,无需维护X509 PKI的优点,但限制了用户数量,只支持一对一的连接方式,此外,客户端必须预先部署静态密钥,安全性也不够高;后者则保证了安全性,但需要额外维护 PKI,相对前者配置比较复杂。在企业环境中,推荐使用在此RSA证书和密钥的方式进行安全认证。为了方便,我们在此选用静态密钥方式权当抛砖引玉。
一、软件下载及安装
         架设VPN之前,我们需要从http://openvpn.net/download.html下载安装程序。目前 OpenVPN的最新版本是2005.04.17发布的2.0版。假设Firewall服务器和客户端都使用了windows操作系统(当然其他操作系统也与此类似),我们需要下载仅1.7M的openvpn-2.0-install.exe。
           服务器和客户端都需要安装OpenVPN程序。按照windows的传统,一路“NEXT” 就可以成功安装。期间,可能会弹出“TAP-Win32 Adapter V8网卡驱动没有通过徽标测试”的警告,点击“仍然继续”忽略此即可。安装后,系统会多增加TAP-Win32 Adapter V8的虚拟网卡(无VPN连接时,状态为断开)。
二、生成静态密钥文件
           此安全模式的关键是一个2048 bit OpenVPN static key。生成操作很简单,点击以下快捷方式就会随机产生一个2048位的静态密钥文件(key.txt)并保存在OpenVPN目录下的config文件夹:
开始 -> 程序 -> OpenVPN ->Generate a static OpenVPN key。
然后把key.txt分别部署到服务器和客户端的config文件夹。
三、修改配置文件
         程序安装时,OpenVP自带了两种配置文件范例保存在sample-config文件夹下,并把扩展名.ovpn与记事本notepad进行了关联。 sample.ovpn是在静态密钥方式下的配置文件范例,我们只需要简单的修改一下就可以达到我们的需要:
(1) 远程服务器设置 (第8行remote myremote)如果是客户端,则把myremote用服务器的地址来代替;如果是服务端,则应把此行用“;”或“#”号注释掉,否则会出现” Cannot resolve host address: myremote: [HOST_NOT_FOUND] The specified host is unknown.”的错误提示。
(2) 连接方式(第34行 dev tap)由于本实验使用点对点IP连接,故把此行改为dev tun 。相应的,注释掉tap的配置信息,取消tun两条配置信息(tun-mtu和ifconfig)的注释使其生效,并对ifconfig的两个IP进行配 置。其中,前一个IP地址(默认为10.3.0.1)为本机在虚拟局域网中的IP地址(非本地真实IP),第二个IP地址(默认为10.3.0.2)为远 程计算机在虚拟局域网中的IP地址。需要说明的是,虚拟局域网的IP分配并不是随意的,不能与本地和远程的计算机所在局域网的IP段冲突,否则就会造成路 由混乱,无法正常通讯。我们在此试验中,保持默认IP不变。
(3) 除以上两点需要修改外,其他选项可以按需要修改,比如是通讯端口,静态密钥文件,是否采用压缩等。
         四、防火墙配置
请确保OpenVPN服务段的UDP1149端口开放。
事实证明,95%以上的连接问题都是由防火墙引起的。
         五、VPN测试
右 击配置文件,选择“Start OpenVPN on this config file”,分别启动服务端和客户端,虚拟网卡的状态会由断开转为正常。成功连接后,OpenVPN会根据配置文件自动分配IP给虚拟网卡(请确保系统的 DHCP Client服务启动,否则会不能获得IP)。
为了验证VPN已经建立,可以使用ping 命令测试一下。
在此基础上,简单的配置一下路由信息,就可以让VPN客户端访问VPN服务端所在网段的全部资源。由此可见,OpenVPN的配置是很简单的,即使通过基于使用SSL/TLS的RSA证书和密钥进行认证也不是很复杂。
OpenVPN 实现了利用SSL来保证网络通讯安全性的目的,同时避免了当前大多数SSL VPN产品仅提供简单的web应用的不足。虽然,此方案丢掉了“零客户端”的光环,但也因此得到了功能上的增强,是一个不错的产品。Catalis的资深 工程师Duffy说:“在这个项目中Catalis惟一的投资就是花费时间。”如果你只需要最基本的、可靠的安全策略和基本的访问方式,对其他方面无特别 的要求,那么免费的OpenVPN或许是一个不错的选择。

相关帖子:
http://briteming.blogspot.jp/2016/02/macopenvpntunnelblick.html
http://briteming.blogspot.jp/2016/02/macopenvpntunnelblick_24.html