Вопрос или проблема
На Windows Server, который я рассматриваю, IIS запускает службу публикации WWW, а файрвол настроен так, чтобы разрешать только порты 80 и 443 для этой службы. Подключения из браузеров клиентов истекают по времени, и когда я просматриваю журнал событий безопасности на сервере, я вижу такие события, как это:
Платформа фильтрации Windows заблокировала соединение.
Информация о приложении:
Идентификатор процесса: 4
Имя приложения: System
Сетевые данные:
Направление: Входящее
Адрес источника: 192.168.10.21 <= Это сервер, где зарегистрировано событие
Порт источника: 80 <= Это порт службы публикации WWW IIS
Адрес назначения: 192.168.10.3 <= Это клиентский ПК, где браузер запрашивает URL на IIS
Порт назначения: 60112
Протокол: 6
Информация о фильтре:
ID выполнения фильтра: 86327
Имя уровня: Получение/Принятие
ID выполнения уровня: 44
Если соединение входящее, как указано выше, то источник должен быть 192.168.10.3, порт источника должен быть случайным высокопортовым номером, который использует браузер, адрес назначения должен быть 192.168.10.21, а порт назначения должен быть 80, но все наоборот.
Не понимая, почему поля события перепутаны, я не могу найти способ разрешить это соединение.
Если это действительно не изначальный запрос, а ответ от IIS на запрос, который уже был разрешен, то почему он блокируется? На файрволе нет правил блокирования, и единственное правило, касающееся HTTP(s) соединений, это правило разрешения входящих соединений для службы WWW IIS.
Я настроил множество серверов Apache и их правила так, как я описал выше, и никогда не сталкивался с проблемами. Если IIS требует другого подхода, то почему и как? Это требование поставщика, чтобы сайт запускался на IIS, так что у меня нет свободы в этом вопросе.
Ответ или решение
Проблема, которую вы описали, связана с сетевой фильтрацией на уровне Windows Filtering Platform (WFP). Давайте рассмотрим подробно, что может быть не так и как это можно исправить.
Анализ проблемы
-
Суть ошибки: В вашем случае на сервере Windows блокируется входящее соединение, что странно, поскольку это не то, что ожидается в стандартной схеме HTTP-ответа. Обычно сервер принимает входящие запросы на порты 80 и 443 и отвечает на запросы, инициированные клиентами.
-
Конфигурация брандмауэра: Похоже, что фильтр работает на уровне Receive/Accept, что может блокировать правильную отправку ответов серверов клиентам. Это значит, что даже ответные пакеты от вашего сервера обратно клиенту могут быть интерпретированы как новые "входящие" пакеты из-за ошибки в конфигурации маршрутизации или фильтрации.
Возможные причины и решения
-
Неверная конфигурация фильтров или брандмауэра: Перепроверьте правила брандмауэра на сервере. Убедитесь в том, что разрешены как входящие, так и исходящие подключения для служб IIS на данных портах. Внимательно проверьте, есть ли какие-либо специфические правила или фильтры, которые могут интерпретировать ответные пакеты как новые входящие.
-
Сетевые устройства между сервером и клиентами: Проверьте сетевое оборудование (роутеры, коммутаторы), между которыми осуществляется передача данных. Возможно правило NAT или подобная настройка форсирует серверы в определенных конфигурациях перекручивать источники и назначения.
-
Диагностика сетевых служб: Используйте инструменты трассировки сетевого трафика (например, Wireshark) для анализа пакетов между сервером и клиентом. Проверьте, что сеть действительно работает ожидаемым образом, и пакеты не модифицируются по пути.
Особенности IIS
Если дело именно в специфике работы IIS, что маловероятно при рассмотрении именно этой проблемы, стоит обратить внимание на его настройку по обработке HTTP-запросов и интеграцию с системами безопасности Windows, отличия которой могут быть от привычной работы другими веб-серверами, такими как Apache.
Заключение
Таким образом, источником проблемы может быть неэффективно настроенная конфигурация Windows Firewall или внешнее сетевое оборудование. Проведите аудит конфигураций и правил фильтрации, используя инструменты сетевого анализа, чтобы устранить блокировку. Учитывая вашу ограниченность в использовании IIS, постарайтесь максимально совместить текущие настройки с аналогичным опытом использования других серверов, помня о спецификах безопасности Windows.