Radius en Ubuntu

95
Universidad de El Salvador Facultad Multidisciplinaria de Occidente Departamento de Ingeniería y Arquitectura Ciclo II / 2008 Tecnologías Inalámbricas Cátedra: Comunicaciones I Catedrático: Juan Carlos Peña Integrantes: Magaña Dahbura, José Rodrigo Minero Morales, Roberto Orlando Rodríguez Umaña, Víctor Manuel Vásquez Castaneda, Guillermo Rafael Santa Ana, Martes 2 de Diciembre de 2008

description

Implementación de un servidor Radius en Ubuntu

Transcript of Radius en Ubuntu

Page 1: Radius en Ubuntu

Universidad de El Salvador

Facultad Multidisciplinaria de Occidente

Departamento de Ingeniería y Arquitectura

Ciclo II / 2008

Tecnologías Inalámbricas

Cátedra: Comunicaciones I

Catedrático: Juan Carlos Peña

Integrantes: Magaña Dahbura, José Rodrigo

Minero Morales, Roberto Orlando

Rodríguez Umaña, Víctor Manuel

Vásquez Castaneda, Guillermo Rafael

Santa Ana, Martes 2 de Diciembre de 2008

Page 2: Radius en Ubuntu

ÍNDICEConexión y transferencia de archivos vía Bluetooth.........................................3Conexión punto a punto entre dos computadoras vía Wi-Fi.............................10Infraestructura de red tipo BSS con WiFi......................................................13Conectar dos redes cableadas inalámbricamente...........................................26Redistribución de una red Wi-Fi a un segmento de red cableada por medio de iptables...................................................................................................56Protección de redes inalámbricas con FreeRadius..........................................58Portal cautivo para redes inalámbricas públicas con Chillispot..........................80

Page 3: Radius en Ubuntu

Conexión y transferencia de archivos vía Bluetooth

El diagrama del escenario implementado es el siguiente:

Para la implementación del diagrama de red mostrado anteriormente se utilizaron los siguientes dispositivos:

● Una computadora Core Duo 2.0 Ghz● Un dispositivo Bluetooth USB Linksys.

El software utilizado fue el siguiente: ●Sistema operativo GNU/Linux Ubuntu 8.10 Intrepid Ibex.

Los pasos que se siguieron son los siguientes:

En la computadora

Una vez dentro del sistema operativo, simplemente conectamos el dispositivo Bluetooth por medio de conexión USB. La ventaja del sistema operativo utilizado, es que no necesita drivers para poder hacer funcionar tal dispositivo.

Observaremos que al conectar el dispositivo, nos aparecerá un icono de notificación, indicando que hay un dispositivo Bluetooth conectado.

3

Page 4: Radius en Ubuntu

Hacemos clic derecho sobre el icono, y nos vamos a la opción “Preferencias”.

Seleccionamos la opción “Siempre visible”; en la parte de “Nombre amistoso” podemos poner el nombre con el que se conocerá el dispositivo cuando sea visto por otros dispositivos con tecnología Bluetooth., después de estos cambios, hacemos clic en el botón “Cerrar”.

Seleccionamos un archivo el cual se enviara al celular, para esto solamente hacemos clic derecho sobre este, luego seleccionamos la opción “Enviar a...”, luego seleccionamos “Enviar como: Bluetooth (OBEX Push)”, también seleccionamos el dispositivo al cual queremos enviar el archivo. Es de mencionar que nos brinda la opción de empaquetar el archivo, pero esto es opcional.

4

Page 5: Radius en Ubuntu

A manera de ejemplo, enviamos un archivo llamado “Jet.jpg”, para esto hacemos clic derecho sobre el archivo, seleccionamos “Enviar a...”.

Se nos abrirá una ventana, en la cual seleccionamos “Enviar como: Bluetooth (OBEX Push)”, también seleccionamos el dispositivo al cual queremos enviar el archivo, en nuestro caso el dispositivo llamado “Rodrigo:-I”, luego hacemos clic en “Enviar”.

5

Page 6: Radius en Ubuntu

En caso que falle, como fue nuestro caso, ingresamos nuevamente a las preferencias de Bluetooth, luego hacemos clic en el botón con el signo +, este corresponde a la sección “Dispositivos conocidos”.

Nos aparecerá un asistente, a lo cual hacemos clic en “Adelante”.

6

Page 7: Radius en Ubuntu

Seleccionamos el dispositivo a configurar, es decir, el dispositivo al cual le enviaremos el archivo, en nuestro caso el dispositivo llamado “Rodrigo:-I”, luego clic en “Adelante”.

El ping que aparece debe de ser ingresado en el teléfono donde enviaremos el archivo, en nuestro caso particular el ping “3460”, este numero no siempre es el mismo.

7

Page 8: Radius en Ubuntu

Cuando el ping haya sido ingresado en el teléfono, nos aparecerá lo siguiente, lo cual nos dice que la configuración ha sido exitosa, a lo cual hacemos clic en “Cerrar”.

Aparecerán los dispositivos que están emparejados.

8

Page 9: Radius en Ubuntu

Ahora al querer enviar el archivo, si sera posible, siempre y cuando en el teléfono se acepte la petición de recepción de archivo, para enviarlo hacemos los primeros pasos descritos anteriormente.

Con esto, la transferencia habrá concluido satisfactoriamente.

En el celular

● Activamos la opción de Bluetooth.

● Cuando nos envíe un mensaje pidiéndonos una clave, introducimos la que nos proporcione el usuario de la computadora que nos enviará el archivo.

● Nos avisará que se ha emparejado el dispositivo, en nuestro caso la computadora con el celular, aceptamos.

● Luego, cuando la computadora nos envíe el archivo, aparecerá otro mensaje preguntándonos si aceptamos la recepción del archivo, a lo cual aceptamos.

● Esperamos a que se transfiera el archivo al celular.

Con los pasos mencionados anteriormente, estaremos realizando la conexión y transferencia de archivos por medio de Bluetooth. En nuestra experiencia propia, constatamos que era posible enviar archivos a distancias de hasta 50 metros entre un dispositivo y otro.

9

Page 10: Radius en Ubuntu

Conexión punto a punto entre dos computadoras vía Wi-Fi

El esquema implementado es el siguiente:

Para la implementación del diagrama de red mostrado anteriormente se utilizaron los siguientes dispositivos:

● Dos computadoras: una Core Duo 2.0 Ghz con soporte Wi-Fi y una Turion 64 X2 1.9 Ghz con soporte Wi-Fi.

El software utilizado fue el siguiente:● Sistema operativo GNU/Linux Debian Lenny (Testing).

Antes de empezar a explicar los pasos que se llevaron a cabo, hay que mencionar que asumiremos que una computadora tendra el nombre de “Debian”, esta sera la que se configurara en modo Ad-Hoc (este es el nombre con el que se le conoce al modo de conectarse inalambricamente punto a punto), la otra maquina sera el cliente, es decir la que se conectara a la maquina “Debian”.

Los pasos que se siguieron para tal implementación fueron los siguientes:

En la maquina “Debian”.

Entramos a la consola o terminal, para eso nos vamos al menú Aplicaciones – Accesorios – Terminal de <<Root>>.Esto se hace asi, ya que para poder configurar la tarjeta wireless se necesitan permisos de root, pero también se puede ingresar como usuario normal en la consola y luego acceder como root.

10

Page 11: Radius en Ubuntu

Introducimos los siguientes comandos:# killall NetworkManager

