Archivo de la categoría: Cisco

Arrancando tu equipo de forma remota desde tu dispositivo Android

Imaginaos que, estando fuera de casa, queréis acceder a algún archivo o servicio de vuestro PC de casa pero éste está apagado. Lo que os voy a explicar aquí es cómo encenderlo de forma remota mediante wake on lan.

En el equipo a encender

En el equipo que queréis encender tenéis que instalar ethtool, que es una utilidad que permite controlar diversos parámetros de la tarjeta de red. Para ello, como siempre:

# aptitude install wakeonlan ethtool

Una vez instalado, tenemos que configurar nuestra tarjeta de red para que, una vez que se apague el equipo, ésta quede «a la escucha» de paquetes especiales de red llamados MagicPacket (paquetes mágicos), de forma que, cuando reciba uno, la máquina se encenderá. Para ello ejecutamos -como root- el siguiente comando:

# ethtool -s eth0 wol g

Con «-s eth0» indicamos la interfaz que queremos configurar con Wake On Lan y con «wol g» le decimos que queremos configurar dicha interfaz tal y como comentábamos, esto es, que «despierte» (que arranque) al recibir un «MagicPacket».

En el dispositivo Android

Ahora vamos al dispositivo Android. En este caso, instalamos la aplicación Wake On Lan (intuitivo, no?). Una vez instalada, simplemente tenemos que indicar el equipo queremos encender. Para ello, especificamos la dirección MAC de la tarjeta de red del equipo queremos encender y su IP. También se especifica un puerto, que normalmente es el puerto 7 o el puerto 9, pero os funcionará con cualquier puerto.

Lógicamente, si la IP que indicáis es la IP local del equipo (algo como 192.168.1.3), esto sólo os funcionará si estáis precisamente en esa misma red (por ejemplo, conectados por wifi al router de vuestra casa). Pero nosotros queríamos encenderlo estando fuera de casa, usando para ello nuestra conexión de datos 3G/HSDPA del móvil. Os cuento cómo tenéis que hacerlo.

Básicamente tenéis que configurar un port forwarding (una redirección de puertos) en el router, de forma que los paquetes UDP dirigidos a la IP pública vuestra y puerto UDP -por ejemplo- 33333-los reenvíe a la dirección de broadcast de vuestra red. Esta dirección será algo acabado en .255. Por ejemplo, si vuestro PC tiene la IP 192.168.1.3, la máscara de red será 255.255.255.0 y, por tanto, la dirección de broadcast es la 192.168.1.255. Ésta es la que tenéis que especificar en el router.

En particular, si nuestro router adsl es Cisco, os indico lo que tenéis que configurar exactamente:

1.- En la interfaz Vlan1 permitiremos el forward de los broadcast:

# ip directed-broadcast

2.- Añadimos un port forwarding a la dirección broadcast de nuestra red y un puerto UDP (el que queramos, da igual):

# ip nat inside source static udp 192.168.1.255 33333 interface Dialer1 33333

donde 33333 es el puerto que hemos especificado (insisto, podemos poner el que queramos entre 1024 y 65535).

Os preguntaréis, ¿por qué no puedo especificar la IP propia del PC en lugar de la dirección broadcast? Pues porque el router retiene la dirección MAC de vuestro PC durante un tiempo (*), pero al cabo de un rato se borra dicha dirección MAC de las tablas del router (para ser más exactos, de las tablas arp del switch que vuestro router adsl incorpora). Esto lo podríais solucionar si en vuestro router podéis meter traducciones arp estáticas, pero no es una opción que esté normalmente disponible en los routers adsl domésticos (al menos no desde el interfaz web, que será seguro el que uséis para «trastear» el router (**)).

Volviendo al tema en cuestión, si simplemente tenéis que especificar la IP pública de vuestro router en la apli Wake On Lan y, como siempre, la MAC del PC que queréis arrancar (eso no cambia).

Claro, prácticamente todo el mundo que usa banda ancha con adsl usa direccionamiento dinámico para la IP pública. ¿Cómo acceder entonces? Pues usáis Dns Dinámico. Existen varios proveedores de este servicio. Yo uso dyndns y me va de perlas.

En un equipo Linux

Si lo quisiéramos arrancar desde un equipo Linux en lugar de un dispostivo Android, instalaríamos el paquete wakeonlan:

# aptitude install wakeonlan

Para arrancar el equipo simplemente ejecutaremos

wakeonlan MAC

donde MAC es la dirección MAC del equipo que queremos arrancar.

 

Para el caso de IP pública:

$ wakeonlan -i IP_PUBLICA_O_NOMBRE -p 33333 MAC

También podéis usar el comando etherwake:

# aptitude install etherwake

Y, de forma similar a como hacíamos con wakeonlan, ejecutaríamos:

$ etherwake MAC

Si alguien se ha perdido y quiere que le concrete/explique algo, que lo comente y se aclara lo que sea necesario. Es posible que use algún tecnicismo pero debo partir de un cierto nivel de redes porque si no este artículo sería eterno. Insisto, si tenéis dudas y os interesa el tema preguntad y hallaréis respuesta -en la medida que esté en mi mano-.

Espero que os sea útil.

 

(*) De hecho, si especificáis la IP del equipo en lugar de la de broadcast, os funcionará durante unos minutos, pero si pasa un rato y probáis es posible que ya no os funcione porque el router ya no recuérda qué MAC corresponde a la IP en cuestión ni por qué puerto del router (del switch, para ser más exactos) tiene que enviar el paquete.

(**) Si alguien quiere ir a más, podéis acceder con telnet ssh y usar una interfaz de comandos que permite ir más allá y tener más control del router que desde el interfaz web.

NOTA: Previamente hay que activar el WOL en BIOS. Si la placa es moderna normalmente no hace falta ni poner el cable desde la tarjeta de red a la placa ya que si soporta PCI 2.2 tendrá la energía suficiente para el WOL. Si tiene tarjeta integrada, obviamente, tampoco hará falta el cable.

 

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.