Полная защита Windows Server: настройка брандмауэра и ограничение доступа

Что делает эта инструкция

  • Разрешает RDP подключения только с указанного IP-адреса
  • Блокирует все остальные входящие подключения к серверу
  • Сохраняет исходящие подключения (доступ в интернет, обновления)

Проблема

По умолчанию Windows Server разрешает RDP подключения со всех IP-адресов, а также может иметь открытые порты других служб. Это создает серьезную угрозу безопасности - злоумышленники могут атаковать сервер через брутфорс или использовать уязвимости различных служб.

Решение

Настроить Windows Firewall для разрешения RDP только с определенного IP-адреса.

Пошаговая инструкция

Шаг 1: Создание правила для разрешенного IP

Откройте PowerShell от имени администратора и выполните:



New-NetFirewallRule -DisplayName "RDP Only My IP" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress YOUR_IP_ADDRESS -Action Allow -Profile Any

Что делает команда:

  • New-NetFirewallRule - создает новое правило брандмауэра
  • -DisplayName - название правила (для удобства управления)
  • -Direction Inbound - правило для входящих подключений
  • -Protocol TCP -LocalPort 3389 - протокол TCP на порту 3389 (стандартный порт RDP)
  • -RemoteAddress - разрешить подключения только с указанного IP
  • -Action Allow - разрешить подключение
  • -Profile Any - применить для всех сетевых профилей

Замените YOUR_IP_ADDRESS на ваш реальный IP-адрес.

Шаг 2: Отключение всех остальных правил брандмауэра

Отключите все активные входящие правила кроме нашего:



Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow | Where-Object {$_.DisplayName -notlike "*RDP Only My IP*"} | Disable-NetFirewallRule

Что делает команда:

  • Находит все активные входящие разрешающие правила
  • Исключает наше правило “RDP Only My IP”
  • Отключает все остальные правила (включая WinRM, Network Discovery, Cast to Device и другие системные службы)

Критически важно: Windows по умолчанию имеет множество активных правил для различных служб (WinRM порт 5357, сетевое обнаружение, мультимедиа и др.). Если не отключить их все, сервер останется уязвимым для атак через эти порты.

Примечание: Команда может дать пустой вывод - это нормально и означает успешное выполнение.

Шаг 3: Установка политики “блокировать по умолчанию”



Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block

Что делает команда:

  • Set-NetFirewallProfile - изменить настройки профилей брандмауэра
  • -Profile Domain,Public,Private - применить ко всем типам сетей
  • -DefaultInboundAction Block - блокировать все входящие подключения по умолчанию (кроме явно разрешенных правил)

Шаг 4: Проверка результата

Проверьте, что остались только нужные правила:



Get-NetFirewallRule -Direction Inbound -Enabled True | Where-Object {$_.DisplayName -like "*RDP*" -or $_.DisplayName -like "*Remote Desktop*"} | Select-Object DisplayName

Ожидаемый результат: Должно показать только “RDP Only My IP”, а стандартные правила Remote Desktop должны отсутствовать.

Проверьте политику брандмауэра:



Get-NetFirewallProfile | Select-Object Name, DefaultInboundAction, DefaultOutboundAction

Ожидаемый результат:

Name    DefaultInboundAction DefaultOutboundAction
----    -------------------- ---------------------
Domain                 Block         NotConfigured
Private                Block         NotConfigured
Public                 Block         NotConfigured

Результат

  • RDP доступен только с указанного IP-адреса
  • Все остальные входящие подключения заблокированы
  • Исходящие подключения остаются разрешены
  • Максимальная защита сервера от внешних атак

Важные замечания

  • Обязательно протестируйте подключение с вашего IP перед завершением настройки
  • Запишите команды восстановления на случай проблем с доступом
  • Сохраните свой IP-адрес - при его смене потребуется обновить правило
  • Команды могут давать пустой вывод - это нормально для PowerShell при успешном выполнении
  • Проверяйте результат каждого шага с помощью команд из раздела “Проверка результата”

Обновление разрешенного IP

Если ваш IP изменился, обновите правило:



Set-NetFirewallRule -DisplayName "RDP Only My IP" -RemoteAddress NEW_IP_ADDRESS

Добавление дополнительных разрешений

