2013-03-29 2 views
1

Backstory: Недавно кто-то каким-то образом скомпрометировал установку Xenforo, связанную с моим сервером, и ввел бесконечно циклический скрипт php mail(). Он отправил тысячи электронных писем из домена во внешний мир, в результате чего мой домен занесен в черный список со всех основных интернет-провайдеров электронной почты, прежде чем я даже заметил, что это происходит. Я нашел файл, который каким-то образом был введен в каталог кэша и skin_cache форума, и удалил их и настроил постоянный переадресацию (используя перенаправление заголовка php) на сайт для сбора нежелательной почты.Apache/Linux Webserver динамически блокирует входящие POST-запросы

Текущая проблема: Теперь я вижу устойчивый и бесконечный поток запросов POST к вышеупомянутым сценариям спама. IP-адреса различаются каждый раз и, похоже, никогда не прекращают приходить. Это происходит уже более двух недель. Настолько, что мой apache максимизирует настройку MaxClients и сталкивается с проблемами памяти и начинает закрывать другие процессы для компенсации.

Это то, что появляется в журнале:

190.40.7.126 - - [28/Mar/2013:18:58:30 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
190.104.19.189 - - [28/Mar/2013:18:58:39 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
78.251.159.173 - - [28/Mar/2013:18:58:57 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
219.78.213.10 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
69.123.20.137 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
2.234.181.7 - - [28/Mar/2013:18:59:37 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
187.207.223.67 - - [28/Mar/2013:18:59:44 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
24.242.122.42 - - [28/Mar/2013:19:01:56 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
213.49.254.102 - - [28/Mar/2013:19:02:32 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
82.247.48.152 - - [28/Mar/2013:19:02:38 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
41.135.146.136 - - [28/Mar/2013:19:02:43 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
91.187.93.36 - - [28/Mar/2013:19:03:04 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
194.90.37.132 - - [28/Mar/2013:19:03:40 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 

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

Было бы разумным придумать способ запретить любой IP-адрес, который запрашивает этот файл динамически, чтобы они не могли повторить попытку? Мне нужны предложения и помощь в этом, пожалуйста.

ответ

3

Вероятно, URL-адрес вредоносного скрипта был распространен в бот-сети, которая пытается использовать ваш веб-сервер в качестве пляжной головы. Запросы в конечном итоге исчезнут, так как ботнет не может продолжать запрашивать скрипт, который не работает.

Быстрое и простое исправление: добавьте блок <Location> в конфигурацию Apache или правило перезаписи, которое будет игнорировать эти запросы.

Наглый, беспорядочный метод: используйте ограничение скорости на основе iptables. iptables -A INPUT -p tcp --dport 80 -m limit --limit 60/min -j ACCEPT со следующим правилом отклонения может помочь, хотя он также может блокировать законный трафик, включая индексаторы поисковых машин и законных ботов.

Лучшее решение: Внедрение брандмауэра веб-приложений, такого как Apache's mod_security. Вы можете добавить дополнительное правило для соответствия входящим запросам и их черным спискам или любым другим подходящим побочным эффектам.

Независимо от того, какой вариант вы принимаете, я очень сомневаюсь, что 404 ошибки вредят использованию ресурсов на вашем сервере. Вам необходимо учитывать другие факторы:

  • Ваши скрипты PHP могут вызывать некоторые существенные проблемы с производительностью/эффективностью.
  • Возможно, ваша конфигурация Apache не оптимизирована для обработки больших объемов трафика.
  • Ваш сервер скомпрометирован, и теперь у вас гораздо больше проблем.

Возможно, вы также захотите рассмотреть вопрос об установке Apache за Nginx в качестве back-proxy-сервера.В зависимости от причины использование кеша HTTP перед сервером Apache (например, Varnish) может снизить нагрузку на ваш сервер на относительно постоянный коэффициент, а не на другой.

TL; DR: от этого зависит. Вероятно, ваш сервер был неправильно настроен или скомпрометирован.

+0

Благодарим вас за идеи. Ошибка загрузки сервера может быть неправильной конфигурацией с моей установкой postfix. Я только что нашел некоторые проблемы в журнале для этого, а также установил dovecot и opendkim вчера. Что касается отмены входящих соединений, все ваши предложения были прочитаны, и я посмотрю, кто из них сделает работу лучше. Спасибо за ваш ответ. :] – dns

+0

Теперь я настроил mod_security, чтобы заблокировать все входящие запросы к этому файлу. Еще раз спасибо за логические идеи, lol. – dns