Блокировка служб терминалов Windows Server 2008
Введение
Некоторые из самых больших усовершенствований служб терминалов в их реализации Windows Server 2008 относятся к их общей безопасности. Будучи одной из наиболее широко используемых форм удаленного доступа к серверу как администраторами, так и пользователями, это не является большим сюрпризом и очень приветствуется. В этой статье мы рассмотрим несколько вещей, которые вы можете сделать, чтобы сделать вашу среду Terminal Server более безопасной.
Использование двухфакторной аутентификации
Вы помните, как смотрели Little Rascal's, когда росли? Если это так, то вы помните, что каждый раз, когда кто-то хотел войти на собрание клуба настоящих мужчин-женоненавистников, они сначала должны были специально постучать в дверь, а затем предъявить сверхсекретное официальное рукопожатие клуба. Даже группа буйных семилетних детей знала о важности наличия двух форм аутентификации, поэтому гораздо логичнее, что мы хотели бы сделать то же самое, думая о сетевой безопасности.
Существует несколько различных форм двухфакторной аутентификации, но наиболее распространенной из них, поддерживаемой службами терминалов, является использование смарт-карт. При использовании смарт-карты пользователь должен не только предоставить действительные учетные данные для входа в систему, но и иметь возможность физически подключить смарт-карту к устройству, которое он использует в качестве удаленного терминала.
Чтобы требовать аутентификацию с помощью смарт-карты, вы должны создать объект групповой политики, который можно применить к вашему терминальному серверу. В GPO перейдите в раздел Конфигурация компьютераПараметры WindowsПараметры безопасностиЛокальные политикиПараметры безопасности и включите параметр Интерактивный вход: требуется смарт-карта. Кроме того, вам потребуется включить перенаправление смарт-карт на сервер терминалов, установив флажок Смарт-карты на вкладке «Локальные ресурсы» клиента подключения к удаленному рабочему столу на рабочих станциях пользователей.
фигура 1
Принудительная проверка подлинности на уровне сети для всех клиентов
В предыдущих реализациях служб терминалов проверка подлинности на сервере достигалась путем подключения к сеансу на сервере и ввода учетных данных для входа на экране входа в систему Windows Server. Это может показаться довольно тривиальным, но с точки зрения безопасности возможность получить экран входа в сеанс может раскрыть информацию о нашей сети (имя домена, имя компьютера) или сделать наш сервер уязвимым для атаки типа «отказ в обслуживании» для любого, у кого есть такая возможность. публичный IP-адрес серверов.
Аутентификация на уровне сети (NLA) — это функция, представленная в версии 6.0 клиента подключения к удаленному рабочему столу, которая позволяет пользователю вводить свои учетные данные для входа до отображения экрана входа в систему Windows Server. Windows Server 2008 позволяет нам использовать эту возможность и требует, чтобы все подключающиеся клиенты использовали ее.
фигура 2
Чтобы использовать NLA, вы должны использовать Windows 2008 Server, а ваши подключающиеся клиенты должны поддерживать CredSSP (Windows XP SP3, Windows Vista, Windows 7), а также использовать Remote Desktop Connection 6.0 или выше. Вы можете настроить сервер терминалов так, чтобы его клиенты использовали NLA в нескольких разных местах:
- Во время первоначального процесса установки роли служб терминалов, когда вы увидите экран «Укажите метод аутентификации для сервера терминалов», выберите параметр «Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с аутентификацией на уровне сети ».
- Откройте оснастку MMC «Конфигурация служб терминалов», щелкните правой кнопкой мыши подключение к серверу терминалов, используемое вашими клиентами, выберите свойства и выберите параметр «Разрешить подключения только с компьютеров, на которых запущен удаленный рабочий стол с проверкой подлинности на уровне сети».
- Создайте объект групповой политики, перейдите в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы терминаловСервер терминаловБезопасность, включите параметр Требовать проверку подлинности пользователя для удаленных подключений с помощью параметра Проверка подлинности на уровне сети и примените его к подразделению, содержащему сервер терминалов..
Изменить порт RDP по умолчанию
По умолчанию сервер терминалов использует порт 3389 для трафика RDP. По умолчанию каждый компетентный хакер в мире знает, что сервер терминалов использует порт 3389 для трафика RDP. В этом случае одним из самых быстрых изменений, которые вы можете внести в среду сервера терминалов, чтобы обойти потенциальных злоумышленников, является изменение этого назначения порта по умолчанию.
Чтобы изменить порт RDP по умолчанию для сервера терминалов, откройте regedit и перейдите к HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp. Найдите ключ PortNumber и замените шестнадцатеричное значение 00000D3D (что эквивалентно 3389) на соответствующее шестнадцатеричное значение для порта, который вы хотите использовать.
Кроме того, вы можете изменить номер порта, используемый вашим терминальным сервером, для каждого соединения. Продолжая использовать regedit, перейдите к HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsимя подключения. Снова найдите ключ PortNumber и замените шестнадцатеричное значение на значение, которое вы хотите использовать.
Имейте в виду, что при изменении этого параметра на вашем сервере все подключающиеся клиенты должны быть уверены, что они подключаются к серверу терминалов с новым расширением порта, помеченным на IP-адрес сервера. Например, для подключения к серверу терминалов с внутренним IP-адресом 192.168.0.1, который сейчас использует нестандартный порт 8888, пользователю потребуется ввести 192.168.0.1:8888 в клиенте подключения к удаленному рабочему столу.
Рисунок 3
Используйте Easy Print и ограничение перенаправленных принтеров
Печать с устройств, локально подключенных к клиентским рабочим станциям, всегда была недостатком служб терминалов до Windows Server 2008. Чтобы сделать это, вы должны были убедиться, что на клиенте и сервере установлена одна и та же версия драйвера принтера. и даже тогда это не всегда работало. С точки зрения безопасности мы никогда не хотим устанавливать в нашу систему больше драйверов, чем это абсолютно необходимо. Каждый драйвер, установленный на сервере, потенциально может расширить поверхность атаки.
В Windows Server 2008 появилась функция Easy Print, которая радикально меняет способ работы с локально подключенными принтерами. По сути, TS Easy Print — это драйвер, который служит прокси-сервером, через который перенаправляются все данные печати. Когда клиент печатает на устройстве с помощью драйвера Easy Print, данные и параметры печати преобразуются в универсальный формат, который отправляется на сервер терминалов для обработки. При этом после нажатия на печать диалоговое окно печати запускается из клиента, а не в сеансе терминала. Это означает, что на сервер терминалов не нужно устанавливать драйверы для обработки заданий печати с локально подключенных устройств печати.
Чтобы настроить Easy Print, вам необходимо убедиться, что все локально подключенные устройства печати имеют логические принтеры, настроенные на клиентских рабочих станциях, которые настроены на использование драйвера Easy Print. Функция Easy Print поддерживается всеми клиентами Windows XP с пакетом обновления 3 (SP3), Windows Vista и Windows 7, работающими под управлением Remote Desktop Connection 6.1 или более поздней версии, а также.NET Framework 3 с пакетом обновления 1 (SP1).
Рисунок 4
После настройки локально подключенных устройств на уровне рабочей станции рекомендуется убедиться, что единственным принтером, перенаправляемым на сервер терминалов, является принтер, использующий TS Easy Print, который следует установить в качестве принтера по умолчанию. Это можно сделать, создав объект групповой политики и перейдя в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы терминаловСервер терминаловПеренаправление принтеров и включив параметр Перенаправлять только клиентский принтер по умолчанию.
Ограничить учетные записи пользователей
Если вы нанимаете кого-то для вспашки ваших полей, то, как правило, все, что вам нужно сделать, это дать этому человеку ключи от трактора… а не ключи от комбайна, сарая и полного привода. Это не только потому, что им не нужен комбайн для выполнения поставленной задачи, но и потому, что вы действительно не хотите, чтобы ваш новый John Deere пропал без вести или нашел его в канаве. Используя тот же ход мыслей, мы должны иметь в виду, что когда пользователь подключается к серверу и работает непосредственно с ним, он может по своей природе иметь доступ к нескольким вещам, которые ему не нужны, и для создания более безопасной среды мы нужно ограничить это. Это не только защищает от компрометации учетных данных пользователя, но также защищает от законного пользователя с незаконными намерениями. Несколько вещей, которые мы можем сделать, включают:
Используйте определенные учетные записи для пользователей терминала
Нередко пользователь локально работает с определенными приложениями, а затем обращается к серверу терминалов для доступа к другим приложениям. Использование одной и той же учетной записи пользователя для локального и терминального доступа проще с точки зрения управления, но также упрощает задачу с точки зрения злоумышленника, которому просто нужно скомпрометировать один набор учетных данных для доступа к множеству приложений. Создание отдельной учетной записи пользователя для доступа к серверу терминалов и ограничение его набора разрешений только необходимыми приложениями значительно снизит влияние этого типа компрометации.
Используйте политики ограниченного использования программ
Политики ограниченного использования программ ни в коем случае не являются чем-то новым, но я считаю, что они крайне мало используются. Политики ограниченного использования программ могут быть настроены для разрешения или запрета использования определенных приложений и обычно используются на общедоступных компьютерах или в киосках, хотя они также отлично подходят для сред терминального сервера.
Создание политик ограниченного использования программ немного выходит за рамки этой статьи, но вы можете прочитать об этом подробнее на Microsoft TechNet.
Мониторинг доступа пользователей к терминальным серверам с помощью группы
По умолчанию только члены группы пользователей удаленного рабочего стола серверов терминалов (и доменные/локальные администраторы) могут войти на этот сервер терминалов. Настоятельно рекомендуется документировать и регулярно проверять членов этой группы. Если пользователю НЕ НУЖНО входить на сервер терминалов, удалите его из группы пользователей удаленного рабочего стола.
Настройка дополнительной безопасности с помощью групповой политики
Большое количество улучшений безопасности для сред терминального сервера доступно через групповую политику. Вот некоторые из моих любимых:
1. Ограничьте пользователей служб терминалов одним удаленным сеансом
В большинстве случаев нет необходимости, чтобы один пользователь инициировал несколько сеансов на сервере терминалов. Разрешение этого может привести к созданию среды, уязвимой для атаки типа «отказ в обслуживании», если учетные данные пользователя будут скомпрометированы. Вы можете настроить этот параметр, перейдя в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы терминаловСервер терминаловПодключения в вашем объекте групповой политики.
2. Не разрешать перенаправление диска
Если у вас нет особой необходимости в этом, предоставление пользователю доступа к локальным дискам из сеанса сервера терминалов может создать очень небезопасный канал связи. С помощью этой возможности пользователь может не только копировать данные на сервер терминалов, но и эти данные могут иметь вредоносный характер и, возможно, даже выполняться на сервере.
Вы можете настроить этот параметр, перейдя в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы терминаловСервер терминаловПеренаправление устройств и ресурсов в вашем объекте групповой политики.
3. Установите лимит времени для отключенных сеансов
Как правило, пользователю не рекомендуется выходить из сеанса без полного выхода из системы. Если кто-то получит контроль над этим сеансом, он может попасть прямо в часть конфиденциальных данных или оказаться уже аутентифицированным в другом сетевом приложении. Отличный способ борьбы с этим — установить очень низкий лимит времени для отключенных сеансов. По истечении этого срока сессия будет прекращена.
Вы можете настроить этот параметр, перейдя в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы терминаловСервер терминаловОграничения времени сеанса в вашем объекте групповой политики.
4. Отключите установщик Microsoft Windows.
Проще говоря, только администраторы должны устанавливать приложения на сервер терминалов. В большинстве случаев пользователи вообще не смогут устанавливать приложения, поскольку они не должны входить в систему с административным доступом. Однако если от определенных пользователей требуются повышенные привилегии, вы можете ограничить их возможность устанавливать некоторые программы, отключив установщик Microsoft Windows.
Вы можете настроить этот параметр, перейдя в раздел Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsУстановщик Windows в вашем объекте групповой политики. Важно, чтобы вы установили для этого параметра значение «Включено», а не «Всегда». Это гарантирует, что вы по-прежнему сможете публиковать приложения на сервере терминалов с помощью групповой политики. Использование параметра «Всегда» предотвращает это.
5. Перенаправление папок
Если бы я получал доллар каждый раз, когда я захожу на сервер терминалов и нахожу конфиденциальные или критически важные данные на локальном рабочем столе пользователя, я бы сидел где-нибудь на пляже и писал эту статью, а не в своем офисе. Несмотря на то, что как сетевые администраторы мы предоставляем несколько общедоступных и частных мест для хранения данных, некоторые пользователи не могут устоять перед соблазном и удобством хранения данных на своем рабочем столе. В качестве альтернативы отправке наших сетевых пользователей в частокол (заманчиво, не правда ли?), мы можем просто обмануть их, перенаправив их рабочий стол в соответствующее место хранения на файловом сервере.
Вы можете настроить этот параметр, перейдя в раздел Конфигурация пользователяПараметры WindowsПеренаправление папок в вашем объекте групповой политики. Рабочий стол пользователя ни в коем случае не является единственной папкой, которую мы можем перенаправить, и я рекомендую просмотреть все доступные папки и перенаправить то, что, по вашему мнению, подходит для вашей среды.
6. Запретить доступ к панели управления
Как и в случае с установщиком Microsoft, пользователи не должны иметь к нему доступа вообще. Однако если у вас есть пользователи, которым требуются права администратора, вы можете ограничить их доступ к системной панели управления, настроив этот параметр.
Вы можете настроить этот параметр, перейдя в Конфигурация пользователяАдминистративные шаблоныПанель управления в вашем объекте групповой политики.
Включить аудит
Когда я учился в колледже, у нас было «благо» общий холодильник. Большинство жильцов общежития соблюдали золотое правило не есть чужую еду, но я с любовью вспоминаю случай на первом курсе, когда пропала еда. Это продолжалось довольно долго, и мы мало что могли сделать, чтобы предотвратить это, продолжая пользоваться сервисом. В связи с этим некоторые из нас решили более пассивно подойти к решению этой проблемы безопасности, положив партию свежеиспеченных пирожных в общий холодильник. Конечно же, мы нашли виновника, следя за тем, кто провел большую часть следующего дня в ванной. Думаю, рецепт брауни со слабительным действительно пригодился.
Суть этой истории в том, что во многих ситуациях мы не сможем предотвратить нарушение безопасности, но при наличии эффективной стратегии аудита мы можем выяснить, когда произошло нарушение, как оно произошло, а иногда и даже кто это сделал. Важно, чтобы мы выбрали соответствующие элементы для аудита на нашем терминальном сервере, чтобы мы могли получать необходимую информацию, не будучи перегружены слишком большим количеством информации. Microsoft рекомендует следующие параметры аудита:
- Аудит событий входа в учетную запись — без аудита
- Аудит управления учетными записями — аудит успехов и неудач
- Аудит доступа к службам каталогов — без аудита
- Аудит событий входа в систему — Аудит успеха и неудачи
- Аудит доступа к объекту — ошибка аудита
- Изменение политики аудита — успехи и неудачи аудита
- Использование привилегий аудита — ошибка аудита
- Отслеживание процесса аудита — ошибка аудита
- Аудит системных событий — Аудит успеха и неудачи
Наряду с этим вы также можете использовать аудит подключений в службах терминалов. Это позволяет вам проверять несколько элементов, специфичных для сервера терминалов. Чтобы просмотреть и настроить эти параметры, откройте оснастку «Конфигурация служб терминалов», щелкните правой кнопкой мыши подключение, для которого вы хотите включить аудит, и выберите «Свойства». Перейдите на вкладку «Безопасность», нажмите «Дополнительно» и введите имя пользователя учетной записи, для которой вы хотите включить аудит. На этом этапе вы можете выбрать один из перечисленных вариантов.
Рисунок 5
Вывод
Эта статья ни в коем случае не является исчерпывающим руководством для всего, что вам нужно знать о безопасности терминального сервера, но она охватывает несколько важных вещей, которые вам нужно сделать, и многие вещи, которые я часто упускаю из виду. Службы терминалов прошли долгий путь с момента своего первоначального создания, и хотя безопасность когда-то считалась слабым местом, это уже не так, когда вносятся надлежащие изменения в конфигурацию.