Centos7+Open***通过证书登陆访问

我们前面文章介绍了Centos7下安装接配置PPTP协议的×××,今年我们主要介绍Centos7+Open***通过证书&&账户及密码登陆配置介绍,我们都知道,Open××× 是一个基于 OpenSSL 库的应用层 ××× 实现。和传统 ××× 相比,它的优点是简单易用,Open×××允许参与建立×××的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1 协议函式库。Open×××能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista上运行,并包含了许多安全性的功能。它并不是一个基于Web的×××软件,也不与IPsec及其他×××软件包兼容,从Open×××2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。 Open×××所有的通信都基于一个单一的IP端口, 默认且推荐使用UDP协议通讯,同时TCP也被支持。Open×××连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。服务端具有向客 户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。Open×××提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们, 可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过LZO算法压缩。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择TCP协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下,具体就不多介绍了,开始我们介绍:

Hostname:Open***

IP:192.168.5.20

Role:Open***

我们在centos7下安装open***需要指定一个源,不然无法通过yum安装,当然我们也可以通过下载open***包后通过编译的方式进行安装,那样太麻烦,所以我们就是用了yum安装。

我们首先新建一个源,我们指向aliyun

Centos7+Open***通过证书登陆访问_第1张图片

我们需要新建一个源

cd /etc/yum.repos.d/
vim epel.repo
[epel]
name=aliyun epel
baseurl=http://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0

clip_p_w_picpath002

Yum install -y open***

Centos7+Open***通过证书登陆访问_第2张图片

yum install -y easy-rsa

Centos7+Open***通过证书登陆访问_第3张图片

拷贝配置文件

cp /usr/share/doc/open***-*/sample/sample-config-files/server.conf /etc/open***

clip_p_w_picpath005

编辑open***主配置文件

我们在编辑前先过滤一下

grep -v '^#' /etc/open***/server.conf | grep -v '^$'

Centos7+Open***通过证书登陆访问_第4张图片

所以我们在操作前先把server.conf备份一下,建议操作前都备份一下默认配置

Cp /etc/open***/server.cof /etc/open***/server.conf.bak

clip_p_w_picpath007

vim /etc/open***/server.conf

编译配置文件进行修改。我们建议使用tcp,因为tcp可以使用代理

Centos7+Open***通过证书登陆访问_第5张图片

Centos7+Open***通过证书登陆访问_第6张图片

Centos7+Open***通过证书登陆访问_第7张图片

Centos7+Open***通过证书登陆访问_第8张图片

主要修改以下几个配置,把前边的分号注释去掉,其中DNS配置项,改成阿里公共DNS地址。

以下为总结的配置文件内容。

proto tcp #选择TCP,允许http代理
dh dh2048.pem 
server 192.168.1.0 255.255.255.0 #***的内网地址段,与NAT转发规则相对应,open***在使用tun路由模式时,分配给client端分配的IP地址段    
push "redirect-gateway def1 bypass-dhcp" #重定向客户端的网关,在进行×××时会使用到
push "dhcp-option DNS 223.5.5.5"    
push "dhcp-option DNS 223.6.6.6"    user nobody #open***运行时使用的用户及用户组
group nobody    
log open***.log #log选项,重启服务器将导致日志清零,亦可选择
log-append 
verb 5
-------------------------------------
port        1194 (使用的端口默认1194可自定义)
proto       tcp 使用的协议可以设置为udp客户端o***文件中设置要与此一致
dev         tun  #基于路由的隧道
ca          /etc/open***/easy-rsa/2.0/keys/ca.crt     #之前执行./build-ca建立的根证书
cert        /etc/open***/easy-rsa/2.0/keys/server.crt #之前执行./build-key-server生成的服务器私有证书
key         /etc/open***/easy-rsa/2.0/keys/server.key #之前执行./build-key-server生成的服务器私有密钥
dh          /etc/open***/easy-rsa/2.0/keys/dh2048.pem  #之前执行./build-dh生成的文件
server      10.1.1.0 255.255.255.0  #要分配的×××网段不能与本机IP网段相同
ifconfig-pool-persist ipp.txt #记录客户端所获得IP
push "route 172.31.90.0 255.255.255.0"  #通过××× Server去往其它网段路由重启***服务生效
log         /var/log/open***.log  #定义日志路径
max-clents 100  #允许客户端并发连接的数量
client-to-client   #允许客户端之间相互通讯
status open***-status.log  #定义open***连接状态日志
comp-lzo  #开启×××连接压缩.客户端必须做相同设置
persist-key
persist-tun
crl-verify /etc/open***/easy-rsa/2.0/crl.pem   ####用于注销已删除用户的key

配置证书

mkdir -p /etc/open***/easy-rsa/keys
cp -a /usr/share/easy-rsa/2.0/* /etc/open***/easy-rsa/

clip_p_w_picpath012

vi /etc/open***/easy-rsa/vars
export KEY_COUNTRY="CN"
export KEY_PROVINCE="CA"
export KEY_CITY="Bei Jing"
export KEY_ORG="ixmsoft" #定义所在的组织
export KEY_EMAIL="***@ixmsoft.com"
export KEY_OU="ixmsoft" #定义所在的单位
export KEY_NAME="open***" #定义open***服务器的名称
export KEY_CN="ixmsoft" 这行配置,前边默认的“#”号注释去掉。

