Como integrar o RADIUS ao Kerberos?

4

Temos o LDAP + Kerberos configurado corretamente em nossa rede com fio.

Agora, queremos que nossos usuários façam login em nossa rede Wi-Fi usando suas credenciais normais. Eu encontrei muitos HOWTOS sobre LDAP + RADIUS, mas nenhum deles menciona o Kerberos no pacote. Alguém pode me indicar um bom tutorial sobre a integração do RADIUS com o Kerberos? Eu encontrei apenas este pequeno artigo e algumas postagens não informativas na Usenet.

EDITAR: O sistema é o Gentoo Linux usando OpenLDAP e Heimdal (Kerberos). O hardware WiFi são vários Linksys WRT54GL com OpenWRT.

    
por minder 25.11.2010 / 16:36

3 respostas

2

Isso pode ser feito com o 802.1x - PEAP-MSCHAP para os kerberos do MIT com a ajuda do KCRAP . Originalmente desenvolvido para permitir que os usuários do Samba se autentiquem no kerberos usando o NTLM, suas bibliotecas podem ser usadas no freeradius para fazer a verificação necessária do hash do NTLM.

Esta solução requer que você esteja confortável executando e mantendo software personalizado. As etapas aproximadas da implementação são:

  1. Adicione o hash da senha arcfour-hmac:normal ao seu KDB. Os usuários terão que atualizar suas senhas para criar o hash necessário para o NTLM.
  2. Crie e instale um daemon kcrapd para ser executado no (s) KDB (s) para pesquisar hashes do usuário.
  3. Crie, instale e configure as kcrap-libs em seus servidores RADIUS.
  4. Crie um módulo de autenticação para o servidor radius que faz interface com as kcrap-libs para autenticar usuários.

Nós executamos esta solução para um campus inteiro com dispositivos windows autenticando automaticamente usando suas credenciais nativas do AD em relação aos nossos KDBs sincronizados.

    
por 08.02.2011 / 17:28
5

Veja como você faz com que o freeradius verifique uma combinação de usuário / senha em um servidor Kerberos e autorize em seu backend LDAP --- coloque isso em seu arquivo 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
    }
}

Isso pressupõe que você tenha adicionado o esquema de raio correto (fornecido com freeradius, IIRC) em seu diretório LDAP, e ele deve apontar você na direção certa --- Eu não faço 802.1X, mas eu uso isso config para lidar com outros cenários de controle de acesso do kerberos-via-radius, e está sendo executado em produção por um tempo agora. Obviamente, os usuários estão efetuando login com seus principais kerberos completos (em vez de apenas nomes de usuários).

    
por 03.02.2011 / 09:36
1

Se a Microsoft, então, há alguns artigos. Technet e um documento aqui Documento do Word do TechNet

    
por 25.11.2010 / 17:22