У меня есть веб-сервер 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/
Конец редактирования
У меня еще нет доменного имени E, поэтому на данный момент оно определено в моем файле hosts, и оно работает, когда я пытаюсь получить к нему доступ в браузере по имени домена.
Я внес несколько обширных изменений в структуру файлов и немного изменил свои виртуальные хосты, поэтому на данный момент каждый сайт просто показывает тестовую страницу, которая просто указывает, какой это сайт. Доменное имя 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, и если да, то как это исправить.
Вот несколько фрагментов, которые могут быть актуальны. Пути и мои веб-адреса были запутаны.
файл hosts
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 Изменить: скорректировано для отображения фактического порядка VH
<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: -
?: /.../ журналы / ошибки-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
заголовок, и он не будет проверять, что запрос был отправлен на localhost
Айпи адрес 127.0.0.1
или петлевой сетевой интерфейс.
Вместо этого привяжите этот VHost к определенному IP-адресу localhost с помощью
<VirtualHost 127.0.0.1:80>
ServerName localhost
или эквивалент
<VirtualHost localhost:80>
ServerName localhost