Archivo por meses: Marzo 2013

Configuración VPN IPsec en routers Cisco (con preshared keys)

En este artículo voy a explicar cómo configurar una VPN entre routers (y en general, cualquier equipo que incluya en su IOS el módulo de criptografía) de la marca Cisco.

No voy a entrar en detalles en este artículo sobre qué es una VPN, qué pasos son necesarios para una VPN IPsec, etc. (es posible que en algún artículo posterior lo haga).

Aquí, lo que voy a mostrar, es la secuencia de pasos a seguir para configurar una VPN IPsec entre equipos Cisco. Primero veremos los pasos necesarios para configurar la parte concerniente a IKE y luego los correspondientes a la parte IPsec propiamente dicha.

1.- IKE

1.1.- Asegurarse de que las listas de acceso permiten el tráfico del puerto UDP 500, que es el que usa IKE para negociar.

1.2.- Definir la política IKE (hay que definir una como mínimo -se pueden definir más; se usará la que coincida con la definida en el otro extremo-). Para ello hay que definir 5 parámetros:

1.2.1.- El tiempo de vida de la conexión IKE.
1.2.2.- El algoritmo hash, el algoritmo de cifrado.
1.2.3.- El método de autenticación.
1.2.4.- El identificador de grupo.
1.2.5.- Diffie-Hellman (que puede ser 1 -768 bits- ó 2 -1024 bits).

No es necesario definir explícitamente todos los parámetros. En este caso, los valores que no declaramos específicamente los toma de los valores por defecto (que para la mayoría de los casos nos pueden valer perfectamente). Ejemplo:

# crypto isakmp policy PRIORIDAD
 hash md5
 authentication pre-share
 lifetime 28800

donde PRIORIDAD es un número. Es la prioridad que le damos a la política IKE. Si definimos varias, querremos que primero se pruebe una, si no puede ser (no la tiene el otro extremo) que se pruebe otra, y así sucesivamente.

1.3.- Definir la identidad (ISAKMP) del peer:

# crypto isakmp identity (DIRECCION_IP | NOMBRE_HOST)

Es opcional. Si no la ponemos, por defecto coge la
IP. Lo normal es no ponerlo y que coja la IP.

1.4.- Configuración de las claves precompartidas (preshared keys).

# crypto isakmp key CLAVE address DIRECCION_IP

2.- IPsec

2.1.- Asegurarse de que las listas de acceso permiten el paso
de los protocolos 50 y 51, que son los que usa IPSec.

2.2.- Definir el tiempo de vida de las asociaciones de seguridad.

# crypto ipsec security-association lifetime seconds SEGUNDOS

o bien

# crypto ipsec security-association lifetime kilobytes KILOBYTES

Podemos omitir este paso. En tal caso, usará los valores
que tiene definidos por defecto.

2.3.- Creación de lista de acceso criptográfica. Especifica
qué tráfico debe enviarse cifrado con IPSec:

# access-list NUMERO_LISTA_ACCESO (deny | permit) protocolo...

o bien

# ip access-list extended NOMBRE

(En un artículo posterior hablaré de cómo configurar listas de acceso en routers Cisco).

2.4.- Definición del conjunto de transformadas

# crypto ipsec transform-set NOMBRE_CONJUNTO_TRANSFORMADAS transformada1 [transformada2... mode (tunnel | transport)

Poner lo de mode es opcional. Por defecto es modo tunnel.

2.5.- Definición de entradas del mapa criptográfico

# crypto map NOMBRE_MAP NUM_SEC ipsec-isakmp
 match address ID_LISTA_ACCESO
 set peer (NOMBRE_HOST | DIRECCION_IP)
 set transform-set NOMBRE_CONJUNTO_TRANSFORMADAS1 [NOMBRE_CONJUNTO_TRANSFORMADAS2...]
 [set security-association lifetime seconds SEGUNDOS ] o bien
 [set security-association lifetime kilobytes KILOBYTES ]

La orden “match…” sirve para indicar la lista de
acceso donde se especifica el tráfico “interesante”.

La orden “set peer…” indica el peer con el que nos
vamos a comunicar. Podemos poner tantos como queramos.

La orden “set transform-set…” especifica el conjunto
(o conjuntos) de transformadas a usar.

La orden “set security-association…” especifica vidas
de SA diferentes a las especificadas en el modo de
configuración global (definidas en el paso 2.2). Este
paso es opcional.
2.6.- Aplicación de los conjuntos de mapas criptográficos a interfaces.

