Назад | Перейти на главную страницу

Действительно ли нужен пользователь Windows для авторизации сертификата клиента IIS, если да, то как установить права этого пользователя?

Изначально я разместил этот вопрос в securitystackexchange, но я не получил ожидаемого ответа и считаю, что эта тема также может уместиться здесь.

Мне нужно подключить два сервера в разных местах, чтобы один из них (стек Linux) отправлял периодические HTTP-запросы другому (стек Windows) - Windows Server 2008 R2 - с использованием заданий на основе cron.

На машине Windows я собираюсь настроить IIS с самозаверяющим сертификатом для аутентификации клиента (путем закрепления сертификата) и для шифрования соединения через SSL.

Я также собираюсь настроить IIS для запроса сертификата клиента для аутентификации сервера Linux. Я прошел через руководство по настройке проверки подлинности сертификата, которая включает сопоставление сертификата с учетной записью пользователя.

Меня не устраивает идея создания учетной записи пользователя для удаленного сервера, потому что я не хотел бы, чтобы кто-либо входил на сервер (Windows) с этой учетной записью.

Имея это в виду:

1) Мне действительно нужно создавать пользователя на сервере Windows, чтобы разрешить авторизацию сертификата клиента?

2) если мне действительно нужно создать учетную запись на компьютере с Windows, что мне нужно настроить, чтобы этот пользователь не мог входить на сервер Windows и делать что-либо еще, кроме аутентификации в IIS?

Примечание. Тег активного каталога был добавлен @Lex Li. Я оставлю это, но я понимаю (и могу ошибаться), что существуют проблемы безопасности, связанные с наличием активного каталога на серверах, выходящих в Интернет.

Я предполагаю, что нет другого способа, кроме использования http для вашей конкретной задачи, потому что я не знаю, какова цель этих запросов https (в противном случае приятно знать, что Windows 10 и Server 2016 наконец-то имеют поддержку SSH).

Я не знаю, какую версию IIS / Windows вы используете, поэтому дам вам общее описание:

1) Да, и в этом причина:

Сертификаты клиентов предназначены для аутентификация, не для разрешение, не путайте эти два. Авторизация - это то, что вы делаете с ролями / правилами / разрешениями и т. Д., Аутентификация позволяет серверу узнать, кто вы, и подтвердить свою личность для него (сертификат клиента похож на идентификатор).

Также ответ - да, сертификат всегда привязан к какой-либо учетной записи. Это не отличается от подхода Linux. Сразу после завершения аутентификации может применяться авторизация. Или в общих чертах: просто потому, что я знаю, кто ты, не означает, что я позволю тебе пройти в мою спальню. Это зависит от того, являетесь ли вы коллегой или членом семьи.

Если запрос к IIS представляет собой какую-либо проблему безопасности (что я предполагаю), также должны быть правила брандмауэра, VPN и т. Д., А также вы не хотите, чтобы неаутентифицированный пользователь запускал какой-то ответ на вашем сервере. .

2) Не разрешайте доступ к серверу извне.

Если у вас есть Windows Server в Интернете, вы обязательно должны убедиться, что никто из тех, кто вам не нужен, не имеет к нему доступа, брандмауэр является обязательным! Так что ваш вопрос о невозможности «войти на сервер Windows» вводит в заблуждение. IIS является частью сервера Windows и использует свою систему пользователей / групп / разрешений. Например. если вы посмотрите на группу Windows «Пользователи», вы увидите, что

Что вы хотите сделать:

Создайте пользователя для этой задачи и удалите ВСЕ группы / роли пользователей. Тогда у пользователя нет абсолютно никаких разрешений. Затем в IIS предоставьте ему доступ на чтение к каталогу, к которому вы хотите, чтобы он имел доступ только. Думаю, ваш гид должен охватить эту часть.

Примечание. И AD, и IIS могут обрабатывать клиентские сертификаты. Если вы используете автономный IIS, ваш подход правильный: в среде AD вы должны настраивать сертификаты клиентов в AD, а не в IIS.