1、环境描述:

网络环境,Linux×××服务器的操作系统为RHEL 6.5 64位,通过安装open***提供×××服务。Client为客户端,操作系统为Windows 7,安装了open***的客户端软件,以连接Linux×××服务器。结果如下:

  1. Linux×××作为CA证书服务器,能够正常颁发数字证书;

  2. Client作为×××客户端能够正常与Linux×××服务器建立连接。

使用VMWare Workstation搭建实验环境,使用两台虚拟机,一台作为Client客户端,一台作为Linux×××服务器。

wKioL1cu1I7iL-Q7AAA91nm--qw517.png

2、环境搭建要求:


Linux×××作为×××服务器,操作系统为64位的RHEL6.5主机名为***server网卡连接到VMnet1上,IP地址为192.168.1.10/24

Client×××客户端,操作系统为Windows 7,主机名为***client,网卡连接到VMnet1上,IP地址为192.168.1.11/24Linux×××服务器要关闭SElinuxiptables

Client要注意关闭防火墙



实验思路:1、搭建open***server服务器和客户端基本工作环境,准备所需软件

           2、安装en***server服务器的所需软件,修改配置文件

           3、颁发CA证书,编辑客户端配置

           4、配置open***客户端软件

           5、验证***通道

服务端和客户端的前期准备,以及需要的软件

 

服务器需要的软件包

lzo-2.06.tar.gz   open***-2.1_rc22.tar.gz    easy-rsa-master.tar.gz

 

服务器准备

安装***server服务器使用Linux×××作为×××服务器,操作系统为64位的RHEL6.5,主机名为***server,网卡连接到VMnet1上,IP地址为192.168.1.10/24

              安装基本服务器就可以

配置IP地址

[root@***server ~]# cd/etc/sysconfig/network-scripts/

[root@***server network-scripts]# viifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:1F:FB:F3

TYPE=Ethernet

UUID=37d373e6-88fa-4d71-99ec-f0c3848f4f03

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.10

NETMASK=255.255.255.0

 

[root@***server network-scripts]# viifcfg-eth1

DEVICE=eth1

HWADDR=00:0C:29:1F:FB:FD

TYPE=Ethernet

UUID=0f1a1744-f7fa-4790-91ea-97d434698a55

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=10.0.8.1

NETMASK=255.255.255.0

 

重新加载network服务

[root@***server ~]# service network restart

 

# modprobe bridge

#lsmod |grep bridge    //查看模块加载

 

检查yum list 配置

 

系统时间同步

hwclock –w    以系统为基准时间同步

hwclock -s     以硬件为基准时间同步

 

 

客户端系统准备

操作系统为Windows 7


wKiom1cu09myVAiKAACoCeggNOg586.png


安装有解压软件

同样使用vmware 1 网卡 地址192.168.1.0/24网段

安装***客户端(两个客户端都是32位的二选一)

wKioL1cu1oWzU9LvAAGnVo-fhrY194.png

直接关闭防火墙或者允许***程序通过

 

wKiom1cu1J-SpGDfAAChKnViRsQ189.png


 

服务器配置

检查openssl  lzo  pam  三个软件是否安装

[root@***server ~]# rpm -q openssl  lzo pam

openssl-1.0.1e-15.el6.x86_64

lzo-2.03-3.1.el6.x86_64

pam-1.1.1-17.el6.x86_64

 

安装pam-devel 开发包和openssl-devel 开发包

[root@***server ~]# yum install -ypam-devel

[root@***server ~]# yum install -yopenssl-devel

 

谷歌搜索软件download

lzo-2.02.tar.gz  easy-rsa-2.2.0_master  lzo-2.06  open***-2.1_rc22

 

挂载软件存储磁盘或者使用其他方式传输到***server服务器

[root@***server ~]# mount.cifs -ousername="396488824@qq.com",password="*********"//192.168.1.1/f /opt/open***/

 

我使用的是winscp工具将软件包传送到open***服务器的

