jump to navigation

Captive Portal: controlando el acceso a la red. 27 Noviembre 2006

Posted by ajripa in Redes.
add a comment

Las redes inalámbricas han tenido un rápido desarrollo y se han convertido en un método de acceso a Internet indispensable en hoteles, restaurantes, aeropuertos… Incluso en nuestra propia casa. Casi todos los proveedores de acceso a internet envían a sus clientes dispositivos que actuan como puntos de acceso. Mientras que en nuestros hogares esto supone una gran comodidad, en otros lugares, como los comentados antes, supone un valor añadido para los negocios.

La gran ventaja que tiene la red wifi es también su gran inconveniente. Las redes wifi nos permiten conectarnos desde cualquier lugar y en cualquier momento. Sin embargo, también permiten conectarse a cualquier persona que tenga un dispositivo inalámbrico y ver que está pasando por la red, por lo que nuestra privacidad se puede ver comprometida.

Formas de controlar el acceso a una red wifi hay muchas. Así a bote pronto se me ocurren dos muy básicas.

  • Filtrar el acceso al punto de acceso por mac-address del dispositivo del usuario.
  • Controlar el acceso mediante claves de encriptación WEP o WPA.

Estos dos sistemas básicos son muy válidos para redes pequeñas con pocos usuarios. Por ejemplo, en nuestro hogar sería suficiente con esto para tener una red más o menos segura (que no inexpugnable).

Pensemos por ejemplo en una universidad donde se ofrece a los alumnos el acceso wifi. Registrar todas y cada de las mac de todos y cada uno de los dispositivos de los alumnos supone un trabajo de administración ingente. No es eficaz. Lo mismo podíamos pensar de sistemas WEP o WPA que dependen mucho de la capacidad del usuario para configurar su sistema. Mi experiencia me dice que confiar en el usuario en un error.

La forma más elegante y eficaz que conozco para controlar el acceso a las redes wireles son los portales cautivos o captive portal.

¿En que consiste? Conectamos nuestro dispositivo a la red wifi y cuando intentemos abrir una página web, el portal cautivo capturará la petición y nos devolverá una pantalla de login. Hasta que no nos validemos en el sistema con nuestro usuario y contraseña no podremos acceder a internet.

Imaginenos un hotel en el que para usar la red wifi hay que pagar una cantidad determinada. El cliente podrá conectar a la red wifi, pero cuando intente navegar se mostrará una página donde deberá introducir un ticket. Si previamente no ha comprado este ticket en recepción no podrá acceder a Internet.

El portal cautivo no es más que un servidor con un software que controla el acceso a la red. Dependiendo de lo complejo que sea el software, podemos tener estadísticas de acceso, configurar las horas de acceso, que usuarios puede acceder o incluso configurar a que sitios web puede acceder el usuario sin validarse (por ejemplo a la página web de la cadena hotelera).

Software para portales cautivos hay mucho y variado. Libres y de pago. Aquí tenéis una lista muy completa.

Mi preferido es M0n0wall. Un sistema potente que incluye captive portal, firewall, estadísticas de uso, etc… Todo ellos basado en FreeBSD y PHP. Se puede ejecutar desde un CD o instalar en una tarjeta compact flash o en disco duro. De muy fácil configuración y administración.

Y solo un consejo más. Mantened vuestras redes seguras, pero mantenedlas abiertas.

Ubuntu y Sound Blaster Audigy LS 26 Noviembre 2006

Posted by ajripa in Ubuntu.
3 comments

El principal problema que tiene la gente para cambiarse a linux suele ser la configuración de sus dispositivos. Por suerte las distribuciones de linux cada vez están más preparadas y cada vez traen más drivers integrados. De todas formas son los fabricantes de hardware los que tienen que coger el toro por los cuernos y empezar a desarrollar drivers para linux… Pero esto se merece otra entrada en el blog.

A veces ocurre que aunque nuestro sistema detecta nuestros dispositivos, no conseguimos toda la funcionalidades que estos tienen. Esto es lo que ocurrió con mi Sound Blaster Audigy LS.

Mi (K)Ubuntu detectó perfectamente la tarjeta usando el driver CA0106 y daba la impresión de que no tendría problemas con el sonido 5.1. En el Kmix podía ver un control de volumen para grupo de altavoces (front, rear, side, center…). Nada más lejos de la realidad. Puse un mp3 y solo se escuchaban los altavoces frontales.

kmix

Después de horas de google encontré una solución. No es exactamente sonido 5.1, pero a mi ya me vale. Yo solo quería que se escucharan todos los altavoces. Y para ello lo que hice es copiar el audio que entraba a los altavoces frontales al resto de altavoces. Para ello hay que crear un archivo .asoundrc en la carpeta del usuario con este contenido:
pcm.!default {
type route
slave.pcm surround51
slave.channels 6
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 0.5
ttable.1.5 0.5
}

Con esto conseguimos que aplicaciones como XMMS o BMP usen todos los altavoces. Ahora escuchar música es otra cosa.

Instalando TDT en Ubuntu 26 Noviembre 2006

Posted by ajripa in Ubuntu.
7 comments

Desde hace unos meses, la Televisión Digital Terrestre (TDT) está cambiando la forma que tenemos de ver la televisión. Poco a poco vamos dejando de lado la televisión analógica para pasarnos a esta tecnología que nos permite una mejor calidad de imagen, disponer de más canales y ofrecer más servicios. Con la llegada del TDT también han ido apareciendo adaptadores para poder ver la televisión digital en el PC… eso sí, siempre con sus drivers y sus instrucciones para Windows, como siempre surge la misma pregunta: ¿y para linux?

Pues aquí va una pequeña receta de como configurar un linux para disfrutar de la TDT. Y como toda receta, lo primero son los ingredientes:

  • Ubuntu Dapper 6.06
  • Adaptador TDT USB Freecom. Este
  • Web con los canales TDT. Esta.

Lo primero que hacemos es pinchar el adaptador USB a nuestro PC, y mirar el registro de eventos para ver que ha ocurrido al pincharlo. Ejecutamos

dmesg

y esta es la salida:

[17194227.228000] usb 5-8: new high speed USB device using ehci_hcd and address 11
[17194227.360000] dvb-usb: found a 'WideView WT-220U PenType Receiver (Typhoon/Freecom)' in cold state, will try to load a firmware
[17194227.372000] dvb-usb: did not find the firmware file. (dvb-usb-wt220u-01.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems.
[17194227.372000] dvb-usb: WideView WT-220U PenType Receiver (Typhoon/Freecom) error while loading driver (-2)

Vaya, parece que tenemos problemas para cargar el driver ya que no encuentra el fichero con el firmware. Hacemos una búsqueda rápida en google y enseguida encontramos donde descargarnos el firmware: dvb-usb-wt220u-01.fw Nos descargamos el fichero y lo copiamos en la carpeta /lib/firmware. Ahora volvemos a conectar nuestro adaptador y volvemos a mirar los eventos del sistema. Esta es la salida:

17194431.852000] usb 5-8: new high speed USB device using ehci_hcd and address 13
[17194431.984000] dvb-usb: found a 'WideView WT-220U PenType Receiver (Typhoon/F reecom)' in warm state.
[17194431.984000] dvb-usb: will use the device's hardware PID filter (table coun t: 15).
[17194431.984000] DVB: registering new adapter (WideView WT-220U PenType Receive r (Typhoon/Freecom)).
[17194431.984000] DVB: registering frontend 0 (WideView USB DVB-T)...
[17194431.984000] input: IR-receiver inside an USB DVB receiver as /class/input/ input7
[17194431.984000] dvb-usb: schedule remote query interval to 300 msecs.
[17194431.984000] dvb-usb: WideView WT-220U PenType Receiver (Typhoon/Freecom) s uccessfully initialized and connected.

Parece que ahora todo ha ido mejor y nuestro sistema ha sido capaz de instalar el dispositivo.

Ahora necesitamos conocer un poco como funciona la televisión TDT. A grandes rasgos, la TDT usa varios rangos de frecuencias y en cada rango emiten varios canales, cada uno con un identificador distinto. Como habréis podido comprobar en la página que recomiendo más arriba estoy usando las frecuencias y los canales de Madrid. En cada región se usarán unas frecuencias distintas.

Necesitamos instalar varios paquetes para poder sintonizar y ver los canales:

$ sudo aptitude install dvbtune dvbstream dvb-utils mplayer

Una vez que tenemos los paquetes necesarios instalados podemos empezar a sintonizar. Para hacerlo más sencillo voy a hacerlo con un solo canal, por ejemplo Telecinco. Mirando en la página anterior veo que Telecinco emite en la frecuencia 850 Mhz. Solo necesito saber cual es su identificador dentro de esta frecuencia. Para ello:

$ dvbtune -i -f 850000

Este comando nos devuelve en formato XML toda la información relativa a los canales que hay en esta frecuencia. Algo parecido a esto:

Using DVB card "WideView USB DVB-T"
tuning DVB-T (in United Kingdom) to 850000000 Hz
polling....
Getting frontend event
FE_STATUS:
polling....
Getting frontend event
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
Bit error rate: 0
Signal strength: 20046
SNR: 60138
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
<transponder type="T" freq="850000000">
<service id="180" ca="0">
<description tag="0x48" type="1" provider_name="" service_name="Telecinco" />
<descriptor tag="0x0e" data="c04355" text=".CU" />
<descriptor tag="0x0c" data="80b48168" text="...h" />
<stream type="2" pid="203">
<stream_id id="13" />
<descriptor tag="0x02" data="1a485f" text=".H." />
<data_stream_alignment tag="0x06" data="02" />
<descriptor tag="0x0e" data="c03c4d" text="..M" />
</stream>
<stream type="4" pid="303">
<stream_id id="23" />
<iso_639 language="spa" type="0" />
<audio_info tag="0x03" info="67" />
<descriptor tag="0x0e" data="c002d0" text="..." />
</stream>

La salida es bastante más larga, pero he puesto solo una parte. Con esto es suficiente para ver que el identificador de Telecinco es el 203 y el 303. A estos indentificadores se les llama streams ¿Por qué dos? Uno es el identificador del video y otro del audio. Si vemos que un canal tiene varios streams quiere decir que tendremos varios audios diferentes. Por ejemplo, varios idiomas.

Ahora solo queda sintonizar el canal y poder verlo en nuestro reproductor. Para ello:

$ dvbstream -o -f 850000 203 303 | mplayer -

Con este comando volcamos a salida estandar (-o) los identificadores 202 y 203 de la frecuencia 850 Mhz (-f). De esta salida se alimenta el mplayer. Este es el resultado.

pantdt

Son muchos los canales que se pueden ver por lo que se puede hacer un poco pesado buscar el canal que quieres sintonizar. Para evitar esto estoy haciendo con paciencia un script que me permita elegir el canal que quiero ver sin tener que recordar los ids y las frecuencias de cada canal. Solo tengo que completarlo con todos los canales.#!/bin/sh
clear
echo "##########################################"
echo "# Lista de Canales TDT #"
echo "##########################################"
echo
echo 1. Telecinco
echo 2. T5 Estrellas
echo 3. T5 Sport
echo 4. Flymusic
echo 5. 8 Madrid
echo 6. Popular TV
echo 7. Intereconomia
echo 8. Kiss TV
echo Seleccione canal:
read canal
case $canal in
1 ) dvbstream -o -f 850000 203 303 | mplayer -
;;
2 ) dvbstream -o -f 850000 201 301 | mplayer -
;;
3 ) dvbstream -o -f 850000 202 302 | mplayer -
;;
4 ) dvbstream -o -f 850000 1501 1502 | mplayer -
;;
5 ) dvbstream -o -f 618000 256 257 | mplayer -
;;
6 ) dvbstream -o -f 618000 512 513 | mplayer -
;;
7 ) dvbstream -o -f 618000 768 769 | mplayer -
;;
8 ) dvbstream -o -f 618000 1024 1025 | mplayer -
esac

