1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 基于LINUX操作系統 的防火墻技巧及其具體實現

        時間:2024-10-19 22:30:16 計算機畢業論文 我要投稿
        • 相關推薦

        基于LINUX操作系統 的防火墻技巧及其具體實現

        摘要  本文介紹了LINUX下常用的防火墻規矩配置軟件Ipchains;從實現原理、配置法子 以及功效特性的角度描繪了LINUX防火墻的三種功效;并給出了一個LINUX防火墻實例作為參考。

        要害字    LINUX防火墻  ipchains  包過濾  代理  IP裝作

        1      前言
        防火墻作為網絡安全措施 中的一個首要組成部分,一直受到人們的廣泛關注。LINUX是這幾年一款異軍崛起的操作系統 ,以其公開的源代碼、強大穩固的網絡功效和大宗的免費資源受到業界的廣泛贊美 。LINUX防火墻其實是操作系統 本身所自帶的一個功效模塊。通過安裝特定的防火墻內核,LINUX操作系統 會對接管到的數據包按必然的策略進行處理 。而用戶所要做的,就是應用特定的配置軟件(如ipchains)去定制適宜自己的“數據包處理 策略”。
        2      LINUX防火墻配置軟件—Ipchains
        Ipchains是LINUX 2.1及其以上版本中所帶的一個防火墻規矩管理程序。用戶可以應用
        它來建立 、編輯 、刪除系統 的防火墻規矩。但通常,需要 自己創立一個防火墻規矩腳本 /etc/rc.d/rc.firewall,并使系統 啟動時主動運行這個腳本。
        一個LINUX防火墻系統 的安全機制是通過Input、Output、Forward這三個“防火鏈”來實現的。而用戶正是應用 ipchains在這三個“鏈”上分辨 創立一套“防火規矩 ”,來完成對到來數據包層層限制的目標,其組織結構 如圖1所示。
         
            其中,每個鏈都包孕一組由用戶創立的過濾規矩,數據包依次達到每個鏈,并對比其中的每條規矩,直到找出匹配規矩并履行相應策略(如通過、回絕等),否則履行默認策略。實際中,數據包在達到 Input鏈之前還要進行測試和正常性反省,在到路由表之前還要被確定 是否被裝作,這些,在本圖中都被省略了。
        Ipchains 經常應用的命令行款式如下:
        Ipchains –A chain [–i interface] [–p protocol] [[!] -y]
        [–s source-ip [port]] [-d destination-ip [port]] –j policy [-l]
        對各選項的闡明如下表:
        -A <chain>      添加一規矩到鏈尾。chain可為input、output、forward。
        -i <interface>      指定本規矩實用的網絡接口。通常有eth0、eth1、lo、ppp0等。
        -p <protocol>      指定本規矩實用的IP協議 ,如tcp、udp、icmp等。
        [!] –y      -y表明tcp握手中的連接 懇求標記位SYN; ! –y 表現對該懇求的響應。
        -s src-ip [port]      指明數據包的源IP地址,port表現本規矩實用的端口號。
        -d dst-ip [port]      指明數據包的目標 IP地址及端口號。
        -j policy      指定本規矩對匹配數據包的處理 策略:ACCEPT、DENY或REJECT。
        -l      在系統 日志/var/log/messages中記載 與該規矩匹配的數據包。

        3      LINUX防火墻的幾種常見功效
        由于每一個用戶的請求和所處的環境都不一樣,LINUX防火墻會根據 用戶的設置實現各種不同的功效。但一般說來,以下三種功效是大多數用戶最常用到的。
        3.1 包過濾
        對數據包進行過濾可以說是任何防火墻所具備的最根基的功效,而LINUX防火墻本身從某個角度也可以說是一種“包過濾防火墻”。在LINUX防火墻中,操作系統 內核對到來的每一個數據包進行反省,從它們的包頭中提取出所需要 的信息,如源IP地址、目標 IP地址、源端口號、目標端口號等,再與已建立 的防火規矩逐條進行對比,并履行所匹配規矩的策略,或履行默認策略,這個歷程在圖1中已經形象的表現 出來。
        值得注意的是,在制定 防火墻過濾規矩時通常有兩個根基的策略法子 可供選擇:一個是默認容許一切,即在接管所有數據包的根基上明確 地阻撓那些特別的、不盼望收到的數據包;還有一個策略就是默認阻撓一切,即首先阻撓所有的數據包通過,然后再根據 所盼望供給的服務去一項項容許需要 的數據包通過。一般說來,前者使啟動和運行防火墻變得更加容易,但卻更容易為自己留下安全隱患。
        通過在防火墻外部接口處對進來的數據包進行過濾,可以有效地禁止絕大多數有意或無意地網絡攻擊,同時,對發出的數據包進行限制,可以明確 地指定內部網中哪些主機可以造訪互聯網,哪些主機只能享用哪些服務或登陸哪些站點,從而實現對內部主機的管理?梢哉f,在對一些小型內部局域網進行安全保護和網絡管理時,包過濾確鑿是一種簡略而有效的手法。
        3.2 代理
        LINUX防火墻的代理功效是通過安裝相應的****實現的。它使那些不具備公共IP的內部主機也能造訪互聯網,并且很好地屏蔽了內部網,從而有效保障了內部主機的安全。為了明確地描繪這一首要功效的實現歷程,特假設以下范例情況 ,如圖2所示:
         
            steven為內部網中一臺IP是192.168.0.2的主機,其上安裝有IE5.0涉獵器,并配置為應用防火墻主機192.168.0.1:8080作為代理。firewall就是我們討論的LINUX防火墻,有兩個網絡接口,分辨 是內部接口eth1=192.168.0.1、外部接口eth0=202.117.120.1。在firewall主機上安裝有Web****“squid”,并配置其代理端口為8080。www.263.net為263網站的Web服務器,IP為211.100.31.131,Web服務端口80。
        如果要從steven主機造訪 263的主頁,其具體的通信 歷程如圖中所示:
        (1)IE通過steven的非專用端口1110 (在1024~65535之間隨機產生 )與防火墻的代理
        端口8080建立 連接 ,懇求 “http://www.263.net”頁面。
        (2)squid代理接管到懇求后,先查找域名“www.263.net”,得到地址211.100.31.131(該
        步驟圖中省略),然后通過防火墻端口1050與該地址的80端口建立 一個連接 ,懇求頁面。
        (3)www.263.net服務器接到懇求后將頁面傳給squid代理。
        (4)防火墻代理得到頁面后,把數據復制到(1)中所建立 的連接 上,IE得到數據并
        將“www.263.net”頁面顯示出來。
            通過以上描繪,可以明確地領會 到內部主機、LINUX代理防火墻以及外部服務器之間是如何進行數據傳輸的,那么,在LINUX防火墻內部,那些“防火鏈”又是如何工作的呢?其工作歷程如圖3所示:
         
            steven主機發來的數據包經由內部接口eth1進來后,首先接管INPUT鏈的“反省 ”:系統 內核從包頭中提取出信息,與INPUT鏈中所有實用于eth1接口的過濾規矩逐個對比,直到匹配通過。之后,該數據包被轉發給本地的代理歷程。同樣,代理歷程發送給遠程Web服務器的數據包在從防火墻外部接口發送出去之前,也要經過OUTPUT鏈的“反省 ”,即與OUTPUT鏈中所有實用于eth0接口的規矩一一對比。返回的歷程正好與上述相反,在此就不再贅述
        為了實現以上歷程,我們必須 在防火墻規矩腳本中添加以下規矩:
        ipchains –A input –i eth1 –p tcp –s 192.168.0.2 1110 –d 192.168.0.1 8080 –j ACCEPT
        ipchains –A output –i eth0 –p tcp –s 202.117.120.1 1050 –d 211.100.31.131 80 –j ACCEPT
        ipchains –A input –i eth0 –p tcp !-y –s 211.100.31.131 80 –d 202.117.120.1 1050 –j ACCEPT
        ipchains –A output –i eth1 –p tcp ! –y –s 192.168.0.1 8080 –d 192.168.0.2 1110 –j ACCEPT
            從上文對代理功效的原理和實現的敘述中,我們可以看出,LINUX防火墻實際上扮演了一個“代理網關”的角色。內部主機和遠程服務器分辨 都只與防火墻進行連接 ,而真正的“起點”和“終點”之間卻毫無接洽。
        3.3 IP裝作
        IP裝作(IP Masquerade)是LINUX操作系統 自帶的又一個首要功效。通過在系統 內核增長相應的裝作模塊,內核可以主動地對經過的數據包進行“裝作”,即修正包頭中的源目標 IP信息,以使外部主機誤覺得該包是由防火墻主機發出來的。這樣做,可以有效解決應用內部保存 IP的主機不能造訪互聯網的問題,同時屏蔽了內部局域網。這一點,與前面所講的代理所達到 的目標是很類似 的。
        關于IP裝作在LINUX防火墻內部的具體實現歷程,請看圖4。
         
        仍以圖2中所示的范例情況 為例,steven主機的IE歷程直接與遠程的Web服務器建立 一個連接 。當數據包達到防火墻的內部接口后,照樣要例行INPUT鏈的反省。之后,數據包被送到FORWARD鏈,接管系統 內核的“裝作處理 ”,即將包頭中的源IP地址改為防火墻外部接口eth0的地址,并在系統 中做下記載 ,以便一會兒對其回應包的目標 IP進行“恢復”。這樣,當該數據包順利從外部接口出來時,其包頭中源IP已被改為202.117.120.1。遠程服務器會覺得這是從防火墻的合法地址發來的,從而對其做出響應。當遠程服務器返回的回應包達到防火墻時,先經過INPUT鏈,然后會根據 系統 關于IP裝作的記載 對數據包的目標 IP進行恢復,即將202.117.120.1改為192.168.0.2,最后再經過OUTPUT鏈返回到steven主機。
            為了實現這個歷程,我們必須 在防火墻規矩腳本中添加以下規矩:
        ipchains –A input –i eth1 –p tcp –s 192.168.0.2 1110 –d 211.100.31.131 80 –j ACCEPT
        ipchains –A output –i eth0 –p tcp –s 202.117.120.1 1050 –d 211.100.31.131 80 –j ACCEPT
        ipchains –A input –i eth0 –p tcp !-y –s 211.100.31.131 80 –d 202.117.120.1 1050 –j ACCEPT
        ipchains –A output –i eth1 –p tcp ! –y –s 211.100.31.131 80 –d 192.168.0.2 1110 –j ACCEPT
          ipchains –A forward –i eth0 –s 192.168.0.2 1110 –d 211.100.31.131 80 –j MASQ
            與代理功效對比而言,IP裝作不需要 安裝相應的****,數據包的裝作對用戶來說都是“透明”的,并且全部歷程都是在IP層實現,因此實現速度較快。錯誤是不能對經過的數據包作詳細的記載 。
        以上介紹了LINUX防火墻在實際的設置中常用到的三種功效。但一般說來,用戶在創立自己的防火墻規矩腳本時,可以根據 自己的需要 將這三種功效組合起來實現。
        4      一個LINUX防火墻實例
        以下是我前一段光陰為某辦公室搭建的LINUX防火墻的實際配置,給出以供參考。
            有兩個局域網,LAN1地址:202.117.120.65/255.255.255.248
        為公共網絡IP,LAN2地址為192.168.0.0/255.255.255.0,為內部保存地址。LINUX防火墻有兩個內部接口:202.117.120.70接LAN1;192.168.0.1接LAN2。
        現對防火墻進行配置,使LAN2的主機通過IP裝作造訪互聯網,但只容許應用外部Web*****202.117.112.34的1252端口。LAN1中的主機被限制應用幾種常用的互聯網服務(DNS、SMTP、POP3、HTTP和FTP)。
        下面就是創立的防火墻規矩腳本:
        #/etc/rc.d/rc.firewall
        #!/bin/sh
        # eth0---External_interface
        # eth1---LAN1_interface
        # eth2---LAN2_interface
        echo "Starting firewalling . . ."
        #Flush any existing rules from all chains
        ipchains -F
        #Set the default policy to deny
        ipchains -P input DENY
        ipchains -P output REJECT
        ipchains -P forward REJECT
        #Enable traffic on the loopback interface
        ipchains -A input -i lo -j ACCEPT
        ipchains -A output -i lo -j ACCEPT
        #Enable the traffic on the eth1
        ipchains -A input -i eth1 -j ACCEPT
        ipchains -A output -i eth1 -j ACCEPT
        #the traffic on the eth2 only enablling using the WEB PROXY
        ipchains -A input -i eth2 -p tcp -s 192.168.0.0/24 1024:65535 -d 202.117.112.34 1252 -j ACCEPT
        ipchains -A output -i eth2 -p tcp ! -y -s 202.117.112.34 1252 -d 192.168.0.0/24 1024:65535 -j ACCEPT
        #Forwarding rules
        ipchains -A forward -i eth0 -s 202.117.120.64/29  -j ACCEPT
        ipchains -A forward -i eth0 -s 192.168.0.0/24  -j MASQ
        ipchains -A forward -i eth1 -d 202.117.120.64/29 -j ACCEPT
        #Enable outgoing the packets from LAN on the External_Interface
        ipchains -A output -i eth0 -j ACCEPT
        #Enable incoming some ICMP messages on eth
        # 1.Dest_Unreachable,Service_Unavailable
        ipchains -A input -i eth0 -p icmp -s any/0 3 -d 202.117.120.64/29 -j ACCEPT
        # 2.Time_Exceeded
        ipchains -A input -i eth0 -p icmp -s any/0 11 -d 202.117.120.64/29 -j ACCEPT
        # 3.Allow outgoing pings to anywhere
        ipchains -A input -i eth0 -p icmp -s any/0 0 -d 202.117.120.64/29 -j ACCEPT
        #Enable Proxy of 202.117.112.34:1252
        ipchains -A input -i eth0 -p tcp ! -y -s 202.117.112.34 1252 -j ACCEPT
        #DNS (53) (DNS:202.117.112.3)—client modes
        ipchains -A input -i eth0 -p udp -s 202.117.112.3 53 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        ipchains -A input -i eth0 -p tcp ! -y -s 202.117.112.3 53 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        #SMTP(25)Enable sending mail through a remote SMTP gateway
        ipchains -A input -i eth0 -p tcp ! -y -s any/0 25 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        #POP(110)--Enable receiving mail from a remote POP server
        ipchains -A input -i eth0 -p tcp ! -y -s any/0 110 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        #HTTP(80) --Enable accessing remote WEB sites as a client
        ipchains -A input -i eth0 -p tcp ! -y -s any/0 80 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        #FTP(20,21) --Enable accessing remote FTP servers
        ipchains -A input -i eth0 -p tcp ! -y -s any/0 21 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        ipchains -A input -i eth0 -p tcp -s any/0 20 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        ipchains -A input -i eth0 -p tcp ! -y -s any/0 1024:65535 -d 202.117.120.64/29 1024:65535 -j ACCEPT
        echo "done"
        exit 0

        5  收場語
        本文偏重從防火墻內部工作歷程的角度分辨 對LINUX防火墻的包過濾、代理以及IP裝作功效進行了分析,同時涉及到了一些網絡配置、用ipchains具體實現等方面的內容。文末給出的實例已在實際中調試通過。

        參考文獻
        1  Robert L.Ziegler,《Linux防火墻》國民郵電出版社,2000.10
        2  W.Richard Stevens,《TCP/IP詳解 卷一:協議 》機械工業出版社,2000.4.1
        3  Rusty Russell,“Linux IPCHAINS-HOWTO”,netfilter.samba.org,Jul 4,2000
        5      Rawn Shah,“Using your old Pentiums and Linux to create a Firewall”,Independent
        6      technologist and freelance journalist,September,1999

        【基于LINUX操作系統 的防火墻技巧及其具體實現】相關文章:

        基于Linux系統的包過濾防火墻03-08

        基于linux的網絡對講機的研究與實現03-07

        基于Vxworks實時操作系統的串口通信程序設計與實現03-18

        基于嵌入式Linux的終端AVI視頻編碼器的實現03-07

        基于ARM9微處理器與Linux操作系統的SD驅動開發03-07

        組件機制與操作系統的實現03-18

        基于模糊控制的遲早門同步器及其FPGA實現03-20

        基于Windows Media技巧的流媒體系統 的設計與實現03-23

        基于Netfilter的包過濾防火墻設計03-08

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>