Typo3 - атака на сервер, слишком много php-запросов заканчиваются ошибками 500 и 503

У меня есть старый сайт Typo3 (v4.5.x), и с тех пор мой сервер подвергся атаке сценария. Он посылает довольно много PHP-запросов URL-адресов, которых нет на моем сервере. Я получил столько ошибок PHP 500 назад, и через некоторое время число параллельных php-процессов превысило лимит, и мой сайт на некоторое время недоступен.

Есть идеи, что я могу сделать? Как я могу избежать обработки таких несуществующих URL-адресов?

Если я смотрю на эти запросы и гугл вокруг, то все о некоторых уязвимостях WordPress или Joomla. Кто-нибудь знает, существуют ли какие-либо списки таких запросов, которые можно добавить в списки фильтров / блокировок на уровне apache? т.е.

  • шаблоны / атомный / system.php
  • WP-содержание / языки / system.php
  • WP-администратора / изображения / system.php
  • плагины / CAPTCHA, /jproicaptcha.php
  • Модули / cgi.php
  • Модули /mod_articless/func.php
  • TMP / install.css.php
  • ...

1 ответ

У вас есть несколько вариантов:

  • Если запросы поступают с одного IP, просто заблокируйте этот IP в брандмауэре.
  • Верните код ответа 403 или 404 для этих запросов. Вы можете сделать это в файле.htaccess или непосредственно в конфигурационных файлах Apache (см. Директиву LocationMatch http://httpd.apache.org/docs/2.4/mod/core.html).
  • Используйте брандмауэр уровня приложения. mod_security был бы мудрым выбором.

Это не совсем конкретный вопрос для TYPO3. Вопрос в том, как избежать / заблокировать атаки DOS (отказ в обслуживании) или, скорее, в этом случае попытки взлома.

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

Как только злоумышленник достигнет вашего веб-сервера и сгенерирует HTTP-запросы, вы хотите, чтобы он выделил как можно меньше ресурсов. Поэтому вместо того, чтобы показывать страницу с ошибкой в ​​TYPO3 (или перенаправлять на начальную страницу), убедитесь, что вы полностью блокируете страницу или обслуживаете минимальную страницу 404 для этих известных URL-адресов (например, статическую HTML-страницу, где нет доступа к БД или запуск PHP скриптов необходим).

Пример: веб-сервер Apache

RewriteRule ^/?(wordpress/wp-admin/|wp-login|wp-admin|test/wp-admin/|wp-admins|phpmyadmin|test.php|cacti|hack.php|tomcat.php|db.init.php|db_session.init.php|shell.php|mysql/|admin/index.php|dbadmin/|xampp|myadmin/|typo3/phpmyadmin|templates|wp-content|plugins|modules|tmp) - [L,F,NC]
  • F означает "запрещено", см. http://httpd.apache.org/docs/2.4/rewrite/flags.html
  • RewriteRule требует директивы RewriteEngine on один раз и требует модуль mod_rewrite (который у вас должен быть в любом случае, для правил перезаписи TYPO3)
Другие вопросы по тегам