linux服务器cc防御,Linux下简单的防止CC攻击
Nginx 0.7開始提供了2個限制用戶連接的模塊:NginxHttpLimitZoneModule和NginxHttpLimitReqModule。
NginxHttpLimitZoneModule可以根據(jù)條件進行并發(fā)連接數(shù)控制。
NginxHttpLimitReqModule可以根據(jù)條件進行請求頻率的控制。http {
limit_zone my_zone $binary_remote_addr 10m;
limit_req_zone $binary_remote_addr zone=my_req_zone:10m rate=1r/s;
}
server {
...
location ~ ^/bbs/(index|forumdisplay|viewthread).php$ {
limit_conn myzone_bbs 3;
limit_req zone=bbs burst=2 nodelay;
...
}
應(yīng)用這條規(guī)則后,bbs目錄下的index.PHP、forumdisplay.php和viewthread.php這些頁面同一個IP只許建立3個連接,并且每秒只能有1個請求(突發(fā)請求可以達到2個)。
另外我們可以找個腳本來封攻擊者的IP.訪問者通過瀏覽器正常訪問網(wǎng)站,與服務(wù)器建立的連接一般不會超過20個,我們可以通過腳本禁止連接數(shù)過大的IP訪問。以下腳本通過netstat命令列舉所有連接,將連接數(shù)最高的一個IP如果連接數(shù)超過150,則通過 iptables阻止訪問:#!/bin/sh
status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}' |awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1`
NUM=`echo $status|awk '{print $1}'`
IP=`echo $status|awk '{print $2}'`
result=`echo "$NUM > 150" | bc`
if [ $result = 1 ]
then
echo IP:$IP is over $NUM, BAN IT!
/sbin/iptables -I INPUT -s $IP -j DROP
fi
運行crontab -e,將上述腳本添加到crontab每分鐘自動運行:* * * * * /root/xxxx.sh
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的linux服务器cc防御,Linux下简单的防止CC攻击的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中信途牛信用卡年费多少
- 下一篇: linux ( )含义,Linux的sh