新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Linux的IPv6復合防火墻的設計

        基于Linux的IPv6復合防火墻的設計

        作者: 時間:2011-06-12 來源:網絡 收藏

        Squid是下一個高性能的代理緩存服務器,支持FTP、gopher和HTTP協議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。可從www.squid-cache.org獲取該軟件的源代碼安裝包squid-2.5.STABLE.tar.gz,解壓縮包:

        #tarxvfzsquid-2.5.STABLE2.tar.gz
        然后,進入相應目錄對源代碼進行配置和編譯:
        #cdsquid-2.5.STABLE2
        #./configure--prefix=/var/squid
        --sysconfdir=/etc
        --enable-arp-acl
        --enable-linux-netfilter
        --enable-pthreads
        --enable-err-language=Simplify_Chinese
        --enable-storeio=ufs,null
        --enable-default-err-language=Simplify_Chinese

        最后執行#make;makeinstall將源代碼編譯為可執行文件完成安裝。為了使squid支持,從devel.squid-cache.org/projects.html#squid3-ipv6下載squid3-ipv6.patch補丁并安裝。接下來在/etc/squid.conf中對squid的運行進行配置。

        下面是一個在配置文件中有關部分的簡單例子:
        #的訪問控制列表
        aclallsrc::/0
        aclsitelocalsrcfec0:/16
        aclipv4::ffff:0:0/96
        #對列表所做的處理
        http_accessdenyipv4
        http_accessallowsitelocal
        http_accessdenyall

        IPv6

        把分組過濾系統ip6tables和應用代理squid結合使用,由分組過濾控制通信的底層,代理服務器用于過濾應用層的服務,這樣就能從網絡層到應用層進行全方位的安全處理。比如若要對http協議進行控制,則用ip6tables把對Web端口80的請求轉發到squid端口,由squid對這個應用層協議進行控制,而用戶瀏覽器仍然認為它訪問的是對方的80端口。如下面這條命令:

        #ip6tables-tnat-APREROUTING-ieth0-s3ffe:ffff:200:: 1/128-ptcp--dport80-jREDIRECT--to-ports3128(eth0為主機輸入接口,3128是squid監聽HTTP客戶連接請求的缺省端口)。系統的工作流程如圖4所示。當一個數據包進入后,首先由ip6tables的nat表中PREROUTING鏈的規則來判斷這個數據包的高層協議(如HTTP、FTP等)是否應受控制,若應受控制,則將其定向到squid端口,由squid代理進程進行處理,如上命令所示。之后,進行路由判斷,若是防火墻本地包,則要由INPUT鏈處理,若是外地包,則要由FORWARD鏈來處理,最后經過POSTROUTING鏈的snat處理把數據包轉發出防火墻,形成透明代理。如下命令所示:


        圖4 IPv6型防火墻系統的工作流程

        ip6tables-APOSTROUTING-tnat-sIPv6(s1)-oeth1-jSNAT--to-sourceIPv6(s)。其中IPv6(s1)指數據包的源IPv6地址,eth1為防火墻主機輸出接口,IPv6(s)指防火墻主機的出口地址。

        若數據包來自防火墻主機本身,經過PREROUTING鏈規則處理,判斷是否應進行squid代理,若是,則進行squid處理,之后經過OUTPUT鏈規則處理,再判斷路由,最后由POSTROUTING鏈的snat處理把數據包轉發出防火墻。

        結論

        由squid限定內外網絡之間的服務連接,使它們都通過squid的介入和轉換,再由防火墻本身提交請求和應答,這樣就使內外網絡的計算機不會直接進行會話,結合ip6tables的包過濾控制底層通信,從而能建立起一種從網絡層到應用層堅固的IPv6防火墻系統。ip6tables和squid都可以免費獲得,因此無論從安全性還是從經濟性來說,這都是一種非常好的IPv6防火墻解決方案。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 康保县| 三明市| 原阳县| 福泉市| 望城县| 湘潭县| 合阳县| 霸州市| 隆回县| 海南省| 蒙自县| 仪征市| 竹山县| 永丰县| 唐河县| 越西县| 江门市| 长葛市| 六安市| 农安县| 丰城市| 翼城县| 阿勒泰市| 长武县| 郓城县| 依安县| 伊宁市| 兴文县| 长汀县| 清涧县| 濉溪县| 新宾| 淄博市| 高陵县| 东乌| 井陉县| 齐齐哈尔市| 永平县| 奎屯市| 咸阳市| 资中县|