Аутентификация гостевых пользователей с помощью коллективного программного обеспечения Captivate (часть 2)
Аутентификация гостевых пользователей с помощью Captivate от Collective Software (часть 1).
В первой части этой серии статей, состоящей из двух частей, о том, как создавать порталы авторизации с помощью брандмауэра ISA, мы увидели, как можно создать простой портал авторизации, предоставляющий некоторую информацию об условиях обслуживания, а затем, после того как пользователь соглашается с TOS, щелчок кнопки «Я согласен» обеспечивает доступ в Интернет.
В этой, второй и последней статье серии, мы немного повысим ставки для исходящего доступа через брандмауэр ISA. На этот раз мы настроим портал Captivate так, чтобы пользователи аутентифицировались с помощью брандмауэра ISA, прежде чем им будет разрешено подключение к Интернету.
Аутентификация гостевых пользователей с помощью формы
Первый пример был хорош, но что, если вы хотите что-то более полное. Как насчет возможности авторизовать использование Интернета, требуя от пользователя успешной аутентификации на брандмауэре ISA перед тем, как будет разрешен доступ в Интернет? Таким образом, вы можете предотвратить злоупотребление вашей интернет-ссылкой анонимными пользователями.
Проблема в том, что эти гости не являются управляемыми клиентами. Их нельзя настроить в качестве клиентов брандмауэра или веб-прокси. И только веб-прокси и клиент брандмауэра могут аутентифицироваться с помощью брандмауэра ISA. Наши гостевые компьютеры должны быть настроены как клиенты SecureNAT, которые по определению не могут аутентифицироваться с помощью брандмауэра ISA. Однако с помощью Captivate мы можем запрашивать учетные данные у пользователей, и только после успешной аутентификации пользователей им будет предоставлен доступ в Интернет.
Обратите внимание, что эта возможность авторизации пользователей не так безопасна и не так всеобъемлюща, как настоящий веб-прокси или подключение клиента брандмауэра. При аутентификации клиента веб-прокси и брандмауэра все подключения к Интернету аутентифицируются до того, как подключение будет разрешено.
Однако мы можем потребовать, чтобы клиенты SecureNAT сначала вошли в систему, используя форму, прежде чем разрешить им подключение к Интернету. После того, как клиенты SecureNAT в гостевой сети войдут в систему с помощью формы, им будет разрешено оставаться подключенными к Интернету в течение количества часов, которое мы указываем в политике Captivate. По истечении времени ожидания политики пользователям потребуется снова пройти аутентификацию.
Captivate также записывает эту информацию в журнал веб-прокси брандмауэра ISA, чтобы вы могли определить, кто был пользователем, вошедшим в систему с определенным IP-адресом. Пользователь может аутентифицироваться по локальной учетной записи, содержащейся в брандмауэре ISA, или по учетным записям пользователей Active Directory (когда брандмауэр ISA является членом домена).
Обратите внимание, что это не то, что вы должны рассматривать как комплексное решение для обеспечения безопасности, поскольку мы отслеживаем авторизацию клиента SecureNAT на основе IP-адреса или MAC-адреса. В отличие от настоящей аутентификации, подделать MAC- или IP-адреса относительно легко. У хакеров есть методы, позволяющие подделать эти адреса и использовать авторизацию другого пользователя. Однако вы должны помнить, что эти пользователи также должны иметь возможность взломать вашу беспроводную или проводную сеть. Captivate предоставляет хороший способ удержать проблемных анонимных пользователей от злоупотребления вашей интернет-ссылкой.
Чтобы создать решение, которое позволит пользователям SecureNAT аутентифицироваться на брандмауэре ISA, чтобы им был разрешен доступ в течение количества часов, в течение которого они будут иметь доступ до повторной аутентификации, вам необходимо сделать следующее:
- Создайте гостевой веб-прослушиватель
- Создайте правило веб-публикации
- Настройка Captivate для правила веб-публикации
- Создайте правило доступа к брандмауэру для аутентифицированных клиентов
- Настройте Captivate в правиле доступа брандмауэра
Создайте гостевой веб-прослушиватель
Первым шагом является создание веб-прослушивателя, использующего проверку подлинности на основе форм. Это позволит нам собирать учетные данные от пользователей в гостевой сети. После создания этого веб-прослушивателя мы создадим правило веб-публикации, которое использует этот веб-прослушиватель.
В консоли брандмауэра ISA щелкните узел «Политика брандмауэра» на левой панели консоли и щелкните вкладку «Инструменты» на панели задач. Откройте меню «Создать» и выберите «Веб-прослушиватель».
На странице Добро пожаловать в мастер создания нового веб-прослушивателя введите имя для веб-прослушивателя. Поскольку этот прослушиватель будет использоваться только для сбора учетных данных для гостевой сети, мы назовем его Guest Listener.
Нажмите «Далее».
фигура 1
На странице «Безопасность клиентских подключений» выберите параметр «Требовать безопасное подключение SSL с клиентами». Это заставит клиентские браузеры в гостевой сети использовать безопасное соединение при отправке своего имени пользователя и паролей по сети.
Нажмите «Далее».
фигура 2
На странице «IP-адреса веб-прослушивателя» установите флажок «Гость». Это позволяет подключениям только из гостевой сети получать форму входа.
Нажмите «Далее».
Рисунок 3
На странице SSL-сертификаты прослушивателя выберите параметр Использовать один сертификат для этого веб-прослушивателя, затем нажмите кнопку Выбрать сертификаты.
В диалоговом окне Select Certificate выберите сертификат, который будет использовать Web Listener. В этом примере я использовал IIS 7 для создания сертификата веб-сайта для использования с веб-прослушивателем. Общее/субъектное имя сертификата — guest.msfirewall.org. Клиенты в гостевой сети должны иметь возможность преобразовать это имя в IP-адрес интерфейса гостевой сети на брандмауэре ISA. Вспомните, что я использовал DNS-сервер во внутренней сети по умолчанию для размещения записи Host (A) для guest.msfirewall.org.
Еще одна вещь, о которой следует знать, это то, что вы должны использовать коммерческий сертификат для этого слушателя. Поскольку клиенты в гостевой сети являются неуправляемыми клиентами, они не будут доверять вашему частному центру сертификации. Я полагаю, вы могли бы потребовать от них установить сертификат вашего частного ЦС, но это, вероятно, не очень хорошая идея с точки зрения безопасности.
Рисунок 4
После выбора сертификата нажмите «Далее».
Рисунок 5
На странице «Настройки аутентификации» выберите параметр «Аутентификация с помощью HTML-формы» в раскрывающемся списке «Выберите, как клиенты будут предоставлять учетные данные для ISA Server». Выберите вариант Windows (Active Directory) из списка Выберите, как ISA Server будет проверять учетные данные клиента. Эта опция позволяет брандмауэру ISA аутентифицироваться с помощью Active Directory или локальных учетных записей, настроенных на брандмауэре.
Нажмите «Далее».
Рисунок 6
В этом примере мы не рассматриваем единый вход, поэтому не вносите изменений на этой странице и нажмите «Далее».
Рисунок 7
Нажмите «Готово» на странице «Завершение работы мастера создания нового веб-прослушивателя».
Рисунок 8
Создайте правило веб-публикации
Теперь, когда у нас настроен веб-прослушиватель, мы можем использовать этот веб-прослушиватель в правиле веб-публикации, которое будет перехватывать исходящее соединение пользователей и разрешать аутентификацию с использованием формы.
В консоли брандмауэра ISA щелкните узел «Политика брандмауэра» на левой панели консоли, а затем щелкните вкладку «Задачи» на панели задач. Щелкните ссылку Опубликовать веб-сайты.
На странице Вас приветствует мастер создания нового правила веб-публикации введите имя правила в текстовом поле Имя правила веб-публикации. В этом примере мы назовем правило Guest Auth Rule и нажмем Next.
Рисунок 9
На странице «Выбор действия правила» выберите параметр «Разрешить» и нажмите «Далее».
Рисунок 10
На странице «Тип публикации» выберите параметр «Опубликовать один веб-сайт или балансировщик нагрузки» и нажмите «Далее».
Рисунок 11
На странице «Безопасность подключения к серверу» выберите параметр «Использовать SSL для подключения к опубликованному веб-серверу или ферме серверов» и нажмите «Далее».
Рисунок 12
Теперь вот где все становится интересным. На странице «Сведения о внутренней публикации» поместите поддельную запись в текстовое поле «Имя внутреннего сайта ». Причина этого в том, что мы не используем это правило веб-публикации для публикации реального сервера. Цель этого правила — разрешить представление формы пользователю в гостевой сети. После того, как пользователь аутентифицируется с помощью брандмауэра ISA, фильтр Captivate автоматически перенаправит пользователя на запрошенный им URL-адрес.
В текстовом поле «Внутреннее имя сайта» мы введем Don't-Care. Затем поставим галочку в поле Использовать имя компьютера или IP-адрес для подключения к опубликованному серверу и введем IP-адрес сетевой карты, подключенной к гостевой сети. Хотя технически это не требуется, это улучшит производительность, потому что брандмауэр ISA не будет тратить время на попытки разрешить имя в текстовом поле «Внутреннее имя сайта ».
Нажмите «Далее».
Рисунок 13
Не вносите изменений на странице сведений о внутренней публикации. Опять же, нам не нужно ничего настраивать здесь, потому что мы на самом деле ничего не публикуем. Мы просто делаем возможным отображение формы.
Рисунок 14
На странице сведений об общедоступном имени убедитесь, что параметр Это доменное имя (введите ниже) выбран в раскрывающемся списке Принимать запросы на. В текстовом поле Общедоступное имя введите имя, которое является общим/субъектным именем в сертификате веб-сайта, привязанном к веб-прослушивателю.
В этом примере общее/субъектное имя в сертификате — guest.msfirewall.org, поэтому мы введем его в текстовое поле Общедоступное имя.
Нажмите «Далее».
Рисунок 15
На странице «Выбор веб-прослушивателя» выберите запись «Гостевой прослушиватель» в раскрывающемся списке «Веб-прослушиватель». Нажмите «Далее».
Рисунок 16
На странице Делегирование аутентификации выберите Нет делегирования, и клиент не может пройти аутентификацию напрямую. Поскольку на самом деле мы не публикуем веб-сайт, нет причин делегировать полномочия или выполнять аутентификацию на несуществующем сервере.
Нажмите «Далее».
Рисунок 17
На странице User Sets примите значение по умолчанию All Authenticated Users и нажмите Next.
Рисунок 18
Нажмите «Готово» на странице «Завершение нового правила веб-публикации ». Обратите внимание, что нам не нужно использовать кнопку «Проверить правило», поскольку сервера нет, и мы знаем, что правило не сработает.
Рисунок 19
Настройка Captivate для правила веб-публикации
Теперь нам нужно настроить Captivate для этого правила веб-публикации. Во-первых, поставьте галочки в Enforce Captivate policy для этого правила и используйте разные настройки для этого правила. На самом деле вам не нужно ставить галочку в поле Использовать другие настройки для этого правила, если вы хотите использовать политику Captivate по умолчанию.
В этом примере я хочу, чтобы все пользователи аутентифицировались не реже одного раза в день, в 8 утра или позже. Кроме того, после первого входа в систему я хочу, чтобы они повторно аутентифицировались каждые 8 часов. Поэтому я настраиваю параметры Captivate, как показано на рисунке ниже, чтобы включить эти параметры.
Отслеживание имени пользователя вместо IP, когда оно известно ISA, не применяется к сценарию SecureNAT, который мы здесь используем, поэтому мы оставим этот флажок снятым. И мы поставим галочку в настройке Track Physical (MAC) address вместо IP address, чтобы мы могли использовать короткий TTL на наших DHCP-адресах.
Рисунок 20
Теперь вам нужно поставить галочку в поле Change Advanced Settings и нажать кнопку Edit, чтобы открыть Lua Script Editor. Найдите сценарий LogOdbc.lua в папке C:Program FilesMicrosoft ISA ServerCollective SoftwareCaptivateluaexamples и откройте его в блокноте. Скопируйте все содержимое скрипта в буфер обмена и вставьте его в Lua Script Editor. Это позволяет Captivate регистрировать запрос пользователя в журнале веб-прокси, чтобы вы могли отслеживать IP-адрес этого пользователя и отслеживать действия пользователя в файле журнала, если хотите. Он также может включить ведение журнала в базу данных SQL.
Если вы не ведете журнал в базе данных SQL, обязательно закомментируйте строку LogAuthorization(originalUrl), поставив перед ней два дефиса, как показано на рисунке ниже.
Рисунок 21
Нажмите «Сохранить» в редакторе сценариев и нажмите «ОК» в диалоговом окне «Правило веб-публикации».
Создайте правило доступа к брандмауэру для аутентифицированных клиентов
Когда веб-прослушиватель настроен для принятия учетных данных, следующим шагом будет создание правила доступа, которое позволит аутентифицированным пользователям исходящий доступ для протоколов, к которым мы хотим, чтобы они имели доступ.
Однако если вы хотите разрешить доступ к протоколу, отличному от HTTP и HTTPS, вам необходимо привязать фильтр Captivate к этим протоколам. Для этого щелкните вкладку «Панель инструментов» на панели задач, а затем дважды щелкните протокол, которым вы хотите управлять с помощью Captivate. В этом примере мы создадим правило, разрешающее HTTP/HTTPS/SMTP и POP3. Поэтому нам нужно включить фильтр Captivate для этого протокола. Перейдите на вкладку «Параметры», затем установите флажок Captivate for ISA Server и нажмите «ОК». Сделайте это для обоих протоколов.
Рисунок 22
Рисунок 23
Обратите внимание, что привязка фильтра не повлияет на клиентов брандмауэра и веб-прокси в других сетях. Причина этого в том, что когда фильтр Captivate вызывается для нового подключения, он проверяет, какое правило политики соответствует. Если это не правило с включенным Captivate, то соединение сразу проходит. С другой стороны, если запрос соответствует правилу с включенным фильтром Captivate, тогда информация об IP-адресе или MAC-адресе проверяется, чтобы увидеть, авторизован ли этот адрес Captivate, и если да, то соединение проходит через брандмауэр ISA.
Теперь давайте создадим правило доступа. Перейдите на вкладку «Задачи» в области задач, а затем нажмите ссылку «Создать правило доступа». На странице Вас приветствует мастер создания нового правила доступа введите имя правила в текстовом поле Имя правила доступа. В этом примере мы назовем правило Guest POP3/SMTP/HTTP/HTTPS.
Нажмите «Далее».
Рисунок 24
На странице «Действие правила» выберите параметр «Разрешить» и нажмите «Далее».
Рисунок 25
На странице «Протоколы» выберите параметр «Выбранные протоколы» в раскрывающемся списке «Это правило применяется к». Затем нажмите кнопку «Добавить», чтобы добавить протоколы HTTP, HTTPS, POP3 и SMTP.
Нажмите «Далее».
Рисунок 26
На странице «Источники правил доступа» нажмите кнопку «Добавить», чтобы добавить гостевую сеть.
Нажмите «Далее».
Рисунок 27
На странице «Назначения правил доступа» нажмите кнопку «Добавить» и добавьте внешнюю сеть.
Нажмите «Далее».
Рисунок 28
На странице «Наборы пользователей» нажмите кнопку «Добавить» и добавьте «Все пользователи».
Рисунок 29
На странице «Завершение работы мастера нового правила доступа» нажмите «Готово».
Рисунок 30
Настройте Captivate для правила брандмауэра
Теперь, когда у нас есть правило доступа, нам нужно настроить Captivate для правила, чтобы фильтр Captivate вызывался для подключений, соответствующих характеристикам, описанным в правиле.
Дважды щелкните новое правило доступа и перейдите на вкладку Captivate. Поставьте галочку в политике Enforce Captivate для этого правила. Поставьте галочку Использовать другие настройки для этого правила и измените параметры на те, которые вы хотите для правила. Установите флажок «Отслеживать физический (MAC) адрес вместо IP-адреса», чтобы отслеживать MAC-адреса для ваших беспроводных клиентов в подсети.
Поставьте галочку в поле «Изменить дополнительные настройки» и нажмите кнопку «Изменить», чтобы открыть редактор сценариев Lua.
Теперь откройте проводник Windows и перейдите в папку C:Program FilesMicrosoft ISA ServerCollective SoftwareCaptivateluaexamples и откройте файл Authenticate.lua в блокноте. Скопируйте весь текст файла и вставьте его в редактор сценариев Lua.
Нажмите «Сохранить» в редакторе сценариев Lua и нажмите «ОК» в диалоговом окне «Свойства» для правила.
Рисунок 31
Щелкните Применить в консоли брандмауэра ISA, чтобы сохранить изменения в конфигурации брандмауэра.
На данный момент наша политика брандмауэра должна выглядеть так:
Рисунок 32
Протестируйте решение
Прежде чем мы протестируем решение, давайте проверим наш контрольный список требований к клиентам и убедимся, что наши клиенты совместимы с решением:
- Чтобы фильтрация MAC-адресов работала, клиенты должны использовать гостевую сетевую карту на брандмауэре ISA в качестве шлюза по умолчанию. Между клиентами и гостевой сетевой картой брандмауэра ISA не может быть никаких маршрутизаторов.
- Клиенты должны иметь возможность разрешать общее имя/имя субъекта в сертификате, привязанном к веб-прослушивателю, который мы используем для доступа клиентов из гостевой сети. В этом примере общее/субъектное имя в сертификате — guest.msfirewall.org, и есть запись DNS, которая разрешает это как 192.168.100.1.
- На клиентах не должны быть включены настройки браузера для клиента веб-прокси. Если у вас есть запись wpad на DNS-сервере, который вы используете для поддержки этого решения, вы должны убедиться, что DNS-сервер, который используют пользователи гостевой сети, не является этим DNS-сервером. Причина этого в том, что конфигурация браузера по умолчанию для Internet Explorer предусматривает автоматическое определение. Если этот параметр по умолчанию включен, клиенты будут использовать запись wpad в DNS, и решение SecureNAT/Captivate не будет работать.
- Клиентские машины должны доверять сертификату, представленному веб-прослушивателем. Это означает, что вам необходимо получить коммерческий сертификат, поскольку клиенты в гостевой сети не будут доверять вашему внутреннему частному центру сертификации.
- После того, как клиент прошел аутентификацию, IP-адрес клиента будет авторизован на весь период, когда Captivate настроен на разрешение подключения до тех пор, пока не потребуется повторная аутентификация. Сеансы от клиентов SecureNAT не проходят повторную аутентификацию до тех пор, пока не сработает тайм-аут, настроенный в фильтре. В отличие от клиентов веб-прокси и брандмауэра, каждый сеанс не аутентифицируется.
Теперь давайте посмотрим, что происходит. Я открываю браузер и вместо домашней страницы браузера меня перенаправляют на форму входа в систему, как показано на рисунке ниже. Я введу свои учетные данные и нажму Войти.
Рисунок 33
После аутентификации вы увидите диалоговое окно, информирующее вас о том, что вы переходите на незащищенную страницу. Это нормально, так как моя домашняя страница не на защищенном сайте.
Рисунок 34
Бам! Я попадаю на страницу входа в свою учетную запись Hotmail.
Рисунок 35
Проверяя файлы журнала брандмауэра в средстве просмотра журнала, вы можете увидеть аутентифицированное соединение. Обратите внимание, что даже несмотря на то, что подключение не соответствует правилу гостевой аутентификации, мы получили то, что нам было нужно, а именно имя пользователя и IP-адрес, используемые пользователем.
Рисунок 36
Как насчет соединений без веб-протокола?
Теперь это прекрасно работает для HTTP- и HTTPS-подключений через веб-браузер. Но что произойдет, если пользователь откроет Outlook Express или другое почтовое приложение и попытается использовать SMTP и POP3? Будут ли работать соединения SMTP и POP3?
Это зависит. Если пользователь открыл веб-браузер и аутентифицировался в брандмауэре ISA , прежде чем пытаться использовать почтовое приложение, тогда соединение будет работать. Однако если пользователь открыл почтовое приложение до открытия веб-браузера и аутентификации, то попытка подключения завершится неудачно. Сбой связан с тем, что пользователь еще не аутентифицировался в брандмауэре ISA, поэтому фильтр Captivate блокирует соединение.
Решение этого легко. На самом деле, опытные путешественники уже знают, что им нужно открыть свои веб-браузеры, чтобы «что-то сделать» с авторизованным порталом, прежде чем им будет разрешен доступ в Интернет. Итак, все, что вам нужно сделать, это попросить ваших пользователей открыть свои браузеры и делать то, что они должны делать на сайте портала. Нет проблем.
Резюме
В этой серии статей из двух частей мы рассмотрели, как использовать фильтр Captivate от Collective Software для захвата исходящих подключений из гостевой сети. Мы рассмотрели два сценария: один сценарий, в котором пользователям предоставляется информационная страница, и они должны нажать кнопку, чтобы указать, что они согласны с тем, что находится на информационной странице, прежде чем им будет разрешен доступ в Интернет. Во втором сценарии мы собрали решение, которое требует от пользователей аутентификации, прежде чем им будет разрешено подключение к Интернету. Фильтр Captivate был прост в установке и настройке. Если вы ищете решение для своих «анонимных» клиентов, Captivate — отличное и экономичное решение. И если вы заинтересованы в более сложном решении, таком как создание авторизованного портала, подобного тем, которые вы видите в гостиничных номерах и других горячих точках, у Collective Software есть консультанты, которые будут рады работать с вами, чтобы собрать такое решение, используя Захватывающий фильтр.
Аутентификация гостевых пользователей с помощью Captivate от Collective Software (часть 1).