張雨
(哈爾濱商業(yè)大學(xué)計(jì)算機(jī)與信息工程學(xué)院,哈爾濱150028)
在知識(shí)經(jīng)濟(jì)快速發(fā)展的21世紀(jì),“電子商務(wù)”無(wú)疑是當(dāng)前最大的熱門話題,電子商務(wù)以其高效、簡(jiǎn)捷、成本低、出現(xiàn)在經(jīng)濟(jì)生活的各個(gè)領(lǐng)域.它的實(shí)用價(jià)值、網(wǎng)絡(luò)的無(wú)國(guó)界滲透,向全球貿(mào)易、經(jīng)濟(jì)、科技、政治、法律等各界提出無(wú)法回避的挑戰(zhàn).電子商務(wù)作為計(jì)算機(jī)應(yīng)用技術(shù)與現(xiàn)代經(jīng)濟(jì)貿(mào)易活動(dòng)結(jié)合的產(chǎn)物,已經(jīng)成為人類跨入知識(shí)經(jīng)濟(jì)新紀(jì)元的重要標(biāo)志之一.然而電子商務(wù)的安全卻是一個(gè)日益凸顯且非常嚴(yán)重的問(wèn)題,嚴(yán)重影響和制約著其發(fā)展[1].
防火墻是指設(shè)置在不同網(wǎng)絡(luò)(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡(luò)安全域之間的一系列部件的組合,是不同網(wǎng)絡(luò)或網(wǎng)絡(luò)安全域之間信息的唯一出入口,能根據(jù)企業(yè)的安全政策控制(允許、拒絕、監(jiān)測(cè))出入網(wǎng)絡(luò)的信息流,且本身具有較強(qiáng)的抗攻擊能力[2].防火墻是提供信息安全服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)和信息安全的基礎(chǔ)設(shè)施.
在邏輯上,防火墻是一個(gè)分離器,一個(gè)限制器,也是一個(gè)分析器,有效地監(jiān)控了內(nèi)部網(wǎng)和Internet之間的任何活動(dòng),保證了內(nèi)部網(wǎng)絡(luò)的安全,如圖1所示.

圖1 防火墻邏輯位置示意圖
防火墻有以下3種類型:
1)數(shù)據(jù)包過(guò)濾型防火墻
數(shù)據(jù)包過(guò)濾技術(shù)是在網(wǎng)絡(luò)層對(duì)數(shù)據(jù)包進(jìn)行選擇,選擇的依據(jù)是系統(tǒng)內(nèi)設(shè)置的過(guò)濾邏輯,被稱為訪問(wèn)控制表[3].通過(guò)檢查數(shù)據(jù)流中每個(gè)數(shù)據(jù)包的源地址、目的地址、所用的端口號(hào)、協(xié)議狀態(tài)等因素,或它們的組合來(lái)確定是否允許該數(shù)據(jù)包通過(guò).數(shù)據(jù)包過(guò)濾防火墻邏輯簡(jiǎn)單,價(jià)格便宜,易于安裝和使用,網(wǎng)絡(luò)性能和透明性好,通常安裝在路由器上.路由器是內(nèi)部網(wǎng)絡(luò)與Internet連接必不可少的設(shè)備,因此,在原有網(wǎng)絡(luò)上增加這樣的防火墻幾乎不需要任何額外的費(fèi)用.
2)應(yīng)用級(jí)網(wǎng)關(guān)型防火墻
應(yīng)用級(jí)網(wǎng)關(guān)是在網(wǎng)絡(luò)應(yīng)用層上建立協(xié)議過(guò)濾和轉(zhuǎn)發(fā)功能.它針對(duì)特定的網(wǎng)絡(luò)應(yīng)用服務(wù)協(xié)議使用指定的數(shù)據(jù)過(guò)濾邏輯,并在過(guò)濾的同時(shí),對(duì)數(shù)據(jù)包進(jìn)行必要的分析、登記和統(tǒng)計(jì),形成報(bào)告.應(yīng)用級(jí)網(wǎng)關(guān)型防火墻的工作流程如圖2所示.

