2011年10月25日星期二

Veer使用openvpn转pptp vpn翻墙

       前几天入手了一个hp veer,商家刷了汉化补丁并安装了一些应用。用着觉得还是不舒服,于是我就重新刷了原版的rom,并用preware安装了一些补丁和应用,用起来顺手很多。但突然发现,veer的vpn配置里只有vpnc和cisco这两种,而我购买的vpn是pptp类型的。在preware里搜了一下pptp无果,难道说我的veer就只能在墙内使用?当然不是了,因为还可以使用openvpn。
       Veer可以使用openvpn,而我手上只有pptp vpn,于是我就想在一台机子里搭建一个openvpn srv,然后将这个openvpn的出口都由pptp转出去,这个转发只需使用iptables就搞定了。显然,这里操作都是在Linux下进行的,其他平台能否使用就不知道了。
       具体方法: (我使用的是Archlinux)
       1. 服务器端
          安装openvpn
          # pacman -S openvpn
          生成证书
          # cp -r /usr/share/openvpn/easy-rsa /etc/openvpn
          # cd /etc/openvpn/easy-rsa
          # . ./vars
          # ./clean-all
          # ./build-ca
          # ./build-key-server 主机名 # 注意这里不要添加密码,这里主机名是你的机器的主机名,可用hostname查看
          # ./build-dh
          # ./build-key 客户端主机名  # 同样不加密码,客户端主机名随意弄个就行,如veer。这里所有的证书都保存在/etc/openvpn/easy-rsa/keys中,需要将客户端使用的证书发送给客户端
          配置openvpn (这里我使用证书验证,使用密码验证的请自行Google)    
                /etc/openvpn/openvpn.conf:
                     port 1194
                     proto tcp
                     dev tun0
                     ca /etc/openvpn/easy-rsa/keys/ca.crt
                     cert /etc/openvpn/easy-rsa/keys/主机名.crt   # 这里要注意证书的名字
                     key /etc/openvpn/easy-rsa/keys/主机名.key   # 同样是证书的名字
                     dh /etc/openvpn/easy-rsa/keys/dh1024.pem
                     server 10.8.0.0 255.255.255.0                           # vpn的网段,自己设吧
                     ifconfig-pool-persist ipp.txt
                     keepalive 10 120
                     comp-lzo
                     user nobody 
                     group nobody
                     persist-key 
                     persist-tun 
                     status /var/log/openvpn-status.log 
                     verb 3 
                     log-append /var/log/openvpn 
                     status /tmp/vpn.status 10 
                     push "dhcp-option DNS 8.8.8.8" 
                     push "redirect-gateway local" 
          修改服务器的转发配置: 
          # echo 1 > /proc/sys/net/ipv4/ip_forward
          # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ppp0 -j SNAT --to pptp_vpn网卡的地址 
          # /etc/rc.d/iptables save 


          运行openvpn srv: 
          # /etc/rc.d/openvpn start 
       2. 客户端  (即veer) 
          在veer里使用preware安装openvpn, Xecutah, XServer, XTerm, openssh等。 
          首先在一台机子上写好客户端的配置,然后使用scp将客户端需要的证书和配置一同传过去就好了。 
          配置文件 veer.conf: (这个名字可以随意起) 
                client remote 服务器的ip 1194 
                dev tun0 
                proto tcp 
                resolv-retry infinite 
                nobind 
                persist-key
                persist-tun 
                verb 2 
                ca ca.crt 
                cert 客户端主机名.crt  # 注意证书的名字,这些证书就是前面生成的 
                key 客户端主机名.key  # 同样是证书的名字
                comp-lzo
          使用scp把证书和配置传到veer: (注意,这是在veer上的XTerm中进行操作) 
          # scp -r root@服务器的ip:/root/openvpn . # 注意最后有一点,这里假设证书和客户端配置都是放在服务器的/root/openvpn目录中
          # cd openvpn && openvpn veer.conf # 认证通过就可以翻墙了

没有评论: