Retifff's Blog

Мой ИТ блог

Автоматическая авторизация в Kerio Winroute пользователей из Active Directory

Posted by retifff на 11.04.2010

Внимание! Статья не закончена! И вообще это черновик.

Задача: пользователи сети должны выходить в интернет только после авторизации на Kerio Winroute, автоизация должна быть незаметной для пользователей (NTLM), пользователи должны иметь возможность выходить в интернет с любого компьютера локальной сети, т.е. без привязки к IP-адресу своего компьютера.

Исходные данные: настроенная локальная сеть с работающим DNS в первую очередь, настроенный Kerio Winroute для всех пользователей. Кто не читал мои статьи ПРАВИЛЬНАЯ настройка DNS и сетевых интерфейсов!!! и Kerio Winroute Firewall: ПРАВИЛЬНЫЕ Traffic Policy!!! сделайте это сейчас. Они немного устарели, в связи с выходом новых версий Kerio Winroute, но принципиально все верно.

Есть домен testcompany.local, есть контроллер домена dc01 с DNS-сервером на нем,  есть рядовой сервер gate (тоже в домене, это необязательное условие автоматической авторизации) с установленным и на нем Kerio Winroute. В этой статье рассматривается версия 6.7.1 Patch 2, самая актуальная на момент написания статьи.

Mapping пользователей из Active Directory

В первую очередь нам нужно настроить подключение Kerio Winroute к Active Directory (так называемый user mapping). Для него нужно настроить автоматический mapping пользователей из AD.

Для этого заходим в KWF > Users and Groups > Users > вкладка Active Directory, ставим галку в Use domain user database и вводим там необходимые нам данные:

где,

Username — имя пользователя домена для подключения к базе AD (достаточно прав обычного пользователя). Я рекомендую создать специльного пользователся для подключения, (например, kwf_service) и поставить ему галки «Password never expires» и «User cannot change password», чтобы в один прекрасный момент у вас не отвалилось подключение к Active Directory.

Password — пароль этого пользователя.

Для проверки открываем вкладку User Accounts, в выпадающем списке Domain меняем Local User Database на нашу testcompany.local и видим пользователей из AD. Если их нет, то либо учетная запись, используемая для подключения, либо пароль неверны.

Далее, заходим на оставшуюся вкладку Authentication Options и ставим там галки таким образом:

Потом заходим в Configuration > Advanced Options > вкладка Web Interface / SSL-VPN и снимаем галку с Enable HTTPS (SSL-secured) Web Interface. Естественно, если вам не требуется доступ к веб-интерфейсу по SSL.

Следующим шагом необходимо настроить Traffic Policy таким образом, чтобы работала наша автоматическая авторизация. Вот скриншот уже готовых правил:

где нас интересуют только два правила, NAT no Auth и NAT Auth Users, остальные правила довольно стандартны и рассмотрены в статье Kerio Winroute Firewall: ПРАВИЛЬНЫЕ Traffic Policy!!!.

Правило NAT no Auth — это правило без аутентификации, которое нужно для того, чтобы разрешить  неаутентифицированному пользователю при попытке открыть любой веб-сайт попасть на страницу аутентификации KWF (куда он перенаправляется вследствие наших предыдущих настроек). Там он аутентифицируется либо вручную, либо автоматически с помощью NTLM и после этого уже отрабатывает правило NAT Auth Users, которое определяет доступные протоколы для аутентифицированных пользователей.

Готово, можно проверять. Однако запустив браузер у клиента, вы с удивлением обнаружите окно авторизации Kerio Winroute. Можно конечно ввести пользователя и пароль и доступ к интернету появится, но нам нужна прозрачная, NTLM-авторизация, чтобы пользователь авторизовывался под той же учетной записью, что  и логинился в систему. Для этого, заходите в свойства Internet Explorer, вкладка Безопасность > выбираете зону Интернет и нажимаете кнопку Другой уровень. В открывшемся окне находите Проверка подлинности пользователя > Вход > ставите селектор на Автоматический вход в сеть с текущим именем пользователя и паролем (User Authentication > Logon > Automatic logon with current user name and password). Все, проверяете, на этот раз при переходе по какому либо интернет-адресу должно только мигнуть окно редиректа на сервер с Kerio Winroute и вы попадете на искомую веб-страницу.

У каждого пользователя так делать ни к чему конечно, потому что есть групповые политики.  Эта политика находится здесь: User Configuration > Windows Settings >Internet Explorer Maintenance > Security > Security Zones and Content Ratings > Security Zones and Privacy > Internet (Security Level: Custom) >User Authentication >Logon  > Automatic logon with current username and password.

Впрочем, даже после того, как мы все это сделаем, возникает еще один такой неприятный момент, до тех пор, пока пользователь не авторизовался на KWF, доступ в интернет он не получит (что логично), также выход в интернет будет закрыт и для всех остальных протоколов, например POP3, ICQ и т.п. Получается, что каждому пользователю, перед тем как воспользоваться аськой или почтой по POP3, придется сначала зайти на какую-либо страничку в Internet Explorer. Чтобы не напрягать этим пользователей, можно написать простейший скрипт, который запускает IE, заходит на какую-либо страничку (например стартовую KWF) и соответственно авторизуется там.

