Назад | Перейти на главную страницу

Сервер Apache атакован

У меня есть сервер CentOS 5.8 с Apache 2.2.3 с 20 сайтами на нем. В последние недели сервер несколько раз был недоступен (слишком много подключений к базе данных и высокая загрузка ЦП). Мне пришлось снова перезапустить сервер, чтобы снова получить доступ по ssh / ftp / http. Когда я проверил файлы журнала httpd на сервере, я обнаружил, что через yourthumbnails.com ежедневно поступает 10 000 «попыток доступа». Вот пример журнала доступа:

98.224.147.78 - - [19/Apr/2012:14:20:06 +0200] 
"GET /yourthumbnails.com/?id=2&%20121 HTTP/1.1" 404 278 "http://yourthumbnails.com/tgp44.html" 
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB7.1; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; WinNT-PAI 23.10.2009)"

И журнал ошибок

[Thu Apr 19 14:19:15 2012] [error] [client 24.3.144.129] 
File does not exist: /var/www/vhosts/default/htdocs/yourthumbnails.com, referer: 
http://yourthumbnails.com/tgp44.html

Как видите yourthumbnails.com - это реферер а фактические посетители имеют разные IP-адреса. Поэтому я не могу заблокировать только один IP-адрес.

Я искал в Google, как заблокировать реферер, но это кажется очень трудным. Один из способов - сделать это через htaccess следующим образом:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} ^http://(www\.)?yourthumbnails\.com
RewriteRule .* - [F]

Однако я просмотрел индивидуальный журнал доступа httpd всех моих сайтов и не нашел ни одного, где находятся ваши превью. Так что, похоже, мой сервер подвергается прямой атаке? И я не могу использовать метод htaccess.

Мой вопрос: есть ли способ заблокировать такую ​​«атаку реферера» на сервере без использования большого количества ресурсов сервера?

Я связался со своим провайдером, но даже они не могут найти решение. Так что я был бы очень рад, если бы у кого-нибудь из присутствующих появилась идея.

Я просмотрел индивидуальный журнал доступа httpd всех моих сайтов и не нашел ни одного, где находится вашhtumbnails.

Но об этом сообщается в журнале ошибок. Похоже, вы просто не пишете референт в журнал доступа.

Однако это не решает проблему, которую вы описываете - запрос, который вы показываете, вызывает ответ 404 - это не должно приводить к большому количеству подключений к базе данных (если у вас нет некоторого ума в обработчике 404), это должно потребовать много меньше усилий для веб-сервера для обработки этого, чем для обработки действительного запроса.

Так что либо есть другие вещи, о которых вы нам не рассказывали, либо вам нужно будет обработать их выше httpd (например, с помощью правила fail2ban, ограничения скорости синхронизации в iptables). Вы, вероятно, захотите также связаться с пользователем, запустившим thumbails.com.