欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Freebsd+IPFW結(jié)合使用防小規(guī)模DDOS攻擊的配置方法

  發(fā)布時間:2013-05-25 17:00:08   作者:佚名   我要評論
使用Freebsd+IPFW 防小規(guī)模DDOS攻擊筆者公司共有10臺Web服務(wù)器,使用Redhat Linux 9作為操作系統(tǒng),分布在全國各大城市,主要為用戶提供HTTP服務(wù)。曾經(jīng)有一段時間不少用戶反映有的服務(wù)器訪問速度緩慢,甚至不能訪問,檢查后發(fā)現(xiàn)是受到了DDoS攻擊(分布式拒絕服務(wù)攻擊)

由于服務(wù)器分布太散,不能采用硬件防火墻的方案,雖然IPtables功能很強大,足以應(yīng)付大部分的攻擊,但 Linux系統(tǒng)自身對DDoS攻擊的防御力本來就弱,只好另想辦法了。

  一、Freebsd的魅力

發(fā)現(xiàn)Freebsd的好處是在一次偶然的測試中,在LAN里虛擬了一個Internet,用一臺Windows客戶端分別向一臺Windows Server、Linux Server和一臺Freebsd在無任何防范措施的情況下發(fā)送Syn Flood數(shù)據(jù)包(常見的DDoS攻擊主要靠向服務(wù)器發(fā)送Syn Flood數(shù)據(jù)完成)。Windows在達到10個包的時候就完全停止響應(yīng)了,Linux在達到10個數(shù)據(jù)包的時候開始連接不正常,而Freebsd卻能承受達100個以上的Syn Flood數(shù)據(jù)包。筆者決定將公司所有的Web服務(wù)器全換為Freebsd平臺。

  在使用Freebsd后,的確過了一段時間的安穩(wěn)日子。不過近日又有用戶再次反映網(wǎng)站不能正常訪問,表現(xiàn)癥狀為用戶打開網(wǎng)頁速度緩慢,或者直接顯示為找不到網(wǎng)站。用netstat ?a查看到來自某IP的連接剛好50個,狀態(tài)均為FIN_WAIT 1,這是屬于明顯的DDoS攻擊,看來Freebsd沒有防火墻也不是萬能的啊,于是就想到了裝防火墻。

  看了N多資料,了解到Freebsd下最常見的防火墻叫IP FireWall,中文字面意思叫IP防火墻,簡稱IPFW。但如果要使用IPFW則需要編譯Freebsd系統(tǒng)內(nèi)核。出于安全考慮,在編譯結(jié)束后, IPFW是默認拒絕所有網(wǎng)絡(luò)服務(wù),包括對系統(tǒng)本身都會拒絕,這下我就徹底“寒”了,我放在外地的服務(wù)器可怎么弄啊?

  大家這里一定要小心,配置稍不注意就可能讓你的服務(wù)器拒絕所有的服務(wù)。筆者在一臺裝了Freebsd 5.0 Release的服務(wù)器上進行了測試。

  二、配置IPFW

  其實我們完全可以把安裝IPFW看作一次軟件升級的過程,在Windows里面,如果要升級一款軟件,則需要去下載升級包,然后安裝;在Freebsd中升級軟件過程也是如此,但我們今天升級的這個功能是系統(tǒng)本身已經(jīng)內(nèi)置了的,我們只需要利用這個功能即可。打開這個功能之前,我們還要做一些準備工作。

  下面開始配置IPFW的基本參數(shù)。

  Step1:準備工作

  在命令提示符下進行如下操作:

  #cd /sys/i386/conf

  如果提示沒有這個那說明你的系統(tǒng)沒有安裝ports服務(wù),要記住裝上。

