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