# ifconfig wlan0 down

# iwconfig wlan0 essid Debian mode Ad-Hoc channel 6

# ifconfig wlan0 192.168.6.1 netmask 255.255.255.0 up

Ahora bien, se explicara en que consisten los comandos ingresados, así como también cada uno de los parámetros.

killall: con este comando estamos matando el proceso NetworkManager, esto lo hacemos para que no interfiera con la conexión.

iwconfig: este comando permite configurar los dispositivos inalámbricos disponibles en la computadora.

wlan0: es la interfaz o dispositivo el cual se esta configurando.

essid: con esto estamos indicando el nombre que tendrá nuestra red punto a punto, en nuestro caso el nombre es “Debian”, el nombre puede ser cualquiera.

mode: indica el modo de operación de la interfaz, en este caso lo establecemos en el modo “Ad-Hoc”, el cual significa que sera una red punto a punto, importante mencionar que siempre que se lleve a cabo conexiones de este tipo, tendrá que estar en modo “Ad-Hoc”.

channel: acá establecemos el canal por el cual trabajará la red, en nuestro caso lo establecemos en el canal 6, podemos seleccionar canal desde el 1 hasta el 11.

ifconfig: este comando permite configurar las interfaces de red disponibles en la computadora.192.168.1.1: es la dirección IP que le estamos asignando a la interfaz.

netmask: con esta opción establecemos la mascara de sub-red, en nuestro caso la mascara es 255.255.255.0.

up: este parámetro indica que se esta activando la interfaz.

down: este parámetro indica que se esta desactivando la interfaz.

11

Page 12: Radius en Ubuntu

Ahora, para un mejor entendimiento, explicaremos cada una de esas lineas, para saber que es lo que hacen en conjunto.

# killall NetworkManager

Estamos matando el proceso NetworkManager.

# ifconfig wlan0 down

Se esta bajando la interfaz wireless, es decir la estamos desactivando.

# iwconfig wlan0 essid Debian mode Ad-Hoc channel 6

Estamos estableciendo una nueva conexión del modo “Ad-Hoc”, con essid “Debian” y que estará emitiendo por el canal 6.

# ifconfig wlan0 192.168.6.1 netmask 255.255.255.0 up

Ahora se esta levantando la interfaz wireless, además estamos asignando una IP así como su respectiva mascara de subred.

En la maquina cliente.

Bastara con seleccionar la opción “Conectarse a otra red inalámbrica” donde pedirá el essid y el tipo de protección. Ponemos el essid configurado en el equipo anterior (en nuestro caso Debian) y en tipo de seguridad seleccionamos “Ninguna”.

Luego, establecemos los parámetros de red en la terminal de la siguiente manera:

# ifconfig wlan0 192.168.6.2 netmask 255.255.255.0 up

Algo importante que hay que destacar es que ambas direcciones IP (es decir de las maquinas que se conectaran vía Wi-Fi) tienen que estar dentro del mismo rango, esto incluye la misma mascara de subred.

12

Page 13: Radius en Ubuntu

Infraestructura de red tipo BSS con WiFi

El esquema de red implementado se muestra a continuación:

Para la implementación del diagrama de red mostrado anteriormente se utilizaron los siguientes dispositivos:

● Una computadora Core Duo 2.0 Ghz● Dos laptops clientes: 2 HP con sistema operativo GNU/Linux.● Un router inalámbrico Linksys WRK54G.

El software utilizado fue el siguiente:● Sistema operativo GNU/Linux Debian Lenny (Testing).● Navegador web Iceweasel.

Para dicha implementación, se pretendió minimizar la vulnerabilidad de la red, en este caso configuramos claves de acceso, las cuales son tanto WEP como WAP, además filtro al acceso de ciertas computadoras por medio de sus dirección MAC y también como se activa o desactiva el DHCP.

13

Page 14: Radius en Ubuntu

Los pasos para tal implementación se muestran a continuación:

Conectar la computadora con el router, esta computadora se utilizara para la configuración del router, para la conexión se necesita un cable recto, dicho cable tiene que ir un extremo hacia un puerto de la LAN de dicho router, y el otro extremo en la tarjeta de red de la computadora. Esto también es posible hacerlo conectándonos por medio de Wi-Fi con el router.

Una vez que se halla establecido la conexión, vamos al navegador, y en la barra de dirección digitamos la dirección IP 192.168.1.1 (esta es la dirección por defecto de estos routers). En caso de que sea un router que ya se haya modificado, es posible que la dirección IP no sea la mencionada anteriormente.

Nos preguntara nombre de usuario y contraseña, en ambos campos ingresamos “admin”.

Ahora bien, ya estamos dentro de la configuración web del router, explicaremos cada una de las partes a configurar en la parte de configuración de DHCP.

14

Page 15: Radius en Ubuntu

Local DHCP Server: Con Enabled se activará el servicio DHCP, con Disabled se desactivará el servicio.

Start IP Address: Nos permite modificar el ultimo octeto de la dirección IP, basándose en la direccion del router, acá se le especifica a partir de que dirección va a empezar a asignar direcciones IP, en nuestro caso a partir de la 100.

15

Page 16: Radius en Ubuntu

Number of Address: Se asigna el numero máximo de clientes, es decir que tantas direcciones IP se asignarán, en nuestro caso un máximo de 50 clientes o direcciones IP.

DHCP Address Range: Solamente nos muestra el rango en el cual serán asignadas las direcciones IP, en nuestro caso el rango es desde 192.168.1.100 hasta 192.168.1.149.

Client Lease Time: Acá se asigna cuanto tiempo se le asignará una dirección IP a los equipos conectados al router, después de este tiempo, la dirección IP cambiará, este tiempo se especifica en minutos, el valor 0 significa un día, en nuestro caso lo dejamos con este ultimo valor.

DNS 1...DNS 3: Aquí podemos agregar las direcciones IP de los equipos que proporcionarán el servicio de “Servidores de Nombres de Dominio”.

WINS: Convierte nombres NetBIOS a direcciones IP, nosotros la dejamos en blanco.

Cuando queramos guardar los cambios nos vamos hasta el botón de abajo que dice “Save Settings”, si queremos cancelar los cambios nos vamos a “Cancel Changes”. En nuestro caso particular, la parte de DHCP la dejamos como viene por defecto.

Para la seguridad del servicio de Wireless, nos vamos a la pestaña “Wireless”.

16

Page 17: Radius en Ubuntu

Ya ingresado en la pestaña “Wireless”, estaremos dentro de “Basic Wireless Settings”, en el cual tenemos algunas opciones, las cuales se explican a continuación:

Wireless Network Mode: Asigna con que estándar de wireless trabajará el router, tiene algunas opciones las cuales son:

Disabled: no trabajará con ningún estándar, es decir que no proporcionará servicios wireless.

Mixed: trabajará con los estándares 802.11B y 802.11G simultáneamente, es decir que tanto las maquinas que soporten el estándar B como el G podrán conectarse con el router. En nuestro caso, dejamos activada esta opción.

B-Only: solamente trabajará con el estándar 802.11B, significa que las maquinas que no soporten este estándar no podrán conectarse al router.

G-Only: solamente trabajará con el estándar 802.11G, significa que las maquinas que no soporten este estándar no podrán conectarse al router.

Dentro de Wireless Network Mode, estas son las opciones disponibles, es de notar que si seleccionamos Disabled, se desactivaran las otras opciones disponibles.

Ahora se explican las siguientes opciones disponibles.

