• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • iptable 使用實例

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    、iptables使用實例 首先讓我們看一下服務器/客戶機的交互原理。服務器提供某特定功能的服務總是由特定的后臺程序提供的。在TCP/IP網絡中,常常把這個特定的服務綁定到特定的TCP或UDP端口。之后,該后臺程序就不斷地監聽(listen)該端口,一旦接收到符合條件

    、 iptables使用實例

    首先讓我們看一下服務器/客戶機的交互原理。服務器提供某特定功能的服務總是由特定的后臺程序提供的。在TCP/IP網絡中,常常把這個特定的服務綁定到特定的TCP或UDP端口。之后,該后臺程序就不斷地監聽(listen)該端口,一旦接收到符合條件的客戶端請求,該服務進行TCP握手后就同客戶端建立一個連接,響應客戶請求。與此同時,再產生一個該綁定的拷貝,繼續監聽客戶端的請求。

    舉一個具體的例子:假設網絡中有一臺服務器A(IP地址為1.1.1.1)提供WWW服務,另有客戶機B(2.2.2.2)、C(3.3.3.3)。首先,服務器A運行提供WWW服務的后臺程序(比如Apache)并且把該服務綁定到端口80,也就是說,在端口80進行監聽。當B發起一個連接請求時,B將打開一個大于1024的連接端口(1024內為已定義端口),假設為1037。A在接收到請求后,用80端口與B建立連接以響應B的請求,同時產生一個80端口綁定的拷貝,繼續監聽客戶端的請求。假如A又接收到C的連接請求(設連接請求端口為1071),則A在與C建立連接的同時又產生一個80端口綁定的拷貝繼續監聽客戶端的請求。如下所示,因為系統是以源地址、源端口、目的地址、目的端口來標識一個連接的,所以在這里每個連接都是唯一的。

    服務器 客戶端
    連接1:a.b.c.1:80 <=> a.b.c.4:1037
    連接2:a.b.c.1:80 <=> a.b.c.7:1071

    每一種特定的服務都有自己特定的端口,一般說來小于1024的端口多為保留端口,或者說是已定義端口,低端口分配給眾所周知的服務(如WWW、FTP等等),從512到1024的端口通常保留給特殊的UNIX TCP/IP應用程序,具體情況請參考/etc/services文件或RFC1700。

    假設網絡環境如下:某一單位,租用DDN專線上網,網絡拓撲如下:

    +--------------+
    | 內部網段 | eth1+--------+eth0 DDN
    | +------------|firewall|<===============>Internet
    | 198.168.80.0 | +--------+
    +--------------+
    eth0: 198.199.37.254
    eth1: 198.168.80.254

    以上的IP地址都是Internet上真實的IP,故沒有用到IP欺騙。并且,我們假設在內部網中存在以下服務器:
    www服務器:www.yourdomain.com 198.168.80.11
    ftp服務器:ftp.yourdomain.com 198.168.80.12
    email服務器:mail.yourdomain.com 198.168.80.13

    下面我們將用iptables一步一步地來建立我們的包過濾防火墻,需要說明的是,在這個例子中,我們主要是對內部的各種服務器提供保護。

    1. 在/etc/rc.d/目錄下用touch命令建立firewall文件,執行chmod u+x firewll以更改文件屬性 ,編輯/etc/rc.d/rc.local文件,在末尾加上 /etc/rc.d/firewall 以確保開機時能自動執行該腳本。

    2. 刷新所有的鏈的規則
    #!/bin/sh

    echo "Starting iptables rules..."

    #Refresh all chains

    /sbin/iptables -F

    3. 我們將首先禁止轉發任何包,然后再一步步設置允許通過的包。
    所以首先設置防火墻FORWARD鏈的策略為DROP:

    /sbin/iptables -P FORWARD DROP

    4.設置關于服務器的包過慮規則:

    在這里需要注意的是,服務器/客戶機交互是有來有往的,也就是說是雙向的,所以我們不僅僅要設置數據包出去的規則,還要設置數據包返回的規則,我們先建立針對來自Internet數據包的過慮規則。

    WWW服務:服務端口為80,采用tcp或udp協議。規則為:eth0=>允許目的為內部網WWW服務器的包。

    ###########################Define HTTP packets####################################

    #Allow www request packets from Internet clients to www servers
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j ACCEPT

    FTP服務:FTP服務有點特別,因為需要兩個端口,因為FTP有命令通道和數據通道。其中命令端口為21,數據端口為20,并且有主動和消極兩種服務模式,其消極模式連接過程為:FTP客戶端首先向FTP服務器發起連接請求,三步握手后建立命令通道,然后由FTP服務器請求建立數據通道,成功后開始傳輸數據,現在大多數FTP客戶端均支持消極模式,因為這種模式可以提高安全性。FTP服務采用tcp協議。規則為:eth0=>僅允許目的為內部網ftp服務器的包。

    ############################Define FTP packets#####################################

    #Allow ftp request packets from Internet clients to Intranet ftp server
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT


    EMAIL服務:包含兩個協議,一是smtp,一是pop3。出于安全性考慮,通常只提供對內的pop3服務,所以在這里我們只考慮針對smtp的安全性問題。smtp端口為21,采用tcp協議。eth0=>僅允許目的為email服務器的smtp請求。

    ###########################Define smtp packets####################################
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT

    5. 設置針對Intranet客戶的過慮規則:

    在本例中我們的防火墻位于網關的位置,所以我們主要是防止來自Internet的攻擊,不能防止來自Intranet的攻擊。假如我們的服務器都是基于linux的,也可以在每一部服務器上設置相關的過慮規則來防止來自Intranet的攻擊。對于Internet對Intranet客戶的返回包,我們定義如下規則。

    #############Define packets from Internet server to Intranet#######################
    /sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
    /sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT

    說明:第一條允許Intranet客戶采用消極模式訪問Internet的FTP服務器;第二條接收來自Internet的非連接請求tcp包;最后一條接收所有udp包,主要是針對oicq等使用udp的服務。

    6. 接受來自整個Intranet的數據包過慮,我們定義如下規則:

    #############Define packets from Internet server to Intranet server###############
    /sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT

    7. 處理ip碎片

    我們接受所有的ip碎片,但采用limit匹配擴展對其單位時間可以通過的ip碎片數量進行限制,以防止ip碎片攻擊。

    #################################Define fregment rule##################################
    /sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

    說明:對不管來自哪里的ip碎片都進行限制,允許每秒通過100個ip碎片,該限制觸發的條件是100個ip碎片。

    8. 設置icmp包過濾

    icmp包通常用于網絡測試等,故允許所有的icmp包通過。但是黑客常常采用icmp進行攻擊,如ping of death等,所以我們采用limit匹配擴展加以限制:

    #################################Define icmp rule##################################
    /sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

    說明:對不管來自哪里的icmp包都進行限制,允許每秒通過一個包,該限制觸發的條件是10個包。


    通過以上個步驟,我們建立了一個相對完整的防火墻。只對外開放了有限的幾個端口,同時提供了客戶對Internet的無縫訪問,并且對ip碎片攻擊和icmp的ping of death提供了有效的防護手段。以下是完整的腳本文件內容,希望通過這個實例能是對iptables的用法有所了解:

    #!/bin/sh

    echo "Starting iptables rules..."

    #Refresh all chains

    /sbin/iptables -F

    ###########################Define HTTP packets####################################

    #Allow www request packets from Internet clients to www servers
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j ACCEPT

    ############################Define FTP packets#####################################

    #Allow ftp request packets from Internet clients to Intranet ftp server
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT

    ###########################Define smtp packets####################################
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT

    #############Define packets from Internet server to Intranet#######################
    /sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
    /sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
    /sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT

    #############Define packets from Intranet to Internet###############
    /sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT

    #################################Define fregment rule##################################
    /sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

    #################################Define icmp rule##################################
    /sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

     flyjon 回復于:2003-07-18 23:26:52
    班主的精華好像是以前一篇著名的ipchains的翻版 shock:    

     wuzy 回復于:2003-07-21 15:40:30
    已閱

     青山綠水 回復于:2003-07-21 19:08:38
    還不錯 。

     197511 回復于:2003-07-22 11:58:13
    它能代替防火墻嗎????

     livelybear 回復于:2003-08-07 11:38:20
    正需要,收下。

     coolbzk 回復于:2003-08-21 15:43:08
    很好,頂

     tiansgx 回復于:2003-08-23 14:33:45
    up

     shaotao27 回復于:2003-09-15 21:41:43
    讓你的企業、產品、網站一夜成名 
    是否為您的企業、產品、網站推廣事宜而發愁?

      其實只要您選擇方法得當,利用郵件推廣達到的效果是傳統媒體無法比擬的,而花費只是傳統推廣的幾萬分之一!郵件營銷使您將商業廣告迅速發送到數千萬客戶電子郵箱中,實乃影響您一生的成功捷徑,而成本只需300元。并且簡單易用,無須專業知識。

        詳情請看網址: http://www.nic2000.com/?shao27

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>