Как безопасно использовать Remote PowerShell для администрирования серверов

Remote PowerShell, чаще всего PowerShell Remoting через WinRM, нужен не для красоты: он позволяет запускать команды на сервере удалённо, собирать данные, менять настройки и автоматизировать рутину. Но это тот инструмент, который одновременно экономит часы работы и может быстро превратиться в широкую дверь для перемещения внутри сети, если включить его “на всех серверах” без правил доступа.

Главное правило: Remote PowerShell должен быть доступен только тем, кому он действительно нужен, только с нужных рабочих мест, только на нужных серверах и с понятным уровнем прав.

Что именно вы включаете, когда говорите “Remote PowerShell”

В Windows-среде под Remote PowerShell обычно понимают PowerShell Remoting через WinRM. На сервере работает служба WinRM, клиент подключается к ней и выполняет команды. По умолчанию используется HTTP-слушатель на порту 5985. Для HTTPS используется порт 5986.

Опасность не в самом PowerShell. Опасность в том, что удалённая команда выполняется под вашей учётной записью. Если вы подключились доменным администратором, сервер получил именно доменного администратора. Если доступ открыт из пользовательской подсети или из интернета, проблема уже не в настройке WinRM, а в архитектуре доступа.

Для разовых задач обычно хватает Invoke-Command. Для интерактивного разбора проблемы можно использовать Enter-PSSession. Для серии действий на одном сервере создают сессию через New-PSSession и закрывают её после работы.

Test-WSMan -ComputerName SRV-DB-01

Invoke-Command -ComputerName SRV-DB-01 -ScriptBlock { Get-Service wuauserv }

$s = New-PSSession -ComputerName SRV-APP-01 -Use

Оцените статью
PEFile — Безопасность и технологии простым языком