#cp GENERIC ./kernel_IPFW

  Step2:內(nèi)核規(guī)則

  用編輯器打開kernel_IPFW這個文件,在該文件的末尾加入以下四行內(nèi)容:

  options IPFIREWALL

  將包 過濾部分的代碼編譯進內(nèi)核。

  options IPFIREWALL_VERBOSE

  啟用通過Syslogd記錄的日志;如果沒有指定這個選項,即使你在過濾規(guī)則中指定了記錄包,也不會真的記錄它們。

  options IPFIREWALL_VERBOSE_LIMIT=10

  限制通過Syslogd記錄的每項包規(guī)則的記錄條數(shù)。如果你受到了大量的攻擊,想記錄防火墻的活動,但又不想由于Syslog洪水一般的記錄而導(dǎo)致你的日記寫入失敗,那么這個選項將會很有用。有了這條規(guī)則,當(dāng)規(guī)則鏈中的某一項達到限制數(shù)值時,它所對應(yīng)的日志將不再記錄。

  options IPFIREWALL_DEFAULT_TO_ACCEPT

  這句是最關(guān)鍵的。將把默認的規(guī)則動作從 “deny” 改為 “allow”。這句命令的作用是,在默認狀態(tài)下,IPFW會接受任何的數(shù)據(jù),也就是說服務(wù)器看起來像沒有防火墻一樣,如果你需要什么規(guī)則,在安裝完成后直接添加就可以了。

  輸入完成后保存kernel_IPFW文件并退出。

  三、編譯系統(tǒng)內(nèi)核  由于Freebsd和Linux一樣,都是公開源代碼的操作系統(tǒng),不像Windows那樣代碼是封裝了的,出了問題我們只能猜測,或者咨詢微軟公司;由于Freebsd系統(tǒng)內(nèi)核在不斷升級,我們?yōu)榱耸褂眯掳姹局械墓δ?,或者定制一個更高效、更穩(wěn)定的系統(tǒng),通常需要編譯系統(tǒng)內(nèi)核。

  當(dāng)然,我們在這里編譯內(nèi)核,是為了能得到一個更高效的系統(tǒng),而不是使用新版本的功能;

  在編譯的過程中,可能會提示一些錯誤,為了盡可能減少錯誤提示,我們已將配置文件縮減到了最少,如果再出現(xiàn)什么錯誤提示,請仔細檢查是否有輸入錯誤等細小問題。所需的命令

  在命令行上執(zhí)行如下命令:

  #/usr/sbin/config kernel_IPFW

  執(zhí)行結(jié)束后會出現(xiàn)如下提示:Kernel build directory is ../compile/kernel_IPFW Don`t forget to do a make depend`

  #cd ../compile/kernel_IPFW

  在這個地方注意一下,F(xiàn)reebsd 4.X版本是../../compile/kernel_IPFW,但Freebsd 5.0版本卻是../compile/kernel_IPFW。

  #make

  #make installStep2:開始編譯內(nèi)核

  根據(jù)系統(tǒng)性能差異,時間也有不同,普通雙P4 XEON 1GB內(nèi)存的服務(wù)器大約5分鐘左右即可完成。

  四、加載啟動項

  編譯完成了,我們要讓系統(tǒng)自動啟動IPFW并記錄日志,需要進行如下操作:

  Step1:編輯器編輯/etc/rc.conf

  加入如下參數(shù):

  firewall_enable=`YES`

  激活Firewall防火墻

  firewall_script=`/etc/rc.firewall`

  Firewall防火墻的默認腳本

  firewall_type=`/etc/ipfw.conf`

  Firewall自定義腳本

  firewall_quiet=`NO`

  啟用腳本時,是否顯示規(guī)則信息;假如你的防火墻腳本已經(jīng)不會再有修改,那么就可以把這里設(shè)置成“YES”了。

  firewall_logging_enable=`YES`

  啟用Firewall的Log記錄

  Step2:編輯/etc/syslog.conf文件

  在文件最后加入如下內(nèi)容:

  !ipfw

  *.* /var/log/ipfw.log

  這行的作用是將IPFW的日志寫到/var/log/ipfw.log文件里,當(dāng)然,你也可以為日志文件指定其他目錄。

  以上步驟完成后重啟電腦。

  五、使用并保存規(guī)則

  完成后,你就會發(fā)現(xiàn)你能用SSH登錄你的遠程服務(wù)器了。

  Step1:測試

  剛登錄的時候你不會發(fā)現(xiàn)你的系統(tǒng)發(fā)生了什么變化,但你可以試試以下這個命令:#ipfw show,將輸出以下結(jié)果:65535 322 43115 allow ip from any to any。它告訴我們,IPFW已經(jīng)成功啟用,而且允許任何的連接。

  Step2:使用

  在命令提示符下輸入如下命令:#ipfw add 10001 deny all from 218.249.20.135 to any。

  拒絕來自218.249.20.135的任何服務(wù),執(zhí)行完成后,你就會發(fā)現(xiàn)來自IP218.249.20.135的所有服務(wù)都會被拒絕。

  Step3:保存

  把這句代碼加在/etc/rc.firewall文件里:ipfw add 10001 deny all from 218.249.20.135 to any,運行如下這個命令:#sh /etc/rc.firew

  all

  表示保存到rc.firewall里面時,不需要前面的#號,然后重新載入IPFW規(guī)則。

  或者重啟一次你的系統(tǒng),你的IPFW就生效了,只要你不手動解除,來自218.249.20.135的所有信息全部都會被拒絕。

相關(guān)文章

  • Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)

    這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下
    2023-05-03
  • FreeBSD如何添加硬盤?FreeBSD添加硬盤的方法

    一些朋友問小編FreeBSD如何添加硬盤?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • Freebsd PF 安裝使用詳解

    今天小編為大家?guī)淼氖荈reebsd PF 安裝使用詳解,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • FreeBSD下zfs: failed with error 6錯誤如何解決?

    最近一些朋友問小編 FreeBSD下zfs: failed with error 6錯誤如何解決?今天小編要為大家?guī)淼氖?FreeBSD下zfs: failed with error 6錯誤的解決方法,有需要的朋友一起去看
    2017-04-06
  • Unix文件系統(tǒng)和pwd命令實現(xiàn)詳解

    今天小編要為大家?guī)淼氖荱nix文件系統(tǒng)和pwd命令實現(xiàn)詳解,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-01
  • Unix中的dot命令詳解

    今天小編將為大家?guī)淼氖荱nix中的dot命令詳解!希望對大家會有幫助!有需要的朋友一起去看看吧
    2017-03-22
  • freebsd時間設(shè)置小節(jié)詳解

    近日!一些朋友對于freebsd時間設(shè)置小節(jié)存在疑慮!下面小編將為大家?guī)淼氖莊reebsd時間設(shè)置小節(jié)詳解!希望對大家會有幫助!有需要的朋友一起去看看吧
    2017-03-19
  • grub2引導(dǎo)freebsd詳解

    今天小編要為大家?guī)淼氖莋rub2引導(dǎo)freebsd詳解!希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD10安裝內(nèi)核源代碼方法講解

    下面小編為大家?guī)淼氖荈reeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD下如何使GraphicsMagick支持中文字體?

    最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧
    2017-03-15

最新評論