基础零信任服务相关软件的安装和调试
慢慢寫,已經是第二周了可是看上去好像一時半會兒也寫不完……
最近在做零信任相關軟件的安裝和調試,主要使用系統為linux的CentOS 7、Windows7和Win Server 2008 R2 64。
涉及到的軟件為,Squid、開源加密通訊軟件OpenV//P//N、fwknop。
所有使用軟件已經上傳至百度云。 鏈接:https://pan.baidu.com/s/19HwcXGDQFO3_V4DnyGAsdw 提取碼:00001、設置實驗環境
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 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::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 1000link/ether 00:0c:29:70:43:99 brd ff:ff:ff:ff:ff:ffinet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute ens32valid_lft forever preferred_lft foreverinet6 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 1000link/ether 00:0c:29:70:43:a3 brd ff:ff:ff:ff:ff:ffinet 172.16.1.1/16 brd 172.16.255.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 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 daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: inactive (dead) since 四 2020-12-03 11:18:57 CST; 6s agoWin 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 squid2.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=squidsslcache_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服務是否開啟:
如果沒安裝,則先安裝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客戶端在命令行執行敲門測試:
服務端接收到:
表明敲門成功。
零信任軟件重新配置
接下來就是幾個相關的軟件重新進行配置達到一個基礎的零信任軟件的功能。
圖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
總結
以上是生活随笔為你收集整理的基础零信任服务相关软件的安装和调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA 事务
- 下一篇: 软考高项计算题公式:PV, EV, AC