• 軟體損壞資料救援
    誤分割、誤格式化、誤ghost、駭客攻擊、PQ調整失敗等...
  • 硬體損壞資料救援
    電路板芯片燒壞,不認碟、碟體書寫錯誤等...
  • 伺服器資料救援
    磁碟陣列RAID0 、RAID1、RAID1+0、NAS、SAN 、JBO
  • 筆電資料救援
    東芝、日立、邁拓、三星、富士通、昆騰、筆記型等...
  • RAID資料救援
    對RAID0、RAID1、RAID1E、RAID5E、RAID6等救援...
  • 硬碟資料救援
    IDE、SCSI、S-ATA介面的IBM、易拓,昆騰硬碟,移動硬碟...
目前位置: 首頁 > 新聞中心 > 技術專欄

如何用iptables來防止web伺服器被CC攻擊

【賽迪網-IT技術報道】【社區整理】當apache站點受到嚴重的cc攻擊,我們可以用iptables來防止web伺服器被CC攻擊,實現自動屏蔽IP的功能。

1.系統要求

(1)LINUX 內核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它內核版本需要重新編譯內核,比較麻煩,但是也是可以實現的)。

(2)iptables版本:1.3.7

2. 安裝

安裝iptables1.3.7和系統內核版本對應的內核模塊kernel-smp-modules-connlimit

3. 配置相應的iptables規則

示例如下:

(1)控制單個IP的最大並發連接數

iptables -I INPUT -p tcp --dport 80 -m connlimit /--connlimit-above 50 -j REJECT  #允許單個IP的最大連接數為 30

(2)控制單個IP在一定的時間(比如60秒)內允許新建立的連接數

iptables -A INPUT -p tcp --dport 80 -m recent /--name BAD_HTTP_ACCESS --update --seconds 60 /--hitcount 30 -j REJECTiptables -A INPUT -p tcp --dport 80 -m recent /--name BAD_HTTP_ACCESS --set -j ACCEPT#單個IP在60秒內只允許最多新建30個連接

4. 驗證

(1)工具:flood_connect.c(用來模擬攻擊)

(2)查看效果:

使用

watch 'netstat -an | grep:21 | / grep<模擬攻擊客戶機的IP>| wc -l'

實時查看模擬攻擊客戶機建立起來的連接數,

使用

watch 'iptables -L -n -v | /grep<模擬攻擊客戶機的IP>'

查看模擬攻擊客戶機被 DROP 的資料包數。

5.注意

為了增強iptables防止CC攻擊的能力,最好調整一下ipt_recent的參數如下:

#cat/etc/modprobe.confoptions ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60#記錄1000個IP地址,每個地址記錄60個資料包#modprobe ipt_recent

加入好友line@vga9721w
線上客服
@hd119