圖2 應(yīng)用級(jí)網(wǎng)關(guān)型防火墻的工作流程
數(shù)據(jù)包過(guò)濾和應(yīng)用網(wǎng)關(guān)防火墻有一個(gè)共同的特點(diǎn),就是僅僅依靠特定的邏輯判定是否允許數(shù)據(jù)包通過(guò)[4].一旦滿足邏輯,則防火墻內(nèi)外的計(jì)算機(jī)系統(tǒng)建立直接聯(lián)系,防火墻外部的用戶便有可能直接了解防火墻內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)和運(yùn)行狀態(tài),有利于實(shí)施非法訪問(wèn)和攻擊.
3)代理服務(wù)型防火墻
代理服務(wù)也稱鏈路級(jí)網(wǎng)關(guān)或TCP通道,也有人將它歸于應(yīng)用級(jí)網(wǎng)關(guān)一類[5].代理服務(wù)是針對(duì)數(shù)據(jù)包過(guò)濾和應(yīng)用網(wǎng)關(guān)技術(shù)存在的缺點(diǎn)而引入的防火墻技術(shù),其特點(diǎn)是將所有跨越防火墻的網(wǎng)絡(luò)通信鏈路分為兩段.防火墻內(nèi)外計(jì)算機(jī)系統(tǒng)間應(yīng)用層的“鏈接”,由兩個(gè)終止代理服務(wù)器上的“鏈接”來(lái)實(shí)現(xiàn),外部計(jì)算機(jī)的網(wǎng)絡(luò)鏈路只能到達(dá)代理服務(wù)器,從而起到了隔離防火墻內(nèi)外計(jì)算機(jī)系統(tǒng)的作用.此外,代理服務(wù)也對(duì)過(guò)往的數(shù)據(jù)包進(jìn)行分析、注冊(cè)登記,形成報(bào)告,同時(shí)當(dāng)發(fā)現(xiàn)被攻擊跡象時(shí)會(huì)向網(wǎng)絡(luò)管理員發(fā)出警報(bào),并保留攻擊痕跡.使用代理服務(wù)型防火墻的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.

圖3 代理服務(wù)型防火墻的網(wǎng)絡(luò)結(jié)構(gòu)
包過(guò)濾技術(shù)是在網(wǎng)絡(luò)層中對(duì)數(shù)據(jù)包實(shí)施有選擇的通過(guò)[6].根據(jù)系統(tǒng)內(nèi)事先設(shè)定的過(guò)濾邏輯,檢查數(shù)據(jù)流中每個(gè)數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包的源地址、目的地址、TCP/UDP源端口號(hào)、TCP/UDP目的端口號(hào)及數(shù)據(jù)包頭中的各種標(biāo)志位等因素來(lái)確定是否允許數(shù)據(jù)包通過(guò),其核心是安全策略即過(guò)濾算法的設(shè)計(jì)[7].
包過(guò)濾技術(shù)作為防火墻的應(yīng)用有3類:一是路由設(shè)備在完成路由選擇和數(shù)據(jù)轉(zhuǎn)發(fā)之外,同時(shí)進(jìn)行包過(guò)濾,這是目前較常用的方式;二是在工作站上使用軟件進(jìn)行包過(guò)濾,這種方式價(jià)格較貴;三是在一種稱為屏蔽路由器的路由設(shè)備上啟動(dòng)包過(guò)濾功能.
在Linux系統(tǒng)下,包過(guò)濾功能是內(nèi)建于核心的,同時(shí)還有一些可以運(yùn)用于數(shù)據(jù)包之上的技巧,不過(guò)最常用的依然是查看包頭以決定是否允許通過(guò).包過(guò)濾是一種內(nèi)置于Linux內(nèi)核路由功能之上的防火墻類型,其防火墻工作在網(wǎng)絡(luò)層.
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ò).如圖4所示,用于過(guò)濾數(shù)據(jù)包的路由器被稱為過(guò)濾路由器.

圖4 用過(guò)濾路由器過(guò)濾數(shù)據(jù)包
2)過(guò)濾器的實(shí)現(xiàn).數(shù)據(jù)包過(guò)濾一般使用過(guò)濾路由器來(lái)實(shí)現(xiàn),這種路由器與普通的路由器有所不同.普通的路由器只檢查數(shù)據(jù)包的目的地址,并選擇一個(gè)達(dá)到目的地址的最佳路徑.它處理數(shù)據(jù)包是以目的地址為基礎(chǔ)的,存在著兩種可能性:若路由器可以找到一條路徑到達(dá)目的地址則發(fā)送出去;若路由器不知道如何發(fā)送數(shù)據(jù)包則發(fā)送一個(gè)“數(shù)據(jù)不可達(dá)”的數(shù)據(jù)包給發(fā)送者.過(guò)濾路由器會(huì)進(jìn)一步檢查數(shù)據(jù)包,除了決定是否有到達(dá)目的地址的路徑外,還要決定是否應(yīng)該發(fā)送數(shù)據(jù)包,“應(yīng)該與否”是由路由器的過(guò)濾策略決定并強(qiáng)行執(zhí)行的.
包過(guò)濾器的操作流程如圖5所示.

