*КУБ — полный комплекс облачных услуг!

Windows VPS: как настроить брандмауэр Windows Server

Windows VPS
Windows VPS: как настроить брандмауэр Windows Server

Проверяем профили и включаем брандмауэр

В брандмауэре Windows есть три профиля: Domain / Private / Public. На VPS чаще всего активен профиль Public. Безопасная настройка — входящий трафик: Block, исходящий трафик: Allow.

GUI: «Windows Defender Firewall with Advanced Security» → главный экран профилей.

Перевіряємо профілі

PowerShell:

Get-NetFirewallProfile | Select Name,Enabled,DefaultInboundAction,DefaultOutboundAction
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True

Обеспечиваем безопасность RDP (3389/TCP)

RDP нужен для администрирования Windows VPS, но открывать его «всем» нельзя. Схема проста: временно включаем штатные правила, создаем собственное узкое правило по IP-источнику, затем отключаем «широкие».

GUI (мастер создания нового правила):

1. Inbound Rules → New Rule…Port

Робимо RDP безпечним

2. TCP, Specific local ports: 3389

TCP

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

Allow the connection

После создания перейдите в Properties → Scope и укажите Remote IP addresses (ваш статический IP/подсеть VPN). Это залог безопасности.

PowerShell:

# На перше підключення: увімкнемо штатну групу
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

# Вузьке правило тільки з вашої IP
New-NetFirewallRule -DisplayName "RDP inbound (admin IP only)" `
  -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow `
  -RemoteAddress 203.0.113.50 -Profile Any

# Після перевірки — вимикаємо «широкі» правила RDP
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"

Открываем только то, что действительно нужно

IIS/HTTPS

New-NetFirewallRule -DisplayName "HTTP (80)"  -Direction Inbound -Protocol TCP -LocalPort 80  -Action Allow
New-NetFirewallRule -DisplayName "HTTPS (443)" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

MS SQL (если используется)

New-NetFirewallRule -DisplayName "MSSQL (1433)" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow

(При доступе из ограниченных сетей — задавайте RemoteAddress и для этих правил.)

Включаем логи (это очень помогает при отладке)

Записываем разрешенные и заблокированные соединения в pfirewall.log.

GUI:

Включаємо логи

PowerShell:

Set-NetFirewallProfile -Profile Domain,Private,Public `
-LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" `
-LogMaxSizeKilobytes 32768 -LogAllowed True -LogBlocked True

Быстрая проверка извне

С клиентского ПК проверьте, доступны ли нужные порты:

# RDP
Test-NetConnection vps.example.ru -Port 3389
# Веб
Test-NetConnection vps.example.ru -Port 80
Test-NetConnection vps.example.ru -Port 443
# SQL (якщо потрібно)
Test-NetConnection vps.example.ru -Port 1433

TcpTestSucceeded : True — правило работает, порт доступен. Если False — смотрим профиль правила, Scope (IP-источник) и внешние ACL у провайдера.

Небольшой чек-лист ошибок

  • Оставили RDP «для всех»: добавьте RemoteAddress и отключите штатные широкие правила.
  • Неправильный профиль: правило висит на Private, а сервер — в Public.
  • Нет логов: включите журнал — иначе «невидимые» блокировки сложно отследить.
  • Забыли о внешнем брандмауэре/SG провайдера Windows VPS: проверьте параллельно.
Menu