iptables 防火牆

iptables 防火牆

netfilter

位於Linux內核中的包過濾功能體系

稱爲Linux防火牆的“內核態”

iptables

位於/sbin/iptables,用來管理防火牆規則的工具

稱爲Linux防火牆的“用戶態”

默認包括4個規則表

raw表:確定是否對該數據包進行狀態跟蹤

mangle表:爲數據包設置標記

nat表:修改數據包中的源、目標IP地址或端口

filter表:確定是否放行該數據包(過濾)

默認包括5種規則鏈

INPUT:處理入站數據包

OUTPUT:處理出站數據包

FORWARD:處理轉發數據包

POSTROUTING鏈:在進行路由選擇後處理數據包

PREROUTING鏈:在進行路由選擇前處理數據包

wKiom1MF57igwKViAAJaTTyr-Xk814.jpg

規則表之間的順序

rawàmangleànatàfilter

規則鏈之間的順序

入站:PREROUTINGàINPUT

出站:OUTPUTàPOSTROUTING

轉發:PREROUTINGàFORWARDàPOSTROUTING

規則鏈內的匹配順序

按順序依次檢查,匹配即停止(LOG策略例外)

若找不到相匹配的規則,則按該鏈的默認策略處理

幾個注意事項

不指定表名時,默認指filter

不指定鏈名時,默認指表內的所有鏈

除非設置鏈的默認策略,否則必須指定匹配條件

選項、鏈名、控制類型使用大寫字母,其餘均爲小寫

語法構成

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

例:iptables -t filter -I INPUT -p icmp -j REJECT  //拒絕入站icmp

數據包的常見控制類型

ACCEPT:允許通過

DROP:直接丟棄,不給出任何迴應

REJECT:拒絕通過,必要時會給出提示

LOG:記錄日誌信息,然後傳給下一條規則繼續匹配

添加新的規則

-A:在鏈的末尾追加一條規則

-I:在鏈的開頭(或指定序號)插入一條規則

例:iptables -I INPUT -p udp -j ACCEPT   //允許入站udp

刪除、清空規則

-D:刪除鏈內指定序號(或內容)的一條規則

-F:清空所有的規則

例:iptables -D INPUT 1   //刪除filterINPUT鏈編號爲1的規則

   iptables -//刪除filter表的所有鏈

設置默認策略

默認策略要麼是ACCEPT、要麼是DROP

-P:爲指定的鏈設置默認規則

例:iptables -P INPUT DROP

常用管理選項彙總

wKioL1MF5-vS2mSuAAGpps1iOSQ665.jpg

常見匹配條件彙總

wKiom1MF6CujGknbAAH6Diii5Vs390.jpg

規則匹配條件

.通用匹配

1.協議匹配:-p 協議名

例:iptables -I INPUT -p icmp -j REJECT

2.地址匹配:-s 源地址、-d 目的地址

例:iptables -I INPUT -s 192.168.1.10 -j DROP

3.接口匹配:-i 入站網卡、-o 出站網卡

: iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j DROP

.隱含匹配

1.端口匹配:--sport 源端口、--dport 目的端口

例:iptables -I INPUT -p tcp --sport 80 -j ACCEPT

2.TCP標記匹配:--tcp-flags 檢查範圍 被設置的標記

:

iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP

iptables -I INPUT -i eth1 -p tcp --tcp-flags ! --syn -j ACCEPT

3.ICMP類型匹配:--icmp-type ICMP類型

8 請求,0 回顯,3 不可達

例:

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

.顯式匹配

要求以“-m 擴展模塊”的形式明確指出類型

1.多端口匹配:-m multiport --sports 源端口列表  -m multiport --dports 目的端口列表

例:iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

2.IP範圍匹配:-m iprange --src-range IP範圍

例:iptables -A INPUT -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT

3.MAC地址匹配:-m mac --mac-source MAC地址

例:iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP

4.狀態匹配:-m state --state 連接狀態

例:iptables -I INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

SNAT策略的原理

源地址轉換,Source Network Address Translation

修改數據包的源地址

SNAT策略的典型應用環境

局域網主機共享單個公網IP地址接入Internet

前提條件

局域網各主機正確設置IP地址/子網掩碼

局域網各主機正確設置默認網關地址

Linux網關支持IP路由轉發

編寫SNAT轉換規則

wKioL1MF6EPwR87UAAFGys1abkY519.jpg

進行SNAT轉換後的情況

wKiom1MF6JjgmuU9AAF2HPAtncM487.jpg

DNAT策略的原理

目標地址轉換,Destination Network Address Translation

修改數據包的目標地址

DNAT策略的典型應用環境

wKioL1MF6LLS2PTSAAGFUDEA-rw603.jpg

進行DNAT轉換後的情況

wKiom1MF6POTyjD3AAF0daKX6CE755.jpg

前提條件

局域網的Web服務器能夠訪問Internet

網關的外網IP地址有正確的DNS解析記錄

Linux網關支持IP路由轉發

編寫DNAT轉換規則

wKioL1MF6PvTxCAyAAFF9QSr10c864.jpg

iptables導出規則

iptables-save -t nat > /opt/nat

iptables導入規則

iptables-restore < /opt/nat

注!

1.不加-t選項默認是導出filter

2.重啓後,防火牆規則會初始化,只能重新導入規則,或加入開機自動運行配置文件

3.導入規則時,不能加-t選項,系統會自動識別導入的是哪個表

4.iptables使用的規則文件位於/etc/sysconfig/iptables


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