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、客户端连接,右击软件生成的运行图标,点击连接。