С помощью данной технологии можно создавать различные политики для проверки состояния компьютера, перед тем как разрешить ему доступ в сеть.
Андрей Бирюков
MCSE+Security, MCDBA, CCNP
Глобальная сеть Интернет таит в себе много угроз для пользователей: вирусы, черви, троянские кони… Все эти угрозы хорошо знакомы каждому системному администратору. Многие считают, что для борьбы с ними достаточно межсетевого экрана, корпоративного антивируса и своевременной установки обновлений. Однако жизнь показывает, что таких мер не всегда достаточно. Приведем несколько примеров. Во многих организациях для проникновения в корпоративную сеть достаточно просто подключиться к любой свободной сетевой розетке. И злоумышленник тут же получит IP адрес по DHCP и сможет без труда просканировать сеть на предмет наличия доступных ресурсов. Может он и не сможет сразу завладеть учетной записью доменного администратора, но зачастую этого и не требуется.
Другой пример, более близкий к реальности. Сотрудник возвращается из командировки со своим ноутбуком. Естественно антивирусные базы не обновлялись и критические обновления не устанавливались. Как водится, на ноутбуке у пользователя были права локального администратора (а что, у вас в организации не так?!) в связи с чем за время командировки лэптоп превращается в настоящий “зверинец”, содержащий вредоносное ПО всех мастей. Когда, с такого ноутбука пользователь заходит в локальную сеть, вредоносное ПО начнет пытаться размножаться, что может привести к весьма неприятным последствиям.
Основной вывод, который можно сделать из приведенных примеров это то, что необходимо отслеживать каждую подключающуюся в сеть машину на предмет “благонадежности”. Многие разработчики выпустили свои решения, позволяющие решить данную проблему. Наиболее известным является Cisco Network Admission Control от корпорации Cisco. Мне приходилось внедрять Cisco NAC L2 вместе с антивирусом от Trend Micro. Однако, данное решение обладает рядом недостатков, что усложняет его внедрение.
Вот мы наконец и подошли к теме сегодняшней статьи, а именно к описанию технологии Network Access Protection, представленной в Microsoft Server 2008 и Windows Vista. Вообще, Windows Server 2008 Longhorn (уже прозванный в народе “длиннорогим”) обладает целым рядом нововведений, в том числе и связанных с безопасностью, некоторые из которых, возможно, станут темами последующих статей. Но сегодня мы обсудим технологию NPS, впервые появившуюся в качестве серверного решения именно в Windows Server 2008.
Технология NAP позволяет ограничить доступ к сети, разрешая его только хостам, удовлетворяющим требованиям безопасности. С помощью данной технологии можно создавать различные политики для проверки состояния компьютера, перед тем как разрешить ему доступ в сеть. Компьютерам, не удовлетворяющим этим требованиям можно, к примеру, разрешить доступ только в карантинную зону, где они смогут установить необходимые обновления, или же запретить доступ совсем.
Что же представляет из себя Network Access Protection, из каких компонент состоит и как работает? Основным элементом, осуществляющим проверку хоста является Network Policy Server (NPS), служба, входящая в состав Windows Server 2008. NPS является RADIUS сервером, и пришел на смену Internet Autentification Server (IAS), входившему в состав Windows Server 2003. NPS осуществляет аутентификацию и авторизацию попытки сетевого подключения, основываясь на политиках безопасности, определяет, можно ли хосту подключиться к сети. В качестве примера, я продемонстрирую установку и настройку сервера Network Policy Server и соответствующих политик. Для простоты будем считать, что у вас уже установлен Windows Server 2008. В окне Add Roles Wizard, которое как и версии 2003 появляется после загрузки системы, выбираем Network Policy and Access Service.
На следующем шаге определяемся с компонентами, которые нам необходимо установить. В данном случае, нас интересует только Network Policy Server.
Подтверждаем выбранные опции и запускаем процесс установки.
Как видно все довольно просто. Теперь откроем консоль настройки установленного приложения. Делается это как и в прежних версиях Windows, из раздела Administrative Tools. Консоль администрирования NPS после установки выглядит так
Теперь необходимо настроить политики Запроса соединения (Connection Request Policies). Данные политики определяют набор правил, которые использует NPS для проверки попыток соединений. В качестве примера, настроим одну из таких политик.
Для этого необходимо в консоли администрирования NPS выбрать Policies, и далее Health Policies.
Политики состояния системы (Health Policies) позволяют определить требования к состоянию системы с помощью System Health Validators (SHV), так называемых маркеров, которые сообщают NPS о состоянии системы машины, запрашивающей подключение (NAP клиента). Вот пример health policy.
Маркер SHV может иметь следующее состояния:
Client passes all SHV checks – проверки всех маркеров прошли успешно. В таком случае, как правило, пользователь получает полный доступ к сети (естественно в рамках своих полномочий)
Client fails all SHV checks – не одна проверка не пройдена. Как правило, таких пользователей лучше не пускать в сеть вообще.
Client passes one or more SHV checks – клиент прошел одну или несколько проверок. Здесь все определяет то, какие проверки прошел пользователь. Как правило, в такой ситуации лучше всего разрешить доступ только в карантинную сеть, где он сможет установить недостающие обновления и патчи.
Client fails one or more SHV checks – клиент не прошел одну или несколько проверок. Случай аналогичный предыдущему. Разница лишь в том, что для вас приоритетней.
Client reported as transitional by one or more SHV’s – транзитный маркер возвращается, когда машина только подключилась к сети, и состояние SHV еще не определено.
Client reported as infected by one or more SHV’s – состояние Infected. Антивирусные продукты, интегрированные с NAP могут возвращать такое состояние SHV.
Client reported as unknown by one or more SHV’s – состояние неизвестен обычно бывает на тех машинах, которые несовместимы, либо на них не установлен клиент NAP. Понятно что такие машины тоже лучше в сеть не пускать.
Далее необходимо определить, политики, определяющие критерии, по которым определяется состояние клиента, а также действия NPS. Для этого в разделе Network Access Protection выбираем System Health Validators.
В первом окне определяются различные состояния SHV. В окне Configure определяются более подробные настройки.
Как видно, мы можем определить различные параметры, которым должна соответствовать каждая машина, пытающаяся подключиться к нашей сети. Обратите внимание на то, что политики для Windows Vista и для Windows XP немного различаются.
Для настройки действий, которые производятся в случае соответствия SHV той или иной политике необходимо открыть консоль Network Policies, далее в NAP Enforcement, в закладке Settings определяем Network Policy.
В этом разделе можно определить различные действия, которые применяются к рабочим станциям, соответствующим тем или иным состояниям SHV. В частности, можно определить политики, позволяющие доступ в сеть только в определенные промежутки времени, или ограничить доступ только определенными ресурсами.
Как все это работает
Теперь, когда я описал настройку всех основных компонент NAP, необходимо пояснить, как все это работает. Клиентская машина, на которой установлена Windows XP+SP2 или Vista пытается установить соединение. Это выражается в RADIUS Access- Request запросе к серверу NPS. Сервер NPS сравнивает содержимое Access-request сообщения с политиками, которые мы определили при настройке Health Policy. В зависимости от того, соответствует или нет данная информация политикам, NPS применяет к пользовательской станции то или иное действие, определенное в network Policy. Далее служба NPS отправляет RADIUSAccess-Accept сообщение с информацией об уровне доступа пользователя.
Описанный выше процесс работы компонент NAP несколько упрощен, потому что углубляться в технические подробности нет смысла, так как многое определяется конкретной реализацией некоторых компонент системы.
У многих может возникнуть вполне резонный вопрос: что произойдет, если в сеть попытается подключиться рабочая станция с операционной системой неподдерживаемой NAP, к примеру с Linux? Ответ прост: NPS не сможет получить от такой машины маркер SHV, соответственно, к ней должна быть применена политика для состояния Unknown и при правильной настройке политик NPS, такая машина не должна получить доступ в сеть.
Фактически настройка основных компонент NAC завершена. Конечно, некоторые рутинные моменты остались за рамками данной статьи. Тем читателям, кого заинтересовала тема данной статьи и интересуют моменты практической реализации, я рекомендую выполнить следующие лабораторные работы:
Использованные источники:
1. http://www.microsoft.com/nap
2. http://www.microsoft.com/technet/network/nap/napoverview.mspx
Одно найти легче, чем другое. Спойлер: это не темная материя