Назад | Перейти на главную страницу

Как интегрировать RADIUS с Kerberos?

У нас есть правильно настроенный LDAP + Kerberos в нашей проводной сети.

Теперь мы хотим, чтобы наши пользователи входили в нашу сеть Wi-Fi, используя свои обычные учетные данные. Я нашел много HOWTOS о LDAP + RADIUS, но ни один из них не упоминает Kerberos в пакете. Может ли кто-нибудь указать мне хорошее HOWTO по интеграции RADIUS с Kerberos? Я нашел только эта короткая статья и несколько неинформативных сообщений в Usenet.

РЕДАКТИРОВАТЬ: Система - это Gentoo Linux с использованием OpenLDAP и Heimdal (Kerberos). Оборудование WiFi - это несколько Linksys WRT54GL с OpenWRT.

Вот как вы заставляете freeradius проверять комбинацию пользователя и пароля на сервере Kerberos и авторизоваться на вашем сервере LDAP - вставьте это в свой radius.conf:

modules {
    krb5 {
            keytab = ${confdir}/radius.keytab
            service_principal = radius/radius.example.com
    }

    ldap {
            cache = no
            server = "ldap"
            identity = "uid=freeradius,ou=Accounts,dc=example,dc=com"
            password = secret
            basedn = "dc=com"
            filter = "(krbPrincipalName=%{User-Name})"
            base_filter = "(objectClass=radiusprofile)"

            tls {
                    start_tls = no
                    # tls_cacertfile        = /path/to/cacert.pem
                    # tls_cacertdir         = /path/to/ca/dir/
                    # tls_certfile          = /path/to/radius.crt
                    # tls_keyfile           = /path/to/radius.key
                    # tls_randfile          = /path/to/rnd
                    # tls_require_cert      = "demand"
            }

            default_profile = "uid=freeradius,ou=Accounts,dc=example,dc=com"
            profile_attribute = "radiusProfileDn"
            access_attr = "dialupAccess"

            dictionary_mapping = ${raddbdir}/ldap.attrmap

            ldap_connections_number = 5

            groupname_attribute = cn
            groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))"
            #groupmembership_attribute = radiusGroupName
            timeout = 4
            timelimit = 3
            net_timeout = 1
            # compare_check_items = yes
            # do_xlat = yes
            # access_attr_used_for_allow = yes

            # set_auth_type = yes
    }
}

Это предполагает, что вы добавили правильную схему радиуса (поставляется с freeradius, IIRC) в свой каталог LDAP, и она должна указать вам правильное направление --- я не использую 802.1X, но я использую эту конфигурацию для обработки другие сценарии управления доступом kerberos-via-radius, и он уже некоторое время работает в производственной среде. Очевидно, что пользователи входят в систему со своими полными участниками Kerberos (а не только с именами пользователей).

Это можно сделать с помощью 802.1x - PEAP-MSCHAP для Kerberos MIT с помощью KCRAP. Первоначально разработанные для того, чтобы позволить пользователям Samba аутентифицироваться в Kerberos с использованием NTLM, его библиотеки можно использовать в freeradius для выполнения необходимой проверки хэша NTLM.

Это решение требует, чтобы вам было удобно запускать и поддерживать индивидуальное программное обеспечение. Примерные шаги к реализации:

  1. Добавить arcfour-hmac:normal хеш пароля к вашему KDB. Пользователи должны будут обновить свои пароли, чтобы создать требуемый хеш для NTLM.
  2. Скомпилируйте и установите демон kcrapd, который будет запускаться в KDB для поиска пользовательских хэшей.
  3. Соберите, установите и настройте kcrap-libs на вашем сервере (ах) RADIUS.
  4. Создайте модуль аутентификации для вашего сервера RADIUS, который взаимодействует с kcrap-libs для аутентификации пользователей.

Мы запускаем это решение для всего кампуса с устройствами Windows, которые автоматически проходят аутентификацию с использованием собственных учетных данных AD с нашими синхронизированными KDB.

Если Microsoft, то там пара статей. Технет и документ здесь Документ TechNet Word