This is an old revision of the document!
Всем привет!
Вот такой вопрос прозвучал в комментариях к этой статье, спасибо автору, а еще нам на предприятие пришло вот такое распоряжение:
IMG_1.png
Если бы у нас на предприятии уже использовалась инфраструктура Microsoft AD, мы бы подумали о миграции на Samba 4, но задача касалась только вводимых в эксплуатацию рабочих станций Linux и мы выбрали “ванильный” MIT Kerberos.
В двух словах про Kerberos, это протокол аутентификации позволяющий, использовать свой логин и пароль на любом компьютере, подключенном к kerberos сфере (входящем в домен, в терминах Microsoft). А кроме того, он реализует Технологию единого входа (Single Sign-On), что позволяет, например, предоставить “прозрачный” авторизованный доступ в Интернет через прокси сервер.
Итак, реализация:
Разворачиваем в сети kerberos сервер (Центр распределения ключей - Key distribution center - KDC). Очень важно правильно указать hostname системы и сделать соответствующие A и SRV записи в DNS
# hostnamectl set-hostname kdc.bmstu.ru # nslookup -q=SRV _kerberos._udp.bmstu.ru ... _kerberos._udp.bmstu.ru service = 1 0 88 kdc.bmstu.ru. ... kdc.bmstu.ru internet address = A.B.C.D
Так же, работа протокола kerberos требует синхронизации времени, с расхождением не более 5 минут
Устанавливаем программное обеспечение и инициализируем kerberos сферу (realm или домен, в терминах Microsoft)
# apt install krb5-kdc krb5-admin-server # krb5_newrealm ... # service krb5-kdc restart
Добавляем учетные записи пользователей (в kerberos называются principal)
kadmin.local -q 'addprinc -pw somepassword ivanovii'
Можно подключать к kerberos сфере (вводить в домен) рабочие станции, например, таким способом и, к любой из них, пользователь сможет подключиться своим логином и паролем
Разворачиваем прокси сервер для авторизованного доступа пользователей в Интернет. Тоже, очень важно, указать корректный hostname и, соответствующую, A запись в DNS
# hostnamectl set-hostname authproxy.bmstu.ru # apt install squid
37 kadmin.local -q 'addprinc -randkey HTTP/authproxy.bmstu.ru'
39 kadmin.local -q 'ktadd -k authproxyhttp.keytab HTTP/authproxy.bmstu.ru' scp authproxyhttp.keytab val@authproxy:
</code>
Аналогично можно настроить “прозрачный” доступ соответствующих программ к сервисам SMTP, IMAP, LDAP, XMPP, CIFS и, даже, SSH:)
В следующей статье планирую рассказать как мы дополнили “Cамое простое решение для Kerberos” реализацией GPO на основе ansible-pull и GitLab
На этом все, спасибо, буду рад ответить на вопросы в комментариях