У меня есть веб-сервер Apache 2.2 под управлением Windows 7 с шестью настроенными виртуальными хостами.
?: /.../ urls / 1 /
?: /.../ urls / 2 /
?: /.../urls/3/
?: /.../ urls / 4 /
?: /.../ urls / 5 /
?: /.../ urls / 6 /
(псевдоадреса и пути)
Редактировать: Фактический порядок в конфигурации
?: /.../ urls / 6 /
?: /.../ urls / 5 /
?: /.../ urls / 1 /
?: /.../ urls / 2 /
?: /.../urls/3/
?: /.../ urls / 4 /
End Edit
У меня еще нет доменного имени E, так что на данный момент он определен в моем файле hosts, и он работает, когда я пытаюсь получить к нему доступ в братане wser по имени домена.
Я сделал несколько обширных изменений структуры файлов и немного изменил мои виртуальные хосты, поэтому сейчас каждый сайт просто показывает тестовую страницу, которая просто указывает, какой это сайт. Доменное имя A / B / C / и т. Д. На каждом сайте есть собственный журнал доступа и журнал ошибок. Все вроде бы простые вещи. Для меня в новинку иметь частный сайт на localhost. Раньше localhost, сетевой IP-адрес и доменное имя A указывали на мой основной сайт, поэтому не было никаких соображений по поводу конфиденциальности.
Сейчас меня беспокоит тот сайт 6, который должен быть доступен только localhost
], 127.0.0.1
и 192.168.1.100
, записывает попадания с внешних адресов в журнал доступа. Этот сайт отрицает все, кроме моих собственных адресов, и внешние запросы привели к 403, как и ожидалось, независимо от того, пытаются ли они получить доступ к реальным файлам, таким как index.html или чему-то поддельному, хотя несколько запросов привели к ошибке 400, которую я не знаком с. При возникновении определенных распространенных ошибок я перенаправляю пользовательский сценарий ошибки с ? Code = $ HTTP_CODE
, чтобы выгрузить данные% ENV в файл в надежде, что я смогу собрать полезную информацию об этих совпадениях, а также вернуть страница с ошибкой для пользователя. Пока для меня ничего не имеет смысла.
Я хочу знать, как / почему эти запросы достигают моих внутренних адресов, если меня что-то беспокоит в ?: /.../ urls / 6 /
является общедоступным, если я неправильно сконфигурировал что-либо в Apache, и если да, то как это исправить.
Вот несколько фрагментов, которые могут иметь отношение. Пути и мои веб-адреса были запутаны.
файл хостов
127.0.0.1 domain-name-E.com # domain that i don't own yet
127.0.0.1 www.domain-name-E.com # domain that i don't own yet
httpd-vhosts.conf Изменить: скорректировано для отображения фактического порядка VHs
<Directory "?:/.../urls/">
Order Deny,Allow
Allow from all
</Directory>
NameVirtualHost *:80
# site 6: private
<VirtualHost *:80>
DocumentRoot "?:/.../urls/6/www/"
ServerName localhost
ServerAlias 127.0.0.1
ServerAlias 192.168.1.100
ScriptAlias /cgi/ "?:/.../urls/6/cgi/"
<Directory "?:/.../urls/6/cgi/">
AllowOverride All
</Directory>
ErrorLog "?:/.../logs/errors-site6.log"
# CustomLog "?:/.../logs/access-site6.log" common
LogFormat "%{%Y/%m/%d (%a) at %H:%M:%S}t %a Login: %u Sent: %B B in %D µs Status: %s/%>s for %H %m %{Host}i%U%q Using: %{User-agent}i From: %{Referer}i" custom
CustomLog "?:/.../logs/access-site6.log" custom env=!dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
SetEnvIf Remote_Addr "192\.168\.1\..*" dontlog
SetEnvIf Remote_Addr "XXX\.XXX\.XXX\.XXX" dontlog # my public IP address
</VirtualHost>
# site 5 here
# site 1 here
# site 2 here
# site 3 here
# site 4 here
?: /.../ urls / 6 / .htaccess
# site 6: private
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1
Allow from XXX.XXX.XXX.XXX # my public IP address
?: /.../ logs / access-site6.log (выравнивание немного подобрано)
# timestamp # IP # domain/path?query # agent # referrer
2019/06/24 (Mon) at 18:50:52 61.219.11.153 Login: - Sent: 226 B in 3001 µs Status: 400/400 for HTTP/1.1 GET -/ Using: - From: -
2019/06/24 (Mon) at 19:08:14 104.152.52.22 Login: - Sent: 1211 B in 512029 µs Status: 403/403 for HTTP/1.0 GET -/?code=403 Using: masscan/1.0 (https://github.com/robertdavidgraham/masscan) From: -
2019/06/25 (Tue) at 00:12:51 138.99.29.110 Login: - Sent: 226 B in 3001 µs Status: 400/400 for HTTP/1.1 GET -/Login.htm Using: - From: -
2019/06/25 (Tue) at 02:26:21 122.116.24.230 Login: - Sent: 226 B in 3000 µs Status: 400/400 for HTTP/1.1 GET -/Login.htm Using: - From: -
2019/06/25 (Tue) at 04:21:55 92.63.194.15 Login: - Sent: 1211 B in 365021 µs Status: 403/403 for HTTP/0.9 GET -/?code=403 Using: - From: -
2019/06/25 (Tue) at 09:28:05 89.248.169.12 Login: - Sent: 1211 B in 309018 µs Status: 403/403 for HTTP/1.1 GET 80/?code=403 Using: Mozilla/5.0 zgrab/0.x From: -
2019/06/25 (Tue) at 10:07:53 185.53.88.37 Login: - Sent: 0 B in 384022 µs Status: 403/403 for HTTP/1.0 GET -/robots.txt?code=403 Using: - From: -
2019/06/25 (Tue) at 10:48:16 77.247.110.106 Login: - Sent: 0 B in 464027 µs Status: 403/403 for HTTP/1.0 GET -/robots.txt?code=403 Using: - From: -
2019/06/25 (Tue) at 13:46:30 192.31.231.241 Login: - Sent: 1211 B in 519029 µs Status: 403/403 for HTTP/1.1 GET default/.html?code=403 Using: curl/7.64.1 From: -
2019/06/25 (Tue) at 15:14:24 77.247.110.106 Login: - Sent: 0 B in 375022 µs Status: 403/403 for HTTP/1.0 GET -/robots.txt?code=403 Using: - From: -
2019/06/25 (Tue) at 21:00:55 220.133.33.166 Login: - Sent: 226 B in 3001 µs Status: 400/400 for HTTP/1.1 GET -/Login.htm Using: - From: -
2019/06/26 (Wed) at 01:33:22 110.249.212.46 Login: - Sent: 226 B in 2000 µs Status: 400/400 for HTTP/1.1 GET -/testget?q=23333&port=80 Using: - From: -
?: /.../ logs / errors-site6.log
[Mon Jun 24 18:50:52 2019] [error] [client 61.219.11.153] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /
[Mon Jun 24 19:08:14 2019] [error] [client 104.152.52.22] client denied by server configuration: ?:/.../urls/6/www/
[Tue Jun 25 00:12:51 2019] [error] [client 138.99.29.110] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Login.htm
[Tue Jun 25 02:26:21 2019] [error] [client 122.116.24.230] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Login.htm
[Tue Jun 25 04:21:55 2019] [error] [client 92.63.194.15] client denied by server configuration: ?:/.../urls/6/www/
[Tue Jun 25 09:28:05 2019] [error] [client 89.248.169.12] client denied by server configuration: ?:/.../urls/6/www/
[Tue Jun 25 10:07:53 2019] [error] [client 185.53.88.37] client denied by server configuration: ?:/.../urls/6/www/robots.txt
[Tue Jun 25 10:48:17 2019] [error] [client 77.247.110.106] client denied by server configuration: ?:/.../urls/6/www/robots.txt
[Tue Jun 25 13:46:30 2019] [error] [client 192.31.231.241] client denied by server configuration: ?:/.../urls/6/www/.html
[Tue Jun 25 15:14:24 2019] [error] [client 77.247.110.106] client denied by server configuration: ?:/.../urls/6/www/robots.txt
[Tue Jun 25 21:00:55 2019] [error] [client 220.133.33.166] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Login.htm
[Wed Jun 26 01:33:22 2019] [error] [client 110.249.212.46] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /testget
?: / ... /logs/detail-site6.log (выравнивание немного подобрано, некоторые нерелевантные пары ключ / значение опущены)
2019/06/24 at 07:08:15 PM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'HTTP_ACCEPT' => '*/*',
'HTTP_USER_AGENT' => 'masscan/1.0 (https://github.com/robertdavidgraham/masscan)',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'GET',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/',
'REMOTE_ADDR' => '104.152.52.22',
'REMOTE_PORT' => '48100',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.0',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 04:21:55 AM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => '',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/',
'REMOTE_ADDR' => '92.63.194.15',
'REMOTE_PORT' => '1468',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/0.9',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 09:28:05 AM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'HTTP_ACCEPT' => '*/*',
'HTTP_ACCEPT_ENCODING' => 'gzip',
'HTTP_HOST' => '80',
'HTTP_USER_AGENT' => 'Mozilla/5.0 zgrab/0.x',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'GET',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/',
'REMOTE_ADDR' => '89.248.169.12',
'REMOTE_PORT' => '32902',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => '80',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 10:07:53 AM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'HEAD',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/robots.txt',
'REMOTE_ADDR' => '185.53.88.37',
'REMOTE_PORT' => '58418',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/robots.txt',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.0',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 10:48:17 AM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'HEAD',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/robots.txt',
'REMOTE_ADDR' => '77.247.110.106',
'REMOTE_PORT' => '54263',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/robots.txt',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.0',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 01:46:30 PM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'HTTP_ACCEPT' => '*/*',
'HTTP_HOST' => 'default',
'HTTP_USER_AGENT' => 'curl/7.64.1',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'DKEMDIF&0',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/.html',
'REMOTE_ADDR' => '192.31.231.241',
'REMOTE_PORT' => '33716',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/.html',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'default',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
2019/06/25 at 03:14:24 PM
$VAR1 = {
'DOCUMENT_ROOT' => '?:/.../urls/6/www/',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'QUERY_STRING' => 'code=403',
'REDIRECT_REQUEST_METHOD' => 'HEAD',
'REDIRECT_STATUS' => '403',
'REDIRECT_URL' => '/robots.txt',
'REMOTE_ADDR' => '77.247.110.106',
'REMOTE_PORT' => '61954',
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/robots.txt',
'SCRIPT_FILENAME' => '?:/.../urls/6/cgi/error/.pl',
'SCRIPT_NAME' => '/cgi/error/.pl',
'SERVER_ADDR' => '192.168.1.100',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.0',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
};
Может быть, это неправильная конфигурация моего маршрутизатора? Или вредоносное ПО на моем компьютере или маршрутизаторе, который звонит домой? Если да, то как я могу проверить,и могу ли я остановить это раньше?
Или это всего лишь обычный хаотичный интернет-трафик, который я могу игнорировать и спокойно отдыхать, зная, что он никогда не увидит мой частный сайт?
Если вам нужен виртуальный хост, который отвечает только на запросы для http: // localhost
, не делайте этот виртуальный хост доступным для всех IP-адресов с Подстановочный знак IP-адреса:
<VirtualHost *:80>
ServerName localhost
См. руководство для точных правил сопоставления VHost , но выполнение вышеуказанного дает Apache httpd только один дискриминатор для использования для выбора того, какие запросы должны обрабатываться этим виртуальным хостом, а именно, когда запрос включает заголовок Host: localhost
и не проверяет, был ли запрос отправлен на IP-адрес localhost
127.0.0.1
или петлевой сети интерфейс.
Вместо этого привяжите этот VHost к определенному IP-адресу локального хоста с помощью
<VirtualHost 127.0.0.1:80>
ServerName localhost
или эквивалентного
<VirtualHost localhost:80>
ServerName localhost