Servidor Radius :WPA Enterprise + EAP-TLS (802.11x)
Instalación en debian (freeradius v.2.1.8)
creación de certificados
configuración de cliente en windows 7 y linux (wpa_supplicant)
INTRODUCCIÓN
---------------------------
Lo primero saber que el servidor radius ha de componerse de un ordenador que siempre tiene que estar encendido conectado por cable al rouTer
más los clientes por wifi que queramos, para cada uno de ellos habrá que crear un certificado diferente.
El tipo de seguridad que vamos a utlizar es Eap-Tls , Eap (extensible authentication protocol) y Tls (transport layer security)
un esquema puede ser este (radius + firewall):
Existen distribuciones expecialmente diseñadas para hacer esto pero creo que la mejor manera de aprender
es haciendolo tu mismo, una de estas distros es phpRADmin:
dedicada enteramente a servidor radius u otras como pfsense
o phpMyPrepaid que tienen más opciones como firewalls, hotspot....
captura phpMyPrepaid:

INSTALACION
------------------------
mkdir radius
cd radius/
Nos descargamos la última versión de freeradius: http://freeradius.org/
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.8.tar.gz
tar -vzxf freeradius-server-2.1.8.tar.gz
cd freeradius-server-2.1.8/
Instalamos paquetes necesarios:
apt-get update
apt-get install fakeroot dpkg-dev libssl-dev quilt libtool libltdl3-dev libpam dpkg-dev
apt-get install libmysqlclient-dev libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev python-dev
apt-get install libsnmp-dev libpq-dev libpam0g-dev libkrb5-dev libperl-dev libsnmp-dev libpq-dev
Creamos el binario para debian:
fakeroot dpkg-buildpackage -b -uc
[si nos salta algun error es por alguna dependencia de algun paquete, el cual nos lo dice asi que lo instalamos y listo]
Ahora creará el paquete deb, (tarda un poco), después subimos de directorio y vemos que archivos ha creado:
cd ..
ls
freeradius_2.1.8+git_i386.changes freeradius-iodbc_2.1.8+git_i386.deb freeradius-server-2.1.8
freeradius_2.1.8+git_i386.deb freeradius-krb5_2.1.8+git_i386.deb freeradius-server-2.1.8.tar.gz
freeradius-common_2.1.8+git_all.deb freeradius-ldap_2.1.8+git_i386.deb freeradius-utils_2.1.8+git_i386.deb
freeradius-dbg_2.1.8+git_i386.deb freeradius-mysql_2.1.8+git_i386.deb libfreeradius2_2.1.8+git_i386.deb
freeradius-dialupadmin_2.1.8+git_all.deb freeradius-postgresql_2.1.8+git_i386.deb libfreeradius-dev_2.1.8+git_i386.deb
Instalamos en este orden:
dpkg -i libfreeradius2_2.1.8+git_i386.deb
dpkg -i freeradius-common_2.1.8+git_all.deb
dpkg -i freeradius_2.1.8+git_i386.deb
OTRA FORMA DE INSTALACIÓN POR SI ESTA FALLA:
aptitude install libfreeradius2
aptitude install freeradius-common
wget http://ftp.de.debian.org/debian/pool/main/f/freeradius/freeradius_2.1.8+dfsg-1_amd64.deb
dpkg -i freeradius_2.1.8+dfsg-1_amd64.deb
(Para bajarse otra versión de freeradius: http://packages.debian.org/search?keywords=freeradius )
Al terminar de instalar intenta iniciar automaticamente freeradius pero nos da error porque no esta configurado:
dpkg-statoverrides: warning: --update given but /var/run/freeradius does not exist
dpkg-statoverrides: warning: omitiendo «/» final
dpkg-statoverrides: warning: omitiendo «/» final
dpkg-statoverrides: warning: omitiendo «/» final
Starting FreeRADIUS daemon: freeradius failed!
invoke-rc.d: initscript freeradius, action "start" failed.
Paramos el proceso manualmente:
/etc/init.d/freeradius stop
Aunque nos de ese error esta instalado. Ponemos para ver la versión instalada:
freeradius -v
freeradius: FreeRADIUS Version 2.1.8, for host i486-pc-linux-gnu, built on Feb 24 2010 at 19:33:57
Copyright (C) 1999-2009 The FreeRADIUS server project and contributors.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYRIGHT.
Para ver todos los comandos relacionados:
freeradius -h
Usage: freeradius [-d db_dir] [-l log_dir] [-i address] [-n name] [-fsvXx]
Options:
-C Check configuration and exit.
-d raddb_dir Configuration files are in "raddbdir/*".
-f Run as a foreground process, not a daemon.
-h Print this help message.
-i ipaddr Listen on ipaddr ONLY
-n name Read raddb/name.conf instead of raddb/radiusd.conf
-p port Listen on port ONLY
-s Do not spawn child processes to handle requests.
-v Print server version information.
-X Turn on full debugging.
-x Turn on additional debugging. (-xx gives more debugging).
freeradius -f -X
Wed Feb 24 20:00:46 2010 : Error: rlm_eap: SSL error error:02001002:system library:fopen:No such file or directory
Wed Feb 24 20:00:46 2010 : Error: rlm_eap_tls: Error reading certificate file /etc/freeradius/certs/server.pem
Wed Feb 24 20:00:46 2010 : Error: rlm_eap: Failed to initialize type tls
Wed Feb 24 20:00:46 2010 : Error: /etc/freeradius/eap.conf[17]: Instantiation failed for module "eap"
Wed Feb 24 20:00:46 2010 : Error: /etc/freeradius/sites-enabled/inner-tunnel[223]: Failed to find module "eap".
Wed Feb 24 20:00:46 2010 : Error: /etc/freeradius/sites-enabled/inner-tunnel[176]: Errors parsing authenticate section.
Todabia queda configurar: todos los archivos que vamos a configurar estan en /etc/freeradius/
cd /etc/freeradius/







