×××直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,open***无疑是linux开源***的先锋,提供了良好的性能和友好的用户GUI。

Open×××是一个基于OpenSSL库的应用层×××实现。传统***相比,它的优点是简单易用。Open×××允许参与建立×××的单点使用共享金钥,电子证书,或者用户名/密码来进行身份认证。

原理:

       Open×××的技术核心是虚拟网卡,其次是SSL协议实现,由于SSL协议在其他的词条中介绍的比较清楚了,这里重点对虚拟网卡及其在Open***中的工作原理进行介绍:

       虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接受得到。虚拟网卡在很多操作系统下都有相应的实现,这也是Open×××能够跨平台一个很重要的理由。

       在Open×××中,如果访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包TUN模式或数据帧(TAP模式)发送到虚拟网卡上,服务程序接受该数据并进行相应的处理后,通过socket从外网上发送出去,远程服务程序通过SOCKET从外网上接收数据,并进行相应的处理后,发送给虚拟网卡

演示环境:

      三台主机:node1: eth0 :172.16.23.2(模拟内网地址,网关指向172.16.23.1)

                      Node2:eth0:192.168.162.131(模拟外网地址)

                            eth1:172.16.23.1(模拟内网地址)

                      node3:eth0:192.168.162.130(模拟外网地址)

       本次实验想实现的功能:把node2比作公司的公网地址,node1比作公司的内网。Node3比较家庭的地址。使员工在家能访问公司的内网,使node3能访问node1.

1.      基础环境配置

1)      开启node2核心转发功能;

    image.png                                               

2)      为了便于测试,清空三个节点的防火墙规则关闭selinux;

    image.png

3)      配置各个节点ip地址

2.      安装程序包;

1)      配置epel源仓库;

2)      安装open***

#yum install open*** –y

3)      安装easy-rsa,用来制作ca证书,服务端证书,客户端证书;

#wget https://github.com/Open×××/easy-rsa/archive/master.zip

#unzip master.zip

#mv easy-rsa-mater/  easy-rsa/      (将解压后的文件夹重命名)

#cp  -R easy-rsa/   /etc/open***/       (将重命名的文件夹复制到/etc/open***目录下)

4)      编辑服务器端vars文件

# cd /etc/open***/easy-rsa/easyrsa3/

# cp vars.example vars

# vim vars

Linux自学笔记——模拟搭建open***_第1张图片

5)      创建根证书

# ./easyrsa  init-pki           (初始化)

# ./easyrsa  build-ca               (创建根证书)

Note:这一步会需要输入PEM密码,输入两次,请记住此密码,否则后面不能为证书签名。还需要输入common name通用名,随便起一个便可;

6)      创建服务器端证书

        # ./easyrsa  gen-req  server  nopass         (创建服务器端证书,note:在此过程中也要输入common name,不跟之前的根证书的common name一样即可)

       # ./easyrsa sign server server          (签约服务端证书,此过程需要你确认yes,还需要你创建ca时的密码。)

7)      创建Diffie-Hellman

       # ./easyrsa gen-dh            (创建Diffie-Hellman,确保key穿越不安全网络的命令)

8)      创建ta秘钥文件

       # open*** --genkey --secret  ta.key  (创建ta秘钥文件)

9)      创建客户端证书;

       # mkdir /root/client  && cd  /root/client

       # cp –R  /root/easy-rsa/   ./

       # cd easy-rsa/easyrsa3/

       # ./easyrsa  init-pki  (初始化)

       # ./easyrsa gen-req yourname   (生成证书,yourname为自定的名字)

       # cd /etc/open***/easy-rsa/easyrsa3/

       # ./easyrsa  import-req  /root/client/easy-rsa/easyrsa3/pki/reqs/yourname.req   yourname   (导入证书)

       # ./easyrsa  sign  client  yourname   (签约证书,note:这里生成client所以必须为client,qingliu要与之前导入名字一致)

10)  拷贝文件到相应位置;

拷贝服务器端所需文件;

]# cp pki/ca.crt /etc/open***/

]# cp pki/private/server.key /etc/open***/

]# cp pki/issued/server.crt /etc/open***/

]# cp pki/dh.pem /etc/open***/

]# cp /etc/open***/easy-rsa/ta.key /etc/open***/

 

拷贝客户端所需文件;

]# cp pki/ca.crt /root/client/

]# cp pki/issued/yourname.crt /root/client/

]# cp /root/client/pki/private/yourname.key /root/client/

]# cp /etc/open***/easy-rsa/ta.key  /root/client/

11)  修改open***的配置文件;

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

    Linux自学笔记——模拟搭建open***_第2张图片

启动服务:

    Linux自学笔记——模拟搭建open***_第3张图片

而且多了一个虚拟网卡;

    Linux自学笔记——模拟搭建open***_第4张图片

3.      安装linux客户端连接;

1)      安装open***,与服务器端一样;

2)      将服务器端的ca.crt,yourname.crt,yourname.key, ta.key文件转到/etc/open***目录下;

    Linux自学笔记——模拟搭建open***_第5张图片

3)      创建client.conf;

    Linux自学笔记——模拟搭建open***_第6张图片

4)      远程拨入***,测试;

    Linux自学笔记——模拟搭建open***_第7张图片

观察客户端也多了张虚拟网卡;

    Linux自学笔记——模拟搭建open***_第8张图片

测试ping内网地址;

    Linux自学笔记——模拟搭建open***_第9张图片

以上表明,本次实验已经成功,以下我们将配置mysql方式认证登录***连接;

4.      配置mysql认证登录***;

1)      安装mysql;

2)      登录mysql,创建表及字段等;

    Linux自学笔记——模拟搭建open***_第10张图片

3)      创建登录表;

    Linux自学笔记——模拟搭建open***_第11张图片

4)      插入用户数据

    Linux自学笔记——模拟搭建open***_第12张图片

5)      配置pam_mysql模块;

    image.png

使用testsaslauthd验证登录情况;

    image.png

6)      安装open***服务器的auth-pam插件;

Node2上安装的open***有自带的模块open***-auth-pam.so,但是好像2.1版本以上的open***自带的open***-auth-pam.so验证会出现验证失败的问题,这里需要重新编译安装;

下载源码包http://pkgs.fedoraproject.org/repo/pkgs/open***/open***-2.0.7.tar.gz,注意不要使用wget,可能解压会出现问题;

    Linux自学笔记——模拟搭建open***_第13张图片

# cp ./open***-auth-pam.so /etc/open***/

7)      配置***配置文件server.conf,添加三行配置;

    Linux自学笔记——模拟搭建open***_第14张图片

8)      编辑客户端配置文件client.conf;

    Linux自学笔记——模拟搭建open***_第15张图片

9)      启动open***服务端服务,并从客户端连接,从客户端连接输入username和password。跟上一样测试;