Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

viernes, 20 de noviembre de 2015

¡Derpierta Tux!: Wake On Lan

Una red local, varios equipos físicamente alejados entre sí y la imposibilidad de acceder físicamente a algunos de ellos... Esta combinación puede resultar fatal cuando tenemos la necesidad de encender alguno de ellos, ya que puede que nos veamos en la situación de que no podamos acceder físicamente a éstos o que el desplazamiento se nos haga difícil... Afortunadamente existe una gran utilidad que nos puede sacar de este tipo de atolladeros: Wake On Lan, cuya función es la de "despertar" por red a otro equipo que se encuentre dentro de la red local.

Esta utilidad es bien conocido en todo tipo de sistemas, ya sean Windows o Linux, si bien sus usos varían un poco dependiendo del sistema en que estemos usando la aplicación... En este caso me centraré en el uso de Linux, en concreto Debian, pues se realiza desde la consola y puede resultar de lo más interesante. 


Para ello antes de nada habría que instalar la aplicación que nos permitirá realizar dicha acción, denominada wakeonlan; la cual puede instalarse muy fácilmente gracias a los repositorios oficiales. Esto es tan sencillo como escribir:

apt-get install wakeonlan

Ahora que tenemos la herramienta instalada, únicamente faltaría conocer cómo usarla. Su uso es de lo más sencillo, si bien hay que tener en cuenta que si la placa base del pc objetivo no posee integrada la función de Wake On Lan (cosa muy rara en las placas actuales), no se podría despertar e dicho equipo sin importar cuantas veces lo intentásemos. Imaginemos que el equipo objetivo cumple los requisitos para ser despertado; es decir que se encuentra en la misma VLAN que nosotros, y además posee una placa con la posibilidad de recibir Wake On Lan. El uso de esta herramienta es extremadamente simple, si bien hay que tener en cuenta que para mandar la orden no tenemos que saber la ip destinatario (o al menos no se trata de un dato imprescindible) sino que debemos conocer la dirección MAC de éste; para ello debemos comprobar físicamente la MAC de la tarjeta de red del equipo, o bien apuntar la MAC de éste mientras está encendido mediante el comando:

ifconfig eth0 |grep HWaddr |awk '{print $5}'

A sabiendas de la MAC de destino que va a recibir nuestro comando, para enviar el comando a dicha MAC habría que escribir:

wakeonlan 00:0c:29:87:fa:45

La  cuestión está que este comando a veces puede resultar muy agresivo a nivel de red, o incluso puede verse filtrado por un cortafuegos; además de que el comando solo puede contemplar una sola MAC de destino, así que si tuviésemos varias MACS habría que ir una por una lanzando el comando... con lo que aunque el comando en sí es efectivo, a veces es mejor valerse de ciertos parámetros que nos brinden la ayuda necesaria. Es por ello que existen 3 parámetros muy útiles que acompañan a este comando:

  • -p: Gracias a éste parámetro podemos especificar el puerto al que queremos enviar el comando wake on lan... Por defecto se usa el puerto 9, pero puede que algún cortafuegos lo filtre, con lo que podemos "esquivar" dicho filtro gracias a este parámetro.
  • -i: Podemos acotar y en vez de enviar el comando a todos los equipos de alrededor (y que solo se dé por aludida la MAC especificada), podemos enviar el comando a una dirección ip en concreto; dirección que el switch asociaría a una de sus bocas de red en concreto y a través de la cual enviaría el comando.
  • -f: En mi opinión el más útil de todos... Podemos almacenar una lista de direcciones MAC dentro de un fichero .txt que podría ser consultado mediante este parámetro; pudiendo enviar el comando a varias MAC simultáneamente.
Todos los parámetros son perfectamente combinables entre sí, con lo que si deseásemos enviar el comando wake on lan a varias MAC a la vez a través del puerto 10, habría que escribir:

wakeonlan -p 10 -f /home/ivan/lista_macs.txt

Mientras que si deseásemos enviar el comando a una mac, con una ip en concreto y a un puerto en concreto, el comando sería:

wakeonlan -i 192.168.1.7 -p 11 00:0c:29:87:fa:45

Si fuésemos muy paranoicos y no deseásemos que nuestro equipo fuese "despertado" remotamente, no nos quedaría otra que acceder a la BIOS de éste y deshabilitar la opción Wake On Lan.

Saludos.

No hay comentarios :

Publicar un comentario