網站首頁 編程語言 正文
1.鏈的概念
在防火墻中,用戶想要成功進入內網環境,就需要發送請求報文,請求報文要和防火墻設置的各種規則進行匹配和判斷,最后執行相應的動作(放行或者拒絕),一個防火墻中通常針對不同的來源設置很多種策略,多個策略形成一個鏈,其實也可以理解成是分組的概念,在Iptables防火墻中針對不同的鏈路共分為五種不同的鏈。
如下圖所示,當數據報文進入鏈之后,首先匹配第一條規則,如果第一條規則通過則訪問,如果不匹配,則接著向下匹配,如果鏈中的所有規則都不匹配,那么就按照鏈的默認規則處理數據報文的動作。
2.Iptables五種鏈的概念
Iptables有五種不同的鏈,分別是INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。
- INPUT:從外界進入防火墻的數據包會應用此規則鏈中的策略。
- OUTPUT:當前服務器從防火墻外出的數據表會應用此規則鏈中的策略。
- FORWARD:轉發數據包時會應用此規則鏈中的策略。
- PREROUTING:主機外的報文要進入防火墻,所有的數據包進來的時候都會由PREROUTING鏈進行處理。
- POSTROUTING:主機內的報文要從防火墻出去,需要經過POSTROUTING鏈進行處理。
3.Iptables數據流向經過的表
請求報文流入本地要經過的鏈:
請求報文要進入本機的某個應用程序,首先會到達Iptables防火墻的PREROUTING鏈,然后又PREROUTING鏈轉發到INPUT鏈,最后轉發到所在的應用程序上。
PREROUTING--->INPUT--->PROCESS
請求報文從本機流出要經過的鏈:
請求報文讀取完應用程序要從本機流出,首先要經過Iptables的OUTPUT鏈,然后轉發到POSTROUTING鏈,最后從本機成功流出。
PROCESS--->OUTPUT--->POSTROUTING
請求報文經過本機向其他主機轉發時要經過的鏈:
請求報文要經過本機向其他的主機進行換發時,首先進入A主機的PREROUTING鏈,此時不會被轉發到INPUT鏈,因為不是發給本機的請求報文,此時會通過FORWARD鏈進行轉發,然后從A主機的POSTROUTING鏈流出,最后到達B主機的PREROUTING鏈。
PREROUTING--->FORWARD--->POSTROUTING
4.Iptables防火墻四種表的概念
**Iptables防火墻中表的概念:**在一個鏈中會有很多的防火墻規則,我們將具有同一種類型的規則組成一個集合,這個集合就叫做表,表可以簡單的列成是一些具有同樣類型的規則的分組,例如關于IP地址轉換的策略都放在一個表中、修改數據保報文的策略都放在一個表中。
在Iptables防火墻中包含四種常見的表,分別是filter、nat、mangle、raw。
- filter:負責過濾數據包。
- filter表可以管理INPUT、OUTPUT、FORWARD鏈。
- nat:用于網絡地址轉換。
- nat表可以管理PREROUTING、INPUT、OUTPUT、POSTROUTING鏈。
- mangle:修改數據包中的內容,例如服務類型、TTL、QOS等等。
- mangle表可以管理PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD鏈。
- raw:決定數據包是否被狀態跟蹤機制處理。
- raw表可以管理PREROUTING、OUTPUT鏈。
5.Iptables防火墻表與鏈之間的優先級概念
在Iptables防火墻中,表與鏈之間是存在優先級的關系的,因為每張表的作用都是不同的,一張表會同時存放在多個鏈中,當一條數據報文進入一個鏈后,會按照表的優先級順序依次匹配對應的規則。
Iptables防火墻表的優先級順序:raw--->mangle--->nat--->filter。
如下圖所示,當數據報文進入PREROUTING鏈時,首先規匹配raw表中的規則,然后在匹配mangle表中的規則,最后在匹配nat表的規則,按照優先級順序依次匹配。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4e31sEnS-1657242939282)(G:\01-運維技術文檔整理\Iptables\01-Iptables防火墻核心理論概念.assets\image-20220428235007852.png)]
6.Iptables防火墻表和鏈之間的使用技巧
從以下三個問題中掌握防火墻表和鏈之間的使用技巧。
首先牢記各個鏈對應的表有那些:
鏈名 | 對應的表名 |
---|---|
INPUT | mangle、nat、filter |
OUTPUT | raw、mangle、Nat、filter |
FORWARD | mangle、filter |
PREROUTING | raw、mangle、nat |
POSTROUTING | mangle、nat |
記憶技巧:進出第一關的鏈都沒有fileter表,第一個進鏈除fileter都包含,input除raw都有、output全有、出鏈只有mangle和nat、forward只有mongle和filter。
**問題1:**
來自于10.0.0.1的地址,訪問本機的web服務請求都不允許,應該在哪個表的哪個鏈上設定規則?
源地址為10.0.0.1的IP訪問本機的WEB請求時不允許,屬于數據流入的操作,首先要分析會經過那些Iptables鏈?
源地址到本地服務會經過Iptables的PREROUTING和INPUT鏈,做這種規則時,都會堅定最近位置處做策略,但是也要結合實際的功能,PREROUTING鏈離源地址最近,但是沒有過濾的表,在PREROUTING中的表有mangle、nat,沒有負責做過濾的表,因此就要判斷第二個鏈,也就是INPUT鏈,在INPUT鏈中包含mangle、nat、filter表,在INPUT鏈中添加策略是最合適的。
最終的結果就是在INPUT鏈的filter表中添加具體的策略。
**問題2:**
所有由本機發往10.0.0.0/24網段的TCP服務都不允許?
從本機發往其他主機的TCP服務請求,屬于數據流出的操作,會經過PREROUTING鏈和OUTPUT鏈,到達目標地址的數據保溫都拒絕,這種類似的需求,一般都是由過濾表filter來實現,PREROUTING鏈包含的表有mangle、nat這兩張,沒有過濾表,OUTPUT鏈有raw、mangle、Nat、filter四張表,最終的結果就是在OUTPUT鏈的filter表添加具體的策略。
**問題3:**所有來自己本地內部網絡的主機,向互聯網發送web服務器請求都允許?
到達本機的請求報文向互聯網發送請求,屬于數據轉發的操作,會經過PREROUTING、FORWARD和POSTROUTING三個連,這種允許和拒絕都是在filter表中操作的,因此找到含有filter表并且距離目標端最近的鏈中添加合適的規則,最終的結果就是在filter表中添加具體的操作。
結論:
1)首先要知道要實現的需求含義,然后根據需求判斷出要在哪一個表中實現該策略。
2)然后摸清楚報文要經過的鏈,堅定在距離源/目的最近的鏈做策略。
3)最后根據鏈包含的表,判斷出要將規則添加到哪一個鏈的表中。
7.Iptables防火墻幾種動作
ACCEPT:將數據包放行。
REJECT:拒絕該數據包通行,阻攔數據包。
DROP:丟棄數據包,不給予任何處理。
REDIRECT:重定向。
原文鏈接:https://juejin.cn/post/7129337209299140639
相關推薦
- 2022-08-12 Python?Pandas?中的數據結構詳解_python
- 2022-02-24 C語言數據結構與算法之排序總結(一)_C 語言
- 2022-06-28 python神經網絡學習使用Keras進行回歸運算_python
- 2022-05-15 Pycharm創建Django項目示例實踐_python
- 2022-12-24 C++中STL容器的主要使用及含義說明_C 語言
- 2022-01-09 Echarts|Stacked Line Chart(折線圖堆疊)Y軸數據不正確問題
- 2022-02-22 Oracle10G序列名因標識符長度太大導致無法創建
- 2022-04-04 微信小程序:獲取用戶手機號碼的過程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支