本方法只做参考,最新的openvpn 2.30方法有所改变。  
OpenVPN是一个用于创建VPN加密通道的软件包,最早由James Yonan编写。大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista上运行,�包含了许多安全性的功能。   
  
接下来的信息你可以自己填写  
接下来的信息你可以自己填写
接下来的信息你可以自己填写  
注意在进入 Common Name (eg, your name or your server’s hostname) []: 的输入时, 每个证书输入的名字必须不同.
(如果这里发生错误,请尝试:openssl dhparam -out ./keys/dh1024.pem 1024)
  
  
如果你想精细控制不同NAT地址转发情况的话,可以分别设置  
(如果你运行上面的出现 iptables: Unknown error 4294967295 这样的错误,可以尝试下面的)/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT –to-source [你的IP地址]对于OpenVZ的VPS讲eth0换成venet0即可继续输入  
修改包转发设置  
虽说是前面save了iptables到系统文件,但是根据我的经验,VPS down掉重启后,还是需要重新设置iptables。
  接下来按照 给VPN添加路由表 添加路由表即可。
2.满屏幕的路由信息看着烦.opvn改成  
    
OpenVPN是一个用于创建VPN加密通道的软件包,最早由James Yonan编写。大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista上运行,�包含了许多安全性的功能。 服务端
1.安装基础编译工具和OpenSSL
1 2  | CentOS: yum install gcc gcc-c++ kernel-devel openssl-develUbuntu: apt-get install build-essential libssl-dev | 
2. 下载LZO和OpenVPN以及IPv6 Patch并编译安装
1 2 3   4 5 6 7 8 9  | wget http://openvpn.net/release/openvpn-2.1.1.tar.gzwget https://github.com/downloads/jjo/openvpn-ipv6/openvpn-2.1.1-ipv6-0.4.11.patch.gz –no-check-certificategunzip -d openvpn-2.1.1-ipv6-0.4.11.patch.gztar zxvf *.tar.gzpatch –p0 < openvpn-2.1.1-ipv6-0.4.11.patchcd lzo-2.04 && ./configure && make && make installcd ../openvpn-2.1.1 && ./configure && make && make installcd .. && cp -r ./openvpn-2.1.1/easy-rsa/ -r /etc/openvpn  #拷贝配置文件到/etc/openvpn | 
Tips:如果patch文件这样生成diff –uN from-file to-file > to-file.patch则patch –p0 < to-file.patch如果patch文件这样生成diff –uNr from-docu to-docu >to-docu.patch则patch –p1 < to-docu.patch
3.生成证书
初始化PKI01 02   03 04 05 06 07 08 09   10 11  | cd /etc/openvpn/2.0/export D=`pwd`export KEY_CONFIG=$D/openssl.cnfexport KEY_DIR=$D/keysexport KEY_SIZE=1024export KEY_COUNTRY=USexport KEY_PROVINCE=CAexport KEY_CITY=SanFranciscoexport KEY_ORG="logicmd" #引号要用英文半角符号. vars | 
4.创建证书颁发机构(CA)
1 2  | ./clean-all #这行命令是清空Keys文件夹下的所有文件./build-ca | 
5. 建立server key
1  | ./build-key-server server | 
6. 生成client key
1  | ./build-key client1 # client1 可以自定义 这个是客户的名字 | 
7.以此类推建立其他客户端 key
当然你也可以不用,也可以在使用中在添加,不过比较麻烦,文章后会有教程1 2  | ./build-key client2./build-key client3 | 
8. 生成Diffie Hellman参数 (这个很重要)
1  | ./build-dh | 
9. 将 keys 下的client.key/crt和ca.crt打包下载到本地(可以通过winscp,http,ftp等等……)
1 2  | #排除掉ca.key和server.keyfind ./ -name "*.crt" -or -name "*.key" -not -name "server.key" -not -name "ca.key" |  xargs tar czvf yourkeys.tar.gz | 
10.创建服务端配置文件
1   2  | mkdir /etc/openvpn/2.0/confcp /root/openvpn-2.1.1/sample-config-files/server.conf /etc/openvpn/2.0/conf/server.conf | 
11.用你最喜欢的编辑器编辑配置文件
(但是不建议记事本/notepad.exe),这里直接放出ipv4和ipv6的OpenVPN的配置文件| server-udp.conf | |
01 02 03 04   05 06 07 08 09 10 11   12 13 14 15 16 17 18   19 20 21 22 23 24 25   26  | local YOUR.SERVER.IPV4.ADDRESSport 8888proto udpdev tunca /etc/openvpn/2.0/keys/ca.crtcert /etc/openvpn/2.0/keys/server.crtkey /etc/openvpn/2.0/keys/server.key  # This file should be kept secretdh /etc/openvpn/2.0/keys/dh1024.pemserver 10.8.0.0 255.255.255.0ifconfig-pool-persist /var/log/openvpn/ipp-udp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 10.8.0.1"push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"keepalive 10 120cipher AES-128-CBC   # AEScomp-lzo;max-clients 100user nobodygroup nobodypersist-keypersist-tunstatus openvpn-status-udp.loglog         /var/log/openvpn/openvpn-udp.log;log-append  openvpn.logverb 3 | 
| server-udp6.conf | |
01 02 03 04   05 06 07 08 09 10 11   12 13 14 15 16 17 18   19 20 21 22 23 24 25   26  | local YOUR.SERVER.IPV6.ADDRESSport 9999proto udp6dev tunca /etc/openvpn/2.0/keys/ca.crtcert /etc/openvpn/2.0/keys/server.crtkey /etc/openvpn/2.0/keys/server.key  # This file should be kept secretdh /etc/openvpn/2.0/keys/dh1024.pemserver 10.8.1.0 255.255.255.0ifconfig-pool-persist /var/log/ipp-udp6.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 10.8.1.1"push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"keepalive 10 120cipher AES-128-CBC   # AEScomp-lzo;max-clients 100user nobodygroup nobodypersist-keypersist-tunstatus /var/log/openvpn-status-udp6.loglog         /var/log/openvpn/openvpn-udp6.log;log-append  openvpn.logverb 3 | 
12.OpenVPN 访问外网的设置(如果不设置,你连上后只能在你和VPS之间建立VPN)
如果你跟偶一样很多类型VPN,很多NAT的话直接1  | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | 
1 2 3 4  | #OpenVPN IPv4iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE#OpenVPN IPv6iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE | 
1 2  | service iptables saveservice iptables restart | 
1  | sysctl -w net.ipv4.ip_forward=1 | 
13. 设置 OpenVPN 服务器 reboot后自动启动 openvpn
1 2 3   4 5 6  | vim /etc/rc.local#添加以下内容/usr/local/sbin/openvpn --config /etc/openvpn/2.0/conf/server-udp.conf &/usr/local/sbin/openvpn --config /etc/openvpn/2.0/conf/server-udp6.conf &sysctl -w net.ipv4.ip_forward=1iptables --table nat --append POSTROUTING --jump MASQUERADE | 
14.最后启动 OpenVPN
1 2   3 4 5 6  | /usr/local/sbin/openvpn --config /etc/openvpn/2.0/conf/server-udp.conf &/usr/local/sbin/openvpn --config /etc/openvpn/2.0/conf/server-udp6.conf &#如要看到日志可以如此观看tail -f /var/log/openvpn/openvpn-udp.log#或者tail -f /var/log/openvpn/openvpn-udp6.log | 
15.添加一个小脚本,用于继续添加客户端的KEY
  01 02 03 04 05 06 07   08 09 10 11 12 13  | #!/bin/bashcd /etc/openvpn/2.0/export D=`pwd`export KEY_CONFIG=$D/openssl.cnfexport KEY_DIR=$D/keysexport KEY_SIZE=1024export KEY_ORG="logicmd"export KEY_COUNTRY=USexport KEY_PROVINCE=CAexport KEY_CITY=SanFrancisco./vars./build-key | 
