Mini HOW-To Free Radius en Debian (WPA)
-
Upload
cesar-alexander-moraga-galdames -
Category
Documents
-
view
657 -
download
1
Transcript of Mini HOW-To Free Radius en Debian (WPA)
Compartir Informar sobre mal uso Siguiente blog» Crear un blog Acceder
lunes, mayo 07, 2007
Mini HOW-TO Freeradius en Debian (WPA)
Hola a todos, este será el primer post dedicado a implementar "algo
informático". Basta de tanta música y post llenos de gilipolleces (como
he acostumbrado a hacer hasta el momento). Por fín haré algo de
provecho y de ayuda a la comunidad.
Mini HOW-TO Freeradius en Debian (WPA).
Contenido:
1.- Preámbulo.
2.- Sistema y requerimientos.
3.- Compilando Freeradius desde las fuentes.
4.- Creación e instalación de certificados.
5.- Configurando Freeradius.
6.- Configurando el AP (Punto de Acceso).
7.- Configurando clientes.
8.- Conclusiones.
------------------------------------------------------------------------------------
-------------
1.- Preámbulo.
A estas alturas de la vida, con la Web 2.0 en pleno auge, las redes wifi
son cada vez más frecuentes y con ellas el intento de hackeo.
Normalmente un usuario ADSL con router wifi suele configurar su red
con seguridad habilitada con clave WEP (Wired Equivalent Privacy). Esto
consiste en crear una clave cifrada de entre 64 y 128 bits, esto supone
una manera poco útil de proteger tu red ya que ha sido sobradamente
demostrado la facilidad con la que se puede "reventar" dicha clave con
poco esfuerzo (incluso el FBI ha demostrado que en tan sólo 3 minutos y
con herramientas al alcance de todos se puede descifrar la clave WEP).
Por ello surgió WPA (Wi-Fi Protected Access), un sistema mucho más
robusto y seguro. Este mini HOW-TO intentará explicar como montar tu
propio sistema WPA para proteger tu red wifi.
2.- Sistema y requerimientos.
Esta obra está bajo una licencia deCreative Commons.
Ahora mismo hay
debianitas frikis
EMPTY YOUR COMPUTER. BE WINDOWSLESS, SHAPELESS. LIKE LINUX. YOU PUT LINUX INTO A PCAND IT BECOMES THE PC. YOU PUT IN A LAPTOP, IT BECOMES THE LAPTOP. LINUX CAN FLOW, OR ITCAN CRASH. BE LINUX, MY FRIEND!
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 1/54
Para montar el servidor con Freeradius yo he usado Debian etch (cómo
no?!). Es un Athlon XP 64 bits con 80 gb de disco. La implementación de
Freeradius se puede llevar a cabo en todas las distribuciones Linux, aquí
sólo me centraré en instalarlo y configurarlo en Debian, con lo que es
posible que algunos comandos cambien en tu distribución, así como la
localización de mucho archivos.
Como siempre que uses un Linux no necesitarás una máquina muy
potente para implementar una gran cantidad de servicios (no como en
esos Güindoces que necesitan ordenadores de la NASA para soportar un
simple IIS ;-) )
3.- Compilando Freeradius desde las fuentes.
Si aún estás leyendo es porque te interesa el tema y quieres montar tu
porpio servidor, si no mejor no sigas leyendo ya que a partir de aquí
viene lo "técnico".
Existen dos maneras de instalar Freeradius en tu sistema Debian:
1.- Desde los repositorios oficiales:
apt-get install freeradius
Aunque esta forma no es la más indicada ya que por un problema con la
licencia de OpenSSL el binario oficial de Debian no incluye soporte para
SSL.
2.- Desde las fuentes (RECOMENDADO):
Esta es la manera más indicada para instalar Freeradius (esta es la
manera en la que yo lo he instalado). Para ello debes seguir estos
pasos:
a) Necesitas instalar dpkg-dev, para ello:
apt-get install dpkg-dev
b) Descarga las fuentes desde la versión 1.1.5 (versión estable en el
momento de escribir este mini HOW-TO). Freeradius
c) Una vez descargado:
$ tar zxf freeradius-1.1.5.tar.gz
$ cd freeradius-1.1.5
$ fakeroot dpkg-buildpackage -b -uc
$ sudo dpkg -i ../freeradius_1.1.5-0_i386.deb
Nota: Si estás como root no necesitarás hacer un fakeroot para compilar
e instalar.
Nota II: Muy importante, antes de compilar y generar el binario debes
revisar el fichero rules que se encuentra en el directorio debian dentro
del directorio donde has descomprimido las fuentes de freeradius. Una
vez lo edites (por ejemplo: vi rules) debes comentar la siguiente linea:
buildssl = --with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` --with-
rlm_sql_postgresql_include_dir=`pg_config --includedir` ya que nosotros
no queremos soporte para PostgreSQL.
4.- Creación e instalación de certificados.
Una vez tenemos instalado Freeradius en nuestra máquina Debian toca
crear los certificados tanto de servidor como de cliente. Para facilitar
este proceso usaremos los scripts de Raymond McKay's HOWTO. Estos
scripts se pueden copiar y pegar tal cual, con los nombres que se
proponen. Se debe tener en cuenta que algunas variables se deben
modificar para adaptarlas a tu sistema.
Primero creamos el script para generar el certificado raíz:
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 2/54
CA.root
#En negrita las variables que se tienen que especificar.
# CAPL. Es el ejecutable de perl CA.pl que en Debian normalmente lo
deberías encontrar en: /usr/lib/ssl/misc/CA.pl
# KEYGEN. Es el programa que se usará para generar un password
aleatorio si no especificas #ninguno a la hora de crear los certificados.
Yo he usado dnskeygen que los puedes encontrar en #las utilidades de
bind (apt-get install bind).
#!/bin/sh
OPENSSL=openssl
CAPL=(path to your CA.pl)
KEYGEN=(your choice of key/password generator)
PASSDIR=pass
DERDIR=der
P12DIR=p12
PEMDIR=pem
VALIDFOR=365
PASSWD=$1
mkdir -p $PEMDIR $P12DIR $DERDIR $PASSDIR
if [ -z "${PASSWD}" ]; then
echo "No root password specified, trying $PASSDIR/root.pass."
if [ -a $PASSDIR/root.pass ]; then
PASSWD=`cat $PASSDIR/root.pass`
else
echo "Not found. Generating password, see $PASSDIR/root.pass for
contents."
PASSWD=`$KEYGEN | head -c 32`
cat /dev/null > $PASSDIR/root.pass
echo $PASSWD >> $PASSDIR/root.pass
fi
fi
rm -rf demoCA
$OPENSSL req -new -x509 -days $VALIDFOR -keyout
$PEMDIR/newreq.pem -out \
$PEMDIR/newreq.pem -passin pass:$PASSWD -passout pass:$PASSWD
echo "${PEMDIR}/newreq.pem" | $CAPL -newca >/dev/null
$OPENSSL pkcs12 -export -in demoCA/cacert.pem -inkey
$PEMDIR/newreq.pem -out \
$P12DIR/root.p12 -cacerts -passin pass:$PASSWD -passout
pass:$PASSWD
$OPENSSL pkcs12 -in $P12DIR/root.p12 -out $PEMDIR/root.pem -passin
\
pass:$PASSWD -passout pass:$PASSWD
$OPENSSL x509 -inform PEM -outform DER -days $VALIDFOR -in
$PEMDIR/root.pem \
-out $DERDIR/root.der -passin pass:$PASSWD
rm -rf $PEMDIR/newreq.pem
Segundo creamos el script para generar el certificado de servidor:
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 3/54
CA.server
# KEYGEN. Es el programa que se usará para generar un password
aleatorio si no especificas #ninguno a la hora de crear los certificados.
Yo he usado dnskeygen que los puedes encontrar en #las utilidades de
bind (apt-get install bind)
#!/bin/sh
OPENSSL=openssl
KEYGEN=(your choice of key/password generator)
PASSDIR=pass
DERDIR=der
P12DIR=p12
PEMDIR=pem
VALIDFOR=365
SNAME=$1
PASSWD=$2
ROOTPASSWD=$3
mkdir -p $PEMDIR $P12DIR $DERDIR $PASSDIR
if [ -z "${SNAME}" ]; then
echo "WARNING: server name not specified. Using \"server\"."
SNAME=server
fi
if [ -z "${PASSWD}" ]; then
echo "No password specified, trying $PASSDIR/$SNAME.pass."
if [ -a $PASSDIR/$SNAME.pass ]; then
PASSWD=`cat $PASSDIR/$SNAME.pass`
else
echo "Not found. Generating password, see $PASSDIR/$SNAME.pass for
contents."
PASSWD=`$KEYGEN | head -c 32`
cat /dev/null > $PASSDIR/$SNAME.pass
echo $PASSWD >> $PASSDIR/$SNAME.pass
fi
fi
if [ -z "${ROOTPASSWD}" ]; then
echo "No root password specified, trying $PASSDIR/root.pass."
if [ -a $PASSDIR/root.pass ]; then
ROOTPASSWD=`cat $PASSDIR/root.pass`
else
echo "FATAL: No root certification password."
exit
fi
fi
$OPENSSL req -new -keyout $PEMDIR/newreq.pem -out
$PEMDIR/newreq.pem -passin \
pass:$PASSWD -passout pass:$PASSWD
$OPENSSL ca -policy policy_anything -out $PEMDIR/newcert.pem -key
$ROOTPASSWD \
-extensions xpserver_ext -extfile xpextensions -days $VALIDFOR -infiles
$PEMDIR/newreq.pem
$OPENSSL pkcs12 -export -in $PEMDIR/newcert.pem -inkey
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 4/54
$PEMDIR/newreq.pem -out \
$P12DIR/$1.p12 -clcerts -passin pass:$PASSWD -passout
pass:$PASSWD
$OPENSSL pkcs12 -in $P12DIR/$SNAME.p12 -out $PEMDIR/$SNAME.pem
-passin \
pass:$PASSWD -passout pass:$PASSWD
$OPENSSL x509 -inform PEM -outform DER -in $PEMDIR/$SNAME.pem -
out $DERDIR/$SNAME.der
rm -rf $PEMDIR/newcert.pem $PEMDIR/newreq.pem
Finalmente creamos el script para generar el certificado del cliente.
CA.client
# KEYGEN. Es el programa que se usará para generar un password
aleatorio si no especificas #ninguno a la hora de crear los certificados.
Yo he usado dnskeygen que los puedes encontrar en #las utilidades de
bind (apt-get install bind)
#!/bin/sh
OPENSSL=openssl
KEYGEN=(your choice of key/password generator)
PASSDIR=pass
DERDIR=der
P12DIR=p12
PEMDIR=pem
VALIDFOR=365
CLNAME=$1
PASSWD=$2
ROOTPASSWD=$3
mkdir -p $PEMDIR $P12DIR $DERDIR $PASSDIR
if [ -z "${CLNAME}" ]; then
echo "WARNING: client name not specified. Using \"client\"."
CLNAME=client
fi
if [ -z "${PASSWD}" ]; then
echo "No password specified, trying $PASSDIR/$CLNAME.pass."
if [ -a $PASSDIR/$CLNAME.pass ]; then
PASSWD=`cat $PASSDIR/$CLNAME.pass`
else
echo "Not found. Generating password, see $PASSDIR/$CLNAME.pass
for contents."
PASSWD=`$KEYGEN | head -c 16`
cat /dev/null > $PASSDIR/$CLNAME.pass
echo $PASSWD >> $PASSDIR/$CLNAME.pass
fi
fi
if [ -z "${ROOTPASSWD}" ]; then
echo "No root password specified, trying $PASSDIR/root.pass."
if [ -a $PASSDIR/root.pass ]; then
ROOTPASSWD=`cat $PASSDIR/root.pass`
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 5/54
else
echo "FATAL: No root certification password."
exit
fi
fi
$OPENSSL req -new -keyout $PEMDIR/newreq.pem -out
$PEMDIR/newreq.pem -passin \
pass:$PASSWD -passout pass:$PASSWD
$OPENSSL ca -policy policy_anything -out $PEMDIR/newcert.pem -passin
\
pass:$PASSWD -key $ROOTPASSWD -extensions xpclient_ext -days
$VALIDFOR \
-extfile xpextensions -infiles $PEMDIR/newreq.pem
$OPENSSL pkcs12 -export -in $PEMDIR/newcert.pem -inkey
$PEMDIR/newreq.pem -out \
$P12DIR/$CLNAME.p12 -clcerts -passin pass:$PASSWD -passout
pass:$PASSWD
$OPENSSL pkcs12 -in $P12DIR/$CLNAME.p12 -out
$PEMDIR/$CLNAME.pem -passin \
pass:$PASSWD -passout pass:$PASSWD
$OPENSSL x509 -inform PEM -outform DER -in $PEMDIR/$CLNAME.pem -
out \
$PEMDIR/$CLNAME.der
rm -rf $PEMDIR/newcert.pem $PEMDIR/newreq.pem
Ahora sólo nos queda crear un fichero para adaptar los certificados a las
particularidades de Windows XP:
xpextensions
[ xpclient_ext ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
[ xpserver_ext ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
Una vez tenemos creados los scripts para los certificados, vamos a
generar dichos certificados:
Primero creamos el certificado de raíz:
$ ./CA.root [password]
El argumento "password" es opcional (pero te recomiendo ponerlo). En
el proceso se te preguntarán una serie de cosas, cuando se te
pregunte por "common name", deja el campo en blanco.
El siguiente paso es crear el certificado de servidor:
$ ./CA.server server-name [password [root-password]]
Donde server-name puede ser el nombre del servidor RADIUS.
password y root-password son opcionales, pero te recomiendo ponerlos,
donde password será el password para el certificado que estás creando
y root-password es el password que espacificaste anteriormente al crear
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 6/54
el certificado raíz, si no pusiste ninguno el sólo buscará el archivo
root.pass.
Se te volverán a preguntar una serie de cosas, cuando se te pregunte
por "common name" debes poner el fully-qualified domain-
name (FQDN) del servidor (para saberlo hostname -fqdn)
Finalmente creamos el certificado de cliente:
$ ./CA.client client-name [password [root-password]]
Donde client-name puede ser el nombre del cliente (lo mejor sería el
FQDN del equipo cliente). Cuando se te pregunte por el "common
name" introduce los mismo que pusiste en client-name al invocar el
script.
Obviamente, necesitarás repetir este paso para todos los clientes que
quieras autenticar.
Ahora toca instalar los certificados.
Copia los ficheros der/root.der y p12/client-name.p12 al cliente XP.
Primero instala el certificado raíz para establecernos a nosotros mismo
como una autoridad.
1. Doble click en root.der.
2. En la ventana de propiedades de certificado, click en Instalar
certificado.
3. En el asistente, pulsar Siguiente.
4. Seleccionar la opicón “Colocar todos los certificados en el siguiente
almacén” y tras pulsar “Examinar” se tiene que seleccionar el almacén
"Entidades emisoras raíz de confianza”
5. Click Siguiente para finalizar.
Siguiente, instala el certificado de cliente:
1. Doble click en nombreFQDNDelCliente.p12.
2. En el asistente, click "Siguiente" y "Siguiente" otra vez.
3. Te preguntará el password. Este password es el que indicaste al crear
el certificado del cliente cuando se ejecutó CA.client.
4. Elegir la opción “Seleccionar automáticamente el almacén de
certificados en base al tipo de certificado.
5. Click "Siguiente" para finalizar.
En el servidor RADIUS debemos hacer los siguiente:
Primero, crearemos un repositorio de certificados, por ejemplo podemos
elegir: /etc/autoridad-wifi
Como root ejecutamos:
# mkdir /etc/autoridad-wifi
Copia las claves privadas:
# cp pem/root.pem pem/server-name.pem /etc/autoridad-wifi
Ahora toca asginar los permisos correctos a las claves. Como
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 7/54
ejecutaremos freeradius con usuario y grupo freerad, tenemos que
asignar permisos rw al superusuario y al grupo freerad permisos r.
# chown root.freerad /etc/autoridad-wifi/*.pem
# chmod 0640 /etc/autoridad-wifi/*.pem
5.- Configurando Freeradius.
Antes de nada se tienen que crear unos ficheros aleatorios, para ello:
# /usr/sbin/dnskeygen > /etc/autoridad-wifi/DH
# /usr/sbin/dnskeygen > /etc/autoridad-wifi/random
# chown root:freerad /etc/autoridad-wifi/DH /etc/autoridad-wifi/random
# chmod 0640 /etc/autoridad-wifi/DH /etc/autoridad-wifi/random
Configurando el corazón de freeradius.
Nota: Es probable que tengas que cambiar cosas de este fichero para
adaptarlo a las particularidades de tu sistema.
Ejecutamos: vi /etc/freeradius/radiusd.conf, y debemos dejarlo algo
parecido a esto:
# radiusd.conf
# Configuration of this RADIUS server.
#
# IMPORTANT: THIS FILE CONTAINS SECRETS.
# This file should have -rw-r----- root:radiusd permissions.
# Various directories
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = /usr/sbin
logdir = ${localstatedir}/log/radius
raddbdir = ${sysconfdir}/raddb
radacctdir = ${logdir}/radacct
# Location of config and logfiles
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/radiusd
log_file = ${logdir}/radius.log
# Libraries, modules, etc.
libdir = /usr/lib
# The pid file
pidfile = ${run_dir}/radiusd.pid
# User/group config of the RADIUS server
user = freerad
group = freerad
# Request handling
max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 8/54
max_requests = 1024
# bind_address: we need only listen on the wireless subnet.
bind_address = (IP address to listen on)
port = 0
hostname_lookups = no
# How the server conducts itself
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
# Logging behaviour
log_stripped_names = no
log_auth = no
log_auth_badpass = no
log_auth_goodpass = no
# User handling
usercollide = no
lower_user = no
lower_pass = no
nospace_user = no
nospace_pass = no
# RADIUS Checker
checkrad = ${sbindir}/checkrad
# Security options
security {
max_attributes = 200
reject_delay = 1
status_server = no
}
# DON'T proxy requests
proxy_requests = no
# CLIENTS CONFIGURATION
# Include the clients here.
$INCLUDE ${confdir}/clients.conf
# Don't use SNMP.
snmp = no
# Thread-pooling
thread pool {
start_servers = 2
max_servers = 10
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 0
}
# MODULE CONFIGURATION
modules {
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 9/54
# This is an EAP-based operation.
eap {
default_eap_type = tls
timer_expire = 60
tls {
private_key_password = (server's private key password, e.g. in
pass/server-name.pass)
private_key_file = /etc/autoridad-wifi/server-name.pem
certificate_file = /etc/autoridad-wifi/server-name.pem
CA_file = /etc/autoridad-wifi/root.pem
dh_file = /etc/autoridad-wifi/DH
random_file = /etc/autoridad-wifi/random
fragment_size = 1024
include_length = yes
}
}
# Preprocess the incoming RADIUS request
preprocess {
huntgroups = ${confdir}/huntgroups
hints = ${confdir}/hints
with_ascend_hack = no
ascend_channels_per_line = 23
with_ntdomain_hack = no
with_specialix_jetstream_hack = no
with_cisco_vsa_hack = no
}
# The users file
files {
usersfile = ${confdir}/users
acctusersfile = ${confdir}/acct_users
compat = no
}
# Write a detailed log of all accounting records received
detail {
detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
detailperm = 0600
}
acct_unique {
key = "User-Name, Acct-Session-Id, NAS-IP-Address, C lient-IP-Address,
NAS-Port-Id"
}
radutmp {
filename = ${logdir}/radutmp
username = %{User-Name}
case_sensitive = yes
check_with_nas = yes
perm = 0600
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 10/54
callerid = "yes"
}
radutmp sradutmp {
filename = ${logdir}/sradutmp
perm = 0644
callerid = "no"
}
expr {
}
counter daily {
filename = ${raddbdir}/db.daily
key = User-Name
count-attribute = Acct-Session-Time
reset = daily
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
allowed-servicetype = Framed-User
cache-size = 5000
}
always fail {
rcode = fail
}
always reject {
rcode = reject
}
always ok {
rcode = ok
simulcount = 0
mpp = no
}
exec {
wait = yes
input_pairs = request
}
exec echo {
wait = yes
program = "/bin/echo %{User-Name}"
input_pairs = request
output_pairs = reply
}
ippool main_pool {
range-3 = (starting IP address)
range-stop = (ending IP address)
netmask = 255.255.255.0
cache-size = 800
session-db = ${raddbdir}/db.ippool
ip-index = ${raddbdir}/db.ipindex
override = no
}
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 11/54
}
# MODULE INSTANTIATION
instantiate {
expr
daily
}
# AUTHORISATION PROCESS
authorize {
preprocess
eap
files
}
# AUTHENTICATION PROCESS
authenticate {
eap
}
# ACCOUNTING
preacct {
preprocess
files
}
accounting {
acct_unique
detail
radutmp
}
session {
radutmp
}
post-auth {
}
Base de datos de puntos de acceso.
Aquí necesitarás la clave que asignaste al certificado de servidor
(CA.server). Editamos el fichero /etc/freeradius/clients.conf y lo
dejamos algo parecido a esto (adaptandolo a nuestras necesidades):
# clients.conf
# Network access points that authenticate through RADIUS specified
here.
#
# IMPORTANT: THIS FILE CONTAINS SECRETS.
# This file should have -rw-r----- root:radiusd permissions.
# The wireless access point
client "(the AP's IP address)" {
secret = (RADIUS shared secret)
shortname = (a name for logging, etc.)
nastype = (your AP's NAS type; if unknown, try "other")
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 12/54
}
La base de datos de usuarios:
Editamos el fichero /etc/freeradius/users y lo dejamos algo parecido a
este:
# users
# A list of users and their authentication types.
"client-name" Auth-Type := EAP
# This is important: it makes RADIUS reject users not found above
DEFAULT Auth-Type := Reject
Reply-Message = "LOS HACKERS NO SON BIENVENIDOS y tú no tienes
permiso para entrar en esta red, desiste de intentar conectarte.
MÁRCHATE!!!!! / HACKERS AREN'T WELCOME HERE and you don't have
permission to enter this network, please desist to retry. GO AWAY!!!!!"
Por cada máquina cliente que quieras conectar deberás tener una línea
igual que "client-name" Auth-Type := EAP, donde "client-name" será el
FQDN del cliente.
Iniciamos el servicio de freeradius, para ello ejecutamos:
# freeradius
Si todo ha ido bien deberíamos ver algo así:
# ps faux | grep freeradius
freerad 3973 0.0 2.6 68132 24240 ? Ssl May04 0:00 freeradius
Sí el servicio no se arranca prueba con:
# freeradius -X -A para debugar.
6.- Configurando el AP (Punto de Acceso).
Accederemos a la configuración vía web del AP, y en la sección de
configuración wireless en el apartado "Authentication" seleccionamos
"WPA" y nos solicitará que introduzcamos la ip del servidor radius, el
puerto (por defecto poner 1812) y el password que indicamos en el
fichero clients.conf.
7.- Configurando clientes.
Para evitarnos problemas lo mejor es que nuestro cliente tenga instalado
Service Pack 2 de Windows XP. Si no lo tuviese es necesario instalar,
como mínimo, Service Pack 1 de Windows XP y el hotfix Q815485
(descargable a través de microsoft).
Normalmente windows debería detectar automáticamente todas las
redes wifi al alcance de nuestra máquina cliente. Accederemos a la lista
de las redes disponibles (pulsando doble click en el icono de los dos
ordenadores que aparecerán en la barra de tareas al lado de la hora de
windows). Seleccionamos la red que acabamos de crear y como ya
tenemos el certificado instalado automáticamente hará la autenticación
contra freeradius y se conectará a nuestra nueva y flamante red segura
wifi.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 13/54
8.- Conclusiones.
Si estás leyendo esto es porque acabaste el HOW-TO y ya tienes tu red
wifi más segura o porque no entendiste nada y aún así has hecho el
esfuerzo de intentar encontrar algo en claro. Si no es por ninguna de
estas dos cosas, mejor dedicate a otra cosa...
Para los que hayan conseguido instalar freeradius y hacerlo funcionar,
enhorabuena. Como habréis visto hay una gran diferencia entre tener
una red con WEP y una red con WPA. Juzgar vosotros mismos.
Por último quería mandar un avíso a todos de la proliferación de las
redes wifi gemelas, esto consiste en crear una red de las mismas
características a una red que exista, con el mismo SSID y demás, así
cuando un usuario (con pocas luces por cierto) quiera conectarse a la
red verá dos redes iguales y por equivocación puede llegar a conectarse
a la red gemela propiedad de un usuario malintencionado con lo cual
pondremos a su alcance todos nuestros ficheros sin darnos cuenta.
ESTAD ATENTOS A ESTO.
Próximamente: HOW-TO Clúster de correo Postfix de manera casera en
Debian.
Esta obra está bajo una licencia de Creative Commons.
publicado por cupido en 10:17:00
9 comentarios:
minu dijo...
¿Algo de ayuda a la comunidad?.
Nen, tu comunidad bloggera somos los de siempre (Laia, Àlex,
Norma, Minu... y poco más).
Si quieres ayudarnos vuelve a ser el de antaño y no nos hables
en xino tío.
Por cierto, si me echas un cable con cambiar mi plantilla te
estaré eternamente agradecido que tengo un mierdón que lo
flipas y no me mola nada.
vie may 11, 12:17:00 PM CEST
the root dijo...
Jajajaja, me refiero a la comunidad linuxera, a la gente del
software libre, a los frikis como nos llamáis vosotros, a gente
que quiere haceros la vida más fácil a vosotros
(pu@~#@~@{[¬½{ usuarios) y no sabe como ni por donde
empezar. Esto es un blog sobre debianitas y eso es lo que voy a
intentar hacer a partir de ahora poner cosas de interés para los
debianitas.
Lo de la plantilla lo miramos cuando quieras, pero para eso alex
es un hacha!
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 14/54
vie may 11, 12:23:00 PM CEST
the root dijo...
Aunque también pondré cosas para que me podáis criticar como
hasta ahora mis asiduos lectores!
vie may 11, 12:25:00 PM CEST
cameraphp dijo...
Hola, soy nuevo en esto, lme llamo Juan Pablo Camera logre
seguir al pie de la letra tus pasos, pero cuanto ejecuto
./CA.server server-name [password [root-password]]
./CA.client client-name [password [root-password]]
me da el sgte error
bash: ./CA.server: cannot execute binary file
en ambos casos
luego hacia la parte final
radtest test test localhost 1812 testing123
Sending Access-Request of id 9 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=9,
length=20
en el log del servidor da
rad_recv: Access-Request packet from host 127.0.0.1:32772,
id=9, length=56
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
Sending Access-Reject of id 9 to 127.0.0.1 port 32772
En fin por lo que entiendo me esta rechazando las conexiones
por ser un usuuario no valido y pienso que este error se viene
arrastrando desde los errores en la creacion de los certificados
tanto para el cliente como del servidor
vie jul 04, 12:34:00 AM CEST
cameraphp dijo...
Favor enviar pronta respuesta y muchas gracias de antemano
vie jul 04, 12:35:00 AM CEST
the root dijo...
Hola Juan Pablo, le has dado permisos de ejecución al script?
Evidentemente si la generación de certificados no es correcta el
servidor te rechazará las conexiones. Entiendo que "server-
name" y "client-name" los sustituyes por los nombres que se
adecuan a tu entorno.
Has añadido el cliente dentro del fichero clients.conf? Has
instalado los certificados en el cliente?
Que versión de Windows es tu cliente?
Saludos
vie jul 04, 08:13:00 AM CEST
the root dijo...
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 15/54
El cliente lo tienes que añadir en el fichero users y el access
point dentro de clients.conf. Puedes poner la configuración de tus
ficheros? Puedes revisar si tienes algún error de sintaxis dentro
de los scripts de creación de los certificados?
Saludos
vie jul 04, 08:17:00 AM CEST
cameraphp dijo...
gracias por los apuntes, pero he encontrado otro manual por
internet y lo publico entero, cabe destacar que le sumo lo sgte:
apt-get install libssl-dev libgdbm-dev libmysql++-dev libkrb5-dev
libperl-dev
y ademas se tiene que copiar la carpeta misc contrenedora de
CA.pl en /etc/ssl para que funcionen bien
******************************
Webstats4U - Free web site statistics
Guà a para instalar FreeRADIUS
en Redes Privadas v1.0
Por
Daniel Romero Peña
Escuela de Ingenierà a Informática
Universidad Diego Portales
Santiago, Chile.
Contenidos:
1. Configuración de Servidores. 1
1.1. Descarga e instalación de freeradius. 1
1.2. Instalación de MySQL 4.1. 5
1.3. Configuración base de freeradius. 6
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 16/54
2. Configurando FreeRadius con EAP/PEAP. 9
2.1. Configuración NAS. 9
2.2. Creación de certificados para EAP/PEAP. 9
2.3. Habilitando EAP/PEAP. 11
2.4. Definición de grupos y usuarios de prueba. 17
2.5. Configuración del suplicante en Windows XP SP2. 18
3. Referencias. 31
1. Configuración de Servidores
En el presente capà tulo se explicará como instalar freeradius y
MySQL en un sistema Debian, dejándolo en funcionamiento con
su configuración por defecto. Para esto necesitaremos un PC
que cuente con el sistema operativo anteriormente señalado
recién instalado, sin programas ajenos a la distribución del
sistema, y con su interfaz de red ya configurada para acceder a
Internet.
1.1. Descarga e instalación de freeradius
El primer paso es obtener el código fuente o un paquete pre-
hecho para Debian. En el caso de Debian se puede obtener un
paquete precompilado con la utilidad apt-get. Nosotros
optaremos por descargar el código fuente.
Para esto debemos descargar el siguiente archivo:
ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.3.tar.bz2
Este archivo contiene el código fuente correspondiente a la
versión actual de freeradius en Octubre del 2006.
Para descargarlo podemos hacerlo con la utilidad wget. De no
contar con wget podemos instalarla ejecutando apt-get install
wget.
radius:/home/user# wget
ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.3.tar.bz2
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 17/54
Luego debemos extraer los archivos ejecutando la siguiente
sentencia:
radius:/home/user# tar jxvf freeradius-1.1.3.tar.bz2
Con esto los archivos serán extraà dos en un nuevo directorio
llamado freeradius-1.1.3
Luego debemos ingresar a este nuevo directorio y en el ejecutar
el script de configuración para luego poder compilarlo:
radius:/home/user# cd freeradius-1.1.3
radius:/home/user/freeradius-1.1.3# ./configure
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Este error se debe a que en nuestro sistema no está instalado el
compilador gcc (GNU Compiler Collection, antes GNU C
Compiler). En Debian podemos instalar gcc simplemente
ejecutando:
radius:/home/user/freeradius-1.1.3# apt-get install gcc
Finalizada la instalación de gcc nuevamente ejecutamos el
script de configuración:
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 18/54
radius:/home/user/freeradius-1.1.3# ./configure
checking for gcc... gcc
checking for C compiler default output file name... configure:
error: C compiler cannot create executables
See `config.log' for more details.
Para solucionar este error debemos instalar el paquete libc6-dev,
correspondiente a “GNU C Library: Development Libraries
and Header Filesâ€. Con esto el sistema quedará en condiciones
de crear los archivos ejecutables.
radius:/home/user/freeradius-1.1.3# apt-get install libc6-dev
Luego volvemos a intentar ejecutar el script de configuración:
radius:/home/user/freeradius-1.1.3# ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
.
.
.
checking for gmake... no
checking for make... /usr/local/bin/make
configure: error: GNU Make is not installed. Please download and
install it
from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.
Nuevamente un error, pero no hay que frustrarse... Como lo
menciona el mensaje, lo que falta es instalar la aplicación
make. Para esto nuevamente recurriremos a apt:
radius:/home/user/freeradius-1.1.3# apt-get install make
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 19/54
Nuevamente ejecutamos:
radius:/home/user/freeradius-1.1.3# ./configure
checking for gcc... gcc
.
.
/usr/bin/ld: cannot find –lperl
Ahora nos avisa que nuestro sistema no cuenta con el lenguaje
perl instalado. Solución:
Finalemente:
radius:/home/user/freeradius-1.1.3# apt-get install libssl-dev
libgdbm-dev libmysql++-dev libkrb5-dev libperl-dev
radius:/home/user/freeradius-1.1.3# ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes.
.
.
.
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
configure: configuring in src/modules/rlm_checkval
configure: running /bin/sh './configure' --prefix=/usr/local --
enable-ltdl-install=no --cache-file=/dev/null --srcdir=.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 20/54
configure: creating ./config.status
config.status: creating Makefile
radius:/home/user/freeradius-1.1.3#
üOK
Luego ejecutamos:
radius:/home/user/freeradius-1.1.3# make
radius:/home/user/freeradius-1.1.3# make install
Con esto freeradius está listo para correr por primera vez en
nuestro sistema.
Ejecutando radius:/home/user/freeradius-1.1.3# radiusd –x se
iniciará el servidor en modo de debug, en donde nos mostrará
información acerca de los eventos que recibe. Si no lo
ejecutamos con la opción –x el servidor se inicia, pero no
mostrará ninguna información en pantalla.
root@radius:~/radius/freeradius-1.1.3# radiusd -x
Starting - reading configuration files ...
Using deprecated naslist file. Support for this will go away soon.
Module: Loaded exec
.
.
.
Initializing the thread pool...
Listening on authentication *:1812
Listening on accounting *:1813
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 21/54
Ready to process requests.
Con esto ya tenemos corriendo el servidor freeradius en nuestro
sistema, con la configuración que trae por defecto.
Por defecto el servidor crea un cliente de nombre y password
test y con un secret = testing123.
Ahora podemos realizar un pequeño test de conexión con la
utilidad radtest que biene con freeradius:
radius:~# radtest test test localhost 0 testing123
Sending Access-Request of id 88 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
Re-sending Access-Request of id 88 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812,
id=88, length=20
En freeradius se reportó lo siguiente:
rad_recv: Access-Request packet from host 127.0.0.1:32775,
id=84, length=56
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 22/54
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Request packet from host 127.0.0.1:32775,
id=84, length=56
Sending Access-Reject of id 84 to 127.0.0.1 port 32775
radtest envà o un Access-Request, el cual fue recibido por
freeradius y contestado con un Access-Reject. Con esto
podemos verificar que a lo menos el servidor se esta ejecutando
de manera correcta.
1.2. Instalación de MySQL 4.1
Ya que tenemos instalado y funcionando freeradius, instalaremos
MySQL con el fà n de reemplazar la configuración de usuarios y
clientes y los logs de accounting que por defecto se hacen en
archivos de texto, por una base de datos que permita una mejor
administración de estos.
Primero debemos proceder a instalar MySQL. En esta ocasión
instalaremos la versión 4.1 utilizando apt-get:
root@radius:~# apt-get install mysql-server-4.1
Luego de instalar MySQL debemos crear la base de datos que
utilizará freeradius. Para esto ingresamos a la shell de MySQL
ejecutando como root:
root@radius:~# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.1.15-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 23/54
mysql>
Luego ejecutamos las siguientes instrucciones SQL, las que
crearán la base de datos con el nombre radius, crearán un
usuario también de nombre radius con todos los permisos
sobre esta base de datos y le asignarán un password=radius:
mysql> create database radius;
mysql> grant all privileges on radius.* to radius@localhost;
mysql> set password for radius@localhost =
old_password('radius');
Ahora debemos proceder a crear la base de datos. Para esto
freeradius provee un script sql que puede ser encontrado en el
directorio freeradius-1.1.3/doc/examples/mysql.sql.
Para ejecutar el script, podemos hacerlo directamente desde
MySQL:
mysql> connect radius;
mysql> \. /home/user/freeradius-1.1.3/doc/examples/mysql.sql
Para ver la estructura de las tablas podemos utilizar los
siguientes comandos de mysql: “show tables;†y “desc
tablename;â€.
Ahora debemos poblar la base de datos con algún usuario y
cliente (NAS) de prueba:
insert into radgroupcheck values ('', 'admin', 'Auth-Type', ':=',
'Local');
insert into radgroupreply values ('', 'admin', 'Framed-Protocol',
':=', 'PPP');
insert into radgroupreply values ('', 'admin', 'Service-Type', ':=',
'Framed-User');
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 24/54
insert into radgroupreply values ('', 'admin', 'Framed-
Compression', ':=', 'Van-Jacobsen-TCP-IP');
insert into usergroup values ('dromero', 'admin','');
insert into radcheck values ('', 'dromero', 'Password', '==',
'dromero');
insert into radreply values ('', 'dromero', 'Framed-IP-Address',
':=', '192.168.100.50');
insert into nas values ('', 'test',NULL, '3coml',NULL, 'radiusUDP',
NULL, NULL);
Con esto hemos creado un usuario dromero con password
dromero, el cual pertenece al grupo admin que posee un
conjunto de atributos determinados. Además hemos agregado
un NAS de nombre test, tipo 3coml, y secret radiusUDP.
1.3. Configuración base de freeradius
Como queremos que freeradius trabaje con MySQL debemos
realizar algunos cambios en los archivos de configuración. Estos
archivos los podemos encontrar en el directorio
/usr/local/etc/raddb.
El archivo users contiene la información de los usuarios, pero
estos ahora se almacenarán en MySQL, por lo que no
tocaremos este archivo.
El archivo clients.conf se utiliza para configurar los NAS con que
interactúa freeradius. Aunque ya tenemos el NAS agregado en
la base de datos, debemos configurar la ip de este en el archivo.
La ultima modificación que haremos en este archivo es agregar
al final los siguiente:
client 200.14.84.159{
secret = radiusUDP
shortname = 3com1
}
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 25/54
donde 200.14.84.159 es la IP de nuestro AP.
Luego debemos configurar el acceso a la base de datos, indicÃ
¡ndole a freeradius cual es la IP del servidor MySQL, el usuario y
el password. Esto lo haremos en el archivo sql.conf, en donde
deberemos modificar las siguientes là neas:
# Connect info
server = "localhost"
login = "radius"
password = "radius"
# Database table configuration
radius_db = "radius"
donde localhost corresponde a la dirección del servidor MySQL,
login es el nombre de usuario y su password para acceder a la
base de datos, y radius_db corresponde al nombre de la base de
datos que hemos creado para freeradius.
Luego en el archivo radius.conf configuraremos freeradius para
que deje de ocupar los archivos y comience a ocupar MySQL.
Para esto modificaremos las siguientes secciones del archivo, las
cuales se encuentran al final de este:
authorize {
preprocess
chap
mschap
suffix
eap
sql
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 26/54
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
}
preacct {
preprocess
acct_unique
suffix
}
accounting {
detail
radutmp
sql
}
session {
radutmp
sql
}
post-auth {
sql
}
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 27/54
pre-proxy {
}
post-proxy {
eap
}
Finalmente echamos a correr nuestro freeradius con MySQL:
root@radius:~# radiusd -x
Starting - reading configuration files ...
Using deprecated naslist file. Support for this will go away soon.
Module: Loaded exec
rlm_exec: Wait=yes but no output defined. Did you mean
output=none?
Module: Instantiated exec (exec)
Module: Loaded expr
Module: Instantiated expr (expr)
Module: Loaded PAP
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
Module: Instantiated mschap (mschap)
.
.
.
Module: Loaded SQL
rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql)
loaded and linked
rlm_sql (sql): Attempting to connect to radius@localhost:/radius
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 28/54
rlm_sql (sql): starting 0
rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
rlm_sql_mysql: Starting connect to MySQL server for #0
rlm_sql (sql): Connected new DB handle, #0
.
.
.
Initializing the thread pool...
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
2. Configurando FreeRadius con EAP/PEAP
2.1. Configuración NAS
Cada fabricante provee una interfás particular para realizar esta
labor.
En general la configuración de los NAS es bastante sencilla: en
cada uno de ellos debemos habilitarlo como cliente RADIUS,
configurar la IP del servidor RADIUS, el puerto en que este
escucha y el “secreto†que el NAS comparte con el servidor
RADIUS para encriptar las comunicaciones (configurado en el
archivo clients.conf).
Para más detalles consulte el manual del NAS que utilizará.
2.2. Creación de certificados para EAP/PEAP
Al utilizar EAP/PEAP deberemos porveer a cada cliente del
certificado del servidor. FreeRadius biene con un set de
certificados ya creados, que pueden ser encontrados en el
directorio /usr/local/raddb/certs, pero no es aconsejable el
utilizar estos, ya que son de dominio público, por lo que
procederemos a crear certificados propios.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 29/54
Para crear estos certificados es necesario tener instalado
OpenSSL.
Teniendo instalado OpenSSL debemos proceder a configurarlo
para nuestra máquina. Esto se debe hacer en el archivo
/usr/local/openssl/ssl/openssl.cnf en donde deberemos modificar
la siguiente sección para que coincida con el formato de los
directorios que creará freeradius para guardar los certificados,
tal cual como lo podemos ver en el directorio
/usr/local/raddb/certs. Solo deberemos modificar la siguiente
sección del archivo:
[ CA_default ]
dir = ./demoCA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
#unique_subject = no
new_certs_dir = $dir/newcerts
certificate = $dir/cacert.pem
serial =/home/dromero/free/raddb/certs/demoCA/serial
crlnumber = $dir/crlnumber
crl = $dir/crl.pem
private_key = $dir/private/cakey.pem
RANDFILE = $dir/private/.rand
x509_extensions = usr_cert
En nuestro caso lo único que fue necesario modificar fue la
ubicación del archivo serial, que fue cambiado de serial =
$dir/serial a la ubicación que se indica anteriormente, que
corresponde a la ubicación del tar de freeradius que
descomprimimos al principio de este tutorial.
FreeRadius incorpora un script ya programado para crear los
certificados. Este script (certs.sh) se puede encontrar en el
directorio “scripts†del tar del código fuente. Este script
interactúa con 2 scripts más que se encuentran en el mismo
directorio: CA.all y CA.certs.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 30/54
Lo primero que debemos hacer en estos 3 scripts es modificar
las rutas para que apunten a la ubicación correcta de openssl
en nuestra máquina (/usr/local/openssl).
En nuestro caso modificamos las siguientes là neas:
CA.all
SSL=/etc/ssl
echo "newreq.pem" | /usr/local/ssl/misc/CA.pl –newca
CA.certs
[ "$SSL" = "" ] && SSL=/etc/ssl
certs.sh
[ "$SSL" = "" ] && SSL=/etc/ssl
/usr/bin/openssl gendh > dh
Adicionalmente, en el archivo CA.certs debemos llenar los datos
de quien emitirá los certificados, o sea, nosotros. Solo debemos
modificar el archivo en la siguiente sección de él:
#
# Edit the following variables for your organization.
#
COUNTRY="CL"
PROVINCE="Región Metropolitana"
CITY="Santiago"
ORGANIZATION="UDP"
ORG_UNIT=`RadiusUDP`
PASSWORD="radiusUDP"
COMMON_NAME_CLIENT="RadiusUDP Client certificate"
EMAIL_CLIENT="[email protected]"
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 31/54
PASSWORD_CLIENT=$PASSWORD
COMMON_NAME_SERVER="Radius UDP Server certificate"
EMAIL_SERVER="[email protected]"
PASSWORD_SERVER=$PASSWORD
COMMON_NAME_ROOT="Radius UDP Root certificate"
EMAIL_ROOT="[email protected]"
PASSWORD_ROOT=$PASSWORD
#
# lifetime, in days, of the certs
#
LIFETIME=730
#####EL APORTE
luego
cp -R /usr/lib/ssl/misc /etc/ssl/
####
Una vez editados estos 3 archivos crearemos los certificados
ejecutando:
#sh certs.sh
Si todo va bien, deberà amos ver en pantalla lo siguiente:
root@radius:~/radiussrc/scripts# sh certs.sh
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
.....+.......+........+.........................................+..................+.+
........+......................+..........................+...............................
.......................+....+..................................................+..........
..............................+.............+...++*++*++*++*++*++*
See the 'certs' directory for the certificates.
The 'certs' directory should be copied to .../etc/raddb/
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 32/54
All passwords have been set to 'whatever'
Con esto hemos creado los certificados para nuestro servidor.
Estos certificados ahora se encuentran en el directorio certs que
está dentro del directorio scripts en el cual hemos estado
trabajando. Finalmente, debemos copiar este directorio al
directorio donde se encuentra la configuración de freeradius, o
sea, /usr/local/etc/raddb/.
2.3. Habilitando EAP/PEAP
Nuevamente deberemos ir a editar los archivos radiusd.conf y
eap.conf para habilitar la autenticación con eap/peap y
mschapv2.
Nuestra configuración fue la siguiente:
eap.conf
eap {
default_eap_type = peap
timer_expire = 60
tls {
private_key_password = radiusUDP
private_key_file = ${raddbdir}/certs/cert-srv.pem
certificate_file = ${raddbdir}/certs/cert-srv.pem
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
}
peap {
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 33/54
default_eap_type = mschapv2
}
mschapv2 {
}
}
Lo que hicimos fue configurar como eap predeterminado peap,
habilitar las contraseñas mschapv2 y configurar las rutas hacia
los diferentes certificados que creamos en la sección anterior
además del indicar el password con que fueron creados estos
certificados.
radiusd.conf
Debemos asegurarnos que que en la sección modules se
encuentre incluido el modulo eap y mschap.
modules {
.
.
.
$INCLUDE ${confdir}/eap.conf
mschap {
}
.
.
.
}
La configuración de las otras secciones será la siguiente (lo
que no aparece aquà se deja como viene por defecto):
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 34/54
instantiate {
exec
expr
}
authorize {
preprocess
eap
sql
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
preacct {
preprocess
acct_unique
suffix
}
accounting {
detail
radutmp
sql
}
session {
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 35/54
radutmp
sql
}
post-auth {
sql
}
pre-proxy {
}
post-proxy {
}
Ahora que todo está configurado, podemos ejecutar freeradius:
Si todo va bien, veremos lo siguiente:
root@radius:~# radiusd -X
Starting - reading configuration files ...
reread_config: reading radiusd.conf
Config: including file: /usr/local/etc/raddb/proxy.conf
Config: including file: /usr/local/etc/raddb/clients.conf
Config: including file: /usr/local/etc/raddb/eap.conf
Config: including file: /usr/local/etc/raddb/sql.conf
main: prefix = "/usr/local"
main: localstatedir = "/usr/local/var"
main: logdir = "/usr/local/var/log/radius"
main: libdir = "/usr/local/lib"
main: radacctdir = "/usr/local/var/log/radius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 36/54
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/usr/local/var/log/radius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/usr/local/var/run/radiusd/radiusd.pid"
main: user = "(null)"
main: group = "(null)"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/local/sbin/checkrad"
main: proxy_requests = yes
proxy: retry_delay = 5
proxy: retry_count = 3
proxy: synchronous = no
proxy: default_fallback = yes
proxy: dead_time = 120
proxy: post_proxy_authorize = yes
proxy: wake_all_if_all_dead = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 37/54
main: debug_level = 0
read_config_files: reading dictionary
read_config_files: reading naslist
Using deprecated naslist file. Support for this will go away soon.
read_config_files: reading clients
read_config_files: reading realms
radiusd: entering modules setup
Module: Library search path is /usr/local/lib
Module: Loaded exec
exec: wait = yes
exec: program = "(null)"
exec: input_pairs = "request"
exec: output_pairs = "(null)"
exec: packet_type = "(null)"
rlm_exec: Wait=yes but no output defined. Did you mean
output=none?
Module: Instantiated exec (exec)
Module: Loaded expr
Module: Instantiated expr (expr)
Module: Loaded eap
eap: default_eap_type = "peap"
eap: timer_expire = 60
eap: ignore_unknown_eap_types = no
eap: cisco_accounting_username_bug = no
tls: rsa_key_exchange = no
tls: dh_key_exchange = yes
tls: rsa_key_length = 512
tls: dh_key_length = 512
tls: verify_depth = 0
tls: CA_path = "(null)"
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 38/54
tls: pem_file_type = yes
tls: private_key_file = "/usr/local/etc/raddb/certs/cert-srv.pem"
tls: certificate_file = "/usr/local/etc/raddb/certs/cert-srv.pem"
tls: CA_file = "/usr/local/etc/raddb/certs/demoCA/cacert.pem"
tls: private_key_password = "radiusUDP"
tls: dh_file = "/usr/local/etc/raddb/certs/dh"
tls: random_file = "/usr/local/etc/raddb/certs/random"
tls: fragment_size = 1024
tls: include_length = yes
tls: check_crl = no
tls: check_cert_cn = "(null)"
tls: cipher_list = "(null)"
tls: check_cert_issuer = "(null)"
rlm_eap_tls: Loading the certificate file as a chain
rlm_eap: Loaded and initialized type tls
peap: default_eap_type = "mschapv2"
peap: copy_request_to_tunnel = no
peap: use_tunneled_reply = no
peap: proxy_tunneled_request_as_eap = yes
rlm_eap: Loaded and initialized type peap
mschapv2: with_ntdomain_hack = no
rlm_eap: Loaded and initialized type mschapv2
Module: Instantiated eap (eap)
Module: Loaded preprocess
preprocess: huntgroups = "/usr/local/etc/raddb/huntgroups"
preprocess: hints = "/usr/local/etc/raddb/hints"
preprocess: with_ascend_hack = no
preprocess: ascend_channels_per_line = 23
preprocess: with_ntdomain_hack = no
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 39/54
preprocess: with_specialix_jetstream_hack = no
preprocess: with_cisco_vsa_hack = no
preprocess: with_alvarion_vsa_hack = no
Module: Instantiated preprocess (preprocess)
Module: Loaded SQL
sql: driver = "rlm_sql_mysql"
sql: server = "localhost"
sql: port = ""
sql: login = "radius"
sql: password = "radius"
sql: radius_db = "radius"
sql: nas_table = "nas"
sql: sqltrace = no
sql: sqltracefile = "/usr/local/var/log/radius/sqltrace.sql"
sql: readclients = no
sql: deletestalesessions = yes
sql: num_sql_socks = 5
sql: sql_user_name = "%{User-Name}"
sql: default_user_profile = ""
sql: query_on_not_found = no
.
.
.
sql: safe-characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX
YZ0123456789.-_: /"
rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql)
loaded and linked
rlm_sql (sql): Attempting to connect to radius@localhost:/radius
rlm_sql (sql): starting 0
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 40/54
rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
rlm_sql_mysql: Starting connect to MySQL server for #0
rlm_sql (sql): Connected new DB handle, #0
rlm_sql (sql): starting 1
rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
rlm_sql_mysql: Starting connect to MySQL server for #1
rlm_sql (sql): Connected new DB handle, #1
rlm_sql (sql): starting 2
rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
rlm_sql_mysql: Starting connect to MySQL server for #2
rlm_sql (sql): Connected new DB handle, #2
rlm_sql (sql): starting 3
rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
rlm_sql_mysql: Starting connect to MySQL server for #3
rlm_sql (sql): Connected new DB handle, #3
rlm_sql (sql): starting 4
rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
rlm_sql_mysql: Starting connect to MySQL server for #4
rlm_sql (sql): Connected new DB handle, #4
Module: Instantiated sql (sql)
Module: Loaded Acct-Unique-Session-Id
acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-
Address, C lient-IP-Address, NAS-Port"
Module: Instantiated acct_unique (acct_unique)
Module: Loaded realm
realm: format = "suffix"
realm: delimiter = "@"
realm: ignore_default = no
realm: ignore_null = no
Module: Instantiated realm (suffix)
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 41/54
Module: Loaded detail
detail: detailfile = "/usr/local/var/log/radius/radacct/%{Client-
IP-Address}/detail-%Y%m%d"
detail: detailperm = 384
detail: dirperm = 493
detail: locking = no
Module: Instantiated detail (detail)
Module: Loaded radutmp
radutmp: filename = "/usr/local/var/log/radius/radutmp"
radutmp: username = "%{User-Name}"
radutmp: case_sensitive = yes
radutmp: check_with_nas = yes
radutmp: perm = 384
radutmp: callerid = yes
Module: Instantiated radutmp (radutmp)
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
Y ya tenemos nuestro servidor configurado con EAP/PEAP!!!
Durante este proceso de configuración experimentamos un par
de problemas:
· Al inicializar el servidor, nos indicaba lo siguiente:
rlm_eap_tls: Loading the certificate file as a chain
rlm_eap: SSL error error:0906D06C:PEM
routines:PEM_read_bio:no start line
rlm_eap_tls: Error reading private key file
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 42/54
rlm_eap: Failed to initialize type tls
radiusd.conf[1]: eap: Module instantiation failed.
radiusd.conf[398] Unknown module "eap".
radiusd.conf[381] Failed to parse authenticate section.
La causa de este problema fue que por un error al tipear el
PASSWORD con que se crearon los certificados y el password
configurado para ellos en eap.conf no coincidà an. Utilizando los
mismos password este problema desapareció.
· Otro error que cometimos en un principio fue el configurar
freeradius como proxy pensando en dar acceso hacia internet.
Esto fue un error de concepto, ya que cuando un servidor
RADIUS actúa como proxy, su función es exclusivamente el
redireccionar determinados paquetes del protocolo RADIUS hacia
otros servidores RADIUS, y NO es un proxy http. Esta
configuración de proxy permite tener diferentes servidores
RADIUS, cada uno se encarguandose de funciones especà ficas
como accounting, authentication, etc.
2.4. Definición de grupos y usuarios de prueba
Para probar nuestro servidor crearemos 3 grupos de usuarios y
3 usuarios de prueba. Los grupos de usuarios los llamaremos
dromero, profesores y alumnos, y le asignaremos las VLANs 2, 3
y 4 respectivamente para asà aislar el tráfico de cada grupo
como si estuvieran en redes fà sicas individuales. Para insertar
estos grupos y usuarios a MySQL puedes referirte a la sección
1.2 de este tutorial.
Las propiedades para los grupos y usuarios quedarà an de la
siguiente manera:
Grupo admin
Auth-Type := EAP
Framed-Protocol := PPP
Service-Type := Framed-user
Framed-Compression := Van-Jacobsen-TCP-IP
Tunnel-Medium-Type := 6
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 43/54
Tunnel-Type := 13
Tunnel-Private-Group-Id := 2
Grupo profesores
Auth-Type := EAP
Framed-Protocol := PPP
Service-Type := Framed-user
Framed-Compression := Van-Jacobsen-TCP-IP
Tunnel-Medium-Type := 6
Tunnel-Type := 13
Tunnel-Private-Group-Id := 3
Grupo alumnos
Auth-Type := EAP
Framed-Protocol := PPP
Service-Type := Framed-user
Framed-Compression := Van-Jacobsen-TCP-IP
Tunnel-Medium-Type := 6
Tunnel-Type := 13
Tunnel-Private-Group-Id := 4
Tunnel-Type se refiere al protocolo que se utilizará para los
túneles.
'Framed-IP-Address'Tunnel-Medium-Type se refiere al medio de
transporte utilizado para los túneles.
Tunnel-Private-Group-Id se refiere al identificador del túnel a
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 44/54
utilizar (VLAN tag).
Información detallada acerca de los atributos de los túneles
puede ser encontrada en RFC 2868.
Usuario dromero perteneciente al grupo admin
Password := hola
Usuario profesor01 perteneciente al grupo profesores
Password := siempreflojo
Usuario alumno01 perteneciente al grupo alumnos
Password := copypaste
En el primer capitulo de este tutorial creamos un usuario que
tenà a en el atributo Framed-IP-Address una IP especificada. Al
utilizar EAP/PEAP estas IP no son utilizadas y esta función debe
seguir siendo realizada por un DHCP. El atributo Framed-IP-
Address fue creado para trabajar principalmente con usuarios
Dial-up como por ejemplo conexiones xDSL.
Ahora que nuestro servidor esta ejecutándose y que tenemos
ingresados los grupos y usuarios que usaremos estamos listos
para conectarnos a través de nuestro NAS.
2.5. Configuración del suplicante en Windows XP SP2
El primer paso es instalar el certificado del servidor. Este
certificado corresponde al archivo root.pem que está en la
carpeta raddb/certs de nuestro servidor. Deberemos copiar este
archivo a cada PC con el que queramos conectarnos a la red.
Para instalarlo comenzaremos por hacer doble click sobre él,
con lo cual aparecerá la siguiente ventana:
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 45/54
Luego hacemos click en Instalar Certificado...
Seleccionamos “Colocar todos los certificados en el siguiente
almacén†y apretamos “Examinar†.
Seleccionamos “Entidades emisoras raà z de confianza†y
apretamos “Aceptarâ€
Apretamos “Siguiente†y después finalizamos la
instalación del certificado.
Ahora lo único que falta es conectarnos!!!
Para eso iremos a ver las redes inalámbricas que están
disponibles:
En esta ventana debemos seleccionar la red a la cual nos
queremos conectar. En nuestro caso esta red se llama â
€œRadiusLab†y como se puede apreciar en la imágen posee
seguridad WPA.
Para ir a configurar esta red debemos hacer click en â
€œCambiar configuración avanzadaâ€.
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 46/54
Luego le damos a “Agregarâ€
Indicamos el nombre de nuestra red y seleccionamos WPA para
la autenticación y TKIP para el cifrado, ya que nuestro AP se ha
configurado con ese mecanismo y no con AES.
Luego nos vamos a la pestaña de “Autenticaciónâ€
Seleccionamos “EAP protegido PEAP†y luego nos vamos â
€œPropiedadesâ€
Aquà debemos dejar marcadas las opciones tal cual como se
indica en la imágen y en la lista de “Entidades emisoras de
certificados raà z de confianza†debemos buscar y seleccionar
el certificado de nuestro servidor que instalamos anteriormente.
Si este no aparece, significa que no se instaló correctamente o
que no lo instalamos en el amacén “Entidades emisoras
raà z de confianza†como se ha especificado en este tutorial. De
se este el caso debemor tratar de reinstalarlo, ya que sin él
NO podremos ingresar a la red.
Luego debemos ir a “Configurar†y en la ventana que
aparecerá dejar todo desmarcado.
Luego aceptamos todo una y otra vez hasta salir de la
configuración de la red y volver al listado de conexiones de
redes inalámbricas.
Seleccionamos nuestra red y apretamos “Conectarâ€
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 47/54
El suplicante procederá a conectarse y nos desplegará una
ventana en donde deberemos ingresar nuestro nombre de
usuario y password.
Ingresamos la información del usuario y luego apretamos â
€œAceptarâ€.
Si todo va bien lograremos autenticarnos logrando acceder a la
red.
De ocurrir algún problema, se no sindicará en la esquina
superior derecha, en el lugar en donde en la foto aparece â
€œConectadoâ€.
Si no hemos instalado el certificado del servidor o este no es
inválido la autenticación fallará y se nos bloqueará el acceso
a la red.
Al autenticarnos con este usuario en nuestro servidor veremos el
siguiente log:
rad_recv: Access-Request packet from host
192.168.100.185:1372, id=0, length=202
Message-Authenticator =
0x7fc3ea093d12cda33ad83cd169ed5bca
Service-Type = Framed-User
User-Name = "dromero"
Framed-MTU = 1488
Called-Station-Id = "00-18-6E-18-62-00:RadiusLab"
Calling-Station-Id = "00-0E-6A-9B-86-20"
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 48/54
NAS-Identifier = "3Com Access Point 7760"
NAS-Port-Type = Wireless-802.11
Connect-Info = "CONNECT 54Mbps 802.11g"
EAP-Message = 0x0200000c0164726f6d65726f
NAS-IP-Address = 192.168.100.185
NAS-Port = 3
NAS-Port-Id = "STA port # 3"
Processing the authorize section of radiusd.conf
.
. *muchos mensajes*
.
modcall[post-auth]: module "sql" returns ok for request 16
modcall: leaving group post-auth (returns ok) for request 16
Sending Access-Accept of id 8 to 192.168.100.185 port 1372
Framed-Protocol := PPP
Service-Type := Framed-User
Framed-Compression := Van-Jacobson-TCP-IP
Tunnel-Type:0 := VLAN
Tunnel-Medium-Type:0 := IEEE-802
Tunnel-Private-Group-Id:0 := "2"
MS-MPPE-Recv-Key =
0x7cfe3b6a3288cd2317c91bb8e3e79785d08506aba199e9bf1a58
253886bbd074
MS-MPPE-Send-Key =
0x98944f7295b2e93fe8a843bd9a73251a32b37918f3d9d0828eb5
a693d92f48ef
EAP-Message = 0x03080004
Message-Authenticator =
0x00000000000000000000000000000000
User-Name = "dromero"
Finished request 16
Going to the next request
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 49/54
Waking up in 5 seconds...
En donde entre otras cosas podemos ver que la respuesta final
fue un Access.Accept y que el usuario está dentro de la VLAN 2
(Tunnel-Private-Group-Id:0 := "2").
Si ingresamos con el usuario profesor01 y alumno01 veremos lo
siguiente:
rad_recv: Access-Request packet from host
192.168.100.185:1391, id=36, length=208
Message-Authenticator =
0x2e69d9b0d8c5a078c157f7e3f554e707
Service-Type = Framed-User
User-Name = "profesor01"
Framed-MTU = 1488
Called-Station-Id = "00-18-6E-18-62-00:RadiusLab"
Calling-Station-Id = "00-0E-6A-9B-86-20"
NAS-Identifier = "3Com Access Point 7760"
NAS-Port-Type = Wireless-802.11
Connect-Info = "CONNECT 54Mbps 802.11g"
EAP-Message = 0x0224000f0170726f6665736f723031
NAS-IP-Address = 192.168.100.185
NAS-Port = 3
NAS-Port-Id = "STA port # 3"
.
.
.
Sending Access-Accept of id 44 to 192.168.100.185 port 1391
Framed-IP-Address := 192.168.100.211
Framed-IP-Netmask := 255.255.255.0
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 50/54
Framed-Protocol := PPP
Service-Type := Framed-User
Framed-Compression := Van-Jacobson-TCP-IP
Tunnel-Medium-Type:0 := IEEE-802
Tunnel-Type:0 := VLAN
Tunnel-Private-Group-Id:0 := "3â€
MS-MPPE-Recv-Key =
0x1714c6bb40821fd973e97f7bbfa7a05110206fb083138414a453f
b4c08ab3b56
MS-MPPE-Send-Key =
0x6d7baa66c5cea48be8998e1bf9b04a46ae59905700e923b6f9a1
462da7ce3b22
EAP-Message = 0x032c0004
Message-Authenticator =
0x00000000000000000000000000000000
User-Name = "profesor01"
Finished request 8
Going to the next request
---------------------------------------------------------------------------
------------------------------------
rad_recv: Access-Request packet from host
192.168.100.185:1030, id=18, length=204
Message-Authenticator =
0x286de06d779a4fb34c5f0992036c45c1
Service-Type = Framed-User
User-Name = "alumno01"
Framed-MTU = 1488
Called-Station-Id = "00-18-6E-18-62-00:RadiusLab"
Calling-Station-Id = "00-0E-6A-9B-86-20"
NAS-Identifier = "3Com Access Point 7760"
NAS-Port-Type = Wireless-802.11
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 51/54
Connect-Info = "CONNECT 54Mbps 802.11g"
EAP-Message = 0x0212000d01616c756d6e6f3031
NAS-IP-Address = 192.168.100.185
NAS-Port = 1
NAS-Port-Id = "STA port # 1"
.
.
.
Sending Access-Accept of id 26 to 192.168.100.185 port 1030
Framed-IP-Address := 192.168.100.212
Framed-IP-Netmask := 255.255.255.0
Framed-Protocol := PPP
Service-Type := Framed-User
Framed-Compression := Van-Jacobson-TCP-IP
Tunnel-Medium-Type:0 := IEEE-802
Tunnel-Type:0 := VLAN
Tunnel-Private-Group-Id:0 := "4â€
MS-MPPE-Recv-Key =
0xe0149d60e451a3b6b9f7e9806f66786ae8a8ee42b26136dc8bb6
1107b6a93dce
MS-MPPE-Send-Key =
0xca9ca668a8580fa06b0ccf3a7c38798d3d7be0b247ae4d5f165dbf
7ce5f4d8ba
EAP-Message = 0x031a0004
Message-Authenticator =
0x00000000000000000000000000000000
User-Name = "alumno01"
Finished request 8
Going to the next request
Si la autenticación falla en vez de una Access-Accept veremos:
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 52/54
Publicar un comentario en la entrada
rad_recv: Access-Request packet from host
192.168.100.185:1367, id=7, length=246
Sending Access-Reject of id 7 to 192.168.100.185 port 1367
EAP-Message = 0x04070004
Message-Authenticator =
0x00000000000000000000000000000000
--- Walking the entire request list ---
Si hemos logrado ingresar a la red significa que nuestro servidor
y suplicante estan bien configurados y que nuestra red se
encuentra protegida con 802.1x. Luego podremos definir más
grupos y usuarios según vayan siendo los requerimeintos de la
red.
Con esto hemos concluà do nuestro tutorial, dejando en
funcionamiento una red inalambrica protegida con 802.1x (en
particular EAP/PEAP) que brinda acceso a una red fà sica dentro
de nuestra organización.
3. Referencias
1. FREERADIUS WIKI (http://wiki.freeradius.org/index.php/FAQ)
2. Authentication Server: Setting up FreeRADIUS
(http://www.tldp.org/HOWTO/8021X-HOWTO/freeradius.html)
3. The Freeradius-Users Archives
(https://list.xs4all.nl/pipermail/freeradius-users)
mar jul 15, 04:41:00 AM CEST
the root dijo...
Me alegro de que te haya funcionado. La verdad es que a mi me
funcionó de la manera que lo tengo explicado, pero como se
suele decir lo que a mi me ha funcionado no tiene porque
funcionarle a los demás. Bueno ahora a disfrutar de tu red
inálambrica segura.
Saludos.
mar jul 15, 07:49:00 AM CEST
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 53/54
Entrada más reciente Entrada antigua
Publicar un comentario en la entrada
Página principal
Suscribirse a: Enviar comentarios (Atom)
29-04-2011 Debianitas frikis: Mini HOW-TO Freeradi…
…blogspot.com/…/mini-how-to-freeradi… 54/54