Parallels Parallels Remote Application Server (RAS) представляет из себя RDP с человеческим лицом, но некоторые его фишки должны быть настроены на стороне Windows Server (либо в виртуальных машинах, которые вы используете). Под катом рекомендации Матвея Коровина из команды техподдержки Parallels о настройках Windows Server при использовании RAS.
Ниже будут представлены групповые политики, которые смогут сделать ваш Parallels RAS (или просто сервер терминалов) более удобным и безопасным. Для более целевого использования приведенных ниже конфигураций, рекомендуем создать отдельную группу пользователей Parallels RAS и применять групповые политики именно к ней.
Часть первая. «Запрещательная»
Прячем элементы эксплорера (Диски, кнопка «Пуск» и тд)
По умолчанию при подключении к терминальному серверу \ виртуальной машине пользователь, добавленный в группу «Пользователи удаленного рабочего стола» увидит полностью функциональный рабочий стол.
Локальные диски будут ему видны и часто доступны. Согласитесь, это неплохая дыра в безопасности, если пользователь даже со своими лимитированными правами будет иметь возможность доступа к локальным дискам и файлам на удаленном сервере.
Даже если установить правильное разграничение доступа и тем самым обезопасить себя пугливый юзверь все равно будет путать диски терминального сервера со своими локальными дисками и в ужасе звонить в тех поддержку. Наилучшим решением такой ситуации будет спрятать локальные диски терминального сервера от пытливого взора энд юзера.
Расположение групповой политики:
User Configuration\Policies\Administrative Templates\Windows Components\Windows Explorer
И измените значение следующих опций:
• Hide these specified drives in My Computer — изменив значение этой опции, вы можете убрать упоминание конкретных дисков из меню компьютера и всех связанных меню, однако это не запрещает доступ к дискам. Если пользователь задаст абсолютный адрес диска, то он откроется.
• Prevent access to drives from My Computer — запретить доступ к конкретным дискам. При включении этой опции доступ к дискам будет ограничен, но диски будут отображены в file explorer.
Что еще можно спрятать от пользователя, используя эту групповую политику:
• Remove Run menu from Start Menu – при активации убирает кнопку «Пуск» из меню
• Remove Search button from Windows Explorer – здесь все просто: поиск в эксплорере будет недоступен
• Disable Windows Explorer's default context menu – это функция лишает пользователя возможности вызывать менюшку правым кликом мыши (можно купить старых мышек от мака и сэкономить на одной кнопке)
После написания этой части проснулась просто-таки депутатская страсть к запретам. На этом фоне стоит рассказать вам, какими способами можно запретить пользователю все.
И так поехали:
Запрещаем использование командной строки (даже если пользователь сможет открыть CMD ему останется просто любоваться черным окошком с уведомлением о запрете доступа)
Расположение групповой политики:
User Configuration > Policies > Administrative Templates > System > Prevent access to the command promt.
Меняем значение на enabled.
Опция Disable the command prompt script processing also запрещает пользователю выполнять скрипты.
Есть один нюанс: если у вас настроены логон скрипты при включении этой опции, они выполняться не будут.
Убираем кнопки выключения \ перезагрузки \ сна (будет обидно, если удаленный пользователь случайно выключит терминальный сервер)
Расположение групповой политики:
User Configuration > Administrative Templates > Start Menu and Taskbar > Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate Commands
При включении этой опции пользователь сможет только заблокировать сессию или разлогиниться из нее.
Запрещаем Автозапуск «Управление сервером» при логине
Расположение групповой политики:
Computer Configuration > Policies > Administrative Templates > System > Server Manager > Do not display Server Manager automatically at logon
Меняем значение на enabled.
Запрещаем запуск PowerShell
Расположение групповой политики:
User Configuration > Policies > Administrative Templates > System > Don’t run specified Windows applications
Включаем эту политику и добавляем туда следующие приложения
powershell.exe and powershell_ise.exe
Этой политикой можно запретить запуск любых установленных (а также не установленных) приложений.
Прячем элементы панели управления
Расположение групповой политики:
User Configuration > Administrative Templates > Control Panel > Show only specified Control Panel items.
При включении этой политики все элементы панели управления будут скрыты от пользователя. Если пользователю должны быть доступны какие-либо элементы, добавьте их в исключения.
Запрещаем запуск редактора реестра
Расположение групповой политики:
User Configuration > Policies > Administrative Templates > System > Prevent access to registry editing tools
Меняем значение на enabled.
Запрещаем все
Логичным завершением этой части статьи будет рассказ о том, как запретить пользователям все. Есть мнение, что пользователь должен подключиться к удаленному рабочему столу, посмотреть на него и, убедившись в торжестве технического прогресса, отключиться.
Для достижения этой цели нам нужно создать групповую политику добавления дополнительных ключей в реестре Windows:
Расположение групповой политики:
User Configuration\Preferences\ Windows Settings\Registry
Кликаем правой кнопкой мыши по Registry затем New затем Registry item
Добавляем новый REG_DWORD параметр RestrictRun со значением 1 в ключ реестра
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\
Теперь пользователю запрещено запускать любые приложения кроме системных.
Как запретить ему пользоваться CMD и Power Shell описано выше.
Если вы все-таки решите (исключительно по доброте душевной) разрешить пользователям запуск каких-либо приложений, их нужно будет добавить в «разрешительный список» путем создания в ключе
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun
Значением типа string, используя порядковый номер разрешаемой программы в качестве имени (нумерация как это не странно начинается с 1), и именем разрешаемой программы в качестве значения.
Пример:
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
String Name:«1»=«notepad.exe»
String Name «2»=«calc.exe»
При такой конфигурации пользователь сможет запустить только блокнот и калькулятор.
На этом хочется закончить «Запрещательную» часть. Конечно, можно упомянуть еще некоторое количество «Низя», но все это настраивается через Parallels Client и встроенные политики Parallels RAS.
Часть вторая. «Время и прочая романтика»
Установка временных лимитов для удаленных сессий
Бывает, что пользователь запускает приложение в фоне и может даже не пользоваться им. Если для обычных приложений это не страшно, то запущенное в фоне опубликованное приложение / рабочий стол занимает лицензию, а лицензии, как бы дико это не звучало для России, стоят денег.
Для решения этого вопроса умные люди из Microsoft придумали различные статусы терминальных сессий и временные лимиты для них.
Какие бывают статусы терминальных сессий:
Active – сессия активна и в ней что-то происходит. Пользователь двигает мышкой, нажимает на кнопки и создает имитацию бурной деятельности
IDLE – соединение есть, сессия запущена, приложение работает, но пользователь активности не проявляет
Disconnected – пользователь нажал крестик и отключился. Объяснять конечному пользователю, что за зверь логоф и чем он питается — бесполезно.
Наиболее целесообразно устанавливать временные рамки на IDLE и Disconnected сессий.
В них ничего не происходит, а лицензии занимаются.
Добиться этого мы можем опять-таки, используя групповые политики.
Расположение групповой политики:
User Configuration > Policies > Administrative Templates Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits
В этой ветке есть несколько опций. Давайте разберем их все:
Set time limit for active but idle Remote Desktop Services sessions
Максимальное время работы для Active сессий.
Set time limit for active Remote Desktop Services sessions
Максимальное время работы для IDLE сессий.
Set time limit for disconnected sessions
Максимальное время работы для disconnected сессий.
End session when time limits are reached
Если установить эту политику в Enabled статус, то по достижению временного лимита сессии будут завершаться, а не отключаться.
Настройка временных лимитов – важный шаг для оптимизации работы сервера и оптимизации затрат на ПО.
Установка времени логина для пользователей или скажем нет переработкам
У каждого из нас есть рабочий день, а также утро, вечер и ночь. Но Британские (или Мальтийские) ученые недавно выяснили, что от работы, оказывается, можно заболеть или даже умереть. Работа — это очень сильный и опасный наркотик, поэтому в ярой заботе о любимых пользователях мы должны ограничить им время, когда они могут логиниться на сервер. А то надумают тоже работать из дома, отпуска и по выходным. И помогут нам в этом не групповые политики. Настройка времени работы находится в свойствах пользователя. Где-то далеко в начале этой статьи я упоминал, что все манипуляции лучше производить со специально созданной группой пользователей Parallels RAS, так вот, на примере этой группы мы и разберем, как установить часы работы.
Идем в левый нижний угол нашего экрана, нажимаем кнопку пуск и печатаем dsa.msc
Откроется всеми любимая оснастка Active Directory Users and Computers.
Найдите созданную вами группу пользователей Parallels RAS кликните по ней правой кнопкой мыши и зайдите в свойства. Во вкладке Account будет опция Logon Hours в которой нужно выбрать разрешенные и запрещенные часы работы для группы.
Итог этого раздела:
1. Вы великолепны
2. Жизни пользователей спасены от переработки
Часть третья. «Интерактивная»
Используя опубликованные ресурсы, часто приходится не только запрещать все подряд на сервере, но и перенаправлять в удаленную сессию локальные ресурсы. И если с принтерами, сканерами, дисками, звуком и COM портами никаких сложностей не возникнет, Parallels RAS прекрасно их перенаправляет без дополнительных настроек со стороны Windows, то с перенаправлением USB устройств и веб камер все не так просто.
Для перенаправления данного типа оборудования нужно, чтобы звезды сошлись в правильном порядке не только на сервере, но и на клиентской машине:
На компьютере пользователя измените следующую групповую политику:
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client > RemoteFX USB Device Redirection
Присвойте ей значение Enabled
Теперь в свойствах Parallels клиента (Connection Properties > Local Resources) вы сможете выбрать, какое именно из подключенных USB устройств должно быть перенаправлено на сервер.
Примечание: USB устройство может быть задействовано либо в опубликованном приложении, либо на локальном компьютере, но не одновременно и там, и там.
На стороне сервера необходимо установить драйверы и все необходимое ПО для работы USB устройства. К сожалению, универсального драйвера для всего подряд человечество еще не придумало.
На этом хотелось бы завершить обзор настроек Windows, которые будут важны для работы Parallels RAS.
З.Ы. Таких длинных текстов писать не доводилось давно, отсюда огромная благодарность всем тем, кто осилил эту статью.
Комментарии (20)
rionnagel
24.10.2017 14:41Спасибо за статью. А можете дописать аналоги всех действий в ключах реестра?
mat_way
24.10.2017 18:22Можно конечно, но это достаточно трудоемко. Не можете пояснить зачем вам именно ключи реестра. ИМХО груповые политики более удобны
rionnagel
24.10.2017 21:54Для «true way»)) Чтобы код писать в систему версионирования, от туда код пушился на систему управления конфигурациями, система управления конфигурациями раскатывала код на парк серверов/терминалов/рабочих станций/планшетов/информационных панелей и т.д. и т.п… а для этого нужны именно скрипты. Да и не во всех редакциях есть групповые политики, не везде поставишь контроллер домена и систем центр.
Информации действительно мало по поводу ограничений через реестр, масса ключей deprecated в новых системах, масса ключей не работают в разных редакциях, и приходиться писать километровые скрипты, охватывающие всё, либо по одному тщательно тестить.alan008
25.10.2017 07:15Вы можете установить программу, которая делает снапшоты (копии) реестра, сделать снапшот, поменять настройку в политиках, сделать еще один снапшот, и сравнить получившиеся снимки на предмет изменений
Bronto3
24.10.2017 16:29«все было, при этом вам за это»
«при этом» — звучит скучно и долго. В поговорках должно быть ОТРИЦАНИЕ или итоги.
«все было, НО вам за это» — это оригинал. Звучит намного естественней, чем программистский, «толерантный» вариант. )) Исправьте уже.
Bronto3
24.10.2017 16:37описание действий админов есть в курсе подготовки Инженера сетевой инфраструктуры и других… Вы переписали что-ли оттуда у Microsoft?
А смысл? Кому надо обязан это изучить или он — не человек, ну в смысле не админ. )mat_way
24.10.2017 18:33Как ни странно такого вида настройки — достаточно частый вопрос :) А нормальной документации на русском почти нет.Но все равно очень рад, что существуют люди для которых это статья бесполезена. Вы действительно круты :)
Cayp
24.10.2017 22:101. Про локальные диски: с точки зрения безопасности наилучшим решением будет верно настроить ACL на самих дисках. например забрать у пользователей права на создание файлов, CREATOR OWNER и т.п. и оставить только traverse+list folder в корне. Каталоги Windows и Program Files по умолчанию не наследуют разрешения от корня диска, поэтому там права на чтение/выполнение не пропадут. Hide these specified drives in My Computer и Prevent access to drives from My Computer больше косметические политики, чем относящиеся к безопасности.
2. «Убираем кнопки выключения \ перезагрузки \ сна» — зачем, если SeShutdownPrivilege по умолчанию доступно только Backup Operators и Administrators? Обычные пользователи по умолчанию не входят в эти группы и не видят опций Shutdown/reboot.
3. «Запрещаем Автозапуск «Управление сервером» при логине». Аналогично. У обычных пользователей Server Manager не включается.
4. «Запрещаем запуск редактора реестра». Regedit требует прав администратора при запуске. Плюс стандартные ACL в реестре по умолчанию обычному пользователю не дадут что либо редактировать, кроме HKCU.
5. Почему для запрета запуска некоторых приложений предлагается использовать отдельные политики и реестр, а не AppLocker/SRP, которые специально для этого созданы и в целом более гибкие (можно разрешать/запрещать по хэшу, цифровой подписи)? В AppLocker, например, по умолчанию действует «запрещено всё, что не разрешено» и запустить приложение из собственного профиля (с рабочего стола/temp и т.д.) пользователь не сможет.mat_way
24.10.2017 23:16Спасибо за конструктивную критику. Попытаюсь ответить по пунктам:
1. Наверное стоило подробнее остановиться на выдаче пермиссий на файлы и диски, но к сожалению я ограничился только лирическим упоминанием оных. Обычно юзеры путаются и не понимаю когда видят диски терминальника, поэтому прятать их самое дружелюное пользователю решение.
2.3.4 Добавил на всякий случай, а так же для специфических ситуаций (к примеру пул виртуальных машин вместо терминального сервера либо хочется запретить пользователю копировать реестр) возможно эта информация избыточна.
5. Данная политика будет работать на любом вин сервере начиная с 2000. AppLoker же появился начиная с 2008 R2 если я ничего не путаю, но все равно стоило уделить ему внимание.
Еще раз огромное спасибо за конструктивную критику и очень полезный коментарий. Первый блин всегда комковатым выходит.
paranoya_prod
25.10.2017 10:04«Regedit требует прав администратора при запуске.»
Никогда такого не было, он вполне себе запускается от имени обычного юзера.Cayp
25.10.2017 12:12Да, не прав. Окно UAC для повышения привилегий появляется только для администраторов. Для обычных пользователей просто запускается regedit.
BLOOD_ELF
25.10.2017 13:31Как будет вести себя открытая 1C при статусе Disconnected? Винда сама аккуратно завершит программу, или просто убьет процесс и скорее всего придется переиндексировать БД?
Как вы решали подобную проблему?mat_way
25.10.2017 16:06Она будет вести себя как при стандартном logoff. Проблему скорее всего можно будет решить использованием logoff скрипта, который будет проверять запущена ли 1с и если да то завершать её корректно. Нужно тестить и писать скрипт. Подобных запросов у нас не было.Если найду решение отвечу здесь либо отдельной статьёй :)
BLOOD_ELF
25.10.2017 16:15Я искал подобные решения, но пользователи не то, что просто не закрывают 1C, а часто оставляют еще открытым какой-нибудь документ. И вот тут проблема. Возможно есть некие скрипты на закрытие 1С с закрытием открытых документов без их сохранения и проведения. Но не нашел подобного.
Говоришь-говоришь пользователям, но все-равно рано или поздно кто-то не делает так, как надо.
dmitry_dvm
На какое время ориентируется Logon Hours — серверное или юзерское?
mat_way
Если вы про часовой пояс то будет использовано значение от пользователя