Configurando o RADIUS + LDAP para WPA2 no Ubuntu

16

Estou configurando uma rede sem fio para ~ 150 usuários. Em resumo, estou procurando um guia para configurar o servidor RADIUS para autenticar o WPA2 em um LDAP. No Ubuntu.

  • Eu tenho um LDAP em funcionamento, mas como ele não está em uso de produção, ele pode ser facilmente adaptado a quaisquer alterações que este projeto possa exigir.
  • Eu tenho visto o FreeRADIUS, mas qualquer servidor RADIUS fará isso.
  • Temos uma rede física separada apenas para WiFi, por isso, não há muitas preocupações com segurança nessa frente.
  • Nossos APs são o material corporativo de baixo nível da HP - eles parecem apoiar tudo o que você pode imaginar.
  • Todo o Ubuntu Server, baby!

E a má notícia:

  • Eu agora alguém menos experiente do que eu acabará assumindo a administração, então a configuração deve ser o mais "trivial" possível.
  • Até agora, nossa configuração é baseada apenas em software dos repositórios do Ubuntu, com exceção de nosso aplicativo da web de administração LDAP e alguns pequenos scripts especiais. Portanto, não "busque o pacote X, untar, ./configure"-things se for evitável.

ATUALIZAÇÃO 2009-08-18:

Embora tenha encontrado vários recursos úteis, há um obstáculo sério:

Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.
Basicamente, a versão do Ubuntu do FreeRADIUS não suporta SSL (bug 183840,) o que torna inúteis todos os tipos seguros de EAP. Que pena.

Mas alguma documentação útil para qualquer pessoa interessada:

ATUALIZAÇÃO 2009-08-19:

Acabei de compilar o meu próprio pacote FreeRADIUS ontem à noite - há uma receita muito boa em link (Veja os comentários no post para instruções atualizadas).

Eu recebi um certificado do link (você provavelmente deve obter um certificado "real" se possível)

Depois, segui as instruções no link . Isso vincula-se ao link , que vale muito a pena ler se você quiser saber como funciona a segurança WiFi.

ATUALIZAÇÃO 2009-08-27:

Depois de seguir o guia acima, consegui que o FreeRADIUS falasse com o LDAP:

Eu criei um usuário de teste no LDAP, com a senha mr2Yx36M - isso fornece uma entrada LDAP aproximadamente de:

uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja

Ao usar radtest , posso me conectar bem:

> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
    User-Name = "msiebuhr"
    User-Password = "mr2Yx36N"
    NAS-IP-Address = 127.0.1.1
    NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
> 

Mas quando eu tento o AP, ele não voa - enquanto confirma que ele descobre as senhas NT e LM:

...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP.  Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
...

É claro que as senhas NT e LM diferem das acima, mas a mensagem [ldap] user testuser authorized to use remote access - e o usuário é rejeitado posteriormente ...

    
por Morten Siebuhr 30.07.2009 / 00:51

5 respostas

11

Vou tentar responder a questão do LDAP aqui.

Veja a resposta resumida: verifique se o módulo ldap foi removido da seção authenticate e certifique-se de que o módulo mschap esteja presente na seção authorize e authenticate . E apenas ignore a "senha" "boa não conhecida".

E agora aqui está a resposta (muito) longa.

Como funciona o módulo ldap?

Quando você ativa o módulo ldap na seção authorize , isso é o que acontece quando um pacote RADIUS é recebido pelo FreeRADIUS:

  1. ele tenta ligar-se ao servidor LDAP (como um usuário convidado ou usando a identidade fornecida, se houver um configurado em ldap.conf )
  2. ele procura a entrada DN do usuário usando o filtro sob o DN base (configurado em ldap.conf ).
  3. ele busca todos os atributos LDAP que pode obter entre aqueles configurados em ldap.attrmap e os converte em atributos RADIUS.
  4. adiciona esses atributos à lista de itens de verificação do pacote RADIUS.

Quando você ativa o módulo ldap na seção authenticate , isso é o que o FreeRADIUS faz:

  1. ele tenta se ligar ao servidor LDAP como o usuário .
  2. se puder ser vinculado, será uma autenticação bem-sucedida e um pacote Radius-Accept será enviado de volta ao cliente ou, então, será uma falha, levando a um pacote Radius-Reject .

Então, como eu posso configurar o FreeRADIUS para fazer o PEAP / MS-CHAP-v2 funcionar com o LDAP?

O ponto importante aqui é que a ligação como usuário só funcionará se o servidor FreeRADIUS puder recuperar a senha de texto não criptografado do usuário do pacote RADIUS que recebeu. Este é apenas o caso quando os métodos de autenticação PAP ou TTLS / PAP são usados (e possivelmente também EAP / GTC). Somente o método TTLS / PAP é realmente seguro e não está disponível por padrão no Windows. Se você deseja que seus usuários se conectem com o TTLS / PAP, é necessário que eles instalem um software de solicitante TTLS, o que raramente é uma opção. Na maioria das vezes, ao implantar o WiFi com a segurança do WPA Enterprise, o PEAP / MS-CHAP-v2 é a única opção razoável.

Portanto, a linha inferior é: a menos que você esteja usando PAP ou TTLS / PAP, você pode remover com segurança o módulo ldap da seção authenticate e, na verdade, você deve: ligação como o usuário não funcionará. / p>

Se o seu teste funcionar quando você usa radtest , provavelmente significa que o módulo ldap está ativado na seção authenticate : ele tentará se ligar como usuário e, como o radtest usa a autenticação PAP, ele será ter sucesso. Mas ele falhará se você tentar se conectar através do ponto de acesso, já que você está usando o PEAP / MS-CHAP-v2.

O que você deve fazer é remover o módulo ldap da seção authenticate e certificar-se de ativar o módulo mschap na seção authorize e authenticate . O que acontecerá é que o módulo mschap cuidará da autenticação usando o atributo NT-Password que é recuperado do servidor LDAP durante a fase authorize .

Aqui está como seu arquivo sites-enabled/default deve ficar (sem todos os comentários):

    ...
    authorize {
        preprocess
        suffix
        eap {
            ok = return
        }
        expiration
        logintime
    }
    authenticate {
        eap
    }
    ...

E aqui está como seu arquivo sites-enabled/inner-tunnel deve ser:

    ...
    authorize {
        mschap
        suffix
        update control {
               Proxy-To-Realm := LOCAL
        }
        eap {
            ok = return
        }
        ldap
        expiration
        logintime
    }
    authenticate {
        Auth-Type MS-CHAP {
            mschap
        }
        eap
    }
    ...

E quanto ao aviso "Não" de "senha" válida?

Bem, você pode seguramente ignorá-lo. Ele está lá porque o módulo ldap não encontrou um atributo UserPassword quando buscou os detalhes do usuário do servidor LDAP durante a fase authorize . No seu caso, você tem o atributo NT-Password , e isso é perfeitamente aceitável para a autenticação PEAP/MS-CHAP-v2 .

Eu acho que o aviso existe porque quando o módulo ldap foi projetado, PEAP/MS-CHAP-v2 ainda não existia, então a única coisa que parecia fazer sentido no momento era recuperar o atributo UserPassword do servidor LDAP, em para usar o PAP, CHAP, EAP / MD5 ou tais métodos de autenticação.

    
por 26.03.2010 / 20:45
3

Vou tentar responder a pergunta do OpenSSL aqui: a resposta curta é usar o FreeRADIUS 2.1.8 ou superior, que inclui o OpenSSL . Ele está disponível nos backports do Ubuntu Lucid e Debian Lenny (e provavelmente acabará nos backports do Ubuntu Karmic também).

Aqui está a resposta longa:

Infelizmente, a licença do OpenSSL costumava ser (um pouco) incompatível com a licença do FreeRADIUS. Portanto, o pessoal do Ubuntu escolheu fornecer um binário do FreeRADIUS não vinculado ao OpenSSL. Se você quisesse EAP / TLS, PEAP ou TTLS, você tinha para obter as fontes e compilá-las com a opção --with-openssl (como a receita usada explica).

