1.從瞭解iptables開始
iptables 與最新版本Liunx內核集成的ip信息包過濾系統。
該系統是一種強大的工具可用於添加、編輯和除去規則,這些規則是做信息包過濾決定的,防火牆所遵循和組成的規則。這些規則存儲在專用的信息包過濾表中,而這些表集成在Linux內核中。在信息包過濾過程中,規則被分組在我們所謂的鏈(chain)中。
雖然 netfilter/iptables IP 信息包過濾系統稱爲一個實體,實際由netfilter和iptables組成。
netfilter組件也稱爲內核空間(kernelspace),是內核的的一部分,由一些信息包過濾表組成,包含信息包過濾處理的規則集
iptables組件是一種工具,也稱作用戶空間(userpace),它使插入、修改和除去信息包過濾表中的規則變得容易。
2.安全控制手段
常用的安全控制手段有包過濾、狀態檢測、代理服務。
其中包過濾通過在網絡間的相互連接的設備上加載允許、禁止來自特定的源地址、目的地址、TCP端口號等規則,對通過設備的包進行檢查並限制進出內網。對於擁塞攻擊,內存覆蓋和病毒入侵缺無能爲力
3.基礎操作
(1)啓動:service iptables start
重啓:service iptables restart
關閉:service iptables stop
(2)表和鏈的概念
iptables具有filter nat mangle raw四個表;每個表上都列有不同的鏈
INPUT:處理來自外部的數據
OUTPUT:處理向外發送的數據
FORWAR:將數據轉發到本機的其他網卡設備上
PREROUTING:處理到達本機並在路由轉發前的數據包。轉換數據包中IP地址,常用NAT轉換
POSTROUTING:處理即將離開本機的數據包。轉換數據包中的源IP地址
(3)表的三條規則
規則包括一個條件和一個目標;如滿足條件,就執行目標中的規則或特定值;不滿足條件,就判斷下一條規則
-j+目標值
目標值:ACCEPT允許接收數據包;DROP:丟棄包;QUEUE:將數據移交到用戶空間;RETURN停止執行當前的規則並返回鏈頭重新判斷
(4)配置常用口令
iptables -L:看當前所有策略
iptables -F/--flush :清空當前的策略
iptables -t filter/mangle/nat --list 看指定表內的規則
iptables -t NAT -F 手動清除NAT表
永久保存這些規則的更改
iptables -save > /etc/iptables 備份
新建一個規則的腳本 並保存到/etc/network/if-pre-up.d/目錄下,每次開機都會加載這個腳本
(5)追加規則
-A+鏈名+基本參數(通過firewall - rule 查看)
基本參數:
-p+協議名(tcp,udp,icmp)
-s+指定數據包的源地址 也可用-src
-d+指定數據包目的地址 -dst
-j+目標值(ACCEPT,DROP,QUEUE,REURN)/其他鏈
-i+輸入接口(eth0)/ !-i 取反
-o+輸出接口(eth0)
-sport +源端口號/服務名稱,缺省下將匹配所有端口
-dport+目的端口號/服務名稱
-tcp-flags (SYN,ACK,FIN,RST,URG,PSH)
-icmp-type 0 表示 Echo Reply
-icmp-type 8 表示 Echo
4.給出兩腳本作爲例子
企業防火牆概念圖
防火牆將子網劃分爲多個部分,簡短運行時間