Недавно я искал решение проблемы анонимного клиентского доступа к гостевым беспроводным сетям. Как вы, вероятно, знаете, брандмауэр ISA является отличным решением для хостинга гостевых сетей (guest networks). Эти гостевые сети используются людьми, которые посещают ваше предприятие. Вы хотите предоставить своим гостям доступ к интернету, но не хотите, чтобы они подключались к вашей корпоративной сети. Никогда не знаешь, каких червей, вирусы и прочий вредоносный трафик они могут генерировать. Даже если вы используете NAP для изоляции серверов и доменов, вы все равно хотите держать этих клиентов подальше от вашей корпоративной сети, может даже не в силу того, что эти неуправляемые клиенты могут причинить вред работоспособности вашей сети.
На самом деле, я писал статью о том, как настраивать беспроводную DMZ с помощью брандмауэра ISA.
Однако, это решение не позволяет нам аутентифицировать наших гостевых пользователей. Причиной тому является тот факт, что мы не управляем машинами в нашей гостевой сети, и поэтому не можем заставить пользователей установить клиентский брандмауэр или настроить свои машины в качестве Web Proxy клиентов. Нам нужно абсолютно прозрачное решение, что означает настройку гостей в качестве SecureNAT клиентов.
Проблема заключается в том, что SecureNAT клиенты не могут аутентифицироваться с брандмауэром ISA, в результате мы вынуждены позволить всем подключениям гостевой сети быть анонимными. Более хорошим решением будет требование того, чтобы пользователи аутентифицировались на ISA, прежде чем им будет разрешено подключение к интернету. Это предоставит информацию о пользователе, сопоставит ее с IP адресом пользователя, и не позволит анонимным пользователям подключаться через брандмауэр ISA. Итак, даже если кто-то сможет вклиниться в WAP, они все равно не смогут подключиться к интернету.
Но как это сделать?
Именно в этот момент я столкнулся с фильтром компании Collective Software Captivate. Этот фильтр позволяет вам создавать портал захвата (captive portal) на брандмауэре ISA, который будет перехватывать начальные запросы пользователя на интернет ресурсы. А после того как пользователь осуществит определенные действия в портале (такие как нажатие кнопки для принятия условий использования аутентификации с брандмауэром ISA), пользователю дается доступ в интернет на период времени, настроенный в фильтре Captivate Filter.
Решение Captivate звучало интересно, поэтому я решил собрать тестовую сеть, чтобы посмотреть, как оно будет работать, прежде чем устанавливать его на сайте клиента. На рисунке ниже показана конфигурация тестовой сети.
Рисунок 1
Брандмауэр ISA в этой сети имеет три NIC (сетевые адаптеры):
DNS сервер был установлен на внутренней сети, чтобы разрешение имени страницы портала могло быть разрешено. DNS запись для guest.msfirewall.org была создана на DNS сервере и отсылает это имя к 192.168.100.1 . Я создал Правило доступа, чтобы разрешить DNS запросы с узлов гостевой сети на DNS сервер во внутренней сети. Это правило исключено из политик Captivate.
Сервер сертификации был установлен на внутренней сети. Это необходимо, так как нам нужно генерировать сертификат для безопасной страницы портала (поэтому мандаты отправляются не чистым текстом). Общее/субъектное имя на сертификате будет guest.msfirewall.org. CA сертификат издающего центра сертификации был установлен на клиенте, который будет подключаться с гостевой сети.
Обратите внимание, что в производственной среде вам нужно будет использовать коммерческий сертификат, поскольку клиенты в гостевой сети не будут распознавать центр сертификации вашей частной сети, и поэтому не будут доверять ему.
Я не хотел располагать отдельный DHCP сервер в гостевой сети, поэтому я настроил брандмауэр ISA в качестве агента ретрансляции DHCP и настроил его на использование DHCP сервера, уже установленного на внутренней сети. Затем я создал границы на этом DHCP сервере с адресами, действительными в гостевой сети. В производственной сети за DHCP обязанности обычно отвечает WAP. Затем я настроил правила доступа на брандмауэре ISA, которые необходимы для поддержки on-box агента ретрансляции DHCP.
Первым шагом является загрузка и установка ПО Captivate. Вы можете скачать Captivate с веб сайта Collective Software. Дважды нажмите на файле и увидите страницу приветствия мастера установки Welcome to the Captivate 1.x Setup Wizard. Для этой статьи я использую версию 1.0.2. Обратите внимание, что во время установки служба брандмауэра будет остановлена и перезапущена. Также убедитесь, что консоль брандмауэра ISA закрыта, когда вы устанавливаете Captivate.
Нажмите Далее.
Рисунок 2
Поставьте флажок в строке Я принимаю условия лицензионного соглашения и нажмите Далее.
Рисунок 3
На странице Выберите тип установки нажмите кнопку Полная и нажмите Далее.
Рисунок 4
Нажмите кнопку Установить на странице Готов к установке.
Рисунок 5
Шкала прогресса будет показывать процесс установки компонентов.
Рисунок 6
Нажмите Закончить на странице Завершение работы мастера установки Captivate .
Рисунок 7
Установка прошла безупречно. Это добрый знак, поскольку я часто стакиваюсь с тем, что установка дополнений сторонних производителей в брандмауэр ISA имеет свои особенности. С фильтром Captivate все по-другому.
Теперь, когда мы установили Captivate, нам нужно выполнить некоторые базовые настройки фильтра. В консоли ISA переходим по вкладке Расширения (Add-ins) в последней панели консоли, затем жмем на вкладке Web фильтры. Во вкладке Web фильтры правой клавишей жмем на элементе Captivate и выбираем Свойства.
Рисунок 8
Это вызовет диалоговое окно Свойства Captivate для ISA Server. Здесь вы можете создать стандартную политику Captivate. Обратите внимание, что у вас есть полный контроль над изменениями этой политики для каждого правила, но если вы хотите сэкономить немного времени и стандартизировать свою Captivate политику, вы можете сделать это здесь.
Здесь есть следующие опции:
Когда последняя авторизация была более H M назад. Эта политика говорит фильтру Captivate, что пользователю необходимо авторизироваться каждые x часов (H) и x минут (M). К примеру, если вы хотите, чтобы пользователи аутентифицировались каждые 8 часов, вы ставите 8 в текстовое поле H и 0 в поле M.
Каждый день в (или после) Эта политика позволяет вам задавать время каждый день, когда пользователи должны аутентифицироваться. Обратите внимание на то, что вы можете использовать обе опции Когда последняя авторизация была более H M назад и Каждый день в (или после), чтобы пользователи аутентифицировались, скажем, в 8AM, а затем каждые 8 часов.
По умолчанию Captivate отслеживает соглашения для каждого отдельного IP адреса. Если у вас есть правило доступа или правило веб публикации, которое требует аутентификации, то вы можете выбрать опцию Отслеживать имя пользователя вместо IP, когда оно известно ISA. Таким образом, если пользователь входит с различных компьютеров, ему не нужно будет проходить процесс принятия соглашения несколько раз. Если вы выберите эту опцию, а имена пользователей не будут доступны, то будет отслеживаться IP адрес.
Заметка: Опция Отслеживать имя пользователя вместо IP, когда известно ISA не применима в ситуациях, обсужденных в этой серии статей, где мы отслеживаем SecureNAT клиентов в гостевых сетях. Опция Отслеживать имя пользователя вместо IP, когда известно ISA полезна, если вы хотите проводить пользователей в сети, где вы внедряете Web Proxy или клиентскую аутентификацию брандмауэра, но хотите убедиться, что эти пользователи входят на портал на периодической основе.
Если пользователи настроены на использование ISA в качестве их стандартного шлюза, брандмауэр ISA должен иметь возможность отслеживать MAC адреса всех подключенных компьютеров. Вы можете выбрать опцию Отслеживать физические (MAC) адреса вместо IP адресов, если ваша сеть часто рециркулирует IP адреса, например в настройке хот-спостов. Эту опцию не следует использовать, если между клиентом и брандмауэром ISA расположен маршрутизатор, поскольку в такой ситуации брандмауэр ISA будет видеть только MAC адрес маршрутизатора, расположенного ближе всего к интерфейсу брандмауэра ISA, принимающему подключение.
Опция Изменить дополнительные параметры включает кнопку Редактировать. Когда вы нажимаете на кнопку Редактировать, открывается Редактор сценария LUA, где вы можете вставлять содержимое в сценарий, которое улучшит функциональность фильтра Captivate. Мы рассмотрим примеры того, какие функции вы можете добавлять с помощью этой опции, позже.
Рисунок 9
Теперь давайте взглянем на наш первый сценарий. В этом примере у нас есть беспроводная DMZ сеть, с которой мы позволяем гостям подключаться к интернету. Первое, что я сделал, это создал простое правило доступа, позволяющее всем компьютерам в гостевой сети подключаться к интернету, используя NAT взаимоотношение. Это правило применимо ко всем пользователям.
После создания правила доступа нажмите на нем правой клавишей и перейдите по вкладке Captivate. Сначала нам нужно поставить флажок в строке Внедрять политику Captivate для этого правила. Затем вы можете поставить флажок в строке Использовать разные параметры для этого правила, если хотите использовать параметры, которые отличаются от стандартной политики, созданной ранее. В этом случае, я настрою правило на требование того, чтобы все пользователи аутентифицировались один раз в день, в 8AM (или после, если они вошли после 8AM).
Рисунок 10
Нажмите кнопку Применить в консоли брандмауэра ISA, чтобы применить изменения. Готово! Теперь давайте перейдем на клиента в гостевой сети и посмотрим, что произойдет, когда мы откроем обозреватель.
Как вы видите, появляется форма с текстом, информирующим нас о том, что это подключение доступно только для авторизированных пользователей. Оно также информирует пользователей о том, что трафик будет подвергаться осмотру, а их действия будут записываться в журнал регистрации событий. Затем пользователям нужно нажать кнопку Согласен, чтобы выйти в интернет.
Обратите внимание на то, что вы с легкостью можете настраивать эту форму, изменять фон, графику и текст в соответствии с вашими предпочтениями или требованиями. Подробности HTML и CSS страниц, которые можно использовать для настройки этих элементов, содержаться в пользовательском руководстве продукта Captivate.
Рисунок 11
Ура! Подключение к интернету работает. Теперь, если я останусь на этом компьютере еще восемь часов, форма снова появится, и мне снова придется нажать кнопку Согласен .
Рисунок 12
Теперь допустим, что вы хотите отслеживать, когда пользователи нажимают кнопку. Вы можете сохранить эту информацию в специальный журнал регистрации событий Captivate, который можно посмотреть через Windows Server Event Viewer.
Для этого нам нужно воспользоваться сценарием LUA, созданным для Captivate. Вы можете найти его в папке \Program Files\Microsoft ISA Server\Collective Software\Captivate\lua\examples. Откройте сценарий EventLog.lua в блокноте и скопируйте все содержимое папки в буфер.
Рисунок 13
Теперь откройте диалоговое окно Свойства в правиле доступа и нажмите по вкладке Captivate. Нажмите кнопку Редактировать после того, как отметили галочкой строку Изменить дополнительные параметры. Вставьте содержимое сценария в Редактор сценария Lua. Нажмите Сохранить в редакторе и затем нажмите OK в диалоговом окне Свойства правила. Затем нажмите Применить в консоли брандмауэра ISA, чтобы сохранить изменения.
Рисунок 14
Вот пример того, что вы увидите в файле лога.
Рисунок 15
В этой первой части серии статей о том, как создавать портал захвата для управления доступом с гостевой сети, мы посмотрели, как использовать фильтр Collective Software’s Captivate для представления простой страницы соглашения, прежде чем разрешать пользователям доступ в интернет. Во второй части мы посмотрим, как создавать портал захвата, который требует от пользователей аутентификации, прежде чем им будет предоставлен доступ в интернет.
www.isaserver.org
Tags: dns, ISA Server, mac, Microsoft ISA Server, nat, proxy