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

Введение.

Недавно на форуме русского Microsoft Technet мне попался такой вопрос одного из участников: «возможно ли задавать условия по двум критериям для доступа к терминальному серверу («узел сессий удаленного рабочего стола») под управлением Windows Server 2008 — диапазон ip (или список имен компьютеров) и логин (или группа)» Т.е., спрашивающий хотел разрешить вход с каждого из компьютеров (или их групп) только определённым пользователям (или группам пользователей).

В принципе, ответ на этот вопрос несложный. Сам по себе терминальный сервер («служба удаленных рабочих столов») такой возможности контролировать доступ к нему не даёт. Однако эта задача легко и просто решается в современных версиях Windows с помощью брандмауэра Windows в случае, если терминальный сервер и компьютеры, с которых выполняется вход, являются членами домена.

Задача мне показалась интересной, и я решил промоделировать её решение в лабораторной среде.

Основой решения является использование защиты подключений с помощью IPSec с расширением от Microsoft (протокол AuthIP).Это расширение позволяет производить при подключении аутентификацию и пользователя, и компьютера, с которого было выполнено подключение. Интеграция же IPSec с брандмауэром Windows позволяет в правилах брандмауэра использовать эту информцию — то есть, указать, к каким пользователям и компьютерам это правило применяется.

Пример настройки, приведенный ниже, годится для терминального сервера, работающего под управлением Windows Server 2008 R2 и выше, и компьютеров, с которых произодится подключение, под управлением ОС Windows 7 и выше. Однако, с некоторыми модификациями — а именно, отказом от неподдерживаемой в Windows Vista и Windows Server 2008 возможности указания портов протокола TCP в правилах безопасности подключения — такая настройка возможна и для терминального сервера под управлением Windows Server 2008, и для клиентов под управлением Windows Vista.

В качестве примера настройки доступа по комбинации пользователь/компьютер я взял домен conn.loc (с единственным контроллером домена, имеющим адрес 192.168.71.2), содержащий терминальный сервер RDHOST1 (IP address: 192.168.71.3) под управлением Windows Server 2008 R2 и два клиентских компьютера RDCLT1 (IP address: 192.168.71.5)и RDCLT2 (IP address: 192.168.71.4) под управлением Windows 7 Professional. Задача настройки — разрешить доступ к терминальному серверу с компьютера rdclt1 только пользователю user1, а с компьютера rdclt2 — только пользователю user2.

Настройка доступа производится в описанном ниже порядке. При описании настройки я не буду подробно останавливаться на параметрах, которые мастер предлагает выбирать по умолчанию: в случае, если про какое-то окно мастера я не пишу, в нём просто нужно нажать кнопку Next.

Порядок настройки:

1. На терминальном сервере в консоли Windows Firewall with Advanced Security создать правило безопасности подключения, запрашивающее согласование IPSec с аутентификацией пользователя и компьютера при подключении к терминальному серверу:

Запускаем мастер создания нового правила:

Pic1

Указываем на странице Rule type тип правила — Custom:

Pic2

Указываем на странице Endpoints, что оно применяется для подключения к нашему терминальному серверу: указываем в качестве  Endpoint 1 адрес(а) IP терминального сервера:

Pic3

Оставляем в следующем окне — Requirements — значение по умолчанию

Выбираем в окне Authentication Method вариант Computer and User (Kerberos v5):

Pic4

В окне Protocol and Ports (оно доступно только для Windows 7/Windows Server 2008 R2, но не для Windows Vista/Windows 2008), чтобы ограничить согласование IPSec только для подключений к удаленному рабочему столу,  выбираем Protocol type TCP и указываем в качестве Endpoint port 1 стандартный порт RDP — 3389 :

Pic5

и завершаем создание правила, указав, что оно применяется ко всем профилям и выбрав произвольное имя для правила.

2. На всех клиентах создать правило безопасности подключения, запрашивающее согласование IPSec с такой же аутентификацией, при обращении к терминальному серверу. Это удобнее всего делать через групповую политику, создав правило безопасности подключения в узле Computer Configuration/Policies/Windows settings/Security settings/Windows firewall with Advanced Security/…/Connection security Rules:

Запускаем мастер создания нового правила:

Pic1

Указываем на странице Rule type тип правила — Custom:

Pic2

Указываем на странице Endpoints, что оно применяется для подключения к нашему терминальному серверу — указываем в качестве Endpoint 2 адрес(а) IP терминального сервера:

