|NO.Z.00047|——————————|Applications|——|防火牆.V1|----------------------------------------------|3臺server|
阿新 • • 發佈:2022-03-22
[Applications:防火牆.V1] [Applications.LBC&HAC$HPC] [|安全防護|防火牆|SNAT轉換|DNAT轉換|iptables指令碼|firewalld修改為iptables|3臺server|]
一、何為防火牆
1、防火牆 2、防火牆:
二、防火牆的分類### --- 防火牆: ~~~ 工作在主機邊緣處或者網路邊緣處對資料報文進行檢測, ~~~ 並且能夠根據事先定義好的規則,對資料報文進行相應處理的模組 ~~~ 對於防火牆來說是放進不防出:出去的一般都是安全的。 ~~~ 工作在主機邊緣處或者網路邊緣處對資料報文進行檢測, ~~~ 並且能夠根據事先定義好的規則,對資料報文進行相應處理的模組 ~~~ 對於防火牆來說是放進不防出:出去的一般都是安全的。
1、分類
### --- iptables:
~~~ 是linux防火牆的配置工具;才是netfilter的配置工具。
### --- netfilter:
~~~ 才是正真的內部防火牆,核心裡面實現的方式。它才是防火牆生效的部分。
### --- centos6.x:
~~~ netfilter核心態/應用態iptables;iptables分類方式比較容易理解。
### --- centos7.x:
~~~ netfilter核心態/應用態firewalld;firewalld的分類比較簡單
2、工作結構3、版本變化
### --- kernel 2.0.x firewall ipfw(工具) ### --- kernel 2.2.x firewall ipchains(工具) ### --- kernel 2.4.x netfilter iptables(工具) ### --- kernel 3.13.x netfilter firewall(工具)
三、iptables原理 1、INPUT
### --- Client發起資料報文到網絡卡處,路由表判斷這個使用者的請求是不是本機的,
~~~ 若是本機的會交給netfilter的號請求,這個1號位置有對應的規則,
~~~ 如果規則時80的話,這個報文請求有80規則的話這個資料報文就會進入到Apache服務,
~~~ 去得到對應的資料報文。
### --- netfilter1號位置就是iptables的第一個入口,INPUT:鏈:規則就是寫在鏈上。
### --- 所有入站的報文都要經過INPUT鏈,才能到達使用者的上層空間。
2、OUTPUT
3、FORWORD### --- 使用者有個CURL命令: ~~~ 使用者想發起報文CURL把資料報文發到netfilter2號位置,路由表傳送給WEBSERVER網絡卡處。 ### --- netfilter2: ~~~ 對出去的資料報文進行過濾操作OUTPUT
### --- 開啟了路由轉發
~~~ client發起資料報文,並且開啟了路由轉發,目標地址指的是WEBSERVER,
~~~ 這個路由器就會把這個資料包文轉發過去,經過netfilter3號介面,
~~~ netfilter3是處理資料報文轉發的功能:FORWORD
4、PREROUTING### --- client想訪問WEBSERVER伺服器,正常情況下是訪問不到的,
~~~ 可以通過防火牆的規則讓其可以訪問到
~~~ client發起資料報文進過路由表,路由表判斷是本機的還是外部的。
~~~ 外部的會交給netfilter3 FORWORD轉發出去,
~~~ 若是netfilter4 PREROUTING進行這個路由進行對應的修改,
~~~ netfilter在路由表前進行資料報文處理的介面。
5、POSTROUTING### --- netfilter5 POSTROUTING在進行路由選擇後處理資料包
### --- 鏈放在表上。
6、五鏈
~~~ INPUT:處理入站資料包
~~~ OUTPUT:處理出站資料包
~~~ FORWARD:處理轉發資料包
~~~ POSTROUTING鏈:在進行路由選擇後處理資料包
~~~ PREROUTING鏈:在進行路由選擇前處理資料包
7、四表
### --- raw表:
~~~ 確定是否對該資料包進行狀態跟蹤;一旦資料包經過防火牆之後,
~~~ 正常情況下會消耗資源,可以設定跳出。
### --- mangle表:
~~~ 為資料包設定標記;在資料包裡打上對應標籤的功能。
### --- nat表:
~~~ 修改資料包中的源、目標IP地址或埠;多個內網使用者訪問公網,SNAT,DNAT
### --- filter表:
~~~ 確定是否放行該資料包(過濾)
8、防火牆結構:不同的表下對應的鏈是不一樣的。
四、防火牆順序
### --- 順序表
~~~ raw——>mangle——>nat——>filter
### --- 鏈順序
~~~ 入站:PREROUTING路由選擇前處理資料包 INPUT入站資料包
~~~ 出站:OUTPUT出站資料包 POSTROUTING路由選擇後處理資料包
~~~ 轉發:PREROUTING路由選擇前處理資料包 FORWARD轉發資料包 POSTROUTING路由選擇後處理資料包
### --- 規則順序
~~~ 按順序依次檢查,匹配即停止(LOG策略例外):LOG:打了一個日誌,並不做任何處理。
~~~ 若找不到相匹配規則,則按該鏈的預設策略處理。
### --- 資料匹配流程圖
~~~ 網路A,網路B不同的網路之間完成資料請求。
~~~ 網路A發起資料報文到本機的應用伺服器先經過raw表mangle表nat表通過路由表的選擇到filter表mangle表到目標。
五、iptables語法規則### --- 書寫規則
~~~ 語法構成:iptables [-t 表名] 選項 [鏈名] [條件] [-j 控制型別]
### --- 幾個注意事項
~~~ 不指定表名時,預設指filter表
~~~ 不指定鏈名時,預設指表內的所有鏈
~~~ 除非設定鏈的預設策略,否則必須制定匹配條件
~~~ 選項,鏈名,控制型別使用大寫字母,其餘均為小寫
### --- 常見動作型別
~~~ ACCEPT:允許通過
~~~ DROP:直接丟棄,不給出任何迴應
~~~ REJECT:拒絕通過,必要時給出提示
~~~ LOG:記錄日誌資訊,然後傳給下一條規則繼續匹配
~~~ SNAT:修改資料包源地址
~~~ DNAT:修改資料包目的地址
~~~ REDIRECT:重定向
### --- 新增新的規則
~~~ -A:在鏈的末尾追加一條規則
~~~ -I:在鏈的開頭(或指定序號)插入一條規則
~~~ iptables -t filter -A INPUT -p tcp -j ACCEPT: // 當有tcp協議的入站請求的時候放行。
~~~ iptables -I INPUT -p udp -j ACCEPT // 在input鏈的開頭增加一條規則。當有udp連線的時候放行
~~~ iptables -I INPUT 2 -p icmp -j ACCEPT // 在input鏈的第二個協議上新增一個協議ICMP連線放行
### --- 檢視規則列表
~~~ -L:列出所有的規則條目
~~~ -n:以數字形式顯示地址,埠等資訊
~~~ -v:以更詳細的方式顯示規則資訊
~~~ --line-numbers:檢視規則時,顯示規則的序號
iptables -L INPUT --line-numbers
~~~ Chain INPUT (policy ACCEPT)
~~~ num target port opt source destination
~~~ 1 ACCEPT udp -- anywhere anywhere
~~~ 2 ACCEPT icmp -- anywhere anywhere
### --- 刪除,清空規則
~~~ -D:刪除鏈內指定序號(或內容)的一條規則
~~~ -F:清空所有的規則
~~~ iptables -D INPUT 3
~~~ iptables -n -L INPUT
~~~ Chain INPUT (policy ACCEPT)
~~~ target prot opt source destination
~~~ ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0
~~~ ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
~~~ ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
### --- 設定預設策略
~~~ -p:為指定的鏈設定預設規則
~~~ iptables -t filter -P FORWARD DROP
~~~ iptables -P OUTPUT ACCEPT
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)