防火牆之詳解
1、防火牆的介紹
防火牆是指隔離在本地網絡與外界我網絡之間的一道防護系統,一般用於專用網絡與公用網絡的互聯環境之中,特別是接入Internet的網絡,它是惟一進出不一樣網絡安全域之間信息的通道,能根據安全策略控制信息流出入網絡,如容許,拒絕,監測等等,它是一種在Internet上很是有效的安全模式,經過它能隔離風險區域的連接,同時又不會妨礙用戶對風險區域的訪問,從而有效地監控了內部網和Internet之間的活動,保證了內部網絡的安全,防火牆的主要功能是根據IP
和TCP兩個報文實現的。
2、防火牆的特徵以及功能
防火牆的特徵:
(1)雙向流通訊息必須通過它
(2)只有符合安全策略受權的信息流才被容許經過
(3)系統自己具備很高的抗***性能
防火牆的功能:
(1)提供網絡安全的屏障
(2)強化網絡安全策略
(3)監控審計網絡的存取和訪問
(4)防止內部信息外漏
3、防火牆的一些規則
(1)匹配函數:如:IP:源IP,目標IP
TCP:SPORT,DPORT,標準位:
UDP:SPORT,DPORT
ICMP:icmp—type
(2)數據報文過濾: Linux2.0 ipfw/firewall
Linux2.2 ipchain/firewall
Linux2.4 iptables/netfilter
(3)hook function:鉤子函數 prerouting、input、output、forward、postrouting
(4)規則鏈:PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
4、三種表的做用和內置鏈以及在各類表的功能
(1):filter(過濾數據包)
INPUT:應用於發往本機的數據包
DORWARD:應用於路由通過本地的數據包
OUTPUT:本地產生的數據包
(2):nat(網絡地址轉換)
PREROUTING:修改剛剛到達防火牆時數據包的目的地址
OUTPUT:修改本地產生的數據包的目的地址
POSTROUTING:修改要離開防火牆的數據包的源地址
(3):mangle(修改數據包)
PREROUTING:在數據包進入防火牆以後路由判斷以前,改變數據包
OUTPUT:在肯定數據包的目的以前更改數據包
POSTROUTING:在肯定數據包的目的以後更改數據包
INPUT:數據包被路由到本地以後,用戶程序看到以前改變數據包
5、iptables介紹
可使用自定鏈,但只在被調用時才能發揮做用,並且若是沒有自定義鏈中的任何規則匹配,還應該有返回機制,能夠用刪除自定義的空鏈,能夠默認鏈沒法刪除。
每一個規則都有兩個內置的計數器:一、被匹配的報文個數;二、被匹配的報文大小之和
Iptables的規則:匹配標準,處理動做
例如:iptables [-t TABLE] COMMAND CHAIN [num] 匹配條件 -j 處理動做
匹配標準:
一、通用匹配
-s,--src:指定源地;-d, --dst:指定目標地址;-p {tcp|udp|icmp}指定協議
-i:INTERFACE:指定數據報文流入的接口
可用於定義標準的鏈:PREROUTING,INPUT,FORWARD
-o INTERFACE:指定數據報文流出的接口
可用於定義標準的鏈:OUTPUT,POSTROUTING,FORWAD
二、擴展匹配
隱含擴展:不用特別指明有哪一個模塊進行的擴展,由於此時使用-p {tcp|udp|icmp}
-p tcp
--sport PORT[-PORT]:源端口
例如:源地址爲172.16.38.1,sshd爲22/tch
--tcp-flags mask comp:只檢查mask指定的標誌位,是逗號分隔的標誌位列表:comp,此列表中出現的標記必須爲1,comp中沒出現,而mask中出現的,必須爲0;
--tcp-flags SYN,FIN,ACK,RST SYN,ACK
--syn
p icmp
-p udp
顯示擴展,必須指明有哪一個模塊進行的擴展,在iptables中使用-m選項可完成此功能
-m EXTESTLON --spe-opt
state:狀態擴展
結合ip_conntrack追蹤會話的狀態
NEW:新連接請求
INVALID:非法連接
-m state --state NEW -j ACCEPT
multiport:離散的多端口匹配擴展
--source-ports
6、iptables的命令:
管理規則:
-A:附加一條規則,添加在鏈的尾部
-I:CHAIN [num]插入一條規則,插入爲對應CHAIN上的第num條;
-D CHAIN [num]:刪除指定鏈中的第num條規則
-R CHINA [num]:替換指定的規則;
管理鏈:
-F:[CHAIN]:flush:清空指定規則鏈,若是省略CHAIN,則能夠實現刪除對應表中的全部鏈
-P: CHAIN:設定指定鏈的默認策略;
-N:自定義一個新的空鏈
-X:刪除一個自定義的空鏈
-Z:置零指定鏈中全部規則的計數器
-E:重命名自定義的鏈
查看類:
Lsmod | grep []
-L:顯示指定表中的規則;
-n:以數字格式顯示主機地址和端口號
-v:顯示鏈及規則的詳細信息
-x:顯示計數器的精確值
--lline-numbers:顯示規則號碼
7、iptables動做(target)
-J
ACCEPT:放行 DROP:丟棄 REJECT:拒絕 DNAT:(目標地址轉換)
SNAT:原地址轉換 REDIRECT:端口重定向 MASQUERADE:地址假裝
NOTRACK(不作任何追蹤) LOG:日誌 MARK:打標機