ddwrt + Freeradius + LDAP

1

Estou tentando configurar um servidor LDAP para autenticar vários servidores, como ftp e radius (talvez até ssh?)

Eu tenho um roteador (ddwrt) que eu consegui autenticar com senhas de texto simples em freeradius. Agora eu quero usar um servidor ldap para armazenar os usuários e senhas

Eu configurei meu servidor ldap e posso autenticá-lo usando o seguinte:

kevin@kevin-desktop:~$ radtest ldapuser password123 127.0.0.1 2 testing123
Sending Access-Request of id 182 to 127.0.0.1 port 1812
        User-Name = "ldapuser"
        User-Password = "password123"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 2
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=182, length=20

Mas quando tento autenticar usando o ddwrt - > freeradius recebo a seguinte mensagem:

rad_recv: Access-Request packet from host 192.168.11.1 port 52101, id=0, length=129
        User-Name = "ldapuser"
        NAS-IP-Address = 192.168.11.1
        Called-Station-Id = "10da43747fcb"
        Calling-Station-Id = "accf8528974e"
        NAS-Identifier = "10da43747fcb"
        NAS-Port = 49
        Framed-MTU = 1400
        NAS-Port-Type = Wireless-802.11
        EAP-Message = 0x0200000d016c64617075736572
        Message-Authenticator = 0x99372f408b0979fc103af5112b81501a
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+group authorize {
++[preprocess] = ok
++[chap] = noop
++[mschap] = noop
++[digest] = noop
[suffix] No '@' in User-Name = "ldapuser", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] = noop
[eap] EAP packet type response id 0 length 13
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] = updated
[files] users: Matched entry DEFAULT at line 1
++[files] = ok
[ldap] performing user authorization for ldapuser
[ldap]  expand: %{Stripped-User-Name} -> 
[ldap]  ... expanding second conditional
[ldap]  expand: %{User-Name} -> ldapuser
[ldap]  expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=ldapuser)
[ldap]  expand: dc=kevin,dc=local -> dc=kevin,dc=local
  [ldap] ldap_get_conn: Checking Id: 0
  [ldap] ldap_get_conn: Got Id: 0
  [ldap] attempting LDAP reconnection
  [ldap] (re)connect to 192.168.11.21:389, authentication 0
  [ldap] bind as cn=admin,dc=kevin,dc=local/pwd to 192.168.11.21:389
  [ldap] waiting for bind result ...
  [ldap] Bind was successful
  [ldap] performing search in dc=kevin,dc=local, with filter (uid=ldapuser)
[ldap] No default NMAS login sequence
[ldap] looking for check items in directory...
  [ldap] userPassword -> User-Password == "{SSHA}fqS7t/ZXimCnTgsXcsGDQF9WP+atmjVG"
  [ldap] userPassword -> Password-With-Header == "{SSHA}fqS7t/ZXimCnTgsXcsGDQF9WP+atmjVG"
[ldap] looking for reply items in directory...
  [ldap] ldap_release_conn: Release Id: 0
++[ldap] = ok
++[expiration] = noop
++[logintime] = noop
[pap] WARNING: Auth-Type already set.  Not setting to PAP
++[pap] = noop
+} # group authorize = updated
Found Auth-Type = LDAP
# Executing group from file /etc/freeradius/sites-enabled/default
+group LDAP {
  [ldap] Attribute "User-Password" is required for authentication.
  You seem to have set "Auth-Type := LDAP" somewhere.
  THAT CONFIGURATION IS WRONG.  DELETE IT.
  YOU ARE PREVENTING THE SERVER FROM WORKING PROPERLY.
++[ldap] = invalid
+} # group LDAP = invalid
Failed to authenticate the user.
Using Post-Auth-Type Reject
# Executing group from file /etc/freeradius/sites-enabled/default
+group REJECT {
[eap] Request was previously rejected, inserting EAP-Failure
++[eap] = updated
[attr_filter.access_reject]     expand: %{User-Name} -> ldapuser
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] = updated
+} # group REJECT = updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 0 to 192.168.11.1 port 52101
        EAP-Message = 0x04000004
        Message-Authenticator = 0x00000000000000000000000000000000
Waking up in 4.9 seconds.
Cleaning up request 0 ID 0 with timestamp +9
Ready to process requests.

Como configuro corretamente o openradius com o openldap?

    
por Kevin 19.03.2017 / 11:53

2 respostas

0

Aparentemente, você precisa armazenar as senhas em texto não criptografado no servidor ldap para que o PEAP funcione.

Eu segui este tutorial (configuração muito básica): link

Etapas:

Em / etc / freeradius / modules / ldap modificar as configurações:

server = "server.address"
        identity = "cn=admin,dc=example,dc=com"
        password = admin_password
        basedn = "dc=example,dc=com"

Em / etc / freeradius / sites-available / default autorizar seção:

comment file
uncomment ldap

Em / etc / freeradius / sites-disponíveis / túnel interno

seção de autorização:

comment file
uncomment ldap

seção de autenticação: comentário:

Auth-Type LDAP {
        ldap
}

Eles omitiram o fato de que você tem que manter as senhas em texto claro que eu descobri aqui:

link

Aparentemente você não pode criar uma conta posix a partir de um grupo organizacional simples, você tem que criá-lo a partir de um grupo posix que eu tenho aqui:

link

No final, tive que usar o jxexplore e o phpldapadmin para adicionar meus usuários, já que o jxexplore não gosta de adicionar senhas em texto puro. Basta criar a conta sem uma senha no jxexplore e depois adicionar a senha ao usuário no phpldapadmin. (Vou atualizar isso quando tiver a chance)

    
por 20.03.2017 / 06:42
0

A mensagem principal aqui é:

[ldap] Attribute "User-Password" is required for authentication.
You seem to have set "Auth-Type := LDAP" somewhere. THAT CONFIGURATION IS WRONG. DELETE IT. YOU ARE PREVENTING THE SERVER FROM WORKING PROPERLY.

Não consigo ver uma seção de atualização, mas aposto que você configurou set_auth_type para sim, ou que a entrada na linha 1 de raddb/users tem algo como:

DEFAULT Auth-Type := LDAP

Para ambos os casos, você deve remover a entrada.

Ao definir Auth-Type, você está forçando o servidor a executar um tipo específico de autenticação, o que pode não ser adequado, dados os atributos da solicitação.

Uma descrição de como o servidor decide qual método de autenticação usar está disponível no Conceitos do RADIUS no wiki FreeRADIUS .

Para a autenticação EAP (que é o que o DD-WRT está tentando), você precisa adicionar os módulos LDAP e PAP à seção de autorização de sites-available/inner-tunnel e garantir sua Password-With-Header aponta para o atributo LDAP correto.

    
por 19.03.2017 / 21:04