Centos7+Open***通过证书登陆访问_第9张图片

制作证书

cp /etc/open***/easy-rsa/openssl-1.0.0.cnf /etc/open***/easy-rsa/openssl.cnf
cd /etc/open***/easy-rsa #切换工作目录

clip_p_w_picpath014

source ./vars #让配置文件生效
./clean-all

clip_p_w_picpath015

./build-ca #之前已配置好相关参数,故执行命令后,按回车键,一直到结束。

Centos7+Open***通过证书登陆访问_第10张图片

创建服务端证书
./build-key-server server
#按回车键进行,在提示输入密码的地方,设置一个密码如ixmsoft,在An optional company name处输入ixmsoft.com,最后输入两次“y”回车

Centos7+Open***通过证书登陆访问_第11张图片

创建客户端证书

./build-dh #创建秘钥文件,等待命令执行完。

Centos7+Open***通过证书登陆访问_第12张图片

ls /etc/open***/easy-rsa/keys/ #可以看到,目录中已经创建好了证书文件。

clip_p_w_picpath019

cd /etc/open***/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/open***

clip_p_w_picpath020

cd /etc/open***/easy-rsa
./build-key client
#创建客户端证书文件,按回车进行,提示输入密码的地方,输入之前设置的证书密码-ixmsoft,An optional company name处输入先前设置的公司名字(ixmsoft.com)。【一定要和先前输入的一样哦.,其他参数如果前面设置了,也要保持一致噢】 #另外注意:有多少个客户端就需要./build-key client 多少次,当然client名字需不同。

Centos7+Open***通过证书登陆访问_第13张图片

ls /etc/open***/easy-rsa/keys/

clip_p_w_picpath022

设置iptables、路由转发

yum install -y iptables-services

Centos7+Open***通过证书登陆访问_第14张图片

systemctl enable iptables
systemctl stop firewalld #关闭Centos7默认的 firewall防火墙
systemctl start iptables #启动iptables

clip_p_w_picpath024

iptables -F #清空默认的iptables规则

clip_p_w_picpath025

设置iptables NAT转发规则

iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -j MASQUERADE
service iptables save #保存防火墙规则

clip_p_w_picpath026

echo 1 > /proc/sys/net/ipv4/ip_forward #临时开启路由转发
vi /etc/sysctl.conf #编辑配置文件,添加以下配置,设置永久路由转发
net.ipv4.ip_forward = 1

Centos7+Open***通过证书登陆访问_第15张图片

clip_p_w_picpath028

启动open***
systemctl -f enable open***@server.service #设置启动文件
systemctl start open***@server.service #启动open***的命令

clip_p_w_picpath029

Centos7+Open***通过证书登陆访问_第16张图片

Vim /etc/open***/server.conf
注释这一行
explicit-exit-notify 1

Centos7+Open***通过证书登陆访问_第17张图片

我们保存退出后,再次启动,然后查看状态,正常了

Centos7+Open***通过证书登陆访问_第18张图片

然后我们查看状态

Centos7+Open***通过证书登陆访问_第19张图片

open***客户端(电脑、手机)连接***

Centos7+Open***通过证书登陆访问_第20张图片

把服务器上的三个客户端证书文件,下载到本地电脑配置***客户端。

/etc/open***/easy-rsa/keys/ca.crt
/etc/open***/easy-rsa/keys/client.crt
/etc/open***/easy-rsa/keys/client.key

clip_p_w_picpath035

安装好open***客户端软件后,把证书文件,存放到open***安装目录的config文件夹下。 从sample-config文件夹下,拷贝客户端的配置文件client.o*** 到config文件夹下。

Centos7+Open***通过证书登陆访问_第21张图片

在默认的安装目录下没有client.o***这个文件,我们需要在open***安装目录下的sample-conf目录下复制client.o***文件到open***目录下的config文件下

Centos7+Open***通过证书登陆访问_第22张图片

编辑config文件夹下的配置文件client.o***,修改remote my-server-1 1194 这行配置,指定open***服务器的ip地址,默认为你服务器的外网IP。然后修改协议

需要注意的是:在服务器端的配置需要和客户端的配置参数一致哦

Centos7+Open***通过证书登陆访问_第23张图片

Centos7+Open***通过证书登陆访问_第24张图片

保存,以管理员运行

Centos7+Open***通过证书登陆访问_第25张图片

右击软件---连接

Centos7+Open***通过证书登陆访问_第26张图片

Centos7+Open***通过证书登陆访问_第27张图片

Centos7+Open***通过证书登陆访问_第28张图片

我们查看连接状态

Centos7+Open***通过证书登陆访问_第29张图片

最后我们在服务器上查看log

Tail -f /etc/open***/open***.log

Centos7+Open***通过证书登陆访问_第30张图片

Centos7+Open***通过证书登陆访问_第31张图片

如果你要让别人连×××呢?难道也把那么多配置文件发给别人,太麻烦了,所以可采取如下策略,将ca.crt、client.crt、client.key全部拷贝到Client.o***里,这样只需这一个文件即可连接
比如:
×××:
client
dev tun
proto tcp
remote 服务器IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 5
#ca ca.crt
#cert client.crt
#key client.key

ca.crt的内容粘贴到这里


client.crt的内容粘贴到这里


client.key的内容粘贴到这里