internet-logo41

Разные настройки для терминальных сессий (или разные RDP подключения на сервере)

Дано: терминальный сервер на базе Windows Server (в нашем случае - 2008R2, но это не суть, на самом деле). Вместе с терминальным сервером так-же автоматически создается соединение по-умолчанию, которое названо RDP-Tcp.

В данном соединении можно указать некие свойства, например, параметры входа в систему, свойства сессий, параметры клиента (например, запретить проброс локальных дисков, принтеров или еще чего) и т.д.

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

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

Что нам в данном случае следует делать? Ну, первое, что приходит на ум - это поковыряться в ярлычке RDP-запуска, который выдан указанным лицам, сделав настройки прямо в нем. Однако это не шибко секьюрно - так или иначе, но человек все равно может поменять этот ярлык (да даже тупо создать рядом другой, с нужными ему настройками) и Ваши труды пойдут прахом.

Вторая мысль - а что, если сделать особые настройки для этого человека на самом сервере. А точнее - особые настройки для группы людей.

Вот на этой мысли давайте остановимся.


Разные настройки RDP-Tcp

Итак, на стороне сервера настройки соединений делаются через консоль "Конфигурация узла сеансов удаленных рабочих столов". Чтобы туда попасть:

Пуск -> Администрирование -> Службы удаленных рабочих столов -> Конфигурация узла сеансов удаленных рабочих столов

В открывшейся консоли мы видим окошко, в верхней части которого написано "Подключения", а в области подключений - одно единственное "RDP-Tcp". Это как раз и есть подключение по-умолчанию.

rdp s 01

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

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

Так и поступим, но для начала следует учесть один момент: RDP-Tcp соединения привязываются к физической сетевой карте! Да-да, я не опечатался, не к IP-адресу, не к имени компьютера, не к порту, а к физическому сетевому адаптеру. Это означает, что если у Вас только одна сетевая карта (или всего одна свободна для RDP-соединений), то второе подключение RDP-Tcp Вам попросту не создать!

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

Но факт остается фактом - покамест сетевая карта в ОС у Вас для RDP только одна - ничего не выйдет. Логичным решением является добавление еще одной сетевой карты - например, если Ваш сервер виртуализирован, то ничего сложного в этом нет (по крайней мере, если Вы пользуетесь нормальным серверным гипервизором, например, Xen или XenServer, или даже vmware). Если свободная сетевая карта уже есть и ее можно использовать - то проблем нет - используем ее.

Что-ж, давайте создадим еще одно RDP-Tcp соединение с уникальным набором настроек.


Создаем второе RDP-Tcp соединение

1) Настройте вторую сетевую карту. Укажите IP адрес и шлюз по-умолчанию. Да-да, шлюз на втором интерфейсе тоже указывать нужно, иначе трафик через второе RDP-Tcp соединение будет идти только внутри подсети, где находится сам сервер. Если оба IP адреса из одной подсети и шлюз, соответственно, одинаковый... все равно нужно указать его на обоих сетевых картах!

1а) Укажите IP, маску и шлюз. На ругань ОС о том, что два шлюза - это не есть нормально - отреагируйте спокойно.

1б) Зайдите в свойства TCP/IP, Дополнительно и на вкладку DNS и снимите галочку с "Зарегистрировать адреса этого подключения в DNS". Иначе Windows Server автоматически пропишет IP адрес второй сетевой карты как второй IP для своего сетевого имени и клиенты, которые "ходят" на данный терминальный сервер через DNS-имя (hostname) будут ходить рандомно как через первое RDP-Tcp соединение с настройками "для всех", так и через второе, с настройками "для определенных пользователей", что нам не надо.

rdp s 02

1в) Укажите метрику больше единицы (например, 100), если второй IP адрес находится в той же подсети, что и первый.

rdp s 03

2) Зайдите в консоль "Конфигурация узла сеансов удаленных рабочих столов".

3) Зайдите в настройки "RDP-Tcp" (которое по-умолчанию) - например, дважды щелкнув на нем мышкой.

3а) Перейдите на вкладку "Сетевой адаптер". У Вас сейчас, скорее всего, указано "Все сетевые адаптеры настроены для данного протокола". Выберите из выпадающего списка первую сетевую карту, через которую будут ходить люди с настройками "для всех" и сохраните изменения.

rdp s 04

4) Теперь в правой части оснастки "Конфигурация узла сеансов удаленных рабочих столов" нажмите на "Создать подключение".

rdp s 05

4а) Введите имя нового подключения, например, "RDP-Tcp 2" или как-то по своему, это не шибко важно.

4б) На следующей вкладке мастера - укажите вторую сетевую карту, через IP которой будут ходить люди "с особыми настройками".

4в) Завершите работу мастера - и у Вас появится второе RDP-Tcp соединение.

rdp s 06

5) Зайдите в настройки нового соединения и поменяйте то, что Вам нужно подключений "с особыми свойствами".

6) Перезагрузите сервер (да-да, опять двадцать пять - Microsoft не умеет делать так, чтобы работало 24/7 - придется перезагружать).

7) Создайте ярлыки RDP для пользователей с "особыми настройками", указав в качестве сервера - второй IP адрес.


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