Linux 的內置firewall機制,是通過kernel中的netfilter模塊實現的(www.netfilter.ort)。Linux kernel使用netfilter對進出的數據包進行過濾,netfilter由三個規則表組成,每個表又有許多內建的鏈組成。通過使用iptables命令可以對這些表鏈進行操作,如添加、刪除和列出規則等。
一、Netfilter規則表—filter nat mangle
filter,用于路由網絡數據包。是默認的,也就是說如果沒有指定-t參數,當創建一條新規則時,它會默認存放到該表內。
INPUT 網絡數據包流向服務器
OUTPUT 網絡數據包從服務器流出
FORWARD 網絡數據包經服務器路由
nat,用于NAT表.NAT(Net Address Translation )是一種IP地址轉換方法。
PREROUTING 網絡數據包到達服務器時可以被修改
OUTPUT 網絡數據包由服務器流出
POSTROUTING 網絡數據包在即將從服務器發出時可以被修改
mangle,用于修改網絡數據包的表,如TOS(Type Of Service),TTL(Time To Live),等
INPUT 網絡數據包流向服務器
OUTPUT 網絡數據包流出服務器
FORWARD 網絡數據包經由服務器轉發
PREROUTING 網絡數據包到達服務器時可以被修改
POSTROUTING 網絡數據包在即將從服務器發出時可以被修改
1.配置Iptables
當數據包進入服務器時,Linux Kernel會查找對應的鏈,直到找到一條規則與數據包匹配。如果該規則的target是ACCEPT,就會跳過剩下的規則,數據包會被繼續發送。如果該規則的target是DROP,該數據包會被攔截掉,kernel不會再參考其他規則。
Note:如果從始至終都沒有一條規則與數據包匹配,而且表末尾又沒有drop all的規則,那末該數據包會被accept。Cisco則相反,在表末尾會因含deny all的規則。
1.) Iptables的命令選項
iptables [-t tables] command option parameter target |
-A 在鏈尾添加一條規則
-C 將規則添加到用戶定義鏈之前對其進行檢查
-D 從鏈中刪除一條規則
-E 重命名用戶定義的鏈,不改變鏈本身
-F 清空鏈,刪除鏈上的所有規則
-I 在鏈中插入一條規則
-L 列出某個鏈上的規則,如iptables –L INPUT 列出INPUT鏈的規則
-N 創建一個新鏈
-P 定義某個鏈的默認策略
-R 替換鏈上的某條規則
-X 刪除某個用戶相關的鏈
-Z 將所有表的所有鏈的字節和數據包計數器清零
2.) Iptables的命令參數
-p –protocol
共3頁: 1 [2] [3] 下一頁 | ||
|