文章目錄
前言:
- 防火牆技術是通過有機結合各類用於安全管理與篩選的軟件和硬件設備,幫助計算機網絡於其內、外網之間構建一道相對隔絕的保護屏障,以保護用戶資料與信息安全性的一種技術。
- 防火牆技術的功能主要在於及時發現並處理計算機網絡運行時可能存在的安全風險、數據傳輸等問題,其中處理措施包括隔離與保護,同時可對計算機網絡安全當中的各項操作實施記錄與檢測,以確保計算機網絡運行的安全性,保障用戶資料與信息的完整性,爲用戶提供更好、更安全的計算機網絡使用體驗。
- 而NAT 技術是用來解決當今IP地址資源枯竭的一種技術,同時也是IPv4向IPv6的一種過渡
一、防火牆簡介
1.1 華爲防火牆工作模式
-
華爲防火牆有三種工作模式
① 路由模式
- 當防火牆處於內部網路和外部網絡中間時,需要將防火牆的內部網絡、外部網絡、DMZ三個區域分配不同地址段的時候使用
- 這個時候防火牆首先是臺路由器,然後在提供其他的防火牆功能
② 透明模式
- 華爲防火牆通過二層和外相連接時候,則防火牆處於透明模式下
③ 混合模式
- 既處於路由接口模式又處於透明模式下,則防火牆是混合模式
- 目前只用於透明模式下的雙機熱備的特殊應用中。別的環境不用
1.2 華爲防火牆安全區域
-
華爲防火牆有五種區域
① Local區域:通常定義防火牆本身,優先級爲100,防火牆除了轉發大的流量外,自己也有收發流量,如控制流量、動態路由協議等,這些報文通常是從Local區域發送的,安全等級最高。
② trust區域:主要用於連接公司內部網絡,優先級爲85,安全等級較高
③ DMZ:非軍事化區域,優先級爲50,是介於軍事管事區和公共區域之間的一個區域,安全等級中
④ untrust區域:外部區域,優先級爲5,安全等級低
⑤ 自定義區域:用戶自定義區域,默認最多16個區域,默認沒有優先級,用戶自定義優先級
-
默認情況下,華爲防火牆拒絕任何區域之間的流量,如需放行指定流量,需要管理員設置策略
1.3 華爲防火牆的inbound和outbound
-
inbound:數據由等級低的區域流向等級高的區域,如untrust(優先級5)區域流向trust(優先級85)區域
-
outbound:數據由等級高的區域流向等級低的區域,如DMZ(優先級50)區域流向untrust(優先級5)
-
防火牆流量控制是根據優先級來的,規則爲:流量從高到低直接放行,從低到高需要設置規則
-
此外,華爲防火牆的外網口是不允許ping通的
1.4 華爲防火牆安全策略
- 傳統的防火牆都是基於5元組:源IP、目標IP、協議號、源端口號、目標端口號
- 新一代的防火牆除了傳統的5元組之外,還加入了應用、內容、時間、用戶、威脅、位置進行深層次探測
- 默認情況下,華爲防火牆的策略有以下特點:
- 任何2個安全區域的優先級不能相同
- 本域內不同接口間的報文不過濾直接轉發
- 接口沒有加入域之前不能轉發包
- 在USG6600系列防火牆上默認是沒有安全策略的,也就是說,不管是什麼區域之間項目訪問,都必須要配置安全策略,除非是同一區域內的報文傳遞
二、NAT概述
2.1 NAT分類
-
① NAT no-PAT
類似思科的動態轉化,多對多,只轉換IP地址,不轉換端口,不能節約公網IP地址,實際應用場景較少,主要適用於需要上網的用戶較少,而公網IP地址相對充裕的場景
-
② NAPT(網絡地址端口轉換)
類似思科的PAT,NATP即轉換報文的源地址,又轉換源端口,轉換後地址不能是外網接口IP地址,屬於多對多或者多對一的轉換,可以節省公網IP地址,使用場景較多
-
③ Easy-IP (出接口地址)
因其轉換方式非常簡單,所以也被稱爲Easy-IP、和NAPT一樣,即轉換源IP地址,又轉換源端口。區別是出接口地址方式轉換後的地址只能是NAT設備外網接口所配置的IP地址,屬於多對一轉換,可以節約IP地址
-
NAT Server
靜態一對一發布,主要用於內部服務器需要對internet提供服務時使用
-
Smart NAT(只能轉換)
與源IP地址、源端口和協議類型有關的一種轉換,將源IP地址和源端口轉換爲固定公網IP地址和端口,能解決一些特殊應用在普遍NAT種無法實現的問題
-
三元組NAT
與源地址、源端口和協議類型有關的一種轉換,將源IP地址和源端口轉換爲固定公網IP地址和端口,能解決一些特殊應用在普遍NAT中無法實現的問題,主要應用外部訪問局域網的一些P2P應用
三、黑洞路由
3.1 黑洞路由的產生
- 在特定的NAT轉換時,可能會產生環路及無效ARP,關於其如何產生,大概就是,在有些NAT的轉換方式中,是爲了解決內網連接Internet,而映射出了一個公有IP,那麼,若此時有人通過internet來訪問這個映射出來的公有IP,就會產生這種情況。解決這個問題的辦法就是配置黑洞路由(將internet主動訪問映射出來的地址流量指定到空接口null0)
3.2 黑洞路由應用場景
3.3 黑洞路由配置命令
-
解決方法:
配置黑洞路由,將internet主動訪問映射出來的地址的流量指定到空接口null0中
ip route-static 100.2.2.10 32 NULL 0
四、Server-map表
4.1 Server-map表簡介
- 狀態話防火牆中會有一張會話表,用來記錄的是內網訪問外網時的一個連接信息,當外網返回的數據匹配到會話表的記錄時,直接放行相關返回流量。
- server-map表不用手動配置,是自動生成的
4.2 Server-map和會話表的區別
-
會話表記錄的是連接信息,包括連接狀態
-
server-map表記錄的不是當前的連接信息,而是通過分析當前連接的報文後得到的信息,該信息用來解決接下來的數據流通過防火牆的問題。可以將Server-map表的作用理解爲通過未雨綢繆解決將來的問題
-
如像FTP這種的多端口協議,在從一開始的三次握手,到最後完成數據的傳輸,其過程中,可能端口會發生改變等問題
server-map正好可以解決這種問題
-
然而在NAT中也需要這個server-map表,就是在有數據流量通過NAT的方式穿越防火牆時,serve-map表會記錄其源地址和轉換後地址的對應關係,從而使後續流量可以不用查看NAT策略
直接匹配到server-map表,從而實現高效的NAT轉換,若用戶通過互聯網訪問轉換後的地址時,也可以匹配到server-map表,從而高效的將數據轉發到內網真實主機(必須保證安全策略允許通過)
4.3 server-map表的形成
-
server-map表不用手動配置,是自動生成的,在NAT中,不是所有的表都可以生成server-map表的,可見下表:
-
當防火牆上配置某些NAT後,在防火牆上會生成Server-map,默認生成兩個Server-map條目,分別是正向條目和反向條目
正向條目:攜帶端口信息,用來使internet用戶訪問內網中的服務器時直接通過server-map表來進行目標地址轉換
反向條目:不攜帶端口信息,且目標地址是任意的,用來使服務器可以訪問internet
4.4 FTP傳輸方式
4.4.1 port(主動模式)
- 工作原理: FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,客戶端隨機開放一個端口(1024以上),發送 PORT命令到FTP服務器,告訴服務器客戶端採用主動模式並開放端口;FTP服務器收到PORT主動模式命令和端口號後,通過服務器的20端口和客戶端開放的端口連接,發送數據
- 以下爲port工作原理圖:
4.4.2 PASV (被動模式)
- 工作原理:FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,發送PASV命令到FTP服務器, 服務器在本地隨機開放一個端口(1024以上),然後把開放的端口告訴客戶端, 客戶端再連接到服務器開放的端口進行數據傳輸
- 以下爲PASV工作原理圖:
4.4.3 兩種模式對比
-
從運行原理來看,主動模式和被動模式不同點如下:
① 傳輸數據的連接方式
主動模式傳送數據時是“服務器”連接到“客戶端”的端口
被動模式傳送數據是“客戶端” 連接到 “服務端” 的端口
② 端口開放
主動模式需要客戶端必須開放端口給服務器,很多客戶端都是在防火牆內,開放端口給FTP服務器訪問比較困難
被動模式只需要服務器端開放端口給客戶端連接就可以了
4.5 NAT對報文的處理流程
五、防火牆NAT配置實驗
此實驗IP地址配置過程省略,各IP地址已表在拓撲圖中
5.1 實驗拓撲圖
5.2 實驗需求
- ① ISP爲公司分配的公網地址:100.2.2.8/29
- ② 技術部屬於trust區域,通過Easy-ip訪問internet
- ③ 行政部屬於trust區域,通過NAPT訪問internet(使用100.2.2.12/29)
- ④ 財務部屬於trust區域,通過no-pat訪問internet(使用100.2.2.10/29 ~ 100.2.2.11/29)
- ⑤ DMZ區域種的兩臺服務器配置NAT-Server發佈,分別提供FTP服務及Web服務(使用100.2.2.9/29)
- ⑥ 防火牆的g1/0/0屬於UNtrust區域
5.3 服務器配置
-
分別在FTP、WEB服務器中配置文件根目錄,設置文件在該目錄中,便於client登錄查詢
-
在兩個文件夾中隨便創建空文件以便後續查看
- 在Client配置服務器地址
將IP地址均分配爲100.2.2.9
5.4 路由器R1配置
- 除按照拓撲圖配置接口外,只需要配置一條靜態路由指向防火牆即可
[R1]ip route-static 100.2.2.8 29 100.1.1.2
5.5 配置FW1防火牆
- ① 登錄防火牆密碼
Username:admin #華爲防火牆默認用戶名爲admin
Password: #輸入初始密碼:Admin@123
The password needs to be changed. Change now? [Y/N]: y
Please enter old password: #輸入初始密碼
Please enter new password: #輸出自定義的新密碼,例如huawei@123
Please confirm new password: #重新輸入新密碼
Info: Your password has been changed. Save the change to survive a reboot. ************************************************************************** Copyright (C) 2014-2018 Huawei Technologies Co., Ltd. ** All rights reserved. ** Without the owner's prior written consent, ** no decompiling or reverse-engineering shall be allowed. **************************************************************************
<USG6000V1>
-
② 劃分接口所屬區域:
將內網區接口加入trust區域
將外網接口加入到untrust區域
將兩臺服務器加入到dmz區域
#將連接PC的接口加入到trust區域
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add in g1/0/4
[USG6000V1-zone-trust]add in g1/0/3
[USG6000V1-zone-trust]add in g1/0/2
[USG6000V1-zone-trust]q
#將連接服務器的接口加入dmz區域
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add in g1/0/1
[USG6000V1-zone-dmz]q
#將連接外網的接口加入到untrust區域
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add in g1/0/0
- ③ 配置到達Client的靜態路由
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.1
5.5.1 配置技術部防火牆NAT規則
- ① 配置安全策略
注:easy-ip類型的NAT不會產生server-map
#定義安全策略
[USG6000V1]security-policy
#新建安全策略(easy)
[USG6000V1-policy-security]rule name easy
#源區域--trust
[USG6000V1-policy-security-rule-easy]source-zone trust
#目的區域--untrust
[USG6000V1-policy-security-rule-easy]destination-zone untrust
#動作---允許放行
[USG6000V1-policy-security-rule-easy]action permit
[USG6000V1-policy-security-rule-easy]q
[USG6000V1-policy-security]q
- ② 配置NAT策略
#定義NAT策略
[USG6000V1]nat-policy
#定義NAT策略名(easypolicy)
[USG6000V1-policy-nat]rule name easypolicy
#源地址爲192.168.3.0 24網段
[USG6000V1-policy-nat-rule-easypolicy]source-address 192.168.3.0 24
#定義源區域--trust
[USG6000V1-policy-nat-rule-easypolicy]source-zone trust
#定義目標區域--untrust
[USG6000V1-policy-nat-rule-easypolicy]destination-zone untrust
#開啓NAT轉換,類型爲easy-ip
[USG6000V1-policy-nat-rule-easypolicy]action source-nat easy-ip
[USG6000V1-policy-nat-rule-easypolicy]q
[USG6000V1-policy-nat]q
5.5.2 配置行政部防火牆NAT規則
- 配置NAT地址組
#定義NAT組(地址池)組名爲natp
[USG6000V1]nat address-group napt
#定義組中的ip地址(可配置範圍,例如:100.2.2.12 100.2.2.20)
[USG6000V1-address-group-napt]section 0 100.2.2.12
#模式爲pat(pat:端口、地址轉換都可以做)
[USG6000V1-address-group-napt]mode pat
[USG6000V1-address-group-napt]q
- 配置NAT策略
#定義NAT策略
[USG6000V1]nat-policy
#定義NAT策略名(napt)
[USG6000V1-policy-nat]rule name napt
#定義需要轉換的源地址
[USG6000V1-policy-nat-rule-napt]source-address 192.168.2.0 24
#定義源區域--trust
[USG6000V1-policy-nat-rule-napt]source-zone trust
#定義目標區域--untrust
[USG6000V1-policy-nat-rule-napt]destination-zone untrust
#關聯nat地址組(池)napt
[USG6000V1-policy-nat-rule-napt]action source-nat address-group napt
-
配置黑洞路由
針對NAPT類型需要配置黑洞路由,地址爲nat組中定義的(公網)地址組的IP地址
[USG6000V1] ip route-static 100.2.2.12 32 NULL 0
5.5.3 配置財務部的防火牆NAT規則
- 配置NAT地址組
#定義nat地址組(池),組名爲natnopat
[USG6000V1]nat address-group natnopat
#定義地址池中的IP段
[USG6000V1-address-group-natnopat]section 0 100.2.2.10 100.2.2.11
#配置模式爲本地no-pat模式(會形成Server-map)
[USG6000V1-address-group-natnopat]mode no-pat local
[USG6000V1-address-group-natnopat]q
- 配置NAT策略
#定義NAT策略
[USG6000V1]nat-policy
#定義NAT策略名(nopat)
[USG6000V1-policy-nat]rule name nopat
#定義需要轉換的源地址
[USG6000V1-policy-nat-rule-nopat]source-address 192.168.1.0 24
#定義源區域--trust
[USG6000V1-policy-nat-rule-nopat]source-zone trust
#定義目標區域--untrust
[USG6000V1-policy-nat-rule-nopat]destination-zone untrust
#關聯nat地址組(池)natnopat
[USG6000V1-policy-nat-rule-nopat]action source-nat address-group natnopat
[USG6000V1-policy-nat-rule-nopat]q
[USG6000V1-policy-nat]q
-
配置黑洞路由
針對no pat類型需要配置黑洞路由,地址爲natnopat組中定義的(公網)地址組的成員
[USG6000V1]ip route-static 100.2.2.10 32 NULL 0
[USG6000V1]ip route-static 100.2.2.11 32 NULL 0
5.5.4 配置DMZ區域防火牆NAT規則
- 配置安全策略
#定義安全策略
[USG6000V1]security-policy
#定義安全策略名爲 todmz
[USG6000V1-policy-security]rule name todmz
#源區域--untrust
[USG6000V1-policy-security-rule-todmz]source-zone untrust
#目標區域--dmz
[USG6000V1-policy-security-rule-todmz]destination-zone dmz
#定義目標地址段爲 192.168.0.0 24
[USG6000V1-policy-security-rule-todmz]destination-address 192.168.0.0 24
#定義ftp服務、http服務
[USG6000V1-policy-security-rule-todmz]service ftp
[USG6000V1-policy-security-rule-todmz]service http
#允許通行
[USG6000V1-policy-security-rule-todmz]action permit
- 配置NAT服務
#(全局適用)端口映射,使用ftp協議訪問100.2.2.9 21端口時,訪問的是內網192.168.0.2 21 端口的設備
[USG6000V1]nat server ftp protocol tcp global 100.2.2.9 21 inside 192.168.0.2 21
(全局適用)端口映射,使用http協議訪問100.2.2.9 80端口時,訪問的是內網192.168.0.3 80 端口的設備
[USG6000V1]nat server http protocol tcp global 100.2.2.9 80 inside 192.168.0.3 80
5.6 驗證
- ① 查看server-map表和會話表
#查看會話表
[USG6000V1]dis firewall session table
2020-02-25 08:30:08.800
Current Total Sessions : 4
ftp VPN: public --> public 200.1.1.2:2058 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2060 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2056 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2053 +-> 100.2.2.9:21[192.168.0.2:21]
#查看server-map表
[USG6000V1]dis firewall server-map
2020-02-25 10:36:06.470
Current Total Server-map : 4
Type: Nat Server, ANY -> 100.2.2.9:80[192.168.0.3:80], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server, ANY -> 100.2.2.9:21[192.168.0.2:21], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server Reverse, 192.168.0.2[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
Type: Nat Server Reverse, 192.168.0.3[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
注:由於老化時間,有可能會導致會話表清空
-
② 分別在技術部、行政部、財務部 ping client服務器
-
技術部 ping client服務器
-
行政部 ping client服務器
-
財務部 ping client 服務器
-
③ 在client 中訪問兩臺服務器