圖5 包過(guò)濾操作流程圖
在Linux系統(tǒng)下,包過(guò)濾功能是內(nèi)建于核心的,同時(shí)還有一些可以運(yùn)用于數(shù)據(jù)包之上的技巧.本文在Linux系統(tǒng)環(huán)境下為圖6所示的網(wǎng)絡(luò)結(jié)構(gòu)建立一個(gè)包過(guò)濾防火墻.這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)假設(shè)內(nèi)部網(wǎng)有有效的Internet地址.為了將內(nèi)部網(wǎng)段192.168.80.0/24與Internet隔離,在內(nèi)部網(wǎng)絡(luò)和Internet之間使用了包過(guò)濾防火墻.防火墻的內(nèi)網(wǎng)接口是eth1 (198.168.80.254),防火墻的Internet接口是eth0 (198.199.37.254).另外,內(nèi)網(wǎng)中有3臺(tái)服務(wù)器對(duì)外提供服務(wù),WWW服務(wù)器:IP地址為198.168.80.251;FTP服務(wù)器:IP地址為198.168.80.252;E _mail服務(wù)器:IP地址為198.168.80.253.

圖6 包過(guò)濾防火墻結(jié)構(gòu)圖
下面采用編輯并執(zhí)行可執(zhí)行腳本的方法建立此防火墻.具體過(guò)程如下.
1)在/etc/rc.d/目錄下用touch命令建立空的腳本文件,執(zhí)行chmod命令添加可執(zhí)行權(quán)限.
#touch/etc/rc.d/filter-firewall
#chmod u+x/etc/rc.d/filter-firewall
2)編輯/etc/rc.d/rc.local文件,在末尾加上/ etc/rc.d/filter-firewall以確保開(kāi)機(jī)時(shí)能自動(dòng)執(zhí)行該腳本.
#echo“/etc/rc.d/filter-firewall”>>/etc/rc.d/rc.local
3)使用文本編輯器編輯/etc/rc.d/filter-firewall文件,插入如下內(nèi)容:
#!/bin/bash
#在屏幕上顯示信息
echo“Starting iptables rules…”
#開(kāi)啟內(nèi)核轉(zhuǎn)發(fā)功能
echo“1”>/proc/sys/net/ipv4/ip_forward
#定義變量
IPT=/sbin/iptables
WWW-SERVER=198.168.80.251
FTP-SERVER=198.168.80.252
EMAIL-SERVER=198.168.80.253
IP_RANGE=“198.168.80.0/24”
#刷新所有的鏈的規(guī)則
$IPT–F
#首先禁止轉(zhuǎn)發(fā)任何包,然后再一步步設(shè)置允許通過(guò)的包,所以首先設(shè)置防火墻FORWARD鏈的策略為DROP
$IPT–P FORWARD DROP
#下面設(shè)置關(guān)于服務(wù)器的包過(guò)濾規(guī)則.由于服務(wù)器/客戶機(jī)交互是雙向的,所以不僅僅要設(shè)置數(shù)據(jù)包出去的規(guī)則,還要設(shè)置數(shù)據(jù)包返回的規(guī)則
#1)下面建立針對(duì)來(lái)自Internet數(shù)據(jù)包的過(guò)濾規(guī)則
#①WWW服務(wù)
#服務(wù)端口為80,采用tcp或utp協(xié)議
#規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)WWW服務(wù)器的包
$IPT–A FORWORD–p tcp–d$WWWSERVER–dport www–i eth0–j ACCEPT
#②FTP服務(wù)
#服務(wù)端口為:命令端口21,數(shù)據(jù)端口20.FTP服務(wù)采用tcp協(xié)議.規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)FTP服務(wù)器的包
$IPT–A FORWORD–p tcp–d$FTPSERVER–dport ftp–i eth0–j ACCEPT
#③EMAIL服務(wù)
#包含兩個(gè)協(xié)議,一個(gè)是smtp,另一個(gè)是pop3.出于安全性考慮,通常只提供對(duì)內(nèi)的pop3服務(wù).所以在這里我們只考慮針對(duì)smtp的安全性問(wèn)題
#smtp端口25,采用tcp協(xié)議
#規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)E_mail服務(wù)器的smtp請(qǐng)求
$IPT– A FORWORD– p tcp– d$EMAIL-SERVER–dport smtp–i eth0–j ACCEPT
#2)下面設(shè)置針對(duì)Intranet客戶的過(guò)濾規(guī)則
#本例中防火墻位于網(wǎng)關(guān)的位置,所以主要是防止來(lái)自Internet的攻擊.不能防止來(lái)自Intranet的攻擊
#假如網(wǎng)絡(luò)中的服務(wù)器都是基于Linux的,也可以在每一部服務(wù)器上設(shè)置.相關(guān)的過(guò)濾規(guī)則來(lái)防止來(lái)自Intranet的攻擊.對(duì)于Internet對(duì)Intranet客戶的返回包,定義如下規(guī)則
#①允許Intranet客戶采用被動(dòng)模式訪問(wèn)Internet的FTP服務(wù)器
$IPT–A FORWORD–p tcp–s 0/0– sport ftp-data–d$IP_RANGE–i eth0–j ACCEPT
#②接受來(lái)自Internet的非連接請(qǐng)求tcp包
$IPT–A FORWORD–p tcp–d 198.168.80.0/24!–syn–i eth0–j ACCEPT
#③接受所有udp包,主要是針對(duì)oicq等使用udp的服務(wù)
$IPT–A FORWORD–p utp–d 198.168.80.0/24–i eth0–j ACCEPT
#3)然后接受來(lái)自整個(gè)Intranet的數(shù)據(jù)包過(guò)濾,定義如下規(guī)則
$IPT–A FORWORD–s 198.168.80.0/24–i eth0–j ACCEPT
#處理IP碎片.#接受所有的IP碎片,但采用limit匹配擴(kuò)展對(duì)其單位時(shí)間可以通過(guò)的.IP碎片數(shù)量進(jìn)行限制,以防止IP碎片攻擊
$IPT–A FORWORD–f–m limit—limit 100/s——limit–burst 100–j ACCEPT
#說(shuō)明:對(duì)不管來(lái)自哪里的IP碎片都進(jìn)行限制,允許每秒通過(guò)100個(gè)IP碎片.該限制觸發(fā)的條件是100個(gè)IP碎片
#設(shè)置icmp包過(guò)濾.icmp包通常用于網(wǎng)絡(luò)測(cè)試等,故允許所有的icmp包通過(guò).但是黑客常常采用icmp進(jìn)行攻擊,如ping of death等.所以我們采用limit匹配擴(kuò)展加以限制
$IPT–A FORWORD–p icmp–m limit——limit 1/s——limit–burst 100–j ACCEPT
#說(shuō)明:對(duì)不管來(lái)自哪里的icmp包都進(jìn)行限制,允許每秒通過(guò)一個(gè)包.該限制觸發(fā)的條件是10個(gè)包
4)執(zhí)行腳本,使之立刻生效
#/etc/rc.d/filter-firewall
至此,包過(guò)濾防火墻設(shè)置完畢.通過(guò)執(zhí)行上面的腳本,建立了一個(gè)相對(duì)完整的防火墻.該防火墻只對(duì)外開(kāi)放了有限的幾個(gè)端口,同時(shí)提供了客戶對(duì)Internet的無(wú)縫訪問(wèn),并且對(duì)IP碎片攻擊和icmp的ping of death提供了有效的防護(hù)手段.
防火墻技術(shù)是目前用來(lái)實(shí)現(xiàn)電子商務(wù)安全措施的一種主要手段,它主要是用來(lái)拒絕未經(jīng)授權(quán)的用戶訪問(wèn),阻止未經(jīng)授權(quán)的用戶存取敏感數(shù)據(jù),同時(shí)允許合法用戶不受妨礙地訪問(wèn)網(wǎng)絡(luò)資源,如果使用得當(dāng),可以在很大程度上提高網(wǎng)絡(luò)安全性能.但是沒(méi)有一種技術(shù)可以百分之百解決網(wǎng)絡(luò)上的信息安全問(wèn)題,基于Linux的包過(guò)濾防火墻同樣存在安全隱患.因此網(wǎng)絡(luò)安全單靠防火墻技術(shù)是不夠的,還需要有一些其他技術(shù)和非技術(shù)的因素要考慮,它是由一系列工作組成,需要從電子商務(wù)安全管理、安全技術(shù)體系和法律等多方面開(kāi)展工作和研究.
[1] 曹漢平,馮啟明,吳春蕾.Linux防火墻技術(shù)研究[J].武漢理工大學(xué)學(xué)報(bào),2001,2:120-122.
[2] 張鳳斌,王勝文.基于包過(guò)濾技術(shù)的防火墻設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),1998,6:14-17.
[3] 王家業(yè),荊繼武,朱森存.包過(guò)濾防火墻的安全研究[J].計(jì)算機(jī)科學(xué),1999(26):34-36.
[4] 吳文剛,王慶生.基于Linux包過(guò)濾防火墻技術(shù)發(fā)展研究[J].太原理工大學(xué)學(xué)報(bào),2003,5:132-134.
[5] 韓珂.基于linux下的包過(guò)濾防火墻ipchains與iptables的分析研究[J].中原工學(xué)院學(xué)報(bào),2010,6:59-63.
[6] 陳一飛.Linux防火墻中的包過(guò)濾技術(shù)[J].安徽建筑工業(yè)學(xué)院學(xué)報(bào),2005,6:87-90.
[7] 李 嵐,齊楚煥,劉新禹,等.電子商務(wù)系統(tǒng)中移動(dòng)Agent動(dòng)態(tài)路由策略的研究[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2011,27(1):89-91.