您好,登錄后才能下訂單哦!
這篇文章主要介紹“LINUX的iptables防火墻知識點有哪些”,在日常操作中,相信很多人在LINUX的iptables防火墻知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”LINUX的iptables防火墻知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
位于Linux內核中的包過濾功能體系
稱為Linux防火墻的“內核態”
位于/sbin/iptables,用來管理防火墻規則的工具
稱為Linux防火墻的“用戶態”
上述2種稱呼都可以表示Linux防火墻
規則的作用:對數據包進行過濾或處理
鏈的作用:容納各種防火墻規則
鏈的分類依據:處理數據包的不同時機
INPUT:處理入站數據包
OUTPUT:處理出站數據包
FORWARD:處理轉發數據包
POSTROUTING鏈:在進行路由選擇后處理數據包
PREROUTING鏈:在進行路由選擇前處理數據包
表的作用:容納各種規則鏈
表的劃分依據:防火墻規則的作用相似
raw表:確定是否對該數據包進行狀態跟蹤
mangle表:為數據包設置標記
nat表:修改數據包中的源、目標IP地址或端口
filter表:確定是否放行該數據包(過濾)
規則表之間的順序:rawàmangleànatàfilter
規則鏈之間的順序
入站:PREROUTINGàINPUT
出站:OUTPUTàPOSTROUTING
轉發:PREROUTINGàFORWARDàPOSTROUTING
按順序依次檢查,匹配即停止(LOG策略例外)
若找不到相匹配的規則,則按該鏈的默認策略處理
iptables [-t 表名] 選項 鏈名 條件 -j 控制類型
//表filter的INPUT鏈的開頭寫入拒絕(必要時會給出提示)以icmp協議的數據
例: iptables -t filter -I INPUT -p icmp -j REJECT
注意:如-t 表名不寫,則默認是filter表
不指定鏈名時,默認指表內的所有鏈
除非設置鏈的默認策略,否則必須指定匹配條件
選項、鏈名、控制類型使用大寫字母,其余均為小寫
ACCEPT:允許通過
DROP:直接丟棄,不給出任何回應
REJECT:拒絕通過,必要時會給出提示
LOG:記錄日志信息,然后傳給下一條規則繼續匹配
-A:在鏈的末尾追加一條規則
-I:在鏈的開頭(或指定序號)插入一條規則(大寫的i)
//表filter的INPUT鏈的末尾寫入允許以tcp協議的數據入站規則
例: iptables -t filter -A INPUT -p tcp -j ACCEPT
//表filter的INPUT鏈的開頭寫入允許以tcp協議的數據入站規則
iptables -t filter -I INPUT -p tcp -j ACCEPT
//表filter的INPUT鏈的第2行寫入允許以tcp協議的數據入站規則
iptables -t filter -I INPUT 2 -p tcp -j ACCEPT
-L:列出所有的規則條目
-n:以數字形式顯示地址、端口等信息
-v:以更詳細的方式顯示規則信息
--line-numbers:顯示規則的序號
例: iptables -nL INPUT //-nL不可調轉位置
-D:刪除鏈內指定序號(或內容)的一條規則
-F:清空所有的規則
例: iptables -D INPUT 3 //刪除表filter中的鏈INPUT中的第3條規則
iptables -t nat -F //刪除表nat中的所有鏈的所有規則
-P:為指定的鏈設置默認規則
注意:默認策略要么是ACCEPT、要么是DROP
//表filter的默認規則是轉發的數據都丟棄
例: iptables -t filter -P FORWARD DROP
可直接使用,不依賴于其他條件或擴展
包括網絡協議、IP地址、網絡接口等條件
要求以特定的協議匹配作為前提
包括端口、TCP標記、ICMP類型等條件
要求以“-m 擴展模塊”的形式明確指出類型
包括多端口、MAC地址、IP范圍、數據包狀態等條件
協議匹配:-p 協議名
地址匹配:-s 源地址、-d 目的地址
接口匹配:-i 入站網卡、-o 出站網卡
//表filter的INPUT鏈的開頭寫入丟棄以icmp協議入站的數據的規則
例: iptables -I INPUT -p icmp -j DROP
//表filter的FORWARD鏈末尾寫入允許除了icmp協議轉發的數據的規則
iptables -A FORWARD -p !icmp -j ACCEPT
//表filter的INPUT鏈末尾寫入丟棄網卡eth2,網段1.0的入站數據規則
iptables -A INPUT -i eth2 -s 192.168.1.0/24 -j DROP
//意義同上
iptables -A INPUT -i eth2 -s 172.16.0.0/12 -j DROP
端口匹配:--sport 源端口、--dport 目的端口
TCP標記匹配:--tcp-flags 檢查范圍 被設置的標記
ICMP類型匹配:--icmp-type ICMP類型
//鏈FORWARD末尾寫入允許轉發以udp協議,網段1.0,端口53的數據規則
例:iptables -A FORWARD -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
//鏈INPUT末尾寫入允許以協議tcp,端口20,21的入站數據規則
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
//鏈INPUT末尾寫入丟棄以協議icmp,類型為8的入站數據規則,8請
求,0回顯,3不可達
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
//鏈INPUT末尾寫入丟棄以協議icmp,類型為0的入站數據規則
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
//鏈INPUT末尾寫入丟棄以協議icmp,類型為3的入站數據規則
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
多端口匹配:-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
IP范圍匹配:-m iprange --src-range IP范圍
MAC地址匹配:-m mac --mac-source MAC地址
狀態匹配:-m state --state 連接狀態
//鏈INPUT開頭寫入允許以tcp協議,多端口(此處只有一個)80的入站數據規則
例:iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
//鏈INPUT開頭寫入允許以tcp協議,連接狀態ESTABLISHED,RELATED的入站數據規則
iptables -I INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
//鏈INPUT末尾寫入允許以tcp協議,多端口25,80,110,143的入站數據規則
iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
//鏈RORWARD末尾寫入默認允許以tcp協議,地址范圍4.21-4.28的入站數據規則
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28
-j ACCEPT
//鏈INPUT末尾寫入丟棄來自mack地址為00:0c:29:c0:55:3f的入站數據規則
iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
應用環境:局域網主機共享單個公網IP地址接入Internet
原理:源地址轉換,修改數據包的源地址
局域網各主機正確設置IP地址/子網掩碼
局域網各主機正確設置默認網關地址
Linux網關支持IP路由轉發
//表nat的鏈POSTROUTING末尾寫入以SNAT策略把源網段1.0的經出站
網卡eth2出去的地址轉成目標地址2.39出去的規則(轉換內網的地址)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to-source 192.168.2.39
//192.168.1.0/24:內網網段
//eth2:外網接口的名稱
//192.168.2.39:外網接口的IP地址
在局域網主機 192.168.1.40 中能夠訪問外網的Web服務器192.168.2.40
查看Web主機 192.168.1.40 的訪問日志,記錄的來訪者應是網關主機的外網IP地址 192.168.2.39。也可用客戶端ping服務端,看是否通
應用環境:在Internet中發布位于企業局域網內的服務器
原理:目標地址轉換,修改數據包的目標地址
局域網的Web服務器能夠訪問Internet
網關的外網IP地址有正確的DNS解析記錄
Linux網關支持IP路由轉發
//表nat的鏈PREROUTING末尾寫入以DNAT策略把以tcp協議,端口:80,目標地址2.39
經入站網卡eth0來的轉成源地址1.40的規則(轉換的外網Internet地址)
iptables -t nat -A PREROUTING -i eth0 -d 192.168.2.39 -p tcp --dport 80 -j DNAT
--to-destination 192.168.1.40
//192.168.2.39:外網接口的IP地址
//80:發布的服務端口
//192.168.1.46:Web:防火墻的內網IP地址
在外網客戶機 192.168.2.40 中能夠訪問位于企業內網的Web服務,訪問地址為
http://192.168.2.39
查看Web服務器 192.168.1.40 的訪問日志,記錄了外網客戶機的IP地址192.168.2.40,
也可用外網客戶機ping內網web服務機,看是否通
DNAT規則中以“IP:Port”的形式指定目標地址
//表nat的鏈PREROUTING末尾寫入以DNAT策略把以tcp協議,端口:2346,目標地址2.39
經入站網卡eth0來的地址轉成源地址1.40,端口:22的規則(端口也改變)
iptables -t nat -A PREROUTING -i eth2 -d 192.168.2.39 -p tcp --dport 2346 -j DNAT
--to-destination 192.168.1.46:22
//2346:訪問的目標端口
//22:實際提供服務的端口
到此,關于“LINUX的iptables防火墻知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。