Mas recentemente o problema de licenciamento foi corrigido . As versões FreeRADIUS 2.1.8 ou superior podem ser compiladas e distribuídas com o OpenSSL. A má notícia é que a mais recente distribuição estável do Ubuntu (Karmic Koala) inclui apenas o FreeRADIUS 2.1.0, sem o OpenSSL (o mesmo vale para o Debian, já que o Lenny contém apenas o FreeRADIUS 2.0.4). Eu verifiquei o Karmic-backports, mas parece que o FreeRADIUS 2.1.8 ou superior ainda não foram enviados para lá, (mas pode ser adicionado em breve, http://packages.ubuntu.com/karmic-backports / net / "> confira aqui ). Então, por enquanto, você deve alternar para o Ubuntu Lucid (que inclui o FreeRADIUS 2.1.8) ou manter a compilação. Para usuários do Debian, as coisas são um pouco mais brilhantes: os backports do Lenny incluem o FreeRADIUS 2.1.8. Então, se você quer algo muito estável e fácil de instalar e manter, sugiro que você implemente um servidor com o Debian Lenny, e instale o pacote FreeRADIUS (também dá a você a possibilidade de escrever módulos python gratuitamente, sem ter que recompilar com todos os módulos experimentais).

I got a certificate from http://CACert.org (you should probably get a "real" cert if possible)

Existe uma "pegadinha" com certificados "reais" (em oposição a certificados autoassinados).

Eu usei um assinado por Thawte. Ele funciona bem e os usuários veem um belo certificado "válido" chamado algo como www.my-web-site.com . Quando o usuário aceita o certificado, seu computador realmente entende que todos certificados emitidos pela mesma autoridade de certificação devem ser confiáveis (testei isso com o Windows Vista e MacOSX Snow Leopard)! Então, no meu caso, se um hacker tiver um certificado para, digamos, www.some-other-web-site.com , também assinado por Thawte, ele poderá executar um ataque Man-in-the-middle facilmente, sem que nenhum aviso seja exibido no computador do usuário! / p>

A solução para isso está na configuração de rede do computador do usuário, a fim de especificar especificamente que apenas "www.my-web-site.com" deve ser confiável. Leva apenas um minuto, mas a maioria dos usuários não sabe onde configurar isso, a menos que você os dê um procedimento claro e certifique-se de que todos os usuários o sigam. Eu ainda uso certificados "válidos", mas francamente é decepcionante ver que o Windows e o MacOSX compartilham esse "bug": confiar na Autoridade de Certificação em vez do certificado específico. Ai ...

    
por 25.03.2010 / 17:18
1

De acordo com o relatório de erros, uma simples reconstrução do FreeRADIUS deve corrigir o problema de suporte do OpenSSH. Só precisa ser feito uma vez.

Não tenho certeza da facilidade de administração relacionada à configuração. Muitas vezes, quanto mais envolvida e detalhada a configuração, mais fácil é administrá-la, porque a configuração abrangia todas as bases. Você quer dizer que a configuração também precisa ser descartada em outros servidores? Quantas LANs sem fio você está configurando?

Uma vez configurada, a Administração deve ser limitada ao usuário LDAP, adiciona, exclui e modifica. Estes devem ser fáceis o suficiente para qualquer script com ldapmodify (et al) ou encontrar um front end gráfico LDAP decente e documentar os processos com capturas de tela.

    
por 18.08.2009 / 22:15
0

Eu encontrei o mesmo problema. Eu tive que baixar as fontes RADIUS e compilá-las eu mesmo.

    
por 28.08.2009 / 05:50
-1

Você pode usar o FreeRADIUS2 (com OpenSSL) + EAP-TLS + WPA2-Enterprice. Aqui está o wery COMO FAZER o . O Windows XP SP3 tem suporte nativo para ele, assim como o Windows 7, Android 2.3, iPhone, Symbian. Mas eu não sei sobre compatibilidade com SLDAP em tal schem.

    
por 17.11.2011 / 08:40