張雨
(哈爾濱商業(yè)大學計算機與信息工程學院,哈爾濱150028)
在知識經(jīng)濟快速發(fā)展的21世紀,“電子商務”無疑是當前最大的熱門話題,電子商務以其高效、簡捷、成本低、出現(xiàn)在經(jīng)濟生活的各個領(lǐng)域.它的實用價值、網(wǎng)絡的無國界滲透,向全球貿(mào)易、經(jīng)濟、科技、政治、法律等各界提出無法回避的挑戰(zhàn).電子商務作為計算機應用技術(shù)與現(xiàn)代經(jīng)濟貿(mào)易活動結(jié)合的產(chǎn)物,已經(jīng)成為人類跨入知識經(jīng)濟新紀元的重要標志之一.然而電子商務的安全卻是一個日益凸顯且非常嚴重的問題,嚴重影響和制約著其發(fā)展[1].
防火墻是指設置在不同網(wǎng)絡(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡安全域之間的一系列部件的組合,是不同網(wǎng)絡或網(wǎng)絡安全域之間信息的唯一出入口,能根據(jù)企業(yè)的安全政策控制(允許、拒絕、監(jiān)測)出入網(wǎng)絡的信息流,且本身具有較強的抗攻擊能力[2].防火墻是提供信息安全服務,實現(xiàn)網(wǎng)絡和信息安全的基礎設施.
在邏輯上,防火墻是一個分離器,一個限制器,也是一個分析器,有效地監(jiān)控了內(nèi)部網(wǎng)和Internet之間的任何活動,保證了內(nèi)部網(wǎng)絡的安全,如圖1所示.
圖1 防火墻邏輯位置示意圖
防火墻有以下3種類型:
1)數(shù)據(jù)包過濾型防火墻
數(shù)據(jù)包過濾技術(shù)是在網(wǎng)絡層對數(shù)據(jù)包進行選擇,選擇的依據(jù)是系統(tǒng)內(nèi)設置的過濾邏輯,被稱為訪問控制表[3].通過檢查數(shù)據(jù)流中每個數(shù)據(jù)包的源地址、目的地址、所用的端口號、協(xié)議狀態(tài)等因素,或它們的組合來確定是否允許該數(shù)據(jù)包通過.數(shù)據(jù)包過濾防火墻邏輯簡單,價格便宜,易于安裝和使用,網(wǎng)絡性能和透明性好,通常安裝在路由器上.路由器是內(nèi)部網(wǎng)絡與Internet連接必不可少的設備,因此,在原有網(wǎng)絡上增加這樣的防火墻幾乎不需要任何額外的費用.
2)應用級網(wǎng)關(guān)型防火墻
應用級網(wǎng)關(guān)是在網(wǎng)絡應用層上建立協(xié)議過濾和轉(zhuǎn)發(fā)功能.它針對特定的網(wǎng)絡應用服務協(xié)議使用指定的數(shù)據(jù)過濾邏輯,并在過濾的同時,對數(shù)據(jù)包進行必要的分析、登記和統(tǒng)計,形成報告.應用級網(wǎng)關(guān)型防火墻的工作流程如圖2所示.
圖2 應用級網(wǎng)關(guān)型防火墻的工作流程
數(shù)據(jù)包過濾和應用網(wǎng)關(guān)防火墻有一個共同的特點,就是僅僅依靠特定的邏輯判定是否允許數(shù)據(jù)包通過[4].一旦滿足邏輯,則防火墻內(nèi)外的計算機系統(tǒng)建立直接聯(lián)系,防火墻外部的用戶便有可能直接了解防火墻內(nèi)部的網(wǎng)絡結(jié)構(gòu)和運行狀態(tài),有利于實施非法訪問和攻擊.
3)代理服務型防火墻
代理服務也稱鏈路級網(wǎng)關(guān)或TCP通道,也有人將它歸于應用級網(wǎng)關(guān)一類[5].代理服務是針對數(shù)據(jù)包過濾和應用網(wǎng)關(guān)技術(shù)存在的缺點而引入的防火墻技術(shù),其特點是將所有跨越防火墻的網(wǎng)絡通信鏈路分為兩段.防火墻內(nèi)外計算機系統(tǒng)間應用層的“鏈接”,由兩個終止代理服務器上的“鏈接”來實現(xiàn),外部計算機的網(wǎng)絡鏈路只能到達代理服務器,從而起到了隔離防火墻內(nèi)外計算機系統(tǒng)的作用.此外,代理服務也對過往的數(shù)據(jù)包進行分析、注冊登記,形成報告,同時當發(fā)現(xiàn)被攻擊跡象時會向網(wǎng)絡管理員發(fā)出警報,并保留攻擊痕跡.使用代理服務型防火墻的網(wǎng)絡結(jié)構(gòu)如圖3所示.
圖3 代理服務型防火墻的網(wǎng)絡結(jié)構(gòu)
包過濾技術(shù)是在網(wǎng)絡層中對數(shù)據(jù)包實施有選擇的通過[6].根據(jù)系統(tǒng)內(nèi)事先設定的過濾邏輯,檢查數(shù)據(jù)流中每個數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包的源地址、目的地址、TCP/UDP源端口號、TCP/UDP目的端口號及數(shù)據(jù)包頭中的各種標志位等因素來確定是否允許數(shù)據(jù)包通過,其核心是安全策略即過濾算法的設計[7].
包過濾技術(shù)作為防火墻的應用有3類:一是路由設備在完成路由選擇和數(shù)據(jù)轉(zhuǎn)發(fā)之外,同時進行包過濾,這是目前較常用的方式;二是在工作站上使用軟件進行包過濾,這種方式價格較貴;三是在一種稱為屏蔽路由器的路由設備上啟動包過濾功能.
在Linux系統(tǒng)下,包過濾功能是內(nèi)建于核心的,同時還有一些可以運用于數(shù)據(jù)包之上的技巧,不過最常用的依然是查看包頭以決定是否允許通過.包過濾是一種內(nèi)置于Linux內(nèi)核路由功能之上的防火墻類型,其防火墻工作在網(wǎng)絡層.
1)使用過濾器.數(shù)據(jù)包過濾用在內(nèi)部主機和外部主機之間,過濾系統(tǒng)是一臺路由器或是一臺主機.過濾系統(tǒng)根據(jù)過濾規(guī)則來決定是否讓數(shù)據(jù)包通過.如圖4所示,用于過濾數(shù)據(jù)包的路由器被稱為過濾路由器.
圖4 用過濾路由器過濾數(shù)據(jù)包
2)過濾器的實現(xiàn).數(shù)據(jù)包過濾一般使用過濾路由器來實現(xiàn),這種路由器與普通的路由器有所不同.普通的路由器只檢查數(shù)據(jù)包的目的地址,并選擇一個達到目的地址的最佳路徑.它處理數(shù)據(jù)包是以目的地址為基礎的,存在著兩種可能性:若路由器可以找到一條路徑到達目的地址則發(fā)送出去;若路由器不知道如何發(fā)送數(shù)據(jù)包則發(fā)送一個“數(shù)據(jù)不可達”的數(shù)據(jù)包給發(fā)送者.過濾路由器會進一步檢查數(shù)據(jù)包,除了決定是否有到達目的地址的路徑外,還要決定是否應該發(fā)送數(shù)據(jù)包,“應該與否”是由路由器的過濾策略決定并強行執(zhí)行的.
包過濾器的操作流程如圖5所示.
圖5 包過濾操作流程圖
在Linux系統(tǒng)下,包過濾功能是內(nèi)建于核心的,同時還有一些可以運用于數(shù)據(jù)包之上的技巧.本文在Linux系統(tǒng)環(huán)境下為圖6所示的網(wǎng)絡結(jié)構(gòu)建立一個包過濾防火墻.這個網(wǎng)絡結(jié)構(gòu)假設內(nèi)部網(wǎng)有有效的Internet地址.為了將內(nèi)部網(wǎng)段192.168.80.0/24與Internet隔離,在內(nèi)部網(wǎng)絡和Internet之間使用了包過濾防火墻.防火墻的內(nèi)網(wǎng)接口是eth1 (198.168.80.254),防火墻的Internet接口是eth0 (198.199.37.254).另外,內(nèi)網(wǎng)中有3臺服務器對外提供服務,WWW服務器:IP地址為198.168.80.251;FTP服務器:IP地址為198.168.80.252;E _mail服務器:IP地址為198.168.80.253.
圖6 包過濾防火墻結(jié)構(gòu)圖
下面采用編輯并執(zhí)行可執(zhí)行腳本的方法建立此防火墻.具體過程如下.
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以確保開機時能自動執(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…”
#開啟內(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ā)任何包,然后再一步步設置允許通過的包,所以首先設置防火墻FORWARD鏈的策略為DROP
$IPT–P FORWARD DROP
#下面設置關(guān)于服務器的包過濾規(guī)則.由于服務器/客戶機交互是雙向的,所以不僅僅要設置數(shù)據(jù)包出去的規(guī)則,還要設置數(shù)據(jù)包返回的規(guī)則
#1)下面建立針對來自Internet數(shù)據(jù)包的過濾規(guī)則
#①WWW服務
#服務端口為80,采用tcp或utp協(xié)議
#規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)WWW服務器的包
$IPT–A FORWORD–p tcp–d$WWWSERVER–dport www–i eth0–j ACCEPT
#②FTP服務
#服務端口為:命令端口21,數(shù)據(jù)端口20.FTP服務采用tcp協(xié)議.規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)FTP服務器的包
$IPT–A FORWORD–p tcp–d$FTPSERVER–dport ftp–i eth0–j ACCEPT
#③EMAIL服務
#包含兩個協(xié)議,一個是smtp,另一個是pop3.出于安全性考慮,通常只提供對內(nèi)的pop3服務.所以在這里我們只考慮針對smtp的安全性問題
#smtp端口25,采用tcp協(xié)議
#規(guī)則為:eth0=>允許目的為內(nèi)部網(wǎng)E_mail服務器的smtp請求
$IPT– A FORWORD– p tcp– d$EMAIL-SERVER–dport smtp–i eth0–j ACCEPT
#2)下面設置針對Intranet客戶的過濾規(guī)則
#本例中防火墻位于網(wǎng)關(guān)的位置,所以主要是防止來自Internet的攻擊.不能防止來自Intranet的攻擊
#假如網(wǎng)絡中的服務器都是基于Linux的,也可以在每一部服務器上設置.相關(guān)的過濾規(guī)則來防止來自Intranet的攻擊.對于Internet對Intranet客戶的返回包,定義如下規(guī)則
#①允許Intranet客戶采用被動模式訪問Internet的FTP服務器
$IPT–A FORWORD–p tcp–s 0/0– sport ftp-data–d$IP_RANGE–i eth0–j ACCEPT
#②接受來自Internet的非連接請求tcp包
$IPT–A FORWORD–p tcp–d 198.168.80.0/24!–syn–i eth0–j ACCEPT
#③接受所有udp包,主要是針對oicq等使用udp的服務
$IPT–A FORWORD–p utp–d 198.168.80.0/24–i eth0–j ACCEPT
#3)然后接受來自整個Intranet的數(shù)據(jù)包過濾,定義如下規(guī)則
$IPT–A FORWORD–s 198.168.80.0/24–i eth0–j ACCEPT
#處理IP碎片.#接受所有的IP碎片,但采用limit匹配擴展對其單位時間可以通過的.IP碎片數(shù)量進行限制,以防止IP碎片攻擊
$IPT–A FORWORD–f–m limit—limit 100/s——limit–burst 100–j ACCEPT
#說明:對不管來自哪里的IP碎片都進行限制,允許每秒通過100個IP碎片.該限制觸發(fā)的條件是100個IP碎片
#設置icmp包過濾.icmp包通常用于網(wǎng)絡測試等,故允許所有的icmp包通過.但是黑客常常采用icmp進行攻擊,如ping of death等.所以我們采用limit匹配擴展加以限制
$IPT–A FORWORD–p icmp–m limit——limit 1/s——limit–burst 100–j ACCEPT
#說明:對不管來自哪里的icmp包都進行限制,允許每秒通過一個包.該限制觸發(fā)的條件是10個包
4)執(zhí)行腳本,使之立刻生效
#/etc/rc.d/filter-firewall
至此,包過濾防火墻設置完畢.通過執(zhí)行上面的腳本,建立了一個相對完整的防火墻.該防火墻只對外開放了有限的幾個端口,同時提供了客戶對Internet的無縫訪問,并且對IP碎片攻擊和icmp的ping of death提供了有效的防護手段.
防火墻技術(shù)是目前用來實現(xiàn)電子商務安全措施的一種主要手段,它主要是用來拒絕未經(jīng)授權(quán)的用戶訪問,阻止未經(jīng)授權(quán)的用戶存取敏感數(shù)據(jù),同時允許合法用戶不受妨礙地訪問網(wǎng)絡資源,如果使用得當,可以在很大程度上提高網(wǎng)絡安全性能.但是沒有一種技術(shù)可以百分之百解決網(wǎng)絡上的信息安全問題,基于Linux的包過濾防火墻同樣存在安全隱患.因此網(wǎng)絡安全單靠防火墻技術(shù)是不夠的,還需要有一些其他技術(shù)和非技術(shù)的因素要考慮,它是由一系列工作組成,需要從電子商務安全管理、安全技術(shù)體系和法律等多方面開展工作和研究.
[1] 曹漢平,馮啟明,吳春蕾.Linux防火墻技術(shù)研究[J].武漢理工大學學報,2001,2:120-122.
[2] 張鳳斌,王勝文.基于包過濾技術(shù)的防火墻設計[J].哈爾濱理工大學學報,1998,6:14-17.
[3] 王家業(yè),荊繼武,朱森存.包過濾防火墻的安全研究[J].計算機科學,1999(26):34-36.
[4] 吳文剛,王慶生.基于Linux包過濾防火墻技術(shù)發(fā)展研究[J].太原理工大學學報,2003,5:132-134.
[5] 韓珂.基于linux下的包過濾防火墻ipchains與iptables的分析研究[J].中原工學院學報,2010,6:59-63.
[6] 陳一飛.Linux防火墻中的包過濾技術(shù)[J].安徽建筑工業(yè)學院學報,2005,6:87-90.
[7] 李 嵐,齊楚煥,劉新禹,等.電子商務系統(tǒng)中移動Agent動態(tài)路由策略的研究[J].哈爾濱商業(yè)大學學報:自然科學版,2011,27(1):89-91.