Archive for Abril, 2007

Red WiFi Segura: WPA+EAP-TLS+RADIUS

Miércoles, Abril 11th, 2007

Update: Actualmente hay una actualización a este manual aqui, que implementa EAP-MSCHAPv2 para autenticar clientes con usuario y contraseña sobre base de datos mysql.

Hasta hace un par de días tenía una red WiFi con cifrado WEP y controlaba los accesos a través de los logs del punto de acceso. Cada día crece el número de métodos para romper una red Wireless y crece el número de personas que lo intentan, por lo que al final me animé a cambiar el sistema.

El objetivo de este manual es montar una red WiFi segura, que empleará certificados de cliente y servidor para la autenticación, usando como servidor radius FreeRADIUS. Para ello realizaremos los siguientes pasos:

  1. Instalar FreeRADIUS
  2. Configurar el Punto de Acceso
  3. Configurar el Cliente.

La distribución que emplearé será Debian y trataremos de tirar de apt en la medida que se pueda.

El Punto de Acceso que emplearé a modo ejemplo será un DWL-2000AP+ con soporte WPA. El mio lo traia de fábrica, pero siel que vais a usar no lo tiene, probad actualizando el firmware.

El cliente que usaré, también como ejemplo, será el Mac OS X 10.4 y trataré de explicar tambien como hacerlo en Windows XP.

FreeRADIUS

Al principio traté de instalarlo por apt, pero descubrí que por un problema de licencias con openssl la versión de apt de freeradius no traia el módulo eap+tls, así que habrá que instalar freeradius desde el código fuente.

Primero, prepararle el entorno: necesiraremos openssl, libssl y libssl-dev.

# apt-get install openssl
# apt-get install libssl
# apt-get install libssl-dev

Ahora que ya tenemos el entorno, hay que bajarse la ultima versión de FreeRADIUS, compilarla e instalarla.

# cd /usr/src
# wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.5.tar.gz
# tar xvfz freeradius-1.5.5.tar.gz
# cd freeradius-1.5.5
# ./configure –prefix=/ –with-raddbdir=/etc/raddb
# make
# make install

Ahora tendremos freeradius instalado en el sistema, queda configurarlo. Lo primero que haremos será crear los certificados apropiados con la ayuda de estos pequeños scripts procedentes en parte de aqui.

# cd /etc/raddb/certs
# wget http://karman.homelinux.net/blog/descargas/cascripts.tar.gz
# tar xvfz cascripts.tar.gz

Primero crearemos el certificado raíz:

# CA.root

Nos pedirá una serie de datos que realmente no son necesarios, yo solamente rellene los 3 primeros. Si todo ha salido bien, nos habrá creado los archivos root.der, root.p12 y root.pem. El siguiente certificado a crear es el del servidor:

# uname -n
karman.homelinux.net
# CA.server karman.homelinux.net

En este caso es importante que rellenemos el campo Common name con el nombre del servidor, karman.homelinux.net en este caso. Cuando nos pregunte [y/n], respondemos y ambas veces. Si todo ha ido bien, nos habrá creado los archivos karman.homelinux.net.p12, karman.homelinux.net.der y karman.homelinux.net.pem.

Ahora crearemos un certificado por cada usuario ejecutando el script con dos argumentos, el usuario y la contraseña:

# CA.client karman 12345

Como de costumbre, rellenamos los campos, le decimos que si a las dos ultimas preguntas y nos creará los archivos karman.der, karman.pem y karman.p12.

Como hemos dicho que el directorio de configuración sea /etc/raddb, el programa de instalación ha copiado una configuración básica para que arranque freeradius, pero no es lo que necesitamos, por lo que deberemos de modificar los siguientes archivos:

eap.conf

eap {

default_eap_type = tls
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
tls {

private_key_password = whatever
private_key_file = ${raddbdir}/certs/karman.homelinux.net.pem
certificate_file = ${raddbdir}/certs/karman.homelinux.net.pem
CA_file = ${raddbdir}/certs/root.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
fragment_size = 1024
include_length = yes

}

}

Este es todo el contenido que tiene que tener el archivo eap.con. Nótese de cambiar los parámetros private_ket_file y certificate_file con los valores correspondientes.

clients.conf

# Punto de Acceso DLink
client 192.168.0.50 {

secret = pruebadeap
shortname = AP
nastype = other

}

Así es como hay que configurar un cliente. Ya viene con 127.0.0.1, que podemos modificar o borrar para que sirva a nuestros propositos. En todo caso, con el que el clients.conf tenga solamente las lineas anteriormente mostradas será suficiente para funcionar. Nótese de cambiar la ip en el campo client por la del punto de acceso y cambiar el campo secret por una contraseña que nosotros queramos.

users

“karman” Auth-Type := EAP

Esto es todo lo que deberá de ir en users. A la hora de añadir un usuario nuevo será tan sencillo como crearle un certificado, añadir esta linea con el nombre de usuario adecuado y darle a ese user su certificado para configurar el ordenador (lo veremos más adelante).

Llegados a este punto, sería conveniente hacer un usuario para el servidor radius añadiendo las siguientes lineas a nuestros passwd, shadow y group:

/etc/passwd: freerad:x:106:106::/etc/raddb:/bin/false
/etc/shadow: freerad:!:13611:0:99999:7:::
/etc/group: freerad:x:106:

y cambiar de usuario y los permisos de todos los archivos de /etc/raddb:

# chmod 700 -R /etc/raddb
# chown -R freerad:freerad /etc/raddb

radiusd.conf

bind_address = 192.168.0.1
user = freerad
group = freerad

En este caso, la modificacion de bind_address no es necesaria, yo la hice porque el ordenador que alberga el radius es a su vez mi router, y no quería que escuchase peticiones de login en internet, solo en intranet. En este archivo hay muchas cosas que podríamos tocar para afinar la configuración, pero de momento nos bastará como viene, ajustes finos a gusto de cada cual.

Ahora que tenemos todo en su sitio como toca, haremos una prueba de arranque con

# radiusd -X

lo que nos dará una salida detallada de arranque. Si todo ha ido bien y sin problemas, podemos bajarnos este script de inicio para debian, copiarlo en /etc/init.d y arrancaremos el servicio con

# /etc/init.d/radius start

Punto de Acceso (AP)

Configuracion de WPA para el Dlink DWL-2000AP+El siguiente paso es configurar nuestro punto de acceso para que cifre la red wireless con WPA (ojo, NO WPA-PSK). Si lo soporta, nos pedirá básicamente tres datos: IP del servidor radius, puerto del servidor radius y el ’secreto’, que viene siendo una contraseña. En nuestro caso ejemplo:

IP: 192.168.0.1
Puerto: 1812
Shared Secret: pruebadeap

Configurando un Cliente Windows/Mac OS X

Es tan sencillo como copiar en el ordenador cliente el certificado /etc/raddb/certs/karman.p12 (o elnombredelusuario.p12) y añadirlo con un doble click sobre el mismo. Nos preguntará si queremos añadirlo a los certificados, le decimos que si y entonces nos preguntará la contraseña que pusimos para cifrar el certificado a la hora de crearlo (12345).

Ahora que tenemos el certificado añadido al sistema, simplemente le damos a conectar a la wifi, con esto tendremos ya la wireless wpa+eap-tls.

Cualquier problema o duda, posteadla como comentario, ya que el manual lo he escrito dos días después de configurar mi WiFi y no se si se me ha podido pasar algo. Si alguien sabe como añadir el certificado y usarlo para autenticación WPA en linux agradecería que me lo enviase por correo o lo posteara en comentarios.

Update: En adición al artículo, he notado que al mes los certificados dejan de funcionar por la siguiente opcion del /etc/ssl/openssl.cnf:

default_crl_days= 30

Yo la he cambiado a 365 días, para que tarde un año.

También hay que editar CA.root y añadir en la instruccion openssl la opcion -days X, donde X es el valor en días que tardará en caducar el certificado raiz, que por defecto está a 30 dias. Ej, lo tengo a 3650 días, 10 años:

openssl req -new -days 3650 -x509 -keyout newreq.pem -out newreq.pem -passin pass:whatever -passout pass:whatever

Macintosh Classic

Jueves, Abril 5th, 2007

Macintosh ClassicPor fin! Un sueño hecho realidad ^^. Llevaba tiempo queriendo un Mac de los primerizos y ayer se hizo posible gracias a dos amigos, Jausk y Badblody, quienes, por cierto, lo rescataron de otro contenedor.

Su nombre en clave es XO o Civic y tiene un procesador Motorola 68000 a 8Mhz (el última mac en usarlo), soporta un máximo de 4 Mb de RAM y tiene un disco duro de 40Mb, con System 6.0.x como Sistema Operativo.

Su Número de serie (CK2172STD15) nos dice lo siguiente:

  • Fabricado en: Cork, Irlanda (CK)
  • Año de producción: Posiblemente 1992 (2)
  • Semana de producción: 17
  • Número de producción: 3223 (2ST)
  • Model ID: D15 (no se aun que significa, cuando lo pueda abrir veremos las características)

Macintosh Classic, parte traseraEsto significa que este Classic fué el número 3223 en la cadena de producción en la semana número 17 de 1992 en Cork, Irlanda.

Una gran novedad en este mac es que no tenía rueda para controlar el brillo. En su lugar, fue sustituido por un control digital del brillo que se manejaba a través de un panel de control en el Sistema Operativo.

System 6.0.xAdemás es el único que incluye un arranque dual. El SO además de estar instalado en el disco duro también estaba instalada en una ROM interna a través de la cual se podía arrancar sin tener disco duro o para realizar tareas de mantenimiento manteniendo pulsadas las teclas Comando + Opción + X + O.

Características:

  • Introducido el 15 de Agosto de 1990 y cesado el 14 de Septiembre de 1992
  • Funciona System mínimo 6.0.7 hasta 7.5.5 Máximo.
  • CPU: Motorola 68000 8Mhz
  • ROM: 512Kb
  • RAM: mínimo 1Mb, máximo 4Mb (El mio tiene 4)
  • Pantalla: 9″ blanco y negro, 512×342 pixeles.
  • Puerto ADB (Apple DEsktop Bus) para el teclado y el ratón
  • Dos puertos serie din-8
  • Conector SCSI db25 hembra.
  • Diskettera SuperDrive
  • Conector para segunda diskettera de doble cara 1.4Mbs
  • 24bits de direccionamiento
  • Batería 3.6V de litio para la placa

PS2 Modding: EE+GS KeyChain

Miércoles, Abril 4th, 2007

PS2 Front BoardOtro cacharro del rastro por unos miserables euros. Esta PS2 estaba a tan bajo precio debido a su falta de funcionamiento en la unidad lectora óptica de discos, fallo producido seguramente por una mala instalación del chip pirata.

PS2 Back BoardDicho chip aun se puede apreciar en la foto de detrás de la placa de la PS2.

Como extraer el procesador

Chip Recien Extraido y CalentitoPara extraer el procesador sin dañarlo extremadamente, lo mejor es calentar todas las soldaduras del procesador simultaneamente para que se suelte sin ofrecer mayor resistencia (no se si habeis probado a arrancar un chip de una placa en la que está soldada haciendo fuerza con un destornillador, pero es muy desagradable)

Yo empleo un soplete del leroy merlin consistente en una válvula enroscada a un bote de gas butano, bastante económico.

Resultado FinalEl método consiste en poner la placa de forma que el procesador esté al lado contrario de la zona que vamos a calentar con el soplete y calentar dicho lado alrededor de la zona en la que se haya el micro. Simultaneamente hay que hacer una ligera fuerza hacia fuera sobre el micro, para que cuando las soldaduras esten lo suficientemente calientes y débiles para que se suelte sin mayor esfuerzo.

EE+GSCuando caiga hay que tener cuidado, pues tanto la placa de la PS2 como el micro están lo suficinetemente calientes como para quemarnos si no estamos atentos.

Ahora ya podemos hacernos una chapa o un llavero con el Emotion Engine + Graphics Synthesizer que acabamos de extraer, el corazón de cualquier PS2 :)

Amstrad CPC6128, Monitor y Sintonizador.

Lunes, Abril 2nd, 2007

Amstrad CPC6128 con Monitor en colorEste es mi Amstrad 128Kb que conservo en perfecto estado y funcionamiento, con el monitor a color. Funciona con un Zilog Z80 y 128Kb de ram con 32Kb de ROM para el Basic, con una diskettera cuya electrónica funciona bien, pero la mecánica no funciona debido a que el tiempo hizo mella en la goma, pudriendola.

Pequeño contador en el ZX81En estas fotos se puede apreciar el funcionamiento de la sintonizadora de TV y del monitor que están conectados al ZX81 que está funcinando con un simple programa de contador:

10 let a=0
20 print a
30 scroll
40 let a=a+1
50 goto 20

ZX81 conectado a la Sintonizadora y al MonitorEste Amstrad no se podía conectar a una televisión normal debido a que no tenía modulador de tv, si no que las señales RGB se conectaban directamente a un monitor especial fabricado a tal propósito.

CPC6128 Funcionando en su MonitorY ya que tenían un monitor (hay dos modelos, CT65 monocrómo de fosforo y el CTM640-4 monitor a color) que no servia mas que para el Amstrad, decidieron fabricar el módulo sintonizador de TV que conectado al monitor del Amstrad nos permite ver la televisión (aunque no podemos conectar ambos simultaneamente, solamente uno de los dos).