Router (config-if)# crypto map NOMBRE_MAP

Espero que os sea útil.

El curioso caso de los archivos .m3u y la palabra “section”

Para reproducir música en mi PC hago uso del magnífico Audacious y de unas listas de reproducción en formato .m3u que tengo en un directorio. Mediante combinaciones de teclas reproduzco cualquier lista de reproducción en un plís.

Hace un tiempo observé que una de las listas no me aparecía con su icono correspondiente (el de audacious), es decir, como que esa lista .m3u en concreto no estaba asociada a la aplicación Audacious.

Volví a crearla y de nuevo volvió a dejármela sin asociar a audacious. De hecho, me la asociaba a emacs (el editor de texto que tengo por defecto, como es natural). O sea, un fichero .m3u exactamente igual que los otros (cambiando, lógicamente, el título de las canciones y demás) pero que no era reconocido como tal.

Tenía pendiente -ya por curiosidad- investigar por qué narices esa lista en concreto no se reconocía como un archivo .m3u, así que me puse a ello.

Tras muchas, muchas pruebas (moviendo directorios de sitio, renombrándolos, probando con otras listas .m3u que sí funcionaban…), he llegado a la sorprendente conclusión de que si uno de los directorios incluye la palabra “section”, el archivo no se reconoce como .m3u. Acojonante.

Si no os lo creéis probadlo y me contáis (uso KDE 4.9.5 -kubuntu 12.10- por si tiene que ver).

Un poco de… consola (I): backups en CD/DVD

Con este título inicio una sección que hablará sobre la consola de Linux (utilidades varias, trucos, curiosidades…). Así que, cuando tenga alguna cosita interesante que contaros al respecto, lo haré bajo un título similar (cambiará el número romano, eso sí).

Yo uso la consola a diario y, para las cosas más cotidianas, las que uso con mayor asiduidad, intento siempre crear un script y/o un alias para poder llevarlas a cabo de la forma más fácil y rápida posible.

Como habrá más artículos al respecto, no seré muy extenso intentando que sean cosas concisas y rápidas de probar (mejor aprender bien un truco ó dos que no ver un montón y no enterarte de nada). La idea es, por un lado, satisfacer vuestra curiosidad y, por otro, si lo encontráis interesante, que ampliéis vuestros recursos a la hora de trabajar con la consola.

Una vez hecha esta pequeña introducción a la nueva sección (el evento lo merecía ;-)), vamos ya al grano.

Hoy voy a hablaros de cómo grabar CDs/DVDs desde la consola. Imaginad que queréis meter unos archivos en un DVD. Yo, en mi caso, hago esto:

$ du DIR
$ ndvd DIR

donde DIR es el directorio donde tengo los archivos que quiero grabar. El primero me dice cuanto ocupa el directorio en MB/GB y el script ndvd graba ese contenido en un CD/DVD. Os detallo un poco más:

El comando du, en mi equipo, es un alias a ‘du -h –max-depth=1’, y ndvd es un script que creé y que contiene lo siguiente:

$ mkisofs -r -v -o imagen.iso $1
$ sudo cdrecord -v -speed=4 dev=/dev/sr0 imagen.iso

Este script, como véis, lo que hace es, primero generar una imagen iso del directorio (que luego podéis usar para grabar tantos DVDs como queráis usando cdrecord) y luego se graba al DVD.

Esto es todo por hoy. Probadlo y me contáis. Se admiten sugerencias.

Cómo usar un router adsl como un simple punto de acceso

Situación inicial: tengo un router adsl con wifi y dhcp activado que me permite conectar varios dispositivos inalámbricos a Internet.

Situación deseada: colocar un nuevo router adsl que no tiene wifi pero que es más potente, tiene más funcionalidad, etc. (como un Cisco 837, por ejemplo) y usar el router adsl con wifi que tenía como un punto de acceso.

Realmente no es nada complicado configurar ambos equipos. Nos referiremos al router principal (el que no tiene adsl) como router Cisco (en mi caso lo es ;-)) y al otro como router wifi.

El router Cisco, una vez que lo configuramos con los parámetros adecuados para que se conecte a Internet con PPPoE o el protocolo que use nuestro proveedor de acceso a la red de redes, ya podemos conectar por cable cualquier equipo y tendrá acceso a Internet. En dicho router Cisco configuramos también un servidor DHCP para que no tengamos que estar configurando las IPs estáticamente (que en cacharrines como móviles, tablets, etc., puede ser un poco tedioso).

