Настройка Kerberos-аутентификации для Linux
Настройки kerberos-аутентификации под Linux отличаются в зависимости от дистрибутива. В таблице представлены пакеты, которые необходимо установить для настройки аутентификации.
RHEL/ CentOS/ Fedora | Debian/ Ubuntu/ Astra | Alt |
---|---|---|
krb5-workstation krb5-libs krb5-pkinit pam_krb5 sssd-krb5 sssd-krb5-common gssntlmssp | krb5-user krb5-config krb5-pkinit sssd-krb5 sssd-krb5-common gss-ntlmssp | krb5-kinit pam_krb5 sssd-krb5 sssd-krb5-common gssntlmssp |
Настройка подключения к серверу Kerberos
Чтобы настроить подключение к серверу Kerberos, внесите изменения в файл «/etc/krb5.conf»:
- В секции [libdefaults] укажите:
default_ccache_name = FILE:/home/%/krb5cc
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac
default_realm = название_домена_в_котором_находится_сервер_Kerberos_в_верхнем_регистре
- Если на сервере Kerberos включено другое шифрование, тогда его нужно указать вместо rc4-hmac.
- Если это шифрование относится к стойким, то параметр allow_weak_crypto можно поставить в false.
- имя_домена = имя_домена_в_верхнем_регистре
- имя_домена_с_сточкой_впереди = имя_домена_в_верхнем_регистре
- [domain_realm]
- v2016.testinfomaximum.com = V2016.TESTINFOMAXIMUM.COM
- .v2016.testinfomaximum.com = V2016.TESTINFOMAXIMUM.COM
kinit пользователь_под_которым_будем_входить_в_систему@домен_в_верхнем_регистре
После ввода пароля создается билет Kerberos, по которому можно будет входить в систему. Билет имеет время жизни, которое можно установить в «krb5.conf» в секции [libdefaults] (например, ticket_lifetime = 24h) или при вызове kinit (добавив перед именем пользователя ключ -l от времени жизни). После истечения времени жизни билет необходимо пересоздавать командой kinit.
При использовании стойких шифров сервер Kerberos (KDC) добавляет к паролю дополнительные символы («соль»). В качестве «соли» Kerberos использует имя домена, объединённое с именем сервера. Клиент Kerberos под Linux в качестве «соли» по умолчанию использует имя домена, объединённое с именем пользователя, под которым необходимо залогиниться. Таким образом, при использовании стойкого шифрования не удаётся наладить связь между KDC и клиентом, так как пароли оказываются разными. Чтобы избежать данной проблемы, мы советуем задать в клиенте Kerberos шифрование rca4-hmac.
Настройки браузеров
Firefox
Чтобы настроить браузер Firefox:
- На вкладке about:config найдите все параметры со словом negotiate.
- Установите в true:
network.negotiate-auth.allow-non-fqdn
network.negotiate-auth.allow-proxies
network.negotiate-auth.using-native-gsslib
Active Directory в браузере FireFox не работает со встроенной библиотекой обработки GSS-API. Инструкция по решению данной проблемы представлена на странице Настройка Kerberos-аутентификации для Firefox.
Chrome/Chromium
Чтобы настроить браузеры Chrome/Chromium, в директории /etc/chromium/policies/managed (или /etc/chromium-browser/policies/managed) создайте json-файл с произвольным именем (например, kerberos.json):
Этот файл настроен на принятие любых адресов для использования Kerberos. Можно заменить «*» на конкретное доменное имя сервера.
Вход в систему
После создания билета и настройки браузера вход в систему осуществляется через нажатие кнопки Войти с помощью Active Directory. При этом ни имя, ни пароль дополнительно не запрашиваются (запрос пароля происходит в процессе создания билета Kerberos).
Настройка браузера Chrome на Linux для авторизации Kerberos/Captive portal
Для авторизации пользователей доменных компьютеров удобно использовать автоматическую авторизацию Kerberos . Для пользователей, чьи компьютеры не входят в домен, авторизация Kerberos работать не будет. Удобным вариантом в этом случае будет использование двух методов авторизации — в качестве первого метода авторизации Kerberos , а в качестве второго — Captive portal . На компьютерах с ОС Windows такой вариант работает хорошо, пользователям, не сумевшим пройти авторизацию Kerberos , будет предложено ввести авторизационные данные на странице Captive -портала. Для пользователей Linux с установленным браузером Chrome необходима дополнительная настройка.
В браузере Chrome (и его вариациях) не отображается портал авторизации. Пользователь только видит пустое окно со следующим содержимым:
HTTP /1.1 407 Authorization Required
Содержимое страницы
Для подробной информации по работе с политиками в браузере, обратитесь к документации по адресу: https://www.chromium.org/administrators/linux-quick-start
1. В соответствии с инструкцией, нужно создать json-файл в директории managed:
touch /etc/opt/chrome/policies/managed/test_policy.json
Содержимое файла должно быть следующего вида:
«AuthServerWhitelist»: «*.usergate.demo»,
«AuthSchemes»: «ntlm,negotiate»
«usergate.demo» необходимо заменить на доменное имя вашего домена.
2. В браузере Chrome открыть страницу политик about:policy.
Вы должны увидеть настройки прописанные в файле на открытой странице:
Если этих строк нет, значит браузеру не удалось загрузить политики из созданного файла. Проверьте права доступа, и другие возможные причины. Обратите внимание, различные браузеры имеют особенности в загрузке политик. Например браузер Chromium на Kali Linux автоматически не загружает описанные политики.
После проведенных манипуляций, браузер не способный произвести прозрачную Kerberos аутентификацию, будет перенаправлять пользователя на портал авторизации.
Archy’s Blog
By default, chromium does not have kerberos authentication enabled. In order to enable it, you’ll have to set the «—auth-server-whitelist background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: «arial»; font-size: 16px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;»> [archy@castle-bravo ~]$ sudo vim /usr/lib64/chromium-browser/chromium-browser.sh
You’ll have to add the «—auth-server-whitelist=» to the «CHROMIUM_DISTRO_FLAGS background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: «arial»; font-size: 16px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;»> CHROMIUM_DISTRO_FLAGS=» —enable-plugins \ —enable-extensions \ —enable-user-scripts \ —enable-printing \ —enable-sync \ —auto-ssl-client-auth \ —auth-server-whitelist=*.archyslife.lan «
For Google Chrome you’ll have to edit the /usr/bin/google-chrome-File
[archy@castle-bravo ~]$ sudo vim /usr/bin/google-chrome
and add the «—auth-server-whitelist background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: «arial»; font-size: 16px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;»> exec -a «$0» «$HERE/chrome» «—auth-server-whitelist=*.archyslife.lan» «$@»
Feel free to comment and / or suggest a topic.
- Get link
- Other Apps