新聞中心
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)攻擊事件越來(lái)越頻繁,網(wǎng)絡(luò)安全問(wèn)題變得日益重要。在如今的網(wǎng)絡(luò)環(huán)境中,保護(hù)計(jì)算機(jī)和網(wǎng)絡(luò)免受攻擊的方法越來(lái)越復(fù)雜,這也迫使安全專家采取一系列措施來(lái)確保系統(tǒng)的安全。在這些措施中,一個(gè)很重要的方面就是在計(jì)算機(jī)和網(wǎng)絡(luò)上使用安全工具來(lái)防范入侵和攻擊。其中,Linux包過(guò)濾器是一種非常重要的網(wǎng)絡(luò)安全工具,本文將深入探討它的重要性和作用。

什么是Linux包過(guò)濾器?
Linux包過(guò)濾器也稱為iptables,是Linux內(nèi)核中的一個(gè)子系統(tǒng),用于防火墻、VPN、NAT和其他網(wǎng)絡(luò)設(shè)備的配置。iptables是一個(gè)重要的軟件程序,它能夠在Linux的內(nèi)核空間中攔截和過(guò)濾傳入和傳出的網(wǎng)絡(luò)數(shù)據(jù)包,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的精確控制。Linux包過(guò)濾器的工作是基于規(guī)則集的,這些規(guī)則定義了哪些包是允許通過(guò),哪些包應(yīng)該被丟棄或拒絕訪問(wèn)??梢哉f(shuō),Linux包過(guò)濾器是在輸入和輸出網(wǎng)絡(luò)數(shù)據(jù)包時(shí)進(jìn)行檢查的安全網(wǎng)關(guān),決定了哪些數(shù)據(jù)包是經(jīng)過(guò)認(rèn)證的,哪些是被拒絕的。
為什么我們需要Linux包過(guò)濾器?
網(wǎng)絡(luò)攻擊已經(jīng)成為了當(dāng)今更大的威脅之一。這些攻擊包括了入侵、拒絕服務(wù)攻擊和黑客攻擊等。網(wǎng)絡(luò)安全的主要目的是保護(hù)服務(wù)器和網(wǎng)絡(luò)免受這些攻擊和入侵的威脅。Linux包過(guò)濾器的作用在于防止那些試圖入侵受保護(hù)的計(jì)算機(jī)和網(wǎng)絡(luò)的連接。它對(duì)于網(wǎng)絡(luò)保護(hù)來(lái)說(shuō)是非常重要的,而它的更大優(yōu)點(diǎn)在于可以改善網(wǎng)絡(luò)安全的管理并增強(qiáng)其可擴(kuò)展性。
在網(wǎng)絡(luò)中,Linux包過(guò)濾器不僅可以防止入侵,還可以過(guò)濾不安全的流量,提供網(wǎng)絡(luò)訪問(wèn)控制和支持主機(jī)策略。用適當(dāng)?shù)囊?guī)則配置系統(tǒng),可以針對(duì)特定的IP地址、端口或協(xié)議,允許或拒絕流量的通過(guò)。基于分類的流量控制可以大大減少網(wǎng)絡(luò)阻塞和DDoS攻擊的風(fēng)險(xiǎn)。
如何使用Linux包過(guò)濾器?
使用iptables在Linux中可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的精確過(guò)濾。利用它可以限制進(jìn)入和離開(kāi)網(wǎng)絡(luò)的流量,允許和拒絕使用特定端口和協(xié)議的數(shù)據(jù)包。想要使用iptables,需要掌握一些基本的規(guī)則。例如,可以允許某一IP地址的數(shù)據(jù)包通過(guò),然后拒絕其他所有的IP地址的流量。使用iptables時(shí),你需要從輸入、輸出和傳送網(wǎng)絡(luò)數(shù)據(jù)包的兩個(gè)鏈之一中選擇一個(gè)鏈進(jìn)行設(shè)置,然后建立過(guò)濾規(guī)則。每個(gè)過(guò)濾規(guī)則定義了一項(xiàng)檢查,在通過(guò)后允許該數(shù)據(jù)包通過(guò)該鏈。在正確配置規(guī)則后,iptables將能夠監(jiān)控并處理流量,從而確保網(wǎng)絡(luò)數(shù)據(jù)包的安全。
網(wǎng)絡(luò)安全是當(dāng)今世界中最重要的問(wèn)題之一,隨著網(wǎng)絡(luò)攻擊日益加劇,保護(hù)計(jì)算機(jī)和網(wǎng)絡(luò)免受攻擊和入侵的威脅變得激烈和復(fù)雜。在這種情況下,Linux包過(guò)濾器成為了一個(gè)非常重要的安全工具。它能夠有效防止不安全的流量,提供網(wǎng)絡(luò)訪問(wèn)控制和支持主機(jī)策略。通過(guò)規(guī)則的設(shè)置、調(diào)整和監(jiān)控,Linux包過(guò)濾器可以精確地控制網(wǎng)絡(luò)的流量,從而實(shí)現(xiàn)網(wǎng)絡(luò)的安全和保護(hù)。在今天的網(wǎng)絡(luò)環(huán)境中,使用Linux包過(guò)濾器不僅是十分必要的,也是最值得信賴的安全工具之一。
相關(guān)問(wèn)題拓展閱讀:
- 急!!!利用 iptables 實(shí)現(xiàn) linux 防火墻功能有關(guān)問(wèn)題的3條命令的解釋.
- 64G內(nèi)存在linux/etc/sysctl.conf里怎樣設(shè)置內(nèi)核參數(shù)的相關(guān)推薦
- 在linux下,python怎么才能抓到網(wǎng)卡上的所有TCP數(shù)據(jù)包
急!!!利用 iptables 實(shí)現(xiàn) linux 防火墻功能有關(guān)問(wèn)題的3條命令的解釋.
iptables -t mangle -P PREROUTING ACCEPT
設(shè)置mangle表中PREROUTING鏈的默認(rèn)規(guī)則為允許
iptables -t filter -A INPUT -i eht0 -p icmp -j ACCEPT
在eth0接口上允許轉(zhuǎn)發(fā)ICMP包弊敬,即數(shù)判ping命令可用租畢慎
iptables -t filter-A INPUT -i eth0 -s $IP_SERVEUR -d $MY_IP -p tcp –sport 80 -j ACCEPT
在eth0接口上允許轉(zhuǎn)發(fā)從$IP_SERVEUR 來(lái)的到 $MY_IP 的http請(qǐng)求 ,其他請(qǐng)求禁止
之一條不太清楚,
第二條是添加一條放行,外部網(wǎng)絡(luò)到本地eth0的 icmp協(xié)議包 放行。意思就是別人可以ping通你的eth0.
第三條是慧孫添加一條笑碧局放行,外部IP(變量$IP_SERVER)訪問(wèn)本地IP($MY_IP)80端口的包放行。意思就是你在IP_SERVER變量里定義的IP地址可以訪碰讓問(wèn)你本機(jī)的網(wǎng)頁(yè)服務(wù)。
自己看:
什么是Iptables?
iptables 是建立在 netfilter 架構(gòu)基礎(chǔ)上的一個(gè)包過(guò)濾管理工具,最主要的作用是用來(lái)做防火墻或透明代理。Iptables 從 ipchains 發(fā)展而來(lái),它的功能更為強(qiáng)大。Iptables 提供以下三種功能:包過(guò)濾、NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)和通用的 pre-route packet mangling。包過(guò)濾:用來(lái)過(guò)濾包,但是不修改包的內(nèi)容。Iptables 在包過(guò)濾方面相對(duì)于 ipchians 的主要優(yōu)點(diǎn)是速度更快,使用更方便。NAT:NAT 可以分為源地址 NAT 和目的地址 NAT。
Iptables 可以追加、插入或刪除包過(guò)濾規(guī)則。實(shí)際上真正執(zhí)行這些過(guò)慮規(guī)則的是 netfilter 及其相關(guān)模塊(如 iptables 模塊和 nat 模塊)。Netfilter 是 Linux 核心中一個(gè)通用架構(gòu),它提供了一系列的 “表”(tables),每個(gè)表由若干 “鏈”(chains)組成,而每條鏈中可以有一條或數(shù)條 “規(guī)則”(rule)組成。
系統(tǒng)缺省的表為 “filter”,該表中包含了 INPUT、FORWARD 和 OUTPUT 3 個(gè)鏈。
每一條鏈中可以有一條或數(shù)條規(guī)則,每一條規(guī)則都是這樣定義的:如果數(shù)據(jù)包頭符合這樣的條件,就這樣處理這個(gè)數(shù)據(jù)包。當(dāng)一個(gè)數(shù)據(jù)包到達(dá)一個(gè)鏈時(shí),系統(tǒng)就會(huì)從之一條規(guī)則開(kāi)始檢查,看是否符合該規(guī)則所定義的條件: 如果滿足,系統(tǒng)將根據(jù)該條規(guī)則所定義的方法處理該數(shù)據(jù)包;如果不滿足則繼續(xù)檢查下一條規(guī)則。最后,如果該數(shù)據(jù)包不符合該鏈中任一條規(guī)則的話,系統(tǒng)就會(huì)根據(jù)該鏈預(yù)先定義的策略來(lái)處理該數(shù)據(jù)包。
? table,chain,rule
iptables 可以操縱3 個(gè)表:filter 表,nat 表,mangle 表。
NAT 和一般的 mangle 用 -t 參數(shù)指定要操作哪個(gè)表。filter 是默認(rèn)的表,如果沒(méi)有 -t 參數(shù),就默認(rèn)對(duì) filter 表操作。
Rule 規(guī)則:過(guò)濾規(guī)則,端口轉(zhuǎn)發(fā)規(guī)則等,例如:禁止任何機(jī)器 ping 我們的服務(wù)器,可以在服務(wù)器上設(shè)置一條規(guī)則:
iptables -A INPUT -s ! 127.0.0.1 -p icmp -j DROP
從 –s 開(kāi)始即是一肆芹條規(guī)則轎游,-j 前面是規(guī)則的條件,-j 開(kāi)始是規(guī)則的行為(目的)。整條命令解釋為,在filter 表中的 INPUT 規(guī)則鏈中插入一條規(guī)則,所有源地址不為 127.0.0.1 的 icmp 包都被拋棄。
Chain 規(guī)則鏈:由一系列規(guī)則組成,每個(gè)包順序經(jīng)過(guò) chain 中的每一條規(guī)則。chain 又分為系統(tǒng) chain和用戶創(chuàng)建的 chain。下面先敘述系統(tǒng) chain。
filter 表的系統(tǒng) chain: INPUT,F(xiàn)ORWAD,OUTPUT
nat 表的系統(tǒng) chain: PREROUTING,POSTROUTING,OUTPUT
mangle 表的系統(tǒng) chain: PREROUTING,OUTPUT
每條系統(tǒng) chain 在確定的位置被檢查。比如在包過(guò)濾中,所有的目的地址為本地的包,則會(huì)進(jìn)入INPUT 規(guī)則鏈,而從本地出去的包會(huì)進(jìn)入 OUTPUT 規(guī)則鏈。
所有的 table 和 chain 開(kāi)機(jī)時(shí)都為空,設(shè)置 iptables 的方法就是在合適的 table 和系統(tǒng) chain 中添相應(yīng)的規(guī)則。
——
IPTABLES 語(yǔ)法:
表: iptables從其使用的三個(gè)表(filter、nat、mangle)而得名, 對(duì)包過(guò)濾裂帆畢只使用 filter 表, filter還是默認(rèn)表,無(wú)需顯示說(shuō)明.
操作命令: 即添加、刪除、更新等。
鏈:對(duì)于包過(guò)濾可以針對(duì)filter表中的INPUT、OUTPUT、FORWARD鏈,也可以操作用戶自定義的鏈。
規(guī)則匹配器:可以指定各種規(guī)則匹配,如IP地址、端口、包類型等。
目標(biāo)動(dòng)作:當(dāng)規(guī)則匹配一個(gè)包時(shí),真正要執(zhí)行的任務(wù),常用的有:
ACCEPT 允許包通過(guò)
DROP 丟棄包
一些擴(kuò)展的目標(biāo)還有:
REJECT 拒絕包,丟棄包同時(shí)給發(fā)送者發(fā)送沒(méi)有接受的通知
LOG 包有關(guān)信息記錄到日志
TOS 改寫(xiě)包的TOS值
為使FORWARD規(guī)則能夠生效,可使用下面2種方法的某種:
# vi /proc/sys/net/ipv4/ip_forward
# echo “1” > /proc/sys/net/ipv4/ip_forward
# vi /etc/sysconfig/network
# echo “FORWARD_IPV4=true” > /etc/sysconfig/network
iptables語(yǔ)法可以簡(jiǎn)化為下面的形式:
iptables CMD
常用操作命令:
-A 或 -append 在所選鏈尾加入一條或多條規(guī)則
-D 或 -delete 在所選鏈尾部刪除一條或者多條規(guī)則
-R 或 -replace 在所選鏈中替換一條匹配規(guī)則
-I 或 -insert 以給出的規(guī)則號(hào)在所選鏈中插入一條或者多條規(guī)則. 如果規(guī)則號(hào)為1,即在鏈頭部.
-L 或 -list 列出指定鏈中的所有規(guī)則,如果沒(méi)有指定鏈,將列出鏈中的所有規(guī)則.
-F 或 -flush 清除指定鏈和表中的所由規(guī)則, 假如不指定鏈,那么所有鏈都將被清空.
-N 或 -new-chain 以指定名創(chuàng)建一條新的用戶自定義鏈,不能與已有鏈名相同.
-X 或 -delete-chain 刪除指定的用戶定義簾,必需保證鏈中的規(guī)則都不在使用時(shí)才能刪除,若沒(méi)有指定鏈,則刪除所有用戶鏈.
-P 或 -policy 為永久簾指定默認(rèn)規(guī)則(內(nèi)置鏈策略),用戶定義簾沒(méi)有缺省規(guī)則,缺省規(guī)則也使規(guī)則鏈中的最后一條規(guī)則,用-L顯示時(shí)它在之一行顯示.
-C 或 -check 檢查給定的包是否與指定鏈的規(guī)則相匹配.
-Z 或 -zero 將指定簾中所由的規(guī)則包字節(jié)(BYTE)計(jì)數(shù)器清零.
-h 顯示幫助信息.
—–
常用匹配規(guī)則器:
-p , protocol 指出要匹配的協(xié)議,可以是tcp, udp, icmp, all, 前綴!為邏輯非,表示除該協(xié)議外的所有協(xié)議.
-s address 指定源地址或者地址范圍.
-sport port 指定源端口號(hào)或范圍,可以用端口號(hào)也可以用/ETC/SERVICES文件中的名子.
-d address 指定目的地址或者地址范圍.
-dport port 指定目的端口號(hào)或范圍,可以用端口號(hào)也可以用/ETC/SERVICES文件中的名子.
-icmp-type typename 指定匹配規(guī)則的ICMP信息類型(可以使用 iptables -p icmp -h 查看有效的ICMP類型名)
-i interface name 匹配單獨(dú)或某種類型的接口,此參數(shù)忽略時(shí),默認(rèn)符合所有接口,接口可以使用”!”來(lái)匹配捕食指定接口來(lái)的包.參數(shù)interface是接口名,如 eth0, eht1, ppp0等,指定一個(gè)目前不存在的接口是完全合法的,規(guī)則直到接口工作時(shí)才起作用,折中指定對(duì)于PPP等類似連接是非常有用的.”+”表示匹配所有此類型接口.該選項(xiàng)只針對(duì)于INPUT,FORWARD和PREROUTING鏈?zhǔn)呛戏ǖ?
-o interface name 匹配規(guī)則的對(duì)外網(wǎng)絡(luò)接口,該選項(xiàng)只針對(duì)于OUTPUT,FORWARD,POSTROUTING鏈?zhǔn)呛戏ǖ?
–syn 僅僅匹配設(shè)置了SYN位, 清除了ACK, FIN位的TCP包. 這些包表示請(qǐng)求初始化的TCP連接.阻止從接口來(lái)的這樣的包將會(huì)阻止外來(lái)的TCP連接請(qǐng)求.但輸出的TCP連接請(qǐng)求將不受影響.這個(gè)參數(shù)僅僅當(dāng)協(xié)議類型設(shè)置為了TCP才能使用. 此參數(shù)可以使用”!”標(biāo)志匹配已存在的返回包,一般用于限制網(wǎng)絡(luò)流量,即只允許已有的,向外發(fā)送的連接所返回的包.
—
如何制定永久規(guī)則集:
/etc/sysconfig/iptables 文件是 iptables 守護(hù)進(jìn)程調(diào)用的默認(rèn)規(guī)則集文件.
可以使用以下命令保存執(zhí)行過(guò)的IPTABLES命令:
/in/iptables-save > /etc/sysconfig/iptables
要恢復(fù)原來(lái)的規(guī)則庫(kù),可以使用:
/in/iptables-restore
iptables命令和route等命令一樣,重啟之后就會(huì)恢復(fù),所以:
# service iptables save
將當(dāng)前規(guī)則儲(chǔ)存到 /etc/sysconfig/iptables:
令一種方法是 /etc/rc.d/init.d/iptables 是IPTABLES的啟動(dòng)腳本,所以:
# /etc/rc.d/init.d/iptables save
將當(dāng)前規(guī)則儲(chǔ)存到 /etc/sysconfig/iptables:
以上幾種方法只使用某種即可.
若要自定義腳本,可直接使用iptables命令編寫(xiě)一個(gè)規(guī)則腳本,并在啟動(dòng)時(shí)執(zhí)行:
例如若規(guī)則使用腳本文件名/etc/fw/rule, 則可以在/etc/rc.d/rc.local中加入以下代碼:
if ; then /etc/fw/sule; fi;
這樣每次啟動(dòng)都執(zhí)行該規(guī)則腳本,如果用這種方法,建議NTSYSV中停止IPTABLES.
—
實(shí)例:
鏈基本操作:
# iptables -L -n
(列出表/鏈中的所有規(guī)則,包過(guò)濾防火墻默認(rèn)使用的是filter表,因此使用此命令將列出filter表中所有內(nèi)容,-n參數(shù)可加快顯示速度,也可不加-n參數(shù)。)
# iptables -F
(清除預(yù)設(shè)表filter中所有規(guī)則鏈中的規(guī)則)
# iptables -X
(清除預(yù)設(shè)表filter中使用者自定義鏈中的規(guī)則)
# iptables -Z
(將指定鏈規(guī)則中的所有包字節(jié)計(jì)數(shù)器清零)
—-
設(shè)置鏈的默認(rèn)策略,默認(rèn)允許所有,或者丟棄所有:
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
(以上我們?cè)诓煌较蛟O(shè)置默認(rèn)允許策略,若丟棄則應(yīng)是DROP,嚴(yán)格意義上防火墻應(yīng)該是DROP然后再允許特定)
向鏈中添加規(guī)則,下面的例子是開(kāi)放指定網(wǎng)絡(luò)接口(信任接口時(shí)比較實(shí)用):
# iptables -A INPUT -i eth1 -j ACCEPT
# iptables -A OUTPUT -o eth1 -j ACCEPT
# iptables -A FORWARD -i eth1 -j ACCEPT
# iptables -A FORWARD -o eth1 -j ACCEPT
——
使用用戶自定義鏈:
# iptables -N brus
(創(chuàng)建一個(gè)用戶自定義名叫brus的鏈)
# iptables -A brus -s 0/0 -d 0/0 -p icmp -j DROP
(在此鏈中設(shè)置了一條規(guī)則)
# iptables -A INPUT -s 0/0 -d 0/0 -j brus
(向默認(rèn)的INPUT鏈添加一條規(guī)則,使所有包都由brus自定義鏈處理)
基本匹配規(guī)則實(shí)例:
匹配協(xié)議:
iptables -A INPUT -p tcp
(指定匹配協(xié)議為T(mén)CP)
iptables -A INPUT -p ! tcp
(指定匹配TCP以外的協(xié)議)
匹配地址:
iptables -A INPUT -s 192.168.1.1
(匹配主機(jī))
iptables -A INPUT -s 192.168.1.0/24
(匹配網(wǎng)絡(luò))
iptables -A FORWARD -s ! 192.168.1.1
(匹配以外的主機(jī))
iptables -A FORWARD -s ! 192.168.1.0/24
(匹配以外的網(wǎng)絡(luò))
匹配接口:
iptables -A INPUT -i eth0
iptables -A FORWARD -o eth0
(匹配某個(gè)指定的接口)
iptables -A FORWARD -o ppp+
(匹配所有類型為ppp的接口)
匹配端口:
iptables -A INPUT -p tcp –sport www
iptables -A INPUT -p tcp –sport 80
(匹配單一指定源端口)
iptables -A INPUT -p ucp –dport 53
(匹配單一指定目的端口)
iptables -A INPUT -p ucp –dport ! 53
(指定端口以外)
iptables -A INPUT -p tcp –dport 22:80
(指定端口范圍,這里我們實(shí)現(xiàn)的是22到80端口)
指定IP碎片的處理:
# iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.1.234 –dport 80 -j ACCEPT
# iptables -A FORWARD -f -p tcp -s 192.168.1.0/24 -d 192.168.1.234 –dport 80 -j ACCEPT
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp.168.1.0/.168.1.tcp dpt:http
ACCEPT tcp -f 192.168.1.0/.168.1.tcp dpt:http
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
設(shè)置擴(kuò)展的規(guī)測(cè)匹配:
(希望獲得匹配的簡(jiǎn)要說(shuō)明,可使用: iptables -m name_of_match –help)
多端口匹配擴(kuò)展:
iptables -A INPUT -p tcp -m multiport –source-port 22,53,80
(匹配多個(gè)源端口)
iptables -A INPUT -p tcp -m multiport –destination-port 22,53,80
(匹配多個(gè)目的端口)
iptables -A INPUT -p tcp -m multiport –port 22,53,80
(匹配多個(gè)端口,無(wú)論是源還是目的端口)
TCP匹配擴(kuò)展:
iptables -A INPUT -p tcp –tcp-flags SYN,FIN,ACK SYN
(表示SYN、ACK、FIN的標(biāo)志都要被檢查,但是只有設(shè)置了SYN的才匹配)
iptables -A INPUT -p tcp –tcp-flags ALL SYN,ACK
(表示ALL:SYN、ACK、FIN、RST、URG、PSH的標(biāo)志都被檢查,但是只有設(shè)置了SYN和ACK的才匹配)
iptables -p tcp –syn
(選項(xiàng)–syn是以上的一種特殊情況,相當(dāng)于“–tcp-flags SYN,RST,ACK SYN”的簡(jiǎn)寫(xiě))
limit速率匹配擴(kuò)展:
# iptables -A FORWARD -m limit –limit 300/hour
(表示限制每小時(shí)允許通過(guò)300個(gè)數(shù)據(jù)包)
# iptables -A INPUT -m limit –limit-burst 10
(–limit-burst指定觸發(fā)時(shí)間的值(默認(rèn)為5),用來(lái)比對(duì)瞬間大量數(shù)據(jù)包的數(shù)量。)
(上面的例子用來(lái)比對(duì)一次同時(shí)涌入的數(shù)據(jù)包是否超過(guò)十個(gè),超過(guò)此上限的包將直接被丟棄)
# iptables -A FORWARD -p icmp -m limit –limit 3/m –limit-burst 3
(假設(shè)均勻通過(guò),平均每分鐘3個(gè),那么觸發(fā)值burst保持為3。如果每分鐘通過(guò)的包的數(shù)目小于3,那么觸發(fā)值busrt將在每個(gè)周期(若每分鐘允許通過(guò)3個(gè),則周期數(shù)為20秒)后加1,但更大值為3。每分鐘要通過(guò)的包數(shù)量如果超過(guò)3,那么觸發(fā)值busrt將減掉超出的數(shù)值,例如第二分鐘有4個(gè)包,那么觸發(fā)值變?yōu)?,同時(shí)4個(gè)包都可以通過(guò),第三分鐘有6個(gè)包,則只能通過(guò)5個(gè),觸發(fā)值busrt變?yōu)?。之后,每分鐘如果包數(shù)量小于等于3個(gè),則觸發(fā)值busrt將加1,如果每分鐘包數(shù)大于3,觸發(fā)值busrt將逐漸減少,最終維持為0)
(即每分鐘允許的更大包數(shù)量等于限制速率(本例中為3)加上當(dāng)前的觸發(fā)值busrt數(shù)。任何情況下,都可以保證3個(gè)包通過(guò),觸發(fā)值busrt相當(dāng)于是允許額外的包數(shù)量)
基于狀態(tài)的匹配擴(kuò)展(連接跟蹤):
每個(gè)網(wǎng)絡(luò)連接包括以下信息:源和目的地址、源和目的端口號(hào),稱為套接字對(duì)(cocket pairs);協(xié)議類型、連接狀態(tài)(TCP協(xié)議)和超時(shí)時(shí)間等。防火墻把這些叫做狀態(tài)(stateful)。能夠監(jiān)測(cè)每個(gè)連接狀態(tài)的防火墻叫做狀態(tài)寶過(guò)濾防火墻,除了能完成普通包過(guò)濾防火墻的功能外,還在自己的內(nèi)存中維護(hù)一個(gè)跟蹤連接狀態(tài)的表,所以擁有更大的安全性。
其命令格式如下:
iptables -m state –state state
state表示一個(gè)用逗號(hào)隔開(kāi)的的列表,用來(lái)指定的連接狀態(tài)可以有以下4種:
NEW:該包想要開(kāi)始一個(gè)連接(重新連接或?qū)⑦B接重定向)。
RELATED:該包屬于某個(gè)已經(jīng)建立的連接所建立的新連接。例如FTP的數(shù)據(jù)傳輸連接和控制連接之間就是RELATED關(guān)系。
ESTABLISHED:該包屬于某個(gè)已經(jīng)建立的連接。
INVALID:該包不匹配于任何連接,通常這些包會(huì)被DROP。
例如:
# iptables -A INPUT -m state –state RELATED,ESTABLISHED
(匹配已經(jīng)建立的連接或由已經(jīng)建立的連接所建立的新連接。即匹配所有的TCP回應(yīng)包)
# iptables -A INPUT -m state –state NEW -i ! eth0
(匹配所有從非eth0接口來(lái)的連接請(qǐng)求包)
下面是一個(gè)被動(dòng)(Passive)FTP連接模式的典型連接跟蹤
# iptables -A INPUT -p tcp –sport 1024: –dport 1024: -m state –state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -p tcp –sport 1024: –dport 1024: -m state –state ESTABLISHED,RELATED -j ACCEPT
下面是一個(gè)主動(dòng)(Active)FTP連接模式的典型連接跟蹤
# iptables -A INPUT -p tcp –sport 20 -m state –state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p tcp –dport 20 -m state –state ESTABLISHED -j ACCEPT
—
日志記錄:
格式為: -j LOG –log-level 7 –log-prefix “……”
# iptables -A FORWARD -m tcp -p tcp -j LOG
# iptables -A FORWARD -m icmp -p icmp -f -j LOG
# iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.10.0/24 -p tcp –sport 80 -j LOG
# iptables -A INPUT -m limit –limit 3/minute –limit-burst 3 -j LOG –log-prefix “INPUT packet died:”
# iptables -A INPUT -p tcp ! –syn -m state –state NEW -j LOG –log-prefix “New net syn:”
——
回答你的問(wèn)題:
1:設(shè)置為DROP默認(rèn)不允許,然后你再開(kāi)啟,這樣比門(mén)戶大開(kāi)再阻止某些服務(wù)來(lái)的安全(避免遺漏)
2:前面阻止了后面就無(wú)效了,有先后順序的.
64G內(nèi)存在linux/etc/sysctl.conf里怎樣設(shè)置內(nèi)核參數(shù)的相關(guān)推薦
完成對(duì)oracle-validated的安裝后操作系統(tǒng)軟件包環(huán)境也就水道渠成了,此外該oracle-validated包還會(huì)幫助我們?cè)O(shè)置必要的衡猛Linux內(nèi)核參數(shù),具體來(lái)說(shuō)它會(huì)修改/etc/sysctl.conf配置文件中的參數(shù)咐鍵橋到Oracle推薦的值,以下亮核為完成oracle-validated安裝后的sysctl.conf,供參考:
# Kernel sysctl configuration file for Oracle Enterprise Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
# Controls the default maxmimum size of a mesage queue
# Controls the maximum shared segment size, in bytes
# Controls the maximum number of shared memory segments, in pages
# For 11g, Oracle-Validated setting for fs.file-max is
# For 10g, uncomment ‘fs.file-max =’, and comment ‘fs.file-max =’ entry and re-run sysctl -p
# fs.file-max =
fs.file-max =
# Oracle-Validated setting for kernel.msgmni is 2878
kernel.msgmni = 2878
# Oracle-Validated setting for kernel.msgmax is 8192
kernel.msgmax = 8192
# Oracle-Validated setting for kernel.msgmnb is 65536
kernel.msgmnb = 65536
# Oracle-Validated setting for kernel.sem is ‘142’
kernel.sem = 142
# Oracle-Validated setting for kernel.shmmni is 4096
kernel.shmmni = 4096
# Oracle-Validated setting for kernel.shmall is
kernel.shmall =
# Oracle-Validated setting for kernel.shmmax is on x86_64 andon i386 architecture. Refer Note id.1
kernel.shmmax =
# Oracle-Validated setting for kernel.sysrq is 1
kernel.sysrq = 1
# Oracle-Validated setting for net.core.rmem_default is
net.core.rmem_default =
# For 11g, Oracle-Validated setting for net.core.rmem_max is
# For 10g, uncomment ‘net.core.rmem_max =’, comment ‘net.core.rmem_max =’ entry and re-run sysctl -p
# net.core.rmem_max =
net.core.rmem_max =
# Oracle-Validated setting for net.core.wmem_default is
net.core.wmem_default =
# For 11g, Oracle-Validated setting for net.core.wmem_max is
# For 10g, uncomment ‘net.core.wmem_max =’, comment ‘net.core.wmem_max =’ entry for this parameter and re-run sysctl -p
# net.core.wmem_max =
net.core.wmem_max =
# Oracle-Validated setting for fs.aio-max-nr is
fs.aio-max-nr =
# For 11g, Oracle-Validated setting for net.ipv4.ip_local_port_range is
# For 10g, uncomment ‘net.ipv4.ip_local_port_range =’, comment ‘net.ipv4.ip_local_port_range =’ entry and re-run sysctl -p
# net.ipv4.ip_local_port_range =
net.ipv4.ip_local_port_range =
# Oracle-Validated setting for vm.min_free_kbytes isto avoid OOM killer
vm.min_free_kbytes = 51200
在linux下,python怎么才能抓到網(wǎng)卡上的所有TCP數(shù)據(jù)包
Ethereal 自帶許多協(xié)議的 decoder,簡(jiǎn)單,易用,基于winpcap的一個(gè)開(kāi)源的軟件.但是它的架構(gòu)并不靈活,如何你要加入一個(gè)自己定義的的解碼器,得去修改 Ethereal的代碼,再重新編譯,很煩瑣.對(duì)于一般的明文 協(xié)議,沒(méi)有什么問(wèn)題,但是對(duì)于加密協(xié)議,比如網(wǎng)絡(luò)游戲,客戶端程序一般會(huì)在剛連接上的時(shí)候,發(fā)送一個(gè)隨機(jī)密鑰,而后的報(bào)文都會(huì)用這個(gè)密鑰進(jìn)行雹塌加密,如此. 要想破解,得要有一個(gè)可編程的抓包器.
libpcap是一個(gè)不錯(cuò)的選擇,但是對(duì)于抓包這樣需要反復(fù)進(jìn)行”試 驗(yàn)->修改”這個(gè)過(guò)程的操作,c 語(yǔ)言顯然不是明智的選擇.
Python提源指圓供了幾個(gè)libpcapbind。在windows平臺(tái)上,你需要先安裝winpcap,如果你已經(jīng)安裝了Ethereal非常好用
一個(gè)規(guī)范的抓包過(guò)程
import pcap
import dpkt
pc=pcap.pcap() #注,參數(shù)可為網(wǎng)卡名,如eth0
pc.setfilter(‘tcp port 80’) #設(shè)置監(jiān)聽(tīng)過(guò)濾器
for ptime,pdata in pc: #ptime為收到時(shí)間,pdata為收到數(shù)據(jù)
print ptime,pdata #…
對(duì)抓到的以太網(wǎng)V2數(shù)據(jù)包(raw packet)進(jìn)行解包逗襲
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__==’IP’:
ip=’%d.%d.%d.%d’%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__==’TCP’:
if data.dport==80:
print p.data.data.data # by gashero
一些顯示參數(shù)
nrecv,ndrop,nifdrop=pc.stats()
返回的元組中,之一個(gè)參數(shù)為接收到的數(shù)據(jù)包,(by gashero)第二個(gè)參數(shù)為被核心丟棄的數(shù)據(jù)包。
linux packet filter的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux packet filter,Linux包過(guò)濾器: 網(wǎng)絡(luò)安全必備,急!!!利用 iptables 實(shí)現(xiàn) linux 防火墻功能有關(guān)問(wèn)題的3條命令的解釋.,64G內(nèi)存在linux/etc/sysctl.conf里怎樣設(shè)置內(nèi)核參數(shù)的相關(guān)推薦,在linux下,python怎么才能抓到網(wǎng)卡上的所有TCP數(shù)據(jù)包的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站標(biāo)題:Linux包過(guò)濾器:網(wǎng)絡(luò)安全必備(linuxpacketfilter)
文章URL:http://fisionsoft.com.cn/article/cooeopj.html


咨詢
建站咨詢