Таких скрипта мы используем два, один для Logon, другой для Logoff.

Set IE = CreateObject("InternetExplorer.Application")
IE.AddressBar = FALSE
IE.MenuBar = FALSE
IE.Toolbar = FALSE
IE.StatusBar = FALSE
IE.Width = 1
IE.Height = 1
IE.Top = 0
IE.Left = 0
IE.Navigate "http://gate:4080/nonauth/login.php?NTLM=1"
IE.Visible = false
WScript.Sleep(500)
IE.Quit
Set IE = CreateObject("InternetExplorer.Application")
IE.AddressBar = FALSE
IE.MenuBar = FALSE
IE.Toolbar = FALSE
IE.StatusBar = FALSE
IE.Width = 1
IE.Height = 1
IE.Top = 0
IE.Left = 0
IE.Navigate "http://gate:4080/logout/"
IE.Visible = false
WScript.Sleep(500)
IE.Quit
Реклама

комментариев 10 to “Автоматическая авторизация в Kerio Winroute пользователей из Active Directory”

  1. gavrosh said

    Мои замечания:
    1. «(тоже в домене, это необязательное условие автоматической авторизации)»
    Машина с винроутом обязательна должна быть в домене
    2. зачем на закладке Authentication Options нужна галка «включить принудительную авторизацию для непрозрачного прокси» — он ведь не используется, а так будет 2 раза пароль запрашивать при страничек.
    А так вроде всё ок, ну и ещё для незнающих напишите в какой формат сохранять скрипты) я так понимаю это .vbs

    logon на .js

    var $serverURL="http://kerio_host:4080/nonauth/login.php?NTLM=1&internal=0";
    var oIE = WScript.CreateObject("InternetExplorer.Application");
    oIE.Visible = 0;
    oIE.navigate($serverURL);
    while ((oIE.Busy) || (oIE.ReadyState != 4)) WScript.Sleep(500);
    WScript.Sleep(100);
    oIE.Quit();

    logoff на .js

    var $serverURL="http://kerio_host:4080/nonauth/login.php?NTLM=0&internal=0";
    var oIE = WScript.CreateObject("InternetExplorer.Application");
    oIE.Visible = 0;
    oIE.navigate($serverURL);
    while ((oIE.Busy) || (oIE.ReadyState != 4)) WScript.Sleep(300);
    try {
    oIE.document.all.tags('form')[1].submit();
    oIE.Quit();
    } catch (error) {
    // Здесь действие, если пользователь не залогинился в KWF
    oIE.Quit();
    }

    Как-то так)

    • retifff said

      Почему обязательно в домене? Я, честно сказать подзабыл уже, если буду дописывать статью, проверю.

      2. зачем на закладке Authentication Options нужна галка «включить принудительную авторизацию для непрозрачного прокси» – он ведь не используется, а так будет 2 раза пароль запрашивать при страничек.

      Ну в справке в принципе написано, зачем, это для терминального сервера нужно. Опять же, отражу этот момент, если буду дописывать эту статью.

      • gavrosh said

        обязательно должен быть в домене для того для того чтобы получать учётные данные в домене. Если комп не член домена, то и контроллер домена никаких данных ему не даст.

        Про принудительную авторизацию на прокси — да, для терминальных серверов, но при условии, что включен прокси сервер, иначе эта галка не к чему.

  2. D.NeeZ_K said

    Хотелось заметить что правило DC01 Traffic то же нужно, а иначе он не будет пересылать запросы на страницу аторизации. Если я правильно понял работу Керио. Да кстати спасибо за помощь, ваша статья помогла более менее разобраться с Керио.

  3. Dima said

    а как быть с пользователями которые используют другие браузеры?

  4. alyam said

    получается, что NAT no Auth — это дыра…. она позволяет неаунтефицированным пользователям беззаботно пользоваться протоколом HTTP.
    норм мануал )) простите за сарказм )

    • retifff said

      А вы прочитайте внимательней, может и не получается 🙂

      Правило NAT no Auth — это правило без аутентификации, которое нужно для того, чтобы разрешить неаутентифицированному пользователю при попытке открыть любой веб-сайт попасть на страницу аутентификации KWF (куда он перенаправляется вследствие наших предыдущих настроек). Там он аутентифицируется либо вручную, либо автоматически с помощью NTLM и после этого уже отрабатывает правило NAT Auth Users, которое определяет доступные протоколы для аутентифицированных пользователей.

  5. Саня said

    Пробовал похожие скрипты, только нашел их в другом месте. На компах с ХР все хорошо. Возникла проблема с пользователями на Win7, окно IE видимое и не закрывается. Но если же авторизоваться под учеткой администратора домена, то скрипт отлично и невидимо работает. Чего не хватает???

    • Serge said

      Надо отключить UAC.

      • Саня said

        Это конечно вариант. Но вылез другой неудобный момент. С отключенным UAC, теперь невозможно что либо запустить от имени админа, когда в системе залоген обычный юзер. Приходиться заходить под учеткой админа. Может я конечно как то не так отключил UAC. Делал через GP.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: