1、环境描述:
网络环境,Linux×××服务器的操作系统为RHEL 6.5 64位,通过安装open***提供×××服务。Client为客户端,操作系统为Windows 7,安装了open***的客户端软件,以连接Linux×××服务器。结果如下:
Linux×××作为CA证书服务器,能够正常颁发数字证书;
Client作为×××客户端能够正常与Linux×××服务器建立连接。
使用VMWare Workstation搭建实验环境,使用两台虚拟机,一台作为Client客户端,一台作为Linux×××服务器。
2、环境搭建要求:
Linux×××作为×××服务器,操作系统为64位的RHEL6.5,主机名为***server,网卡连接到VMnet1上,IP地址为192.168.1.10/24。
Client为×××客户端,操作系统为Windows 7,主机名为***client,网卡连接到VMnet1上,IP地址为192.168.1.11/24Linux×××服务器要关闭SElinux与iptables;
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
安装有解压软件
同样使用vmware 1 网卡 地址192.168.1.0/24网段
安装***客户端(两个客户端都是32位的二选一)
直接关闭防火墙或者允许***程序通过
服务器配置
检查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="[email protected]",password="*********"//192.168.1.1/f /opt/open***/
我使用的是winscp工具将软件包传送到open***服务器的
将软件包存放在/tmp/临时目录下
解压相应软件
[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="[email protected]"
[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 #10秒ping一次,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
客户端连接
修改benet.conf和client.conf的后缀为“.o***”
使用benet加密用户登录
成功连接open***获取内网地址:10.8.0.0网段
分别验证benet用户和client用户登录