Используйте беспроводной стандарт для защиты проводной сети
Обычные сети TCP/IP, использующие протокол DHCP, беззащитны перед хакерами, которые могут обнаружить брешь в сети и проникнуть сквозь нее. Сеть гостеприимно предоставляет неавторизованному компьютеру IP-адрес, и злоумышленник может совершить множество различных действий, в том числе забраться на интересующие его серверы, просмотреть сетевые пакеты, а также запустить «червей» или предпринять атаки типа DoS (Denial of Service). Агрессор из Internet, прорвавшийся сквозь брандмауэр, будет иметь подобный уровень доступа.
В такой ситуации может помочь технология 802.1x. Хотя ее основным назначением является обеспечение безопасности в сетях Wi-Fi, стандарт 802.1x способен защищать любую сеть стандарта Ethernet, в том числе проводные сети. В этой статье я покажу, как использовать данный беспроводной стандарт в проводной сети и таким образом противостоять попыткам хакеров получить физический доступ к входным узлам сети. На самом деле служба 802.1x может защитить компьютеры даже от зараженных вирусами программ поставщиков или посредников, которые подключаются к сети.
Немного истории
Исторически мы доверяли защиту своих данных физическим средствам, ограничивающим доступ к пограничным узлам сети, и использовали полностью коммутированные сети, чтобы обеспечить хоть какую-то защиту от атак методом подглядывания. Однако хакеры могут использовать переадресацию протокола Address Resolution Protocol (ARP), чтобы обмануть коммутаторы при попытке просмотра сетевых пакетов. Я слышал немало рассказов о том, как злоумышленники проникали в сеть компании и получали доступ к ресурсам. Для этого нужен был лишь удаленный офис, подсоединенный к корпоративной сети, которая не могла контролировать доступ к данному пограничному узлу. Что мешает консультантам, торговым представителям и техническому персоналу проникнуть в корпоративную сеть? В худшем случае хакер подключит к сети беспроводное устройство Access Point (AP), после чего покинет здание, имея возможность удаленно войти в сеть. Серверы DHCP в случае работы с арендованными IР-адресами и неавторизованными компьютерами просто непрактичны или неэффективны. Злоумышленник без труда найдет неиспользуемые IP-адреса.
Рисунок. Основные компоненты технологии 802.1х |
Стандарт технологии 802.1x создает зону безопасности между службой каталога (например, службой Active Directory (AD)) и портами сетевых коммутаторов. Когда используется технология 802.1x, клиенты должны быть идентифицированы коммутатором до того, как коммутатор сможет начать пересылку пакетов на систему клиента и обратно. Служба 802.1x использует два протокола: Remote Authentication Dial-in User Service (RADIUS) и Protected Extensible Authentication Protocol (PEAP). Протокол RADIUS контролирует соединения между коммутатором и службой каталога, а протокол PEAP управляет трафиком авторизации между клиентской машиной и службой каталога. На экране 1 показаны компоненты, необходимые для внедрения технологии 802.1x. Windows 2000 и более поздние системы обеспечивают полную поддержку данной технологии, и настроить ее довольно просто. Можно сделать процесс идентификации технологией 802.1x невидимым для пользователей домена, ужесточив доменную учетную запись, которую они указывают при регистрации в системе.
Работая над этой статьей, я применял технологию 802.1x в реальной сети Windows, использующей службу Active Directory и клиентские компьютеры с системами Windows XP Service Pack 2 (SP2). Хотя технология 802.1x может работать с системами Windows 2000 и ранними версиями XP, для простоты я буду рассматривать лишь систему XP SP2. Система Windows Server 2003, как и коммутатор с поддержкой 802.1x, входит в состав данного решения. Я использовал коммутатор Cisco 2950, но подойдет любой коммутатор, совместимый с технологией 802.1x. Проект состоит из трех основных этапов. Во-первых, нужно настроить службу Microsoft Internet Authentication Service (IAS) в системе Windows 2003, чтобы обеспечить возможность соединения между коммутатором и службой AD посредством протокола RADIUS. Во-вторых, следует настроить коммутатор для работы с 802.1x. В-третьих, требуется настроить службы 802.1x на клиентских компьютерах.
Настройка службы IAS
Служба IAS является встроенной в систему Windows сервером RADIUS и реализует функции передачи данных между коммутатором и службой AD. Когда клиент подключается к порту коммутатора, коммутатор устанавливает соединение с сервером IAS для идентификации клиента и проверки его прав на использование сети. В процессе идентификации коммутатор выступает в роли устройства проверки (authenticator, в терминологии 802.1x) между клиентом (supplicant) и сервером службы IAS (службой проверки). Клиент и сервер IAS соединены между собой посредством протокола EAP, в то время как коммутатор просто инкапсулирует трафик EAP в пакеты RADIUS на участке между ним и сервером IAS. Протокол EAP позволяет реализовать любой тип идентификации, в том числе использование одноразовых паролей-жетонов, технологии smart card, и, как в случае, рассмотренном в этой статье, паролей пользователей и/или компьютеров. Для коммутатора не имеет значения, какой тип идентификации используется. Он просто осуществляет двустороннюю передачу сообщений протокола EAP между клиентом и сервером службы IAS, до тех пор пока служба IAS не сообщит, что клиент авторизирован. Однако протокол EAP сам по себе не устраняет уязвимости в различных механизмах идентификации. Например, основанные на паролях протоколы типа запрос/ответ могут стать объектами взлома, повторяющихся атак и т. д. Поэтому компания Microsoft использует протокол PEAP, чтобы ввести дополнительный слой инкапсуляции. В теле протокола EAP Windows создает туннель SSL (Secure Sockets Layer) и выполняет внутри него реальную идентификацию.
Перед установкой службы IAS требуется установить пакет Certificate Services для того, чтобы служба IAS могла получить сертификат, необходимый протоколу PEAP. Протоколу этот сертификат нужен для создания туннеля SSL и при необходимости для идентификации клиента сервером IAS. После того как вы установили систему Windows 2003 и добавили ее в домен, нужно установить службу Microsoft IIS с включенным компонентом Active Server Pages (ASP). Далее следует установить службу сертификации Certificate Services в качестве базовой для предприятия. Можно установить оба компонента с помощью модуля Add or Remove Programs из Control Panel.
Итак, займемся установкой службы IAS. В этой статье сервер службы IAS назван именем IAS-1, данное обозначение появится и в некоторых рисунках. Откройте пункт Add or Remove Programs в окне Control Panel и выберите раздел Add/Remove Windows Components. Затем следует открыть контейнер Networking Services и установить флажок в поле Internet Authentication Service. Нажмите OK, далее — Next. После завершения установки нужно открыть оснастку Internet Authentication Service консоли Microsoft Management Console (MMC), которая находится в папке Administrative Tools.
Во-первых, чтобы убедиться в наличии у сервера IAS достаточных прав для идентификации пользователей и компьютеров в AD, необходимо зарегистрировать сервер. Щелкните правой кнопкой мыши на корневом узле Internet Authentication Service (Local) и выберите пункт Register server in Active Directory. Во-вторых, требуется разрешить службе IAS протоколирование, что поможет при отладке настроек. Затем нужно снова щелкнуть правой кнопкой мыши на корневом узле и выбрать пункт Properties. На закладке Services окна Internet Authentication Service (Local) Properties следует установить флажки в обоих полях, так что сервер будет протоколировать и отклоненные, и принятые запросы на авторизацию.
Теперь займемся настройкой соединений, использующих протокол RADIUS, между службой IAS и коммутатором. Прежде всего, необходимо настроить запись клиента RADIUS для коммутатора, чтобы служба IAS могла принимать запросы на авторизацию от коммутатора. Нужно щелкнуть правой кнопкой на элементе RADIUS Clients в корневом узле оснастки и выбрать пункт New RADIUS Client для запуска мастера. На первой странице мастера следует ввести описательное имя коммутатора, а также его IP-адрес или имя DNS, после чего нажать кнопку Next. На последней странице необходимо обезопасить соединения между коммутатором и сервером службы IAS. Теперь следует ввести длинный, сложный пароль в поля Shared Secret и Confirm Shared Secret и установить флажок в поле Request must contain the Message Authenticator attribute. Также необходимо изменить значение поля Client-Vendor с RADIUS Standard на Cisco (или другое имя производителя и коммутатора). Если нужного производителя в списке нет, просто выберите значение RADIUS Standard. Настройка производителя коммутатора не является обязательной, но даст определенные преимущества при внедрении множества политик удаленного доступа. Нажмите ОK. Теперь, если открыть свойства только что созданного клиента протокола RADIUS, появится диалоговое окно, подобное форме, приведенной на экране 1.
Экран 1. Указание производителя коммутатора |
Следующий шаг — создание политик удаленного доступа для запросов, поступающих с коммутатора. Вместе с политикой удаленного доступа определяется тип идентификации, которую должен пройти конечный пользователь, а также совокупность дополнительных ограничений. Так как сервер RADIUS, например сервер IAS, может обслуживать запросы от множества различных устройств (коммутируемых серверов, VPN-серверов, беспроводных устройств AP и коммутаторов), службе IAS требуется механизм, ассоциирующий каждый запрос с соответствующей политикой удаленного доступа. Существует множество способов настройки политик удаленного доступа. В данном случае мы не будем усложнять процесс и используем атрибут client-vendor в качестве критерия отбора. Таким образом, данная политика удаленного доступа будет применена к запросам, атрибут client-vendor которых имеет значение Cisco, но проигнорирует другие клиенты протокола RADIUS (например, сервер Microsoft RRAS).
Для создания политики нужно щелкнуть правой кнопкой мыши на Remote Access Policies и выбрать раздел New Remote Access Policy, после чего будет запущен мастер. Установите флажок в поле Use the wizard to set up a typical policy for a common scenario, введите описательное имя политики (например, Switch Port Access Control) и нажмите Next. На странице Access Method следует выбрать Ethernet и щелкнуть Next. На странице User or Group Access необходимо добавить содержание областей Domain Users и Domain Computers в список Group name. Компьютеры домена требуется добавить для того, чтобы при загрузке компьютер мог получить доступ к контроллерам домена для временной синхронизации, загрузки групповой политики и идентификации на контроллере домена при попытках пользователя авторизоваться с помощью учетной записи домена. Однако мы собираемся настроить наши компьютеры таким образом, чтобы при авторизации пользователи не могли получить доступ к сети до момента успешной идентификации на коммутаторе. При этом процесс идентификации будет скрыт от авторизованных пользователей домена. Данный аспект очень важен, так как взломщик, имеющий физический доступ к компьютеру, может с легкостью использовать средство, подобное программе Ntpasswd, для взлома учетной записи локального администратора. Настроив компьютер на повторную идентификацию, после авторизации пользователя вы будете уверены в тщетности подобных атак.
Экран 2. Завершающая страница настройки политики удаленного доступа |
Нажмите Next, чтобы перейти на страницу Authentication Methods. Выберите вид протокола Protected EAP (PEAP) и снова нажмите Next. Результирующая страница, содержащая совокупность выбранных настроек, показана на экране 2. Нажмите Finish. Вы создали политику удаленного доступа, которая позволит пользователям и компьютерам домена получать доступ к проводной сети, но необходимо внести одно изменение. Если открыть свойства политики удаленного доступа, можно заметить, что начальное состояние политики требует наличия порта типа NAS-Port-Type для соответствия стандарту Ethernet. Однако коммутатор Cisco 2950 не описывает свой порт как порт Ethernet, которого служба IAS ожидает при работе с коммутаторами 802.1x. Поэтому нужно просто удалить данное условие политики. Но необходим способ связать эту политику с запросами, поступающими от коммутатора. При условии что у нас нет других устройств Cisco, работающих в качестве клиентов с этим сервером IAS, нужно добавить новое условие политики с требованием соответствия атрибута Client-Vendor значению Cisco. Вспомним, что таким же образом мы настроили и клиентскую запись протокола RADIUS. Нажмите OK, чтобы закрыть политику. Теперь сервер службы IAS готов обслуживать запросы с коммутатора, о котором сейчас и пойдет речь.
Настройка коммутатора
Предположим, что ваш коммутатор еще находится в упаковке. Настройки коммутаторов могут различаться, но все они предполагают схожие основные шаги. После того как вы включили новый коммутатор Cisco 2950, прежде всего необходимо присвоить ему IP-адрес. Проще всего это сделать, переведя коммутатор в режим экспресс-настройки. Нажмите и удерживайте кнопку Mode на лицевой стороне в течение трех секунд. Если коммутатор работает в правильном режиме, загорятся все три световых индикатора. Теперь нужно подключить персональный компьютер с включенным протоколом DHCP к одному из портов коммутатора с помощью сетевого кабеля. После того как компьютер получит IP-адрес, откройте Web-браузер и обратитесь по адресу 10.0.0.1, по которому отображается Web-страница настройки коммутатора. Настройте коммутатор, определив доступный статический IP-адрес в сети, введите соответствующий номер подсети и адрес шлюза, используемого по умолчанию. Коммутатор перезапустится и начнет использовать новый статический адрес. Следует подключить коммутатор к сети, и с компьютера, подключенного к сети, снова открыть браузер, только на этот раз обратиться по новому адресу коммутатора, как это показано на экране 3. Разрешите использование службы Telnet с помощью поля Telnet Access и введите надежные пароли в поля Switch Password и Telnet Password. Обязательно запомните пароль, чтобы получить доступ к коммутатору в дальнейшем. Нажмите Save.
Экран 3. Параметры экспресс-настройки Cisco 2950 |
Мы используем службу Telnet, чтобы завершить настройку. Откройте командную строку и введите:
telnet <адрес коммутатора>
Введите пароль к службе Telnet и следующие команды:
Configure terminal
Aaa new-model
Aaa authentication dot1x
default group radius
dot1x system-auth-control
Aaa authentication
login default enable
Приведенные выше команды разрешают использование протокола RADIUS и технологии 802.1x для коммутатора, потом создают исключение для Web-доступа и доступа через службу Telnet, так что можно обратиться к коммутатору с помощью паролей, которые мы определили ранее. Теперь технология 802.1x включена на самом коммутаторе, но еще нужно указать, какие порты коммутатора должны требовать от подключающихся клиентов идентификации посредством данной технологии. Целесообразно установить управление только на те порты, к которым подсоединены недостаточно защищенные узлы сети. Например, нет нужды использовать технологию 802.1x для портов, через которые подключены серверы, находящиеся в охраняемом помещении, или на портах, соединяющих коммутатор с сервером службы IAS. Коммутатор Cisco 2950 имеет 24 порта на 10/100 Кбит/с и два порта на 100/1000 Кбит/с. При подготовке статьи я использовал технологию 802.1x на первых 16 портах, а оставшиеся восемь портов и два высокоскоростных порта оставил без дополнительного управления. Чтобы настроить порт для работы с 802.1x, нужно ввести следующие команды:
Interface FastEthernet0/1
switchport mode access
Dot1x port-control auto
Чтобы настроить еще один порт, повторите приведенные выше команды, но замените символ 1 на номер соответствующего порта.
Теперь нужно настроить коммутатор для работы с сервером IAS. Полагая, что адрес сервера IAS — 10.42.42.1, а пароль, который вы ввели при настройке записи клиента RADIUS — Djlk33EU3dj39dEE4, требуется выполнить определенную последовательность команд:
Radius-server host 10.42.42.1
auth-port 1812 key
Djlk33EU3dj39dEE4
После завершения настройки коммутатора введите
end
Настройки можно проверить с помощью команды:
show running-config
А сохранить — выполнив команды:
copy running-config
startup-config
Итак, наш коммутатор готов к работе. Теперь настроим клиентскую систему XP.
Настройка клиентских систем
Экран 5. Окно свойств протокола Protected EAP |
Откройте на своем компьютере приложение Network Connections панели управления Control Panel и просмотрите свойства проводного соединения Ethernet. Выберите закладку Authentication, изображенную на экране 4, и установите флажок в поле Enable IEEE 802.1x authentication for this network. В раскрывающемся списке EAP type следует выбрать значение Protected EAP (PEAP) и установить флажок в поле Authenticate as computer when computer information is available. Итак, вы разрешили использование технологии 802.1x для этого сетевого соединения, и система может использовать ее учетную запись для идентификации на коммутаторе, в то время как пользователь идентифицируется в домене. Таким образом, система сможет применить групповую политику и получить доступ к контроллеру домена, в то время как пользователь авторизуется через доменную учетную запись. Затем нужно нажать кнопку Properties. В диалоговом окне Protected EAP Properties, изображенном на экране 5, следует снять флажок с поля Validate server certificate. Отключаемая таким образом сертификация имеет большое значение в беспроводных сетях, в которые злоумышленник может внедрить постороннее устройство AP. Убедитесь, что в раскрывающемся списке Select Authentication Method выбрано значение Secured password (EAP-MSCHAP v2). Нажмите кнопку Configure. В диалоговом окне EAP MSCHAPv2 Properties следует убедиться, что в поле Automatically use my Windows logon name and password (and domain if any) флажок установлен.
Экран 4. Включение аутентификации IEEE 802.1x |
Вы настроили систему для использования как ее собственной учетной записи в домене, так и пользовательского пароля при идентификации на коммутаторе. Нажмите OK, чтобы закрыть всех диалоговые окна. Если на системе включена служба Windows Firewall, необходимо разрешить запросы Ping для проведения тестов. Чтобы разрешить системе проверку пробных запросов, снова откройте окно свойств сети и выберите закладку Advanced. Нажмите кнопку Settings, чтобы вызвать диалоговое окно Windows Firewall. Выберите закладку Advanced, потом нажмите Settings в диалоговом окне ICMP. В окне ICMP Settings необходимо установить флажок в поле Allow incoming echo request и нажать кнопку OK, чтобы закрыть все диалоговые окна. Отключите систему.
Протестируйте настройки
Теперь давайте проверим нашу работу. Прежде всего следует убедиться, что коммутатор блокирует доступ для неавторизованных учетных записей. Для этого нужно аннулировать разрешение на удаленный доступ для учетной записи компьютера. Откройте оснастку Active Directory Users and Computers. В ней нужно открыть свойства учетной записи того компьютера, который решено использовать для тестирования. Для этой статьи я дал компьютеру имя Workstation1. Перейдите на закладку Dial-In и выберите Deny access в секции Remote Access Permission (Dial-in or VPN)). Закройте учетную запись. Теперь при попытке компьютера авторизоваться посредством службы IAS служба обнаружит, что удаленный доступ для этой учетной записи запрещен, после чего даст указание коммутатору закрыть доступ через данный порт.
Выключенную систему следует подключить к одному из проверяемых 802.1x-портов коммутатора и включить ее. После загрузки следует воздержаться от авторизации. Вместо этого нужно перейти к другой системе и получить адрес первого компьютера с помощью сервера DHCP. Попытайтесь послать на компьютер сигнал проверки. Попытка должна оказаться безуспешной. Подождите минуту или две и попытайтесь снова. Если отзыв опять не будет получен, тестирование можно считать успешным, но лучше подстраховаться. Откроем Event Viewer на сервере IAS и проверим журнал System. Посмотрим недавнюю запись с предупреждением (ID события — 2, источник — служба IAS). При двойном щелчке на записи о событии видны подробности (см. экран 6 и экран 7). Как можно заметить, компьютер Workstation1 пытался авторизоваться на коммутаторе, но попытка провалилась, так как у компьютера отсутствовало разрешение на удаленный доступ. Это событие доказывает, что наши настройки блокируют все пути доступа для неавторизованных компьютеров.
Теперь следует убедиться, что наши настройки корректно предоставляют доступ авторизованным компьютерам. Снова откроем учетную запись компьютера из окна Active Directory Users and Computers и изменим значение Remote Access Permission (Dial-in or VPN) на Control access through Remote Access Policy. После этого служба IAS будет в одиночку отвечать за предоставление или запрет доступа для данного компьютера, отталкиваясь от установленной ранее политики удаленного доступа. Закройте учетную запись и перезапустите систему. После полной загрузки попробуйте снова проверить подключение компьютера с другой системы. Если попытка сразу проваливается, возможно, это связано с тем, что компьютер еще не авторизовался на коммутаторе. Дайте системе еще минуту и повторите попытку. Если проверка прошла успешно, очевидно, что служба IAS авторизовала систему, но для чистоты эксперимента нужно проверить журнал System сервера службы IAS. Ищите событие с ID 1 и службой IAS в качестве источника. Надо найти запись о событии, похожем на одно из представленных на экране 8, сообщающую, что системе был предоставлен доступ.
Таким образом, компьютер может получить доступ к службам домена для принятия групповой политики и идентификации пользователей домена при попытках авторизоваться через консоль данного компьютера. Однако для большей безопасности при авторизации пользователя целесообразно заставить его пройти повторную идентификацию на коммутаторе. Такие меры исключат вероятность ситуаций, подобных описанной выше, когда неавторизованный пользователь получает доступ к авторизованному компьютеру и задействует локальную учетную запись, например администратора, для успешной регистрации в сети. В соответствии с документацией Microsoft система XP должна отключать сетевой доступ в течение двух минут после авторизации пользователя, в том случае если пользователь не прошел успешную идентификацию на коммутаторе.
Так как при настройке мы поставили флажок в поле Automatically use my Windows logon name and password (and domain if any), авторизация пользователя на коммутаторе будет незаметной. Эта настройка предполагает, что система будет просто использовать данные, введенные пользователем при регистрации в системе, для авторизации на коммутаторе. Пока политика удаленного доступа сервера службы IAS будет подтверждать права данной учетной записи, пользователь будет иметь доступ к сети без задержек или взаимодействия со стороны системы XP. Однако в моем случае система XP не смогла перекрыть сетевой доступ для неавторизованного пользователя. Пока компьютер был успешно авторизован коммутатором, неавторизованные пользователи, входящие в систему, могли получить доступ к сети. Мне не удалось выяснить, в чем причина — в системе или в коммутаторе, но я сумел найти обходной путь. Я просто включил повторную идентификацию на самом коммутаторе. Повторная идентификация является функцией 802.1x, проводящей повторную проверку клиента через определенный временной интервал. Чтобы включить повторную идентификацию на порте с номером 1 через каждые пять минут, я обратился к коммутатору посредством службы Telnet и ввел следующие команды:
configure terminal
interface fastethernet0/9
dot1x reauthentication
dot1x timeout reauth
-period 300
end
copy running-config
startup-config
При таких настройках коммутатор требует от клиента подтверждения прав каждые пять минут. После авторизации под учетной записью домена в системном журнале сервера службы IAS будут появляться новые записи о событиях, возникающих каждые пять минут. Однако теперь вместо учетной записи компьютера проверяется пользовательская учетная запись. При входе в сеть неавторизованного пользователя система предоставит менее пяти минут сетевого доступа до того, как сеанс будет блокирован коммутатором.
Другой недостаток данного решения заключается в том, что приходится вручную настраивать сетевое подключение каждой системы для работы с технологией 802.1x. По- хорошему необходимо, чтобы настройку всех компьютеров можно было выполнить непосредственно с помощью объекта Group Policy Object (GPO), но, к сожалению, групповая политика поддерживает настройку только беспроводных соединений стандарта 802.1x, и этой недоработке Microsoft стоит уделить внимание. Если необходимо настроить много компьютеров, можно попробовать написать простой сценарий WMI, использующий классы Win32_NetworkAdapterConfiguration и Win32_NetworkAdapter.
Если не принимать во внимание проблемы с повторной идентификацией и настройкой клиентских систем, использование технологии 802.1x для защиты доступа к портам коммутатора зарекомендовало себя достаточно хорошо. В дальнейшем я покажу, как настраивать доступ для учетных записей типа «гость», так что, когда консультанты или другие бизнес-партнеры посетят компанию со своими ноутбуками, они смогут получить доступ в Internet с любого входного узла, не имея при этом доступа к системам сети.
Редактор Windows IT Pro и ведущий инструктор и разработчик курсов для программы по безопасности Windows NT/2000 института MIS Training. Его компания, Monterey Technology Group, занимается консалтингом в области информационной безопасности. Связаться с ним можно по адресу: rsmith@monterey techgroup.com