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
我们需要新建一个源
cd /etc/yum.repos.d/ vim epel.repo [epel] name=aliyun epel baseurl=http://mirrors.aliyun.com/epel/7Server/x86_64/ gpgcheck=0
Yum install -y open***
yum install -y easy-rsa
拷贝配置文件
cp /usr/share/doc/open***-*/sample/sample-config-files/server.conf /etc/open***
编辑open***主配置文件
我们在编辑前先过滤一下
grep -v '^#' /etc/open***/server.conf | grep -v '^$'
所以我们在操作前先把server.conf备份一下,建议操作前都备份一下默认配置
Cp /etc/open***/server.cof /etc/open***/server.conf.bak
vim /etc/open***/server.conf
编译配置文件进行修改。我们建议使用tcp,因为tcp可以使用代理
主要修改以下几个配置,把前边的分号注释去掉,其中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/
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" 这行配置,前边默认的“#”号注释去掉。
制作证书
cp /etc/open***/easy-rsa/openssl-1.0.0.cnf /etc/open***/easy-rsa/openssl.cnf cd /etc/open***/easy-rsa #切换工作目录
source ./vars #让配置文件生效 ./clean-all
./build-ca #之前已配置好相关参数,故执行命令后,按回车键,一直到结束。
创建服务端证书 ./build-key-server server #按回车键进行,在提示输入密码的地方,设置一个密码如ixmsoft,在An optional company name处输入ixmsoft.com,最后输入两次“y”回车
创建客户端证书
./build-dh #创建秘钥文件,等待命令执行完。
ls /etc/open***/easy-rsa/keys/ #可以看到,目录中已经创建好了证书文件。
cd /etc/open***/easy-rsa/keys cp dh2048.pem ca.crt server.crt server.key /etc/open***
cd /etc/open***/easy-rsa ./build-key client #创建客户端证书文件,按回车进行,提示输入密码的地方,输入之前设置的证书密码-ixmsoft,An optional company name处输入先前设置的公司名字(ixmsoft.com)。【一定要和先前输入的一样哦.,其他参数如果前面设置了,也要保持一致噢】 #另外注意:有多少个客户端就需要./build-key client 多少次,当然client名字需不同。
ls /etc/open***/easy-rsa/keys/
设置iptables、路由转发
yum install -y iptables-services
systemctl enable iptables systemctl stop firewalld #关闭Centos7默认的 firewall防火墙 systemctl start iptables #启动iptables
iptables -F #清空默认的iptables规则
设置iptables NAT转发规则
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -j MASQUERADE service iptables save #保存防火墙规则
echo 1 > /proc/sys/net/ipv4/ip_forward #临时开启路由转发 vi /etc/sysctl.conf #编辑配置文件,添加以下配置,设置永久路由转发 net.ipv4.ip_forward = 1
启动open*** systemctl -f enable open***@server.service #设置启动文件 systemctl start open***@server.service #启动open***的命令
Vim /etc/open***/server.conf 注释这一行 explicit-exit-notify 1
我们保存退出后,再次启动,然后查看状态,正常了
然后我们查看状态
open***客户端(电脑、手机)连接***
把服务器上的三个客户端证书文件,下载到本地电脑配置***客户端。
/etc/open***/easy-rsa/keys/ca.crt /etc/open***/easy-rsa/keys/client.crt /etc/open***/easy-rsa/keys/client.key
安装好open***客户端软件后,把证书文件,存放到open***安装目录的config文件夹下。 从sample-config文件夹下,拷贝客户端的配置文件client.o*** 到config文件夹下。
在默认的安装目录下没有client.o***这个文件,我们需要在open***安装目录下的sample-conf目录下复制client.o***文件到open***目录下的config文件下
编辑config文件夹下的配置文件client.o***,修改remote my-server-1 1194 这行配置,指定open***服务器的ip地址,默认为你服务器的外网IP。然后修改协议
需要注意的是:在服务器端的配置需要和客户端的配置参数一致哦
保存,以管理员运行
右击软件---连接
我们查看连接状态
最后我们在服务器上查看log
Tail -f /etc/open***/open***.log
如果你要让别人连×××呢?难道也把那么多配置文件发给别人,太麻烦了,所以可采取如下策略,将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.keyca.crt的内容粘贴到这里 client.crt的内容粘贴到这里 client.key的内容粘贴到这里