Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Alt26.Alt16. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Server2019: Доступ RDP только по FQDN

Делаем так, чтобы твой Windows Server 2019 принимал RDP-подключения только по имени (FQDN), а по IP — вообще не работал.

►1) Импортируй сертификат

  • Возьми свой __8888_biz.crt + приватный ключ (обычно это .key или уже готовый .pfx).
  • Импортируй в Personal (Личное) → Локальный компьютер.
  • Убедись, что CN или SAN = rdp.8888.biz.

Или через MMC:

  • Нажми Win + R → введи mmc.
  • Файл → Добавить/удалить оснастку → Certificates → выбери Учётная запись компьютера → Далее → Локальный компьютер → Готово.
  • В левой панели: Certificates (Local Computer) → Personal → Certificates.
  • ПКМ → All Tasks → Import → выбери свой .pfx, введи пароль → положи в Personal (Личные).

!!!Убедись, что рядом с сертификатом есть значок 🔑(приватный ключ).!!!

►2) Назначь сертификат для RDP только до версии Server2012

Через GUI (gpedit.msc):

Выбери свой rdp.8888.biz

  • При подключении по rdp.8888.biz — всё ок, зелёный сертификат.
  • При подключении по IP — клиент получит жёсткое предупреждение “Имя в сертификате не совпадает”.

►3) Назначь сертификат для RDP только версия server2016 и далее

Найди отпечаток (Thumbprint):

  • В MMC дважды кликни по сертификату.
  • Вкладка Details (Состав) → пролистай вниз до поля Thumbprint (Отпечаток).
  • Скопируй строку (обычно это что-то вроде ab cd ef …).
  • Удали все пробелы → должно получиться в одну строку (например: AB12CD34EF56…).

Привяжи сертификат к RDP:

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

или через реестр Берёшь Thumbprint и Прописываешь его в ключе реестра:

The Remote Desktop Host Services runs under the NETWORK SERVICE account. Therefore, you have to set the system access control list (SACL) of the key file that is used by RDS to include NETWORK SERVICE together with the Read permissions.

To change the permissions, follow these steps on the Certificates snap-in for the local computer:

  • Select Start, select Run, type mmc, and then select OK.
  • On the File menu, select Add/Remove Snap-in.
  • In the Add or Remove Snap-ins dialog box, on the Available snap-ins list, select Certificates, and then select Add.
  • In the Certificates snap-in dialog box, select Computer account, and then select Next.
  • In the Select Computer dialog box, select Local computer: (the computer this console is running on), and then select Finish.
  • In the Add or Remove Snap-ins dialog box, select OK.
  • In the Certificates snap-in, on the console tree, expand Certificates (Local Computer), expand Personal, and then select the SSL certificate that you want to use.
  • Right-click the certificate, select All Tasks, and then select Manage Private Keys.
  • In the Permissions dialog box, select Add, type NETWORK SERVICE, select OK, select Read under the Allow check box, and then select OK.

►4) Добавь Firewall-правила

Чтобы вообще не пускать по IP, кроме того, что совпадает с DNS-именем:

►5) Итоговое поведение:

  • Подключение по rdp.8283.biz → Работает.
  • Подключение по IP (например, 192.168.x.x или внешний IP) → Блокируется firewall.
  • Подключение по любому другому имени → Не сработает, так как сертификат не совпадает.

Если у тебя сервер на динамическом IP (меняется при перезапуске), можно прикрутить скрипт на планировщик, чтобы он раз в час обновлял firewall по актуальному DNS-резолву.

Проверки / полезные команды:

Посмотреть созданные правила:

Убедиться, что правило Allow содержит нужный IP:

Удалить правила (если нужно откатить):

Настройка в pfSense (через HAProxy)

►1) Установка

System → Package Manager → Available Packages → ставим haproxy-devel.

►2) Frontend

Name: RDP-FQDN
Listen address: WAN:3389
Type: TCP (SSL offloading можно не включать, если сертификат привязан на самом Windows-сервере).

►3)ACL (Access Control List)

Добавить ACL типа SNI TLS Host matches
Expression: rdp.8283.biz
Action: Use backend RDP-SERVER если ACL true.

►4) Backend

Name: RDP-SERVER
Server: 192.168.1.10:3389 (IP твоего Windows Server 2019).

►5) Default action (если ACL не совпал)

Reject.
Таким образом, при заходе по IP — подключения не будет.

►6) Проверка:

Подключаешься mstsc.exe → rdp.8283.biz → HAProxy принимает → проксирует → сервер видит только FQDN-трафик.
Пробуешь mstsc.exe → IP → HAProxy отбрасывает.

Готово. Подключение работает только по FQDN.

Сертификат можно ставить либо:

  • На Windows Server (как делал ранее, CN=FQDN).
  • Или прямо в HAProxy (тогда Windows видит уже внутренний чистый RDP).

Вариант через HAProxy надёжнее, чем Windows Firewall, и проще в управлении (IP можно менять, имя останется).

Leave a Reply