您好,登錄后才能下訂單哦!
tcp/ip協議網絡上一個節點,大門洞開,套接字會話,需要ip和端口,檢查套接字報文,套接字和tcp/ip協議差別。主機防火墻,工作在主機上。進入網卡,到內核中的tcp/ip協議棧,工作在tcp/ip協議棧上,在一些協議棧上某些位置放上卡哨,在設定檢查規則。
網絡防火墻,在網絡外部。
防火墻:工作與主機或網絡邊緣,對于進出的報文根據定義的規則做檢查,進而對被規則匹配到的報文最為相應處理的套件;
網絡層防火墻,檢查報文的幀首部,IP首部,tcp首部,不能對數據內容進行檢查。
iptables/netfilter ,netfilter就是tcp/ip協議棧上的卡哨,用iptables加入規則
規則優先級從高到低以及能工作的卡哨位置:
raw :目標是關閉nat表上啟動的連接追蹤功能,PREROUTING OUTPUT
mangle;修改tcp/ip首部的一些特性,任意位置。
nat:地址轉換,POSTROUTING PREROUTING OUTPUT
filter;過濾 INPUT FORWORD OUTPUT
INPUT:在數據進入應用空間時設定的卡哨也叫做鏈。
FORWORD:主機路由過程的卡哨
OUTPUT:數據從應用程序發出時經過的卡哨
PREROUTING:數據進入網卡進行路由策略前的卡哨
POSTROUTING:數據最后選擇網卡要離開前的卡哨
數據報文流程:跟本機內部通信,PREROUTING INPUT OUTPUT POSTROUTING
由本機轉發的數據:PREROUTING FORWORD POSTROUTING
注意數據報文的流向,決定源IP目標IP。
基本語法
iptables 【-t TABLE】 –A 鏈名 匹配條件 –j 處理目標
默認的表filter
COMMAND:答題上有下邊幾種
1.對鏈上規則的一些命令-A:在后面加一條規則
-I:插入一條新規則
-D:刪除規則
-R:替換規則
-L:查詢規則 –L -n:數字格式顯示地址和端口。-L -v:詳細格式 --line-numbers顯示規則行號 –x 不要對計數器計數結果做單位換算,顯示精確值。
2.對鏈的一些命令:-F :清空規則鏈
-N:自建一個鏈,只能被調用
-X刪除一個自定義鏈
-Z計數器歸零
-P:設定默認策略,對filter表來講,默認規則為ACCEPT 或者DROP
-E:重命名自定義鏈
iptables 【-t TABLE】 –A 鏈名 匹配條件 –j 處理目標
匹配條件:通用匹配
-s 地址:指定報文源IP地址匹配范圍:可以是IP也可以是網絡地址,可以用!取反。
-d地址:報文目標ip地址
-p協議,指定匹配報文的協議類型,一般tcp udp icmp
-i:數據報文流入網卡:只能作用在數據傳入的前半部分PREROUTING INPUT FORWORD
-o:數據流出網卡:只能作用在數據傳入的后半部分 FORWORD OUTPUT POSTROUTING
擴展匹配調用netfilter 用-m
隱式擴展:當使用-p {tcp|udp|icmp}中的一種時默認調用了對應模塊,可以直接使用擴展選項
-p tcp對tcp/ip協議生效:--sport指定源端口 –dport 目標端口
--tcp-flags syn,ack,rst,fin syn all(全選,或者值都為1) none(值都為0)
--tcp-flags syn,ack,rst,fin syn 這是定義tcp第一次握手
--syn ALL 也可以定義tcp第一次握手
-p icmp主要限制ping的 :--icmp-type 8是能請求報文類型,0是指響應的報文類型
顯式擴展:必須明確指出使用哪個模塊進行擴展,才能使用擴展選項
-m 擴展模塊名稱(在iptables和netfilter上都要有這個模塊)
1)multiport用于匹配非連續或者連續端口,對多指定15個端口
--sports 【port,port:port】指定源端口
--dports目標端口
--ports源和目標都包含
iptables -I INPUT -s 192.168.0.0/16 -d 192.168.147.128 -p tcp -m multiport --dports 22,80 -j ACCEPT 是主機防火墻,在目標主機上添加,實現特定ip可以連接主機的http和ssh服務 沒指定表就默認在filter表上實現過濾,在INPUT鏈上從192.168網段到192.168.147.128的tcp報文使用multiport模塊指定192.168.147.128主機上的端口可以接受報文
2)iprange:匹配指定范圍內的地址,匹配一段連續地址而非整個網絡。
[!]--src-range IP[-P]
[!]—dst-range IP[-P]
3)string:字符串匹配,檢測應用層報文中的字符串。字符串算法,kmp, bm
專用選項--algo{kmp|bm}
--string
--hex-string 16進制的字符串
4)state:狀態檢查需要開啟狀態連接功能,不適用于高并發服務器。
--state
連接追蹤中的狀態
NEW:新建立一個會話
ESTABLISHED:已建立的連接
RELATED:有關聯的連接
INVALID:無法識別的連接
調整連接追蹤功能所能容納的連接最大數值
/proc/sys/net/nf_conntrack_max
當前追蹤的所有連接
/proc/net/nf_conntrack
追蹤不同協議或連接類型追蹤時的屬性
/proc/sys/net/netfilter目錄
放行被動模式下的ftp服務
1.裝在模塊/lib/modules/KERNEL_VERSION/kernel/net/netfilter/
模塊:nf_conntrack_ftp
modeprobe加載模塊
2.放行報文請求
a.放行NEW狀態對21端口的請求
b.放行所有ESTABLISHED和RALATED狀態報文
3.放行響應報文
放行所有ESTABLISHED和RALATED狀態報文 limit:速率限制
--limit n [/second/minute/hour/day]
--limit-burst n :能最多存幾個
time:基于時間做訪問控制
--datestart
--datestop
--timestart
--timestop
--weeks
connlimit;連接數限制,對每IP能發起并發連接數限制
--connlimit-above N
處理目標:
內置目標:
DROP:悄悄丟棄
REJECT:強硬拒絕
ACCEPT:接受
寫規則:先確定功能(表),確定報文流向,確定要實現的目標,確定匹配條件
流向:1.訪問本機進程,PREROUTING INPUT
2.出去的報文,OUTPUT POSTROUTING
3.本機轉發,PRETOUTING FORWARD POSTRONTING
4.響應,PRETOUTING FORWARD POSTRONTING
iptables 語法檢查 netfilter立即生效
切記:寫給則之前,先添加放行自己的會話
永久生效,規則文件,或者腳本 規則文件是/etc/sysconfig/iptables
保存規則iptables-save > /etc/sysconfig/iptables
service iptables save
生效iptables-restore < /etc/sysconfig/iptables
service iptables restart
設置默認策略
iptables –P 鏈 target
修改規則
iptables –R OUTPUT 1 指定那個表的那個鏈上的第幾條規則,后面跟上完整的更改規則
優化規則:盡量減少規則條目,無關的規則把訪問量大的放在上邊,屬于同一功能的匹配規格嚴格的放在上邊。
為了更好的管理規則,自定義鏈;
iptables –t filter –N http_in
刪除空的自定義鏈
iptables –X http_in
重命名自定義鏈
iptables –E oldname newname
地址轉換SNAT 原地址轉換
--to-source
MASQUERADE:自動獲取轉換的地址
DNAT 目標地址轉換
--to-destination
PNAT端口轉換
FULL NAT 全部轉換
iptables –t nat –A POSTROUTING -s 192.168.1.0/24 –j SNAT –to-source 172.16.100.7 原地址轉換成172.16.100.17主機地址
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。