[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tratando de configurar freeradius+ldap



Jhosue Rui escribió:
Migdalis Mago escribió:
Hola Listeros de Debian....

Estoy tratando de configurar freeradius para conectarlo con el
servidor ldap pero estoy muy estancada!!
Bueno estoy editando el archivo radiusd.conf de freeradius en alguno
de sus parametros para que utilice al servidor ldap, pero hago unas
pruebas con radtest y me arroja un error!!!

Aqui le voy a colocar mi radiusd.conf para que ustedes lo revisen y me
digan si es que estoy haciendo algo erroneo o si me falta algun
parametro por modificar o descomentar....


# AQUI MODIFIQUE ESTOS PARAMETRO A YES

log_auth = yes

log_auth_badpass = yes
log_auth_goodpass = yes

}

# A PARTIR DE AQUI EMPECE A MODIFICAR LO DEL SERVIDOR LDAP
ldap { server = "167.157.77.9"
        # identity = "cn=admin,o=My Org,c=UA"
         identity = "CN=FERRERMJ,OU=Plc,OU=All
Users,OU=Nuevo,OU=Usuarios,DC=hidro,DC=com"

# AQUI EN IDENTITY YO COLOQUE A UN USUARIO!!
# AQUI EN IDENTITY PUEDO COLOCAR UNA DIRECCION DE UN USUARIO O TIENE
QUE SER EL ADMINISTRADOR???
# LO QUE PASA ES QUE YO NO SOY EL ADMINISTRADOR DEL SERVIDOR LDAP Y
ESTOY TRATANDO DE CONECTARME A LDAP MEDIANTE UN USUARIO # ESTO SE
PUEDE????NO PRODUCE ERRORES???

        # password = mypass
         password = 123456
        #basedn = "o=My Org,c=UA"
        basedn = "OU=Nuevo,OU=Usuarios,DC=hidro,DC=com"
        # password_attribute = "userPassword"
        password_attribute = "123456"
        filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
        # base_filter = "(objectclass=radiusprofile)"

# HE VISTO EN VARIOS MANUALES DE INTERNET QUE VARIAS PERSONAS PONEN
start_tls = no EN YES....
# QUE AFECTA ESTO SI LO COLOCO EN YES????


        start_tls = no

#EN ESTA PARTE DE LA CONFIGURACION YO COLOQUE LA DIRECCION DE DONDE SE
ENCONTRABA CADA ARCHIVO....
# ME GUSTARIA QUE TAMBIEN LO REVISARAS Y ME DIJERAS ALGO AL RESPECTO


         tls_cacertfile        = /etc/raddb/certs/demoCA/cacert.pem
         tls_cacertdir        = /etc/raddb/certs
         tls_certfile        = /etc/raddb/certs/radius.pem
         tls_keyfile        = /etc/raddb/certs/demoCA/private/cakey.pem
         tls_randfile        = /etc/raddb/certs/random
tls_require_cert = "demand"
#QUE OTRO PARAMETRO TENGO QUE MODIFICAR???

Me gustaria saber alguna opinion con respecto a este radiusd.conf y si
tengo algun error en la configuracion???


Hola.

Bien en cuanto a lo de ldap de momento no te puedo ayudar porque es poco lo que me he documentado pero te recomiendo que primero lo configures pana un usuario normal que hayas puesto en el users.conf y luego entonces si lo hagas con el ldap esto con el fin de probar primero si el freeradius funciona.

 > # HE VISTO EN VARIOS MANUALES DE INTERNET QUE VARIAS PERSONAS PONEN
 > start_tls = no EN YES....
 > # QUE AFECTA ESTO SI LO COLOCO EN YES????

probablemente si, pero mejor prueba.

En cuanto a lo de los archivos, imagino que estas usando ttls y que ya recompilaste el paquete debian para que tenga soporte ttls. Los archivos que nombras al final

 >  tls_cacertfile        = /etc/raddb/certs/demoCA/cacert.pem
 >  tls_cacertdir        = /etc/raddb/certs
 >  tls_certfile        = /etc/raddb/certs/radius.pem
 >  tls_keyfile        = /etc/raddb/certs/demoCA/private/cakey.pem
 >  tls_randfile        = /etc/raddb/certs/random
> tls_require_cert = "demand" tienes que crearlos ya que son los certificados con los que se comunicara el freeradius con los clientes. Hay una forma de crearlos a mano pero es muy engorroso así que en mi caso agarre un script que viene con el paquete debian, lo modifique porque no funcionaba muy bien que digamos y ese automáticamente te crea esos archivos,copias los archivos que te genere en la ubicación que coloques el la configuración de freeradius y listo.

Aquí te mando el script que use, se llama CA.all. Ojo que tambien tienes que crear un archivo llamado xpextensions que contiene unas claves necesarias para compatibilidad con clientes WIN XPtea.


Archivo xpextensions

#
#  For use with the 'CA.all' script.
#
[ xpclient_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2

[ xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1


Archivo CA.all


#!/bin/sh

#
#  This is a NON-INTERACTIVE script to help generate certificates for
#  use with the EAP-TLS module.
#
#    $Id: CA.certs,v 1.1 2004/01/23 17:02:31 aland Exp $

#
#  This environment variable should point to the SSL installation
#
[ "$SSL" = "" ] && SSL=/usr/lib/ssl/
export SSL

#
#  Edit the following variables for your organization.
#####OJO EDITA ESTAS VARIABLES PARA TU CASO EN PARTICULAR
#Tu pais para mi caso venezuela
COUNTRY="VE"
#Tu provincia, igual esta es la mia
PROVINCE="Tachira"
# Tu ciudad,  en micaso la ciudad de la cordialidad
CITY="San Cristobal"
ORGANIZATION="Tu.organizacion.com"
#Nombre del host que corre el freeraius
ORG_UNIT="tumaquina"
PASSWORD="la_password_a_utilizar_entre_el_freeradius_y_el_acesspoint"

# DE AQUI EN ADELANTE LO DEJAS IGUAL

COMMON_NAME_CLIENT="Client certificate"
EMAIL_CLIENT="client@example.com"
PASSWORD_CLIENT=$PASSWORD

COMMON_NAME_SERVER="Server certificate"
EMAIL_SERVER="server@jauregui.lcar.unet.edu.ve"
PASSWORD_SERVER=$PASSWORD

COMMON_NAME_ROOT="Root certificate"
EMAIL_ROOT="root@jauregui.lcar.unet.edu.ve"
PASSWORD_ROOT=$PASSWORD

#
#  lifetime, in days, of the certs
#
LIFETIME=730

######################################################################
#
#  Don't change anything below this line...
#
######################################################################

#
#  Prefer the SSL configured above, over any previous installation.
#
PATH=${SSL}/bin/:${SSL}/misc:${PATH}
LD_LIBRARY_PATH=${SSL}/lib
export PATH LD_LIBRARY_PATH

rm -rf demoCA roo* cert* *.pem *.der

echo -e ""
echo -e "\t\t##################"
echo -e "\t\tcreate private key"
echo -e "\t\tname : name-root"
echo -e "\t\tCA.pl -newcert"
echo -e "\t\t##################\n"

(echo $COUNTRY
echo $PROVINCE
echo $CITY
echo $ORGANIZATION
echo $ORG_UNIT
echo $COMMON_NAME_CLIENT
echo $EMAIL_CLIENT
) | openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days $LIFETIME -passin pass:$PASSWORD_CLIENT -passout pass:$PASSWORD_CLIENT
if [ "$?" != "0" ]
then
    echo "Failed to create client certificate"
    exit 1
fi

echo -e ""
echo -e "\t\t##################"
echo -e "\t\tcreate CA"
echo -e "\t\tuse just created 'newreq.pem' private key as filename"
echo -e "\t\tCA.pl -newca"
echo -e "\t\t##################\n"

echo "newreq.pem" | CA.pl -newca || exit 2

#ls -lg demoCA/private/cakey.pem

echo -e ""
echo -e "\t\t##################"
echo -e "\t\texporting ROOT CA"
echo -e "\t\tCA.pl -newreq"
echo -e "\t\tCA.pl -signreq"
echo -e "\t\topenssl pkcs12 -export -in demoCA/cacert.pem -inkey newreq.pem -out root.pem"
echo -e "\t\topenssl pkcs12 -in root.cer -out root.pem"
echo -e "\t\t##################\n"

openssl pkcs12 -export -in demoCA/cacert.pem -inkey newreq.pem -out root.p12 -cacerts -passin pass:$PASSWORD_ROOT -passout pass:$PASSWORD_ROOT openssl pkcs12 -in root.p12 -out root.pem -passin pass:$PASSWORD_ROOT -passout pass:$PASSWORD_ROOT
openssl x509 -inform PEM -outform DER -in root.pem -out root.der

echo -e ""
echo -e "\t\t##################"
echo -e "\t\tcreating client certificate"
echo -e "\t\tname : name-clt"
echo -e "\t\tclient certificate stored as cert-clt.pem"
echo -e "\t\tCA.pl -newreq"
echo -e "\t\tCA.pl -signreq"
echo -e "\t\t##################\n"

(echo $COUNTRY
echo $PROVINCE
echo $CITY
echo $ORGANIZATION
echo $ORG_UNIT
echo $COMMON_NAME_SERVER
echo $EMAIL_SERVER
echo $PASSWORD_SERVER
echo "testing"
) | openssl req -new -keyout newreq.pem -out newreq.pem -days $LIFETIME -passin pass:$PASSWORD_SERVER -passout pass:$PASSWORD_SERVER
if [ "$?" != "0" ]
then
    echo "Failed to create server certificate"
    exit 1
fi

echo "31032007" > demoCA/serial


(echo y
echo y) | openssl ca -policy policy_anything -out newcert.pem -passin pass:$PASSWORD_SERVER -key $PASSWORD_SERVER -extensions xpclient_ext -extfile xpextensions -infiles newreq.pem
if [ "$?" != "0" ]
then
    echo "Failed to do sign certificate"
    exit 1
fi

openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out cert-clt.p12 -clcerts -passin pass:$PASSWORD_CLIENT -passout pass:$PASSWORD_CLIENT || exit 8 openssl pkcs12 -in cert-clt.p12 -out cert-clt.pem -passin pass:$PASSWORD_CLIENT -passout pass:$PASSWORD_CLIENT || exit 9 openssl x509 -inform PEM -outform DER -in cert-clt.pem -out cert-clt.der || exit 10

echo -e ""
echo -e "\t\t##################"
echo -e "\t\tcreating server certificate"
echo -e "\t\tname : name-srv"
echo -e "\t\tserver certificate stored as cert-srv.pem"
echo -e "\t\tCA.pl -newreq"
echo -e "\t\tCA.pl -signreq"
echo -e "\t\t##################\n"

(echo $COUNTRY
echo $PROVINCE
echo $CITY
echo $ORGANIZATION
echo $ORG_UNIT
echo $COMMON_NAME_ROOT
echo $EMAIL_ROOT
echo $PASSWORD_ROOT
echo $ORG_UNIT
) | openssl req -new -keyout newreq.pem -out newreq.pem -days $LIFETIME -passin pass:$PASSWORD_ROOT -passout pass:$PASSWORD_ROOT
if [ "$?" != "0" ]
then
    echo "Failed to create root certificate"
    exit 1
fi

(echo y
echo y) | openssl ca -policy policy_anything -out newcert.pem -passin pass:$PASSWORD_ROOT -key $PASSWORD_ROOT -extensions xpserver_ext -extfile xpextensions -infiles newreq.pem
if [ "$?" != "0" ]
then
    echo "Failed to sign root certificate"
    exit 1
fi

openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out cert-srv.p12 -clcerts -passin pass:$PASSWORD_SERVER -passout pass:$PASSWORD_SERVER || exit 5 openssl pkcs12 -in cert-srv.p12 -out cert-srv.pem -passin pass:$PASSWORD_SERVER -passout pass:$PASSWORD_SERVER || exit 6 openssl x509 -inform PEM -outform DER -in cert-srv.pem -out cert-srv.der || exit 7

echo -e "\n\t\t#################################"
echo -e "\t\tDONE.  Thank you for your patience."
echo -e "\t\t###################################\n"



Creo que tienes que tener instalado el openssl o algo así para poder generarlos, ejecutalo y comenta

Sib mas que comentar suerte con eso.



Se me olvidaba también tienes que generar un archivo que te va a a generar las claves al azar para cada conexión que realicen los usuarios.

el script es el siguiente

#include
#include

// you will need to compile it with openssl lib
// $ gcc -lcrypto
main (void) {
unsigned char buf[100];
if (!RAND_bytes(buf, 100)) {
// the usual md5(time+pid)
}
printf("Random : %sn", buf);
}

llamalo random.c y compilalo con el comando

gcc random.c -o random -lcrypto

ese es el archivo random que te pide en la configuracion, lo copias con el respode los archivos que te genera el otro script

para mas informacion

http://rbirri.9online.fr/howto/Freeradius_+_TTLS.html

Suerte


--
------------------------------------------------------------------------
Por favor, NO utilice formatos de archivo propietarios para el
intercambio
de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier
otro
que no obligue a utilizar un programa de un fabricante concreto.
Internet Explorer y Outlook son muy peligrosos por sus continuos
problemas
de seguridad. Utilice alternativas libres: http://www.mozillaes.org/
------------------------------------------------------------------------
usuario linux registrado #387231
http://counter.li.org
------------------------------------------------------------------------
Por favor evite enviar adjuntos de powerpoint y word
vea http://www.gnu.org/philosophy/no-word-attachments.es.html



Reply to: