linux防火牆之iptables

2021-10-08 00:17:41 字數 3451 閱讀 4550

linux防火牆基礎

linux系統的防火牆體系基於核心編碼實現,具有非常穩定的效能和極高的效率。通常net filter和iptables都是用來指linux防火牆。

兩者的區別:

net filter屬於「核心態」的防火牆體系

iptables屬於「使用者態」的防火牆管理體系

iptables的表,鏈結構

iptables的作用是為包過濾機制的實現提供規則(或稱為策略)。採用「表」和「鏈」的分層結構更加方便管理防火牆規則。

**四規則表:**

filter表:用來對資料報過濾,根據規則要求如何處理乙個資料報。包含三個鏈(input,output,forward)

mangle表:用來修改資料報的tos,ttl。包含五個表

raw表:用來決定是否對資料進行狀態跟蹤,包含五個表(output,prerouting)

**五規則鏈:**

input:處理流入的資料報

output:處理流出的資料報

forward:處理**的資料報

prerouting:在進行路由選擇前處理資料報

postrouting:在進行路由選擇後處理資料報

資料報過濾的匹配流程

規則表之間的順序

當資料報抵達防火牆時,依次應用順序為raw,mangle,nat,filter。

編寫防火牆規則

net filter防火牆的管理工具——iptables命令

iptables命令——核心包過濾與nat管理工具

基本語法,資料報控制型別

格式:iptables [-t 表名] 管理選項 [鏈名] [匹配條件] [-j控制型別]

(當指定表明則使用預設表filter表)

選項:-p:設定預設策略

-f:清空規則鏈

-l:檢視規則鏈

-p :匹配協議,如 tcp、udp、icmp

-a:在規則鏈的末尾加入新規則

-i:在規則鏈的頭部加入新規則

-d:刪除某一條規則

-s:匹配**位址 ip/mask,加嘆號「!」表示除這個 ip 外

-d:匹配目標位址

-i:網絡卡名稱 匹配從這塊網絡卡流入的資料

-o:網絡卡名稱 匹配從這塊網絡卡流出的資料

–dport:匹配目標埠號

–sport:匹配**埠號

控制型別:

accept:允許資料報通過

drop:直接丟棄資料報,不給出任何回應資訊

reject:拒絕資料報通過

log:輔助動作,沒有真正處理資料報

新增,檢視,刪除規則等基礎操作

如:iptables -t filter -i input -p icmp -j reject//其效果是其他主機無法ping主機

iptables -t filter -i input -p icmp -j accept//允許ping包流入資料

新增新的規則(-i,-a)

iptables -t filter -a input -p tcp -j accept //-a指在末尾新增

iptables -i input -p tcp -j accept //-i指插入新規則,filter可省略

檢視規則表列表(-l)

iptables -l //檢視所有鏈所有規則

iptables -l input --line-numbers //檢視指定鏈規則並序號顯示

iptables -nl input //-n以數字形式顯示

刪除,清空規則(-d)

iptables -d input 3 //刪除input鏈第三條規則

iptables -f //清空所有鏈的規則

iptables -f input //清空inout鏈的規則

設定預設策略(-p)

iptables -t filter -p forward drop //設定filter表forward鏈為

iptables -p output accept //設定output鏈預設accpet

協議匹配(-p):如tcp,udp,icmp,all等協議

iptables -i input -p icmp -j drop //-p指定icmp協議

iptables -a forward ! -p icmp -j accept //!表示取反,則拒絕

位址匹配(-s源,-d目)

//在forward鏈尾新增一套規則,拒絕192.168.88.11中轉

iptables -a forward -s 192.168.88.11 -j reject

//在forward鏈尾新增一套規則,允許192.168.88.11中轉

iptables -a forward -s 192.168.88.0/24 -j accept

網路介面匹配

//末尾新增input鏈,-i允許192.168.100.200訪問ens33介面規則

iptables -a input -i ens33 -s 192.168.100.200 -j accept

隱含匹配包含:埠匹配,tcp標記匹配,icmp型別匹配

iptables -a forward -s 192.168.99.0/24 -p tcp --sport 53 -j accept

iptables -aforward -s 192.168.99.0/24 -p tcp --sport 53:54 -j accept //「:」表示指定連續埠,

icmp型別匹配

使用「–icmp

-type 型別」的形式匹配,型別有:8,0,3。分別表示icmp協議的請求,回顯,目標不可達。

例項:禁止從其他主機ping主機,但是允許本機ping其他主機。

iptables -a input -p icmp --icmp-type 8 -j drop //拒絕流入請求

iptables -a input -p icmp --icmp-type 0 -j accept //允許流入回應

iptables -a input -p icmp --icmp-type 3 -j accept //允許流入目標不可達

iptables -a input -p icmp -j drop //拒絕流入

總之拒絕請求,允許回應

顯示匹配

需有額外的核心模組支援,必須手動以「-m模組名稱」形式呼叫相應模組。lsmod |grep xt_命令檢視相應模組)

多埠匹配(-m multiport)

iptables -a input -p tcp -m multiport --dport 25,80,110,143 -j accept

ip範圍匹配(-m iprange --src-range)

iptables-a forward -p tcp -m iprange --src-range 192.168.99.10-192.168.99.20 -j acce

firewall 防火牆配置和iptables配置

防火牆內新增新的開放埠 firewall cmd zone public permanent add port 8080 tcp檢視埠是否被開放 firewall cmd quiery port 8080 tcp檢視所有開放的埠 firewall cmd permanent zone public ...

linux防火牆之firewalld

3 firewalld 區域的概念 4 firewalld資料處理流程 二 firewalld防火牆的配置 4 服務管理 5 埠管理 firewalld和iptables都是用來管理防火牆的工具 屬於使用者態 來定義防火牆的各種規則功能 firewalld提供了支援網路區域所定義的網路鏈結以及介面安...

linux防火牆之firewalld

firewalld防火牆為了簡化管理,將所有網路流量分為多個區域 zone 然後根據資料報的源ip位址或傳入的網路介面等條件將流量傳入相應區域。每個區域都定義了自己開啟或者關閉的埠和服務列表。區域作用 trusted 信任區域 允許所有的傳入流量 一般用於內網之中 public 公共區域 允許與ss...