Wireless Network Name(SSID): sirve para especificar el nombre con el cual será identificado el router cuando este prestando señal inalámbrica. Nosotros dejamos el nombre “Comunicaciones” en esta parte.

Wireless Channel: se especifica el canal por el cual se prestarán los servicios inalámbricos, van desde el canal 1 hasta el canal 11. En esta parte dejamos el canal 6.

17

Page 18: Radius en Ubuntu

Wireless SSID Broadcast: con Enabled se enviará un broadcast para que todas las maquinas se den cuenta de la existencia del router, con Disabled es lo contrario, ya que no se enviara ningún broadcast. En nuestro caso, lo dejamos con la opción “Enabled”.Ahora, para configurar la seguridad nos vamos a la opcion “Wireless Security”, la cual esta en la parte superior.

18

Page 19: Radius en Ubuntu

Por defecto solamente nos aparece una opción, la cual se explica a continuación.

Security Mode: se especifican los modos de seguridad a utilizar, este posee varias opciones, pero las que nos interesan son solamente dos, la seguridad WEP y WPA, se explicarán ambas, pero antes mencionaremos la que trae por defecto.

Disabled: no tiene ninguna seguridad, es decir que cualquiera que desee conectarse podrá hacerlo sin ningún problema, ya que no pedirá ninguna clave.

19

Page 20: Radius en Ubuntu

Modo WPA

WPA Pre-Shared Key: nos proporciona seguridad con claves del tipo WPA, cuando esta opción esta activada, nos aparecerán algunas opciones nuevas, las cuales se explican a continuación. Primeramente dejamos activada esta opción.

WPA Algorithms: solamente proporciona el algoritmo TKIP, el cual sirve para poder encriptar la clave cuando viaje del cliente al router. En nuestro caso, ya que solo hay esta opción, la dejamos seleccionada.

WPA Shared Key: es la clave que tendrá que ingresar el cliente cuando quiera conectarse con el router, el tamaño de la clave va desde los 8 hasta los 32 caracteres. Nosotros dejamos como la clave, la palabra “comunicaciones”.

Group Key Renewal: especifica cada cuanto tiempo cambiara la manera de encriptar la clave, esto es en segundos. Esta opción en nuestro caso la dejamos como viene por defecto, es decir con el valor de 3600 segundos.

Con esto se concluyen las opciones disponibles para el método de seguridad WPA.

WPA RADIUS: proporciona seguridad por medio del protocolo de autenticación RADIUS. En nuestro caso no lo utilizamos.

Ahora bien el siguiente método de seguridad que nos interesa es el WEP.

20

Page 21: Radius en Ubuntu

Modo WEP

WEP: nos proporciona seguridad con claves del tipo WEP, cuando esta opción esta activada, nos aparecerán algunas opciones nuevas, las cuales se explican a continuación. Después de haber aplicado WPA, utilizamos este método, es decir que lo dejamos activado.

Wireless Encryption Level: proporciona el tamaño que tendrán las claves, tiene dos opciones las cuales son:

64 bits 10 hex digits: claves con un tamaño de 10 dígitos.

21

Page 22: Radius en Ubuntu

128 bits 26 hex digits: claves con un tamaño de 26 dígitos.

Nosotros utilizamos las claves con tamaño de 10 dígitos, es decir la de 64 bits.

Passphrase fot keys: se ingresa una frase, y a partir de esta se generaran cuatro claves de tipo WEP, para esto hay que hacer clic en el botón “Generate”. Nuestra frase ingresada fue “comunicaciones”.

Default Key: hay opciones desde la 1 hasta la 4, especifica cual clave pedirá el router cuando un cliente quiera conectarse, por ejemplo si esta en el numero 1 significa que utilizara la clave numero 1 de las cuatro existentes. Nosotros utilizamos la key numero 1.

WEP Key 1 ... WEP Key 4: es cada una de las claves generadas a partir de la frase introducida, depende que clave se tenga seleccionada en la opción anterior, se tendrá que utilizar alguna de estas claves para que el router la pida.

Con esto, se han finalizado las opciones de configuración de la seguridad de WEP y WPA.

Ahora pasaremos a explicar como configurar la denegación de acceso al router por medio de las MAC, para esto nos vamos a la opción “Wireless Network Access”, acá nos aparecerán las siguientes opciones:

22

Page 23: Radius en Ubuntu

MAC Filter: presenta la opción Disabled, la cual significa que no se denegará ninguna petición de conexión por medio de su MAC; la otra opción es Enabled, con lo cual si podemos denegar acceso por medio de las MAC. Si se esta en Disabled, las demás opciones aparecen desactivadas, si se esta en Enabled, las siguientes opciones se activaran, estas se explicaran a continuación. Nosotros con la intención de denegar MAC'S, la dejamos en “Enabled”.

Filter Mode: posee dos opciones, las cuales son:

Allow: significa que las MAC que aparecen mas abajo, se les permitirá el acceso para conectarse al router, es decir que las MAC que no aparezcan no se podrán conectar. Iniciamos dejando esta opción activada, para permitir MAC'S.

23

Page 24: Radius en Ubuntu

Deny: significa que a las MAC que aparecen mas abajo, se les denegará el acceso para conectarse al router, es decir que las MAC que no aparezcan si se podrán conectar. Después de haber permitido MAC'S, dejamos activada esta opción para poder denegarlas.

Accces List: nos daremos cuenta que aparecen desde MAC 01 hasta MAC 20, acá se ingresan las direcciones MAC que queremos ya sea permitir o denegar, dependiendo de que opción se halla elegido mas arriba. Este router tiene una capacidad de hasta 20 direcciones MAC. En nuestro caso particular, utilizamos las primeras dos casillas de MAC Address, esto con la finalidad de poder permitirlas y luego denegarlas.

Select MAC Address From Networked Computers: lo único que hace es mostrarnos los clientes que están actualmente conectados al router vía wireless, con la opción de poder obtener su MAC para poder denegarla o permitirla. Una vez que los clientes estaban conectados al router, con este botón obtuvimos sus direcciones IP así como también sus MAC Address, después marcamos donde dice “Enable MAC Filter”, esto con la intención de que luego aparecieran en la tabla de las MAC que se pueden permitir o denegar, es de esta manera como obtuvimos las MAC de los clientes para poder permitirlos y luego denegarlos.

24

Page 25: Radius en Ubuntu

Con lo explicado anteriormente, ya podemos configurar nuestro router para que sirva de Acces Point y podamos conectarnos a este, obteniendo direcciones por medio de DHCP, además podremos aplicar seguridad tanto con WPA como con WEP, también podremos hacer la denegación por medio de las direcciones MAC.

25

Page 26: Radius en Ubuntu

Conectar dos redes cableadas inalámbricamente

Nuestro esquema de trabajo es el siguiente:

Para la implementación del diagrama de red mostrado anteriormente se utilizaron los siguientes dispositivos:

● Dos computadoras: una Core Duo 2.0 Ghz y otra Turion 64 1.9 Ghz.● Dos routers inalámbricos: un Thomson ST580 y un Thomson ST585 V6.

El software utilizado fue el siguiente:● Sistema operativo GNU/Linux Debian Lenny (Testing).● Navegador web Iceweasel.

Es importante mencionar que para que esto se pueda llevar a cabo, ambos routers tiene que soportar el modo WDS, el cual es indispensable para que la conexión se lleve a cabo.Los pasos son los siguientes:

Para el modelo ST580

