Centos7防火牆與IPTABLES詳解

防火牆定義

在這裏插入圖片描述

防火牆分類

在這裏插入圖片描述

無狀態包過濾防火牆

基於單個IP報文進行操作,每個報文都是獨立分析

  • 默認規則
    • 一切未被允許的都是禁止的
    • 一切未被禁止的都是允許的
  • 規則特徵
    • 協議類型,如TCP、UDP、ICMP、IGMP等
    • 源和目的IP地址和端口
    • TCP標記,如SYN、ACK、FIN、RST等
    • 網絡層協議選項,如ICMP ECHO、ICMP REPLY等
    • 報文的傳遞方向,如進入接口還是從接口發出
    • 報文流過的接口名,如eth0
      在這裏插入圖片描述
      在這裏插入圖片描述

有狀態包過濾防火牆

自動歸類屬於同一個會話的所有報文,實現會話的跟蹤功能

  • 建立報文的會話狀態表,利用狀態表跟蹤每個會話狀態對於內部主機對外部主機的連接請求,防火牆可以認爲這是一個會話的開始
  • 訪問控制策略
    • 報文流動方向和所屬服務
    • 發起會話和接受會話的終端地址範圍
    • 會話各階段的狀態

在這裏插入圖片描述

會話狀態表

在這裏插入圖片描述

代理防火牆分類

應用層代理

  • 爲特定的應用服務提供代理服務,對應用層協議進行解析,也稱爲應用層網關
  • 優點是實現用戶控制、可以對應用層數據進行細粒度的控制,缺點是效率較

低電路層代理

  • 工作在傳輸層,相當於傳輸層的中繼,能夠在兩個TCP/UDP套接字之間複製數據
  • 可以同時爲不同的應用層協議提供支持
  • 無法提供應用層協議的解析和安全性檢查

IPTABLES防火牆

IPTABLE的表、鏈結構

規則鏈

  • 規則的作用:對數據包進行過濾或處理
  • 鏈的作用:容納各種防火牆規則
  • 鏈的分類依據:處理數據包的不同時機

默認包括5種規則鏈

  • INPUT:處理入站數據包
  • OUTPUT:處理出站數據包
  • FORWARD:處理轉發數據包
  • POSTROUTING鏈:在進行路由選擇後處理數據包
  • PREROUTING鏈:在進行路由選擇前處理數據包

規則表

  • 表的作用:容納各種規則鏈
  • 表的劃分依據:防火牆規則的作用相似

默認包括4個規則表

  • raw表:確定是否對該數據包進行狀態跟蹤
  • mangle表:爲數據包設置標記
  • nat表:修改數據包中的源、目標IP地址或端口
  • filter表:確定是否放行該數據包(過濾)
    在這裏插入圖片描述
    規則表之間的順序
  • raw -> mangle -> nat -> filter

規則鏈之間的順序

  • 入站:PREROUTING -> INPUT
  • 出站:OUTPUT -> POSTROUTING
  • 轉發:PREROUTING -> FORWARD -> POSTROUTING

規則鏈內的匹配順序

  • 按順序依次檢查,匹配即停止(LOG策略例外)
  • 若找不到相匹配的規則,則按該鏈的默認策略處理

在這裏插入圖片描述

語法構成

iptables [-t 表名] 選項 [鏈名] [條件] [-j 控制類型]

[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT

幾個注意事項

  • 不指定表名時,默認指filter表
  • 不指定鏈名時,默認指表內的所有鏈
  • 除非設置鏈的默認策略,否則必須指定匹配條件
  • 選項、鏈名、控制類型使用大寫字母,其餘均爲小寫

數據包的常見控制類型

  • ACCEPT:允許通過
  • DROP:直接丟棄,不給出任何迴應
  • REJECT:拒絕通過,必要時會給出提示
  • LOG:記錄日誌信息,然後傳給下一條規則繼續匹配

添加新的規則

-A:在鏈的末尾追加一條規則
-I:在鏈的開頭(或指定序號)插入一條規則
[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT 
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT 
[root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT

查看規則列表

-L:列出所有的規則條目
-n:以數字形式顯示地址、端口等信息
-v:以更詳細的方式顯示規則信息
--line-numbers:查看規則時,顯示規則的序號
[root@localhost ~]# 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 
REJECT     icmp --  0.0.0.0/0       0.0.0.0/0       reject-with icmp-port-unreachable ACCEPT     
tcp  --  0.0.0.0/0       0.0.0.0/0

刪除、清空規則

-D:刪除鏈內指定序號(或內容)的一條規則
-F:清空所有的規則
[root@localhost ~]# iptables -D INPUT 3 
[root@localhost ~]# 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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章