服务器环境:CentOS release 6.4
客户端:C200、C401话机
注意:目前话机默认使用openVPN udp+comp-lzo模式,不支持ta.key+tcp+tls模式。使用ta.key+tcp+tls模式,C200电话容易出现故障,必须使用post模式清空配置才能再次使用。
进入post模式:断电重启时,按住“#”不放,直到显示post字样即可松开。依次输入“*#168”,即可清空配置。
1.依赖包安装
#yum upgrade #更新源
#yum -y install epel-release #安装epel库
(或rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm)
#yum install pam-devel
#yum install gcc gcc-c++ iptables
#yum -y install lzo #安装lzo,用于压缩通讯数据加快传输速度
#yum -y install openssl openssl-devel #安装一系列相关软件
#yum makecache //更新本地缓存
2.安装OpenVPN
#yum install openvpn
想要生成各种证书和密钥,我们还要用到easy-rsa(只有服务器端需要easy-rsa,客户端无需安装)。OpenVPN 2.3.x并没有自带这个东西,我们还需要去GitHub下载easy-rsa。但是GitHub上的easy-rsa已经升级到了3.0版本,该版本几乎重写了之前所有的程序代码,连使用方法都全变了,然而OpenVPN的官方文档并没有作相应更新,其中介绍的仍然是easy-rsa 2.0的操作方法。为了避免不必要的麻烦,推荐下载2.0版本的easy-rsa。将电脑上下好的easy-rsa-release-2.x.zip放到/mnt目录下,解压并复制到OpenVPN的目录下。
#unzip -q easy-rsa-release-2.x.zip
#cp -r easy-rsa-release-2.x/easy-rsa /etc/openvpn
#cd /etc/openvpn/easy-rsa/2.0
#vim vars #修改国家、省份、城市、组织、邮箱等,也可以省略这一步,按默认
#source ./vars #初始化环境变量
#./clean-all #清除keys目录下与证书相关的文件。第一次安装,可以省略此步骤
(接下来,生成根证书和根秘钥)
#./build-ca
#./build-key-server server
#./build-key client
#./build-dh
3.复制、修改配置文件
#mkdir /etc/openvpn/server_keys
#cp /etc/openvpn/easy-rsa/keys/{ca.crt,server.key,server.crt,dh2048.pem} /etc/openvpn/server_keys
#cp /usr/share/doc/openvpn-xxx/sample/sample-config-files/server.conf /etc/openvpn/server_keys
#vim /etc/openvpn/server.conf
编辑服务器配置文件参考:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
client-to-client
comp-lzo
max-clients 100
persist-key
persist-tun
status openvpn-status.log
verb 3
4.开启服务
a.关闭SELINUX
#setenforce 0 //暂时关闭
修改SELINUX=disabled /etc/selinux/config
b.开启服务器端路由转发功能
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl –p
#echo 1 > /proc/sys/net/ipv4/ip_forward #临时开启路由转发
c.设置nat转发:
注:保证VPN地址池可路由出外网
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
d.设置openvpn端口通过:
# iptables -A INPUT -p TCP --dport 1194 -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
重启iptables:
注:这里提一下,INPUT策略是执行后即时生效的,POSTROUTING需要保存并重启服务才能生效
# service iptables save
# service iptables restart
e.时间同步(重要):
# ntpdate asia.pool.ntp.org
f.开启openvpn服务
# openvpn /etc/openvpn/server_keys/server.conf //开启服务
# ss -nutl |grep 1194
如果开启后没有打开1194 端口,说明开启服务失败,可能是配置文件有错,也有可能是权限不够,请查询日志解决。
1.从服务器拷贝配置文件
在服务器/etc/openvpn/easy-rsa/keys目录下,拷贝ca.crt,client.crt,client.key三个文件
2.配置客户端文件
创建文件client.ovpn,编辑客户端配置文件参考:
client
dev tun
proto udp
remote 172.16.8.250(服务器IP) 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
3.上传配置文件
打开话机web页面,上传配置文件,启用OpenVPN可以获得分配的虚拟IP
附:easy-rsa-release-2.x.zip