Linux OpenVPN服务器快速搭建

使用OpenVPN可以在Linux下,三步快速搭建一个VPN服务器。

  1. 安装服务端程序
  2. 配置服务端
  3. 安装客户端

一.安装服务端软件

下载lzo和openvpn:
http://www.oberhumer.com/opensource/lzo/download/
http://openvpn.net/release/
根据需要,下载需要的版本。我使用了lzo-1.08.tar.gz 和 openvpn-2.0.tar.gz。分别进行解压和安装:
# ./configure
# make && make install

二.配置服务端

1. 生成证书
使用openvpn安装包中的easy-rsa生成相应的服务端和客户端证书。
根据需要,编辑easy-rsa目录中的vars文件:
export D=”`pwd`”
export KEY_CONFIG=”$D/openssl.cnf”
export KEY_DIR=”$D/keys”
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”SH”
export KEY_CITY=”PD”
export KEY_ORG=”test”
export KEY_EMAIL=”xx@xx.com”

# source vars
source与shell命令的不同在于,source会在当前shell下执行指定的命令。
执行完成后,查看一下环境变量,确保赋值成功。

第一次安装时,可以运行./clean-all,会清除所有已生成的证书密钥。
生成服务端证书:
# ./build-ca
根据提示填入相应信息。

2. 生成密钥
生成服务端密钥:
# ./build-key-server server-name
根据提示填入相应信息。

生成客户端密钥:
# ./build-key client-name
每个客户端的Common Name(client name)必须不一样。同理可以生成其他的客户端密钥。

3. 生成Diffie Hellman参数
# ./build-dh

4. 将 keys 下的所有文件打包下载到本地

5. 创建、配置服务端配置文件
/etc/openvpn/server.conf

dev tun
ifconfig 10.8.0.1 10.8.0.2
ca xx/ca.crt #指向生成的服务端证书
cert xx/server.crt #指向生成的服务器证书
key xx/server.key  #指向生成的服务器密钥
dh xx/dh1024.pem  #指向相应目录下的文件
user nobody ;降低执行权限
group nobody
port 3389 ;改端口
comp-lzo ;开启压缩加速
;no-log ;关闭日志
verb 0
status /dev/null
log /dev/null
log-append /dev/null

6. 开启Linux服务器的路由功能,并配置iptables
在/etc/sysctl.conf中添加
net.ipv4.ip_forward = 1
# sysctl –p
# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
# /etc/init.d/iptables save

7. 添加开机启动
编辑/etc/rc.local,添加命令行:
使用nohup后台运行
nohup openvpn {path to server.conf} >/dev/null 2>&1 &

三.安装客户端

安装客户端相对要容易很多,直接在OpenVPN官网下载客户端安装即可。
安装完成后,需要配置一下客户端的配置文件,在/config文件夹下:

dev tun
remote {ip} {port}
#指定相应的证书和客户端密钥(第二步中在服务端生成的)
ca "xxx\\sample-config\\key\\ca.crt"
cert "xxx\\sample-config\\key\\client.crt"
key "xxx\\sample-config\\key\\client.key"

四.FAQ

安装、配置和使用的过程中,可能还会遇到一些问题,下面是我遇到的一些问题和解决方案:
1. Win8系统中,客户端程序的安装使用。
前往http://openvpn.net/index.php/open-source/downloads.html下载最新版客户端程序。安装并配置客户端配置文件,使用管理员权限启动客户端即可。
2. OpenVPN拨号联网,无法上网的问题。
首先查看服务端是否开启了路由转发。
是否有acl策略阻止,检查iptables。
检查客户端路由策略。客户端路由策略需按以下规则配置:
静态路由
route add vpn服务器地址 mask 255.255.255.255 客户端网关地址 优先级 最高
默认路由
route add 0.0.0.0 mask 0.0.0.0 vpn网关 优先级 其次
默认路由
route add 0.0.0.0 mask 0.0.0.0 客户端网关 优先级 再次

Reference:
http://net.chinaunix.net/8/2008/10/10/1285095.shtml
http://www.vpntutorials.com/tutorials/openvpn-client-setup-tutorial-for-windows-8/
http://blog.chinaunix.net/uid-26835604-id-3484906.html
https://www.virtacoresupport.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=80

Leave a comment

Your email address will not be published. Required fields are marked *