- Авторизация с помощью Kerberos
- Настройка авторизации Kerberos
- Стандартный режим авторизации Kerberos.
- Прозрачный режим авторизации Kerberos.
- Проверка авторизации Kerberos.
- Проверка корректности выпуска keytab файла для Kerberos авторизации
- Настройка браузера Firefox для авторизации Kerberos
- 4.5.2. Пользователи Linux
- 3.5.2.1. С помощью xprofile¶
- 3.5.2.2. С помощью systemd¶
Авторизация с помощью Kerberos
[u]text[/u] — Подчеркнутый текст.
[i]text[/i] — Курсивный текст.
[s]text[/s] — Зачеркнутый текст.
[color=green]text[/color] — Цветной текст.
[url=kbpublisher.com]text[/url] — text
[quote]text[/quote] — Цитируемый текст
[h1]text[/h1] — Заголовок.
[code]text[/code] — Код text
Настройка авторизации Kerberos
Авторизация Kerberos позволяет прозрачно (без запроса имени пользователя и его пароля) авторизовать пользователей домена Active Directory. При авторизации через Kerberos сервер UserGate работает с контроллерами домена. Контроллеры домена выполняют проверку пользователя, который получает доступ в интернет.
Примечание Для авторизации пользователей через Kerberos пользователи должны входить в группу Domain users (пользователи домена) в AD.
Для настройки авторизации Kerberos необходимо выполнить следующие действия (для настройки авторизации Kerberos предварительно был создан домен test1.net).
- Создать DNS-записи для сервера UserGate. Необходимо создавать записи типа A, не создавайте записи типа CNAME. В качестве IP-адреса необходимо указать IP-адрес интерфейса UserGate, подключенного в зону Trusted.
- Создать пользователя в домене AD, например kerb @ test1 . net с параметром учётной записи password never expires (срок действия пароля не ограничен). Установить пароль пользователю, например, kerb.
Примечание Не используйте символы национальных алфавитов, например, кириллицу, в именах пользователя kerb или в организационных единицах AD, где вы планируете создать учетную запись kerb. Пользователь для Kerberos и пользователь для LDAP-коннектора должны отличаться. Не используйте одну и ту же учетную запись.
ПримечаниеВ случае, если keytab файл создавался ранее, необходимо удалить учётную запись пользователя, для которого он был создан.
- Создать keytab файл на контроллере домена. Для этого необходимо запустить командную строку от имени администратора и выполнить следующую команду.
ktpass.exe /princ HTTP/auth . test1 . net @ TEST1 . NET /mapuser kerb @ TEST1 . NET /crypto ALL /ptype KRB5_NT_PRINCIPAL /pass * /out C:\utm.keytab
Далее введите пароль пользователя kerb. Keytab файл создан (в корне диска С:\).
- auth.test1.net — DNS — запись, созданная для сервера UserGate в пункте 1.
- TEST1.NET — Kerberos realm domain, обязательно большими буквами.
- kerb @ TEST1 . NET — имя пользователя в домене (созданное ранее в пункте 2), имя realm-домена обязательно большими буквами.
После успешного создания keytab файла Имя входа пользователя (Userlogon name) изменилось (можно проверить в свойствах пользователя kerb во вкладке Учётная запись).
На UserGate-сервере предварительно произведены сетевые настройки, протокол QUIC запрещён (можно запретить, настроив правило межсетевого экрана в разделе Политики сети ➜ Межсетевой экран), включено правило дешифрования всех неизвестных пользователей (раздел Политики безопасности ➜ Инспектирование SSL: можно использовать правило, созданное по умолчанию Decrypt all for unknown users). Это необходимо для авторизации пользователей, которые делают свои запросы по зашифрованному протоколу HTTPS.
Вариант 1. В разделе Сеть ➜ DNS ➜ Системные DNS-серверы укажите IP-адреса контроллеров домена (в данном примере 10.0.0.20).
Настройте синхронизацию времени с контроллером домена: в разделе UserGate ➜ Настройки ➜ Настройка времени сервера необходимо изменить Основной NTP-сервер. Укажите IP-адрес контроллера домена. В качестве запасного — опционально — можно указать IP-адрес другого контроллера домена.
Далее перейдите к пункту 5.
Вариант 2. В разделе Сеть ➜ DNS ➜ Системные DNS-серверы укажите IP-адреса DNS-серверов интернета.
В разделе Сеть -➜ DNS -➜ DNS-прокси ➜ Правила DNS нажмите на кнопку Добавить и укажите домен и IP-адреса контроллеров домена.
Настройте синхронизацию времени в разделе UserGate ➜ Настройки ➜ Настройка времени сервера. Измените основной и запасной NTP-серверы (поля Основной NTP-сервер и Запасной NTP-сервер).
Перейдите в раздел Сеть ➜ Зоны и в настройках зоны внутренней подсети организации (по умолчанию, зона Trusted) во вкладке Контроль доступа разрешите сервисы DNS и NTP сервис.
На серверах контроллеров AD укажите UserGate в качестве корневого сервера DNS и основного сервера NTP.
В разделе UserGate ➜ Настройки ➜ Модули измените названия доменов Auth/Logout Captive-портала и страницы блокировки на доменные имена, созданные в пункте 1.
- Создать LDAP — коннектор для получения информации о пользователях и группах Active Directory и загрузить keytab-файл.
Для этого перейдите в раздел Пользователи и устройства ➜ Серверы авторизации и добавьте LDAP коннектор, нажав на кнопку Добавить и выбрав Добавить LDAP коннектор.
В свойствах коннектора LDAP во вкладке Настройки необходимо указать:
- Произвольное название LDAP-коннектора (поле Название).
- IP-адрес сервера контроллера домена (поле Доменное имя LDAP или IP-адрес ).
- Bind DN («логин») в формате DOMAIN\username или username @ domain для подключения к серверу LDAP. Данный пользователь уже должен быть заведен в домене.
- Пароль пользователя для подключения к домену.
Во вкладке Домены LDAP свойств коннектора добавьте доменное имя LDAP.
Далее загрузите созданный в пункте 3 keytab файл во вкладке Kerberos keytab.
После внесения настроек нажмите на кнопку Проверить соединение. В случае, если настройки внесены верно, то вы увидите следующее сообщение.
Сохраните настройки LDAP коннектора.
В разделе Пользователи и устройства ➜ Профили авторизации создайте профиль авторизации Kerberos и укажите следующие данные:
- Во вкладке Общие необходимо указать Название: произвольное название профиля авторизации (допустим kerberos auth).
- Во вкладке Методы аутентификации добавьте Аутентификация Kerberos.
Сохраните настройки профиля авторизации, нажав на кнопку Сохранить.
Создайте Captive-профиль во вкладке Пользователи и устройства ➜ Captive-профили и заполните необходимые данные и сохраните. Во вкладке Общие укажите:
- Название Captive — профиля.
- Профиль авторизации, созданный ранее.
Добавьте правило Captive-портала для авторизации Kerberos в разделе Пользователи и устройства ➜ Captive-портал. В свойствах правила Captive-портала во вкладке Общие необходимо указать:
В разделе Сеть ➜ Зоны на вкладке Контроль доступа разрешите доступ к сервису HTTP(S)-прокси для зоны, к которой подключены пользователи, использующие авторизацию Kerberos.
Войдите в систему под учётной записью доменного пользователя. Для корректной работы с HTTPS-сайтами установите сертификат, используемый для дешифрования трафика, в доверенный сертификаты.
Стандартный режим авторизации Kerberos.
Для работы в стандартном режиме авторизации Kerberos укажите обязательное использование прокси сервера в виде FQDN-имени UserGate. Перейдите Панель управления ➜ Cеть и Интернет ➜ Свойства браузера ➜ Подключения ➜ Настройка сети ➜ Прокси-сервер и укажите FQDN и порт интерфейса UserGate, к которому будут подключены пользователи.
Прозрачный режим авторизации Kerberos.
Для работы в прозрачном режиме авторизации перейдите в Панель управления ➜ Cеть и Интернет ➜ Свойства браузера ➜ Безопасность ➜ Интернет. В разделе Уровень безопасности для этой зоны нажмите кнопку Другой и в параметрах безопасности в разделе Проверка подлинности пользователя ➜ Вход установите Автоматический вход в сеть с текущим именем пользователя и паролем.
Проверка авторизации Kerberos.
Для проверки работы авторизации Kerberos в браузере пользователя перейдите на сайт, например, ya.ru. Далее на UserGate перейдите во вкладку Журналы и отчёты в раздел Журналы ➜ Журнал веб-доступа. В журнале видно, что запрос происходит от доменного пользователя.
Проверка корректности выпуска keytab файла для Kerberos авторизации
В случае некорректной работы Keytab файла или Kerberos в целом, необходимо выполнить проверку по следующей инструкции:
- Установить Ubuntu версии 14.04.5 или выше.
- Выполнить обновления с использованием команды:
- Установить необходимый пакет для использования команды kinit — в терминале выполнить:
- Переименовать созданный на контроллере домена Keytab файл в krb5.keytab
- Поместить данный krb5.keytab файл в директорию /etc/
- Выполнить проверку Keytab файла следующей командой — в терминале выполнить
где example_utm.example.ru — DNS-запись сервера UserGate, ошибок быть не должно (пустая строка).
Ticket cache: FILE:/tmp/krb5cc_1000Default principal: HTTP/example_utm.example.loc@EXAMPLE.LOC Valid starting Expires Service principal08/08/2017 00:53:02 08/08/2017 10:53:02 krbtgt/EXAMPLE.LOC@EXAMPLE.LOC renew until 08/09/2017 00:53:02
На этом проверка закончена: keytab файл создан корректно.
Дополнительно: команда: «setspn.exe -X» проверяет уникальность PRINCIPAL-записей на контроллере домена.
Настройка браузера Firefox для авторизации Kerberos
Для корректной авторизации пользователей, использующих браузер Firefox, с помощью Kerberos необходимо в браузере перейти по адресу about:config и указать значение вашего домена Active Directory в следующих конфигурационных параметрах:
- network.negotiate-auth.trusted-uris.
- network.negotiate-auth.delegation-uris.
На картинке ниже показаны измененные значения этих параметров для домена AD test1.net:
В случае использования ОС Ubuntu 22.04 и выше необходимо в файле krb5.conf добавить следующее:
4.5.2. Пользователи Linux
Для настройки прозрачной авторизации на ОС семейства Linux можно воспользоваться следующей командой:
curl --proxy-negotiate -u:user -x auth.usergate.demo:8090 http://example.ru &> /dev/null
где u:user — буквально; имя пользователя подставлять не нужно;
auth.usergate.demo — FQDN прокси-сервера UserGate;
http://example.ru — любой URL; используется для заполнения соответствующего поля при формировании веб-запроса к прокси-серверу.
Для сброса авторизации можно воспользоваться следующей командой:
где logout.usergate.demo — FQDN прокси-сервера UserGate.
Выполнение команды должно осуществляться с IP-адреса, авторизацию которого необходимо сбросить.
3.5.2.1. С помощью xprofile¶
- В домашней директории пользователя создайте файл .xprofile (точка обязательна) и сделайте файл исполняемым (chmod +x ~/.xprofile).
- Пропишите в файле следующие строки:
3.5.2.2. С помощью systemd¶
Также можно воспользоваться функционалом подсистемы инициализации и управления службами systemd. В этом случае необходимо создать файл сервиса и зарегистрировать его в systemd.
- Для работы скрипта создайте файл с произвольным именем, например, auth.service в каталоге ~/.config/systemd/user.
- Добавьте в файл следующее:
[Unit] Description=Auth service on UserGate NGFW After=network.target network-online.target Wants=network-online.target [Service] Type=oneshot RemainAfterExit=true TimeoutStartSec=0 ExecStart=/path-to-curl/curl --proxy-negotiate -u:user -x auth.usergate.demo:8090 http://cbr.ru > /dev/null ExecStop=/path-to-curl/curl --cookie "csrf_token=foo" -v -X POST -d "csrfmiddlewaretoken=foo" -H "Content-Type: application/x-www-form-urlencoded" http://logout.usergate.demo:8002/cpa/logout [Install] WantedBy=default.target
systemctl --user daemon-reload systemctl --user enable auth.service
Аналогичным образом реализуйте запуск скрипта сброса сессии пользователя при перезагрузке или выключении машины.