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