CentOS安装OpenVPN
本文写于 2015年。 |
系统环境
CentOS版本:6.4
OpenVPN版本:2.3.4
需求说明
使用VPN,实现广域网内服务器之间的安全互访。
选择OpenVPN,因为其在可靠性方面值得信赖,在后续的使用中,证明了这一点。
配置过程
1.安装依赖包
yum install openssl-devel lzo-devel pam-devel gcc |
2.下载安装包
从官网下载安装包openvpn-2.3.4.tar.gz,解压
./configure |
3.安装easy-rsa
新建/etc/openvpn目录,下载easy-rsa
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip |
解压上述文件,进入解压后的目录
cp -r ./easy-rsa /etc/openvpn |
修改/etc/openvpn/easy-rsa/2.0/var文件
# These are the default values for fields |
检查本机安装的openssl版本:
rpm -q openssl |
执行结果:
openssl-1.0.1e-16.el6_5.15.x86_64 |
重命名预置的openssl配置文件
cp /etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/2.0/openssl.cnf |
4.生成key
在/etc/openvpn/easy-rsa/2.0执行下列命令
. ./vars |
5.开启包转发
编辑/etc/sysctl.conf,修改
net.ipv4.ip_forward = 0为net.ipv4.ip_forward = 1 |
保存,运行sysctl –p
配置生效,修改防火墙策略
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source xx.xx.xx.xx (xx.xx.xx.xx为公网IP) |
6.配置文件
从源码包中获取配置文件模板
cp /root/download/openvpn-2.3.4/sample/sample-config-files/server.conf /etc/openvpn/ |
修改配置文件
loacl xx.xx.xx.xx |
7.服务端启动
screen启动:
openvpn --config /etc/openvpn/server.conf |
后台启动:
openvpn --config /etc/openvpn/server.conf & |
8.客户端配置
安装Openvpn客户端,将服务端生成的密钥文件
ca.crt |
放在客户端安装目录的config目录
修改客户端配置文件client.ovpn
remote xx.xx.xx.xx 1194 (服务端IP) |
9.启动客户端
Linux
启动方式,同服务端相同
Windows
以管理员权限启动客户端OpenVPN GUI
点击Connect
10.固定客户端IP地址
打开配置
client-config-dir ccd |
在/etc/openvpn新建ccd目录
在ccd目录中新建以客户端key为名称的文件,如client(无后缀名)
文件内容ifconfig-push 10.8.0.5 10.8.0.6
openvpn只支持255.255.255.252 的子网
252子网只有三个IP,客户端,服务器,广播地址
如子网10.8.0.36 主机10.8.0.37 10.8.37 广播地址10.8.0.39 |
11.客户端证书注销
进入 /etc/openvpn/easy-rsa/2.0 目录
执行 . ./vars 命令
./revoke-full xxx ( xxx 为待注销的客户端名称)
keys 目录生成一个 crl.pem
在 服务端 server.conf 配置中,增加配置
crl-verify /etc/openvpn/easy-rsa/2.0/keys/crl.pem |
重启服务端生效