Добавлю ещё пару фраз.
Баним IP-адреса
Если атака ведётся с какого-то диапазона IP-адресов или с нескольких IP-адресов, логично забанить эти адреса. Для этого воспользуемся условной конструкцией, глобальными переменными и регулярным выражением:
Код:
$HTTP["host"] == "victim.com" {
$HTTP["remoteip"] = "^(123\.123\.123\.[0-255])$" {
url.access-deny = ( "" )
}
}
Ещё ограничиваем трафик
Вот ещё некоторые меры, которые могут помочь для экономии трафика: бан ботов по user-agent и анти-хотлинкинг.
User-Agent банится так:
Код:
$HTTP["useragent"] =~ "libwww-perl" {
url.access-deny = ( "" )
}
Это конечно можно сделать и в robots.txt, но ведь бот может и не проверять этот файл, так что на уровне сервера это надёжнее.
Хотлинкинг же запрещается следующим образом:
Код:
$HTTP["referer"] !~ "^($|http://vitim\.com)" {
url.access-deny = (".bmp", ".jpg", ".jpeg", ".png",".ico" )
}
Таким образом, мы запретили выкладывать на других хостах картинки с нашего сервера. Это бывает весьма полезно, когда картинок много и их постоянно воруют. Того же эффекта можно достичь при помощи .htaccess. Кстати бывали и прецеденты, когда DDoS-атака проводилась с помощью очень частого показа картинок с сервера (канал забивался).