1. 程式人生 > 其它 >OpenStack:建立虛擬的滲透測試實驗環境 – 網路篇

OpenStack:建立虛擬的滲透測試實驗環境 – 網路篇

0x00 概述

對一個沙箱環境而言,其中最重要的一點就是網路的隔離,OpenStack網路支援Flat、VLAN、VXLAN等模式,配合路由器和防火牆可輕鬆虛擬一個簡單的企業網路。

0x01 網路環境

1.1 網路拓樸

不同網路區域首先得進行網路劃分,主要包含三個區域:

  • 外網伺服器區:為網際網路提供服務,能訪問網際網路、內外伺服器區,不能訪問工作區域;
  • 內網伺服器區:為外網伺服器、工作區提供服務,不能訪問網際網路、外網伺服器區、工作區;
  • 工作區:辦公區域,各個部門間網路互通,可訪問網際網路、內網伺服器區、外網伺服器區。

這裡使用172.16.x.0/24作為伺服器區的IP段,10.0.x.0/24為工作區各部門的IP段,網路拓撲圖如下:

注:這裡網路、例項、路由器等名稱統一使用小寫。

1.2 公共網路

使用管理員登入Horizon,【管理員】-【網路】,這裡會看見一個為public的網路,其IP段為172.24.4.225/28(有強迫的可以刪掉),建立一個名為network_public的外部網路和一個IP地址池為192.168.20.100-200的子網。

有時外部網路和子網有在Web介面會建立失敗,使用SSH登入到伺服器使用命令建立:

因為只有一張網絡卡,為了減少去配IP的麻煩,這裡將浮動IP地址池(192.168.20.100-200)配到與伺服器IP同一個段。

1.3 建立網路

【專案】-【網路】-【網路】,點選【建立網路】,會有三個選項:

  • 網路:配置網路名稱;
  • 子網:配置子網IP、掩碼、閘道器等資訊;
  • 網路詳情:配置IP地支援、DHCP、DNS等資訊。

這裡伺服器區和辦公區的網段都使用DHCP進行IP分配,分別建立以下網路:

1.4 建立路由器

【專案】-【網路】-【路由器】,點選【建立路由器】,建立2個路由router_internalrouter_isp,其中router_isp選擇外部網路network_public

router_isp

點選router_isp進入該路由器,切換到【介面】項,分別新增2個介面172.16.0.1192.168.0.5

再切換到【靜態路由表】項,分別新增辦公區和內網伺服器區的靜態路由:

router_internal

點選router_internal進入該路由器,切換到【介面】項,分別新增以下連線介面:

再切換到【靜態路由表】項,新增一條預設路由:

0x02 建立例項

現在網路已經配置完,回到【專案】-【計算】-【例項】,點選右上角【啟動例項】,按照拓樸選擇對應網路分別建立以下例項:

這裡全部使用CentOS7的映像,建立完後,【專案】-【網路】-【網路拓樸】大概是這樣:

這時你會發現,所有例項之間都是能ping得通的,並沒有想要之前設定的結果,這時就需要防火牆。

0x03 FwaaS

FwaaS(FireWall-as-a-Service),即防火牆服務,防火牆可以在路由器上做策略。

3.1 安裝FwaaS

通過yum安裝FwaaS:

# yum -y install openstack-neutron-fwaas

載入防火牆

service_plugins後面加上firewall

新增所需驅動程式:

Horizonz中啟用防火牆,修改enable_firewallTrue

將修改更新到資料庫:

重啟Neutron服務:

# systemctl restart neutron-server

3.2 配置防火牆

重新登入Horizonz,在【專案】-【網路】下的選單會新增【防火牆】這一項,切換到【防火牆規則】新增以下規則:

切換到【防火牆策略】,新增一條策略,並加入剛才配置的2條規則:

切換到【防火牆】,新增一條記錄,選擇剛才建立的策略,並關聯router_internal路由器:

3.3 測試防火牆

在外網伺服器區使用server_www(172.16.0.5)分別ping網際網路、辦公區、內網伺服器區:

在辦公區使用it_pc1(10.0.10.3)分別ping網際網路、外網伺服器區、內網伺服器區、人力資源部:

在內網伺服器區使用server_db(172.16.10.4)分別ping網際網路、外網伺服器區、辦公區:

網路隔離效果已經達到了設定要求。

0x04 網路對映

www_server(172.16.0.5)上啟動httpd服務,監聽80埠,現在要將該伺服器的HTTP服務對映到“網際網路”(192.168.20.100-200)。

4.1 關聯浮動IP

【專案】-【計算】-【例項】,選擇例項【操作】下拉選單,選擇管理浮動IP:

這時在例項列表【IP 地址】列會多出一個浮動IP192.168.20.101:

4.2 安全組

這時從外部還不能訪問該伺服器,需要在安全組新增入口規則放行,【專案】-【計算】-【訪問 & 安全】新新增一條記錄sg_public,然後新增一條規則:

現在訪問http://192.168.20.101:

至此,一個簡單的虛擬網路環境已經建立起來,其中還存在很多安全上的問題,比如通過例項可以訪問192.168.20.7上的服務,一個合適的滲透測試環境還需要逐漸去完善。

0x05 參考

  • https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/8/html/networking_guide/sec-fwaas
  • https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux_OpenStack_Platform/6/html/Administration_Guide/Networking-ExternalConnectivity.html