Portal captivo muy simple

21 Septiembre 2008

Introducción

Recientemente se me ocurrió la idea de si sería posible que si un equipo no registrado se conectara a una red privada (un consultor que llega a una empresa, por ejemplo) se le presentara una página web indicando que debe ponerse en contacto con el soporte técnico para que le den acceso. Vaya, una especie de portal captivo pero mucho más simple.

Después de darle unas pocas vueltas llegué a una posible solución, que es la que voy a exponer a continuación. Mi intención no es dar una configuración detallada al 100%, básicamente porque no dispongo de un entorno donde poderlo probar todo. Lo que quiero es dar las ideas y poner parte de las configuraciones necesarias para conseguirlo.

La idea es la siguiente:

  1. Tenemos el DHCP configurado de tal manera que a los equipos de la red se les asigna siempre la misma dirección IP de un determinado rango a partir de su dirección MAC. A las MACs no registradas les asignamos una dirección IP de un pool formado por direcciones de una rango totalmente diferente al de la red que se le asigna a las MACs conocidas y que no está enrutada (por tanto no tiene salida fuera de la red local). El pool “captivo” estará configurado para que el servidor DNS que se asignará a esos dispositivos sea uno que estará en el mismo segmento de red y dentro de la misma red IP que las direcciones (recordad que la red del pool no esta enrutada).
  2. Configuraremos el servidor DNS que usaran esos equipos no registrados de manera que resuelva todos los nombres de dominio con una misma dirección IP, la de un servidor local que también estará dentro de la misma red IP que el pool (que es la única red que pueden ver).
  3. Y el servidor Web siempre devolverá la misma página independientemente de la URL que se le solicite. En esa página se le indicará al usuario que el equipo desde el que está accediendo no esta autorizado, que se ha registrado su acceso y que se ponga en contacto con el soporte técnico para que le den acceso.

Por ejemplo, supongamos que en nuestra red usamos las direcciones 192.168.0.0/24, que el DNS “bueno” está en la dirección 192.168.0.1 y el default gateway también es el 192.168.0.1. Para las MACs no registradas, el pool tendrá direcciones de la red 172.16.0.0/24, de la 172.16.0.16 a la 172.16.0.254, el servidor DNS para los equipos no registrados será la 172.16.0.1 y el servidor web estará en la misma máquina.

De esta forma, cuando alguien enchufe un PC a la red y no lo haya notificado previamente, cuando intente acceder a alguna web le saldrá la página que le indicará que debe registrar su equipo.

Configuración

Vamos a ver como debemos configurar los diferentes servicios que intervienen para implementar esta funcionalidad.

DHCP

La configuración del servidor de DHCP no tiene mucho misterio. Básicamente es traducir los requisitos a nivel de DHCP a configuración. Pego la parte relevante de la configuración.

/etc/dhcp.conf

shared-network LAN {
  subnet 172.16.0.0 netmask 255.255.255.0 {
    allow unknown-clients;
    option routers 172.16.0.1;
    option domain-name-servers 172.16.0.1;
    range   172.16.0.16 172.16.0.254;
    max-lease-time 30;
    default-lease-time 30;
  }

  subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    max-lease-time 86400;
    default-lease-time 86400;
  }
}

# Equipos registrados
group {
  host PC1 {
    hardware ethernet 00:01:02:e7:ef:15;
    fixed-address 192.168.17;
  }

  host PC2 {
    hardware ethernet 00:00:21:cb:22:fa;
    fixed-address 192.168.18;
  }
}

Bind

Como servidor DNS usaremos el Bind y tal y como he comentado anteriormente, debemos configurarlo de manera que resuelva cualquier nombre de dominio que le solicitemos con la dirección IP del servidor en el que configuraremos el Apache. Por suerte, Bind tiene soporte de wildcards.

Importante: poner el TTL de esas resoluciones muy bajo, varios segundos a lo sumo. Si no, tras registrar el PC, seguiría sin ver las páginas a las que hubiera intentado acceder mientras tenÍa configurado el DNS del portal captivo ya que la cache de DNS de su S.O. seguiría “resolviendo” el nombre de dominio como la IP de la web del portal captivo.

/etc/bind/named.conf

options {
  directory "/var/cache/bind";
  listen-on { 172.16.0.1; };
  version "Captive Portal DNS Server";
  recursion no;
};

zone "." {
  type master;
  file "/etc/bind/db.captive";
};

/etc/bind/db.captive

$TTL    1
@       IN      SOA     captive.local. netmaster.local. (
                        0000001         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        1 )       ; Negative Cache TTL
;
@       IN      NS      captive.local.
*.      IN      A       172.16.0.1