将软件包存放在/tmp/临时目录下

 wKioL1cu1WDQtpmLAAAZ0BkXLn4085.png

解压相应软件

[root@***server tmp]# tar zxvfeasy-rsa-master.tar.gz -C /opt/

[root@***server tmp]# tar zxvfopen***-2.1_rc22.tar.gz -C /opt/

[root@***server tmp]# tar zxvflzo-2.06.tar.gz -C /opt/

 

安装编译环境

[root@***server ~]# yum install -y gccgcc-c++

编译安装软件

[root@***server tmp]# cd /opt/

分别编译安装三个软件

./configure

make

make install

 

编辑CA文件(修改四处)

mkdir /etc/open***                                             #//创建空目录

       cd/opt/easy-rsa-2.2.0_master/easy-rsa/             #//

cp -r 2.0/ /etc/open***/2.0                               #//拷贝2.0

       cd/etc/open***/2.0/                                       #//

       vimvars                                                               #//编辑2.0目录中的vars文件

exportKEY_COUNTRY="CH"

export KEY_PROVINCE="CA"

exportKEY_CITY="NanJing"

exportKEY_ORG="Benet"

exportKEY_EMAIL="me@benet.com"

 

 [root@***server 2.0]# . ./vars                 //刷新文件

NOTE: If you run ./clean-all, I will bedoing a rm -rf on /etc/open***/2.0/keys

[root@***server 2.0]# ./clean-all             //创建生成CA证书以及密钥文件所需的文件和目录

[root@***server 2.0]# ./build-ca server     //生成CA证书 server

[root@***server 2.0]# ./build-key-serverserver  //生成server key (密码可默认,有俩y)

 

[root@***server 2.0]# ./build-key client1        //生成客户端key,注意名字 client1

#################################################

 [root@***server 2.0]# ./build-key-passbenet    #密码bdqn

创建一个有密码和一个无密码的客户端用户

#################################################

 

 

[root@***server 2.0]# ./build-dh                            //生成diffie hellman参数,密钥交换协议算法

 

[root@***server 2.0]# vim /etc/sysctl.conf    #修改一处

              net.ipv4.ip_forward = 1                                   //启用路由功能

[root@***server 2.0]# sysctl -p                       //刷新生效

 

如果出现以下情况

error:"net.bridge.bridge-nf-call-ip6tables" is an unknown key

error:"net.bridge.bridge-nf-call-iptables" is an unknown key

error:"net.bridge.bridge-nf-call-arptables" is an unknown key

 

加载模块测试,发现问题解决

# modprobe bridge

#lsmod |grep bridge    //查看模块加载

bridge                 79790  0

stp                     2173  1 bridge

llc                     5642  2 bridge,stp

 

——修改open***服务端配置文件——

[root@***server 2.0]# service iptables stop      //关闭防火墙

[root@***server 2.0]# setenforce 0                 //关闭SElinux

 

[root@***server 2.0]# cd/opt/open***-2.1_rc22/sample-config-files //进入该目录

[root@***server sample-config-files]# cpserver.conf /etc/open***/   服务器文件拷贝

cd /etc/open***/

 

修改配置文件(需要修改八处)

vim server.conf

 

;local a.b.c.d      #修改本地地址 

local 192.168.1.10

port 1194           #默认开启的端口1194 ,建议修改端口

proto udp                     #默认采用UDP协议

dev tun                        #创建虚拟设备(虚拟网卡)

ca ca.crt                #指定CA证书路径

       ca /etc/open***/2.0/keys/ca.crt  

cert server.crt        #指定服务器端证书认证

       cert /etc/open***/2.0/keys/server.crt

key server.key             #服务器证书对应的KEY

       key /etc/open***/2.0/keys/server.key  # This file should be kept secret

 

dh dh1024.pem            #指定dh参数

dh/etc/open***/2.0/keys/dh1024.pem

server 10.0.8.0 255.255.255.0   #分配内网网段,***通道地址

ifconfig-pool-persist ipp.txt#服务器自动给客户端分配IP后,客户端下次连接,仍然使用上次的IP地址

