open-vpn概述
Open-vpn 是一个基于 OpenSSL 库的应用层实现。和传统×××相比,它的优点是简单易用
什么是Open-vpn?
直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,Open-vpn无疑是Linux下开源×××的先锋,提供了良好的性能和友好的用户GUI。该软件最早由James Yonan编写
Open-vpn允许参与建立×××的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议
Open-vpn能在Linux、xBSD、Mac OS X与Windows2000/XP上运行。它并不是一个基于Web的×××软件,也不与IPsec及其他×××软件包兼容。
实验环境
系统版本:centos7x3.10.0-514.el7.x86_64
关闭防火墙并禁止开机自启
systemctl stop firewalld.service systemctl disable firewalld
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
重启 reboot
安装软件包
1、更新源
yum upgrade
2、装epel库
yum -y install epel-release
3、安装依赖包
yum -y install open openssh-server lzo openssl openssl-devel NetworkManager-open open-auth-ldap
4、下载easy-rsa
链接:https://pan.baidu.com/s/11v9xwlLnjJH2H0E_YEiMZA
提取码:sde7
1)下载easy-rsa-release-2.x.zip
5、拷贝配置文件
cp /usr/share/doc/open×××-2.4.4/sample/sample-config-files/server.conf /etc/open×××
6、备份配置文件
cp /etc/open×××/server.conf /etc/open×××/server.conf.back
7、编辑配置文件
cat /etc/open×××/server.conf 注:这里使用的是udp协议(tcp协议在网络较弱时容易断线)
配置证书
1、递归创建目录
mkdir -p /etc/open×××/easy-rsa/2.0/
2、保留原文件属性复制文件
cp -a /usr/local/open×××/easy-rsa-release-2.x/easy-rsa/2.0/ /etc/open×××/easy-rsa/2.0 注:这里以后就是各种证书和密钥的根据地了!
3、编辑vars文件
vi /etc/open×××/easy-rsa/2.0/vars
4、制作证书
1)备份证书配置文件
cp /etc/open×××/easy-rsa/2.0/openssl-1.0.0.cnf /etc/open×××/easy-rsa/2.0/openssl.cnf
2)切换目录让配置文件生效(根据截图提示按步骤操作)
当执行完 ./build-ca后按回车键,一直到结束。
3)创建服务端证书
执行命令./build-key-server server 按回车键进行,在提示输入密码的地方,设置一个密码如feiyu,在An optional company name处输入xingyoucai.com,最后输入两次“y”回车。
4)创建客户端证书
执行命令生成迪菲•赫尔曼交换密钥./build-dh 创建秘钥文件,等待命令执行完。
5)查看目录中创建好的证书文件
ls /etc/open×××/easy-rsa/keys/
6)创建客户端证书文件(在/etc/open×××/easy-rsa/2.0/下执行) 执行命令./build-key client1创建客户端证书文件,按回车进行,提示输入密码的地方,输入之前设置的证书密码feiyu,An optional company name处输入先前设置的公司名字(xingyoucai.com)。【一定要和先前输入的一样,其他参数如果前面设置了,也要保持一致噢】 #另外注意:有多少个客户端就需要./build-key client 多少次,当然client名字需不同。
7)查看证书
ls /etc/open×××/easy-rsa/keys/
设置iptables、路由转发
1、安装iptables
yum -y install iptables-services
2、关闭Centos7默认的 firewall防火墙
systemctl stop firewalld systemctl disable firewalld
3、启动并设置iptables开机自启
systemctl start iptables systemctl enable iptables
4、清空iptables默认规则
iptables -F
iptables -X
iptables -Z
5、设置iptables NAT转发规则
iptables -t nat -A POSTROUTING -s 10.0.100.0/24 -j MASQUERADE 注:保存防火墙规则service iptables save(防止重启规则丢失)
6、开启路由转发
cat /etc/sysctl.conf
验证: sysctl -p
设置open×××
1、创建日志存放目录
mkdir /var/log/open×××/
2、设置启动文件
systemctl -f enable open×××@server.service
3、启动open×××
systemctl start open×××@server.service
//查看状态信息解决报错
systemctl status open×××@server.service
//解决完报错重启open×××
systemctl start open×××@server.service 注:以上报错问题已解决,解决办法为注释以下这两行重启就好了!
#tls-auth ta.key 1 #explicit-exit-notify 1
4、打开iptables防火墙的1194端口
iptables -A INPUT -p udp --destination-port 1194 -j ACCEPT
5、查看open×××服务
netstat -antulp
6、open×××客户端(电脑、手机)连接×××使用telnet命令连接×××1194端口
配置客户端实现连接
1、把服务器上的三个客户端证书文件,下载到本地电脑配置×××客户端。
/etc/open×××/easy-rsa/keys/ca.crt
/etc/open×××/easy-rsa/keys/client.crt
/etc/open×××/easy-rsa/keys/client.key
2、安装好open×××客户端软件后,把证书文件,存放到open×××安装目录的config文件夹下。 从sample-config文件夹下,拷贝客户端的配置文件client到config文件夹下。
3、编辑config文件夹下的配置文件client,修改remote my-server-1 1194 这行配置,指定open×××服务器的ip地址,默认为你服务器的外IP然后修改协议。需要注意的是:在服务器端的配置需要和客户端的配置参数一致
4、客户端连接,右击软件生成的运行图标,点击连接。