Обеспечение безопасности терминального сервера (RDP) на базе операционной системы Windows Server 2012 R2 — это одна из первоочередных задач любого системного администратора. Оставленный открытым во внешнюю сеть порт 3389 мгновенно становится мишенью для автоматизированных ботнетов, которые осуществляют непрерывный подбор паролей (брутфорс) и пытаются эксплуатировать известные уязвимости системы. В рамках данной статьи мы подробно разберем, как правильно ограничить доступ к серверу по RDP, используя исключительно встроенные инструменты операционной системы, исправим типичные ошибки настройки брандмауэра и рассмотрим альтернативный, более безопасный вариант организации удаленной работы через VPN.
При попытке ограничить доступ к RDP с помощью встроенного брандмауэра Windows (Windows Firewall) администраторы часто совершают классическую ошибку: создают новое запрещающее правило для всех IP-адресов и параллельно создают разрешающее правило для нескольких доверенных хостов. В результате сервер полностью теряет связь с сетью.
Давайте проанализируем логику работы брандмауэра Windows, чтобы понять, почему так происходит:
Для корректной настройки фильтрации нам необходимо отказаться от создания новых правил блокировки и вместо этого точечно настроить область действия уже существующих системных правил.
Рассмотрим по шагам правильный алгоритм настройки брандмауэра, который позволит оставить доступ по RDP только для двух внешних статических IP-адресов (например, домашнего адреса директора и системного администратора) и всей локальной офисной сети.
Шаг 1. Подготовка информации. Перед началом настройки обязательно соберите точные IP-адреса, которым будет разрешен доступ. Вам понадобятся:
203.0.113.50).203.0.113.100).192.168.1.0/24), чтобы сотрудники внутри офиса не потеряли доступ к серверу.Шаг 2. Открытие оснастки брандмауэра. Перейдем в меню «Пуск», введем в поиске или окне «Выполнить» (сочетание клавиш Win+R) команду wf.msc и нажмем Enter. Откроется окно «Брандмауэр Windows в режиме повышенной безопасности».
Шаг 3. Поиск системных правил RDP. В левой колонке выберем раздел «Правила для входящих подключений» (Inbound Rules). Отсортируем список по имени и найдем группу правил, отвечающих за удаленный рабочий стол. Нам необходимы следующие правила:
Шаг 4. Настройка области действия (Scope). Дважды щелкнем по правилу для TCP-входа, чтобы открыть его свойства. Перейдем на вкладку «Область» (Scope). Нас интересует нижний блок настроек — «Удаленный IP-адрес» (Remote IP address). По умолчанию там установлен переключатель «Любой IP-адрес».
Переставим переключатель в положение «Указанные IP-адреса» (These IP addresses) и нажмем кнопку «Добавить». Поочередно внесем все наши доверенные адреса:
203.0.113.50.203.0.113.100.192.168.1.0/24 (или выберем «Диапазон» и укажем от 192.168.1.1 до 192.168.1.254). Это критически важный шаг! Если забыть добавить локальную подсеть, брандмауэр заблокирует все внутренние компьютеры офиса.Нажмем кнопку «ОК» для сохранения списка адресов, а затем «Применить».
Шаг 5. Повторение настроек для UDP. Выполним точно такие же действия для второго правила (UDP-вход), прописав туда абсолютно аналогичный список IP-адресов.
Шаг 6. Отключение лишних правил. Проанализируем список входящих правил брандмауэра. Если ранее вы создавали какие-либо сторонние самодельные правила для порта 3389 (как разрешающие, так и блокирующие), их необходимо полностью удалить или отключить, чтобы они не нарушали настроенную нами логику.
После применения этих настроек брандмауэр начнет работать по следующему принципу: входящие пакеты на порт RDP будут приниматься только в том случае, если их отправителем является один из явно указанных нами IP-адресов. Любые другие попытки подключения из внешней сети будут отбрасываться по умолчанию.
Для автоматизации этой задачи на нескольких серверах системные администраторы могут воспользоваться командной строкой PowerShell. Напишем пример скрипта, который выполняет те же действия за пару секунд:
$AllowedIPs = @("192.168.1.0/24", "203.0.113.50", "203.0.113.100")
Set-NetFirewallRule -DisplayName "Дистанционное управление рабочим столом - пользовательский режим (TCP-вход)" -RemoteAddress $AllowedIPs
Set-NetFirewallRule -DisplayName "Дистанционное управление рабочим столом - пользовательский режим (UDP-вход)" -RemoteAddress $AllowedIPs
Хотя ограничение по IP-адресам в брандмауэре значительно повышает уровень безопасности, это решение имеет существенный минус: у удаленного сотрудника (директора) обязательно должен быть постоянный статический IP-адрес от интернет-провайдера. Если адрес динамический и меняется при каждом перезапуске домашнего роутера, доступ будет регулярно пропадать.
Более профессиональным и безопасным подходом является организация шифрованного VPN-туннеля. В этом случае порт RDP вообще закрывается из внешней сети, а удаленный пользователь сначала подключается к безопасной виртуальной частной сети (VPN), после чего заходит на сервер по его внутреннему локальному IP-адресу. Разберем, как поднять VPN-сервер стандартной службой маршрутизации Windows Server 2012 R2 без дополнительных затрат на стороннее ПО.
Для реализации этой схемы мы будем использовать протокол L2TP/IPsec с общим ключом (Pre-Shared Key), так как он поддерживается встроенными клиентами Windows, Android и iOS «из коробки».
Откроем «Диспетчер серверов» (Server Manager), нажмем «Добавить роли и компоненты» и выберем роль «Удаленный доступ» (Remote Access). На этапе выбора служб ролей обязательно отметим флажком пункт «DirectAccess и VPN (RAS)». Дождемся завершения установки и перезагрузим сервер, если это потребуется.
Откроем консоль управления «Маршрутизация и удаленный доступ» (Routing and Remote Access) через меню администрирования. Щелкнем правой кнопкой мыши по имени нашего сервера и выберем пункт «Настроить и включить маршрутизацию и удаленный доступ».
В мастере настройки выберем пункт «Особая конфигурация» (Custom Configuration), а на следующем шаге отметим флажком пункт «Доступ к виртуальной частной сети (VPN)». Запустим службу.
После запуска службы щелкнем правой кнопкой мыши по имени сервера в консоли RRAS и перейдем в его свойства:
192.168.1.200 по 192.168.1.210).Чтобы конкретный пользователь мог подключиться к созданному VPN-серверу, ему нужно предоставить соответствующее право:
Поскольку наш Windows Server находится за роутером провайдера в локальной сети, нам необходимо перенаправить входящий VPN-трафик из интернета на локальный IP-адрес сервера (например, 192.168.1.10). Зайдем в веб-интерфейс роутера Ростелекома, найдем раздел «Переадресация портов» (Port Forwarding / NAT) и создадим правила для проброса следующих портов:
После выполнения этих шагов директор сможет создать на своем домашнем компьютере стандартное подключение VPN (L2TP/IPsec), указать внешний белый IP-адрес офиса, общий ключ безопасности и свои учетные данные Windows. После успешного подключения к VPN сервер будет доступен по локальному адресу так, как будто компьютер директора физически находится внутри офиса.
Для обеспечения максимального уровня защиты сервера, помимо сетевых ограничений брандмауэра и настройки VPN, настоятельно рекомендуется выполнить комплекс превентивных мер безопасности:
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber.
secpol.msc), перейдем по пути «Политики учетных записей» -> «Политика блокировки учетной записи». Установим значение «Пороговое значение блокировки» равным 5 попыткам, а время блокировки — 15–30 минут. Это сделает перебор паролей злоумышленниками технически невозможным.Реализация предложенных шагов позволит вам надежно защитить Windows Server 2012 R2 от несанкционированного доступа из внешней сети, сохранив при этом удобство работы и стабильность подключения для доверенных сотрудников.