Брандмауер Windows: відкриваємо потрібне
Як відкрити порт для вашого сервісу, обмежити доступ за адресою та переконатися, що правило справді працює, не втративши доступ до сервера.
Оновлено 23 серпня 2026 р.
На VDS із Windows Server брандмауер — це єдиний фільтр між вашими сервісами та інтернетом: IPv4-адреса публічна, і перед машиною немає зовнішнього щита. Тож правило просте: назовні відкрито лише те, що ви відкрили свідомо.
Що відкрито зараз
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
Get-NetFirewallRule -Enabled True -Direction Inbound |
Where-Object Action -eq Allow |
Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort -Unique
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess
Остання команда показує, які порти взагалі прослуховуються. Сервіс, що слухає лише на 127.0.0.1, недоступний ззовні незалежно від правил.
Відкрити порт
Вебсервер:
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Власний сервіс лише для довірених адрес:
New-NetFirewallRule -DisplayName "App 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 `
-RemoteAddress 203.0.113.5,198.51.100.0/24 -Action Allow
Правило для конкретної програми замість порту надійніше, якщо застосунок використовує динамічні порти:
New-NetFirewallRule -DisplayName "MyApp" -Direction Inbound -Program "C:\apps\myapp.exe" -Action Allow
Видалити та переглянути правило:
Remove-NetFirewallRule -DisplayName "App 8080"
Get-NetFirewallRule -DisplayName "App 8080" | Format-List
Що тримати закритим
Ніколи не відкривайте назовні без обмеження за адресами:
| Порт | Сервіс | Чому |
|---|---|---|
| 3389 | RDP | перебір паролів починається вже в перші години, див. Захист RDP |
| 1433 | MS SQL | база даних не повинна бути доступною з інтернету, див. MS SQL Server |
| 5985, 5986 | WinRM | віддалене керування, лише з ваших адрес |
| 445 | SMB | класична ціль масових атак |
Якщо потрібен доступ до бази даних зі свого комп'ютера, не відкривайте 1433; натомість перенаправте порт усередині сесії RDP або налаштуйте VPN.
Перевірка
Те, що порт прослуховується зсередини машини, ще не означає, що він доступний ззовні. Перевірте з іншого хоста:
nc -vz YOUR_ADDRESS 443
curl -I http://YOUR_ADDRESS
Якщо ззовні закрито, але Get-NetTCPConnection показує слухача, проблема в правилі або в мережевому профілі: переконайтеся, що правило створено в активному профілі (зазвичай «Публічна мережа»).
Типові помилки
- Повне вимкнення брандмауера «для діагностики». Машину знайдуть раніше, ніж ви закінчите. Натомість створіть тимчасове правило з обмеженням за адресами.
- Порт відкрили, а про застосунок забули. Багато сервісів за замовчуванням слухають лише на localhost; правило тут ні до чого.
- Заблокували собі доступ до RDP. Після цього зайдіть через вкладку «Консоль» у панелі
/hosting/vds/m/<id>, режим «Екран», і відредагуйте правило звідти. - Створили правило дозволу поверх правила заборони. У Windows заборона завжди перемагає дозвіл — шукайте блокувальне правило з тим самим портом.
Після кожної зміни корисно зберегти знімок конфігурації:
Get-NetFirewallRule -Enabled True | Export-Csv C:\fw.csv. Так ви зрозумієте, що змінилося, коли сервіс раптом перестане відповідати.