Debian下架设OpenVPN一键脚本

OpenVPN是一个用于创建虚拟专用网络加密通道的软件包。它允许参与创建VPN的单点使用公开密钥、电子证书、或者用户名/密码来进行身份验 证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库,并包含了许多安全性的功能。它提供了可选的数据包HMAC功能以提高连接的 安全性。此外,OpenSSL的硬件加速也能提高它的性能。

OpenVPN连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。OpenVPN使用通用网络协议(TCP与UDP)的特点使它成为IPsec等协议的理想替代,尤其是在ISP过滤某些特定VPN协议的情况下。(摘自维基百科

目前一般收费的VPS都可以搭建OpenVPN服务,下面介绍如何在Debian系统搭建OpenVPN服务器端以及如何配置Windows客户端。

服务器端

OpenVZ类型的VPS需要首先检查是否支持Tun/Tap和nat,方法:

以Root登陆输入命令

cat /dev/net/tun
若返回cat: /dev/net/tun: File descriptor in bad state 则说明tun可用输入

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
若返回iptables: No chain/target/match by that name 则说明nat模块正常可用
若以上返回信息不符请联系客服要求开通Tun/Tap和iptable nat。

本次架设借用了VPSNOC的一键脚本,其debian-openvpn.sh已经年久失修不能正常使用了,我稍作修改使其能正常使用(本脚本在123systems 的年付10刀VPS上debian 6 32位系统下测试通过),OpenVPN一键脚本使用方法:

以Root登陆vps输入以下命令

wget http://9.site44.com/debian-openvpn.sh;sh debian-openvpn.sh

稍等片刻(过程中遇见[y/n]选择请输入y后回车),依次出现需要填写内容:
国家(两个英文字母)
省份/州(两个英文字母)
城市(英文字母)
组织名称 (英文字母)
部门名称 (英文字母)
通用名  (英文字母)
姓名  (英文字母)
邮箱密码(英文数字组合)
凭证名  (英文字母)
按两次Y后,安装完成(上面部分可以自行填写,也可直接回车使用默认值,不过要格外注意过程中有个要输入extra的不要输入错误了)。

上面是生成服务器端证书,完成后还有个类似的过程来生成客户端证书,按照前面填写即可,
等全部安装完成后root目录下会出现一个keys.tgz压缩包(openvpn配置文件),使用Tunnelier或WinSCP的sftp功能将压缩包下载至本地,待用。

Windows客户端配置

下载OpenVPN:http://www.openvpn.net/index.php/open-source/downloads.html 下载最新版本的Windows Installer安装包。然后运行安装(需要以管理员权限安装),按过程中会出现安装网卡驱动安全警告,确认继续。

解压从服务器上down下来的keys.tgz,解压至openvpn安装目录下的config目录,如:C:\Program Files\OpenVPN\config。
运行桌面上的OpenVPN GUI图标(如果是win7/vista系统建议以管理员身份运行)右击右OpenVPN图标点Connect,稍等图标变成绿色后说明链接成功。访问本博客 http://igfw.net/ 测试下吧。

当然OpenVPN可以在Windows 7(含Vista、2008和8)/Windows XP(含2003及以前版本)、Mac OS X(各个版本)/Ubuntu(及其他Linux)/FreeBSD(及其他BSD,及Solaris)、Android(需root或固件支持)/iOS(iPhone、iPod touch和iPad,需越狱)、webOS/Maemo(如Nokia N900等,及MeeGo)/Windows Mobile、DD-WRT/Tomato/Openwrt/pfSense/Mikrotik等众多设备上使用,相关教程可以参考此文

本文原始地址http://igfw.net/archives/12042

  1. pro
    2012年12月20日15:24

    生成的配置能几个人同时使用吗?还是每执行一次sh debian-openvpn.sh生成一个配置文件供一个人使用.
    另外openvpn有最大连接限制吗?

  2. 搞不好了
    2012年10月9日02:51

    搞不好了 :不好意思,问一下。如果VPN突然掉线,由于是全局代理。但是用户不知情的情况下,还在刷新页面,或者点击打开其他页面。以期打开网页,或者以为该网页没有接受成功,而刷新页面。这样是否会存在安全隐患,暴露自己当前真实IP地址给所访问的网站,或者说,把访问的网页的请求直接通过ISP的线路发出连接请求?谢谢。

  3. 搞不好了
    2012年10月9日02:51

    不好意思,问一下。如果VPN突然掉线,由于是全局代理。但是用户不知情的情况下,还在刷新页面,或者点击打开其他页面。以期打开网页,或者以外该网页没有接受成功,而刷新页面。这样是否会存在安全隐患,暴露自己当前真实IP地址给所访问的网站,或者说,把访问的网页的请求直接通过ISP的线路发出连接请求?谢谢。

    • iGFW
      2012年10月9日11:01

      会,有这个问题。

  4. AS
    2012年10月8日19:25

    http://ipchange.net/
    “IP Changer is a small program to quickly change and view your IP address or DNS/WINS between four different configurations. ”
    https://sourceforge.net/projects/winipchanger/?source=directory

    2012年10月8日