基础零信任服务相关软件的安装和调试

慢慢写,已经是第二周了可是看上去好像一时半会儿也写不完……

最近在做零信任相关软件的安装和调试,主要使用系统为linux的CentOS 7、Windows7和Win Server 2008 R2 64。

涉及到的软件为,Squid、开源加密通讯软件OpenV//P//N、fwknop。

所有使用软件已经上传至百度云。
链接:https://pan.baidu.com/s/19HwcXGDQFO3_V4DnyGAsdw 提取码:0000

1、设置实验环境

1.1 安装虚拟机

本文涉及到的操作全部通过VMware Workstation15 Pro虚拟机完成,版本为15.5.7。

下载CentOS 7、Win7和Windows Server 2008 R2 x64安装.iso文件,CentOS 7作为服务端,Win7作为客户端,Windows Server 2008可视为内网服务器,CentOS 7和Win 7都需要安装VMware Tools辅助工具,方便传输文件。

首先安装虚拟机,然后分别安装三个所需虚拟机,每次安装记得修改虚拟光驱所存的.iso文件。

1.2 配置网络环境

安装完成后,点击VMware的编辑按钮,选择虚拟机网络编辑器,修改VMnet1(仅主机模式)和VMnet8(NAT模式)网卡。

将VMnet1网卡的子网IP设置为192.168.0.0,子网掩码255.255.255.0,视作企业内网;将VMnet8的子网IP设置为172.16.0.0,子网掩码为255.255.0.0,视作互联网。

修改CentOS 7的设备信息,添加网络适配器2,两个适配器均选择自定义模式,适配器1网卡修改为VMnet1,适配器2网卡修改为VMnet8。

1.2.1 Win Server

将Win Server 2008的网络适配器修改为VMnet1。

进入虚拟机,选中右下角网络连接按钮,右键进入网络和共享中心,修改本地连接属性中的的ipv4协议,将IP地址设置为192.168.0.10,子网掩码设置为255.255.255.0。

打开命令行,输入ipconfig查询IP地址修改是否成功。
在这里插入图片描述

1.2.2 Win 7

将Win7的网络适配器修改为VMnet8。

进入虚拟机,选中右下角网络连接按钮,右键进入网络和共享中心,修改本地连接属性中的的ipv4协议,将IP地址设置为172.16.10.10,子网掩码设置为255.255.0.0,默认网关172.16.0.2,DNS服务器172.16.0.2。

打开命令行,输入ipconfig查询IP地址修改是否成功。
在这里插入图片描述

1.2.3 CentOS 7

此处有一个问题,安装CentOS 7使用了GNOME图形化界面,导致网卡中存在virbr0和virbr0-nic两个网卡,终端输入ip a命令查看,会导致后续设置出现问题,因此需要进入root模式卸载网卡[1],如果没有不用进行这步。

[root@localhost ~]# ifconfig virbr0 down
[root@localhost ~]# brctl delbr virbr0
[root@localhost ~]# nmcli device delete virbr0-nic
成功移除设备 "virbr0-nic"[root@localhost ~]# systemctl mask libvirtd.service
Created symlink from /etc/systemd/system/libvirtd.service to /dev/null.
[root@localhost ~]# systemctl disable libvirtd.service

修改网卡ens32的配置文件:

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls -l ifcfg-ens*
-rw-r--r--. 1 root root 279 12月  3 17:28 ifcfg-ens32
-rw-r--r--. 1 root root 279 12月  3 17:28 ifcfg-ens33
[root@localhost network-scripts]# vim ifcfg-ens32
BOOTPROTO=static
ONBOOT=YES
IPADDR=192.168.0.1
# UUID需要删除

保存退出

修改网卡ens33的配置文件:

[root@localhost network-scripts]# vim ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.16.1.1
MASK=255.255.0.0
GATEWAY=172.16.0.2
DNS1=172.16.0.2
# UUID需要删除

保存退出

