Развернув на виртуальном сервере какую-либо сетевую службу, пользователи нередко сталкиваются с проблемой доступности, когда к настроенному сервису не проходят внешние подключения. Одна из возможных причин заключается в том, что входящие запросы блокируются встроенным брандмауэром операционной системы. Чтобы не столкнуться с подобной проблемой, необходимо создать разрешающее правило. Рассмотрим создание такого правила на примере развернутого на виртуальной машине веб-сервера, принимающего запросы на стандартных TCP-портах 80 (http) и 443 (https).
Управление брандмауэром осуществляется через оснастку Брандмауэр Windows в режиме повышенной безопасности (Windows Firewall with Advanced Security). Запуск оснастки можно осуществить разными способами, например, командой control firewall.cpl из строки запуска:
Или через Панель управления – Система и безопасность – Брандмауэр Windows (Control panel – Security and Maintenance – Windows Defender Firewall):
В открывшемся окне отображается важная информация относительно текущей конфигурации. Здесь мы увидим имеющиеся профили брандмауэра. В нашем случае их два: Частные сети (Private networks) и Гостевые или общедоступные сети (Guest or public networks).
На серверах, подключенных к домену Active Directory, имеется также третий профиль Доменная сеть (Domain network). Профиль представляет собой набор отдельных правил, применяемых к сетевому подключению, поэтому важно понимать какой профиль активирован для нужного сетевого интерфейса.
В нашем примере для сети активирован профиль Guest or public networks (ключевое слово Connected — Подключено). Иконка с зеленым щитом означает, что брандмауэр включен. Чтобы увидеть список имеющихся правил нажимаем в левой панели ссылку Дополнительные параметры (Advanced settings):
Слева, в разделе Правила для входящих подключений (Inbound rules), содержатся правила обработки поступающих на интерфейс сетевых пакетов. Раздел Правила для исходящих подключений (Outbound rules), содержит правила обработки сетевых пакетов, отправляемых сервером. Так как нам нужно разрешить входящие извне запросы, в разделе Правила для входящих подключений (Inbound rules) выбираем Создать правило (New Rule) на панели действий справа:
В открывшемся Мастере создания правила для нового входящего подключения (New Inbound Rule Wizard) выбираем тип правила. Так как нам известно, на какие порты будут приходить входящие запросы, и эти порты фиксированные, выбираем тип правила Для порта (Port), нажимаем Далее (Next):
В следующем разделе указываем основные признаки входящих соединений, к которым будет применяться создаваемое правило. Выбираем протокол TCP и прописываем Определенные локальные порты (Specific local ports) 80, 443. Нажимаем Далее (Next):
На шаге Действие (Action) выбираем что делать с соединениями, подпадающими под действие данного правила. В нашем случае выбираем Разрешить подключение (Allow the connection). Нажимаем Далее (Next):
Далее определяем профили, в которых данное правило будет создано. По умолчанию правило создается во всех сетевых профилях и без особой необходимости менять это не стоит. Исключением являются ситуации, когда на сервере имеется несколько сетевых интерфейсов, для каждого из которых требуются отдельные настройки безопасности:
На последнем шаге необходимо указать имя нового правила, чтобы было проще определить его в общем списке:
Нажимаем Готово (Finish) и видим созданное правило в общем списке:
На данный момент веб-сервер принимает входящие соединения. В случае, если понадобится скорректировать какие-либо параметры, необходимо сделать правый клик по нужному правилу и выбрать Свойства (Properties).
В открывшейся форме находим нужную вкладку и указываем свои настройки. Например, на вкладке Протоколы и порты (Protocols and ports) можно добавить/удалить локальные или удаленные порты для входящих подключений. А на вкладке Область (Scope) можно ограничить список удаленных IP адресов, соединения с которых будут разрешены: в разделе Удаленный IP-адрес (Remote IP address) выбираем пункт Указанные IP-адреса (These IP addresses) и через кнопку Добавить (Add) добавляем нужные адреса в список:
Подобное ограничение может быть удобно, например, в правилах, разрешающих удаленные RDP-соединения, когда мы точно знаем с каких IP-адресов предполагаются подключения.