Apache

Partiremos de una instalación estándar de Apache2 de Debian y configuraremos el host virtual por defecto de manera que la web tendrá simplemente una página HTML y como mucho unas cuantas imágenes (por ejemplo, el logo de la empresa). También configuraremos unas reglas de rewrite para que pidan la URL que pidan salga la misma página.

Importante: para evitar problemas con las caches de los navegadores, la página debería tener una cabecera de Cache-Control forzando que el navegador siempre se la descargue en cada consulta.

/etc/apache2/sites-available

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride FileInfo
  Order allow,deny
  allow from all
</Directory>

Pondremos el index.html que queramos mostrar en /var/www/index.html y crearemos el fichero .htaccess con las reglas de reescritura y de no-cache:

/var/www/.htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

<IfModule mod_headers.c>
  Header set Cache-Control "no-cache"
</IfModule>

No debemos olvidarnos de habilitar los modulos de rewrite y header:

a2enmod rewrite
a2enmod headers

Y con esto ya tendríamos nuestro portal captivo.

Mejoras

Si no quisiéramos/pudiéramos tener un servidor dedicado al portal captivo, podríamos poner la configuración necesaria de DNS en una vista y configurar el Bind para que las IPs del rango captivo fueran a esa vista en particular, y a nivel de Apache podríamos usar un Virtual Host basado en dirección IP. Si alguien no supiera como hacerlo, le debería ser bastante fácil encontrar documentación en Internet sobre somo hacerlo.

Si lo que nos interesa es que los equipos no registrados no tengan ningún tipo de conectividad, escenario mucho más seguro, deberemos pensar en una solución basada en 802.1x. Pero para ello, tanto la electrónica de red como los equipos deben soportar ese protocolo.

Desde Irlanda con amor - y V

15 Agosto 2008

Bueno, un mes y medio después, ya he subido las fotos del viaje a la galería.

En cuanto a la segunda parte del viaje, el 25 de Junio llegamos a Belfast, donde visitamos la ciudad. La ciudad en si, no es que destaque especialmente, pero hay una serie de puntos de interés que quisimos visitar dada su importancia histórica: la sede del Sinn Féin, los murales y uno de los barrios protestantes, para lo que tuvimos que cruzar una de las barreras que separan algunos barrios, cuyas puestas cerraban a las cinco de la tarde.

Al día siguiente cogimos el coche para ir hacia la punta norte de irlanda, hacia el Giant’s Causeway. Fuimos bordeando la costa y parándonos de vez en cuando para hacer algunas fotos ya que los paisajes eran increíbles (fotografías desde la irlanda_2008_0115.jpg hasta irlanda_2008_0182.jpg). Ya cerca del hotel, nos paramos en una especie de parque nacional a caminar un poco (unos 3Km.) para visitar unas cascadas. Luego, fuimos directamente al hotel.

El 27 fué “el día de la caminata”. Nos levantamos prontito y cogimos un bus hasta el Giant’s Causeway, donde visitamos las piedras exagonales y luego volvimos hacia el hotel bordeando la costa. En total, unos 13 Km. Lo peor es que no paró de llover. Al llegar al hotel, sobre las dos del medio día, emprendimos el camino de vuelta a Belfast, parándonos a comer en un pueblecito que nos encontramos.

El 28, salimos de Belfast dirección a Dublín, ya que a las cuatro de la tarde salía el avión que nos tendría que llevar de vuelta a Madrid.

¿Qué recomendaría del viaje? Dublín hay que visitarlo, pero con un par de días para vivir un poco el ambiente, ir a unos cuantos pubs y realizar las visitas culturales son más que suficientes. De Belfast, poco a destacar, pero por su importancia histórica en el conflicto irlandés creo que vale la pena visitar, aunque sólo sea para poder decir que has estado allí. Lo que yo más destacaría del viaje son las zonas “rurales” (o no urbanas, como prefiráis decirlo :-) ). Perderse por esos paisajes es una delicia.

Por cierto, la banda sonora de este viaje estuvo a cargo de Glen Hansard y Marketa Irglova, protagonistas de la película Once, rodada en Dublín. Para que os hagáis una idea de la música, os pongo el vídeo de una de las canciones:

Desde Irlanda con amor - IV

29 Junio 2008

Finalmente, las sospechas se confirmaron. Desde que dejamos Dublín no tuve oportunidad de ir actualizando el blog. Hoy hemos regresado ya a casita, a nuestra isla y ya echo de menos las agradables temperaturas de 15 grados de Irlanda.

Dejadme hasta mañana para subir las fotos y os cuento la segunda parte del viaje.

