Поделиться через


Что такое элемент управления SSH Posture для Windows?

SSH Posture Control позволяет проводить аудит и настраивать состояние безопасности сервера SSH в Windows Server 2019, 2022 и 2025. SSH Posture Control легко интегрируется со службами управления Azure (политика, конфигурация компьютера), чтобы вы могли:

  • Обеспечение соответствия стандартам sshd в отрасли или организации
  • Уменьшение области атак на основе удаленного управления на основе SSHD
  • Обеспечение согласованной настройки sshd в вашем флоте для обеспечения безопасности и производительности

Снимок экрана: список соответствующих проверок SSH

Чтобы помочь вам продемонстрировать соответствие аудиторам (и помочь вам принять меры, где это необходимо), каждая проверка соответствия включает доказательства в поле "Причины ", указывающее, как было определено соответствие или несоответствие.

Можно настроить параметры sshd (номер порта, разрешенные группы и т. д.) или использовать значения политики по умолчанию.

Документация по началу работы

  • краткое руководство. Чтобы щелкнуть практические инструкции, см. краткое руководство. Применение SSH Posture Control на тестовом компьютере.
  • Обзор и справочные материалы. Для получения концептуальных сведений, ссылок и часто задаваемых вопросов см. в этой статье.

Выбор поведения аудита только для аудита и настройки

При назначении политики SSH Posture Control можно выбрать поведение только аудита (ака "Аудит") или настроить (ака "Настройка") (ака "Настройка").

Определение политики эффект Политика Azure Заметки о том, что ожидать
Поведение только для аудита **Audit** SSH Posture Control on Windows machines auditIfNotExists Политика включает более строгие параметры по сравнению с множеством популярных системных образов. Например, отказ в доступе к корневому SSH. Соответственно, ожидается увидеть несоответствующие государства сообщили.
Поведение аудита и настройки **Configure** SSH Posture Control on Windows machines deployIfNotExists Как описано выше, вы можете увидеть несоответствующие состояния, сообщаемые первоначально. Впоследствии компьютеры будут перенастроены для соответствия политике, что приведет к последующим состояниям соответствия требованиям .

Для существующих компьютеров администраторы обычно начинают с поведения только аудита, чтобы определить существующее состояние и обнаружить зависимости, такие как учетные записи, разрешенные для автоматизации систем. После сравнения существующего парка с параметрами управления постурами SSH вы решите, какие параметры управления posture SSH необходимо настроить. После этого анализа и планирования вы перейдете к поведению аудита и настройки (с безопасными методами развертывания, такими как кольца).

Для сценариев зеленых полей или удаленных тестовых компьютеров можно пропустить этот анализ и перейти непосредственно к поведению аудита и настройки, начиная со свежих с сильными параметрами управления постурами SSH.

Осторожность

Прежде чем настраивать все компьютеры, необходимо тщательно проверить новую конфигурацию. Вы можете случайно потерять доступ к компьютерам.

Примеры случайной блокировки себя включают:

  • Примененные параметры авторизации (сочетание allowUsers,denyGroupsи т. д.) не разрешают необходимые имена входа.
  • Настройка port sshd блокируется другими элементами управления в вашей среде (правила брандмауэра узла, правила сетевого брандмауэра и т. д.)
    • Чтобы избежать превышения границ группы предприятия, SSH Posture Control настроен только sshd. В настоящее время он не пытается изменить правила брандмауэра на компьютере и т. д. для размещения настроенного порта sshd. Если вы хотите обсудить эти сценарии с нами, обратитесь к нам (см. дополнительные ресурсы ниже).

Область управления постуром SSH: правила, значения по умолчанию и настройка

В следующей таблице перечислены элементы, которые можно проверить или настроить с помощью элемента управления posture SSH. Каждое из них называется правилом.

Большинство правил можно задать пользовательские значения с помощью параметров назначения политики для аудита или настройки и аудита. Например, если стандарт в организации использует порт 1111 (а не 22) для SSHD, необходимо задать соответствующий параметр в назначении политики. Эти параметры имеют идентификаторы, включенные в таблицу ниже. Как правило, короткое имя параметра используется программным способом (например, с az policy assignment create --params ...), а более длинное отображаемое имя параметра используется в рабочих процессах портала Azure.

При настройке значений необходимо обеспечить значения, совместимые с sshd. Например, allowGroups принимает разделенный пробелом список шаблонов имен групп. Дополнительные сведения см. на странице sshd_config "Человек". Справочник по sshd_config также полезен для понимания других действий sshd, таких как разрешение изапрет списков.