Al ejecutarlo me lista los canales y selecciono el que quiero ver. Seguro que se puede mejorar, hacer algo más vistoso… Pero eso para otra vez.

Una de las cosas más interesantes no es solo poder sintonizar la TDT, si no poder retransmitirla por la red. Imaginaros el verano pasado. Mundial de fútbol y la gente trabajando sin poder ver los partidos. Solo tendríamos que ejecutar el siguiente comando para que la señal se repartiera a la red por multicast:

$ dvbstream -f 850000 203 303

La salida sería:

dvbstream v0.5 - (C) Dave Chapman 2001-2004
Released under the GPL.
Latest version available from http://www.linuxstb.org/
Using DVB card "WideView USB DVB-T"
tuning DVB-T (in United Kingdom) to 850000000 Hz
polling....
Getting frontend event
FE_STATUS:
polling....
Getting frontend event
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
Bit error rate: 0
Signal strength: 20560
SNR: 60395
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
Setting filter for PID 203
Setting filter for PID 303
Using 224.0.1.2:5004:2
version=2
Streaming 2 streams

Podemos observar que la emision se vuelca a la red por la direccion 224.0.1.2:5004. Desde cualquier PC de la red que tenga un mplayer instalado, ejecutamos:

$ mplayer -ni rtp://224.0.1.2:5004 -cache 32000

Y tenemos TDT en cualquier equipo de la red. Todo el mundo puede ver como España vuelve a hacer el ridículo en el mundial.

Update:Desde aquí os podéis bajar el script completo para los canales de Madrid. Decir también que la antena la tengo puesta en la ventana, en interiores le cuesta coger señal, pero la antena se puede cambiar por la antena comunitaria. No es más que un coaxial.

Sintonización: Hay una forma de sintonizar automáticamente los canales. Para ello:

$ scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/es-Madrid | tee /home/usario/.mplayer/channels.conf
Si editamos ese fichero veremos el nombre de los canales. Si queremos ver un canal directamente:

$ mplayer dvb://"Telecinco"
O si queremos ir cambiando de canal:

$ mplayer dvb://

Con las teclas H y K avanzamos y retrocedemos en los canales.

Hola… de nuevo. 25 Noviembre 2006

Posted by ajripa in Bienvenida.
add a comment

Dicen que muchas veces la clave del éxito es hacer bien lo que uno sabe hacer. Por suerte o por desgracia yo solo se hacer cosas relacionadas con los ordenadores, y ni siquiera se si lo se hacer bien… Así que he decidido hacer un fork() de mi antiguo blog La Taberna del Calvo y comenzar una nueva aventura bloguera con La Taberna Digital.

Mi intención es hablar de temas relacionados con la informática y la tecnología. Blogs de esta temática hay muchos, pero es que yo no se hacer otra cosa.

¡Bienvenidos!

Hola… de nuevo. 25 Noviembre 2006

Posted by ajripa in Bienvenida.
add a comment

Dicen que muchas veces la clave del éxito es hacer bien lo que uno sabe hacer. Por suerte o por desgracia yo solo se hacer cosas relacionadas con los ordenadores, y ni siquiera se si lo se hacer bien… Así que he decidido hacer un fork() de mi antiguo blog La Taberna del Calvo y comenzar una nueva aventura bloguera con La Taberna Digital.

Mi intención es hablar de temas relacionados con la informática y la tecnología. Blogs de esta temática hay muchos, pero es que yo no se hacer otra cosa.

¡Bienvenidos!