Pic3

Оставляем в следующем окне — Requirements — значение по умолчанию.

Выбираем в окне Authentication Method вариант Computer and User (Kerberos v5):

Pic4

В окне Protocol and Ports (оно доступно только для Windows 7/Windows Server 2008 R2, но не для Windows Vista/Windows 2008), чтобы ограничить согласование IPSec только для подключений к удаленному рабочему столу,  выбираем Protocol type TCP и указываем в качестве Endpoint port 2 стандартный порт протокола RDP — 3389 :

Pic5

и завершаем создание правила, указав, что оно применяется ко всем профилям и выбрав произвольное имя для правила.

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

3. На терминальном сервере в консоли Windows Firewall with Advanced Security создать правила входящих подключений по одному на каждую комбинацию пользователь(и)/компьютер(ы) .  В нашем случае комбинаций две user1/rdclt1 и user2/rdclt2. Вот как выглядит процесс создания правила для второй комбинации:

Запускаем мастер для создания нового правила:

pic1

Выбираем тип правила Rule type = Port :

pic2

Указываем для правила порт, используемый RDP — Specific local ports: 3389 (TCP):

pic3

Выбираем действие правила Allow connection if it is secure:

pic4

Выбираем пользователей (и/или группы безопасности, их включающие), которые должны иметь доступ к серверу терминалов с нужного компьютера(ов), в нашем случае это — user2, ставим галочку в блоке Authirized users и добавляем пользователя user2:

pic5

На странице Authorized computers аналогичным образом выбираем компьютеры и/или группы безопасности, их включающие, согласно списку для нужного пользователя(ей), в нашем случае — RDCLT2:

pic6

Если пользователей и компьютеров несколько, то для объединения их можно использовать (и указывать на соответствующих страницах мастера) группы безопасности в AD

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

4. (необязательно) На терминальном сервере создать правило(а) для подключения без проверки пользоватей и компьютеров с необходимых IP-адресов (тонкие клиенты, ПК с XP, рабочая станция адимнистратора и т.п.). Для примера создаем правило для подключения с контроллера домена. Сначала точно так же, как и в п.3 выбираем создание нового правила. Затем указываем тип правила — Custom:

Pic1

На странице Program оставляем вариант выбора по умолчанию — All Programs.  На странице Protocols and Ports указываем, что правило применимо к локальному порт 3389 протокола TCP (стандарному порту RDP)  и любому удаленному порту:

Pic2

На странице Scope выбираем в качестве области действия адрес нашего контроллера домена:

Pic3

В действиях для правила (страница Action) оставляем вариант по умолчанию — Allow connection. После чего указываем, что правило применимо для всех профилей, задаём имя правила и завершаем работу мастера по созданию этого правила.

5. Отключаем (disable) стандартное правило входящих подключений для службы удаленных рабочих столов — Remote Desktop (TCP-in). Иначе при неразрешенных вариантах комбинаций пользователь/компьютер доступ всё равно будет разрешен благодаря этому правилу.

Проверяем работу.

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

Заходим на RDCLT1 под учетной записью user1, запускаем удаленное подключение к рабочему столу и успешно подключаемся:
Pic1

При этом на терминальном сервере в консоли управления брандмауэром Windows Firewall with Advanced Security в узле мониторинга можно увидеть, что подключение защищено IPSec, и что пользователь и компьютер были аутентифицированы при подключении:

Pic2

Заходим теперь на RDCLT1 под учетной записью user2 и уже от его имени пытаемся подключиться к терминальному серверу.  Неудачно:

Pic3

Однако с RDCLT2 подключение под учетной записью user2 к терминальному серверу осуществляется вполне успешно:

Pic4

Зато подключение под учетной записью user1 с этого компьютера оказывается неудачным — в точности, как мы и хотели.

Подключение к терминальному серверу с контроллера домена под любым пользователем (в данном случае — администратором домена) также осуществляется успешно:

Pic5

И в узле мониторинга консоли управления брандмауэром нет сведений о сопоставлении IPSec для этого подключения — т.е. IPSec в данном случае не используется.

Собственно, вот и всё.

 

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

    • Shantaram
    • 26.07.2016

    У нас удалённый доступ на работе сделан с помощью Thinstuff, это уже кому как удобнее. Работает также, как и через функцию удалённый доступ с помощью RDP протокола. В целом работает хорошо, стабильно.

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: