Настраиваем Windows Server так, чтобы у вас все было, при этом вам за это ничего не было


    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.



    З.Ы. Таких длинных текстов писать не доводилось давно, отсюда огромная благодарность всем тем, кто осилил эту статью.
    Parallels
    Мировой лидер на рынке межплатформенных решений

    Комментарии 31

      +1
      На какое время ориентируется Logon Hours — серверное или юзерское?
        +1
        Если вы про часовой пояс то будет использовано значение от пользователя
        +1
        Спасибо за статью. А можете дописать аналоги всех действий в ключах реестра?
          +1
          Можно конечно, но это достаточно трудоемко. Не можете пояснить зачем вам именно ключи реестра. ИМХО груповые политики более удобны
            0
            Для «true way»)) Чтобы код писать в систему версионирования, от туда код пушился на систему управления конфигурациями, система управления конфигурациями раскатывала код на парк серверов/терминалов/рабочих станций/планшетов/информационных панелей и т.д. и т.п… а для этого нужны именно скрипты. Да и не во всех редакциях есть групповые политики, не везде поставишь контроллер домена и систем центр.
            Информации действительно мало по поводу ограничений через реестр, масса ключей deprecated в новых системах, масса ключей не работают в разных редакциях, и приходиться писать километровые скрипты, охватывающие всё, либо по одному тщательно тестить.
              0
              Я понимаю, что статья в контексте RDP серверов, но решение актуально не только для них.
                0
                Это займет какое-то время :) Но постараюсь отписаться здесь с ключами реестра.
                0

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

              0
              Самый простой способ получить ключи реестра, относящиеся к любой групповой политике — это сайтик GPS. Он правда только на английском, но ключи на русском из английских легко гуглятся.
              Надеюсь кому-нибудь поможет.
              –1
              «все было, при этом вам за это»
              «при этом» — звучит скучно и долго. В поговорках должно быть ОТРИЦАНИЕ или итоги.
              «все было, НО вам за это» — это оригинал. Звучит намного естественней, чем программистский, «толерантный» вариант. )) Исправьте уже.
                –1
                описание действий админов есть в курсе подготовки Инженера сетевой инфраструктуры и других… Вы переписали что-ли оттуда у Microsoft?
                А смысл? Кому надо обязан это изучить или он — не человек, ну в смысле не админ. )
                  +1
                  Как ни странно такого вида настройки — достаточно частый вопрос :) А нормальной документации на русском почти нет.Но все равно очень рад, что существуют люди для которых это статья бесполезена. Вы действительно круты :)
                    0

                    А зачем документация на русском? На английском привычнее и понятнее.

                      0
                      Кому как. Многие считают что самый естественный язык для технической документации — немецкий. Словарь технических терминов у немцев на порядок больше, методично заниматься техническим прогрессом начали раньше, а в английском языке не только многих технических терминов вообще нет, но даже и самых простых бытовых понятий)
                        0

                        В механике — скорее всего немецкий.


                        А в IT — английский.
                        Большинство русских терминов просто калька с английских.


                        Грамотный текст IT документации это большая редкость, поэтому проще сразу на английском читать.

                          0
                          Неа. Вы говорите за терминологический новояз исторически сложившийся после того как ООО «Орфо» перевело Windows. Сначала плевались, потом привыкли. Если откроете англо-русский словарь технических терминов узнаете для себя много нового. Конечно, я не заставлю Вас грамотно говорить ЭВМ вместо бессмысленного «компьютер». Однако, кибернетика в СССР появилась несколько раньше гоп-стоп-информатики и русская терминология была разработана весьма и весьма хорошо. Другое дело что она ближе скорее математику чем ойтишнегу))
                            0
                            Я говорю про сложившуюся терминологию.
                            Там где есть аналог — употребляют русские слова: сеть, кадр, маршрутизатор, коммутатор, мышь, клавиатура, сервер, оперативная память, жесткий диск, толстый клиент.
                            Там, где аналогов нет или они труднопроизносимы — принтер, процессор, чип, мэйнфрейм, баг, компьютер, сканер, файл, терминал, консоль.

                            Говорить ЦПУ, ПЭВМ, НЖМД, манипулятор, совокупность устройств ввода-вывода и прочую терминологическую ахинею порожденную ЕСКД — это уже за гранью разумного.

                            Меня, безусловно, коробят термины вроде «заапрувить» или «инвайтнуть», но компьютер и принтер со сканером — вполне устоявшиеся термины в русском языке, а ни разу не новояз.
                              0
                              Если откроете англо-русский словарь технических терминов… Вы не открывали, но уже знаете что там прочтёте. =) Терминология порождена не ЕСКД, а конкретной эпохой и в значительной степени обусловлена технологически. Отрицать её только потому что сегодня АЦПУ не используются (на самом деле, безальтернативно, но уже не повсеместно используются) неразумно.

                              Микросхема выговорить, конечно, гораздо тяжелей чем «чип». Хотя по-русски можно сказать ИС. Интегральная схема, сокращается до 2 (двух) букв. Это гораздо осмысленней гиковских «чипсов», особенно, если учесть что и по-английски слово «chip» использовалось больше на заре микроэлектроники. Всегда возникает вопрос: wtf chip? Ответ на него будет звучать: BGA, DBS, DIL, DQFN, HBCC,… Это я по корпусам пошёл. Что это такое? А это 100500+ английских аббревиатур. Бессмысленных для русского человека без справочника под рукой и + знания английского языка.

                              Т.е. на выходе русские аббревиатуры — плохо. Английские — хорошо. Вероятно дело в любви к начертаниям букв латинского алфавита.
                  +1
                  1. Про локальные диски: с точки зрения безопасности наилучшим решением будет верно настроить 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 и т.д.) пользователь не сможет.
                    +1
                    Спасибо за конструктивную критику. Попытаюсь ответить по пунктам:
                    1. Наверное стоило подробнее остановиться на выдаче пермиссий на файлы и диски, но к сожалению я ограничился только лирическим упоминанием оных. Обычно юзеры путаются и не понимаю когда видят диски терминальника, поэтому прятать их самое дружелюное пользователю решение.

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

                    5. Данная политика будет работать на любом вин сервере начиная с 2000. AppLoker же появился начиная с 2008 R2 если я ничего не путаю, но все равно стоило уделить ему внимание.

                    Еще раз огромное спасибо за конструктивную критику и очень полезный коментарий. Первый блин всегда комковатым выходит.

                      0
                      «Regedit требует прав администратора при запуске.»
                      Никогда такого не было, он вполне себе запускается от имени обычного юзера.
                        0
                        Да, не прав. Окно UAC для повышения привилегий появляется только для администраторов. Для обычных пользователей просто запускается regedit.
                      0
                      del
                        0
                        Как будет вести себя открытая 1C при статусе Disconnected? Винда сама аккуратно завершит программу, или просто убьет процесс и скорее всего придется переиндексировать БД?

                        Как вы решали подобную проблему?
                          +1

                          Она будет вести себя как при стандартном logoff. Проблему скорее всего можно будет решить использованием logoff скрипта, который будет проверять запущена ли 1с и если да то завершать её корректно. Нужно тестить и писать скрипт. Подобных запросов у нас не было.Если найду решение отвечу здесь либо отдельной статьёй :)

                            0
                            Я искал подобные решения, но пользователи не то, что просто не закрывают 1C, а часто оставляют еще открытым какой-нибудь документ. И вот тут проблема. Возможно есть некие скрипты на закрытие 1С с закрытием открытых документов без их сохранения и проведения. Но не нашел подобного.
                            Говоришь-говоришь пользователям, но все-равно рано или поздно кто-то не делает так, как надо.
                          0
                          Как наcтроить Logon hours без AD?
                            0
                            что вам мешает настроить эту же опцию через gpedit.msc (локальную политику безопасности)?
                          0
                          Странно — локальные диски прячем, потому что это «дыра в безопасности», но флешки пробрасываем?

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

                          Самое читаемое