Перед вами вторая часть обзора о применении фильтров IP безопасности (IP Security) в Windows 2000. В первой статье содержался краткий обзор политики IP безопасности, включая создание, проверку, и расширение политики IP безопасности. В этом части мы обсудим шифрование Windows-систем и применение фильтров IP безопасности.
михаил разумов, по материалам securityfocus
Перед вами вторая часть обзора о применении фильтров IP безопасности (IP Security) в Windows 2000. В первой статье содержался краткий обзор политики IP безопасности, включая создание, проверку, и расширение политики IP безопасности. В этом части мы обсудим шифрование Windows-систем и применение фильтров IP безопасности.
Обсудим родной Windows 2000 метод установления подлинности Kerberos. Чтобы использовать аутентификацию Kerberos, ваша машина должна быть частью домена. Если она не является таковой, вы можете использовать Certificate from a Certificate Authority или Preshared Key. Если ваша машина не принадлежит домену и не имеет local Certificate Authority, прежде чем продолжить, придется проделать незначительные изменения. Откройте редактор Group Policy в Microsoft Management Console (MMC), или просто запустите GPEDIT.MSC из меню Start, и дважды нажмите мышью на политике IP безопасности, которую вы создавали и активизировали. Выберите правило "Allow Terminal Services IP Security" и нажмите кнопку "Edit". Перед вами появится окно Properties для этого фильтра. Перейдите в окно "Authentication Methods". Вы должны увидеть заданный по умолчанию метод аутентификации Kerberos. Нажмите кнопку "Add", и выберите селективную кнопку "Use This String To Protect The Key Exchange". Введите текст, который вы желаете использовать в качестве Preshared Key и нажмите "OK". Обратите внимание, что Preshared Key хранится и просматривается в текстовом виде и должен быть сконфигурирован на каждом компьютере, который будет использовать шифрованное подключение с вашим компьютером. Когда вы вернетесь к окну списка "Authentication Methods", выделите "Preshared Key", и нажмите "Move Up", чтобы поставить этот метод аутентификации первым среди доступных. Это уменьшит время подсоединения и устранит ошибки, могущие возникнуть при не прохождении аутентификации Kerberos.
Основываясь на фильтрах IP безопасности, созданных нами ранее, мы добавим шифрование к фильтрам Terminal Services, чтобы обеспечить безопасную связь. Откройте редактор Group Policy в Microsoft Management Console (MMC), или просто запустите GPEDIT.MSC и дважды щелкните мышью на политике IP безопасности, которую Вы создали и активизировали. Выделите правило "Allow Terminal Services" и нажмите кнопку "Edit". Вы увидите окно свойств для этого фильтра. Перейдите в окно "Filter Action". Вы должны увидеть выбранную селективную кнопку "Permit". В этом примере мы сделаем, чтобы все разрешенные сессии Terminal Server были зашифрованы. Выберите кнопку "Require Security" и нажмите "Edit". Перед вами опции для изменения "Security Methods" для этого фильтра. Так как мы хотим принимать только зашифрованные подключения, и запрещать незашифрованные, отключите поле "Accept Unsecured Communication". Это поле свойств также позволяет вам изменять алгоритмы шифрования; но сейчас мы сохраним настройки по умолчанию, как показано на рисунке 10.
Рис. 10: Методы обеспечения безопасности
Нажав "OK", закройте окно "Properties". Теперь вы сделали обязательным, чтобы все разрешенные подключения Terminal Service были зашифрованы с IPSEC. Поскольку "Require Security" включено на вашем компьютере, потребуется также специальная настройка на всех клиентах, которые хотят соединиться с вашим компьютером.
На всех компьютерах, с которых вы собираетесь получить доступ к Terminal Service вашего компьютера, потребуется следующее небольшое изменение. Так как вы используете Require Security, вы ограничиваете подключения только на компьютеры с Windows 2000, поскольку это - единственная версия операционной системы Windows, которая поддерживает особенности IPSEC. Откройте редактор Group Policy на компьютере-клиенте, и нажмите на "IP Security Policies" на "Local Machine" в Computer Configuration's Security Settings.
Если вы ранее установили preshared key, кликните дважды на политику "Client (Respond Only)", выделите правило "Default Response" и нажмите кнопку "Edit". Выберите окно "Authentication", и добавьте ваш preshared key к ключу, заданному ранее. Не забудьте с помощью кнопки "Move Up" переместить preshared key наверх списка "Authentication Method Preference Order".
Если ваш клиент находится в домене, и вы используете на сервере метод аутентификации Kerberos, никаких изменений на клиенте не требуется.
Чтобы включить использование клиентом шифрования при подключении к вашему компьютеру, просто щелкните правой кнопкой мыши на политику "Client (Respond Only)" и выберите пункт меню "Assign". На значке папки рядом с политикой IP безопасности должен появиться зеленый значок плюса (+), указывающий, что эта политика активна.
Чтобы убедиться, что подключение к Terminal Service от клиента на ваш компьютер действительно зашифровано при использовании этой политики, Windows 2000 содержит утилиту мониторинга IPSEC. Просто запустите IPSECMON.EXE. Окно мониторинга автоматически обновляется каждые 15 секунд, что может быть изменено через кнопку "Options". В нижнем правом углу должно быть указано, что IP безопасность включена на этом компьютере. Если это не так, удостоверьтесь, что политика включена в редакторе Group Policy. Запустите подключение к Terminal Services от клиента на ваш компьютер. Утилита мониторинга IPSEC должна отобразить это подключение (рис. 11).
Рис. 11: Успешное IPSEC подключение
Поскольку каждый фильтр, для которого вы устанавливаете шифрование, создаст новую сессию шифрования, компьютер может увязнуть в шифровании и замедлить работу. Замена сетевой платы на плату, которая будет аппаратно исполнять операции IPSEC, уменьшит загрузку CPU на сервере, ограничение шифрования только на особо важные сервисы также уменьшит загрузку процессора. Но что делать, если вы хотите обеспечить связь между контроллерами домена, чтобы предотвратить репликацию от неавторизированных компьютеров? Что, если вам нужно сделать репликацию на другой контроллер домена, который находится за firewall? Во втором случае, понадобилось бы открыть многочисленные порты в firewall, чтобы поддержать RPC запросы о дублировании, не говоря уже о портах NetBIOS, и других портах, которые Windows использует для связи контроллеров домена. Однако, существует более дружественное firewall’ам решение, которое сорвет подсоединение от неавторизированных компьютеров.
По умолчанию, Windows будет копировать изменения Active Directory на другие контроллеры домена по RPC. Служба RPC запускает соответствующие сервисы по случайным портам с номерами более чем 1024. Все это делает очень сложным ограничить кого-либо от использования Windows 2000 Server в качестве Контроллера Домена и выполнению неправомочного дублирования Windows 2000 Active Directory domain. Однако, возможно ограничить порт, используемый для репликации и создать фильтры IP безопасности, которые разрешат только определенным контроллерам домена производить репликацию. Ограничить порт, который используется репликацией Active Directory, на каждом контроллере домена при помощи REGEDIT должен быть создан следующий ключ:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDW\Parameters
Registry Value: TCP/IP Port
Value Type: REG_DWORD
Value Data: *
*Специфицированный IANA (Internet Assigned Numbers Authority) диапазон для частных портов 49152-65535
После установки этого ключа, нужно перезагрузить контроллеры домена, чтобы изменения возымели эффект. После установки и активизации этого ключа, контроллеры домена Windows 2000 будут использовать заданный метод (RPC, IP, или SMTP) для связи с таким же контроллером домена и устанавливать подключение для репликации на заданном порту. Это минимизирует количество портов, которые требуется открыть в firewall и позволяет создание фильтров IP безопасности, запрещающих неавторизированные попытки дублирования. Позже, мы увидим, как мы можем еще уменьшить количество портов, которые открыты в firewall.
Теперь, когда контроллеры домена реплицируют через определенный порт, вы можете создать фильтры IP безопасности, чтобы разрешить связь между авторизованными контроллерами домена и запретить репликацию от неавторизованных источников. Эти фильтры должны быть установлены на всех контроллерах доменов. Причем, на каждом контроллере домена нужно будет создать соответствующие фильтры, в которых будут определены все контроллеры домена, с которыми он производит репликацию. Это делает начальную установку длинной, но обеспечивает наиболее безопасную конфигурацию. Обратите также внимание, что, если вы попытаетесь включить в домен с этими фильтрами новый авторизованный контроллер домена, он не сможет реплицировать до тех пор, пока фильтры, разрешающие его связь, не определены на всех контроллерах домена.
В следующем примере у нас есть два контроллера домена (DC – domain controller), и мы установили соответствующий ключ реестра на каждом, чтобы осуществлять репликацию на порту 50000:
Мы создадим следующий фильтр IP безопасности на DC1 (к настоящему моменту, вы должны быть знакомы с созданием фильтров IP безопасности). В обоих примерах мы будем использовать опцию Mirror (которая включена по умолчанию):
Filter Name: Replication with DC2
Filter Name: Deny Unauthorized Replication
Далее, мы также создадим следующие фильтры IP безопасности на DC2:
Filter Name: Replication with DC1
Filter Name: Deny Unauthorized Replication
Как только эти фильтры IP безопасности заданы и приписаны к политике, просто включите политику через редактор Group Policy и запустите IPSEC Monitor (IPSECMON.EXE). В процессе следующей репликации, вы должны увидеть установленное подключение в окне мониторинга IPSEC.
Предыдущий пример все еще требует множество портов, открытых в firewall и не защищен полностью от перехвата данных, если репликация производится через общественную сеть типа Internet. Чтобы продвинуться далее, мы зашифруем всю связь между контроллерами домена с помощью политик IP безопасности, соответственно требуя даже меньшее количество портов, открытых в firewall и обеспечивая еще большую защиту от декодирования связи неавторизованными клиентами.
Имея фильтры IP безопасности, которые мы предварительно создавали на серверах DC1 и DC2, мы изменим их и на DC1 и DC2:
DC1 Filter Name: Replication with DC2
DC2 Filter Name: Replication with DC1
На обоих DC1 и DC2 мы сохраним фильтры "Deny Unauthorized Replication", чтобы предотвратить неавторизированную репликацию с других контроллеров домена. Фильтры, которые мы только что создали, зашифруют весь обмен информацией между DC1 и DC2, при этом блокируя подключения к порту 50000 с других компьютеров. Однако, некоторые сервисы, такие как аутентификация Kerberos между контроллерами домена, который считается защищенным механизмом аутентификации, и Multicast, не шифруются с использованием этих фильтров.
Если бы нам нужно было обеспечить связь с третьим контроллером домена, мы должны были бы создать те же самые фильтры IP безопасности с IP адресом третьего контроллера домена на каждом из существующих контроллеров домена. Обратите внимание, что могут возникнуть трудности с включением нового контроллера домена в эту конфигурацию без предварительного создания соответствующих фильтров IP безопасности на каждом из существующих контроллеров домена. Кратко опишем фильтры, которые нужно создать на каждом существующем контроллере домена, чтобы позволить репликацию с новым сервером Windows 2000:
DC1 Filter Name: Replication with DC3
Как вы можете заметить, мы просто создали новый фильтр IP безопасности и изменили действие фильтра с "Require Security" на "Permit". Как только новый контроллер домена подключен и провел репликацию, создайте на нем соответствующие фильтры IP безопасности для связи с другими контроллерами домена, затем вернитесь к каждому существующему контроллеру домена, и замените действие фильтра "Permit", на "Require Security".
К настоящему времени, вы уже должны уметь создавать и использовать фильтры IP безопасности и методы шифрования. Но что вам следует использовать у себя? Следует ли шифровать всю связь, увеличивая загрузку на CPU, и ограничивать клиентов, которые могут подсоединяться, или только шифровать некоторые из важных сервисов? Или вы хотите просто ограничить некоторые сервисы для некоторых клиентов, оставляя открытым подсоединение к другим сервисам? Ниже мы рассмотрим несколько стандартных ситуаций и предложим схему фильтров, которая наилучшим образом исполнит требуемую задачу.
Для сервера общего назначения, например Web-сервера, вы вряд
ли захотели бы использовать IPSEC шифрование; скорее, вы захотели закрыть от
клиентов, использующих Web-сервер, другие сервисы на сервере (например, предоставленные
в совместное пользование диски
Имя политики: My Web Server
Необходимые действия фильтра: Permit, Block
Filter 1 Name: Allow HTTP from Internet
Filter 2 Name: Allow Everything From Local Subnet
Filter 3 Name: Deny Anything Not Defined
В следующей ситуации, у нас есть Web-сервер с установленным Microsoft Terminal Services для управления из локальной подсети. Так как было бы не совсем умно дать доступ к Terminal Services из Internet, и поскольку все прослушивающие сервисы на сервере заблокированы, за исключением Web-сервиса и Terminal-сервиса мы будем использовать заданное по умолчанию правило "Allow":
Имя политики: Windows Terminal Server
Необходимые действия фильтра: Permit, Block
Filter 1 Name: Allow Terminal Services from Local Network
Filter 2 Name: Deny Terminal Services from Everywhere Else
Следующий случай содержит пример политики IP безопасности, которая может быть использована между контроллерами домена, расположенными внутри вашей организации, и которые не производят репликацию через общественные сети. В этом примере вы хотим ограничить репликацию только на известные контроллеры домена:
Имя политики: My Domain Controller
Необходимые действия фильтра: Require Security, Block
Другие требования: Установить ключ реестра (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDW\Parameters) в значение порта для репликации.
Filter Name: Replication with DC2
Filter Name: Deny Unauthorized Replication
И, наконец, попытаемся организовать все соединения через firewall, с адресатом, находящимся в общественной сети. Мы хотим объединить всю связь в единый "сервис", таким образом, не понадобится задавать множество портов в firewall. Также, мы хотим зашифровать данные, чтобы никто не смог перехватить их и прочитать. Мы также хотели бы, чтобы местная связь производилась без шифрования.
Имя политики: Communication Through a Public Network
Необходимые действия фильтра: Require Security
DC1 Filter Name: Replication with DC2
Использование фильтров IP безопасности - только часть модели полной защиты. Вам все еще требуется использовать firewall и регулярно обновлять системные исправления (патчи) и сервисные пакеты. Однако, политика IP безопасности позволит вам более детально задавать, кто может использовать сервисы, предоставляемые вашим компьютером, если таковые вообще имеются, и как будет шифроваться связь, если будет. Но помните, фильтры политик IP безопасности - просто фильтры пакетов: если не используется адекватное средство контроля на сетевом уровне, злоумышленник все еще может исполнять DOS-атаки и спуфинг-атаки. Наконец, фильтры IP безопасности не защитят против приложений – эксплоитов на сервисы, которые позволяются фильтром.
Сбалансированная диета для серого вещества