基于Linux系統(tǒng)的包過(guò)濾防火墻
1.1 包過(guò)濾防火墻的一般概念
1.1.1 什么是包過(guò)濾防火墻
包過(guò)濾防火墻是用一個(gè)軟件查看所流經(jīng)的數(shù)據(jù)包的包頭(header),由此決定整個(gè)包的命運(yùn)。它可能會(huì)決定丟棄(DROP)這個(gè)包,可能會(huì)接受(ACCEPT)這個(gè)包(讓這個(gè)包通過(guò)),也可能執(zhí)行其它更復(fù)雜的動(dòng)作。
在Linux系統(tǒng)下,包過(guò)濾功能是內(nèi)建于核心的(作為一個(gè)核心模塊,或者直接內(nèi)建),同時(shí)還有一些可以運(yùn)用于數(shù)據(jù)包之上的技巧,不過(guò)最常用的依然是查看包頭以決定包的命運(yùn)。
1.1.2 包過(guò)濾防火墻的工作層次
包過(guò)濾是一種內(nèi)置于Linux內(nèi)核路由功能之上的防火墻類型,其防火墻工作在網(wǎng)絡(luò)層。
1.1.3 包過(guò)濾防火墻的工作原理
(1)使用過(guò)濾器。數(shù)據(jù)包過(guò)濾用在內(nèi)部主機(jī)和外部主機(jī)之間,過(guò)濾系統(tǒng)是一臺(tái)路由器或是一臺(tái)主機(jī)。過(guò)濾系統(tǒng)根據(jù)過(guò)濾規(guī)則來(lái)決定是否讓數(shù)據(jù)包通過(guò)。用于過(guò)濾數(shù)據(jù)包的路由器被稱為過(guò)濾路由器。
數(shù)據(jù)包過(guò)濾是通過(guò)對(duì)數(shù)據(jù)包的IP頭和TCP頭或UDP頭的檢查來(lái)實(shí)現(xiàn)的,主要信息有:
* IP源地址
* IP目標(biāo)地址
* 協(xié)議(TCP包、UDP包和ICMP包)
* TCP或UDP包的源端口
* TCP或UDP包的目標(biāo)端口
* ICMP消息類型
* TCP包頭中的ACK位
* 數(shù)據(jù)包到達(dá)的端口
* 數(shù)據(jù)包出去的端口
在TCP/IP中,存在著一些標(biāo)準(zhǔn)的服務(wù)端口號(hào),例如,HTTP的端口號(hào)為80。通過(guò)屏蔽特定的端口可以禁止特定的服務(wù)。包過(guò)濾系統(tǒng)可以阻塞內(nèi)部主機(jī)和外部主機(jī)或另外一個(gè)網(wǎng)絡(luò)之間的連接,例如,可以阻塞一些被視為是有敵意的或不可信的主機(jī)或網(wǎng)絡(luò)連接到內(nèi)部網(wǎng)絡(luò)中。
(2)過(guò)濾器的實(shí)現(xiàn)。數(shù)據(jù)包過(guò)濾一般使用過(guò)濾路由器來(lái)實(shí)現(xiàn),這種路由器與普通的路由器有所不同。
普通的路由器只檢查數(shù)據(jù)包的目標(biāo)地址,并選擇一個(gè)達(dá)到目的地址的最佳路徑。它處理數(shù)據(jù)包是以目標(biāo)地址為基礎(chǔ)的,存在著兩種可能性:若路由器可以找到一個(gè)路徑到達(dá)目標(biāo)地址則發(fā)送出去;若路由器不知道如何發(fā)送數(shù)據(jù)包則通知數(shù)據(jù)包的發(fā)送者“數(shù)據(jù)包不可達(dá)”。
過(guò)濾路由器會(huì)更加仔細(xì)地檢查數(shù)據(jù)包,除了決定是否有到達(dá)目標(biāo)地址的路徑外,還要決定是否應(yīng)該發(fā)送數(shù)據(jù)包。“應(yīng)該與否”是由路由器的過(guò)濾策略決定并強(qiáng)行執(zhí)行的。
路由器的過(guò)濾策略主要有:
* 拒絕來(lái)自某主機(jī)或某網(wǎng)段的所有連接。
* 允許來(lái)自某主機(jī)或某網(wǎng)段的所有連接。
* 拒絕來(lái)自某主機(jī)或某網(wǎng)段的指定端口的連接。
* 允許來(lái)自某主機(jī)或某網(wǎng)段的指定端口的連接。
* 拒絕本地主機(jī)或本地網(wǎng)絡(luò)與其它主機(jī)或其它網(wǎng)絡(luò)的所有連接。
* 允許本地主機(jī)或本地網(wǎng)絡(luò)與其它主機(jī)或其它網(wǎng)絡(luò)的所有連接。
* 拒絕本地主機(jī)或本地網(wǎng)絡(luò)與其它主機(jī)或其它網(wǎng)絡(luò)的指定端口的連接。
* 允許本地主機(jī)或本地網(wǎng)絡(luò)與其它主機(jī)或其它網(wǎng)絡(luò)的指定端口的連接。
1.1.4 包過(guò)濾器操作的基本過(guò)程
下面做個(gè)簡(jiǎn)單的敘述:
(1)包過(guò)濾規(guī)則必須被包過(guò)濾設(shè)備端口存儲(chǔ)起來(lái)。
(2)當(dāng)包到達(dá)端口時(shí),對(duì)包報(bào)頭進(jìn)行語(yǔ)法分析。大多數(shù)包過(guò)濾設(shè)備只檢查IP、TCP、或UDP報(bào)頭中的字段。
(3)包過(guò)濾規(guī)則以特殊的方式存儲(chǔ)。應(yīng)用于包的規(guī)則的順序與包過(guò)濾器規(guī)則存儲(chǔ)順序必須相同。
(4)若一條規(guī)則阻止包傳輸或接收,則此包便不被允許。
(5)若一條規(guī)則允許包傳輸或接收,則此包便可以被繼續(xù)處理。
(6)若包不滿足任何一條規(guī)則,則此包便被阻塞。
1.1.5 包過(guò)濾技術(shù)的優(yōu)缺點(diǎn)
(1)優(yōu)點(diǎn):
→對(duì)于一個(gè)小型的、不太復(fù)雜的站點(diǎn),包過(guò)濾比較容易實(shí)現(xiàn)。
→因?yàn)檫^(guò)濾路由器工作在IP層和TCP層,所以處理包的速度比代理服務(wù)器快。
→過(guò)濾路由器為用戶提供了一種透明的服務(wù),用戶不需要改變客戶端的任何應(yīng)用程序,也不需要用戶學(xué)習(xí)任何新的東西。因?yàn)檫^(guò)濾路由器工作在IP層和TCP層,而IP層和TCP層與應(yīng)用層的問(wèn)題毫不相關(guān)。所以,過(guò)濾路由器有時(shí)也被稱為“包過(guò)濾網(wǎng)關(guān)”或“透明網(wǎng)關(guān)”,之所被稱為網(wǎng)關(guān),是因?yàn)榘^(guò)濾路由器和傳統(tǒng)路由器不同,它涉及到了傳輸層。
→過(guò)濾路由器在價(jià)格上一般比代理服務(wù)器便宜。
(2)缺點(diǎn):
→一些包過(guò)濾網(wǎng)關(guān)不支持有效的用戶認(rèn)證。
→規(guī)則表很快會(huì)變得很大而且復(fù)雜,規(guī)則很難測(cè)試。隨著表的增大和復(fù)雜性的增加,規(guī)則結(jié)構(gòu)出現(xiàn)漏洞的可能性也會(huì)增加。
→這種防火墻最大的缺陷是它依賴一個(gè)單一的部件來(lái)保護(hù)系統(tǒng)。如果這個(gè)部件出現(xiàn)了問(wèn)題,會(huì)使得網(wǎng)絡(luò)大門敞開,而用戶其至可能還不知道。
→在一般情況下,如果外部用戶被允許訪問(wèn)內(nèi)部主機(jī),則它就可以訪問(wèn)內(nèi)部網(wǎng)上的任何主機(jī)。
<
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解