[MASOCH-L] freeradius e LDAP com autenticação MS-CHAP

Fabio Catunda fcatunda at lightcomm.com.br
Wed Aug 15 15:04:33 BRT 2012


Rapaiz... freeradius tem tanto arquivo de configuração que eu acho que 
eu vou demorar um pouco pra filtrar o que eu posso te mandar, vários tem 
logins e senhas dentro...

Enfim, vou mandar o básico que eu acho que é importante agora, se depois 
você continuar com dúvida dá um tock que eu mando o resto.

Aqui usamos o freeradius do Debian Squeeze. Cuidado, o freeradius do 
Lenny não é compilado com o OpenSSL ou algo assim, não lembro direito, 
mas acabou não funcionando. O pacote do Squeeze vai sem problemas.

O arquivo ldap.attrmap tá assim:
checkItem       Cleartext-Password                   userPassword

replyItem   Tunnel-Type                            radiusTunnelType
replyItem   Tunnel-Medium-Type             radiusTunnelMediumType
replyItem   Tunnel-Private-Group-Id        radiusTunnelPrivateGroupId

checkItem       LM-Password                     sambaLMPassword
checkItem       NT-Password                     sambaNTPassword

# egrep -v '^#|^$' eap.conf
eap {
    default_eap_type = ttls
    timer_expire = 60
    ignore_unknown_eap_types = no
    cisco_accounting_username_bug = no

    md5 {
    }

    mschapv2 {
    }

     tls {
       certdir = ${confdir}/certs/
       cadir = ${confdir}/certs/
       private_key_password = SenhaParaOCertificado
       private_key_file = ${certdir}/masterkey.pem # Não esqueça de 
gerar as chaves
       certificate_file = ${certdir}/master_cert.pem
       CA_file = ${cadir}/cacert.pem
       dh_file = ${certdir}/dh
       random_file = ${certdir}/random
       cipher_list = "DEFAULT"
       make_cert_command = "${certdir}/bootstrap"
     }
    ttls {
       default_eap_type = md5
       copy_request_to_tunnel = no
       use_tunneled_reply = no
    }
    peap {
       default_eap_type = mschapv2
    }
}

E por fim:
# egrep -v '^#|^$' radiusd.conf
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = /usr/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run
pidfile = /var/run/freeradius/freeradius.pid
user = freerad
group = freerad
listen {
    ipaddr = *
    port = 0
    type = auth
}
listen {
    ipaddr = *
    port = 0
    type = acct
}
thread pool {
    start_servers = 1
    max_servers = 4
    min_spare_servers = 1
    max_spare_servers = 3
    max_requests_per_server = 0
}
$INCLUDE ${confdir}/clients.conf
modules {
    pap {
       encryption_scheme = clear
    }
    pam{
         authtype = PAM
         pam_auth = "/etc/pam.d/radius_switch"
    }
    chap {
       authtype = CHAP
    }
    $INCLUDE ${confdir}/eap.conf
    mschap {
       authtype = MS-CHAP
       with_ntdomain_hack = yes
    }
    mschapv2 {
    }
    files {
       usersfile = ${confdir}/users
       compat = no
    }
         ldap ldap_1x {
                 server = "<IP do seu servidor LDAP"
                 identity = 
"cn=usarioparaacessoLDAP,dc=SuaEmpresa,dc=com,dc=br"
                 password = "Adivinha!?"
                 basedn = "ou=Users,dc=SuaEmpresa,dc=com,dc=br"
                 start_tls = Depende do seu LDAP <yes or no>
                 access_attr = "uid"
                 dictionary_mapping = ${raddbdir}/ldap.attrmap
                 authtype = ldap
                 ldap_connections_number = 5
                 timeout = 4
                 timelimit = 3
                 net_timeout = 1
         }
$INCLUDE sql.conf # Esse é padrãozão do freeradius, mas não é necessário 
caso não queira accounting e tal
}
authorize {
    pap
    files
    mschap
    ldap_1x
    eap
}
authenticate {
         Auth-Type PAP {
                 pap
         }
         Auth-Type MS-CHAP {
                 mschap
         }
         Auth-Type PPP {
                 ldap_1x
         }
         Auth-Type PAM {
                 pam
         }
         eap
}
accounting {
           sql
}
log {
         destination = files
         file = /var/log/freeradius/radius.log
         syslog_facility = daemon
         stripped_names = no
         auth = yes
         auth_badpass = no
         auth_goodpass = no
}

Acho que esses são os importantes... veja se consegue algo com isso, 
qualquer coisa avisa ai.

On 15-08-2012 14:36, casfre at gmail.com wrote:
> 2012/8/15 Fabio Catunda<fcatunda at lightcomm.com.br>:
>    
>> Caros,
>>
>> Vi que tem gente procurando como integrar autenticação de rede wireless com
>> freeradius e LDAP e também tem gente procurando como fazer CHAP com LDAP.
>>
>> CHAP com LDAP sem cleartext não vai rolar... eu investiria algum tempo
>> pesquisando sobre outras formas de autenticação com o mesmo dispositivo,
>> deve ter, ai talvez de para dar uma ajuda.
>>
>> Sobre autenticação de wireless com freeradius e LDAP, essa ai eu já tenho
>> operando aqui na empresa e funciona. É pentelho ter que configurar os
>> Windows por ai, mas funciona... com MS-CHAP por EAP e tudo mais.... mas as
>> senhas (campos) que uso do LDAP são essas:
>> checkItem       LM-Password                     sambaLMPassword
>> checkItem       NT-Password                     sambaNTPassword
>>
>> O smbldap-tools gera essas senhas. Já até fiz uma ferramenta em PHP para
>> gerar isso, mas faz tempo e lembro que é chato demais de fazer.
>> Do jeito que está aqui eu não preciso do Samba para autenticar os usuários
>> da rede wireless.
>>      
> Fabio, seria abuso lhe perguntar como ficaram os arquivos e
> configuração do RADIUS para esse esquema funcionar? No meu caso, se
> ficar como o seu, é assunto resolvido. Já usamos o smbldap-tools para
> gerenciar a parte Samba no OpenLDAP, então, os hashs já estão lá.
> Restaria apenas estudar uma forma de dizer ao RADIUS algo como "se as
> credenciais batem, verificiar o atributo XPTO para ver se esse user
> pode usar Internet etc".
>
> Obrigado.
>
> Cássio
> __
> masoch-l list
> https://eng.registro.br/mailman/listinfo/masoch-l
>    



More information about the masoch-l mailing list