重启网卡设置,查看IP地址修改是否成功。

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:70:43:99 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::1a7e:bed2:550a:4242/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:70:43:a3 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.1/16 brd 172.16.255.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a542:e613:6f05:fcff/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

修改成功!

1.2.4 测试网络连通性

Win server服务器与CentOS 7通过VMnet1网卡联通,Win7客户端与CentOS 7 通过VMnet8网卡联通。

首先关闭三台虚拟机的防火墙,Windows系统的两台虚拟机,通过控制面板中–>系统和安全–>Windows防火墙,关闭使用网络的防火墙。CentOS 7中,使用以下命令关闭防火墙。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 四 2020-12-03 11:18:57 CST; 6s ago

Win 7 ping 172.16.1.1 (CentOS 7)
Win Server ping 192.168.0.1 (CentOS 7)
CentOS ping 192.168.0.10 (Win Server)
ping 172.16.10.10 (Win 7)
如果ping不通,大概率是目标地址的防火墙没有关闭。

1.3 配置内网服务器

使用Win Server服务器作为内网服务器,在内网服务器中配置一个网站,同时使用HTTP协议和HTTPS协议。

打开Win Server虚拟机,在C盘根目录下新建一个文件夹,命名为Zero-Trust,文件夹内新建文本文档,随意输入一些内容,保存为index.html。

进入服务器管理器,角色下属新增角色,使用默认设置,添加Web服务器。Web服务器管理器中选择服务器证书–>自签名证书,创建名为trust的证书。

下拉找到网站列表,右键新建http网站,来源选择C盘根目录下的Zero-Trust,保存。右键新建https网站,来源同上,选择证书trust,网站新建完成。

打开Win Server的浏览器,输入IP地址192.168.0.10,查看网站是否成功上传。
在这里插入图片描述
在CentOS 7浏览器中输入http://192.168.0.10/查看网站是否能够正常访问。
在这里插入图片描述
在CentOS 7浏览器中输入https://192.168.0.10/查看网站是否能够正常访问。浏览器会提示访问风险,由于我们是自签名证书,所以需要选择忽略风险,接着就能正常访问了。

2、安装软件

2.1 Squid反向代理

2.1.1 安装Squid

Squid仅需要在服务器上进行配置,所以我们只需要在CentOS上安装就可以。执行如下命令:

[root@localhost squid]# yum -y install squid

2.1.2 HTTP代理

进入squid的配置文件

[root@localhost ~]# cd /etc/squid
[root@localhost squid]# vim squid.conf

找到http_port,将

http_port 3128

改为

#http_port 3128
http_port 172.16.1.1:80 accel vhost vport
cache_peer 192.168.0.10 parent 80 0 no-query no_digest originserver

修改完成后,重启squid。

[root@localhost squid]# systemctl restart squid
[root@localhost squid]# systemctl status squid

此时Squid的状态为active(running)

打开Win7虚拟机的浏览器,访问CentOS 7的IP地址http://172.16.1.1/,成功打开Web服务器上的预设网页,完成HTTP反向代理。
在这里插入图片描述

2.1.3 HTTPS代理

HTTPS代理需要生成公钥私钥

进入squid文件夹,添加公钥和私钥,并修改配置文件

[root@localhost ~]# cd /etc/squid
[root@localhost squid]# openssl genrsa -out s.key
[root@localhost squid]# ls s.*
s.key
[root@localhost squid]# openssl req -new -key s.key -out s.csr
[root@localhost squid]# ls s.*
s.csr  s.key             
[root@localhost squid]# openssl x509 -req -in s.csr -signkey s.key -out s.crt 
[root@localhost squid]# ls s.*
s.crt  s.csr  s.key
[root@localhost squid]# vim squid.conf

修改配置文件,在上一节修改内容后面添加内容

https_port 172.16.1.1:443 accel cert=/etc/squid/s.crt key=/etc/squid/s.key vhost vport
cache_peer 192.168.0.10 parent 443 0 no-query no-digest orignserver ssl sslflags=DONT_VERIFY_PEER name=squidssl