Разрешить подключение с дополнительного IP-адреса

Если нужно разрешить RDP еще с одного IP:



New-NetFirewallRule -DisplayName "RDP Additional IP" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress ADDITIONAL_IP_ADDRESS -Action Allow -Profile Any

Разрешить определенный порт для всех IP

Например, разрешить веб-сервер (порт 80) для всех:



New-NetFirewallRule -DisplayName "HTTP Allow All" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow -Profile Any

Разрешить определенный порт только для конкретного IP

Например, разрешить SSH (порт 22) только с вашего IP:



New-NetFirewallRule -DisplayName "SSH My IP Only" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress YOUR_IP_ADDRESS -Action Allow -Profile Any

Разрешить диапазон портов

Например, разрешить FTP (порты 20-21) только с вашего IP:



New-NetFirewallRule -DisplayName "FTP My IP Only" -Direction Inbound -Protocol TCP -LocalPort 20-21 -RemoteAddress YOUR_IP_ADDRESS -Action Allow -Profile Any

Работа с ICMP (ping)

По умолчанию в Windows Server ICMP заблокирован - сервер не отвечает на ping. Это нормально с точки зрения безопасности.

Если нужно разрешить ping (например, для мониторинга):



New-NetFirewallRule -DisplayName "ICMP Allow All" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Profile Any

Если нужно обратно заблокировать ping:



Remove-NetFirewallRule -DisplayName "ICMP Allow All"

Разрешить все порты для определенного IP

Внимание: Это снижает безопасность. Используйте только для полностью доверенных IP-адресов.



New-NetFirewallRule -DisplayName "Full Access Trusted IP" -Direction Inbound -RemoteAddress TRUSTED_IP_ADDRESS -Action Allow -Profile Any

Чтобы отменить полный доступ:



Remove-NetFirewallRule -DisplayName "Full Access Trusted IP"

Использование команд:

  • Замените ADDITIONAL_IP_ADDRESSYOUR_IP_ADDRESSTRUSTED_IP_ADDRESS на реальные IP-адреса
  • Замените номера портов на нужные вам
  • Измените DisplayName на понятное вам название правила
  • Для UDP-протокола замените -Protocol TCP на -Protocol UDP
  • Правило “все порты для IP” создает риск безопасности - используйте осторожно

Команды для экстренного восстановления доступа

Если потеряли доступ к серверу, через консоль выполните:



Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Allow

Вернет политику разрешения по умолчанию (этого достаточно).

Как это работает: Политика “Allow” разрешит все входящие подключения, включая RDP. Ваше правило “RDP Only My IP” останется активным, но перестанет быть единственным способом подключения.

Важно: После восстановления доступа обязательно верните безопасную конфигурацию:



Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block

Управление правилами через графический интерфейс

Если вы предпочитаете графический интерфейс или не помните точное название правила для удаления:

  1. Откройте “Брандмауэр Windows в режиме повышенной безопасности”:

    • Нажмите Win+R → введите wf.msc → Enter
    • Или через “Панель управления” → “Система и безопасность” → “Брандмауэр Windows” → “Дополнительные параметры”
  2. Перейдите в "Правила для входящих подключений"

  3. Найдите нужное правило:

    • Новые правила обычно находятся в верхней части списка
    • Ищите по названию (например, “RDP Only My IP”)
    • Правила отсортированы по алфавиту
  4. Управление правилами:

    • Отключить: Щелкните правой кнопкой → “Отключить правило”
    • Удалить: Щелкните правой кнопкой → “Удалить”
    • Изменить: Двойной клик на правило → вкладка “Область” → изменить IP-адреса

Графический интерфейс удобен для точечного управления правилами и просмотра всех активных настроек брандмауэра.

О компании OLP.kz

Если вам нужен надежный сервер для размещения ваших проектов, OLP.kz предлагает:

  • Серверное оборудование под любые задачи - от начального уровня до enterprise
  • Услуги хостинга с технической поддержкой 24/7
  • Готовые конфигурации серверов с предустановленной Windows Server
  • Консультации по настройке безопасности для ваших серверов

Настройка безопасности сервера - это только первый шаг. Правильный выбор оборудования и надежного хостинг-провайдера не менее важен для стабильной работы ваших проектов.

Контакты: olp.kz