文章目錄
- 前言
- 一、Iptables
- 二、包過濾的作業層次
- 三、iptable的表、鏈結構
- 1. 四表五鏈
- 2. 四表
- 3. 五鏈
- 4. 資料包過濾的匹配流程
- 四、規則鏈匹配順序
- 1. 主機型防火墻
- 2. 規則鏈內的匹配設順序
- 3. 資料包在規則表、鏈間的匹配流程
- 五、撰寫防火墻規則
- 六、基本語法
- 七、添加、查看、洗掉規則等基本操作
- 總結
前言
在 Internet 中,企業通過架設各種應用系統來為用戶提供各種網路服務,如 Web 網站、電子郵件系統、FTP 服務器、資料庫系統等,那么,如何來保護這些服務器,過濾企業不需要的訪問甚至是惡意的入侵呢?Linux 的防火墻體系主要作業在網路層,針對 TCP/IP 資料包實施過濾和限制,屬于典型的包過濾防火墻(或稱為網路層防火墻),Linux 系統的防火墻體系基于內核編碼實作, 具有非常穩定的性能和高效率,也因此獲得廣泛的應用,
一、Iptables
- 位于/sbin/iptables,用來管理防火墻規則的工具
- 稱為LINUX防火墻的“用戶態”
二、包過濾的作業層次
- 主要是網路層,針對IP資料包
- 體現在對包內的IP地址、埠等資訊的處理上

三、iptable的表、鏈結構
1. 四表五鏈
1.1、規則的作用:對資料包進行過濾或處理
1.2、鏈的作用:容納各種防火墻規則
1.3、鏈的分類依據:處理資料包的不同時機
2. 四表
2.1、raw:主要用來決定是否對資料包進行狀態跟蹤,包含兩個規則鏈:OUTPUT、PREROUTING
2.2、Mangle:修改資料包內容,用來做流量整形的,給資料包設定標記,包含五個規則鏈:INPUT、OUTPUT、FORWSRD、PREROUTING、POSTROUTING
2.3、NAT:負責網路地址轉換,用來修改資料包中的源、目標IP地址或埠,包含三個規則鏈:OUTPUT、PREROUTING、POSTROUTING
2.4、Filter:負責過濾資料包,確定是否放行該資料包(過濾),包含三個鏈,即:PREROUTING、POSTROUTING、OUTPUT
3. 五鏈
3.1、INPUT:處理入站資料包
3.2、OUTPUT:處理出站資料包
3.3、FORWARD:處理轉發資料包
3.4、POSTROUTING鏈:在進行路由選擇后處理資料包3.5、PREROUTING鏈:在進行路由選擇前處理資料包
4. 資料包過濾的匹配流程
優先順序:raw>mangle>nat>filter

四、規則鏈匹配順序
1. 主機型防火墻
1.1、資料包直接進入到防火墻所在的服務器的內部某一個應用程式當中,直接進入到服務,入站資料(來自外界的資料包,且目標地址是防火墻本機) : PREROUTING --> INPUT --> 本機的應用程式,
1.2、出站資料(從防火墻本機向外部地址發送的資料包):本機的應用程式–>OUTPUT-.>POSTROUTING,
1.3、網路型防火墻:轉發資料(需要經過防火墻轉發的資料包) : PREROUTING --> FORWARD --> POSTROUTING,
2. 規則鏈內的匹配設順序
2.1、自上向下按順序依次進行檢查,找到相匹配的規則即停止(LOG策略例外,表示記錄相關日志)要么放行 要么丟棄,若在該鏈內找不到相匹配的規則,則按該鏈的默認策略處理(未修改的狀況下,默認策略為允許)
2.2、一旦找到一條匹配規則將不再檢查后續的其他規則,如果一直找不到匹配的規則,就按默認規則處理,
2.3、默認規則用iptables -L查看,規則鏈后面出現(policy ACCEPT)即是默認放行
2.4、默認策略不參與鏈內規則的順序編排
2.5、-F清空鏈時,默認策略不受影響
3. 資料包在規則表、鏈間的匹配流程
3.1、入站資料流向:來自外界的資料包到達防火墻后,首先被 PREROUTING 鏈處理(是否修改資料包地址等),然后進行路由選擇(判斷該資料包應發往何處);如果資料包的目標地址是防火墻本機(如 Internet 用戶訪問網關的 Web 服務埠),那么內核將其傳遞給INPUT 鏈進行處理(決定是否允許通過等),通過以后再交給系統上層的應用程式(如 httpd 服務器)進行回應,
3.2、轉發資料流向:來自外界的資料包到達防火墻后,首先被 PREROUTING 鏈處理,然后再進行路由選擇;如果資料包的目標地址是其他外部地址(如局域網用戶通過網關訪問 QQ 服務器),則內核將其傳遞給 FORWARD 鏈進行處理(允許轉發或攔截、丟棄),最后交給 POSTROUTING 鏈(是否修改資料包的地址等)進行處理,
3.3、出站資料流向:防火墻本機向外部地址發送的資料包(如在防火墻主機中測驗公網 DNS服務時),首先進行路由選擇,確定了輸出路徑后,再經由 OUTPUT 鏈處理,最后再交 POSTROUTING 鏈(是否修改資料包的地址等)進行處理,

五、撰寫防火墻規則
1、IP table安裝
CentOS7默認使用firewalld防火墻,沒有安裝IP table,若想使用,必須先關系firewalld防火墻,再安裝iptable


六、基本語法
1、語法構成

2、資料包的常見控制型別

七、添加、查看、洗掉規則等基本操作
1、iptables 命令的常用管理選項

2、查詢iptable以及清空iptable檔案

3、禁止ICMPping通本網段


4、Ssh 22埠案例
-i 在指定鏈中插入一條新的

-d 洗掉


5、查看規則串列

6、以數字形式顯示

7、洗掉規則

8、自上而下順序


9、規則的匹配條件
9.1、通用匹配:可直接使用,不依賴于其他條件或擴展,包括網路協議、IP地址、網路介面等條件,
協議匹配:-p協議名
地址匹配:-s 源地址、-d目的地址
埠匹配:-i入站網卡、-o出站網卡
9.2、案例


9.3、隱含匹配
9.3.1、埠匹配: --sport 源埠、–dport 目的埠
9.3.2、–sport 1000 匹配源埠是1000的資料包
9.3.3、–sport 1000:3000 匹配源埠是1000-3000的資料包
9.3.4、–sport :3000 匹配源埠是3000及以下的資料包
9.3.5、–sport 1000: 匹配源埠是1000及以上的資料包
9.3.6、注意: --sport和–dport 必須配合-p <協議型別>使用
9.4、案例

10、TCP標記
10.1、SYN建立聯機
10.2、ACK確認
10.3、PSH傳送
10.4、FIN結束
10.5、RST重置
10.6、URG緊急
10.7、案例

總結
1、netfilter是實作過濾防火墻功能的內核機制,iptables是管理防火墻規則的用戶態工具
2、iptables的規則體系默認包括四個表(filter、nat、mangle、raw)和五種鏈(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)
3、表的匹配順序為 raw → mangle → nat → filter
4、鏈的匹配順序取決于具體的資料流向,且遵循“匹配即停止”的原則,但LOG操作除外
5、iptables規則的匹配條件型別包括通用匹配、隱含匹配、顯示匹配,其中顯示匹配必須以“-m 模塊名稱”加載模塊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301219.html
標籤:其他