Замечание

Чтобы сохранить макет таблицы, некоторые значения ячеек были перемещены в сноски под таблицей.

Имя правила Значение по умолчанию Имя параметра Отображаемое имя параметра
Убедитесь, что разрешенные группы для SSH настроены <сноска 1> AllowGroups Разрешенные группы
Убедитесь, что разрешенные пользователи для доступа К SSH настроены "" AllowUsers Разрешенные пользователи
Убедитесь, что метод проверки подлинности для SSH настроен любой AuthenticationMethods Методы аутентификации
Убедитесь, что настроены запрещенные группы для SSH "" DenyGroups Запрещенные группы
Убедитесь, что запрещенные пользователи для SSH настроены "" DenyUsers Запрещенные пользователи
Убедитесь, что код объекта, используемый при настройке сообщений ведения журнала для SSH LOCAL0 SyslogFacility Средство ведения журнала системы
Убедитесь, что настроен SSH MaxAuthTries 6 MaxAuthTries Максимальное количество попыток проверки подлинности
Убедитесь, что SSH HostKey настроен <сноска 2> HostKey Ключ узла
Убедитесь, что авторизованный файл ключа для SSH настроен <сноска 3> AuthorizedKeysFile Авторизованный файл ключа
Убедитесь, что настроена GSSApiAuthentication для SSH неправда GSSAPIAuthentication Проверка подлинности GSSAPI
Убедитесь, что баннер предупреждения SSH настроен <сноска 4> Banner Знамя
Убедитесь, что для SSH используются соответствующие шифры aes128-ctr,aes192-ctr,aes256-ctr Ciphers Разрешенные шифры
Убедитесь, что используются только утвержденные алгоритмы MAC hmac-sha2-256 MACs Алгоритмы MAC
Убедитесь, что настроен SSH ClientAliveCountMax 0 ClientAliveCountMax Количество клиентских живых сообщений
Убедитесь, что порт SSH настроен двадцать два Port Порт
Убедитесь, что SSH LoginGraceTime настроен шестьдесят LoginGraceTime Время отсрочки входа
Убедитесь, что настроен SSH ClientAliveInterval 3600 ClientAliveInterval Активный интервал клиента
Убедитесь, что настроен SSH PermitEmptyPasswords неправда PermitEmptyPasswords Пустое разрешение на пароль

Сноски таблицы:

  1. administrators "openssh users"

  2. __PROGRAMDATA__/ssh/ssh_host_ecdsa_key

  3. %programdata%/ssh/administrators_authorized_keys

  4. #######################################################################/r/n/r/nAuthorized access only!/r/n/r/nIf you are not authorized to access or use this system, disconnect now!/r/n/r/n#######################################################################/r/n

    1. Примечание. Это отображается для конечных пользователей следующим образом:
    #######################################################################
    
    Authorized access only!
    
    If you are not authorized to access or use this system, disconnect now!
    
    #######################################################################
    

Дополнительные параметры политики (не sshd)

Эти дополнительные параметры политики доступны во время назначения политики. Они влияют на поведение назначения политики Azure, а не параметры sshd на компьютерах.

Имя Описание По умолчанию
Включение подключенных серверов Arc Выбрав этот параметр, вы соглашаетесь взиматься ежемесячно на подключенный компьютер Arc. ЛОЖЬ
Эффект Включение или отключение выполнения этой политики <Зависит от выбора только аудита и настройки поведения>

Определения политик? Назначения политик? Гостевые назначения? Конфигурация компьютера? Как все это вписывается вместе?

Чтобы приступить к работе с SSH Posture Control, основное действие — создать назначение политики. Назначение политики связывает определение политики (например, "Audit SSH Posture Control for Windows") с областью (например, "my_factory_3_resource_group").

При использовании системы вы столкнетесь с дополнительными типами ресурсов и терминологией, как описано ниже.

Схема, показывающая, как назначение политики связывает компьютеры со службой конфигурации компьютера с помощью гостевых назначений

Описание
Определение политики В службе политик абстрактные данные, описывающие кластер доступных действий аудита и /или конфигурации. Например, "Audit SSH Posture Control на компьютерах Windows".
Назначение политики Связывает абстрактное определение политики с конкретной областью, например группу ресурсов. Назначение политики может включать параметры и другие свойства, относящиеся к назначению.
Конфигурация компьютера Служба Azure и агенты, обрабатывающие аудит и настройку конфигурации на уровне ОС.
Назначение гостей Ресурс, который выступает в качестве трехсторонняя связь между назначением политики, компьютером и службой конфигурации компьютера. Политика создает и отслеживает ресурсы гостевого назначения по мере необходимости.
Дополнительные сведения о терминологии "гостевой" и "machine" см. в разделе "Почему я вижу термины "Гостевая конфигурация" и "Автоуправляемость" в местах?
Машина Компьютер с поддержкой Arc или виртуальная машина Azure.

