安装依赖

sudo apt-get -y install openvpn libssl-dev openssl
可以查看一下版本,最好和客户版一致
openvpn –version

安装easy-rsa

easy-rsa是用来制作openvpn相关证书的。

sudo apt-get -y install easy-rsa

制作证书

所有的证书文件都放在/etc/openvpn/easy-rsa
sudo mkdir /etc/openvpn/easy-rsa/

然后把/usr/share/easy-rsa/目录下的所有文件全部复制到/etc/openvpn/easy-rsa/下,如下:

sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
(当然,也可以直接在/usr/share/easy-rsa/制作相关的证书)

由于我们现在使用的是ubuntu系统,所以我们必须切换到root用户下才能制作相关证书,否则easy-rsa会报错。如果是centos系统,则不存在此问题

切换到root用户 并转到/etc/openvpn/easy-rsa/目录
sudo su && cd /etc/openvpn/easy-rsa/
修改一个默认证书配置文件
sudo vi /etc/openvpn/easy-rsa/vars

1
2
3
4
5
6
7
8
9
10
11
12
13
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”HZ”
export KEY_CITY=”HangZhou”
export KEY_ORG=”ilanni”
export KEY_EMAIL=”ilanni@ilanni.com”
export KEY_OU=”ilanni”
export KEY_NAME=”test

最后一个KEY_NAME后面要用到

制作前准备

是配置生效并删除之前的证书
source vars && ./clean-all

制作CA证书

./build-ca
一路回车即可,生成的证书在keys目录

现在把该CA证书的ca.crt文件复制到openvpn的启动目录/etc/openvpn下
cp keys/ca.crt /etc/openvpn/

制作服务端证书

注意:下面命令中test,就是我们前面vars文件中设置的KEY_NAME

./build-key-server test
一路回车即可,生成的证书也在keys目录

制作交换文件

现在为服务器生成加密交换时的Diffie-Hellman文件

./build-dh
一路回车即可,生成的证书也在keys目录

复制相关证书
cp keys/test.crt keys/test.key keys/dh2048.pem /etc/openvpn/

制作Client端证书

下面命令中的demo,可以自定义,在客户端连接的时候会显示
./build-key demo
一路回车即可,生成的证书也在keys目录,如果觉得繁琐可以用./build-key –batch test1,不询问

配置Server端

复制默认配置并修改
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ && cd /etc/openvpn/ && gzip -d server.conf.gz
vim server.conf
修改如下,终端看后面有#的行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
port 1194
proto tcp#
dev tun
ca ca.crt
cert test.crt#
key test.key#
dh dh2048.pem#
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

如果上述文件如果没有存放在/etc/openvpn/目录下,在server.conf文件中,我们要填写该文件的绝对路径

启动OpenVpn

/etc/init.d/openvpn start
查看端口
netstat -tunlp |grep 1194
到此已经搭建成功

参考
http://www.ilanni.com/?p=9837