Conectar la computadora con el router, en esta computadora se realizará la configuración. Para la conexión se necesita un cable recto, dicho cable tiene que conectarse a un puerto de la LAN del router y el otro en la tarjeta de red de la computadora.

26

Page 27: Radius en Ubuntu

Una vez que se halla establecido la conexión, vamos al navegador de nuestra preferencia, y en la barra de dirección digitamos la dirección ip 192.168.1.254 (esta es la dirección por defecto de este modelo).Nos preguntara nombre de usuario y contraseña, introducimos estos campos.

Estaremos en la página principal de router, nos vamos a la opción “SpeedTouch”.

27

Page 28: Radius en Ubuntu

Acá nos vamos a la opción “Set Up”.

Nos aparecerá un wizard para configurar el router, hacemos clic en “Next >”

28

Page 29: Radius en Ubuntu

Seleccionamos “Bridge”.

Los dejamos como esta y hacemos clic en Next.

29

Page 30: Radius en Ubuntu

Dejamos activado el DHCP, luego clic en Next.

Digitamos nombre de usuario y dos veces la contraseña, en nuestro caso tanto el usuario como contraseña quedo en “admin”, pero esto es opcional.

30

Page 31: Radius en Ubuntu

Clic en Start.

Esperamos a que el router se configure.

31

Page 32: Radius en Ubuntu

Ahora nos pedirá usuario y contraseña.

Hacemos clic en Finish.

32

Page 33: Radius en Ubuntu

Ahora bien, nos vamos a la opción “Home Network”, luego seleccionamos “Interfaces”.

Nos vamos a “WLAN:...”, el cual nos mostrara información sobre la configuración de este servicio.

33

Page 34: Radius en Ubuntu

Nos vamos a “Configure”, y configuramos los siguientes parámetros como se muestran a continuación, pero antes de esto, es importante tomar en cuenta lo siguiente:

1.Poner los routers a emitir por el mismo canal. Para ello colocaremos la opción “Channel Selection” en Manual y después elegiremos el canal en el desplegable “Channel”.

2.“Broadcast Network Name” debe estar activado. Esto hará que se difunda el nombre de la red wireless, al menos hasta que hayamos configurado la interconexión.

3.“Allow New Devices” debe estar inicialmente en allowed.

Podremos usar encriptación WEP pero no WPA. Acá es importante recalcar que la contraseña que se establezca en este router, debe ser la misma que poseerá el otro router con el cual nos conectaremos inalámbricamente.

34

Page 35: Radius en Ubuntu

Después de haber guardado los cambios, observaremos lo mismo en el resumen que se muestra.

Tenemos que irnos a la opción “Configure WDS”, aparecerán las redes inalámbricas detectadas por el router, lo más normal es que no aparezca ninguna, para poder buscar hacemos clic en la opción “Scan for wireless accespoints”, pero ojo, no hay que desmarcar la opción “WDS Enabled”.

35

Page 36: Radius en Ubuntu

Nos dará una advertencia, hacemos clic en Aceptar.

36

Page 37: Radius en Ubuntu

Esperamos a que se llene la barra.

Aparecerán las redes detectadas, en nuestro caso marcamos la casilla que corresponde a “Comunicaciones2” y hacemos clic en “Apply”.

37

Page 38: Radius en Ubuntu

Ahora observaremos los cambios realizados, es decir que aparecerá la red que seleccionamos en el estado “Yes”.

Ahora hacemos clic en la opción “Interfaces”, luego clic en la opción “LocalNetwork”.

38

Page 39: Radius en Ubuntu

Nos aparecerá información relativa a la IP del router, así como también al servicio DHCP, en nuestro caso lo único que se hizo fue cambiar los rangos de IP, para eso nos vamos a la opción “Configure”. Es importante mencionar que esto de las IP'S es personal, ya que se puede dejar como viene por defecto, y no habrá ningún problema, nosotros lo hicimos asumiendo que habrá un máximo de 50 host conectados a la red.

39

Page 40: Radius en Ubuntu

Acá hacemos clic en la parte que dice “Edit” del “DHCP Pools”.

En “Start Address” cambiamos el ultimo octeto a 100, además tenemos que irnos a la opción “End Address” y cambiar el ultimo octeto a 149; lo que estamos haciendo es especificando a partir de qué dirección IP asignará por medio de DHCP, así como también hasta que dirección IP asignará, nótese que estamos asumiendo un máximo de 50 direcciones IP.

40

Page 41: Radius en Ubuntu

Ahora bien, ya podemos observar los cambios surgidos en el DHCP.

Con esto se ha finalizado la configuración del primer router.

41

Page 42: Radius en Ubuntu

Para el modelo ST585 V6

Conectar la computadora con el router, en esta computadora se realizará la configuración. Para la conexión se necesita un cable recto, dicho cable tiene que conectarse a un puerto de la LAN del router y el otro en la tarjeta de red de la computadora.

Una vez que se ha establecido la conexión, vamos al navegador de nuestra preferencia, y en la barra de dirección digitamos la dirección ip 192.168.1.1 (esta es la dirección por defecto de este modelo).

Nos preguntará nombre de usuario y contraseña, ingresamos dichos campos.

42

Page 43: Radius en Ubuntu

Estaremos en la página principal de router, nos vamos a la opción “SpeedTouch”.

Acá nos vamos a la opción “Set Up”.

43

Page 44: Radius en Ubuntu

Ingresaremos a un wizard, en esta parte hacemos clic en el botón “Next >”.

Ahora seleccionamos el modo “Router PPP” y “Next >”.

44

Page 45: Radius en Ubuntu

Dejamos la opción “VPI” como esta y hacemos clic en “Next >”.

Ingresamos usuario y contraseña de la cuenta de Internet de la que nos haya provisto nuestro proveedor de Internet.

45

Page 46: Radius en Ubuntu

Ingresamos el nombre de usuario y contraseña que se utilizara para poder ingresar al router posteriormente, en nuestro caso lo dejamos “admin” y “admin”.

Nos mostrará un resumen de lo que hemos configurado, hacemos clic en “Start”. Esperamos a que se configure, luego hacemos clic en “Finish”.

46

Page 47: Radius en Ubuntu

Ahora bien, nos vamos a la opción “Home Network”.

Seleccionamos la opción que dice “WLAN: …” y nos aparecerá un resumen de la configuración Wireless actual.

47

Page 48: Radius en Ubuntu

Nos vamos a “Configure”, y configuramos los siguientes parámetros como se muestran a continuación, pero antes de esto, es importante tomar en cuenta lo siguiente:

1.Poner los routers a emitir por el mismo canal. Para ello colocaremos la opción “Channel Selection” en Manual y después elegiremos el canal en el desplegable “Channel”.

2.“Broadcast Network Name” debe estar activado. Esto hará que se difunda el nombre de la red wireless, al menos hasta que hayamos configurado la interconexión.

3.“Allow New Devices” debe estar inicialmente en allowed.

Podremos usar encriptación WEP pero no WPA. Acá es importante recalcar que la contraseña que se establezca en este router, debe ser la misma que poseerá el otro router con el cual nos conectaremos inalámbricamente.

Cuando hagamos clic en “Apply” veremos un resumen de los cambios efectuados en la configuración de wireless.

48

Page 49: Radius en Ubuntu

Ahora bien, hacemos clic en la opción que se encuentra en la parte de abajo que dice “Configure WDS”, en dicha parte nos aparecerán las redes detectadas inalámbricamente por el router, pero lo más normal es que no aparezca ninguna.

49

Page 50: Radius en Ubuntu

Para poder detectar las redes inalámbricas, hacemos clic en la opción “Scan for wireless accesspoints” pero sin desmarcar “WDS Enabled”, con esto nos dará una advertencia, hacemos clic en “Aceptar”.

Esperamos a que busque las redes disponibles, en este paso aparecerá una barra, la cual hay que esperar que se llene.

Ahora nos aparecerán las redes que están disponibles, en nuestro caso seleccionamos la llamada “Comunicaciones1”, ya que en el otro router, definimos ese nombre, y será con dicho router con el que nos conectaremos. Para poder seleccionarlo solamente marcamos el cuadro que aparece debajo de la columna “WDS”, luego hacemos clic en “Apply”.

50

Page 51: Radius en Ubuntu

Observaremos los cambios aplicados, con esto nos indica que ya estamos conectados con el router con essid “Comunicaciones1”.

51

Page 52: Radius en Ubuntu

Ahora nos vamos a “Interfaces”, en dicha parte tendremos que seleccionar “LocalNetwork”.

Nos mostrara información relativa a la red local, hacemos clic en “Configure”.

52

Page 53: Radius en Ubuntu

Acá podremos configurar aspectos relativos a la IP del router, DHCP.

Lo primero que haremos es quitar la IP 192.168.1.254, ya que si nos damos cuenta, es la misma dirección que el otro router que configuramos anteriormente, para hacer eso solamente hacemos clic en la opción “Delete” correspondiente a dicha dirección, pero cuando lo hagamos nos dará una advertencia, a lo cual hacemos clic en “Aceptar”.

53

Page 54: Radius en Ubuntu

Observaremos los cambios efectuados, Ahora desactivamos el servicio DHCP, ya que el otro router al cual nos conectaremos proporcionara dichos servicios, para eso hacemos desmarcamos el cuadro que corresponde a “Use DHCP Server” y hacemos clic en “Apply”. Con esto nos enviara a otra página en la cual volvemos a hacer clic en “Apply”, pero fijándonos que este desmarcada la opción correspondiente a DHCP.

Nos dará una advertencia, a la cual hacemos clic en “Aceptar”.

54

Page 55: Radius en Ubuntu

Ahora observaremos los cambios realizados, luego hacemos clic en “Configure”.

Con esto, el router ST585 V6 ya está correctamente configurado para poder conectarse con el ST580.

Para poder comprobar la conectividad, nos conectaremos a cualquiera de los routers, nos daremos cuenta que en ambos routers se nos asignará dirección IP, aunque el DHCP solamente este en un router; ya conectados, podremos acceder a ambos routers, a pesar de que estemos conectados en un solo router, también, si hay otras maquinas conectadas al router, podremos hacer ping a las otras maquinas, y si estas disponen de un servidor como apache, podremos acceder a este por medio de su dirección IP.

Con esto hemos concluido la conexión de dos redes de manera inalámbrica.

55

Page 56: Radius en Ubuntu

Redistribución de una red Wi-Fi a un segmento de red cableada por medio de iptables

Utilizando una computadora con al menos una interfaz ethernet y una Wi-Fi, se redistriuye la red inalámbrica a un segmento de red cableada. Esto se logra haciendo uso de reglas de iptables y habilitando el forwarding de IP para que el equipo haga NAT, siendo capaz de enrutar.

En nuestro caso, creamos un script interpretable con bash con las reglas de ip tables para posteriormente correrlo. Creamos un archivo en blanco con nano:

# nano setIptables

El script debe poseer la siguiente estructura:

En la primer parte se realiza la limpieza de las iptables para luego establecer una política por defecto en la que no se deniegue nada, es decir, se acepte todo.Luego se indica que se hará NAT (Network Adress Tranlation) para la red 192.168.5.0 con máscara de subred 255.255.255.0 y que la interfaz de salida será la wlan0.

Por último se escribe un 1 sobre el archivo ip_forward, lo que es equivalente a un verdadero para la opción de reenvío de IP.

56

Page 57: Radius en Ubuntu

Ya teniendo el script se debe correr con permisos de súper usuario. Asumiendo que el script se encuentra dentro del directorio de trabajo, le agregamos permisos de ejecución para el súper usuario y su grupo:

# chmod 770 setIptables

Ahora nos conectamos a la red Wi-Fi. Cuando la conexión esté establecida, tendremos que asignarle una dirección IP a la interfaz Ethernet, pudiendo variar según el caso:

# ifconfig eth0 192.168.5.1 netmask 255.255.255.0 up

Hecho esto, ya podemos redistribuir la red inalámbrica a una red cableada y poder de esta forma compartir recursos.

57

Page 58: Radius en Ubuntu

Protección de redes inalámbricas con FreeRadius

Autenticación EAP/PEAP para FreeRadius

EAPExtensible Authentication Protocol (EAP) es una autenticación framework usada habitualmente en redes inalámbricas. EAP una estructura de soporte, no un mecanismo específico de autenticación. Provee algunas funciones comunes y negociaciones para el o los mecanismos de autenticación escogidos. Estos mecanismos son llamados métodos EAP, de los cuales se conocen actualmente unos 40. Los métodos modernos capaces de operar en ambientes inalámbricos incluyen EAP-TLS, EAP-SIM, EAP-AKA, PEAP, LEAP y EAP-TTLS.

PEAPProtected Extensible Authentication Protocol (PEAP) es un método para transmitir de manera segura información de autenticación, incluyendo contraseñas, sobre redes cableadas e inalámbricas. Hay que tener en cuenta que PEAP no es un protocolo de encriptación, sino que como otros tipos EAP solo autentica un cliente a una red.

Vamos a configurar FreeRadius para un escenario como este:

58

Page 59: Radius en Ubuntu

1. Un nodo inalámbrico(suplicante) intenta conectarse a nuestra red inalámbrica, y nuestro punto de acceso(autenticador) se encarga de pedirle al suplicante sus credenciales.

2. Luego de recibirlas, se las envía a nuestro servidor de autenticación, que se encarga validar su identidad y de acuerdo a eso permitirle o negarle el ingreso a nuestra red.

3. Ya con el suplicante validado, éste puede acceder a nuestra red y utilizar todos los recursos que ésta tenga disponible(ej. Internet).

Para la implementación del servidor de autenticación FreeRadius se utilizó lo siguiente:

● Una laptop HP Pavilion con AMD Turion X2 1.9GHz y 2GB de RAM como servidor de autenticación.

● Un router Linksys WRK54G como nuestro punto de acceso.

● Una laptop HP Pavilion con Intel Core Duo 2GHz y 1GB de RAM como nodo inalámbrico o suplicante.

El software utilizado fue el siguiente:

● Debian Lenny (Testing), como servidor de autenticación y como suplicante.

● FreeRadius 2.1.1

● MySQL 5.0

● OpenSSL

● Windows Vista, como suplicante

59

Page 60: Radius en Ubuntu

Instalación de MySQL

FreeRadius puede trabajar con MySQL como base datos para los usuarios que se intenten autenticar. Para instalar MySQL en un sistema operativo basado en Debian, como root ingresemos el siguiente comando en una terminal:

# apt-get install mysql-server

Con esto habrá instalado MySQL en su computadora.

Instalación de OpenSSL

Necesitamos tener instalado OpenSSL antes de instalar FreeRadius, ya que si no se encuentra instalado los módulos para EAP/PEAP de FreeRadius no se instalarán. Para instalar OpenSSL en un sistema operativo basado en Debian, como root ingresemos el siguiente comando en una terminal:

# apt-get install openssl

Con esto habrá instalado OpenSSL en su computadora.

60

Page 61: Radius en Ubuntu

Instalación de FreeRadius

1. Descargar el código fuente de http://freeradius.org/download.html. Al momento de la elaborar este manual la última versión disponible es la 2.1.1. En el código fuente se incluyen muchos módulos, entre ellos el módulo necesario para que FreeRadius trabaje conjuntamente con MySQL.

2. Luego de descargar el código fuente, se procede a descomprimirlo e instalarlo. En una terminal, ubíquese en el directorio donde descargó la fuente, y como root ejecute los siguiente comandos:

# tar xvf freeradius-server-2.1.1.tar.gz # cd freeradius-server-2.1.1 # ./configure# make# make install

En algunos casos es posible que necesite agregarle opciones a ./configure si ha instalado MySQL en una ubicación no estandar, o si quiere instalar FreeRadius en una ubicación distinta a la estandar. En nuestro caso no utilizamos ninguna opción. Los archivos de configuración de FreeRadius se instalan por defecto en la ubicación /usr/local/etc/raddb.

3. Si la instalación fue exitosa, pruebe que el servidor FreeRadius este funcionando correctamente con el siguiente comando:

61

Page 62: Radius en Ubuntu

Si todo está configurado correctamente, luego de presionar Enter debería ver una pantalla similar a la siguiente:

Si recibió el mensaje “Ready to process requests” como en la imagen de anterior, FreeRadius se ha instalado correctamente.

62

Page 63: Radius en Ubuntu

Configuración de FreeRadius

Vamos a configurar FreeRadius para que trabaje conjuntamente con MySQL. Para esto tenemos que crear la base de datos que usará FreeRadius, crear un usuario para conectarse a MySQL, agregar un usuario de prueba en la base de datos para conectarse a FreeRadius y por último configurar FreeRadius para que trabaje con esta base de datos.

En la siguiente imagen se pueden ver los comandos necesarios para crear la base de datos llamada “radius” y crear un usuario con el mismo nombre y contraseña “radpass”. Luego llenamos la base de datos a partir del esquema que trae FreeRadius:

Ahora crearemos un usuario para probar la autenticación con FreeRadius, los comandos necesarios se muestran a continuación:

63

Page 64: Radius en Ubuntu

Ahora configuraremos FreeRadius para que trabaje con la base de datos de MySQL que acabamos de crear. Vayamos a configurar el archivo /usr/local/etc/raddb/sql.conf, en la sección sql configuremos los parámetros de conexión a MySQL:

server = "localhost" ← el servidor donde está la baselogin = "radius" ← el usuario de MySQLpassword = "radpass" ← la contraseña del usuarioradius_db = "radius" ← la base de datos

También tenemos que configurar el archivo /usr/local/etc/raddb/clients.conf. Este archivo contiene configuraciones para los clientes o redes de clientes que se conectaran a nuestro servidor FreeRadius. Ahora configuraremos al cliente “localhost”, para esto revisamos en la sección client localhost el parámetro secret y lo dejamos de la siguiente manera :

client localhost {

secret = s3cr3t0...

}

64

Page 65: Radius en Ubuntu

Otro archivo que configuraremos es /usr/local/etc/raddb/sites-available/default. Acá configuraremos las siguientes secciones, asegurándonos de tener descomentado el parámetro sql en cada una de ellas:

authorize {

preprocess

chap

mschap

suffix

eap

sql

}

accounting {

detail

radutmp

sql

}

session {

radutmp

sql

}

post-auth {

sql

}

65

Page 66: Radius en Ubuntu

En este momento efectuaremos una prueba con el usuario que creamos en la base de datos de MySQL. Para esto volvamos a correr el comando radiusd -X, y en otra terminal usaremos el comando radtest, que recibe como parámetros nombre contraseña host puerto secreto. Escribamos lo siguiente:

Si recibimos el mensaje Access-Accept quiere decir que nuestro usuario ha sido autenticado exitosamente por nuestro servidor FreeRadius.

66

Page 67: Radius en Ubuntu

Creación de certificados

Necesitamos crear certificados para utilizar EAP/PEAP. Para esto necesitamos en primer lugar tener instalado OpenSSL. Para crear los certificados nos ubicamos en una terminal en /usr/local/etc/raddb/certs. FreeRadius viene con unos certificados creados por defecto, debemos eliminar estos primero:

Ahora procedamos a crear el certificado de root. Escriba nano ca.cnf y presione Enter, le aparecerá una pantalla similar a la siguiente:

Edite los campos "input_password" y "output_password" que será la contraseña del certificado CA.

Edite la sección [certificate_authority] para que tenga los valores correctos para su país, estado, etc.

67

Page 68: Radius en Ubuntu

Luego con el comando make ca.pem se creará el certificado CA, y con el comando make ca.der se creará el formato DER del certificado que después puede ser importado a Windows.

Continuamos con la creación del certificado de servidor. Escriba nano server.cnf

Edite los campos "input_password" y "output_password" con la contraseña que será la del certificado del servidor.

Edite la sección [servidor] con los valores correctos para su país, estado, etc. Asegúrese que el campo commonName de este archivo sea distinto al de commonName del certificado CA.

Con el comando make server.pem se crea el certificado de servidor. Para crear un certificado de petición de firma para el certificado de servidor, ingrese el comando make server.csr.

68

Page 69: Radius en Ubuntu

Abra el archivo /usr/local/etc/raddb/eap.conf y asegúrese que los parámetros siguientes tengan los valores que se muestran a continuación:

eap {default_eap_type = peap...

}

tls {certdir = ${confdir}/certs cadir = ${confdir}/certsprivate_key_password = s3cr3t0 private_key_file = ${certdir}/server.pemcertificate_file = ${certdir}/server.pemCA_file = ${cadir}/ca.pemdh_file = ${certdir}/dh random_file = ${certdir}/random...

}

peap {default_eap_type = mschapv2...

}

Abra el archivo /usr/local/etc/raddb/modules/mschap y asegúrese que los parámetros siguientes tengan los valores que se muestran a continuación:

mschap {use_mppe = yesrequire_encryption = yesrequire_strong = yes...

}

Necesitamos registrar como cliente a nuestro router o punto de acceso que servirá como autenticador. Abra el archivo /usr/local/etc/raddb/clients.conf y agregue lo siguiente :

client 192.168.1.1/24 { secret = s3cr3t0 shortname = linksys

}

69

Page 70: Radius en Ubuntu

Configuración del punto de acceso(autenticador)

Abra su navegador de internet y en la barra de direcciones digite 192.168.1.1 y presione Enter. Luego le aparecerá un cuadro similar al siguiente pidiéndole su nombre y contraseña. En este caso el nombre al igual que la contraseña es “admin”:

Ya adentro de la configuración del router, vamos a la sección Wireless y luego a la subsección Wireless Security. Veremos la siguiente pantalla:

70

Page 71: Radius en Ubuntu

Dejamos los parámetros como se muestran en la imagen anterior. A continuación se explican brevemente algunos de los parámetros:

RADIUS Server Address: es la dirección IP de nuestro servidor de autenticación RADIUS.

RADIUS Port: el servicio de RADIUS corre por defecto en el puerto 1812. Si se ha cambiado, hacer el ajuste necesario a la configuración mostrada.

WPA Shared Key: esta palabra es la que se ocupa para encriptar los paquetes transmitidos en la red, debe ser la misma que se especificó en el clients.conf en la configuración de cliente del punto de acceso.

71

Page 72: Radius en Ubuntu

Conectarse con un cliente Windows

Nos dirijimos al “Tray” del sistema y hacemos clic secundario sobre el ícono de red. Luego seleccionamos la opción “Centro de redes y recursos disponibles”.

Seleccionamos la tarea “Administrar redes inalámbricas.

72

Page 73: Radius en Ubuntu

Agregamos un perfil de red haciendo clic sobre el botón “Agregar”.

Seleccionamos la opción “Crear un perfil de red manualmente”.

73

Page 74: Radius en Ubuntu

Escribimos la información de la red inalámbrica, en este caso le llamamos “radius”, seleccionamos el tipo de seguridad “WPA-Enterprise” y el tipo de cifrado “TKIP”. Luego hacemos clic en “Siguiente”.

Una vez se ha agregado el perfil de red, hacemos clic en “Cerrar”.

74

Page 75: Radius en Ubuntu

En el Administrador de redes inalámbricas podemos ver nuestro nuevo perfil de red. Ahí seleccionamos el perfil y hacemos clic secundario sobre éste para luego hacer clic sobre “Propiedades” y configurar algunos aspectos de seguridad del perfil.

En la pestaña de “Seguridad configuramos el método de autenticación de red haciendo clic sobre el botón “Configuración”.

75

Page 76: Radius en Ubuntu

Una vez estemos en las propiedades del método de autenticación de la red, indicamos que al conectarnos no valide un certificado de servidor por lo que quitamos la selección en “Validar un certificado de servidor”.

76

Page 77: Radius en Ubuntu

Ahora bien, debemos configurar el método de autenticación haciendo clic sobre el botón “Configurar”. Aquí lo único que hacemos es quitar la selección para evitar que cuando nos conectemos a la red nos conectemos con el nombre del equipo y no con el nombre de usuario que se nos sea asignado.

Después de hacer todo lo anterior hacemos clic en “Aceptar” en cada uno de los formularios abiertos que hemos configurado. Cuando los cambios sean aplicados aparecerá un globo de información indicándonos que se necesita información extra para conectarnos a la red que hemos configurado.

77

Page 78: Radius en Ubuntu

Hacemos clic sobre el globo de información. Nos aparecerá un formulario como el siguiente en donde seleccionamos la opción “Escribir o seleccionar información de inicio de sesión adicional”.

Se nos solicitará una credencial para conectarse a la red. Escribimos el nombre de usuario y la contraseña que nos ha sido asignada. Hacemos clic en “Aceptar”.

78

Page 79: Radius en Ubuntu

Finalmente cuando nos identifiquemos correctamente con nuestro servidor Radius se mostrarán las siguientes notificaciones:

79

Page 80: Radius en Ubuntu

Portal cautivo para redes inalámbricas públicas con Chillispot

En las redes inalámbricas públicas suele desearse restringir a los usuarios el acceso a internet; esto se logra a través de un portal cautivo. Chillispot es una herramienta de portal cautivo que trabaja sobre GNU-Linux.

Su funcionamiento se basa en reglas de iptables con las que convierte el equipo en un firewall. Estas configuraciones trabajan junto con un servidor de autenticación que a su vez se apoya en un servidor RADIUS para validar los usuarios.

El diagrama del escenario implementado es el siguiente:

Requerimientos:● Hardware:

✔ Un punto de acceso inalámbrico (indispensable pero no sujeto a un modelo específico).

✔ Una computadora con dos interfaces de red (ethernet).

● Software (Los marcados con * se instalarán durante el desarrollo del manual):

✔ Sistema Operativo Debian-Linux✔ MySQL (*)✔ Servidor RADIUS “FreeRADIUS” (*)✔ Chillispot (*)✔ Servidor Web “Apache” con soporte SSL(*)

● Conocimientos previos:✔ Dirección IP del servidor de nombres (DNS)

80

Page 81: Radius en Ubuntu

Soporte TUN/TAP

En primer lugar, nuestro sistema debe tener habilitado el soporte TUN/TAP para interfaces virtuales. Desde la terminal ejecutamos el siguiente comando:

# modconf

Con esto aparecerá un recuadro que muestra las categorías de los módulos soportados por el sistema. Para nuestro caso, buscaremos sección kernel/drivers/net

81

Page 82: Radius en Ubuntu

Haciendo uso de la tecla tab, seleccionamos “Aceptar” y aparecerá un nuevo recuadro en el que buscamos “tun”. Si posee soporte debe aparecer con un signo “+”.

Si tenemos soporte TUN/TAP nuestro sistema posee soporte para un módulo indispensable para Chillispot, sin embargo, aún debemos agregarlo al inicio del sistema. Desde terminal ejecutamos las siguientes líneas de comando:

# modprobe tun# nano /etc/modules.conf

82

Page 83: Radius en Ubuntu

Con la última línea abrimos el archivo /etc/modules.conf con nano. Vamos al final del archivo y en una nueva línea agregamos “tun”, quedando más o menos así (puede variar en su sistema según los módulos que cargue al arrancar).

83

Page 84: Radius en Ubuntu

Forwarding de direcciones IP

Nuestro equipo con Chillispot estará trabajando como un firewall, de hecho, sin las reglas de firewall no sería posible que Chillispot funcionara. Al funcionar como firewall debe tener la capacidad de hacer NAT (Network Adress Translation) para lo que ejecutamos la siguiente línea:

# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Alternativamente podemos utilizar nano y manualmente cambiar el valor (por defecto 0) a 1. Este valor es un bit binario que hace las veces de un booleano. (0=falso y 1=verdadero)

# nano /proc/sys/net/ipv4/ip_forward

Ahora modificamos el archivo sysctl

# nano /etc/sysctl.conf