;push "route 192.168.10.0 255.255.255.0"   #指定路由

;push "route 192.168.20.0255.255.255.0"

push "route0.0.0.0 0.0.0.0"              #指定一条默认

 

;push "redirect-gateway def1bypass-dhcp" #网关和dhcp

 

push"dhcp-option DNS 208.67.222.222"    #指定dns

;push "dhcp-option DNS208.67.220.220"

;client-to-client                                        #允许客户端与客户端连接

client-to-client

 

keepalive 10 120                 #10ping一次,120秒没有响应断开

comp-lzo                                   #开启***连接压缩,服务端开启客户端必须开启

;max-clients 100

persist-key                                 #持久化选项可以尽量避免访问在重启时由于用户权限降低而无法访问的某些资源

persist-tun                                 #

status open***-status.log    #指定的open***状态的日志文件

verb 3                                        #指定日志文件的记录详细级别

 

 

open*** 程序调用自己的配置文件

[root@***server open***]# open*** --config/etc/open***/server.conf &   #后台运行或者另外开启一个客户端

[root@***server open***]# netstat-nuap    ##查看是否开启1194端口

udp       0      0 192.168.1.10:1194           0.0.0.0:*                       46217/open

 

 

 

配置客户端

open*** server设备上操作

安装一个vftp服务并开启,使用默认的匿名访问

yum install -y vsftpd

 service vsftpd restart

 

 

/etc/open***/2.0/keys中的CA证书(2个,所有用户通用)和用户证书(每个用户三个,用户私有)放置到ftp共享文件中

cd /etc/open***/2.0/keys

mkdir userkey

mkdir benet

#创建压缩包

tar zcvf userkey.tar.gz userkey/

tar zcvf benet.tar.gz benet/

[root@***server ~]# ls/etc/open***/2.0/keys/

01.pem    benet.csr     client1.crt  index.txt.attr      server.crt

02.pem    benet.key     client1.csr  index.txt.attr.old  server.csr

03.pem    benet.tar.gz  client1.key  index.txt.old       server.key

benet     ca.crt        dh1024.pem   serial              userkey

benet.crt ca.key        index.txt    serial.old          userkey.tar.gz

#压缩包放到ftp

cp userkey.tar.gz /var/ftp/pub/

cp benet.tar.gz /var/ftp/pub/

 

编辑client.cof(修改三处)

[root@***server keys]# cd/opt/open***-2.1_rc22/sample-config-files/

[root@***server keys]# vim client.conf

remote my-server-11194    ##更改为服务端的ip地址

remote 192.168.1.10 1194

 

ca ca.crt

cert client1.crt     #改为前面设置的名字

key client1.key       #改为前面设置的名字

 

[root@***server sample-config-files]# cpclient.conf /var/ftp/pub/   #将文件放入ftp

 

编辑benet.cof(修改三处)

[root@***server keys]# cd/opt/open***-2.1_rc22/sample-config-files/

[root@***server keys]# vim benet.conf

remote my-server-11194    ##更改为服务端的ip地址

remote 192.168.1.10 1194

 

ca ca.crt

cert benet.crt     #改为前面设置的名字

key benet.key         #改为前面设置的名字

 

[root@***server sample-config-files]# cpbenet.conf /var/ftp/pub/   #将文件放入ftp

 

 

 

 

客户端连接

 使用ftp下载open***所需文件wKiom1cu1myAg6xQAADDcHUfS1Y467.png


 

修改benet.confclient.conf的后缀为.o***

 

wKioL1cu15KT4T_JAAEgKii9GWs306.png

wKioL1cu15KjY08wAADDWEGXcLo158.png

wKioL1cu16uipqisAAFS-ey7PJo055.png

使用benet加密用户登录

wKiom1cu1uKzNJhhAAD9wGlzYhI821.png

成功连接open***获取内网地址:10.8.0.0网段



分别验证benet用户和client用户登录

wKioL1cu193RhgsPAABTSrtCrj8090.png