О совместимости (реализации SSH-сервера и т. д.)

SSH Posture Control предназначен для основного сценария Windows Server общего назначения одного длительного экземпляра SSH-сервера:

  • жизненный цикл которого управляется системой инициализации, такой как Service Control Manager
  • поведение, управляемое sshd_config файлом, в соответствии с поведением sshd OpenSSH
  • чья эффективная конфигурация или состояние отображается выходными данными, согласованными с поведением sshd -T sshd OpenSSH

Для всех поддерживаемых OS (см. ниже), это вариант использования сервера SSH по умолчанию.

В принципе, компьютер может иметь любое количество экземпляров сервера SSH, работающих с различными временем существования, на основе любого количества баз кода и их конфигурации из любого количества мест (файлы конфигурации, аргументы командной строки, параметры времени компиляции и т. д.). В настоящее время такие случаи недоступны для SSH Posture Control. Если вы заинтересованы в таких случаях в будущем, обратитесь к нам , чтобы обсудить.

SSH Posture Control предназначен для использования на компьютерах с Windows Server 2019, 2022 и 2025, поддерживаемых Политикой Azure и конфигурацией компьютера.

Совместимость с любым определенным компьютером во время выполнения не может быть гарантирована, так как системные администраторы и построители образов могут удалять компоненты из ОС, создавать файловые системы только для чтения и т. д.

Совместимость с директивами sshd_config Include

SSH Posture Control пытается разместить и использовать Include директивы в sshd_config следующим образом:

  • Для действий аудита и чтения: следует использовать sshd -T, чтобы отразить чистую конфигурацию с точки зрения sshd, учитывая любые компоненты.
  • Для действий настройки и записи:
    • Связывание нового элемента управления posture SSH с sshd_config (как включение). Затем поместите все записи в связанный файл элемента управления posture SSH. Это повышает гигиену системы и трассировку изменений системы.

Совместимость с директивами sshd_config Match

SSH Posture Control предназначен для аудита и настройки поведения основного SSHD. Он не пытается взаимодействовать с условными Match блоками (если есть), которые могут применять различные конфигурации sshd к определенным группам населения.

Совместимость с несколькими значениями sshd_config

Элемент управления posture SSH не поддерживает использование нескольких значений для правила "порт", т. е. установка правила "порт" на 22 и 33. Это правило должно быть настроено с одним значением, чтобы обеспечить правильную функциональность и соответствие для аудита и настройки сценариев. Другие правила, такие как разрешить или запретить пользователям и шифрам, могут иметь несколько значений, если они добавляются в одну строку.

Пример:

  • Существующий файл sshd_config включает строку "port:22" и другую строку "port:33".
  • Политика аудита SSH используется для аудита ожидаемого значения порта 33.
  • Результат: аудит может пройти или завершиться непредсказуемо.
  • Рекомендация. Не используйте эту функцию с такими сценариями, как эти сценарии.

Как запросить результаты программным способом?

С помощью запросов Azure Resource Graph (ARG) можно интегрировать данные назначения и состояния в собственные рабочие процессы. Эти примеры используются Search-AzGraph в PowerShell для выполнения запроса ARG, но PowerShell не требуется. Вы можете использовать ARG из многих точек входа, включая портал Azure, Azure CLI, вызовы REST и т. д.

  1. На максимальной высоте суммирования можно получить количество компьютеров на контейнер состояния соответствия. Рассмотрим пример.

    $machineCountsQuery = @'
    // SSH machine counts by compliance status
    guestconfigurationresources
    | where name contains "SecureShell"
    | extend complianceStatus = tostring(properties.complianceStatus)
    | summarize machineCount = count() by complianceStatus
    '@
    
    Search-AzGraph -Query $machineCountsQuery
    
    <#
    Sample output from an environment with two machines:
    
    complianceStatus machineCount
    ---------------- ------------
    Pending                     1
    Compliant                   1
    #>
    
  2. Чтобы выполнить детализацию, чтобы увидеть общее состояние соответствия по компьютеру, можно использовать следующее:

    $machinePerRowQuery = @'
    // SSH machine level compliance
    guestconfigurationresources
    | where name contains "SecureShell"
    | project 
     machine = split(properties.targetResourceId,'/')[-1],
     complianceStatus = properties.complianceStatus,
     lastComplianceStatusChecked = properties.lastComplianceStatusChecked
    '@
    
    Search-AzGraph -Query $machinePerRowQuery
    
    <#
    Sample output:
    
    machine     complianceStatus lastComplianceStatusChecked
    -------     ---------------- ---------------------------
    sshdemovm01 Compliant        2/15/2024 11:07:21 PM
    sshdemovm02 Pending          1/1/0001 12:00:00 AM
    #>
    
  3. Для детализации до сведений о параметрах можно использовать следующее:

    $settingPerRowQuery = @'
    // SSH rule level detail
    GuestConfigurationResources
    | where name contains "SecureShell"
    | project report = properties.latestAssignmentReport,
     machine = split(properties.targetResourceId,'/')[-1],
     lastComplianceStatusChecked=properties.lastComplianceStatusChecked
    | mv-expand report.resources
    | project machine,
     rule = report_resources.resourceId,
     ruleComplianceStatus = report_resources.complianceStatus,
     ruleComplianceReason = report_resources.reasons[0].phrase,
     lastComplianceStatusChecked
    '@
    
    Search-AzGraph $settingPerRowQuery
    
    <#
    Sample output:
    
    machine     rule                                                  ruleComplianceStatus     ruleComplianceReason
    -------     ---------------                                                  ------               ------
    sshdemovm01 Ensure that the allowed groups for SSH are configured            true            ["administrators","openssh users"] contains the expected values: ["administrators","openssh users"]
    sshdemovm01 Ensure that appropriate ciphers are used for SSH                 true            ["aes128-ctr","aes192-ctr","aes256-ctr"] contains the expected values: ["aes128-ctr","aes192-ctr","aes256-ctr"]
    sshdemovm01 Ensure that the authorized key file for SSH is configured        true            "%programdata%/ssh/administrators_authorized_keys" is equal to "%programdata%/ssh/administrators_authorized_keys"
    sshdemovm01 Ensure that the SSH ClientAliveInterval is configured            true            3600 is equal to 3600
    sshdemovm01 Ensure that the SSH PermitEmptyPasswords is configured           true            false is equal to false
    sshdemovm01 Ensure that the SSH port is configured                           true            22 is equal to 22
    sshdemovm01 Ensure that the SSH MaxAuthTries is configured                   true            6 is equal to 6
    sshdemovm01 Ensure that only approved MAC algorithms are used                true            ["hmac-sha2-256"] contains the expected values: ["hmac-sha2-256"]
    sshdemovm01 Ensure that the SSH HostKey is configured                        true            "__PROGRAMDATA__/ssh/ssh_host_ecdsa_key" is equal to "__PROGRAMDATA__/ssh/ssh_host_ecdsa_key"
    sshdemovm01 Ensure that the SSH LoginGraceTime is configured                 true            60 is equal to 60
    #>
    

Почему в местах отображаются термины "Гостевая конфигурация" и "Автоуправляемость"?

Служба конфигурации компьютера также известна как гостевая конфигурация и в качестве конфигурации автоуправляемого компьютера. Эти имена могут возникнуть при взаимодействии со службами и документацией. Рассмотрим пример.

  • В примерах запросов Azure Resource Graph в этой статье называется guestconfigurationresourcesтаблица данных.
  • На портале Azure полезное представление для наблюдения результатов называется "Гостевые назначения".
  • На портале Azure при применении соответствующего расширения виртуальной машины для включения конфигурации компьютера заголовок расширения — automanage Machine Configuration.

Для целей SSH Posture Control нет значимых различий между "гостевым" и "компьютером". Доступны компьютеры с поддержкой Arc и виртуальные машины Azure.

Каковы идентификаторы встроенных определений политик?

В некоторых случаях, например создание назначений политик с помощью Azure CLI, может быть полезно или необходимо ссылаться на определение политики по идентификатору, а не отображаемого имени.

отображаемое имя идентификатор
Аудит контроля состояния SSH на компьютерах с Windows /providers/Microsoft.Authorization/policyDefinitions/fe4e11ff-f561-4d4a-877c-256cc0b6470e
Настройка контроля состояния SSH на компьютерах с Windows /providers/Microsoft.Authorization/policyDefinitions/42830b63-79aa-4ea5-85dc-6baa719d7d7c
  • Чтобы получить поддержку с проблемами и т. д., обратитесь в службу поддержки Майкрософт
  • Чтобы предоставить отзыв, обсудить запросы на функции и т. д., обратитесь к [email protected]