cache_peer_access squidssl allow SSL_ports

其中,sslflags=DONT_VERIFY_PEER 表明不检查自签名证书有效性。

修改完成后,重启squid。

[root@localhost squid]# systemctl restart squid
[root@localhost squid]# systemctl status squid

此时Squid的状态为active(running)

打开Win7虚拟机的浏览器,访问CentOS 7的IP地址https://172.16.1.1/,出现安全问题提示,选择继续浏览此网站,成功打开Web服务器上的预设网页,完成HTTPS反向代理。
在这里插入图片描述

在这里插入图片描述
Squid反向代理到此完成。
PS:当程序运行出现问题时,可以使用squid -k parse指令检查squid.conf文件是否正确[2]

2.2 开源加密通讯软件

见:https://github.com/Mingcat-23/Zero-Trust-Software/在这里插入图片描述
软件下载地址:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.3 fwknop单包授权认证

如果客户端和服务器端都是liunx系统,那么fwknop的安装会比较容易,但本次使用的客户端是Win7系统,需要自行编译,所以安装上相对复杂,需要前置条件。
**PS:**不知道是不是vs2008不适配最新的fwknop windows客户端,编译出了点问题,可以选择用编译好的文件进行安装。

2.3.1 客户端安装

由于我没有自行编译,所以跳过自行编译这一步,可以到参考文献[5]中阅读如何进行编译。编译好的文件也放在百度云的软件包中。
下载编译好的压缩文件fwknopwin.zip,拖动到Win7虚拟机中,解压缩。
比如说我的文件地址是E:\fwknopwin,打开命令行,进入文件地址,执行fwknop --version,出现版本号证明.exe文件没有问题。同时说明.fwknoprc文件存储路径。
在这里插入图片描述
还需要下载wget文件并新建bwget.bat批处理脚本(内容为:@wget --no-check-certificate %1 %2 %3 %4 %5 %6 %7 %8 2>nul),但是压缩文件中都已经存了,此处就不详细提了。

在命令行窗口,执行命令

fwknop -n cen7 -A tcp/22,tcp/4432 -a 172.16.10.10 -D 172.16.1.1 --use-hmac -p 62201 -P udp -k --save-rc-stanza

下面逐项作解释:

-n cen7               给后面的参数起一个名字,方便以后调用;
-A tcp/22,tcp/4432    请求服务端打开的端口及其协议;
-a 172.16.10.10       客户端的IP地址;
-D 172.16.1.1         服务端的IP地址;
--use-hmac            采用hmac加密认证方式;
-p 62201              服务端等待请求的侦听端口;
-P udp                服务端等待请求的协议;
-k                    生成一个加密密钥;
--save-rc-stanza      保存以上参数的执行结果。

使用文本编辑器打开用户文档(C:\User\用户名)中的.fwknoprc文件。

[default]

[cen7]
SPA_SERVER_PROTO            udp
SPA_SERVER_PORT             62201
ALLOW_IP                    172.16.10.10
ACCESS                      tcp/22,tcp/4432
SPA_SERVER                  172.16.1.1
KEY_BASE64                  5e40ifphFEkGNz1G43fgNkdKIcTSJLyIeMV9V1qeQjs=
HMAC_KEY_BASE64             5e40ifphFEkGNz1G43fgNkdKIcTSJLyIeMV9V1qeQjsyL8KrB/gBxyyHAk1avbJrWuMcOhEVzgTgoaqGu3dgfA==
USE_HMAC                    Y

复制其中的KEY_BASE64和HMAC_KEY_BASE64 ,服务端安装完成以后需要这两个信息。

2.3.2 服务端安装

由于CentOS 7中已经使用fiewalld服务代替了iptables服务,因此,很多操作需要更新。
首先确认firewalld服务是否开启:

[root@localhost ~]# systemctl status firewalld

如果没安装,则先安装firewalld。

[root@localhost ~]# yum install firewalld

如果没开启,则先禁用冲突服务,然后开启firewalld。