Mientras tanto, os comentaré algo que me ha pasado en el vuelo de Madrid a Palma. Detrás mío se ha sentado el típico macarrilla (”que pasa neng!!!”). En este caso en particular el elemento era madrileño, de unos veinte años y durante esas dos décadas nunca se había subido a un avión. Aunque me sorprende, lo puedo comprender. Pero lo que me ha molestado es que todo le parecía mal:

En el aeropuerto de Barajas, los aviones tienen que circular bastante por las pistas hasta llegar a la cabecera y poder despegar. Que si nos iban a llevar a Mallorca por carretera…

Durante el vuelo me ha parecido escuchar que protestaba, pero como yo llevaba los cascos puestos no he escuchado que ha dicho.

Una vez en tierra y justo cuando habíamos llegado a la terminal, se quejaba de a que esperaba la gente para salir y finalmente que a ver que pasaba con las maletas.

Llamadme tiquismiquis, pero este tipo de personas me saca de quicio.

Bueno, ya me he quejado.

Lo dicho, mañana espero tener algunas fotos ya colgadas y os cuento como terminó el viaje.

Desde Irlanda con amor - III

24 Junio 2008

Para que no os penséis que sólo estamos paseando y bebiendo cerveza, he de reconocer que ayer se me olvidó comentar que estuvimos visitando la biblioteca del Trinity College (la foto que colgué ayer es de aquí) , donde pudimos ver el libro de Kells, y paseamos por los alrededores de la catedral de San Patricio.

Hoy hemos continuado visitando el Castillo de Dublín (Wikipedia) y el museo nacional, aunque yo no usaría el termino castillo para referirme a esa construcción. Hace siglos, en ese lugar si había un castillo, pero tras un incendio quedó derruido y fué reconstruido como un palacio.

También nos hemos parado en un punto de información de Irlanda del norte ya que mañana cogemos el coche y partimos para Belfast. A parte de tener que conducir por la izquierda, también sufriremos el cambio de moneda y el de medidas: en el norte usan la libra y el sistema imperial de medidas (millas y esas cosas). Espero poder encontrar una Wi-Fi desde done poder continuar contándoos como va el viaje, pero cabe la posibilidad de que no pueda contaros nada más hasta la vuelta.

Como curiosidad, hoy nos hemos fijado que los barmans de los Pubs (al menos de los que nosotros hemos visitado) llevan corbata.

PS: No hace falta comentar que hoy ha seguido lloviendo.

Desde Irlanda con amor - II

23 Junio 2008

Segundo día en Dublín. Hoy os escribo desde la sala de estar del hostal donde nos hospedamos: Avalon House. Por aquí hay una mezcla de nacionalidades. A mi lado puedo ver dos franceses intentando ligar con dos Americanas de Washington, también he visto algún alemán, un indú, etc, vaya el típico hostal juvenil de ciudad. El local es bastante acogedor aunque las habitaciones son mejorables.

Hoy el día ha acompañado más que ayer pero también ha llovido, aunque menos. Estaba revisando las fotos que he podido hacer (no tengo el kit anti-lluvia lo que me ha impedido hacer tantas fotos como me hubiera gustado) y no he encontrado ninguna que pueda representar la ciudad, por lo que he subido una de ellas. Añadiré el resto de fotografías a la gallería del viaje cuando haya regresado.

Del día de hoy destacaría del concierto de musica irlandesa que hemos escuchado en un Pub en Temple Bar, que he acompañado de una Guiness.

Por cierto, ayer por la noche, tras el partido, no os imagináis la de gente que había por la calle celebrando la victoria con el “Que viva España”.

Bueno, aunque hoy es mas cómodo escribir, estoy algo cansado y ya me voy a ir a acostar. Os dejo hasta mañana.

Desde Irlanda con amor - I

22 Junio 2008

Buenas, para aquellos de vosotros que todavía no lo sepáis, esta semana voy a estar paseando por Irlanda. De hecho, estoy escribiendo este post desde mi iPod touch en un Pub mientras miramos el partido de la eurocopa entre España e Italia.

La ciudad de Dublín está bastante bién, muy cosmopolita, y la gente muy amable. El problema de hoy ha sido, como ya nos esperábamos, el tiempo. Ha estado lloviendo de forma intermitente pero no nos ha impedido pasear por la ciudad y todavía nos quedan algunos días de estar por aquí antes de partir hacia Glasgow. Mañana debería mejorar un poco. He hecho algunas fotos. Si puedo, subiré alguna.

Nada, que esto de escribir desde el iPod no es demasiado cómodo. Intentaré escribir cada día para que sepáis que tal.

Did you know?

29 Mayo 2008

