Меня взломали?
Вот несколько строк из моего Apache 2.0 error_log
:
[Sun Nov 25 08:22:04 2012] [error] [client 64.34.195.190] File does not exist: /var/www/vhosts/default/htdocs/admin
[Sun Nov 25 14:14:32 2012] [error] [client 96.254.171.2] File does not exist: /var/www/vhosts/default/htdocs/azenv.php
[Wed Nov 28 03:02:01 2012] [error] [client 91.205.189.15] File does not exist: /var/www/vhosts/default/htdocs/user
[Wed Nov 28 03:44:35 2012] [error] [client 66.193.171.223] File does not exist: /var/www/vhosts/default/htdocs/vtigercrm
[Mon Dec 03 00:09:16 2012] [error] [client 82.223.239.68] File does not exist: /var/www/vhosts/default/htdocs/jmx-console
[Mon Dec 03 20:48:44 2012] [error] [client 221.2.209.46] File does not exist: /var/www/vhosts/default/htdocs/manager
[Thu Dec 06 07:37:04 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/w00tw00t.at.blackhats.romanian.anti-sec:)
[Thu Dec 06 07:37:05 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin
[Thu Dec 06 07:37:05 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/phpmyadmin
[Thu Dec 06 07:37:06 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/pma
[Thu Dec 06 07:37:06 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/myadmin
[Thu Dec 06 07:37:07 2012] [error] [client 116.254.203.24] File does not exist: /var/www/vhosts/default/htdocs/MyAdmin
[Thu Dec 13 02:19:53 2012] [error] [client 96.254.171.2] File does not exist: /var/www/vhosts/default/htdocs/judge.php
Наиболее распространенными ошибками являются запросы на файл "phpMyAdmin" и "w00tw00t.at.blackhats.romanian.anti-sec:)".
Я вижу IP-адрес, из которого поступают запросы. Но кто "клиент"?
Спасибо,
Шейн.
Ответы
Ответ 1
Это просто автоматический script, развернутый многими script Kiddies, которые ищут нарушение безопасности в вашей версии/конфигурации apache. Подпись w00tw00t обычно остается DFind
.
Просто используйте такую программу, как fail2ban
, сконфигурированную таким образом, как этот пример объясняет, чтобы избежать наводнения этими запросами:
https://web.archive.org/web/20160617020600/http://www.userdel.com/post/18618537324/block-w00tw00t-scans-with-fail2ban
Это не обязательно означает, что вы были взломаны, но сервер был проверен на наличие уязвимостей. Однако, если вы используете какое-либо программное обеспечение, которое вы видели в этих журналах, и это более ранняя версия с известными уязвимостями, вы должны проверить свой сервер на наличие необычных файлов и действий входа.
Ответ 2
Запросы на это обычно отправляются без заголовка сервера. Просто создайте виртуальный хост по умолчанию для запросов, у которых нет ожидаемого заголовка сервера и его черное. Также интересно записывать сломанный трафик и делать обратный DNS, чтобы узнать, поступает ли он с другого веб-сервера (скомпрометирован?) И связывается с владельцем на основе базы данных whois. Вы никогда не знаете, кто запустил глупые скрипты с публично идентифицируемого сервера для сканирования уязвимостей, а затем использовал их через туннель ToR. Используйте контактную информацию о горелке, если вы не хотите привлекать внимание к себе.
Ответ 3
Чтобы следить за ответом, заданным @user823629, вот конфигурация виртуального хоста по умолчанию, которую я использую на Apache 2.4:
<VirtualHost *:80 *:443>
# Default vhost for requests not matching IP or Host of other vhosts
ServerName blackhole
ErrorLog logs/error_log_blackhole
CustomLog logs/access_log_blackhole combined
Redirect 404 /
</VirtualHost>
Он перенаправляет все запросы на страницу 404 по умолчанию.
Я помещаю это в conf.d
и даю ему имя conf.d/0_default.conf
, чтобы оно было до других определений vhosts, и это виртуальный хост по умолчанию. Это можно проверить с помощью:
apachectl -t -D DUMP_VHOSTS
Другие виртуальные хосты будут соответствовать перед этим vhost, если 1) их IP-адрес и порт более явно соответствуют определению VirtualHost (виртуальный хост на базе IP) или 2) запрос содержит заголовок Host
, который соответствует запросу ( виртуальный хост на основе имени). В противном случае запрос вернется к виртуальному узлу Blackhole по умолчанию, указанному выше.
Подробнее о согласовании виртуального хоста см. http://httpd.apache.org/docs/current/vhosts/details.html.
Ответ 4
Если вы фактически не используете /var/www/vhosts/default/
для размещения веб-сайта, это означает, что у вас есть запросы на хост по умолчанию, который не попадает в вашу настройку virtualhosts.
Не обращайте внимания на то, что это вредоносные запросы, потому что причиной этих ошибок vhosts/default/errors является то, что вы, вероятно, отключили SSL для виртуального хоста, и это HTTPS-запросы, попавшие в конфигурацию сервера по умолчанию.
Вы можете добавить %v %V %p
в свои параметры доступа к протоколу Apache в httpd.conf, чтобы узнать больше о том, что это за запросы и какое виртуальное хост/имя сервера обрабатывает их (%v %V
), и о том, какой порт (%p
) запросы выполняются (обычно порт 443, если он HTTPS).
Чтобы исправить аспект HTTPS, я включил бы SSL, а затем включил RewriteRule для отправки HTTPS-запросов на HTTP (если это предполагаемое поведение). Подробнее о том, как это сделать здесь.
В противном случае, чтобы помочь с script детишками, упомянутая выше черная дыра - это путь. Просто убедитесь, что вы не ошибаетесь, отправляя законных веб-искателей/пауков, требующих HTTPS к той же галактической смерти - например, робот Googlebot тестирует законные страницы через HTTPS, так как это направление, в котором Google хочет, чтобы веб-сервер находился.