Насколько безопасно включить WinRM / PSRemoting на компьютере с выходом в интернет?

насколько безопасно сделать удаленную конечную точку Powershell (также называемую PSRemoting) рабочего сервера доступной из интернета?


Мы не банк и все такое, но сервер хранит конфиденциальные корпоративные данные.

Я намерен обеспечить его:

  • использование IP-фильтрации только для приема соединений из нашего собственного диапазона публичных IP, так что мы можем управлять им из другой части нашей сети.
  • конечная точка принимает только SSL соединения
  • разрешать только соединения от ограниченного набора пользователей со сложным паролем (~150 бит энтропии)
  • использование PSSessionConfiguration, который имеет LanguageMode значение NoLanguage, так что только скрипты могут быть выполнены
  • требуется, чтобы все сценарии Powershell, выполняемые таким образом, были подписаны (Set-ExecutionPolicy RemoteSigned)

С другой стороны:

  • удаленные скрипты будут выполняться локальным администратором аккаунт
  • без ограничений на командлеты / модули, которые он может вызывать.
  • Я подозреваю, что служба WinRM (которая делает возможным PSRemoting) достаточно безопасна для доступа к интернету (Azure VM имеют это по умолчанию), но у меня нет доказательств этого.

Итак, я думаю, мой вопрос: это "безопасно", или есть векторы атаки, которые мне здесь не хватает?

кстати, у меня есть большая часть моей информации из бесплатной электронной книги секреты Powershell remoting.

23
задан Astrotrain
30.04.2023 2:05 Количество просмотров материала 2722
Распечатать страницу

2 ответа

вообще говоря, вы должны никогда откройте что-нибудь из интернета на рабочем сервере, если это не служба, которую вы хотите, чтобы общественность использовать. Если машина-сервер, то только порт 80 должен быть открыт для него. Если никакие другие порты не открыты через межсетевой экран к нему, то нет никакого способа для атакующего войти.

VPN было бы самым лучшим разрешением, требуя, что потребители authenticate после этого достигает систем продукций только от внутри. VPN является гораздо более гибким и безопасным, чем любой другой метод.

1
отвечен Keltari 2023-05-01 09:53

несколько вещей, которые могут помочь:

  1. добавьте своих клиентов в TrustedHosts список.

    Set-Item wsman:\localhost\Client\TrustedHosts -Value Server01.Domain01.Fabrikam.com
    
  2. создайте сценарий сканирования журнала, который извлекает плохие IP-адреса из ваших журналов и создает правила брандмауэра для блокировки этих IP-адресов. (Извините мою технику написания PS: -))

    получить содержимое файла, которое имеет неверный IP указан в журнале. Я создал скрипт, который сканировал мой собственный файл веб-журнала и находил клиентов прощупываю свой веб-сервер, так что я уронил их IP в badips.txt-файл.

    $ips = get-content c:\powershell\utilities\badips.txt
    

    теперь я создаю правило брандмауэра, чтобы заблокировать плохой IP-адрес

    foreach ($i in $ips){
    [string]$rulename = "disallow-" + $i
    [string]$remoteip = $i + "/32"
    [string]$description = $i
    

    получение списка плохих IP-адресов, у которых уже есть правило блокировки

    $processed = get-content c:\powershell\utilities\processedips.txt
    

    проверка в списке, чтобы увидеть, если IP уже заблокирован

    $count = ($processed|select-string $i).count
    

    если это новый IP-адрес, создайте правило брандмауэра и добавьте IP в текст обработанного списка файл

    if ($count -lt 1){
    invoke-expression ("netsh advfirewall firewall add rule name=" + $rulename + " action=block enable=yes
    localip=any dir=in profile=public remoteip=" + $remoteip + " description=" + $description)
    $i|add-content c:\powershell\utilities\processedips.txt
    }}
    

это на самом деле не ответить на ваш вопрос о том, как защищен ваш сервер будет, но дает вам еще два элемента, чтобы ограничить потенциальные угрозы.

1
отвечен UsPeoples 2023-05-01 12:10

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх