Я только что установил OpenSSH Server на Windows Server 2019 в доменной среде и заметил, что по умолчанию почти каждый пользователь может подключиться к серверу через SSH. Это как если бы аутентификация AD работала (потому что я могу войти на сервер через SSH, используя учетную запись / пароль домена), но разрешения не применяются и даже не проверяются.
В принципе, допустим, у меня 2 пользователя: normalUser и adminUser. normalUser не входит ни в одну группу AD, которая дала бы ему доступ к WS2019SERVER, но adminUser входит. Что ж, оба пользователя смогут без проблем войти на сервер через SSH.
Если я вхожу в систему через SSH и выполняю команду «whoami / groups», я получаю следующее (если это может помочь).
обычный пользователь:
Group Name Type SID Attributes
======================================================================= ================ =============================================== ===============================================================
Everyone Well-known group S-1-1-0 Mandatory group, Enabled by default, Enabled group
BUILTIN\Users Alias S-1-5-32-545 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NETWORK Well-known group S-1-5-2 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Authenticated Users Well-known group S-1-5-11 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\This Organization Well-known group S-1-5-15 Mandatory group, Enabled by default, Enabled group
adminUser:
Group Name Type SID Attributes
==================================================================== ================ =============================================== ===============================================================
Everyone Well-known group S-1-1-0 Mandatory group, Enabled by default, Enabled group
BUILTIN\Users Alias S-1-5-32-545 Mandatory group, Enabled by default, Enabled group
BUILTIN\Administrators Alias S-1-5-32-544 Mandatory group, Enabled by default, Enabled group, Group owner
BUILTIN\Event Log Readers Alias S-1-5-32-573 Mandatory group, Enabled by default, Enabled group
Как запретить нормальному пользователю подключаться к серверу по SSH? Я играл с AllowGroup
и DenyGroup
в C: \ ProgramData \ ssh \ sshd_config, но он не работает (во всяком случае, мне удалось каким-то образом заблокировать adminUser, но не normalUser ?!).
Спасибо,
Аура
Нашел решение здесь:
https://github.com/MicrosoftDocs/windowsserverdocs/issues/2119
В основном я добавил:
AllowGroups DOMAIN \ ALLOWED_GROUP
В C: \ ProgramData \ ssh \ sshd_config
И это сработало. Причина, по которой он не работал вначале, заключалась в том, что я играл со смесью AllowGroups, DenyGroups, AllowUsers и DenyUsers. Но AllowGroups разрешает доступ по SSH ТОЛЬКО пользователям, которые являются частью перечисленных групп (групп). Нет необходимости обрабатывать все остальные в DenyGroups или DenyUsers (например: DenyUsers DOMAIN *, а затем разрешить группу через AllowGroups DOMAIN \ ALLOWED_GROUP).