Denial of Service

Denial of Service 或者可以稱為 “阻絕服務攻擊”。
這個名稱您也經常聽見,在很多地方都發生。
其實 Denial of Service 所傳送的請求和正常的是一樣,只是每分鐘傳送數以十計以上請求傳送至伺服器中。
令伺服器每秒處理十分大量的工作。
受到這一種攻擊,輕則只有伺服器暫時停止服務。重則張會把伺服器中的硬件破壞。
有不少例子都是由於伺服器在同一時間處理十分大量的工作後,CPU 最後壞了。

最近我的其中一個網站受到這些不明來歷的 Denial of Service 攻擊,令伺服器停了。
不過搜尋了不少網站,終於找到了一個方法。不過不知道是否可行的。
我所使用的是 mod_dosevasive。雖然是第一次用,不過是否真的能夠防止就必須等到下一次受到攻擊使知道。

mod_dosevasive 的使用方法:

  1. 首次下載 mod_dosevasive 1.1 版本
  2. 然後解壓 mod_dosevasive_1.10.tar.gz
    tar zxvf mod_dosevasive_1.10.tar.gz
  3. 把您的 httpd.conf 備份
  4. 開始安裝 mod_dosevasive

    Apache 1.3.x:

    cd mod_dosevasive
    apxs -cia mod_dosevasive.c

    Apache 2.0.x:

    cd mod_dosevasive
    apxs -cia mod_dosevasive20.c
  5. 修改您的 httpd.conf 加入

    Apache 1.3.x:

    <IfModule mod_dosevasive.c>
    DOSHashTableSize 3097
    DOSPageCount 5
    DOSSiteCount 100
    DOSPageInterval 2
    DOSSiteInterval 2
    DOSBlockingPeriod 600
    </IfModule>

    Apache 2.0.x:

    <IfModule mod_dosevasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 5
    DOSSiteCount 100
    DOSPageInterval 2
    DOSSiteInterval 2
    DOSBlockingPeriod 10
    DOSBlockingPeriod 600
    </IfModule>

這樣使完成。httpd.conf 當中的設定方面解釋:

  • DOSHashTableSize
    這是佔中您記憶體的大少。當數目越大處理越快,當您的伺服器是很多人流的,您必須加大這個數字。
  • DOSPageCount
    同一頁同一人時能夠在同一個時區中請求幾多次,多於會禁止。時區可以在 DOSPageInterval 中設定。
  • DOSSiteCount
    同一個網站同一人在伺服器中所佔有幾多個 Object,多於會禁止。時區可以在 DOSSiteInterval 中設定。
  • DOSPageInterval
    DOSPageCount 中所計算的每一個時區時間,以無秒計算。預設是 1 秒。
  • >

  • DOSSiteInterval
    DOSSiteCount 中所計算的每一個時區時間,以無秒計算。預設是 1 秒。
  • DOSBlockingPeriod
    當發現後暫停多久?預設是 10 秒。當發現後,他會接收到 403 (Forbidden) 的。
  • DOSEmailNotify
    設定接收攻擊信息的電郵地址。
    DOSEmailNotify      you@yourdomain.com
  • DOSSystemCommand
    這是收到攻擊信息時所使用的指令。
    DOSSystemCommand    ”su - someuser -c \’/sbin/… %s …\’”
  • DOSLogDir
    記錄檔案設定。
    DOSLogDir           ”/var/lock/mod_dosevasive”

希望這文件能夠幫助到受到 Denial of Service 的人仕。

One Comment

  1. Sera Yang
    Posted November 3, 2005 at 6:23 pm | Permalink

    DOSSystemCommand
    請問您的這個參數有成功執行過嗎?
    我試過su 與 sudo, 都沒有成功執行過
    我的版本是apache 1.3.33 + mod_evasive_1.10.1

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*