Para aquellos de vosotros que todavia me leeis, os dejo un cromo: un video/presentación que estoy seguro os gustará.

Espero vuestros comentarios.

Link

Física divertida

15 Abril 2008

Hace ya algo más de un mes leí una noticia en meneame sobre un profesor de Física del MIT que enseña de una forma muy “didáctica”: Walter Lewin. Lo genial es que tras explicar los conceptos, los pone en práctica frente a todos los estudiantes por lo que te cuesta menos retener los conceptos, esto es, aprender.

En el OpenCourseWare del MIT están disponibles online, entre otros, los vídeos de los tres cursos de Física de este profesor en varios formatos, pero también podéis verlos desde YouTube:

  1. 8.01: Mecánica Clásica [YouTube]
  2. 8.02: Electricidad y magnetismo [YouTube]
  3. 8.03: Vibraciones y ondas [YouTube]

Encuentro a este profesor genial, por la forma que tiene de dar las clases, por la energía que desprende, por la ilusión que es capaz de trasmitir a sus alumnos. Imaginaos que la mayoría de profesores fueran así… ¿No creéis que ayudaría a combatir el pasotismo que existe hoy en día por el aprendizaje entre los más jóvenes?

Por otra parte, estos vídeos me han hecho reflexionar sobre los medios que tienen en el MIT: el tamaño de la clase, las instalaciones (pantallas, control de las luces desde la mesa del profesor, etc) y el propio hecho de que la universidad haya grabado estos y otros vídeos. Que diferencia con lo que tenemos por aquí.

Finalmente, si tras ver los vídeos a alguno de vosotros os entran ganas de ir a estudiar al MIT, preparaos… Un curso de 9 meses estudiando en el MIT cuesta 58.076$ (Matricula + Seguro + Estancia + Libros + Etc.) de media y habría que cursar entre tres y cuatro cursos para tener el título. El desglose según el documento informativo (página 17) sería:

  • Matricula: 34.750$
  • Seguro médico: 1.440$
  • Habitación y comida: 14.750$

¿Cómo lo veis?

Mallorca ¿fantástica?

13 Abril 2008

Esta semana se ha estado celebrando en Palma el festival Mallorca Fantástica (alguien debería decirle al diseñador de su web que los fondos de mosaico están algo pasados de moda :-) ). Dentro de este festival, ayer se celebró una proyección de cortos del MA ISCA y un concurso de Cosplay [en]. Vaya decepción…

A las 16:00, Xisco y yo hacíamos acto de presencia en el teatro municipal para ver los cortos y, contándonos a nosotros dos, eramos cuatro asistentes. En el momento álgido en la sala había una docena de personas. Que triste… En cuanto a los cortos, hubo algunos que me gustaron más que los otros pero en general todos estuvieron bastante bien.

Al salir de allí, fuimos al patio de la Misericordia donde a las 18:30 se celebraba un concurso de Cosplay. Otra decepción… Sólo se presentaron cinco concursantes. Hubo un disfraz de Jack Sparrow que me gustó bastante, no sólo por el traje sino por la interpretación del personaje: imitando la forma de caminar, los ademanes. Pero no fue el ganador…

Ahora, lo interesante sería ver que dicen en el acto de clausura. Por que si consideran esta participación como un éxito, es para partirse. ¿Cómo es posible que en una ciudad de casi 400.000 sólo haya doce personas interesadas en asistir a una proyección gratuita y sólo cinco interesados por el cosplay? Seguro que si en ese mismo momento hubiéramos contado las personas que estaban en los centros comerciales hubieran salido algunos miles. Y luego nos quejaremos de que Palma está culturalmente casi muerta.

PS: La semana que viene vamos a ir a la feria de la ciencia que se celebra en la Terminal A del Aeropuerto. ¿Os apuntais?

Nuevo servidor

8 Abril 2008

Hoy celebramos los algo más de dos años de inactividad de este blog y lo hacemos con varios cambios importantes: estreno nuevo servidor y versión de Wordpress.

Tras varios días de configurar Apache, MySQL, Postfix, etc (me apetecía configurar todos estos servicios a mano para desoxidarme un poco) y tras mover el blog y la galería de fotos, hoy alrededor de las 00:00 realicé los cambios en los DNS y ya deberíais ver la nueva web (si no fuera así, no estaríais leyendo este post :-P).

Debido al cambio de versión del Wordpress, el tema que solía usar ya no funcionaba del todo bien pero como era tan simple, volví a adaptar el CSS para que el tema fuera lo más parecido al que tenía anteriormente. Así que no deberíais notar nada a no ser que seáis muy detallistas y tengáis muy buena memoria.

Pues nada, a ver si recupero la costumbre de escribir por aquí.