En ocasiones nuestro Movimiento ha de encolumnarse activamente en una lucha por la defensa de los intereses de la Nación en contra de una Oligarquía sin Patria ni Bandera.
En ellas ocasiones podremos tener que recurrir al último recurso que aguarda a los hombres que tienen algo que defender: recurrir a una guerra cruenta, sumamente dañina y sumamente peligrosa.
Pero en más ocasiones podremos sumar golpes de mano a un enemigo desprevenido y confiado, haciendo uso del terreno para proteger nuestras fuerzas y de nuestro Pueblo como herramental de lucha.
Este tipo de estratagema es tan antigua como las huestes de Darío, y contarán con las mismas ventajas que las de antaño: podrán maniobrar, golpear y retirarse sin necesidad de una pesada carga ni de un férreo liderazgo centralizado. Sólo es requerida la organización que en terreno y en el campo de acción pueda darse a unos pocos hombres decididos que deben sabér qué es lo que han de hacer.
Nuestro objetivo fundamental a tener en cuenta es el de lograr el bienestar de los trabajadores. Cuando el mismo se vea en peligro, tendremos ante nosotros una lucha tan necesaria como sencilla, en vista de una divisa clara y un enemigo identificado.
Nuestra acción en el campo táctico hace uso y potestad del anonimato que otorga el accionar entre la Masa.
Indudablemente que un problema básico para dicho anonimato y
privacidad radica en lo obvio: que el enemigo intercepte el tráfico telemático. Una manera muy simple de análisis de tráfico
puede realizarse en cualquier lugar intermedio, e incluso en estos casos simples, poner en peligro a nuestra Masa de Acción y sus organizaciones.
Mis descamisados me han preguntado ¿cómo funciona el análisis de tráfico? Pues bien, os lo explicaré. Los paquetes de datos fundamentales de
internet constan por designio del protocolo TCP/IP de dos partes: una carga útil y un encabezado empleado
para su enrutamiento. La carga útil puede convertirse en cualquier dato digital traficado, ya sea un mensaje de correo electrónico, contenido de una
página web, un archivo de audio, parte de un stream audiovisual,
etc. Incluso si encriptamos la carga útil en sus comunicaciones, un
análisis superficial de datos puede aún revelar gran parte de nuestras supuestas actividades y accionares. Esto es así porque tal procedimiento hace foco sobre
el encabezado del paquete telemático (que contiene el remitente, el destino, el tamaño, datos
de horarios, etc). Intermediarios
autorizados, como los proveedores de internet, y a veces intermediarios
no autorizados (como dichos mismos proveedores cuando están en manos
oligárquicas coaligadas) pueden reconocer rápidamente patrones de tráfico, desde donde y hacia donde se originan, y trazar conclusiones relativamente directas sobre su contenido, las tácticas empleadas, etc.
Pero
también existen análisis de tráfico profundos, mucho más negativos y peligrosos: un actor dedicado puede espiar múltiples partes de la red y emplear cruzados estadísticos
sofisticados para rastrear patrones de comunicación de individuos u organizaciones específicas, para lograr peinar los datos con mucha más fiabilidad.
Para evitar dichos avances, los hombres que luchan han de conocerlos y poderles hacer frente. Nuestro Movimiento, anclado en una vertiente de Justicia Social en el software, ha desarrollado una red oscura, tan oscura como la piel del más negro de nuestros grasitas. Se trata del proyecto Tor.
Tor, a través de sus servidores, ayuda a reducir los riesgos telemáticos inherentes a través de la
distribución de las transacciones telemáticas a lo largo de múltiples
lugares en la Internet, de manera que en ningún punto pueda se pueda dirigir hacia su
destino u origen específico, de la misma manera que una liebre alguien podría seguir una
ruta rebuscada para perder al mastín, y luego
periódicamente borrase sus huellas. En lugar de que la
paquetería TCP/IP siga una ruta relativamente directa en pos de la velocidad, en la red Tor dicha
paquetería pasará a través de varios caminos secundarios
que cubren sus pasos, de manera tal que ningún observador pueda hacer
rastreos de origen o destino. Esto se realiza
en beneficio de un uso anónimo y neutral de la red.
Para navegar a través de Tor lo más sencillo es hacer uso de un navegador especialmente concebido, situación que ya he explicado. Pero esto acarrea ciertas limitaciones. En particular, el hecho de que el navegador sólo protege el tráfico dable de visualizarse en el mismo, y no otro tipo de conexiones telemáticas que podríamos querer o necesitar realizar en nuestro equipo.
Para suplir dichos inconvenientes, lo más completo por hacer es blindar completamente nuestra conexión hogareña a través de un punto de Acceso Tor. Una forma muy completa y potente de hacerlo es reprogramando un barato router y disponerlo para que el uso del mismo sea absolutamente exclusivo para la red oscura.
Punto de Acceso Wifi con Tor
El navegador Tor anterior es una herramienta muy útil para navegar anónimamente de forma Montonera, pero a lo bueno hemos de transformarlo en lo mejor. Gracias al Justicialismo, podremos hacer que el tráfico entero de una red sea transmitido a los servidores Tor por medio de un dispositivo de enrutamiento especial.
Esto es extremadamente útil y poderoso en ocasiones específicas de seguridad, cuando realizamos una peña de ajusticiamiento telemático, y en toda ocasión conspirativa donde hemos de combatir a la opresión del sistema Capitalista.
Sólo necesitamos reprogramar un minirouter y tornarlo en una caja compañera que oficie de proxy Tor ¡y hacer de él un punto de acceso wifi que ofusque todo nuestro tráfico a terceros a través de la red negra peronista!
Para ello emplearemos un Router Portátil N150 3G/4G TP-Link TL-MR3020 y un pendrive viejo. La acción de reprogramación consistirá en instalarle un firmware
peronista, el OpenWrt, convenientemente modificado para este menester
Tor.
El hardware original era una auténtica burla al Pueblo, una avivada de aquellas a las que nos tiene acostumbrado un Capital sin Patria ni Bandera. A pesar de que se vende bajo la premisa de ser "un router Wifi N portátil de redes 3G/4G", la realidad es que el MR3020 no posee ninguna interfaz de telecomunicaciones para dichas normas móviles, y si el usuario quere hacer uso de lo que se anuncia en la caja del aparato, debería proveer una aparte, de tipo USB y con un chip activado para dichas redes. En dicho caso, preveía "compartir" la conexión 3G/4G a través de señal Wifi normalizada. Hoy muchos smartphones ya cuentan con dicha posibilidad incorporada, lo que hace redundante esta cajita de 400 pesos.
El aparatito consiste en un minirouter que tiene una interfaz Wifi 802.11n de 150mbps, un conector Ethernet de 100mbps, junto con un puerto USB 2.0. Se lo alimenta a través de un segundo puerto USB mini-B (este unicamente para alimentación), y tiene como ventaja un consumo extremadamente bajo, ya que gasta en promedio 120 miliamperes a 5 volts, aproximadamente 600 miliwatts. Su hardware es típico para un router viejo, con un microprocesador de arquitectura MIPS Atheros AR9331 de 400 MHz, 32MB de memoria RAM DDR y una memoria ROM flasheable, de 4MB, todo adosado en una plaquetita con dos LEDs (uno pulsable, botón WPS) y un conmutador. Como su utilidad original básica ha sido incorporada ya en muchos teléfonos celulares que ya pueden oficiar de router portátil, haremos uso de este TL3020 un Robocop justicialista agregándole el firmware compañero OpenWRT, el Linux capaz de correr en routers peronistas.
Para ello os guiaré paso a paso, como válido Conductor de la Masa Justicialista.
Suponiendo que el minirouter cuenta con sus valores de fábrica, podremos reprogramarlo rápidamente instalándole OpenWRT Barrier Braker, versión liviana y suficiente. Para ello nos conectamos a Internet con el minirouter a través de un cable Ethernet, y descargamos a nuestro sistema el archivo openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin. Luego nos loguemos a la ventana de control del minirouter dirigiendo nuestro navegador a la dirección IP de la misma (de fábrica es 192.168.0.1, usuario admin, contraseña admin). Conforme veamos la web de control del minirouter, vamos ala función Herramientas de Sistema ("System Tools") / Actualizar firmware ("firmware update") y presionando el botón Browse le ingresamos el fichero openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin que acabamos de descargar, y presionamos el botón Actualizar ("Upgrade").
La barra de progreso se llenará dos veces (reprogramando la EEPROM del minirouter y reiniciándolo, accionar que dura unos 4 minutos). Concluido este requisito tendremos instalado el firmware OpenWRT Barrier Breaker en el minirouter.
Inicialmente podremos loguearnos al minirouter TL3020 reprogramado abriendo una terminal Linux con Ctrl+Alt+T e ingresando de forma no cifrada, por medio del comando:
telnet 192.168.1.1
Ahora podremos usar el editor Vi incorporado en el firmware libre del minirouter para modificar sus archivos de configuración y de esta manera reprogramar su funcionamiento, a fin de que opere como un cliente proxy de Tor altamente seguro.
Lo primero será ponerle al minirouter una clave para conectarnos a través de un enlace seguro SSH. Ingresamos el comando:
passwd
El sistema nos indicará:
Changing password for root
New Password:
Tipeamos "a ciegas" una contraseña que se nos ocurra para las sesiones
de configuración del minirouter. Debemos repetirla para no tener problemas.
Una vez que el procedimiento esté completo, nos indicará con el mensaje "Password for Root changed by root"
("contraseña para root cambiada por el root"). Es importante saber que
una vez configurada nuestra clave a través del sistema de consola
insegura Telnet, la misma se desactivará, de modo que a partir de este momento sólo podremos utilizar el método de logueo seguro cifrado SSH.
Ahora reconfiguraremos el minirouter. Usaremos el editor Vi para modificar algunos archivos de configuración. Tendrán presente que Vi es un editor de texto mínimo,
adecuado para correr directamente desde el procesador del minirouter. En Vi, a diferencia de Nano u otros editores más complejos, no podremos escribir hasta que no activemos el modo de inserción de texto. Esto lo haremos presionando la tecla "i". Luego podremos tipear y modificar el texto.
Modificamos el archivo de configuración /etc/config/system con este comando:
vi /etc/config/system
...buscamos la primera línea hostname que dice:
config system option hostname 'OpenWrt'
...presionamos i para pasar al modo de inserción de texto, y la modificamos para que quede:
config system option hostname 'cajator'
Una vez que hayamos hecho la edición, debemos guardar el archivo en la memoria del minirouter. Para hacer esto en el editor Vi presionamos Esc para pasar al modo de comandos y luego ingresamos: :w
...y salimos del editor con:
:q
Ahora bien, el programa de proxy Tor para el minirouter está disponible como un simple paquete del gestor de paquetes de OpenWrt, el opkg. esto lo hace fácil de instalar. Sin embargo, con los escasos 4MB de memoria EEPROM que tiene el minirouter en su placa, es insuficiente para instalarlo en él. Para resolver esto necesitaremos más espacio para instalar paquetes: usaremos como almacenamiento externo un pendrive viejo (en este caso uno de 1GB), conectado al puerto USB del minirouter. Para ello pasaremos el sistema de archivos de resguardo ("overlay") a dicho medio de almacenamiento externo.
En primer lugar formateamos el pendrive USB viejo con formato ext4 empleando nuestra PC con Linux (por ejemplo, usando la aplicación gnome-disks), y luego lo conectamos al minirouter.
Podremos entonces montar el sistema de archivos (necesitaremos instalar algunos paquetes para los módulos de kernel adecuados), y copiar la partición de resguardo ("overlay") allí. Nos volvemos a loguear al minirouter, y desde una terminal usamos de ahora en más una conexión SSH en lugar de la Telnet (que ha quedado desactivada):
ssh root@cajator
Una vez ingresados a la consola del minirouter, ingresamos los siguientes comandos de organización:
opkg update opkg install kmod-usb-storage kmod-fs-ext4 block-mount mkdir /mnt/usb mount /dev/sda1 /mnt/usb tar -cf -C /overlay - . | tar -xf -C /mnt/usb -
Al emplear el comando tar para copiar el sistema de archivos de resguardo ("overlay") es siempre un buen hábito mantener todo absolutamente intacto (incluendo permisos y enlaces directos). Lo que hace tar realmente es reducir todo el sistema de archivos a un chorro de bytes, y luego convierte este chorro de bytes en un sistema de archivos.
Luego modificaremos el archivo /etc/config/fstab con:
vi /etc/config/fstab
...pasamos al modo de inserción de texto presionando i y agregamos lo siguiente al final del archivo:
[...]
config mount
option target'/overlay'
option device'/dev/sda1'
option fstype'ext4'
option options'rw,sync'
option enabled1
option enabled_fsck0
...grabamos el archivo y salimos del editor presionando Esc y luego escribiendo :wq y presionando Enter.
Acto seguido, reiniciaremos el minirouter, de manera que el pendrive USB colocado quede montado en la carpeta /overlay de su sistema de archivos del mismo. Podremos hacerlo desde la consola del minirouter mediante el comando:
reboot
Conforme el minirouter vuelva en sí, podamos volver a acceder a su consola con el comando:
ssh root@cajator
...y podremos instalar Tor en el pendrive externo fácilmente. Para ello le ingresamos los siguientes Comandos de Organización:
opkg update
opkg install tor
...y como el sistema ahora tendrá suficiente espacio en el pendrive para descargar la pesada paquetería de Tor, podrá instalarlo. Debemos notar que - como es obvio - el pendrive siempre deberá permanecer conectado al minirouter cuando querremos usar el proxy Tor. Para que todo funcione, como siguiente medida hemos de configurar la interfaz inalámbrica del minirouter (si la deseamos emplear). Ello lo haremos con:
vi /etc/config/wireless
Y nos aseguramos de modificar el campo wifi-iface para que quede de la siguiente manera:
config wifi-device radio0
option type mac80211
option channel auto
option hwmode 11ng
option path 'platform/ar933x_wmac'
option htmode HT20
list ht_capab SHORT-GI-20
list ht_capab SHORT-GI-40
list ht_capab RX-STBC1
list ht_capab DSSS_CCK-40
option disabled 0
option txpower 27
config wifi-iface
option device'radio0'
option network'lan'
option mode'ap'
option ssid'Caja Tor Peroncha' # SSID del minirouter
option encryption'psk2+ccmp'# Activa encriptación WPA2 option key'MI_CLAVE_WIFI'# Clave de la wifi tor
Luego de guardar los cambios y salir del editor Vi con Esc + :wq, configuraremos la red cableada y sus relaciones. La red LAN empleará el rango de direcciones IP 192.168.180.0/24 y la interfaz Ethernet del router empleará la IP fija 192.168.180.1. Para ello empleamos el comando:
vi /etc/config/network
...y editamos el siguiente contenido en los campos 'lan' y 'wan':
option ipaddr'192.168.180.1'# IP de la interfaz LAN Wif
option netmask'255.255.255.0'
config interface'wan'
option ifname'eth0'
option proto'dhcp'# WAN (ethernet) usa DHCP para recibir la IP
Conforme todo esto esté realizado y grabado, modificaremos la configuración del Cortafuegos para desactivar la compartición entre las redes LAN y WAN. Usamos el comando:
vi /etc/config/firewall
...y nos aseguramos de que las los cambios al principio del archivo dejen al mismo con las siguientes modificacionesde contenido:
config defaults
option input ACCEPT
option output ACCEPT
option forward REJECT
option syn_flood1
option disable_ipv61# borrar el #desactiva IPv6, el minirouter será IPv4
config zone
option name'lan'
list network'lan'
option input ACCEPT
option output ACCEPT
option forward REJECT# Importante: no transmitir tráfico desde la LAN
option conntrack1
[...]
Ahora necesitamos agregar dos líneas específicas de iptables en el archivo /etc/firewall.userpara redirigir los pedidos de DNS y las conexiones TCP de la red LAN al demonio Tor. Otros tipos de tráfico, por ejemplo otros protocolos sobre UDP, no serán ruteados a la WAN, y simplemente serán rechazados. Esta configuración restrictiva impide ciertos ataques. Sin embargo, no seamos tan inocentes como para pretender que otros protocolos no puramente basados en TCP como VoIP o BitTorrent puedan operar correctamente detrás de la caja Tor. Si deseamos ello, debemos conectarnos a través de un router convencional, y no esta cajita profiláctica. Manos a la obra, ingresamos el comando:
vi /etc/firewall.user
...y le agregamos estas dos líneas:
# lineas agregadas al minirouter: iptables-tnat-APREROUTING-iwlan0-pudp--dport53-jREDIRECT--to-port9053 iptables-tnat-APREROUTING-iwlan0!-d192.168.180.0/24-ptcp--syn-jREDIRECT--to-port9040
De manera central nos debemos atener a configurar el demonio Tor en sí, ingresando:
vi /etc/tor/torrc
...y agregamos el siguiente contenido:
Bitácora de aviso en/var/log/tor/notices.log
Nickname PirataPeron# Apodo de su elección
ExitPolicy reject *:*# No permite salidas
RelayBandwidthRate100KB
RelayBandwidthBurst200KB
VirtualAddrNetwork10.192.0.0/10
AutomapHostsOnResolve1
TransPort9040
TransListenAddress192.168.180.1
DNSPort9053
DNSListenAddress192.168.180.1
Una vez que grabemos las modificaciones y salgamos de Vi, ya estará todo listo para dar inicio a la funcionalidad pura de la caja Tor. Por alguna razón, el demonio Tor no iniciará con la orden /etc/init.d/tor enable, de modo que lo más sencillo es arrancarlo desde el archivo /etc/rc.local, que arranca cualquier cosa. Para ello ingresamos:
vi /etc/rc.local
...y le agregamos el siguiente texto al final:
[...]
sleep30>>/etc/init.d/tor start
exit0
...guardamos y salimos de Vi (Esc + :wq), y reiniciarmos el minirouter para que funcione la conexión inalámbrica, el la subida y bajada de los servidores Tor a través de su demonio. Recordamos que reiniciamos desde la consola con el comando:
reboot
Luego de unos 30 segundos de iniciado y siempre que el router esté conectado por cable a un router con DHCP, el minirouter habrá establecido la conexión a la red Tor y habrá activado una red Wifi llamada "Caja Tor Peroncha".
Conectándonos a dicha red wifi tendremos acceso a todos los servicios ocultos y anónimos y las direcciones .onion estarán disponibles. Por supuesto, todos los compañeros que se conecten a ella podrán usarla desde cualquier navegador y sistema, sin necesidad de tener que configurar nada en sus equipos personales.
Recuerden que todo lo que hacemos es responsabilidad inherente nuestra, y que el anonimato no es excusa para ser gorila. Por otro lado no existe nada como el anonimato puro en la red sólo por emplear Tor. Asegúrense de no loguearse a ningún servicio en la red ni emplear ningún recurso "de la nube", emplear modo privado, activar TLS toda vez que ello sea posible, y escuchar a los Ratones Paranoicos.
Modo Failsafe
Si quisiéramos resetear el router a su valor inicial de OpenWrt, debemos
Encender el minirouter TL-MR3020
Cuando el botón WPS comience a parpadear.
Si le instalamos el firmware OpenWrt Breaking Barrier, movemos la palanquita del router de una posición extrema (3G) a la otra (AP).
Debemos hacerlo varias veces de forma repetida hasta que el botón WPS comienza a parpadear más rápido.
Ahora el dispositivo se encuentra en modo a prueba de fallos.
Podremos conectarnos al TL-MR3020 en su configuración "básica" desde nuestra PC, por medio de un cable ethernet, y loguearnos a su pantalla de control por medio del comando:
Como verdaderos apóstoles, hemos de instalar software libre en todos los dispositivos que tengamos a mano. Solo así nos aseguraremos de transitar la real senda de la Liberación.
He comentado ya del caso del router TP Link WR491ND y de su firmware de control alternativo y abierto OpenWRT. Gracias a el nuestro router dejará de ser un dispositivo bobo, y pasará a convertirse en un verdadero router peronista capaz de correr otras aplicaciones. OpenWRT es un firmware abierto, pensado para controlar enrutadores. Como tal, es un sistema operativo que convierte a nuestro router en una computadora de pequeñas dimensiones y potencia reducida, pero programable para conducir efectivamente una serie de tareas.
Por medio de OpenWRT y un router compatible, podremos crear un servidor de archivos, servidores pequeños de correo de status, controlar en horarios determinados dispositivos electrónicos a través de interfaces seriales, USB, o Ethernet.
Con un poco de dificultad, se pueden programar entonces dispositivos controlados a partir del router, como por ejemplo, aspersores que trabajen a horario, unidades de medición del clima que lean las condiciones de temperatura y humedad y la transmitan por internet, podremos controlar cámaras de seguridad, relays que enciendan luces, abran o cierren portones eléctricos, enciendan bombas o motores eléctricos, o con más software libre podremos convertir nuestro router en un dispositivo de transmisión de medios (fotos, audio e incluso video) para operar dentro de la red local, y muchso etcéteras
Sin embargo, no necesitamos tanta dificultad, aún así podremos desarrollar nuestras propias "aplicaciones caseras" por medio de código Ash. Dicho código comprende comandos y condicionales, de manera de poder realizar ciertas acciones útiles, con poco ingenio y habilidad.
Es importante si bien los guiones los almacenaremos dentro del directorio /root del router, los mismos han de concentrarse en operar dentro del directorio /tmp/ del router, ya que el mismo es la memoria RAM volátil. Esto es así pues los routers disponen de muy poco espacio físico (un chip EEPROM de 4 megabytes, y raramente más).
Para disponer nuestros scripts, crearemos dentro del router un directorio a tal efecto:
mkdir /root/scripts/
Por ejemplo, si nuestro proveedor nos da IP dinámica y quisiéramos saber cuáles nuestra dirección IP de salida
actual para montar un servidor de juego o por cualquier motivo, podríamos crear
un script que lo haga.
Para ello, hemos de utilizar siempre el básico editor Vi. Se trata de un editor mínimo incorporado dentro del router. Para editar texto debemos llamarlo con vi nombredelarchivo.
En este caso podriamos hacer:
vi /root/scripts/decimelaip
Presionamos i para entrar al modo edición, y le pegamos el siguiente código peronista:
#!/bin/sh # Scropt decimelaip Informa la IP de salida. rm -f /tmp/log/ipactual.log wget -q http://ipecho.net/plain -O /tmp/log/ipactual.log echo La direccion IP actual de salida a internet es: echo '' >> /tmp/log/ipactual.log cat /tmp/log/ipactual.log
Para guardar el archivo y abandonar el editor, debemos presionar Esc y escribir :wq seguido de Enter.
Ahora podremos darle permisos de ejecución con:
chmod +x /root/scripts/decimelaip
y ejecutarlo con:
sh ~/scripts/decimelaip
También podríamos configurar un script que revise por medio de un ping a google.com, para saber si hay conexión WAN (al cablemódem), y si no la encuentra, que reinicie el router. Este microprograma puede ser útil para una tarea de administración remota.
Para ello editaríamos el archivo:
vi /root/scripts/pingreset
Activamos el modo de edición con i y le pegamos el siguiente código:
#!/bin/sh # Programa para probar la conexion o resetear. if ping -c 1 google.com > /dev/null ; then echo "Todo OK, el cliente funciona y no necesita reiniciarse" pingfail=0 else pingfail=$(($pingfail+1)) echo $pingfail " ping fracasados" if [ $pingfail -gt 10 ]; then echo "mas de 10 ping a google fracasados. RESETEANDO EL ROUTER!!" reboot fi fi
Luego guardamos y salimos con Esc +:wq, y le damos permisos de ejecución con:
chmod +x /root/scripts/pingreset
Podremos ejecutarlo con:
sh ~/scripts/pingreset
Un script que conviene tener en el directorio root de nuestro router es uno que active o desactive la red wifi. Para ello editamos:
vi ~/wifionoff
Se abrirá el editor Vi con el archivo en blanco. Presionamos i y le insertamos el siguiente código:
#!/bin/sh # Crea un archivo con el registro de estado del Wifi (on u off) # Si el wifi está on lo apaga, si está off lo enciende. STATEFILE="/tmp/wifionoff.state" if [ $# -eq 1 ]; then case $1 in "up"|"on") STATE=off ;; "down"|"off") STATE=on ;; esac else if [ ! -e ${STATEFILE} ]; then STATE=on else . ${STATEFILE} fi fi if [ -z ${STATE} ]; then STATE=on fi if [ ${STATE} == "on" ]; then /sbin/wifi down STATE=off else /sbin/wifi up STATE=on fi echo "STATE=${STATE}" > ${STATEFILE}
Una vez realizado esto, podremos darle permiso con:
chmod +x /root/wifionoff
Con este archivo creado, podremos ahora apagar o encender el wifi con dicho comando (siempre que estemos conectados por cable, claro está).
En vista de dicho archivo y si por algún motivo necesitásemos reiniciar solamente la red inalámbrica, pero queremos hacerlo estando conectados por wifi, podremos crear un script a tal efecto.
Para ello ingresamos
vi /root/scripts/resetearwifi
Y le pegamos el siguiente código:
#!/bin/sh #Programa para resetear el wifi estando conectado por wifi # requiere script wifionoff en /root/ cd /root/ ./wifionoff && ./wifionoff
Lo guardamos y salimos con Esc + :wq, y le asignamos permisos de escritura con chmod + /root/scripts/resetearwifi.
En el caso de necesitar scripts puros para encender o apagar el wifi (por ejemplo, para utilizarlos a través de una orden cronometrada Cron, y activar o desactivar el wifi en determinadas horas del día), podremos utilizar Vi para incorporar dos archivos:
Un archivo /root/script/wifion que contenga el siguiente código:
#!/bin/sh # Enciende la WLAN (sin detener el dispositivo de emision radio0) wifi up
...y un archivo /root/script/wifioff que contenga el siguiente código:
#!/bin/sh # Apaga la WLAN (sin detener el dispositivo de emision radio0) wifi down
Es siempre útil contar con un script que nos presente el status del router. Para ello podremos crear con Vi un archivo /root/status e insertarle el código:
#!/bin/sh
# Programa que devuelve datos de estado del router date uptime echo Detalle de las Conexiones del router ifconfig echo Direcciones IP cedidas por DHCP cat /tmp/dhcp.leases rm -f /tmp/log/ipactual.log wget -q http://ipecho.net/plain -O /tmp/log/ipactual.log echo '' >> /tmp/log/ipactual.log echo La dirección IP actual de salida a internet es: cat /tmp/log/ipactual.log
Guardamos el archivo con Esc + :wq y le damos permisos de ejecución con chmod +x /root/status.
Para ejecutarlo, podremos utilizar el comando ./status o sh /root/status.
Podremos crear otro programa de información aún mas detallado con facilidad. Por ejemplo, podríamos escribir un guion llamado /root/scripts/info con el siguiente contenido:
#scripts para detalles echo INFORMACION DEL ROUTER - presione q para salir > /tmp/log/info echo Dispositivo >> /tmp/log/info cat /tmp/sysinfo/model >> /tmp/log/info cat /proc/version >> /tmp/log/info uname -mnrs >> /tmp/log/info cd /tmp/ rm -f /tmp/log/ipactual.log wget -q http://ipecho.net/plain -O /tmp/log/ipactual.log echo '' >> /tmp/log/ipactual.log echo La IP actual de salida a Internet es >> /tmp/log/info cat /tmp/log/ipactual.log >> /tmp/log/info echo INFORMACION DE LA CPU DEL ROUTER >> /tmp/log/info cat /proc/cpuinfo >> /tmp/log/info echo '' >> /tmp/log/info echo ESTADO DE LA MEMORIA >> /tmp/log/info cat /proc/meminfo >> /tmp/log/info echo '' >> /tmp/log/info echo MODULOS CARGADOS EN MEMORIA >> /tmp/log/info cat /proc/modules >> /tmp/log/info echo '' >> /tmp/log/info echo DMESG DEL ROUTER >> /tmp/log/info dmesg >> /tmp/log/info echo '' >> /tmp/log/info echo LOG INTERNO DEL APARATO >> /tmp/log/info logread >> /tmp/log/info echo '' >> /tmp/log/info echo Generando archivo nuevo en tmp/log/info cat /tmp/log/info | less # Comentar para que no elimine el archivo al terminal el proceso: rm /tmp/log/info
Con ello, al darle permisos de ejecución y ejecutar el script, nos devolverá una gran cantidad de información de status, en un paginador con le cual podremos movernos usando las flechas del cursor.
Para cerrar el paginador, debemos presionar q.
Red de invitados
En mi residencia de Puerta de Hierro dispongo de un único router que utilizo para mis quehaceres, pero en ocasiones debo montar el wifi para que mis invitados puedan utilizar sus dispositivos móviles. Es verdad que existen configuraciones específicas para el tema que nos aislan la red wifi de la red local, pero en mi caso no lo considero necesario de momento, por lo que simplemente dispongo una red wifi con una clave simple, diferente a la utilizada regularmente.
En tal caso, podremos preveer dos scripts que cambien la configuración de la red, y la activen. Cada uno de ellos depende de distintos archivos de parámetros generales.
En OpenWRT la red inalámbrica se configura a través del archivo /etc/config/wireless, el cual delimita las opciones de la red wifi, entre ellas el nombre de red (ssid) y la contraseña (key).
Para el funcionamiento adecuado crearé dos archivos de configuración. En el archivo /etc/config/wireless.normal indicaremos nuestros datos normales de la red, incluyendo su nombrede red y su contraseña. Por ejemplo, indicaré:
# configuracion de la red Wifi normal config wifi-device 'radio0' option type 'mac80211' option hwmode '11ng' option path 'platform/ath9k' option disabled '0' option country 'AR' option txpower '20' option htmode 'HT40' option channel 'auto'
config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option ssid 'Wifi de Peron' option key 'eStA cLabe nO lA Bas A DeScUBrIr nI LoCO' option encryption 'psk2+ccmp'
En tanto, en el archivo /etc/config/wireless.invitado pondremos los datos que corresponderán a la red temporal para invitados:
# configuracion del Wifi para invitados config wifi-device 'radio0' option type 'mac80211' option hwmode '11ng' option path 'platform/ath9k' option disabled '0' option country 'AR' option txpower '20' option htmode 'HT40' option channel 'auto'
config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option ssid 'Puerta de Hierro - Invitados' option key 'vivaperon' option encryption 'psk2+ccmp' # Activarlo con el programa /root/scripts/confwifiinvitado # Para volver a la wifi normal usar /root/scripts/wifinormal
Estos archivos de configuración no requieren permisos de ejecución.
Para poder activar la red Wifi de invitados o la red Wifi normal, debemos crear dos scripts y darles permisos de ejecución que las den de alta. En el archivo /root/scripts/confwifiinvitado ingresamos el siguiente código:
#!/bin/sh #activa wifi invitado siguiendo el archivo /etc/config/wireless.invitado cd /root wifi down rm -f /etc/config/wireless cp /etc/config/wireless.invitado /etc/config/wireless wifi up
echo Se activo la wifi de invitado!
Luego en el archivo /root/scripts/confwifinormal, le incorporamos el siguiente código:
#!/bin/sh #activa wifi normal segun archivo /etc/config/wireless.normal cd /root wifi down rm -f /etc/config/wireless cp /etc/config/wireless.normal /etc/config/wireless wifi up echo Se reestablecio la wifi normal...
Tras editar ambos scripts, les otorgamos sus necesaarios permisos de ejecución con:
Ahora, si ejecutamos el script confwifiinvitado, la red se llamara "Puerta de Hierro - Invitados" y la contraseña será "vivaperon". Y si ejecutamos confwifinormal, la red se llamará "Red de Peron" y la contraseña será la dificultosa "eStA cLabe nO lA Bas A DeScUBrIr nI LoCO".
En la necesidad de modernizar diferentes industrias del país, Juan Perón invitó a un número de personalidades de la técnica, que estableciendo vínculos con la Argentina, pudieron mejorar los prospectos de la industria. De entre las enseñanzas, guardamos aquella de cómo programar los botones de nuestro router a través del firmware OpenWRT para darle nuevos usos.
(...)
Muchas veces me preguntaron porqué traje a los hombres de ciencia de un país derrotado a nuestro Vergel de Paz. Pero la respuesta era simple: los científicos Alemanes nos enseñaron los rudimentos de ciencia en la que nuestros hombres atrasaban, y nos permitieron afianzar la industria del país en un camino de grandeza como lo han tenido las Grandes Naciones del Tierra.
Todo lo que hemos aprendido ha sido bueno, y de lo que no hemos sacado rédito instantáneo, lo hemos hecho al tiempo. Así es como ha de lograrse un verdadero progreso. En ocasiones, nos hemos valido de la improvisación para encontrar un uso a la técnica y utillaje que siquiera sus creadores preveían.
La industria mecánica de Córdoba es un claro ejemplo, con su rastrojero iniciado a partir de utillaje aeronáutico y de circunstancias. Si este ejemplo puede encontrarse en el desarrollo de la industria pesada, cómo no va a haberlo en la telemática. Encontraremos ejemplos en lo que algo pensado para una cosa, termina siendo mejor aplicado para otra.
La mayoría de los enruteadores modernos disponen de un botón nomenclado como WPS. Dicho botón activa una funcionalidad telemática capaz de "asociar" un dispositivo Wifi a nuestra red local inalámbrica cifrada con contraseña sin necesidad de compartir la clave. Explicado de manera sencilla, al presionar el botón se dará inicio a una ventana de tiempo de dos minutos, durante el cual el router - en confianza - asociará a cualquier dispositivo Wifi en el que también se presione dicho botón. Una vez transcurrido los dos minutos, volverá a cifrarse y cerrarse la red inalámbrica.
La idea original estaba bien intencionada. Sin embargo, muchas cosas malas pueden hacerse en dos minutos, y si lo sabrá su madre. Nada impide que durante dicha ventana temporal, usuarios malévolos en las cercanías puedan asociarse a la red sin que tuviésemos maneras obvias de saberlo. Por lo tanto, la funcionalidad WPS - en lugar de hacer la vida más fácil al Pueblo - terminó perjudicándolo y llevándole inseguridad por partes iguales...
Pues bien, en tratados anteriores he relatado a la Masa que muchos routers (como por ejemplo, el TP-Link TL-WR941ND peronista) pueden ser dotados de un firmware libre que reemplaza al limitado programa interno original. He explicado como instalar dicho firmware libre OpenWRT en nuestro router y cómo configurarlo para hacer de él una potente máquina multifunción. ¡Lo hemos dicho! En vista de las mencionadas deficiencias con el sistema de asociación WPS, el firmware libre OpenWRT no usa esta característica, y ello significará que el botón WPS del router (nomenclado como "QSS" en los routers TP-Link) quedará "como cenicero de Pochoneta".
Sin embargo, gracias al Justicialismo y a nuestra doctrina de Software Libre, nos será bien posible utilizar el botón QSS para realizar otras acciones que nos plazcan, si sabemos configurarlo. Podremos programar el botón WPS/QSS para que nos sirva para apagar o encender el radioemisor de Wifi (y por lo tanto, de la red inalámbrica). Esto presenta algunas ventajas: podríamos dejar el router encendido 24x7 realizando tareas de enrutamiento por cable, servicio de correo, o un mini-servidor web, etc, pero decidir apagar el Wifi cuando no estamos en el hogar, o apagarlo de forma manual cuando nadie lo vaya a utilizar, o apagarlo automáticamente siguiendo un patrón de horarios.
Naturalmente que en primer lugar, debemos tener ya instalado y configurado OpenWRT en nuestro aparato (en este caso tomaré como referencia el TP-Link TL-WR941ND). Hemos de notar también que por la característica de esta tarea, nos convendrá conectarnos al router de manera cableada.
Acto seguido, será útil asegurarnos de que el botón QSS del router funciona, y conocer en particular cuál es su "nombre de hardware".
Para ello nos logueamos al router como se ha explicado en otros tratados (normalmente con ssh root@dirección_ip_del_router). Una vez dentro del router (el prompt podría indicar root@OpenWrt o similar) crearemos una carpeta donde irán las rutinas autoejecutables para los botones. Lo haremos ingresando en el router,:
mkdir -p /etc/hotplug.d/button
Ahora usaremos el editor peronista Vi para crear un archivo llamado buttons en dicho directorio, con el comando:
vi /etc/hotplug.d/button/buttons
Es importante conocer bien el funcionamiento del editor, para ser práctico a la hora de configurar el router. El editor Vi normalmente opera en modo revisión, por lo cual no podremos modificar ni agregar ningún texto. Para pasar al modo de inserción de texto hemos de presionar la tecla i. Solo entonces podremos escribir o pegar en la Terminal el texto que querramos. En este caso, hemos de pegar allí el siguiente código, pensado para evaluar el funcionamiento de los botones del router:
#!/bin/sh # Script para que los botones reporten sus acciones. logger el boton $BUTTON reporta accion $ACTION
Para guardar los cambios en el archivo recién editado en Vi, hemos de presionar Esc, y tipear el comando :wq que se encargará de grabar (w) y salir (q) del editor. Nos devolverá a la línea de comandos del router.
Conforme estemos en el prompt de nuestro enruteador, habremos de evaluar el botón correspondiente: en el caso del TP-Link TL-WR941ND presionamos el botón "QSS" que se encuentra en la derecha del panel frontal (es el único botón).
Hecho esto, en la terminal del router ejecutaremos el comando:
logread
...y nos devolverá un largo archivo, el cual al final debería indicarnos final algo como:
user.notice root: el boton wps reporta accion pressed user.notice root: el boton wps reporta accion released
Esta información recabada es importante pues nos confirma el nombre de hardware del botón QSS, que en realidad es "wps", y los estadíos que puede tomar dicho botón de software: "pressed" (presionado) y "released" (soltado).
Sabiendo esto, agregaremos dos archivos nuevos para configurarlo. Unos es el archivo /etc/hotplug.d/button/00-button, que configura el funcionamiento general de los botones, y otro es el que especificará el funcionamiento particular el botón QSS. Para ello los agregamos con Vi:
vi /etc/hotplug.d/button/00-button
Una vez en el editor, presionamos i e insertamos el siguiente código:
#!/bin/sh
. /lib/functions.sh
do_button (){local button
local action
local handler
local min
local max
config_get button $1 button
config_get action $1 action
config_get handler $1 handler
config_get min $1 min
config_get max $1 max
["$ACTION" = "$action"-a"$BUTTON" = "$button"-a-n"$handler"]&&{[-z"$min"-o-z"$max"]&&eval$handler[-n"$min"-a-n"$max"]&&{[$min-le$SEEN-a$max-ge$SEEN]&&eval$handler}}}
config_load system
config_foreach do_button button
Guardamos los cambios y salimos de Vi con Esc +:wq.
Acto seguido, agregaremos la especificación de funcionamiento del botón QSS en el fichero configuración correspondiente, que es /etc/config/system. Para ello ingresamos el comando:
vi /etc/config/system
Las especificaciones de funcionamiento del botón QSS/WPS será la de apagar el emisor Wifi y la red inalámbrica al presionarlo brevemente (durante menos de un segundo). Si lo presionamos entre uno y cinco segundos, encenderá el Wifi y la red inalámbrica. Considerando esto, en Vi pasamos al modo inserción con la tecla i, y al final del archivo /etc/config/system, habremos de agregarle las siguientes lineas de configuración:
# Agregado al archivo /etc/config/system # para configurar el botón OSS/WPS del Router TP-Link # Esto apaga el emisor Wifi y la red inalámbrica # al presionar el boton QSS/WPS menos de 1 segundo. config button option button 'wps' option action 'released' option handler 'uci set wireless.@wifi-device[0].disabled=1 && wifi' option min '0' option max '1'
# Esto enciende el emisor Wifi y la red inalámbrica # si se presiona el boton QSS/WPS entre 1 y 5 segundos. config button option button 'wps' option action 'released' option handler 'uci set wireless.@wifi-device[0].disabled=0 && wifi' option min '1' option max '5'
...guardamos los cambios y salimos del editor Vi con la consabida combinación de teclas Esc + :wq
Para probar los cambios, debemos reiniciar el router con:
reboot
Una vez que el router se reinicie, debemos presionar y soltar el botón QSS durante menos de un segundo, y se apagará el Wifi (podremos comprobarlo al comprobar el apagado de la luz "WLAN" del panel frontal del router. Para reencender el Wifi, debemos presionar el botón QSS entre 1 y 5 segundos (se encenderá la luz WLAN y podremos conectarnos inalámbricamente).
Configurar el encendido / apagado del Wifi a un horario determinado:
Hemos mencionado la potencia y versatilidad que nos permiten los scripts de Cron para activar o desactivar el Wifi en horarios particulares. Por ejemplo, supongamos que según nuestros horarios de trabajo y sueño nos conviene que el Wifi se apague automáticamente a la 23:30PM y se encienda a diana, a las 6:30 AM durante los días de semana.
Para ello será necesario crear dos scripts ejecutables, uno para encender el Wifi y otro para apagarlo, y programar el cronómetro del router (cron). Todo ello lo haremos también desde la terminal del router. Una vez logueados en él, podremos ingresar:
vi /root/wifioff
...presionamos i y le pegamos el siguiente código #!/bin/sh # Apaga la WLAN (sin detener el dispositivo de emision radio0) wifi down
Una vez guardado el fichero y salido del editor (Esc + :wq), utilizaremos el siguiente comando para crear el archivo de encendido:
vi /root/wifion
...y nuevamente usamos i para pegarle su código correspondiente que figura a continuación:
#!/bin/sh # Enciende la WLAN (sin detener el dispositivo de emision radio0) wifi on
Guardamos y salimos con Esc + :wq
Conforme hayamos ingresado ambos archivos, nos será imprescindible otorgarles permisos de ejecución para que dichos guiones puedan utilizarse. Lo haremos con el comando:
chmod +x wifionoff wifion wifioff
Ahora podremos programar el cronómetro de ejecución (cron). Esto se hace por medio de una tabla de texto (crontab), modificando el archivo /etc/crontabs/root. Para hacer la tabla crontab editamos el archivo referenciado usando Vi, con el comando:
vi /etc/crontabs/root
...presionamos i para configurar al siguiente texto al final del archivo:
# Ejecuta este script wifioff todos los dias # a las 23:30pm 30 23 * * * /root/wifioff # ejecuta el script wifion a las 06:30am # a las 6:30am 30 06 * * * /root/wifion
...guardamos la tabla de cron recién creada con Esc + :wq y al volver al prompt del router, debemos ejecutar el comando reboot para que surta efecto. Veremos que con ello el Wifi se apagará automáticamente a las 23:30 y se encenderá a las 06:30. Si necesitásemos encenderlo durante ese horario, bien podríamos presionar el botón del aparato durante 1 y 5 segundos para activarlo.
Podría ser que en determinadas ocasiones necesitemos un script
distinto, que si el Wifi está encendido lo apague, y si está apagado,
lo encienda. Para ello, debemos ingresar el siguiente script:
vi /root/wifionoff
y le pegamos el siguiente código:
#!/bin/sh STATEFILE="/tmp/wifionoff.state"
if [ $# -eq 1 ]; then case $1 in "up"|"on") STATE=off ;; "down"|"off") STATE=on ;; esac else if [ ! -e ${STATEFILE} ]; then STATE=on else . ${STATEFILE} fi fi if [ -z ${STATE} ]; then STATE=on fi
if [ ${STATE} == "on" ]; then /sbin/wifi down STATE=off else /sbin/wifi up STATE=on fi