iptables/netfiles基本使用
iptables防火墻可以用於創建過濾(filter)與NAT規則。所有Linux發行版都能使用iptables,因此理解如何配置iptables將會幫助你更有效地管理Linux防火墻。如果你是第一次接觸iptables,你會覺得它很復雜,但是一旦你理解iptables的工作原理,你會發現其實它很簡單。
首先介紹iptables的結構:iptables -> Tables -> Chains -> Rules. 簡單地講,tables由chains組成,而chains又由rules組成。如下圖所示。
二、iptables的表與鏈關系
1、iptables由4表5鏈組成具體如下
四表:
filter: mangle: nat: raw:關閉在nat表中啟用的連接追蹤機制
五鏈: PREROUTING: INTPUT: FORWRAD:OUTPUT:POSTROUTING
2、表與鏈的關系
filter:Filter表示iptables的默認表,如果沒有自定義表,默認使用filter表,它具有以下三種內建鏈:功能:主要實現過濾功能
INPUT:處理來自外部與本機進程的報文
OUTPUT :處理本機產生的報文
FOWARD:將數據通過本機轉發至本機其他網卡或其他網絡的數據
mangele:具有所有內置鏈,功能:拆解報文,按需修改
PREROUTING:
INTPUT
FORWRAD
POSTROUTING
nat:實現網絡地址轉換功能
PEROUTING,處理剛到達本機並在路由轉發前的數據包,它會轉換數據包中的目標IP地址通常用於DNAT(destination NAT)。
OUTPUT.處理本機產生的報文
POSROUTING:處理馬上離開本機之前的報文,會轉換數據包中的源Ip地址通常用戶SNAT
raw:關閉在nat表中啟用的連接追蹤機制
PREOUTING,
OUTPUT
三、iptables規則
1、組成和標準:
根據規則的匹配條件嘗試匹配報文,對匹配成功的報文根據規則定義的處理動作
Rules包括一個條件和一個目標(target)
如果滿足條件,就執行目標(target)中的規則或者特定值。
2、基本處理動作:
ACCEPT :允許防火墻接收數據包
DROP :防火墻丟棄包
QUEUE : 防火墻將數據包移交到用戶空間
RETURN :防火墻停止執行當前鏈中的後續Rules,並返回到調用鏈(the calling chain)中。
3、主要參數:
4、匹配條件
匹配條件主要有基本匹配和擴展匹配
1、基本匹配
[!] -s, :源地址匹配
[!] -d, :目標地址匹配
[!] -p {tcp|udp|icmp}:限制協議:
禁止所有主機ping本機
// 禁止所有主機ping測本機,源和目標不指定即為所有IP
查看所有規則的具體信息
擴展匹配可以分兩大類:
隱式擴展:可以不用使用-m選項,前面是使用-p匹配任何協議
顯示擴展:必須有-m選項專門加載相應的模塊
隱式擴展匹配條件
[!]--sport:源端口
[!]--dport:目標端口
[!]--tcp-fiags mask comp:檢查報文中mask指明的tcp標誌,而這些標誌位comp必須唯1
mask:sys,fin,ack,rst
禁止指定主機訪問本機的SSH服務
顯示擴展匹配條件:
multiport:多端口匹配
iprange:指明一段連續的ip地址範圍做為源地址或目標地址匹配
[!]--src-range from[-to]:源地址範圍
[!]--dst-range from[-to]:目標地址範圍
指定特有的主機可以訪問本機的80和22端口:
time:根據收到報文的時間/日期與指定的時間/日期範圍進行匹配
--datestart YYY:MM-DD THH:mm ss 起始日期時間
--datestop YYY:MM-DD THH:mm ss 結束日期時間
--timestart hh:mm[:ss]:起始時間
--timestart hh:mm[:ss]:結束時間
--monthdays day [,day..]:匹配一個月中的哪些天
--weekdays day [,day..]:匹配一個周中的哪些天
connlimit:根據客戶端主機並作出並發連接限制,即每客戶端同時發起連接數限制
--connlimlt-upto n :連接數量小於等於n則匹配
--connlimlt-above n : 連接數量大於n則匹配;
拒絕周一到周五所有主機禁止訪問本機的web服務
拒絕連接超過2次的主機再次訪問
state:用於對報文的狀態做連接追蹤(可以優化防火墻規則,但超過記錄的最大值所有連接就會超時,不適合訪問量大的服務器開啟,比如負載均衡服務器等)
--state state
INVALID:無法識別的連接
ESTABLISHED:連接追蹤模板當中存在記錄的連接
NEW:連接追蹤模板當中不存的連接請求 (新的請求)
RELATED:連接追蹤模板當中存在相關聯的連接
UNTRACKED:未追蹤的連接
允許其他主機訪問80端口
5、NAT地址轉換
NAT只要有兩個動作,且NAT表一般只應用在PERROUTING,POSTROUTING鏈上面
SNAT:源地址轉換
DNAT:目標地址轉換
將192168.153網段的IP地址進行轉換以及進行80端口進行映射
6、如何存儲防火墻策略
iptables 規則是寫入內核中,一單重啟就會失效因此需要對規則進行保持
保存規則: iptables-save>/PATH/TO/SOME_RULE_FILE
加載規則: iptables-restore < /PATH/FROM/SOME_RULE_FILE
也可以開機自動加載
進入 /etc/rc.d/rc.local 中寫入加載命令即可
iptables/netfiles基本使用