Pese a que nuestro flamante Cisco tiene posibilidades como creación de VPNs diversas o configuración de ACLs -por ejemplo-, todo ello a una velocidad bastante aceptable, no tiene wifi (*). ¿Qué hacer entonces? Lo más sencillo es comprar un punto de acceso y a correr, pero si tenemos un router adsl con wifi (de Orange, de Movistar, de Vodafone…) como es nuestro caso, pues podemos configurarlo como punto de acceso y unos eurillos que nos ahorramos, además de que habremos pasado un buen ratillo cacharreando un poco, nor?

Para configurar nuestro router wifi como punto de acceso no hay que hacer realmente mucho: configuramos la wifi y a correr ;-). El problema que se presenta es que teníamos activado DHCP y no debemos tener dos servidores DHCP distintos en una misma red (dependiendo del que nos diera primero la configuración tendríamos acceso a Internet o no). Así pues, hemos de deshabilitar el DHCP de nuestro punto de acceso. Con esto estaría… o no?

Pues puede que sí y puede que no, me explico. El problema aquí es que para que funcione todo bien, el router wifi debe ser capaz de hacer lo que se conoce como dhcp relay, es decir, dejar pasar las peticiones dhcp que le llegan por wifi y hacerlas llegar al servidor dhcp que está escuchando en un puerto ethernet y viceversa, hacer llegar las respuestas del servidor dhcp (nuestro router Cisco) al cliente que las solicita (nuestro portátil, móvil, tablet…).

Algunos routers de los que regalan los operadores cuando te das de alta en adsl, hacen ya por defecto el dhcp relay, con lo que los enchufaréis y funcionarán sin hacer nada. Esto creo que ocurre, por ejemplo, con algún que otro Comtrend de Movistar con el que he hecho pruebas.

La mayoría, sin embargo, no tienen activada esta opción por defecto, como es el caso de los Huawei HG532c (que suele dar Orange) o bien los Huawei HG556a (que suele dar Vodafone).

Para más inriestos routers no tienen forma de habilitar la opción de dhcp relay desde el panel web de configuración. En tal caso, tenemos que investigar un poco más para ver cómo descargar el archivo de configuración del router, modificarlo a pelo y volverlo a subir al router.

Alguien lo hizo ya en su momento y se curró un buen tutorial, por cierto. Si queréis saber cómo hacerlo en un router Huawei HG556a, aquí lo tenéis.

Si usáis un router como este último, sabed que lleva alguna función interesante, como por ejemplo, servidor DLNA, que os permite conectar un pendrive o disco duro externo con pelis/música/fotos y visualizarlo desde cualquier cacharrín que tengáis en vuestra red (televisión, móvil, portátil, tablet…).

Alguien se habrá preguntado, ¿por qué tanto rollo si puedo deshabilitar el dhcp en el router Cisco y dejarlo habilitado en punto de acceso? Ciertamente, vuestros equipos cogerían la configuración de red sin problemas, pero no podrían navegar, por qué? Porque la dirección de puerta de acceso de internet (gateway por defecto) sería la del propio punto de acceso, pero ésa no es la dirección correcta, ya que no es el que está conectado directamente a Internet.

En un router de éstos sencillitos no se puede configurar qué direcciones de gateway por defecto o dns proporciona el servicio dhcp, y como no está actuando como router (esta función hemos dicho que la está haciendo el router Cisco), no nos queda otro remedio que deshabilitar dicho servicio en el que hace de punto de acceso sí o sí.

Si tenéis alguna duda comentádmelo y lo vemos.

(*)  Ojo! Hay routers Cisco con wifi, por supuesto, pero en el caso que nos ocupa no tiene -de ahí que tengamos que usar el router wifi que teníamos como punto de acceso-.

Apariencia de la web actualizada

Esta tarde he actualizado -por fin- a la versión 3.5.1 de WordPress (ya tocaba). Aprovechando que esta tarde tenía ganas de modernizar cosas, he actualizado también la versión del tema de la web. En concreto, antes tenía el tema Twenty Eleven y ahora tiene el Twenty Twelve. Está más estilizado, nor?

A mí me gusta, ¿y a vosotros? Aunque el diseño y la estética o apariencia de una web son algo muy personal, se agradecen críticas constructivas.

El jueves a las 22:00, como siempre -o eso intento-, nuevo artículo. Esta vez toca algo de redes. ¿Podréis aguantar hasta entonces? … 😉