Tuesday, March 10, 2015

OpenVPN 配置

服务器端

安装软件包

sudo aptitude install openvpn openssl openssl-devel pam pam-devel -y

用 easyrsa 来生成配置的证书和密钥等文件

获取 easyrsa

git clone https://github.com/OpenVPN/easy-rsa
参考 easyrsa 的说明文件 来生成如下各个文件 (最新版本命令略有不同,但过程是一致的)。
文件名谁需要作用是否需保密
ca.crt服务端 + 所有客户端根 CA 证书
ca.key密钥签名服务器根 CA 密钥
server.crt服务端服务端证书
server.key服务端服务端密钥
dh{n}.pem服务端迪菲·赫尔曼参数
client1.crt客户端1客户端1的证书
client1.key客户端1客户端1的密钥

修改 vars 文件来提前配置一会生成过程中的默认变量

export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="Beijing"
export KEY_ORG="Orgnization"
export KEY_EMAIL="user@some.com"
export KEY_OU="SE"
export KEY_NAME="EasyRSA"
完成后更新到环境变量中
source vars

清理环境

./clean-all

生成 CA 的证书和密钥

./build-ca
基本上一路回车选择默认值即可。

生成服务端证书和密钥

./build-key-server server1

对每个客户端单独生成证书和密钥

./build-key client1

修改服务端的配置文件

一般位于 /etc/openvpn/server.conf,如果不存在可以从 cp /usr/share/openvpn/examples/server.conf 复制一份。
修改其中的各个证书、密钥文件的位置,重启服务。
port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/kumu_server.crt
key /etc/openvpn/keys/kumu_server.key  # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "route 192.168.10.0 255.255.255.0" # 推送路由
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status /etc/openvpn/keys/openvpn-status.log
verb 3

配置路由并重启服务

echo 1 > /proc/sys/net/ipv4/ip_forward
openvpn --config /etc/openvpn/server.conf --daemon

客户端

sudo apt-get install -y openvpn
客户端需要如下几个文件:
ca.crt  client1.crt  client1.key  config.ovpn
其中 config.ovpn 需要手动编写,内容为
#config.ovpn
dev tun
client
remote 9.186.100.149
ca ca.crt
cert client1.crt
key client1.key
启动客户端
sudo openvpn --config /path/to/config.ovpn

No comments:

Post a Comment