Nos aseguramos que posea la siguiente línea (si no la posee la agregamos y si se encuentra comentada con # al principio se lo quitamos)

net.ipv4.ip_forward=1

Instalación de MySQL

Esta parte es muy sencilla. Para instalar MySQL únicamente utilizamos el gestor de paquetes Synaptic o bien desde consola introducimos:

# apt-get install mysql-server

Instalación y configuración de FreeRADIUS

Los aspectos de instalación y configuración del servidor RADIUS se tratan en la sección “Protección de redes inalámbricas con FreeRadius” por lo que de aquí en adelante asumimos que ya se tiene el servidor RADIUS configurado.

84

Page 85: Radius en Ubuntu

Instalación de Chillispot

Habiendo realizado ya los pasos anteriores, estamos listos para instalar Chillispot.

# apt-get install chillispot

Durante el proceso de instalación nos aparecerán pantallas de diálogo en las que se nos pide ciertos parámetros de configuración.

El primer parámetro es la dirección IP del servidor RADIUS. Es importante recalcar que en nuestro caso, el mismo equipo en que está corriendo Chillispot hace las veces de servidor RADIUS; por esta razón es que se ha utilizado la dirección de loopback (Dirección IP que hace referencia al equipo local).

El segundo parámetro es el secreto del servidor RADIUS (Cadena de caracteres que el servidor RADIUS utiliza durante el proceso de compartir información con un cliente, en este caso Chillispot)

85

Page 86: Radius en Ubuntu

Luego indicamos cual será la interfaz conectada al punto de acceso. Esta interfaz es la que irá a la Wireless LAN y a través de ella se proveerá servicio DHCP. Además, la dirección IP de esta interfaz será la puerta de enlace para los clientes inalámbricos.

86

Page 87: Radius en Ubuntu

Aquí debemos introducir nuestra dirección IP seguido de la ruta del archivo utilizado para la autorización, en este caso, hotspotlogin.cgi. Este archivo se encuentra escrito en Perl, y puede ser modificado. Principalmente, suele ser deseado modificar la parte HTML para cambiar el aspecto visual de las páginas enviadas al cliente.

La URL de la página de inicio debe llevar el mismo formato de la URL anterior, con la diferencia que apunta a otra sitio. Generalmente suele desearse tener una página de bienvenida en la que se muestre al usuario las reglas y pasos para hacer uso de la red o algún otro tipo de información antes de redirigirlo a la página de login. En nuestro caso dejaremos en blanco este parámetro debido a que deseamos que el usuario sea redirigido de una sola vez a la página de autenticación (si no indicamos otra, se asume que se redireccionará al login).

87

Page 88: Radius en Ubuntu

La contraseña compartida entre Chillispot y el servidor web es necesaria para la seguridad en el proceso de comunicación entre ellos. Este parámetro queda a discreción.

88

Page 89: Radius en Ubuntu

Hasta aquí ya tenemos instalado Chillispot con alguna configuración básica. Estas configuraciones se encuentran en /etc/chilli.conf donde podemos modificarlas y aún definir otros parámetros. Esto lo haremos posteriormente.

Dentro de la documentación de Chillispot encontramos el el archivo hotspotlogin.cgi (generalmente viene comprimido y lo encontramos como hotspotlogin.cgi.gz). Descomprimimos el archivo y lo copiamos en la carpeta /usr/lib/cgi-bin.

# gunzip /usr/share/doc/chillispot/hotspotlogin.cgi.gz# cp /usr/share/doc/chillispot/hotspotlogin.cgi /usr/lib/cgi-bin/

Con esto ya tenemos nuestro servidor de autenticación.

Instalación y configuración de Apache

Necesitamos un servidor web con soporte SSL al cual redireccionar a los usuarios de la red inalámbrica cuando intenten navegar. En nuestro caso instalaremos Apache y los módulos respectivos para soporte SSL:

# apt-get install apache2 apache2.2-common apache2-mpm-worker apache2-utils

Pasamos ahora a generar el certificado SSL con el que trabajará Apache:

# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Llenamos los datos que pida según sea nuestro caso y luego habilitamos el módulo:

# a2enmod ssl

Debemos verificar que Apache esté configurado para escuchar por el puerto 443 cuando trabaje con el módulo SSL (las versiones recientes de Apache suelen ya venir configuradas de esta manera):

# nano /etc/apache2/ports.conf

89

Page 90: Radius en Ubuntu

El archivo debe tener la siguiente forma:

Ahora creamos el sitio SSL. Por defecto, Apache trae el fichero default ubicado en la carpeta /etc/apache2/sites-available/. Copiamos este archivo para luego poder modificarlo:

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl# nano /etc/apache2/sites-available/ssl

90

Page 91: Radius en Ubuntu

El archivo debe quedar de la siguiente manera:

Para finalizar la configuración de Apache, habilitamos el nuevo sitio:

# a2ensite ssl

91

Page 92: Radius en Ubuntu

Edición de los archivos de configuración

Básicamente los archivos de configuración a modificar son cuatro: ● /etc/chilli.conf● /usr/local/etc/raddb/clients.conf● /usr/lib/cgi-bin/hotspotlogin.cgi ● /etc/init.d/chillispot.iptables

Modificación de chilli.conf

Aquí es donde definimos los parámetros propios de Chillispot, los cuales explicamos a continuación.

● 'net':Es la red sobre la cual estará trabajando Chillispot, es decir la Wireless LAN. Se debe poner con el formato <dirección IP>/<máscara de subred>.

● 'radiusserver':La dirección IP de los servidores RADIUS. Es necesario indicar dos servidores, aunque en nuestro caso solamente contamos con uno. Debido a que el servicio de RADIUS se encuentra corriendo en el mismo equipo, utilizamos la dirección de loopback.

● 'radiussecret':Cadena de caracteres que indica el secreto compartido entre Chillispot y el servidor RADIUS.

● 'dns':Dirección IP del servidor DNS.

● 'dhcpif':Interfaz conectada al punto de acceso y por la que se proveerá DHCP. Dicho sea de paso que en la red sobre la que esté trabajando Chillispot no debe haber ningún servidor DHCP activado, dado que este servicio lo proporciona Chillispot mismo.

● 'uamallowed':Aquí podemos especificar direcciones IP o nombres de dominio a los que se permitirá el acceso sin autenticación. Como mínimo debemos poner la dirección IP del servidor web al que serán redireccionados los usuarios no registrados y la dirección IP del Servidro de Nombres de Dominio (DNS).

● 'uamserver':URL del servidor de autenticación.

92

Page 93: Radius en Ubuntu

● 'uamsecret':Secreto compartido entre Chillispot y el servidor de autenticación.

Utilizando nano abrimos el archivo para poder editarlo:

# nano /etc/chilli.conf

El archivo completo debe quedar con la siguiente estructura:

93

Page 94: Radius en Ubuntu

Configuración de clients.conf

Dado a que en nuestro caso la dirección IP del servidor RADIUS es la de loopback por estar en el mismo equipo en que se encuentra Chillispot, debemos verificar que dentro de los clientes se encuentre especificado nuestro host local y si no se encuentra agregarlo.Si el caso fuera un servidor RADIUS remoto, deberíamos agregar la dirección IP a través de la cual es visible para RADIUS el host con Chillispot.

Abrimos el fichero con nano

# nano /usr/local/etc/raddb/clients.conf

Para el primer caso expuesto, el archivo debe quedar así:

Modificación de hotspotlogin.cgi

Abrimos el fichero con nano:

# nano /usr/lib/cgi-bin/hotspotlogin.cgi

Lo único que debemos hacer es verificar que no se encuentre comentada la línea

$uamsecret = “<secretouam>”;

Donde secretouam es el secreto compartido entre Chillispot y el servidor de autenticación.

Además, descomentamos la línea

$userpassword=1;

94

Page 95: Radius en Ubuntu

Copia y edición de chillispot.iptables

Chillispot ya incluye una configuración de iptables sugerida. La podemos encontrar dentro de su documentación y copiarla para hacer uso de ella y de ser necesario modificarla.

# cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chillispot.iptables# chmod 770 /etc/init.d/chillispot.iptables

Después de copiarla y darle permisos de ejecución abrimos el archivo con nano:

# nano /etc/init.d/chillispot.iptables

Luego verificamos que los parámetros INTIF y EXTIF contengan las interfaces interna (la que va a la red inalámbrica) y externa (la que conecta a la WAN), respectivamente.En nuestro caso queda de la siguiente manera:

EXTIF = “eth0”INTIF = “eth1”

Por último agregamos las reglas al inicio del sistema:

# ln -s /etc/init.d/chillispot.iptables /etc/rcS.d/S40chillispot.iptables

Iniciando nuestro servidor Chillispot

Ahora nuestro Servicio de portal cautivo está listo para iniciarse. Basta con ejecutar los siguientes comandos para iniciar Chillispot y los servicios relacionados:

# /etc/init.d/apache force-reload

# /etc/init.d/chillispot.iptables restart

# /etc/init.d/chilli restart

# /etc/init.d/freeradius restart

95