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...