客户端
1.分发配置文件给用户
将配置文件vpn.ovpn,证书 ca.crt client.crt client.key分发给用户。| vpn.ovpn | |
01 02 03 04 05 06 07   08 09 10 11 12 13 14   15 16 17 18 19 20 21   22  | clientdev tunproto udpremote YOUR.SERVERS.IPV4.DOMAINNAME 8888resolv-retry infinitenobind#个人感觉客户端不必,降权后不利于路由表管理;user nobody;group nobodypersist-keypersist-tunca ca.crtcert logicmd.crtkey logicmd.keyns-cert-type servercipher AES-128-CBC   # AEScomp-lzoverb 2mute 20script-security 2# Here comes the route table.max-routes 1500 | 
2.客户端的安装
具体详见VPN配置手册- Windows用户需要下载官网安装包 对于需要使用VPN Over IPv6的童鞋下载IPv6 Patched的openvpn.exe 替换掉X:\Program Files\OpenVPN\bin相应文件。
 - Linux用户则应该按照本文开始服务器端的安装方法同样在客户端安装OpenVPN。Linux中OpenVPN的配置文件证书位置似乎不支持相对路径。
 
FAQ
1.Windows路由表速度过慢删掉以下1   2  | route-method exeroute-delay 2 | 
1 2  | verb 2mute 20 | 
--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 7/04/2012 04:20:00 AM --
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326 ,http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)
没有评论:
发表评论