[root@localhost ~]# systemctl disable --now iptables.service
[root@localhost ~]# systemctl disable --now ip6tables.service
[root@localhost ~]# systemctl disable --now ebtables.service
[root@localhost ~]# systemctl disable --now ipset.service
[root@localhost ~]# systemctl start firewalld

安装fwknop:

[root@localhost ~]# yum install fwknop

安装完成后,编辑配置文件

[root@localhost ~]# vi /etc/fwknop/access.conf
# 添加
SOURCE                 ANY
DESTINATION            ANY
OPEN_PORTS             tcp/22,tcp/4432
REQUIRE_SOURCE_ADDRESS Y
KEY_BASE64                  5e40ifphFEkGNz1G43fgNkdKIcTSJLyIeMV9V1qeQjs=
HMAC_KEY_BASE64             5e40ifphFEkGNz1G43fgNkdKIcTSJLyIeMV9V1qeQjsyL8KrB/gBxyyHAk1avbJrWuMcOhEVzgTgoaqGu3dgfA==

已知客户端服务器连接使用网卡为VMnet8,也就是ens33,编辑服务端配置文件。

[root@localhost ~]# vi /etc/fwknop/fwknopd.conf
# 修改内容
PCAP_INTF                   enp3s0;
ENABLE_UDP_SERVER           Y;
UDPSERV_PORT                62201;
PCAP_FILTER                 udp port 62201;
ENABLE_SPA_PACKET_AGING     Y;
MAX_SPA_PACKET_AGE          60;
ENABLE_SPA_OVER_HTTP        N;
ENABLE_DESTINATION_RULE     N;
FLUSH_FIREWD_AT_INIT        Y;
FLUSH_FIREWD_AT_EXIT        Y;
ENABLE_FIREWD_FORWARDING    Y;
ENABLE_FIREWD_LOCAL_NAT     N;
ENABLE_FIREWD_OUTPUT        N;
FIREWD_INPUT_ACCESS         ACCEPT, filter, INPUT, 1, FWKNOP_INPUT, 1;
FIREWD_FORWARD_ACCESS       ACCEPT, filter, FORWARD, 1, FWKNOP_FORWARD, 1;
ENABLE_FIREWD_COMMENT_CHECK N;
FIREWALL_EXE                /usr/bin/firewall-cmd;

在终端设置防火墙,确保fwknopd侦听端口和协议不被阻止。

[root@localhost ~]# firewall-cmd --permanent --new-service=fwknop
success
[root@localhost ~]# firewall-cmd --permanent --service=fwknop --add-port=62201/udp
success
[root@localhost ~]# firewall-cmd --permanent --add-service=fwknop
success
[root@localhost ~]# firewall-cmd --zone=public --add-service=fwknop
success

安装完成

2.3.3 测试

服务端执行:

[root@localhost ~]# fwknopd -f -t -v

客户端在命令行执行敲门测试:
在这里插入图片描述
服务端接收到:

Starting fwknopd
# 省略
[172.16.10.10] (stanza #1) --test mode enabled, skipping firewall manipulation.

表明敲门成功。

零信任软件重新配置

接下来就是几个相关的软件重新进行配置达到一个基础的零信任软件的功能。
在这里插入图片描述
图1 零信任服务程序拓扑图

新建一个文档来写吧,不然这个文档太长啦~
见:https://blog.csdn.net/sinat_27690807/article/details/111177327

参考文章或视频:
1、删除虚拟网卡virbr0和virbr0-nic
https://www.cnblogs.com/leoshi/p/12514360.html
2、Squid配置文件检查指令
https://blog.csdn.net/qq_32384249/article/details/77675707
3、CentOS服务器常用软件安装教程
https://www.bilibili.com/video/BV1mK411T7eg
4、建立共享文件服务器教程
https://www.cnblogs.com/xiaozhou-cn/p/11372957.html
5、fwknop win7客户端安装
https://blog.csdn.net/suntongo/article/details/53806943

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值