Este es un manual de cómo instalar, configurar freeradius y

Este es un manual de cómo instalar, configurar freeradius y Windows XP con WEP. Aunque
existen varias formas de autenticación voy a utilizar una de ellas (EAP con PEAP con
mschapv2).
Explicaré con detalle lo que he utilizado y como para que así os funcione seguro, pondré
exactamente lo que utilizado. Es la forma que a mi me a funcionado no soy ningún experto ni
muchísimo menos, este manual esta abierto a cambios y mejoras.
Lo he instalado en Whoppix 2.7.1, y el tipo de autenticación es EAP con PEAP con mschapv2 sin
certificado.
---------------------------------------------------------------------------------------------1. Instalación del freeradius
2. Configuración del punto del AP
3. Configuración del freeradius
4. Configuración de los clientes Windows XP, para autenticar en freeradius
------------------------------------------------------------------------------------------------------------------------
1- Instación el freeradius
Yo
he
utilizado
este
freeradius-1.0.4.tar.gz,
http://www.freeradius.org/getting.html.
también
podéis
descargarlo
de
Para configurar e instalar:
./configure
make
make install
Con esto lo tenemos instalado en mi caso por defecto en usr/local/etc/raddb/
2- Configuración del AP
En mi caso tengo un Seano SL-3054CB3 Plus (Deluxe). Este paso es el mas sencillo,
seleccionamos 802.1x , e introducimos la ip del servidor radius, osea donde hemos instalado el
freeradius, en mi caso 192.168.0.87 ,el secreto que compartirán en un futuro (luego se utiliza
en clients.conf) en mi caso "misecreto", aunque acepta varios puertos yo tengo el 1812. Os
dejo una imagen.
Otra cosilla a tocar es el WEP o WPA como dije antes yo utilizaré WEP que aunque es menos
seguro que WPA, si juntamos WEP + freeradius y si tenemos nosotros alguna cosilla mas pues
ya esta bastante decente.
Con lo cual nos situamos en nuestro ap sobre WEP y lo configuramos, seleccionamos el tipo de
clave, cuando mas alta mas segura, o sea metemos 128, escribimos la clave, en mi caso al ser
hex digits, meto 26 numeritos que van desde el 0 al 15, también existe la posibilidad que sean
13 caracteres seleccionando 128 bit (13 ascii chars) .
3- Configuracion de freeradius
Tenemos que toquear 4 ficheros, | radiusd.conf | users | clients.conf | eap.conf , los
encontraremos en /usr/local/etc/raddb/
Fichero radiusd.conf:
Encontrareis "#with_ntdomain_hack = no" yo la he puesto a "with_ntdomain_hack =
yes" (y sin la #), encontrareis 2 etiquetas como esta en el fichero poner las 2 igual.
En el fichero users
Como dije antes hay muchas maneras de autenticar, usuarios que existan en el sistema,
utilizando base de datos, escribiendo en user y pass en este fichero etc., En mi caso he utilizado
lo mas sencillo, escribir un user y pass a mano en este fichero, la forma que lo he realizado es :
"curso" User-Password == "654321" (aquí las comillas si se ponen).
Donde curso es el usuario a autenticar y 654321 sería la contraseña.
Fichero clients.conf:
Aquí es donde damos de "alta" los puntos de acceso, es tan sencillo como escribir la ip del ap y
el secreto que es la palabra que comparten el ap y el frerradius, con un ejemplo mejor.
Tenemos un ap con la ip 192.168.0.3 y la palabra secreta para ese ap es "misecreto" que es la
que hemos puesto hace un rato en el ap. pues...
client 192.168.0.3 {
secret = misecreto
shortname = senao
}
Shortname poner lo que queráis, yo he puesto el nombre de mi ap.Y así de simple vamos
dando de "alta" los ap's que quieran autenticar contra nuestro radius.
Fichero eap.conf:
De este fichero modificamos un par de cosas para que pueda autenticar introduciendo un user
y un pass, quedaría así:
tls {
private_key_password = whatever
private_key_file = ${raddbdir}/certs/cert-srv.pem
# If Private key & Certificate are located in
# the same file, then private_key_file &
# certificate_file must contain the same file
# name.
certificate_file = ${raddbdir}/certs/cert-srv.pem
# Trusted Root CA list
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
#
# This can never exceed the size of a RADIUS
# packet (4096 bytes), and is preferably half
# that, to accomodate other attributes in
# RADIUS packet. On most APs the MAX packet
# length is configured between 1500 - 1600
# In these cases, fragment size should be
# 1024 or less.
#
fragment_size = 1024
# include_length is a flag which is
# by default set to yes If set to
# yes, Total Length of the message is
# included in EVERY packet we send.
# If set to no, Total Length of the
# message is included ONLY in the
# First packet of a fragment series.
#
include_length = yes
# Check the Certificate Revocation List
#
# 1) Copy CA certificates and CRLs to same directory.
# 2) Execute 'c_rehash <CA certs&CRLs Directory>'.
# 'c_rehash' is OpenSSL's command.
# 3) Add 'CA_path=<CA certs&CRLs directory>'
# to radiusd.conf's tls section.
# 4) uncomment the line below.
# 5) Restart radiusd
# check_crl = yes
#
# If check_cert_cn is set, the value will
# be xlat'ed and checked against the CN
# in the client certificate. If the values
# do not match, the certificate verification
# will fail rejecting the user.
#
# check_cert_cn = %{User-Name}
}
Como se observa he descomentado algunas opciones (he quitado las #), un poco mas abajo
tenemos el peap y lo dejamos así:
peap {
# The tunneled EAP session needs a default
# EAP type which is separate from the one for
# the non-tunneled EAP module. Inside of the
# PEAP tunnel, we recommend using MS-CHAPv2,
# as that is the default type supported by
# Windows clients.
default_eap_type = mschapv2
}
Llegados a este punto ya tenemos el freeradius configurado, los clientes creados (los ap's) y los
users también.
Antes de nada es aconsejable hacer un test para saber que todo ha salido bien y que freeradius
se ha enterado de los cambios.
El test lo realizamos de la siguiente manera en la maquina donde este instalado el freeradius.
Suponiendo que hemos creado el usuario "curso" y su password es "654321" introducimos.
radtest curso 654321 localhost 1812 testing123
Lo de localhost es la makina local, y el 1812 es el puerto, y testing123 es el secreto que
lleva (en clients.conf) para que la maquina local autentique, si con ese mismo usuario
intentásemos hacer el test en otro pc tendríamos que añadirlo a clients.conf e introducir un
secreto, y el radtest sería con el nuevo secreto y en vez de localhost seria la ip del servidor
radius.
Si por lo que fuera el test falla probablemente sea que no ha pillado la nueva configuración
podemos hacer: service radiusd restart
4- Configuración clientes Windows XP para autenticar en freeradius
Propiedades sobre el adaptador wireless y propiedades, y tiene que quedar así.
Pinchamos en "cifrado de datos (WEP habilitado)" he introducimos la clave WEP que hemos
puesto en el ap. Ahora pinchamos en Autenticación y dejamos las opciones que aparecen en la
imagen siguiente. A continuación propiedades.
Quitamos la opción "validar un certificado de servidor" y pinchamos sobre "Configurar...”.
Nos aparecerá lo siguiente…
Esta opción NO tiene que estar activada, como digo hay muchas formas de que autentique y
una de ellas es dejando esta casilla sin activar, para así cuando intente autenticar nos salga una
ventana con user, pass y dominio, el domino se tiene que dejar en blanco y el user y el pass
será aquél que hemos creado en el fichero users . Aunque se podría configurar para que el
freeradius acepte el user, pass y dominio para que asi se autentique directamente según el user
que inicia sesión en Windows XP no es nuestro caso.