Noticias rmgss.net https://www.rmgss.net/rss Sitio personal de Rodrigo Garcia es python Flask - Jinja2 Saliendo a Internet mediante VPN wireguard https://rmgss.net/posts/Saliendo-a-Internet-mediante-VPN-wireguard https://rmgss.net/posts/Saliendo-a-Internet-mediante-VPN-wireguard Thu Mar 14 09:39:20 2024 text/html Rodrigo Garcia privacidad , tutorial , software ('En este post veremos como usar un tipo de VPN de capa 4 y que todo el tráfico hacia internet que salga de nuestra computadora personal vaya a través de una VPN propia con wireguard.\n\nvpn-gateway.png\n<- Tamaño original\n\nEs como una evolución de uno anterior donde se usaba un servidor remoto como compuerta de entrada para conectar equipos mediante VPN. En este caso usaremos el mismo servidor para también ser una compuerta de salida hacia internet.\n\nAviso: Este post está dividido en 2 secciones:\n\n1. La primera por si te interesa saber un poco como funcionan las VPN y las redes TCP/IP en general.\n2. La segunda si solo quieres ver un ejemplo de los pasos necesarios para configurar una VPN con salida hacia internet.\n\n \nLas redes privadas virtuales VPN permiten extender la conexión entre computadoras gracias a su flexibilidad, cifrado y "resistencia a bloqueos" se pueden establecer comunicaciones con mejor protección contra sistemas de vigilancia o filtración. Pero ¿cómo funcionan las VPN de capa 4?\n\n \nEl modelo de conexiones de red TCP/IP es una forma de mandar/recibir mensajes alrededor del mundo entre computadoras, este tiene sus complejidades pero la forma en que funciona se asemeja al servicio postal.\n\nservicio postal\n\n1. Delia escribe un mensaje para Mijael, lo pone en un sobre y escribe en el sobre información para que el mensaje llegue a Mijael.\n\n - De: El nombre del remitente. Delia Gomez\n - Para: El nombre del destinatario. Mijael Torres\n - Dir.: La dirección de Mijael. Claveles #192. Salta - Argentina\n\n2. Delia lleva el sobre a una oficina postal.\n3. La oficina postal comprueba si la dirección de Mijael está en su alcance inmediato, como no está, determina cual es la siguiente oficina postal más cercana hacia la dirección de Mijael.\n4. La oficina postal despacha el mensaje en un camión o medio de transporte para que lleve el sobre a la siguiente oficina postal.\n5. El sobre llega a la oficina postal 2 y esta repite los pasos 3 y 4 de ser necesario.\n6. En algún momento los sobres llegan a la oficina postal inmediatamente mas cercana a la dirección de Mijael (La oficina postal N), y esta le entrega el sobre a un cartero para que lo reciba Mijael.\n7. El cartero lee la dirección de Mijael en el sobre y sale hacia esta dirección para entregarle el sobre.\n8. Mijael atiende al cartero que le entrega el sobre, lee que el mensaje viene de Delia Gomez, lo abre y lee el mensaje.\n\nEn resumen, el sobre tiene la suficiente metainformación para que cada oficina postal o cartero sepa hacia dónde se debe hacer llegar el mensaje. Las oficinas postales pueden usar cualquier medio de transporte para hacer llegar el mensaje, lo importante es que determinarán el camino óptimo para que el sobre llegué a la dirección y destinatario final.\n\n \nAl igual que el sistema de servicio postal, el modelo TCP/IP es una serie de protocolos y tecnologías que permiten que datos lleguen desde una dirección, el objetivo final es el mismo pero la forma de hacerlo y terminología difiere, más o menos:\n\n<table>\n <tr>\n <td>Servicio Postal</td>\n <td>TCP/IP</td>\n <td>Capa TCP/IP</td>\n </tr>\n <tr>\n <td>Mensaje</td>\n <td>Datos finales</td>\n <td>4 (Aplicación)</td>\n </tr>\n <tr>\n <td>Sobre</td>\n <td>Paquetes de datos</td>\n <td>3 (Transporte)</td>\n </tr>\n <tr>\n <td>Oficina Postal</td>\n <td>Router</td>\n <td>2 (Internet)</td>\n </tr>\n <tr>\n <td>Dirección en el sobre</td>\n <td>Dirección IP destino</td>\n <td>2 (Internet)</td>\n </tr>\n <tr>\n <td>Dirección de otras direcciones postales</td>\n <td>Direcciones IP de otros routers</td>\n <td>2 (Internet)</td>\n </tr>\n <tr>\n <td>Camión o medio de transporte</td>\n <td>Medio físico de transporte</td>\n <td>1 (Acceso al medio)</td>\n </tr>\n</table>\n\nEl modelo TCP/IP tiene muchos más elementos y es más sofisticado porque provee también formas de verificar que el mensaje llega sin alteraciones (TCP), de asegurarse de que el destinatario y el remitente sean los correctos (IP destino recibirá siempre el mensaje y se sabrá que viene de IP origen), de encontrar el camino óptimo. etc. Y esto lo hace gracias a diferentes protocolos. Las 4 capas TCP/IP actúan una independientemente de la otra mediante encapsulamiento.\n\n \nImaginémos que Delia quiere enviar un mensaje a Diana de tal forma que el servicio postal no sepa que el remitente es Delia. Una forma de hacerlo es colocar en el contenido del mensaje indicaciones para Mijael que le digan que debe enviar otro mensaje a Diana, el contenido del mensaje tendrá algo como:\n\n> Querido Mijael, por favor envía lo siguiente a Diana de mi parte pero hazlo en otro sobre que venga de ti. La dirección de Diana es "Las Palmas #816 - Chiclayo, Perú". Este el mensaje: ...\n\nSi Mijael sigue las instrucciones, escribirá otro mensaje o usará este mismo y lo pondrá en otro sobre con la dirección de Diana y lo llevará a la oficina postal mas cercana con él como remitente. De esta manera la oficina postal no sabrá que el mensaje original viene de Delia.\n\nDelia y Mijael podrían ir más lejos y proteger el mensaje escribiendo en otro idioma o codificado de forma que si alguien no autorizado abre el sobre, no pueda entenderlo, es decir aplicarían algún tipo de cifrado.\n\n \nLos paquetes de datos de red son una serie bits (1 y 0) acomodados en cierto orden de manera que los equipos de red como los routers los revisen y sepan dónde enviarlos. Los routers revisarán ciertas secciones del paquete para determinar el origen y destino de los paquetes. Luego revisarán secciones de bits diferentes para determinar a qué puerto de la computadora destino irán,cúal es el origen y tomarán en cuenta otras partes del paquete para hacer verificaciones adicionales.\n\nRepasemos un poco una parte de un paquete de datos UDP+IP, UDP es un protocolo de transporte que permite transmisión de datagramas de forma rápida.\n\nudp-ip1\n\nImagen modificada de Irwin, David & Slay. Extracting Evidence Related to VoIP Calls.\n\nLa sección del paquete que dice Payload son los datos o mensaje y al igual que hizo Delia, se puede enviar en el mensaje mismo otra IP como destinatario final. Algo mas o menos así:\n\nudp-ip2\n\nEl encapsulamiento permite incrustar en el payload del mensaje otras direcciones, puertos y datos. Como si se tratase de un paquete dentro de uno o más paquetes. Las VPN como wireguard van más lejos y usan protocolos y algoritmos de cifrado para que todo el tráfico dentro del payload solo sea reconocible por miembros autorizados.\n\nPara que una VPN funcione, se necesitan programas que hagan como Mijael, es decir, revisen el mensaje (payload) y busquen si se trata de un mensaje que en realidad va para otra dirección que no esté declarada en las cabeceras Source Address, Destination Address originales de los paquetes UDP+IP.\n\nEsto es encapsular paquetes dentro de otros paquetes, y si el programa detecta que este paquete es para otro destinatario entonces lo reenviará para que el resto de la red se encargue de hacerlo llegar al destino real. Entonces, en la práctica tenemos una red virtual. Si se agrega cifrado y otras medidas de seguridad, se tiene una red privada virtual (VPN) mucho mas segura, flexible y resistente a posibles bloqueos o vigilancia indiscriminada por parte de cualquier equipo dentro de la red.\n\n----\n\n \nAhora configuraremos un servidor remoto y una computadora cliente para crear una VPN con wireguard, luego haremos que la computadora cliente salga a internet a través de la conexión VPN hacia el servidor y que el servidor redirija los paquetes del cliente hacia el internet a modo de compuerta de salida o internet gateway.\n\n \nPara el resto de este tutorial se asume que se tiene un servidor y computadora con GNU/Linux, para este tutorial se usa debian 11 en ambos lados, sin embargo wireguard también funciona en otros S.O. como Windows. Lo que si es necesario es tener acceso a un servidor remoto que tenga conexión a internet.\n\nvpn-gateway.png\n<- más grande\n\nEl anterior es un diagrama de un caso posible de uso donde hay un servidor web, lo importante es la parte de conexión por VPN y salida por NAT. La implementación siguiente es sólo para configurar la conexión por VPN y uso del servidor como internet gateway.\n\n \nPara este primer paso puedes revisar el post Accediendo a equipos de casa mediante VPN wireguard como otro ejemplo. Pero resumiendo las configuraciones las haremos como en el diagrama\nanterior:\n\n * Servidor\n * IP: 10.50.0.1\n\t Puerto: 51830\n\t Gateway y NAT\n * Cliente\n * IP: 10.50.0.2\n\t Puerto: 51830\n\nAhora declararemos los archivos de configuración de wireguard.\n\n \n :::conf\n [Interface]\n PrivateKey = YPrreNTz7...\n ListenPort = 51830\n \n # peer pc\n [Peer]\n PublicKey = yQ2po/Rl3...\n AllowedIPs = 10.50.0.2/32\n\nEn el servidor declaramos también el peer de la pc \n\n \n :::conf\n [Interface]\n PrivateKey = cMNHAA7vY6k9X...\n ListenPort = 51830\n \n # peer servidor (gateway server)\n [Peer]\n PublicKey = BTg7lbZWQ...\n Endpoint = <IP o dominio del servidor>:51830\n AllowedIPs = 0.0.0.0/0\n PersistentKeepalive = 15\n\n \nWireguard es tan conveniente que nos permite dedicar una interfaz de red a la VPN. El siguiente script en bash, nos ayuda a crear la interfaz de red para wireguard (wg0), habilitar NAT (Network Address Translation) y agregar reglas de ruteo para que cuando se reciba tráfico en la interfaz wg0 este pueda ser redirigido hacia internet aplicando NAT masquerading.\n\n :::bash\n #!/bin/bash\n\t# levantar.sh\n\n WG=wg\n conf_file=./wireguard.conf\n interface=wg0\n address=10.50.0.1\n nw_cidr=10.50.0.0/24\n nw_interface=eth0 # interfaz por la que el servidor sale hacia internet\n\n # Configurando interfaces de red\n ip link del dev $interface 2>/dev/null || true\n ip link add $interface type wireguard\n ip addr add $address/24 dev $interface\n ip link set $interface up\n # usando archivo de config\n $WG setconf $interface $conf_file\n $WG show\n\n # Habilitando masquerading\n echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/70-wireguard-routing.conf\n sysctl -p /etc/sysctl.d/70-wireguard-routing.conf -w\n\n # Agrega la regla NAT a la cadena POSTROUTING para tráfico ya filtrado por iptables\n iptables -t nat -A POSTROUTING -s $nw_cidr -o $nw_interface -j MASQUERADE\n\n # mtu\n ip link set mtu 1378 up dev $interface\n\texit 0\n\nEjecutaremos el script con privilegios de superusuario. sudo bash levantar.sh. Con ip a se debería mostrar una interfaz wg0 existente y con sudo iptables -t nat -L -v:\n\n Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)\n pkts bytes target prot opt in out source destination\n 0 0 MASQUERADE all -- any eth0 10.50.0.0/24 anywhere\n\t\t\n \n :::bash\n #!/bin/bash\n\n # levantar.sh\n WG=wg\n conf_file=./wireguard.conf\n interface=wg0\n address=10.50.0.2\n\n # Configurando interfaces de red\n ip link del dev $interface 2>/dev/null || true\n ip link add $interface type wireguard\n ip addr add $address/24 dev $interface\n ip link set $interface up\n\n # usando archivo de config wireguard.con\n $WG setconf $interface $conf_file\n $WG show\n\n # mtu\n ip link set mtu 1420 up dev $interface\n\n # fwmark agrega una marca a los paquetes de wireguard para que\n # se manden a una tabla de ruteo alternativa, en este caso 51820\n wg set $interface fwmark 51820\n wg setconf $interface /dev/fd/63\n ip link set mtu 1420 up dev $interface\n\n # se establece la ruta por defecto hacia la tabla de ruteo 51820\n ip -4 route add 0.0.0.0/0 dev $interface table 51820\n # los paquetes que no tienen la marca fwmark iran a esta tabla alternativa \n ip -4 rule add not fwmark 51820 table 51820\n # Se permiten a los paquetes sin la marca, usar la tabla de ruteo principal\n ip -4 rule add table main suppress_prefixlength 0\n\n sysctl -q net.ipv4.conf.all.src_valid_mark=1\n\tnft -f /dev/fd/63\n\n exit 0\n\nAhora ejecutamos el script con sudo bash levantar.sh. Para probar que la conexión con el servidor funciona, ping 10.50.0.1 debería funcionar.\n\nPara comprobar que el tráfico a internet va por VPN a través del servidor, se puede hacer traceroute 1.1.1.1 que debería mostrar el primer salto como la IP del servidor en la VPN.\n\n traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets\n 1 10.50.0.1 (10.50.0.1) 224.311 ms 224.063 ms 223.958 ms\n 2 * \n 3 51.12.176.255 (51.12.176.255) 224.546 ms 224.427 ms 224.305 ms\n 4 195.12.20.173 (195.12.20.173) 225.083 ms 225.010 ms 225.157 ms\n 5 195.22.0.8 (195.22.0.8) 228.603 ms 228.657 ms 228.534 ms\n 6 170.4.122.195.in-addr.arpa (195.22.0.8) 228.520 ms 240.060 ms 239.866 ms\n 7 1.1.1.1.in-addr.arpa (1.1.1.1) 227.739 ms 228.523 ms 228.461 ms\n\t \n \nExisten muchos servicios que permiten salir a internet a través de VPN, a pesar de que muchos son buenos hay otros que no son garantizados y también son poco transparentes. Esta solución nos permite tener un mayor control.\n\nAhora podemos navegar por internet usando el servidor como puerta de acceso, además el tráfico va cifrado y sobre una red que podemos extender a nuestra conveniencia. Por ejemplo agregando más equipos o uniéndose a otras redes. Se puede agregar más seguridad por ejemplo sobre el tráfico DNS como se ve en los enlaces adicionales.\n\nEspero este tutorial te haya ayudado a entender mejor cómo funcionan internamente las redes dentro de otras redes ;)\n\n \n A little bit about how VPN actually works… – The 4-Layer TCP/IP Stack + TLS. Este artículo también explica como funcionan las VPN de forma mas de detallada.\n Using the VPN as the default gateway. Usé ese post para configurar el mecanismo del default gateway en el cliente y el servidor.\n Configure NAT masquerading in iptables. Sobre iptables y masquerading.\n', ['privacidad', 'tutorial', 'software'])

]]>
Bajo Llojeta y un poco de sus perros https://rmgss.net/posts/Bajo-Llojeta-y-un-poco-de-sus-perros https://rmgss.net/posts/Bajo-Llojeta-y-un-poco-de-sus-perros Sun Jul 30 18:55:10 2023 text/html Rodrigo Garcia reseña , reflexión , ciudades ('thumb_perrosEscoltaBajoLlojeta2.jpg\nOriginal\n\nEl fin de semana del 12 de junio a la hora del almuerzo se escucharon los gritos de dolor y susto de un perro que se acercó a un radiotaxi y mordió el aro de la rueda delantera derecha. La fuerza del avanzar del automóvil arrancó varios dientes del perro y el quedó atascado gritando sin poder zafar el hocico de la rueda. La gente miraba y gritaba, y del radiotaxi que se detuvo salieron los pasajeros y el conductor. Yo salí corriendo y vi al perrito atrapado, otros perros le ladraban y uno le mordió la espalda quizá para animarlo a zafarse por si solo.\n\nEl conductor dijo hay que sacar la llanta y yo exclamé que sí mientras la sangre de la boca del perro manchaba el asfalto. El perro no paraba de gritar y yo no estaba seguro de qué hacer sino también intentar animar al perro a que se zafe. Alrededor de dos minutos después (aunque ahora pienso que tal vez fué mucho menos), el perro con mucho esfuerzo y gritos de dolor logró sacar hocico de la rueda. \n\nAlcancé a ver que le faltaban al menos 2 dientes entre ellos el colmillo inferior izquierdo y unas muelas flojas que parecía estaban a poco de salirse, su lengua estaba afuera y de la boca, no paraba de sangrar. Con todo eso el perro camino rápido alejándose de esa esquina y subiendo una calle empedrada y no sin dejar puntos rojos en el asfalto y acera por donde caminaba.\n\nLe perseguimos con el conductor por esa calle y luego en una avenida. Siendo un perro grande y peludo se lo veía a lo lejos sin mucho esfuerzo, como se alejaba mas lejos el conductor dijo que iría por su auto y yo le dije que teníamos que llevarlo al veterinario porque los dientes podrían infectarse. Mientras iba por su auto, llegaron 2 mujeres preguntando por el perro y poco después volvió el conductor y salió del taxi junto con una mujer joven. El perro paró al lado de una tienda de abarrotes y ahí nos conseguimos acercar, también. Lo vimos sangrar con la lengua afuera y sabíamos que lo importante era agarrarlo para llevarle al veterinario.\n\nEl conductor se acercó al perro haciendo ese sonido que hacemos para llamar con cariño a los perros, algo parecido a un "tic" pero de modo en que se presiona la punta de la lengua en el paladar y luego se suelta la presión dirigiendo la lengua hacia adelante (o hacia atrás), haciendo eso seguidas veces y rápido suena como "tic tic tic tic ...". Alzó la mano y la puso en la cabeza del perro que bajo un poco las orejas y parecía relajarse por unos 3 segundos. Pero el conductor se precipitó y subió la mano hasta la nuca del perro tal vez para tratar de agarrarle la piel del cuello y poder así meterlo en el auto, el perro se asustó, se safó rápidamente y comenzó a alejarse más lejos y rápido hacia arriba. Mientras se alejaba se hablaba sobre el perro y la mujer acompañante (o tal vez pasajera) del taxista decía con a mi parecer un tono de reclamo, que ¡fue un accidente! y que el conductor no tenía la culpa.\n\nperrito Lastimado\n\nNos pusimos a seguirle, pero eso hacía que el perro se alejara y me adelanté un poco trotando. Esperaba que el conductor esté tras de mí y cuando se acerque decirle que a pesar de que fue un accidente, estas cosas pasan y no podía dejar al perro así y que yo iba a ayudarle a cubrir con los gastos de curación. Lo que recuerdo es que él se quedó atrás con el taxi junto con la mujer joven, no lo volví a ver y no pude decirle nada de eso.\n\nPoco después llegó mi pareja corriendo preguntando como estaba todo y le dije que perdimos de vista al perro. Preguntábamos a dueñas de las tiendas si conocían al perro y decían que parecía que no tenía dueño, les dije que en lo posible intenten conseguir una correa o manta para una vez nos acerquemos lo podamos agarrar. Una chica joven vio al perro y sintió que tenía que ayudarlo y se puso también a seguirlo al trote, pero él más se alejaba. Poco a poco las demás personas también lo iban a buscar, nos separamos, y mi pareja escribió a un grupo de whatsapp de cuidado de animales callejeros de Bajo Llojeta (que es una zona grande en la ciudad de La Paz). En el grupo luego de mandar fotos del perro, decían que era callejero y no tenía dueño pero que había un dueño de un lavado de trajes en la avenida que le daba comida. Fui al lavado mientras las demás buscaban al perro.\n\nVi que estaba abierto y me acerqué, vi a un señor descansando sentado y luego de saludarle le conté sobre el perro y le mostré fotos, su sonrisa inicial iba desapareciendo de a poco hasta ponerse más serio. Me dijo que conocía al perro y que junto con otros 4 o 5 perros, les daba comida y agua, pero que no era su perro y que solo sabía que andaba con ese grupo de perros por estas calles que parecían ser "sus dominios", que él no vivía aquí y tampoco conocía si el perro tenía o no dueño. Nos pasamos los números de teléfonos y también me dio el teléfono del administrador de un grupo de WhatsApp de la zona que ayudaban a perros de la calle. Con esos datos, le dije que me avise si lo vuelve a ver y decidí volver a salir a buscarlo y bajando un poco me volví a encontrar con mi pareja.\n\nAsí con ella intentamos caminar tras el perro y vimos que se metió por una calle que bajaba a por un costado de la avenida principal, lo seguimos y una señora nos acompañó por esas calles empedradas, empinadas y con cruces perpendiculares aún más empinados. Mi pareja aprovechó en tomar algunas fotos del perro y escribir por ayuda a animales S.O.S, un grupo de voluntarios que trabaja varias décadas ayudando a animales desprotegidos. Le dijeron que intentemos atrapar al perro o apaciguarlo para que puedan ir hasta el lugar para atenderlo, les mandó la ubicación y otros detalles, pero el perro se movía por un barranco.\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nLa señora se separó y nos dijo que intentaría traer una correa para agarrar al perro y seguimos tras el perro, finalmente llegamos al final de la calle donde solo había un barranco que iba a un camino a las faldas de un cerro donde no se veían casas, solo un tractor inmóvil. Dos señoras que subían por el barranco, vieron al perro y a nosotros en la meseta y gritaron si era nuestro perro. Yo grité que no, y que queríamos agarrarlo para rescatarlo y se acercaron. Nos dijeron que lucía mal y que no lo vieron antes mientras también lo buscaban con la vista.\n\nMientras las señoras se quedaron mirando el barranco otra vez perdimos de vista al perro, lo último que vimos fue al perro que bajó el barranco y tras escuchar el ladrido de otro perro, empezó a huir bajando ese camino que era difícil para nosotros. El sol de la tarde, el polvo y la caminata ya empezaban a fatigar y decidimos rodear el barranco por otras calles adyacentes. Eran calles vacías de personas, pero si se veía alguno que otro perro echado y que nos miraba fijamente y a veces ladraba, habían casas pequeñas de ladrillo, gradas y pasillos que conectaban calles similares. Así mientras andábamos mandé un mensaje al dueño del grupo de whatsapp que me pasó el señor del lavado. Al no recibir respuesta, mandé un audio intentando explicar la situación y pidiendo ayuda a los vecinos para agarrar o encontrar al perro. Al no recibir respuesta le llamé, me contestó y le dije lo mismo, quizá por la frustración o el cansancio, no expliqué bien los detalles o elaboré un plan concreto para rescatarlo y su respuesta solo fue un "Está bien, gracias por comunicarlo vamos a avisar en el grupo".\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nCaminamos muchas calles y noté más nuestro cansancio y frustración, volvimos de regreso a la meseta y poco antes de llegar las dos señoras que se quedaron vigilando nos gritaron señalando una de las calles por las que vieron al perro recientemente, agradecimos y fuimos tras él. Al llegar a la avenida nos volvimos a separar y mi pareja dijo iría a conseguir algo de comida y tromadol porque los de animales SOS le recomendaron que se lo administremos al perro para calmar el dolor que podría estar sintiendo.\n\nVolví a subir la avenida y poco después vi al perro sentado en un pequeño montón de pasto en la acera cerca del lavado donde le daban comida. Le vi con la lengua afuera y me acercaba lentamente sin estar muy seguro de cómo agarrarlo. El perro me vio a lo lejos, me reconoció y de nuevo empezó a alejarse. Así iba por calles de subida y bajada, se detenía para descansar, yo me acercaba con cautela y a veces él también, pero acababa de forma similar. Parecía que el perro ya asociaba mi figura con el accidente y el miedo y el dolor que sentía hacía que se aleje. Lo perdí de vista como unas 3 veces y volvía a encontrarlo casi por los alrededores o en la avenida misma. No tenía un buen plan para atraparlo, tan solo esperaba a que él me empezara a tolerar y deje que me acerque, tristemente él solo se alejaba de mí cuando me percibía muy cerca.\n\nVolví a encontrarme con mi pareja y ella trajo algo de pollo para intentar darle al perro junto con una pastilla y como se dio cuenta que el perro volvía a donde estaba la tienda de lavado, fuimos a hablar con el dueño. Ella le pidió que en cuanto lo viese le dé la comida e intente hacer que coma las pastilla también, él dijo que dentro de poco tenía que cerrar la tienda, pero que esperaría un poco más. Mientras hablaba otra perrita se acercó y el dueño le dio unas croquetas que ella empezó a comer con muchas ansias. Recuerdo vi en su cabeza una mancha de sangre con saliva, entonces temí que el perro se encontró con ella y trato de defenderse. O a lo mejor era su amiga, se acercó a olerlo y ahí goteó en su cabeza la sangre del perro. \n\nDejando a los demás en el lavado salí de nuevo a buscarlo para no perderle el rastro, pero esta vez ya no pude encontrarlo por las calles donde lo ví antes, aunque sí lo vi ir hacia el barranco y parecía mirar hacia atrás como buscando si alguien —en este caso yo, lo estaba siguiendo. Decidí dejarle de perseguir, para que deje de huir y no se estrese más de lo que ya vivió.\n\nPoco después volví al lavado y hablamos con mi pareja de que quizá no encontraremos al perro de nuevo en ese día y que dejemos a personas o dueños de tiendas la comida con pastillas para que se la dieran al perrito si se acercaba. Como el señor del lavado dijo que cerraba la tienda, le pedimos el plato de comida y que nos avise si se enterara de algo. Inmediatamente después que salimos de la tienda el señor la cerró.\n\nFinalmente dejamos el plato de comida a la dueña de una tienda de abarrotes al frente de lavado, no habían más tiendas cerca y tampoco respuestas en los grupos de WhatsApp, entonces nos fuimos. \n\nNo dormí tranquilo esa noche pensando en el dolor intenso que podría estar sintiendo el perro. ¿Se le habrán infectado las heridas? ¿Cuanta sangre habrá perdido? ¿Habrá comido algo? Si a lo mejor tenía dueño o consiguió volver, ¿su dueño le atendió al ver su estado?.\n\nAl día siguiente salí a buscar al perro, esta vez con más comida y más pastillas, quizá esta vez si estaría más tranquilo y con el hambre suficiente como para aceptar un plato de comida y así yo o pudiera atraparlo para en lo posible hacer que lo curen. Como era domingo, el señor del lavado no abrió, estaba todo más vació y por la avenida no vi al perro. Volví a la tienda de abarrotes y la señora me dijo que no volvió a ver al perro, me devolvió el plato de comida y decidí buscarlo hasta más lejos.\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\n\nBajé por las calles empedradas con mucha calma y mirando a todos lados. A pesar de que me acercaba en silencio, otros perros me vieron a mí y al plato de comida que tenía en mis manos y me empezaron a seguir. Con "amabilidad" les decía que se alejen pero uno de ellos muy pacientemente me siguió varias calles. Su mirada hambrienta e insistencia hizo que le lanzara un poco de la comida de rato en rato. Él iba a comer y volvía y así hasta que llegamos cerca al barranco. Pareció reconocer los límites de su territorio o el comienzo del territorio de otros perros y se quedó en una esquina inmóvil y de a poco se empezó a alejar. Y era cierto, otros dos perros se me acercaron y me miraban igual. Uno de ellos era grande, peludo, viejo y tenía un ojo lastimado. El otro era mediano delgado y mucho más joven.\n\nMientras seguía buscando, estos dos compañeros me escoltaron hasta el barranco mientras yo aproveché en darles parte de la comida que comieron con mucho gusto. Me quedé mirando el barranco por varios minutos y de a poco a bajarlo. Mientras más bajaba, menos me seguían los perros. \n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nLlegué casi al camino y tras varios minutos de inspeccionar, no encontré ningún rastro del perro. Noté un niño a lo lejos que jugaba con una vara de madera y se contemplaba el atardecer por el cerro. Poco después me vio también parado y se iba acercando de a poco. A una distancia prudente dudó en seguir acercándose y volvió a su casa a jugar con su vara y mirar el paisaje.\n\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\nthumb_bajoLLojetaBarranco1.jpg\nTamaño original\n\nVolví a subir el barranco triste por no haber encontrado al perro preguntándome si seguía vivo, o su cuerpo yacía en algún rincón inmóvil luego de que esta su vida de perro hubiese terminado. Al subir de vuelta volví a ver a mis anteriores perros escolta y les di más de los restos de comida. Luego me escoltaron amablemente de vuelta y en una de las calles se detuvieron al frente de una puerta luego de escuchar que se abría. Salió una señora de la tercera edad, una "viejita" que tenía una olla de una sopa parecida a "lawa" de perro que poco a poco iba vaciando en un plato al lado de su puerta. Los perros esperaban pacientes a que terminara y luego fueron a comer. Ahí me ajelé y algunas migajas que tenía todavía, se las daba a otros perros del camino que también las recibían agradecidos.\n\nDos días después, me comuniqué con el dueño del lavado preguntando sobre el perro y me dijo que no lo volvió a ver, pero que me escribiría en otro caso. Una semana después pasé de nuevo por la avenida y no vi rastros del perrito que vivió su vida entre las calles de Bajo Llojeta, zona donde socializaba, caminaba, dormía, contemplaba con la nariz y los ojos lo que aparecía y donde algunas personas le daban comida, y quizá algunas le acariciaban la cabeza.\n\n \nSi acabó la vida de un perro hambriento, es fácil darse cuenta de que hay muchas otras más. La ciudad de La Paz en Bolivia tiene una gran cantidad de perros y la tenencia irresponsable de animales es uno de sus más grandes problemas.\n\nAlgunas estimaciones indican que hay más de 250000 animales en condición de calle, sin embargo pocas acciones se toman para mejorar su situación. Hay gran diversidad de causas y cada causa tiene su efecto, las consecuencias como lo que le pasó al perrito de esta historia no son casos aislados, están ocurriendo a diario.\n\nUna cadena con muchísimos eslabones que puede empezar con personas irresponsables que descuidan a sus mascotas dejándolas en la calle donde pueden enfermarse, pelear, hambrear, sufrir accidentes, perderse o ser víctimas de agresiones o delincuencia. Además pueden también procrear y multiplicar la cantidad de perros callejeros o abandonados, empeorando la situación.\n\nUna ciudad donde las autoridades se jactan de proyectos de "modernizaciones" inconclusas y uso de la tecnología como un fin en sí misma y reducen los recursos e importancia a la vida y buen vivir de los omnipresentes y nobles animales que la habitan. Esos incorrectamente llamados "seres inferiores" que fielmente ofrecen sus vidas para hacer compañía a personas como nosotros, que soportan maltratos y sufren las consecuencias de la irresponsabilidad colectiva e individual.\n\nPero como siempre, cambiar esta situación esta a nuestro alcance. Justo la misma noche de lo ocurrido con el perro, pude ver a otra viejita que con su compañero alimentaban a —al menos cuatro perros callejeros. Con sus pasos lentos cerca de las 11 de la noche. \n\nthumb_comiendolawa.jpg\n\nEso muestra que hay voluntad y amor para mejorar la vida de los animales por parte de muchas personas que saben que más allá de las riquezas económicas, el trato a los animales es una riqueza más importante.\n\nActuando, exigiendo y esforzándonos podemos hacer de esta y otras ciudades un lugar próspero de verdad.\n', ['reseña', 'reflexión', 'ciudades'])

]]>
Probando mbedtls https://rmgss.net/posts/probando-mbedtls https://rmgss.net/posts/probando-mbedtls Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia software , tutoriales ('Una implementación SSL/TLS libre, mbedtls es una biblioteca que reúne una suite de herramientas para cifrado. Está hecha de tal forma que se puede portar fácilmente a dispositivos embebidos como un barato enrutador con GNU/Linux.\n\n \nTransport Security Layer (TLS) es un conjunto de protocolos que no solamente permiten cifrar comunicaciones, también permiten autenticarlas, veamos un poco de la necesidad de autenticación además del cifrado.\n\nde A a B\n\nEn el caso 1 de arriba se ve como A envía a B un mensaje "Hola", pero hay un espía que está atento a lo que A y B se envían y el espía tambíen recibe "Hola".\n\nEn el caso 2 A toma una medida de seguridad y cifra el mismo mensaje "Hola" con algún algoritmo de cifrado y el resultado es "-, ]85" y suponiendo que B conoce el algoritmo que ha usado A, B podrá descifrarlo y obtener "Hola".\n\nPero "-, ]85" es el resultado de usar un algortmo "débil" dada su simplicidad ya que el espia con algo de conocimiento en cifrado puede con algunos cientos o miles de intentos podría descubrir el algoritmo simple que A usó para cifrar "Hola". En el siguiente caso A y B deciden usar un mejor método de cifrado:\n\nde A a B\n\nAhora A ha cifrado "Hola" usando una clave en común que comparte con B. El mensaje resultante es:\n\n jA0EAwMCj9bE0UxtMdtgyR4rOyDRi1IA4fc7cP/VeSNgO1aVDqsV4H5amv7ZFjI=\n\t=z1GM\n\nB usa la clave y el algoritmo que ha usado A para descifrar este mensaje como "Hola", suponiendo que el espia conce el algoritmo que A, B han usado, aún necesita saber la clave que han usado o al espia le será prácticamente imposible descifrar el mensaje correctamente.\n\nEste cifrado es fuerte en tanto el espia no conozca la clave en común, pero aquí estamos suponiendo que A y B ambos ya cuentan con la clave en común. Pero este no siempre es el caso.\n\nPor ejemplo imaginemos que A y B nunca antes se han comunicado y necesitan comunicarse de manera segura desde la primera vez. Para ello, necesitan definir el algoritmo que usarán e intercambiar una clave en común antes de comenzar a comunicarse de manera segura.\n\nAllí es donde TLS entra en juego, agrega una capa de seguridad permitiendo a cualquier A o B a usar criptografía asimétrica y protocolos para intercambiar estas estas claves de manera segura.\n\n \nDe manera muy resumida con la criptografía asimétrica cualquier A, B necesitan un par de claves; una clave privada y una pública, estas dos claves están matemáticamente relacionadas y se consigue:\n\n Cuando se cifra con la llave privada, sólo se puede descifrar con la clave pública.\n Cuando se cifra con la clave pública, sólo se puede descifrar con la clave privada.\n\nLa clave pública está pensada para que A la comprata con cualquier otro B, C, etc. y así estos últimos puedan descifrar los mensajes que A cifre usando su llave privada. De igual manera si B usa la clave pública de A para enviarle un mensaje a A, sólo A podrá descifrar este mensaje por que se supone que A y solamente A posee su clave privada. La clave privada no se comparte con nadie.\n\nEn tanto A y B intercambien claves públicas y no revelen sus claves privadas, podrán comunicarse de manera segura. Un ejemplo de programa que permite usar este tipo de cifrado es GNUpg.\n\n \nSuponiendo que el espia no puede acceder a las claves de A o B, aún puede engañar a B fingiendo que es A:\n\nde A a B\n\nEn este caso el espia le dice a B que es A y le pasa una clave pública, B no tiene forma de comprobar que en realidad un espia esta intentando hacerse pasar por A y aceptará la clave que se le pase, además confiará en esta clave para comunicarse con A.\n\nPara evitar esto se usan certificados X.509, donde se agrega una medida de seguridad para evitar que un espia suplante a algún A. Se usan certificados firmados por autoridades certificadoras de confianza que aseguran a que A es quien dice ser. De este modo B primero confía en una autoridad certificadora CA. Cuando alguien le dice a B: "yo soy A, toma mi clave pública". B no confiará ciegamente en esto, primero le pedirá a CA que compruebe que la clave que se le ha pasado a B, realmente le pertenece a A.\n\nSi CA lo comprueba, B confiará plenamente en esa clave pública y a partir de ese momento la asociará a A. Entonces el espia no podrá suplantar de nuevo a A, precisamente TLS implementa avanzados protocolos para asegurar que esto funcione correctamente.\n\n----\n\nPor eso todas las páginas web actualizadas y que cifran su contenido, usan TLS y se identifican con https, así los navegadores web y la página web intercambian contenido con un cifrado fuerte, y con las claves autenticadas de manera segura. Por defecto los nevegadores web, confían en un número de autoridades certificadoras en internet.\n\n \nA diferencia de openssl que es una implementación muy conocida de TLS, mbedtls se centra en brindar una manera más sencilla de usar TLS o su conjunto de herramientas de cifrado. Además mbedtls se puede fácilmente usar en dispositivos embebidos con capacidades computacionales reducidas, para lo que sigue de este post mostraré una forma de construir mbedtls para que funcione en un enrutador TL-WDR3600 (aunque podría hacerse funcionar en un más barato como el tl-mr3020), desde una distribución GNU/Linux.\n\nEstamos asumiendo que el enrutador tiene instalado firmware libre como lede, openwrt o librecmc.\n\n \nUna vez descargamos el código fuente desde https://tls.mbed.org/download, abrimos el archivo README.md, veremos que este requiere de herramienetas de construcción como make o cmake. Para nuestro caso usaremos solamente make, entonces instalaremos los paquetes; gcc, build-essential, make. En nuestra distribución preferida GNU/Linux.\n\nLuego vamos al directorio donde esta mbedtls y ejecutamos:\n\n make\n\nDeberíamos estar atentos al procedimiento y si este termina satisfactoriamente, deberíamos poder probar por ejemplo cifrando y descifrando con rsa. Se ha creado una una carpeta programs/pkey/ y allí unos ejecutables que son programas de prueba:\n\n cd programs/pkey\n\t./rsa_encrypt "Hola"\n\nCifrará el mensaje "Hola" con el par de claves de prueba que se crearón al hacer make; rsa_priv.txt y rsa_pub.txt y lo guarda en result-enc.txt, para descifrarlo se usa.\n\n ./rsa_decrypt\n\nY si vemos "Hola", significa que se ha descifrado correctamente.\n\n \nVamos a utilizar el SDK Software Development Kit de lede o librecmc para construir programas para enrutadores como el TL-WDR3600, (revisa este post para ver como construir el SDK ).\n\nUna vez tengamos el SDK, al llamar a make tenemos que usar el compilador gcc para la arquitectura mips_74kc que es la arquitectura del TL-WDR3600, en lugar del gcc instalado en el sistema desde el cual compilaremos.\n\nPara simplificar la compilación cruzada, puedes utilizar este script que llamaremos set-up.sh. Antes de ver el script deberíamos hacer un enlace simbólico del SDK que usaremos en la misma ruta donde descomprimimos mbedtls, lo podemos hacer con:\n\n ln --symbolic /ruta/absoluta/hacia/el/sdk/ SDK\n\nPor ejemplo:\n\n ln --symbolic /home/alguien/lede-sdk-ar71xx-generic_gcc-5.4.0_musl.Linux-i686 SDK\n\nA continuación el script set-up.sh.\n\n :::bash\n #!/bin/bash\n\t\n # Para compilar:\n # \n # ./set-up.sh build\n # ./set-up.sh clean\n \n # para copiarlo directamente al enrutador con <IP> dada (lo copia en /tmp/)\n #\n # ./set-up.sh export <IP>\n \n OP1=$1\n OP2=$2\n \n ayuda()\n {\n echo "Uso:"\n echo "Construye usando un cross compiler mips-openwrt-linux-musl-gcc:"\n echo " ./set-up.sh build"\n echo "Equivalente a \'make clean\':"\n echo " ./set-up.sh clean"\n echo "Construye y copia al enrutador con IP (usa root@IP y copia en /tmp/):"\n echo " ./set-up.sh export IP"\n echo "Ejemplo:"\n echo " ./set-up.sh export 192.168.1.1"\n echo ""\n echo "NOTA Antes de ejecutar:"\n echo " La ruta hacia el SDK de LEDE debe estar en este mismo directorio"\n echo " puede ser con un enlace simbolico con el nombre \'SDK\'"\n echo " ln --symbolic /ruta/absoluta/hacia/el/sdk/ SDK"\n }\n \n #### \n # setup inicial\n setup()\n {\n # agregando al path\n if ! echo $PATH | grep "mips-openwrt-linux-gcc-5.4.0/bin" \n then\n \t RUTA_SDK=$(readlink SDK)\n \t PATH=$PATH:"$RUTA_SDK"staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/\n \t export PATH\n fi\n \n # agregando staging dir\n if ! echo $STAGING_DIR | grep "lede-sdk-ar71xx-generic_gcc-5.4.0_musl.Linux-i686/staging_dir"\n then\n \t RUTA_SDK=$(readlink SDK)\n \t STAGING_DIR="$RUTA_SDK"staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/\n \t export STAGING_DIR\n fi\n echo\n echo "PATH:$PATH"\n echo "STAGING_DIR:$STAGING_DIR"\n }\n ####\n \n build()\n {\n echo "Construyendo..."\n setup\n echo\n echo "CROSS COMPILER:"\n mips-openwrt-linux-musl-gcc --version\n \n # para construir mbedtls (ver README.md)\n #make CC=mips-openwrt-linux-musl-gcc LD=mips-openwrt-linux-ld\n \n # construir usando archivo de configuracion personalizado\n echo ":-:-:"\n echo "Construyendo usando archivo de configuracion distinto al por defecto"\n echo "config-mini-tls1_1.h"\n make CC=mips-openwrt-linux-musl-gcc \\n\t\t LD=mips-openwrt-linux-ld \\n\t\t\t CFLAGS="-I$PWD/configs -DMBEDTLS_CONFIG_FILE=\'<config-mini-tls1_1.h>\'" \\n SHARED=TRUE \n \n echo "Hecho"\n }\n \n clean()\n {\n echo "Limpiando..."\n setup\n make clean\n }\n \n exportar()\n {\n "Exportando..."\n build\n scp -r programs/pkey root@$OP2:/tmp/\n }\n \n ####\n # opciones\n if [ -z "$OP1" ]\n then\n ayuda\n exit 2\n fi\n \n if [ $OP1 == "build" ]\n then\n build\n exit 0\n fi\n \n if [ $OP1 == "clean" ]\n then\n clean\n exit 0\n fi\n \n if [ $OP1 == "export" ]\n then\n R=$(echo $OP2 | grep "[a-z,A-Z]")\n if [ -z $OP2 ] || [ $R != "" ]\n then\n \tayuda\n \texit 2\n else\n \texportar\n \texit 0\n fi\n fi\n \n ayuda\n exit 2\n\nPara que sea más cómodo manejarlo le daremos permisos de ejecución con chmod +x set-up.sh\n\nEl script se encarga de primero agregar al PATH el compilador del SDK de lede y lo exporta. Al hacer ./set-up.sh build se llamará al Makefile de mbedtls pero pasándole tres opciones extra para que realice la compilación cruzada correctamente:\n\n :::bash\n make CC=mips-openwrt-linux-musl-gcc LD=mips-openwrt-linux-ld CFLAGS="-I$PWD/configs -DMBEDTLS_CONFIG_FILE=\'<config-mini-tls1_1.h>\'" SHARED=TRUE \n\nAquí, CC=mips-openwrt-linux-musl-gcc indica a make que use el compilador mips-openwrt-linux-musl-gcc en lugar de gcc instalado en el S.O. De igual forma con el enlazador al modificar LD.\n\nComo se indica en la documentación (ver README en configs/README.txt de mbedtls) usaremos una configuración mínima para compilar mbedtls sin por ejemplo el módulo de entropía, y se usará el archivo de configuración config-mini-tls1_1.h, esto se logra agregando CFLAGS=&#34;-I$PWD/configs -DMBEDTLS_CONFIG_FILE=\&#39;&lt;config-mini-tls1_1.h&gt;\&#39;&#34; al llamar a make. Finalmente SHARED=TRUE hace que se construyan tambíen bibliotecas compartidas (ver más adelante)\n\nAsí es como el script nos permite hacer el cross compiling (compilación cruzada) y una vez termina podemos probar si esto ha funcionado copiando la carpeta programs/pkey/ en el enrutador manualmente o mediante el script y su opción "export".\n\nPara poder probarlo, deberíamos tener instalado en el enrutador la biblioteca mbedtls, en lede se hace con:\n\n opkg install libmbedtls\n\nSi no logras instalar vía opkg, el siguiente procedimiento podría funcionar (no lo he probado):\n\n1. De la carpeta library/ en el directorio donde construimos mbedtls, copiar al directorio /usr/lib/ del enrutador los archivos; libmbedcrypto.so, libmbedtls.so, libmbedx509.so. Estos son las bibliotecas compartidas que make ha construido al definir SHARED=TRUE en el script.\n2. Crear enlaces simbólicos en el enrutador, para que el programa de cifrado sepa que la biblioteca mbedtls esta instalada:\n\n cd /usr/lib/\n\t\t ln -s $PWD/libmbedcrypto.so libmbedcrypto.so.0\n\t\t ln -s $PWD/libmbedtls.so libmbedtls.so.10\n\t\t ln -s $PWD/libmbedx509.so libmbedx509.so.0\n\n2. Copiar la carpeta programs/pkey que se construyerón con los programas de prueba, a /tmp/ del enrutador.\n\nLuego en el enrutador en el directorio /tmp/programs/pkey, deberíamos poder ejecutar los programas para cifrar y descifrar con rsa como probamos antes, si todo funciona bien ya podemos jugar y usar la bilioteca mbedtls para hacer/modificar programas y que se puedan ejecutar en nuestros enrutadores :)\n\n \nComo mbedtls es software libre, podemos modificar el código en cualquier momento y probar los resultados de las modificaciones que hagamos, es cuestión de estudiar el código y aprender a dominarlo para hacer cosas divertidas.\n\nEspero esta guía te haya servido, ponte en contacto para consultas o correcciones.\n\n\n\n\n\n\n\n\n\n\n\n', ['software', 'tutoriales'])

]]>
Probando bmx7 https://rmgss.net/posts/probando-bmx7 https://rmgss.net/posts/probando-bmx7 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia software , tutoriales , redes_libres ('En este post compartiré unas pruebas y pequeña guía del protocolo de enrutamiento Bmx7 para una red en malla.\n\nPara construir una red en malla autónoma hace falta uno o más protocolo de enrutamiento, donde cada nodo en la red se hace descubrir, descubre a otros nodos, avisa a sus vecinos a quienes ha descubierto y también ayuda a llevar información de un nodo a otro a través de el mismo.\n\nExisten varios protocolos de enrutamiento para redes mesh como Batman-adv, Babel, OLSR, bmx6, etc. y en el proyecto LaOtraRed hemos estado probando varios y buscando el protocolo que más se ajuste a las necesidades de una red libre comunitaria y de control colectivo. En ese afán hemos estado trabajando sobre una primera versión estable o 1VE donde hemos definido el protocolo bmx7 como el principal.\n\n \nEste protocolo es una versión más segura de bmx6. Bmx6 siendo una modificación de Batman-adv, está enfocado a redes en malla (que es lo mismo que decir redes mesh) pero le agrega soporte para IPv6, mejora la difusión del estado de cada nodo, etc [1] .\n\nBmx7 además le agrega seguridad usando SEMTOR lo que hace que los anuncios de rutas estén firmados criptográficamente [2] .\n\nA pesar de lo complejo que se ve el protocolo, configurar enrutadores para que lo utilicen es sencillo una vez se consigue poner el software necesario en el equipo.\n\n \nEscenario de prueba\n\nSon básicamente dos nodos, el nodo A y el nodo B se descubren y establecen comunicación con la ayuda de bmx7. El nodo A tiene la dirección IPv6: fa99:1:a::a y también IPv4: 10.64.1.1, de manera similar el nodo B tiene sus propias direcciones IP.\n\nEn el escenario descrito A y B anuncian también bloques de red, por ejemplo A dirá que es acreedor del bloque IPv6 fa99:1:a::/48 directamente y también anuncia un bloque IPv4: 10.64.1.1/24 a través de un túnel, la manera de hacer anuncios varía en bmx7 y veremos eso más adelante.\n\nLa idea de este escenario es que se puede hacer que un nodo le diga a toda la red y más específicamente a sus vecinos, que tiene conexión a un grupo de direcciones IP (bloque IP) y que a través de si mismo los demás nodos de la red pueden conectarse a los dispositivos sean cuales fueren dentro de los bloques que anuncia.\n\n \nVamos a configurar paso a paso ambos enrutadores, para esta prueba he usado dos modelos de enrutadores baratos, el TP-link mr3040 y mr3020.\n\nNormalmente bastaría con descargar la última versión estable del sistema operativo openwrt o lede para estos enrutadores desde https://downloads.lede-project.org/releases/17.01.4/targets/ar71xx/generic/ y buscando las imagenes .factory.bin o .sysupgrade.bin para el mr3020 y 3040 respectivamente. Luego instalar los paquetes necesarios con:\n\n :::bash\n opkg install bmx7 libmbedtls bmx7 bmx7-uci-config \\n bmx7-iwinfo bmx7-tun bmx7-table kmod-iptunnel6 \\n kmod-ip6-tunnel kmod-iptunnel4 kmod-iptunnel\n\nLas imágenes de firmware por defecto en el repositorio de paquetes de lede u openwrt vienen con la interfaz luci para administrar el enrutador.\n\nDebido a que bmx7 usa criptografía para firmar paquetes y verificar autenticidad, requiere la biblioteca mbedtls instalada en el sistema, como los enrutadores mr3020 y 3040 sólo tienen 4MB de memoria FLASH, si se incluye el luci no hay cabida para bmx7. En modelos de enrtuadores con 8 MB de FLASH no se tiene esta limitación.\n\nUna solución sería desinstalar completamente luci pero no he encontrado una forma sencilla de hacerlo, por lo que se puede construir imágenes de firmware usando buildroot o image-generator, en el post construir imágenes de firmware para enrutadores con build root puedes ver cómo hacerlo.\n\nPor ejemplo usando el image-generator se puede construir imágenes de firmware sin luci y con las dependencias necesarias para bmx7 con:\n\n :::bash\n make image PACKAGES="-libiwinfo-lua -liblua -libubus-lua -libuci-lua \\n -lua -luci -luci-app-firewall -luci-base -luci-lib-ip -luci-lib-nixio\\n -luci-mod-admin-full -luci-proto-ipv6 -luci-proto-ppp \\n -luci-theme-bootstrap -uhttpd -uhttpd-mod-ubus \\n bmx7 bmx7-iwinfo kmod-ip6-tunnel kmod-iptunnel6 kmod-iptunnel4 \\n kmod-iptunnel bmx7-json bmx7-sms bmx7-table bmx7-topology bmx7-tun\\n bmx7-uci-config libmbedtls"\n\n--> También puedes descargar las imágenes de firmware con estas características de mi repositorio de imágenes de firmware de openwrt (este repositorio cambia y no esta garantizado que siempre vaya a funcionar):\n\n* https://openwrt.rmgss.net/targets/ar71xx/generic/\n\nLuego instalar las imágenes de firmware correspondientes en los enrutadores. Si nunca lo has hecho revisa esta guía.\n\n \nPrimero el archivo de interfaces de red para el Nodo A.\n\n \n\t:::bash\n config interface \'loopback\'\n \toption ifname \'lo\'\n \toption proto \'static\'\n \toption ipaddr \'127.0.0.1\'\n \toption netmask \'255.0.0.0\'\n \n config globals \'globals\'\n \t# mejor no cambiar esto en el enrutador\n \toption ula_prefix \'fd91:9cd6:f633::/48\'\n \n config interface \'lan\'\n \toption proto \'static\'\n \toption type \'bridge\'\n \toption ipaddr \'10.64.1.1\'\n \toption netmask \'255.255.255.0\'\n \toption ifname \'eth0\'\n \n config interface \'mesh\'\n \toption proto \'static\'\n \toption ip6addr \'fa99:1:a::a\'\n\nCon lo anterior configuramos dos interfaces, lan en IPv4 y mesh en IPv6.\n\n \n\t:::bash\n config wifi-device \'radio0\'\n \toption type \'mac80211\'\n \toption hwmode \'11g\'\n \toption path \'platform/ar933x_wmac\'\n \toption htmode \'HT20\'\n \toption channel \'2\'\n \toption country \'BO\'\n \toption txpower \'18\'\n \toption disabled \'0\'\n \n config wifi-iface\n \toption device \'radio0\'\n \toption network \'mesh\'\n \toption mode \'adhoc\'\n \toption ssid \'bmx7.pruebas\'\n \toption bssid \'D0:D0:11:11:11:11\'\n \toption encryption \'none\'\n\nHacemos que el nodo emita una señal wifi en modo adhoc que con ssid "bmx7.pruebas" y ligada a la interfaz "mesh" definida anteriormente.\n\n \n\t:::bash\n # modificamos un poco el archivo de configuracion por defecto\n # en bmx7\n config \'bmx7\' \'general\'\n # usando la interfaz mesh\n config \'dev\' \'mesh\'\n option \'dev\' \'wlan0\'\n \n # anuncios UHNA (para ipv6 directo)\n config \'unicastHna\' \'miPrefijoDeRed\'\n \toption \'unicastHna\' \'fa99:1:a::/48\'\n \n # tuneles (para bloques ipv4)\n # anunciar tunel ipv4\n config \'tunDev\' defaultbmx7\n \toption \'tunDev\' \'defaultbmx7\'\n \toption \'tun4Address\' \'10.64.1.0/24\'\n # aceptar anuncios \n config \'tunOut\'\n \toption \'tunOut\' \'ip4\'\n \toption \'network\' \'10.64.0.0/16\'\n \n # lo siguiente es para habilitar el plugin bmx7-tun\n # y con esto poder crear tuneles \n config \'plugin\'\n option \'plugin\' \'bmx7_tun.so\'\n \n config \'plugin\'\n option \'plugin\' \'bmx7_table.so\'\n\nEn la configuración de bmx7, primero definimos en que interfaz va a trabjar el protocolo.\n\nLuego definimos anuncios uHNA que son mensajes que anuncian a los nodos vecinos bloques y direcciones IP que tiene un nodo en la red. Lo bueno de usar UHNAs es que se garantiza que ningún otro nodo pueda utilizar las IP que anuncia un nodo mediante un identificador único y que los bloques de direcciones no se solapen. Todos estos paquetes se asocian a un indentificador único por cada nodo y van firmados criptográficamente.\n\nFinalmente, bmx7 es sólo IPv6 y para anunciar bloques IPv4 utiliza anuncios de túneles. Afortunadamente no tenemos que crear los túneles manualemente ya que bmx7 los crea por nosotros, sólo indicamos mediante tun4Address que este nodo anuncia la red 10.64.1.0/24 y mediante tunOut le decimos que acepte anuncios que estén dentro de 10.64.0.0/16 y que los retransmita.\n\nEn el nodo B las configuraciones son similares donde sólo cambian los bloques y direcciones IP correspondientes, si habría otro nodo C o otros más se hace de la misma forma.\n\nUna vez guardadas estas configuraciones, reiniciamos el demonio bmx7 con:\n\n /etc/init.d/network restart\n /etc/init.d/bmx7 restart\n\n \nEl demonio bmx7 se puede consultar en cualquier momento para consultar su estado ,nodos asociados o túneles, a continuación algunas consultas hechas en el enrutador.\n\n\n<div style="border:1px solid black;height:320px;width: 620px;overflow-y:hidden;overflow-x:scroll;">\n<pre>\nbmx7 -c status\n STATUS:\nshortId name nodeKey cv revision primaryIp tun6Address tun4Address uptime cpu txQ nbs rts nodes \n1A0165FA openwrt RSA2048 21 0a82c7c fd70:1a01:65fa:6d39:dce1:20b6:1299:1f82 ::/0 172.24.3.1/24 0:00:38:28 0.4 0/50 1 1 2/2\n \n bmx7 -c status originators\n \n STATUS:\nshortId name nodeKey cv revision primaryIp tun6Address tun4Address uptime cpu txQ nbs rts nodes \n1A0165FA openwrt RSA2048 21 0a82c7c fd70:1a01:65fa:6d39:dce1:20b6:1299:1f82 ::/0 10.64.0.0/24 0:00:38:28 0.4 0/50 1 1 2/2\nORIGINATORS:\nshortId name as S s T t descSqn lastDesc descSize cv revision primaryIp dev nbShortId nbName metric hops ogmSqn lastRef \n7B037847 openwrt1 nA A A A A 512 2303 671+747 21 0a82c7c fd70:7b03:7847:472a:414:9eee:2d98:3e14 wlan0 7B037847 openwrt1 22399K 1 356 0 \n1A0165FA openwrt nQ A A A A 413 132 671+749 21 0a82c7c fd70:1a01:65fa:6d39:dce1:20b6:1299:1f82 --- --- --- 257G 0 20 5\n \n bmx7 -c status originators descriptions tunnels\n </pre>\n</div>\nLa guía completa de comandos se puede ver en https://github.com/bmx-routing/bmx7 o una descripcion mas corta con bmx7 --verboseHelp.\n\nComo en las consultas anteriores vemos que el nodo B se ha dectectado, comprobamos que en el enrutador se hayan establecido rutas hacia él, por ejmplo con:\n\n :::bash\n ip -6 route\n # que muestra entre su salida que hay una ruta establecida hacia el nodo B\n fa99:1:b::/48 via fe80::ea94:f6ff:fe6b:80fa dev wlan0 metric 1024 \n fd70:7b03:7847:472a:414:9eee:2d98:3e14 via fe80::ea94:f6ff:fe6b:80fa dev wlan0 metric 1024 \n unreachable default dev lo metric -1 error -128\n fa99:1:a::a dev wlan0 metric 256\n\nEn bmx7 los nodos configuran automáticamente una dirección IPv6 al azar y un indentificador único en la red, pero los anuncios de redes UHNA son únicos y eso suprime el riesgo de IP spoofing.\n\nAhora la comunicación entre el nodo A,B o una cantidad arbitraria de nodos es posible, podemos comprobar haciendo por ejemplo la prueba trazando rutas.\n\n\t:::bash\n\ttraceroute -6 fa99:1:b::b\n\nQue muestra que se puede llegar a esa direccion IP iendo por el nodo B.\n\n :::bash\n traceroute to fa99:1:b::b (fa99:1:b::b), 30 hops max, 16 byte packets\n 1 fa99:1:b::b (fa99:1:b::b) 1.392 ms 1.581 ms 1.329 ms\n\n # usando ip para ver que ruta se sigue para alcanzar una IP\n\tip route get fa99:1:b::b\n\tfa99:1:b::b from :: via fe80::ea94:f6ff:fe6b:80fa dev wlan0 src fc99:1:a::a metric 1024 \n\n \nEn bmx7 no es obligatorio utilizar un archivo de configuración para modificar el comportamiento del protocolo. Cuando el demonio bmx7 esta ejecutándose con comandos se puede por ejemplo hacer que se anuncien bloques adicionales mediante UHNA.\n\n bmx7 -c u=fc01:1934:ffed::/64\n\nQue haría que el nodo también anuncie el bloque fc01:1934:ffed::/64, de igual manera se puede hacer que se anuncien túneles, quitarlos, establecer póliticas para aceptar anuncios y distribuirlos, etc. Consulta la guía oficial.\n\nCon toda la flexibilidad que ofrece bmx7 ya tenemos construida una pequeña red en malla :)\n\n \n1. An evaluation of BMX6 for Community Wireless Networks\n2. Securely-Entrusted Multi-Topology Routing for\nCommunity Networks\n', ['software', 'tutoriales', 'redes_libres'])

]]>
Nucleo gnu linux en la umsa https://rmgss.net/posts/nucleo-gnu-linux-en-la-umsa https://rmgss.net/posts/nucleo-gnu-linux-en-la-umsa Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reseña , reflexión ('El Núcleo GNU/Linux de la carrera de informática de la UMSA, es un grupo de estudios de software libre organizado y gestionado por estudiantes.\n\nNúcleo GNU/Linux\n\nLogo del Núcleo GNU/Linux de 2014 a 2016 (por Ruth Margarita García Lopez).\n\nCon alegría veo sus progresos estudiando, promocionando y desarrollando software libre, uno de los últimos eventos que han realizado son las charlas pre-flisol para el FLISOL 2017 en La Paz Bolivia. Fuerón 3 días de charlas muy interesantes aunque no pude asistir a todas, vi a los expositores con muchas ganas y gusto en informar sobre software libre y compartir sus experiencias.\n\n> A continuación voy a hacer una pequeña reseña según lo que se de la historia del grupo.\n\n \nGabriel Condori Cortes fue el primer organizador que se aventuró a formar el grupo de estudio junto con Hardy Beltrán y un gran apoyo de la comunidad de software libre en Bolivia.\n\nLlevarón el reto de formar un grupo de estudio de software libre en una carrera plagada de enseñanza en software privativo, pero era un reto que debía ser tomado por la misma comunidad de software libre y los estudiantes.\n\nEl grupo tuvo su origen en 2013 con un curso de software libre en la carrera de informática de la UMSA, el curso estaba a cargo de Hardy Beltran un miembro activo de la comunidad de software libre y experto en GNU/Linux y Gabriel Condori Cortes estudiante de la carrera.\nEl curso introductorio al sistema operativo GNU/Linux se llevaba a cabo los días sábados con la participación de estudiantes y docentes de la carrera y culminó a fines de Junio de 2013.\n\nEn esa época el grupo se donominaba "Núcleo Linux".\n\n \nJunto con el Núcleo Linux se formarón otros grupos de estudio en la carrera de informática de la UMSA, entre ellos el grupo de estudios Android (el más numeroso), el de la ACM-ICPC y el grupo de estudios Microsoft.\n\nA comienzos de 2014 se reactivaron las actividades en el grupo de estudio que se organizó en el hacklab “r00thouse” en la ciudad de La Paz, se mantenía la dinámica de un curso con temario definido en la wiki del r00thouse.\n\nMucha gente aportó y yo era parte, recuerdo a los chicos y chicas del r00thouse, de la sociedad científica de la facultad de ciencias puras y naturales como Erick Gómez, Javier Zelada, y miembros de la comunidad de software libre Bolivia como Reynaldo Condori.\n\nRecuerdo no teníamos un logo y Ruth García hizo uno que ahora aparece en la galería de arte del proyecto GNU, es la misma imagen que esta en la cabeza de este post.\n\nA partir de esa gestíon comenzó a llamarse "Núcleo GNU/Linux", pero el curso terminó con unos 5 a 10 estudiantes en las últimas clases, era claro que los otros grupos de estudio nos llevaban la delantera en cuanto a cantidad de estudiantes.\n\n \nEn 2015 hubierón pocas personas con posiblidades de organizar el núcleo por lo que me hice cargo, traté de enfocar los cursos del grupo como clases introductorias a los aspectos técnicos del S.O. GNU/Linux y por su puesto a la filosofía.\n\nDicte el curso con la ayuda de Armin Mesa y Franklin Torrez del r00thouse a pesar de que yo también estaba emepezando en el mundo del software libre, el curso se llevaba a cabo todos los sábados a las 10:00 am en el laboratorio prestado de telemática de la carrera de informática.\n\nRecuerdo dictamos un total de 14 sesiones y el número de asistentes al final del curso era de aproximadamente 5, lo que me causó preocupación ya que otros grupos de estudio como el de Android o Microsoft en la UMSA tenía tranquilamente unos 20 estudiantes activos.\n\nEl núcleo también apoyaba la organización de eventos como el FLISOL y la semana del pingüino, y gracias a un mensaje que nos envió Richard Stallman noz hizo notar que no se podía excluir al Ñu de GNU al hablar de software libre, paso a llamarse la semana del Ñu y del pingüino.\n\nPero el número de asistentes a las actividades relacionadas a software libre en la UMSA iba en declive.\n\n \nEn el segundo semestre de 2015, junto con Gabriel Condori decidimos cambiar de estrategia para llegar a la mayor cantidad de estudiantes con el núcleo y cambiamos el tiempo de duración del curso de un semestre a 2 semanas intensas. Dictamos dos cursos introductorios de lunes a viernes en las noches. Cada curso duraba dos semanas y media --sin embargo el número de asistentes al final no superaba los 5 nuevamente.\n\nProbablemente por el horario nocturno donde los estudiantes en su mayoría estábamos cansados o por que el aula que nos prestarón contaba con máquinas con capacidades muy limitadas (pentium III y IV) y sin conexión a internet, es por que el curso no alcanzó un número mayor de asistentes. El aula era tan pequeña que a lo sumo entraban 10 computadoras y una pizarra. Entre los estudiantes lo llamábamos "el labo patito", yo creía que era por su tamaño diminuto y por las paredes amarillas.\n\nOriginalmente el labo patito lo utilizaba el grupo de estudios de la ACM-ICPC y a menudo los encontrabas estudiando allí, el nombre al parecer viene del juez patito que usa ese grupo de estudios. Luego convirtierón el "labo patito" en un baño para los administrativos le quitarón las máquinas para que posteriormente se mudara a otro lugar casi igual de pequeño y lo sigue utilizando el grupo de la ACM así sin computadoras.\n\nEl núcleo GNU/Linux no tenía ningún ambiente exclusivo, tan sólo nos prestaban el laboratorio de telemática a menudo a cambio de hacerle mantenimiento a los programas necesarios para la materia de telemática en la carrera, y para facilitarnos la vida instalando/reinstalando programas montamos un servidor web con un espejo de los paquetes Debian en la red local de la carrera, ese servidor sigue funcionando y es muy valioso ya que ahorra la necesidad de conectarse al internet para instalar muchos progrmas (el internet en la UMSA es en general muy lento debido a la gran cantidad de estudiantes), a parte para que nos sigan prestando de buena gana el espacio tuvimos, que reinstalar todas las máquinas con Debian 7 y 8 en mas de 60 máquinas de la carrera.\n\nA pesar de las dificultades, continuamos con el núcleo y conocí a muchas personas que se interesaban por el software libre y logramos un mayor compromiso de los pocos asistentes que terminamos el curso, entre ellos estaba Donato Aymatha.\n\n \nMe di cuenta que no debía seguir a la cabeza del núcleo ya que no estaba teniendo mucho éxito en cuanto al número de asistentes como creí se necesitaba en la carrera de informática. Por fortuna, Alejandro Quisbert (Alexandro) un estudiante que nunca había asistido a ningún curso del núcleo que organizábamos aceptó el reto de organizar el núcleo, Alejandro tambíen asistía al r00thouse y aprendió y adoptó rápidamente GNU/Linux.\n\nAlejandro junto con Sam, Lupe y los demás miembros del núcleo han conseguido expandirlo más allá de un curso, han fortalecido la comunidad que lo conforma y la presencia del grupo de estudio de software libre en la carrera de informática de la UMSA. Están trabajando muy duro y aunque siguen sin un ambiente exclusivo en la carrera y ayudando en el mantenimiento de los laboratorios, están llevando el núcleo adelante.\n\nVeo que el grupo de estudio tiene un gran futuro siempre y cuando siga conservando los principios del software libre. Considero muy importatnte el aporte que le hace a la carrera de informática y a la sociedad al mostrar nuevos horizontes en cuanto al desarrollo de software y tecnología.\n\nHasta ahora el núcleo GNU/Linux en la UMSA sale del típico esquema que dice: "Hay que producir software para incrementar ganacias monetarias, lo demás es secundario" o el típico: "La demanda del mercado es lo que más importa en cuanto al software que tienes que desarrollar o mantener". Y estos esquemas son en lo que nos tratan de enfrascar durante nuestra formación universitaria en la mayoría de las materias y actividades en la UMSA.\n\nMe alegra haber sido parte activa del núcleo y aunque cuando yo lo "dirigía" no tuvimos mucho éxito, se que gracias a lo que hicimos el interés por el movimiento del sofware libre en la carrera de informática siguío ahí vivo, creciendo y formando una comunidad valiosa.\n\n\n', ['reseña', 'reflexión'])

]]>
Nodo chersky LaOtraRed https://rmgss.net/posts/nodo-chersky-LaOtraRed https://rmgss.net/posts/nodo-chersky-LaOtraRed Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia LaOtraRed , redes_libres , medios_de_comunicación ('Esta es una reseña sobre la puesta en marcha experimental del nodo "Chersky" como parte del proyecto LaOtraRed La Paz. En este post podrás revisar fotos, experiencias sobre el montado del nodo, además detalles técnicos de puesta de servicios y configuraciones.\n\nNota: Este artículo es una referencia histórica por que el nodo Chersky ha evolucionado, aquí la segunda versión.\n \n LaOtraRed\n ¿De qué se trata?\n Materiales usados\n Montado de la torre\n Servicios disponibles\n Agradecimientos y más\n Infraestructura de red del nodo\n Configuraciones de aparatos enrutadores\n\n<span id="LaOtraRed"></span>\n \nLaOtraRed La Paz es una red libre construida y mantenida enteramente por personas voluntarias. La red le pertenece a toda la comunidad que forma parte de ella y no existe una persona, organización u empresa que sea dueña.\n\nPara que esta sea una red libre se siguen cuatro principios de convivencia fundamentales:\n\n Eres libre de utilizar la red para cualquier propósito en tanto no perjudiques el funcionamiento de la propia red ni a la libertad de los demás usuarios.\n Eres libre de saber cómo es la red, de qué se compone y cómo funciona.\n Eres libre de emplear la red para cualquier tipo de comunicación y difundir su funcionamiento.\n Incorporándote a la red, ayudas a extender estas libertades en las mismas condiciones.\n\nEstos principios son extraídos de la licencia procomún inalámbrica version 1.0 derivada (Bolivia).\n\nEn La Paz LaOtraRed es principalmente impulsada por el Grupo de estudio de redes libres GEReL, del cual soy parte activa.\n\nEl nodo Chersky es el segundo nodo asegurado después del nodo sopocachi I.\n\n<span id="acercade"></span>\n \nEste nodo es un punto de conexión wifi libre en un barrio de la ciudad de La Paz, si alguién se conecta a la señal wifi puede utilizar una serie de servicios libremente. Además este punto de conexión wifi está preparado para actuar como nodo en la red distribuida de LaOtraRed y se clasifica como un nodo normal por repartir la señal de la red distribuida en 5 Ghz y 2.4 Ghz.\n\nEste un diagrama a grandes rasgos de la infraestructura del nodo que iré detallando más adelante.\n\nNodo Chersky infraestructura\n\n \nEl nodo se encuentra en la ciudad de La Paz, casi llegando al barrio gráfico cerca la plaza Villaroel y el hospital Arco Iris, puedes buscar la señal de wifi por ahí.\n\n<span id="materiales"></span>\n \nHe realizado una inversión considerable en el montado de este nodo, pero esto no quiere decir que esta es la forma óptima de montar un nodo o que el precio de montado es irreducible, como referencia voy a poner los precios de los materiales y equipos comprados:\n\nEquipos de comuptación y redes\n\n Computador AMD Atlon (prestado del r00thouse, a este server lo llamamos chipsito)\n Pila BIOS CR2032 (15 bs)\n Router Dual Band modelo TLWDR3600 (500 bs)\n Swtich ethernet (reciclado)\n\nAccesorios redes\n\n 2 Cajas de red (30 bs)\n Conectores hembra y macho jack (10 bs)\n 5 Conectores rj45 (5bs)\n 20 metros de cable utp cat5 (50 bs)\n\nPreparado de la antena\n\n 6 metros cable coaxial rg58 para hacer antena casera (24 bs)\n 2 conectores sma macho (28 bs)\n 1 conector sma hembra (14 bs)\n Tubo pvc 1.3 m (reciclado)\n\nMontado de la torre\n\n 2 amarros de alambre de amarre (20 bs)\n 2 palos de fierro 10 cm (reciclado)\n Pedazos de madera pequeños (reciclados de un botadero)\n\nInversión adquiriendo materiales y equipos : 696 bs\n\n<span id="torre"></span>\n \nPara la "torre" he usado básicamente los palos de fierro, las maderas, alambre de amarre y cables de red.\n\nHe puesto el router en el techo para disminuir la distancia entre el equipo y la antena así se puede reducir la pérdida en la línea de transmisión coaxial hasta la antena. Y para colocar el router arriba se requiere darle suministro eléctrico, lo que en ciscunstancias normales significa llevar un cable con 220 V AC.\n\n \nPara ahorrarse el cable para 220 V AC en el techo y aprovechar que no se necesitan todos los hilos del cable para la conexión ethernet, se ha hecho una modificación usando dos cajitas de red, y dos conectores jack. Esta modificación está mejor descrita aquí, estas son un par de fotos del trabajo hecho.\n\ncajitas abiertas\n\n<img src="../static/imgs/posts/cajitas_terminadas.jpg">\n\n \nBusqué la forma de hacer una antena casera onmidireccional para wifi con ganancia por encima de los 15 DBi, principalmente para ahorrarme dinero al tratar de adquirir una antena. Encontré este diseño de antena hecha con el mismo cable coaxial y como parecía sencilla de hacer la hice.\n\nPero no obtuve los resultados deseados y probablemente por errores en el proceso de construcción, por ejemplo en las medidas de los trozos o al preparar los conectores, al final la antena medía cerca de 1.4 m y la ganancia era similar a la antena con la que venía el router. De todas formas terminé poníendola en el techo y espero poder realizar una mejor antena. Estaría muy agradecido si me das sugerencias sobre antenas onmidireccionales, hazlo por aquí por favor o escribe al foro de la otra red La Paz muchos te lo agradercerán.\n\nAquí algunas fotos de lo que hice.\n\nPreparando los pedazos.\n\np1\np2\np3\np5\n\nColocando el dentro el tubo pvc como cubierta, a un extremo de la antena puse un conector SMA hembra para que se pueda conectar a otros pigtails de cable coaxial.\np6\n\nConectado al router luego de conectar con un pigtail que hice con el mismo cable coaxial y los conectores SMA macho.\n\np4\n\n \nUsando estos materiales:\n\ntorre materiales\n\nPrepare una base con los dos fierros e "incrusté" un fierro en la base de madera para tener mejor apoyo sobre el techo inclinado.\n\ntorre materiales\n\nLuego amarré 3 alambres para sujetar los fierros donde también aseguré la antena con el alambre de amarre, al final la base de la "torre" terminó así:\n\ntorre asegurada\n\nDespués conecté el cable coaxial de la antena casera a la entrada del router, en la imagen siguiente no esta el cable utp que va de la cajita al router, lo dibuje en la imagen por que después si lo puse o no habría conexión con el servidor.\n\ntorre asegurada\n\nUna vez cubierto el router para protegerlo de la interperie y asegurarlo, sólo queda el trabajo al interior y esto es acomodar la computadora y conectar al switch tal y como si fuera una red LAN.\n\n<span id="chipsito"></span>\n \nEste servidor es del r00thouse y agradezco me lo presten mientras no lo necesiten. La historia que me contarón es que Amos Batto un activista ambientalista y que antes se pasaba por el r00thouse donó el equipo, agradezco a Amos por la donación y aunque chipsito es un equipo muy pesado y para algunos antiguo, funciona muy bien, espero darle el mejor uso en lo que le queda de vida útil.\n\nChipsito tiene una CPU AMD Athlon, con 784 MB de RAM y 60 GB de disco duro. Luego de comprarle una nueva pila para el BIOS funciona bien. Le instalé Debian GNU/Linux 8 jessie y puse algunos servicios que especificaré a continuación.\n\nTiene el nombre de Chipsito gracias a Chip el perro de Armin que vive en el r00thouse y te daba la bienvenida con ladridos y golpes con las patas delanteras... es que es muy jugetón e hiperactivo. Además había otro equipo en el r00thouse que llamamos Chip pero tenía características superiores al chipsito. Ni hablar más aquí unas fotos del equipo.\n\nchipsito1\nchipsito2\n\n<span id="servicios"></span>\n \nHasta el momento hay 6 servicios principales.\n\n wikipedia offline en castellano.\n Streaming de audio con icecast2, ices e ices2.\n Imageboard basado en https://github.com/tslocum/TinyIB\n El botadero para compartir archivos.\n Una app para poner anuncios y comentarios.\n Un directorio de descargas de archivos variados.\n\nMás referencia sobre el despliegue de estos servicios https://wiki.lapaz.laotrared.net/guias/indice_servicios.\n\nA parte en el router he tenido que configurar dnsmasq como servidor dns "invasivo" lo que se describirá más adelante.\n\n<img src="../static/imgs/posts/pag_principal1.jpg" width=350>\n\n<small>Arriba una captura de pantalla del los servicios en la página principal del nodo.</small>\n\n<span id="agradecimientos"></span>\n \nMuchas personas han hecho posible el montado de este nodo y del proyecto LaOtraRed, voy a listar a quienes han tenido especial influencia.\n\n Luis Mita: Su ayuda en los aspectos técnicos han sido fundamentales, cuando andaba desubicado me ayudaba a ubicarme de nuevo. Su apoyo moral también ha sido importante además de ser el impulsor principal del proyecto LaOtraRed en La Paz.\n Donato Aymatha: Ha hecho un gran trabajo consiguiendo contactos y difundiendo el proyecto a distintos sectores y eso me ha ayudado a entender algunas necesidades comunicacionales básicas de muchas personas y que no todo se enfrasca en un mundo de consumismo digital, hay que darle a las personas los medios para generar sus propios contenidos y en una red libre eso es importante.\n Sergio Guillén: Wonkey como miembro del r00thouse ayudó mucho impulsando el proyecto y haciendo cosas que nadie más se animaba como cuando se animó a configurar VLANS o conseguir routers ganando hackatones. Eso me dío animos para seguir trabajando.\n Armin Mesa: Como miembro del r00thouse por apoyar en lo que estaba a su alcance animando a seguir con los proyectos, además por permitirme usar el server chipsito para este nodo.\n Franklin Torres: Dx por su ayuda y apoyo constante en cada problema que surgía cuando yo era parte del r00thouse.\n Esteban Lima: Tebo de buena gana ayudó a iniciar el proyecto LaOtraRed y a conseguirnos espacios de prueba, también colaboró en Cochabamba donde han estado construyendo LaOtraRed.\n\nVoy a hacer un agradecimiento especial a Philippe Rivière o Fil, que es la persona que realizó una importante donación monetaria cuando empezabamos el proyecto con esa donación pudimos adquirir muchos enrutadores con los que empezamos a probar en serio la creación de una red distribuida y para montar un nodo de pruebas en el r00thouse.\n\nFil hizo un viaje largo desde Francia a Bolivia y antes de irse hizo el donativo sin anunciarlo a grandes voces ni esperar reconocimiento público, sólo confiando en que su donativo apoyaría al proyecto y así lo hizo ¡Gracias Fil!.\n\n \nAntes de pasar a la parte enteramente técnica me gustaría animar a muchos otros para que monten sus nodos o ayuden a montarlos y expandir una red distribuida y libre.\n\nNo es buena idea esperar a que otr@s nos brinden soluciones comunicacionales que probablemente no se ajustarán a nuestras necesidades reales, además se podrían aprovechar de nuestra situación por falta de comunicación para --imponernos tarfias excesivas y un mal servicio, como es el caso del internet en Bolivia.\n\nSi tienes la posibilidad debes tomar acción apoyando la creación de redes libres para los y las ciudadanas, controladas y gestionadas por los mismos.\n\nRechaza medios de comunicación que te quitan la libertad de comunicarte libremente y anima a otros a hacerlo.\n\nPuedes revisar este post que estoy escribiendo al respecto.\n\n<span id="infraestructura"> </span>\n \nEste diagrama explica a grandes rasgos la infraestructura del nodo:\n\nNodo Chersky infraestructura\n\nComo se ve hay un router no solamente reparte wifi para que se conencten varios clientes, también emite y recibe señales wifi (2.4 y 5Ghz) en modo adhoc para unirse a la red distribuida LaOtraRed.\n\nEl siguiente diagrama muestra con más detalle la infraestructura del nodo.\n\nNodo Chersky infraestructura detalle\n\nSólo hay un aparato enrutador que realiza la conexión a la red distribuida, este aparato también sirve como repartidor de red wifi para clientes, el conmutador de red es opcional y puede servir para conectar equipos adicionales como servidores que tendrán una IP pública (serán visibles por todos los nodos en LaOtraRed).\n\n<span id="configuraciones"></span>\n \nEsta es una configuración experimental de nodo para LaOtraRed y no compromete al proyecto.\n\nEn los diagramas de la infraestructura del nodo se puede ver que se conecta a la red distribuida de LaOtraRed por wifi (en 2.4 y 5Ghz) y además a una red local de clientes temporales.\n\n El nodo Chersky tiene reservado el bloque 10.64.3.64 /27 siguiendo una política de asignación de IPs\n\nLo último significa que este nodo puede usar como mejor le convenga un total 30 direcciones IP para equipos que van desde 10.64.3.65 a 10.64.3.94 y estas direcciones serán públicas en todo el espacio de la red distribuida.\n\n \nEste enrutador tiene instalado el S.O. openwrt y sus funciones son:\n\n Conectarse a la red distribuida por wifi en 2.4 y 5 Ghz usando el bloque público 10.64.3.64 /27 asignado a este nodo.\n Crear una red local para clientes en 172.24.1.0 /24.\n Servir de wifi hotspot en 2.4 Ghz.\n Servidor dhcp para asignar direcciones IP automáticamente a clientes.\n Servidor DNS para la red local.\n\n \nEste es el archivo donde se definen las interfaces de red.\n\nPor convenencia se ha definido VLANs para reservar puertos ethernet del aparato de forma ordenada siguiendo: https://wiki.openwrt.org/toh/tp-link/tl-wdr3600#switch_ports_for_vlans, la definición de VLANs no es estricamente necesaria.\n\nPor ejemplo he definido la VLAN 1 que abarca los puertos ethernet 1 y 2 y hace que cualquier dispositivo que se conecte allí pertenezca a una interfaz específica (en este caso "wiredmesh"), la VLAN 2 abarca los puertos ethernet 3 y 4 y cualquier dispositivo que se conecte a estos puertos pertenecerá a la interfaz "mesh", de igual manera con la VLAN 3 pero con la interfaz "wan" y usando el puerto ethernet wan.\n\nEste el archivo de configuración completo:\n\n :::bash\n config interface \'loopback\'\n \toption ifname \'lo\'\n \toption proto \'static\'\n \toption ipaddr \'127.0.0.1\'\n \toption netmask \'255.0.0.0\'\n \n config globals \'globals\'\n \toption ula_prefix \'fdec:6a81:414a::/48\'\n # red mesh para conexiones cableadas (ethernet)\n config interface \'wiredmesh\'\n \toption ifname \'eth0.1\' # VLAN 1\n \toption force_link \'1\'\n \toption proto \'static\'\n \toption ipaddr \'10.64.3.65\' # IPv4 publica del router\n \toption netmask \'255.255.255.224\' # mascara /27\n # red mesh para 2.4 Ghz\n config interface \'mesh_2G4\'\n \toption proto \'static\'\n \toption ipaddr \'10.64.3.65\' # IPv4 publica del router\n \toption netmask \'255.255.255.224\'\n \toption ip6addr \'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2661/128\'\n # red mesh para 5 Ghz\n config interface \'mesh_5G\'\n \toption proto \'static\'\n \toption ipaddr \'10.64.3.65\' # IP publica del router\n \toption netmask \'255.255.255.224\'\n \toption ip6addr \'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2669/128\'\n # red lan\n config interface \'lan\'\n \toption ifname \'eth0.2\' # VLAN 2\n \toption force_link \'1\'\n \toption type \'bridge\'\n \toption proto \'static\'\n \toption ipaddr \'172.24.1.1\' # IPv4 del route en la red lan privada\n \toption netmask \'255.255.255.0\' # mascara /24\n\t\t\n config interface \'wan6\'\n \toption ifname \'eth0.3\'\n \toption proto \'dhcpv6\'\n config interface \'wan\'\n \toption ifname \'usb0\'\n \toption proto \'dhcp\'\n # Definicion de VLANs\n config switch\n \toption name \'switch0\'\n \toption reset \'1\'\n \toption enable_vlan \'1\'\n # VLAN 1\n config switch_vlan\n \toption device \'switch0\'\n \toption vlan \'1\'\n \toption ports \'0t 2 3\'\n # VLAN 2\n config switch_vlan\n \toption device \'switch0\'\n \toption vlan \'2\'\n \toption ports \'0t 4 5\'\n # VLAN 3\n config switch_vlan\n \toption device \'switch0\'\n \toption vlan \'3\'\n \toption ports \'0t 1\'\n\n \nComo es un router DUAL BAND y este es un nodo normal dentro LaOtraRed se debe expandir la señal de la red distribuida en 2.4 y 5 Ghz, a continuación el archivo de configuración:\n\n :::bash\n\t# dispositivo 2.4Ghz\n config wifi-device \'radio0\'\n \toption type \'mac80211\'\n \toption hwmode \'11g\'\n \toption path \'platform/ar934x_wmac\'\n \toption htmode \'HT20\'\n \toption country \'BO\' # normativa Boliviana\n\t\toption channel \'7\'\n \toption disabled \'0\'\n \toption txpower \'19\'\n \toption distance \'1000\'\n # dispositivo 5Ghz\n config wifi-device \'radio1\'\n \toption type \'mac80211\'\n \toption txpower \'22\'\n \toption country \'BO\' # normativa Boliviana\n \toption channel \'153\' # Canal comun para LaOtraRed\n \toption hwmode \'11a\'\n \toption path \'pci0000:00/0000:00:00.0\'\n \toption htmode \'HT20\'\n \toption disabled \'0\'\n # 5 Ghz mesh\n config wifi-iface\n \toption device \'radio1\'\n \toption network \'mesh_5G\'\n \toption mode \'adhoc\'\n \toption ssid \'lapaz.laotrared.net\'\n \toption bssid \'BE:BA:CA:FE:BE:BE\' # MAC comun 5Ghz\n \toption encryption \'none\'\n # 2.4 Ghz mesh\n config wifi-iface\n \toption device \'radio0\'\n \toption mode \'adhoc\'\n \toption network \'mesh_2G4\'\n \toption ssid \'lapaz.laotrared.net\'\n \toption bssid \'BE:BA:CA:FE:B3:B3\' # MAC comun 2.4Ghz\n \toption encryption \'none\'\n # 2.4 Ghz clientes (lan privada)\n config wifi-iface\n \toption device \'radio0\'\n \toption mode \'ap\'\n \toption encryption \'none\' # tambien se puede usar cifrado aqui\n \toption ssid \'Chersky - LaOtraRed\'\n \toption network \'lan\'\n\n \nComo se considera la interfaz lan una red privada, todos los dispositivos conectados que quieran ver contenido de equipos públicos dentro LaOtraRed La Paz (bloque 10.64.0.0 /15) lo harán a través de NAT. Esto quiere decir que se usará la IP 10.64.3.65 del router para enviar el tráfico desde la interfaz lan hacia otros nodos en LaOtraRed.\n\nPor eso se agregan las siguientes opciones en el firewall:\n\n :::bash\n config zone\n \toption input \'ACCEPT\'\n \toption output \'ACCEPT\'\n \toption name \'mesh\'\n \toption forward \'ACCEPT\'\n \toption network \'lan mesh_2G4 mesh_5G wiredmesh\'\n \toption masq \'1\' # masquerading (NAT)\n \n config forwarding\n \toption dest \'lan\'\n \toption src \'mesh\'\n\n \nComo se trata de una red distribuida, todos los nodos deben colaborar para brindar conexión a otros. Se utiliza el protocolo de enrutamiento dinámico babel.\n\nHacemos que babeld haga algunas cosas:\n\n Diga a los nodos vecinos que el bloque 10.64.3.64 /27 es su dominio y para llegar a ese bloque de direcciones IP lo harán a través de este router.\n Reciba rutas de otros vecinos dentro el bloque 10.64.0.0 /15 y se las avise a otros vecinos.\n Sea punto intermedio de conexión entre otros nodos cuando estos lo requieran.\n* Detecta automáticamente otros nodos en la red y estos se unen automáticamente.\n\nLa ventaja de este protocolo es que elimina la posibilidad de que se formen bucles de enrutamiento y trabaja en IPv6 e IPv4.\n\nPara utilizarlo se tiene instalado el paquete babeld con:\n\n opkg install babeld\n\nEste es el archivo de configuración:\n\n :::bash\n package babeld\n config general\n \toption \'random_id\' \'true\'\n \toption \'ipv6_subtrees\' \'true\'\n \n ##### interfaces en las que babel participa\n # (wifi 2.4Ghz adhoc)\n config interface\n \toption \'ifname\' \'wlan0\'\n \toption channel \'7\'\n # (wifi 5Ghz adhoc)\n config interface\n \toption \'ifname\' \'wlan1\'\n \toption channel \'153\'\n \n ###### filtros para rutas de entrada (anunciadas por los vecinos)\n # permitir rutas del bloque 10.64.0.0 /15 (LaOtraRed La Paz - El Alto)\n config filter\n \toption type \'in\'\n \toption ip \'10.64.0.0/15\'\n \toption action \'allow\'\n config filter\n \toption type \'in\'\n \toption ip \'fc01:1934::/32\'\n \toption \'allow\'\n \n ###### filtros para rutas internas (kernel)\n # anunciar a los vecinos el bloque de este nodo\n config filter\n \toption type \'redistribute\'\n \toption ip \'10.64.3.64/27\' # bloque IPv4 de este nodo\n \toption action \'allow\'\n config filter\n \toption type \'redistribute\'\n \toption ip \'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2662/128\' # IPv6 (de pruebas)\n \n ###### denegar otras rutas no definidas\n config filter\n \toption type \'in\'\n \toption action \'deny\'\n config filter\n \toption type \'redistribute\'\n \toption local \'true\'\n \toption action \'deny\'\n\nCon estas configuraciones el router funciona como nodo dentro la red distribuida. Si otro nodo tiene configuraciones similares estará haciendo crecer la red distribuida y libre.\n\nLo que en otro nodo se debería cambiar son las direcciones IP correspondientes a las que tengan asingadas, ver política de asignación de IPs para más información.\n\n \nSe usa dnsmasq como servidor DNS y DHCP, no se han hecho cambios al arhivo /etc/config/dhcp pero si en el archivo de configuración global de dnsmasq para que dirija las búsquedas de dominios hacia una dirección IP, en esta caso hacia el servidor chipsito.\n\nSe ha puesto al principio del archivo /etc/dnsmasq.conf la línea:\n\n address=/#/10.64.3.66\n\nQue retornará a 10.64.3.66 cualquier búsqueda no respondida desde /etc/hosts o DHCP y que no haya sido enviada a un servidor DNS upstream, esto funcionará para los dispositivos conectados en a la red lan y están como clientes de este nodo.\n\nEn 10.64.3.66 (server chipsito) hay una página de bienvenida que le indica al visitante los serivicios disponibles para este nodo.\n\n \nEn este archivo se han agregado entradas para dominios locales en este caso:\n\n 127.0.0.1 localhost\n 10.64.3.66 chersky.lor\n 10.64.3.66 radio.chersky.lor\n 10.64.3.66 wikipedia.chersky.lor\n 10.64.3.66 botadero.chersky.lor\n 10.64.3.66 fotos.chersky.lor\n 10.64.3.66 anuncios.chersky.lor\n 10.64.3.66 extra.chersky.lor\n\nSe usa el Top Level Domain (TLD) .lor que viene de "LaOtraRed".\n\n \n * Todos los equipos conectados al wifi para clientes de este nodo, fácilmente podrán usar sus servicios ya que hay una página de bienvenida y dnsmasq los redirije a esta. Sin embargo, no hay una referencia a servidores DNS públicos en LaOtraRed. Mientras no se definan servidores DNS públicos se podría agregar entradas en /etc/hosts para los dominios de otros nodos.\n * Las conexiones en modo ad-hoc por wifi desde esto nodo hacia los demás nodos en la red distribuida, no se están cifrando desde este nodo, esto por que no se tiene aun definida una contraseña pública entre nodos.\n \n----\nEspero te haya servido, me despido con una foto de la Chersky.\n\n<img src="../static/imgs/posts/chersky1.jpg" width="362">\n\n\n\n\n', ['LaOtraRed', 'redes_libres', 'medios_de_comunicación'])

]]>
Nodo Lorena LaOtraRed https://rmgss.net/posts/nodo-Lorena-LaOtraRed https://rmgss.net/posts/nodo-Lorena-LaOtraRed Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia LaOtraRed , redes_libres , reseña ('Desde el 4 de Mayo, hay un nuevo nodo en LaOtraRed\n\nplanto-nodo-lorena\nver más grande\n\nLo hemos bautizado el nodo "Lorena" igual que una de las mascotas de don Arturo, la persona que amablemente nos abrió las puertas de su casa y nos permitío instalar varias antenas y ampliar la red troncal de LOR (LaOtraRed).\n\nEl nodo Lorena se ubica en un punto alto de la ciudad de La Paz en la zona de Cotahuma y resulta un punto estratégico por que tiene línea de vista con varios otros nodos como el nodo Rezo (r00thouse en la zona de Miraflores), Nodo Omar y Gauss en Pampahasi y otros.\n\n \nEste nodo se tenía planificado poco antes de finales del 2018, e hicimos muchos intentos fallidos. Al principio don Arturo nos ayudó adaptando un plato parabólico (el de la foto de arriba) y pintándolo para usarlo, luego pensamos en potenciar un enrutador mío que no estaba usando (CPE-510). En este caso lo pusimos justo en el foco de la antena parabólica, así toda la radiación electromagnética que el plato parabólico concentra llegaría directamente a un enrutador que tiene ganancia de 13 dBi, un experimento que resultó funcional.\n\nLa instalación de la antena no causó problemas, pero surgieron otros. Hay una cancha cercana que tiene enmallado metálico y atenúa en gran medida la radiación electromagnética cuando se apuntaba cerca de ese parque y las señales wifi de los otros nodos LOR casi no se percibían a pesar de la gran antena parabólica.\n\nTambién un día todos los routers dejaron de funcionar debido a fallos en el suministro eléctrico. Tuvimos que conseguir un estabilizador de energía e instalarlo exclusivamente para los enrutadores del nodo Lorena, mover las antenas para que la reja enmallada del parque no interfiera y hacer ajustes en los cables.\n\nHicimos como cuatro visitas al nodo Lorena pasando tardes completas ahí. Finalmente logramos concretar enalces estables, gracias a la colaboración de la familia de don Arturo después de mucho esfuerzo.\n\n \nPor ahora usamos tres antenas en el nodo Lorena, un TP-Link cpe 510, y dos cpe 610, que apuntan directamente al r00thouse, al nodo Gauss y Omar con buena ganancia y conexión estable.\n\nplanto-nodo-lorena2\nEn la pantalla de la computadora se ven algunos nodos con los que se tiene conexión.\n\n\ncpes-nodo-lorena2\nDos enrutadores CPE-610 apuntando a los nodos de Pampahasi.\n\nEl nodo Lorena cubre buena parte del centro de la ciudad y Miraflores, la vista que regala deja contemplar la ciudad desde una agradable perspectiva.\n\nvista-nodo-lorena1\n--> ver más grande\n\nvista-nodo-lorena2\n--> ver más grande\n\n \nLorena es una paraba roja que vive en la casa de don Arturo, es una de sus mascotas favoritas y es grande y fuerte. Nos contarón como intentarón devolverla a su hábitad en el norte de La Paz, pero esta ave ya no pudo readaptarse y don Arturo se la quedó y la hizo parte de su familia. Lorena siempre nos saluda jugando y recibe y se come la fruta qu le llevamos :D\n\nlorena1\n\nFue muy satisfactorio este nodo en particular y también muy trabajoso, pero siempre nos gusta ver a Lorena, vamos a potenciarlo.\n\nDespués de esto LOR se toma un descanso para organizarnos individualmente pero estamos abiertos a nuevas posiblidades para ampliar la red.\n\n\n', ['LaOtraRed', 'redes_libres', 'reseña'])

]]>
Navidad 2020 https://rmgss.net/posts/navidad-2020 https://rmgss.net/posts/navidad-2020 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reflexión , navidad (' \nDe nuevo reflexionando en los días finales de 2020, ya son algunos días luego de la navidad y es buena oportunidad también para reflexionar.\n\nnavidad2020\n\nEl año 2020 fue de nuevas experiencias y oportunidades, el mundo ha empezado un año que de a poco empezó a hacer notar que las circunstancias están en constante cambio. Como todo cambio viene acompañado de consecuencias, justo en los últimos días se sienten y se seguirán sintiendo.\n\n \nDesde finales de 2019 e inicios del 2020 el coronavirus fue el tema principal, una combinación de varios sentimientos estuvo presente en las personas entre ellas miedo e incertidumbre. Las medidas de confinamiento tomadas por los diferentes países han obligado a parar muchas actividades y muchas personas que las realizaban se han visto afectadas.\n\nMuchos gobiernos tomaron medidas de protección a la población para evitar contagios pero con estrategias inadecuadas. En Bolivia que estaba bajo un gobierno de transición, las necesidades de la población rebasaron por mucho las capacidades de este que era un gobierno con una presidenta, autoridades y estructura improvisadas. No tomó medidas ni aplicó las políticas necesarias para disminuir el efecto de la pandemia del covid 2019. Sumado a eso, este gobierno de transición invirtió muchos recursos y esfuerzos en sembrar desprecio hacia sus partidos políticos opositores.\n\nLa población que empezó a sufrir los efectos de la pandemia, también tuvo que sufrir la incompetencia y pugnas de poder por parte de aquellos que tenian la tarea de gobernarlos para bien. Durante la (aún por tiempo indefinido) pandemia del coronavirus, se han revelado muchos defectos de los sistemas de gobierno, administración pública, sistemas de salud y de las mismas sociedades.\n\nEsto ha hecho que en 2020 se haya dado lugar a una serie de protestas a nivel mundial, protestas de la población descontenta exigiendo a sus gobiernos entre otras cosas igualdad de condiciones, transparencia y toma de medidas para solucionar problemas desatentidos o negados por estos mismos. Por ejemplo en Estados Unidos tras la muerte de Goerge Floyd, se desató una oleada de indignación en contra de males de fondo como el racismo y abuso policial.\n\nLas protestas en varios países «desarrollados» y «sub desarrollados» estaban creciendo a escalas alarmantes y rebasando la capacidad de los gobiernos de apaciguarlas. Como si estuviese planificado, los contagios por coronavirus se incrementaron rápidamente y esto en cierta forma sirvio para frenar y hasta acabar con varios movimientos de protesta. La población que protestaba ahora también se vío forzada a tener que dejar de hacerlo para cuidar su propia salud y la salud de sus seres queridos.\n\nAlgo que también he confirmado es la evidente dificultad para enfrentar los males de fondo por parte de la sociedad. En mi opinión la pandemia del coronavirus es una consecuencia del daño a la naturaleza causado por los hábitos depredadores de la misma sociedad que la sufre, y he intentado explicarlo en el post "coronavirus y su relación con el trato a la naturaleza". Las sociedades en su mayoría se han ocupado de mitigar los daños causados por la pandemia pero poca acción se le ha dado a comprender las causas y tomar medidas para tratarlas. Esto quiere decir que no se están tomando acciones suficientes para vivir en armonía con la naturaleza y así evitar futuros desastres.\n\n \nCada persona vive su vida y muchas ahora la ven desde otro enfoque, las dificultades del 2020 han resultado en pérdida de empleos, vidas, y entre otras —aumento de la brecha entre ricos y pobres—, también ha hecho que veamos las cosas desde otra perspectiva. En mi caso, una mas consciente de la realidad y de que para seguir avanzando es útil tener una visión amplia e inclusiva.\n\nUn enfoque que aproveche las oportunidades y ayude a comprender que ayudarse y ayudar es una tarea de todos los días y no solo en navidad o días predefinidos. Cuando las cosas cambian o nosotros mismos cambiamos, es buena idea tomar acciones y medidas para adaptarse al cambio e incluirlo en nuestro ser para usarlo a nuestro favor, respetando siempre a los demás y lo que amamos.\n\nComo dice el poema "Ítaca" de Konstantínos Kaváfis. y las reflexiones que alguien puso sobre este:\n\n> Ten siempre en tu mente a Ítaca. Llegar ahí es tu destino.\n\nÍtaca representa la meta, el sueño, los sueños son la fuerza que nos empuja al camino, lo que nos mueve.\n\n> No has de esperar qué Ítaca te enriquezca:\n> \n> Ítaca te ha concedido ya un hermoso viaje.\n\nEl bello viaje es el camino, y —lo que te da la meta, es el camino—.\n\nbocho en flores 1\n\nFelices fiestas y a seguir el 2021 :)\n', ['reflexión', 'navidad'])

]]>
Navidad 2019 https://rmgss.net/posts/navidad-2019 https://rmgss.net/posts/navidad-2019 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reflexión , navidad (' \nContinuando con las reflexiones de navidad y resumiendo un poco el 2019 desde mi percepción.\n\nnavidad2019\n\n\nFue un año especial de cambios, probablemente perpetrado por "cúmulos" de cosas que han encontrado la salida y se han manifestado a lo largo de este año.\n\n \nDesde algunos meses comenzó a crecer el descontento con acciones del gobierno boliviano, como una acumulación de malestares y temas que la gente veía como pendientes. Por ejemplo las políticas depredadoras al medio ambiente justificadas con "desarrollo" económico agropecuario que el gobierno a la cabeza de Evo Morales fue promoviendo. Al parecer cediendo poco a poco ante las exigencias del sector ganadero y empresarial de Santa Cruz.\n\nEstas políticas desencadenaron en un desastre ambiental, un incendio masivo del bosque seco de la Chiquitania Boliviana, una gran pérdida de flora y fauna de este ecosistema. Todo empezó poco después de aprobado el Decreto Supremo 3973 (9 de julio 2019, que modificó el Art 5 del DS 26075 del 2001) y que autoriza el desmonte y las quemas controladas inclusive en tierras de producción forestal permanente (TPFP). Este DS si bien es reciente, con seguridad ha funcionado como un “gatillo” para el desmonte, chaqueo y quemas en la Chiquitania. [1] .\n\nTambién se fue acumulando el descontento desde el 21 de Febrero de 2016, cuando Evo Morales perdío la consulta popular para modificar la constitución política del estado y viabilizar un nuevo mandato. Sin embargo, uso un recurso internacional para repostularse por ser un "derecho humano".\n\nAdicionalmente una serie hechos de corrupción, mal uso de bienes del estado y falta de cumplimiento a los compromisos en los casi 14 años de mandato, fueron el combustible necesario acumulado para la explosión final.\n\n \nTras las elecciones del 20 de Octubre de 2019 que como resultado señalaron al partido del MAS como ganador en primera vuelta (por un poco más del 10% de diferencia) con el segundo partido Comunidad Ciudadana (CC), empezarón serias denuncias de fraude electoral por parte del MAS.\n\nSe desplegó un sistema de conteo rápido en vivo (TREP) que publicaba los resultados del conteo rápido. El conteo rápido tenía una tendencia de subida para el MAS, pero en algún momento se corto la transmisión en vivo del TREP y surgieron las denuncias de fraude indicando que durante el corte en la transmisión del TREP se modificó la Base de datos del conteo de elecciones y se "ajustaron" los resultados para que el ganador sea el MAS en primera vuelta.\n\nAl volver el TREP (que no es vinculante sino solamente un conteo rápido referencial) y con los resultados finales del cómputo oficial se declaró ganador al MAS con un poco más de la diferencia mínima para ganar en primera vuelta. \n\nLa población muy molesta salió a las calles a reclamar primero anulación de las elecciones, ante la según mi opinión soberbia negativa del entonces presidente Evo Morales de auditar el proceso, el reclamo se fue convirtiendo rápidamente en la renuncia de Evo Morales. El presidente trató de calmar los ánimos convocando a una auditoría de la OEA, pero el descontento ya era tan grande que el país se convulsionó con un paro indefinido y gente saliendo a las calles a exigir respeto a la democracia.\n\nA mi parecer las discrepancias entre el TREP y el cómputo oficial no deberían ser razones suficientes para declarar un fraude y tampoco solo el hecho de mostrar algunas actas mal contadas o modificadas a propósito para dar ventaja al MAS, siempre y cuando sea un número pequeño no se podría considerar un fraude. Sin embargo, el proceso electoral fue llevado a cabo de manera muy como le decimos los informáticos "parchada", sin las características necesarias como para garantizar resultados los suficientemente confiables para la población.\n\nHubieron muchas denuncias y supuestos de fraude pero pocas "pruebas irrefutables" de un fraude masivo según percibí, pero la histeria colectiva y el descontento acumulado ya era tan grande que razonar objetivamente en esas circunstancias estaba casi fuera de alcance.\n\nNote que muchos actores políticos nacionales y extranjeros aprovecharon para ganar protagonismo y hacerse con el poder y aceptación popular, tal y como se hizo en Brasil con Bolsonaro y sus mensajes de odio. Vi muchas noticias falsas en redes sociales, periódicos desinformando, ocultando información y una serie de técnicas que terminaron obligando a Evo Morales a renunciar y a un gobierno "transitorio" a aprovechar y tomar el poder.\n\nEl discurso de democracia se ha usado mucho, pero la democracia no se trata solo de "escoger" entre una serie de representantes que se presentan y — dejar que ellos hagan el trabajo de gobernar(nos). Democracia es algo más grande y valioso, es el gobierno del pueblo y para defenderla es mejor construir y participar activamente en decisiones importantes y propuestas para el futuro.\n\n \nEn esta navidad he visto mucho de la anterior, muchas personas con una navidad feliz y otras en la cama de un hospital con la esperanza de recuperarse y pronto ir a trabajar o volver a casa para conocer a sus hijos recién nacidos o reconstruir lazos y continuar proyectos personales y colectivos.\n\nPero todos estos acontecimientos me han hecho dar cuenta que la acción es importante el 2020, ya construiremos mejores navidades reforestando y compartiendo más con gente que más lo necesita, acompañando a quién se sienta sol@ y descubriendo nuevas y valiosas cosas en este mundo enorme.\n\nnavidad2019\n<--tamaño original\n\n\n1. https://muywaso.com/consecuencias-incendios-chiquitania/\n', ['reflexión', 'navidad'])

]]>
Navidad 2018 https://rmgss.net/posts/navidad-2018 https://rmgss.net/posts/navidad-2018 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reflexión , navidad (' \nEsta navidad he querido verla desde otro punto de vista, desde donde otras personas no la pasan tan bien.\n\nnavidad2018\n<--tamaño original\n\nEsta es como una continuación a la reflexión de navidad 2017.\n\nÉpoca de descanso y tranquilidad para muchas personas, también de ajetreo y preocupaciones para otras. Tantas matices que tiene esta fecha que quizá pocos se animan a explorar y este año tuve un fuerte impulso por conocer aunque sea un poco esas matices distintas.\n\n \nFuí al hospital de la mujer poco antes de navidad para dar un apoyo a alguien y como siempre en este lugar hay mucho apoyo que dar. Pregunté a la trabajadora social que atiende a las enfermas por un caso que en especial requiera algún apoyo económico y me mostró el caso de una menor de edad que producto de un abuso sexual dió a luz a dos gemelos, en este caso la adolescente sólo contaba con la ayuda de sus padres que ya estaban mas de dos semanas en La Paz con pocos recursos, una ciudad grande que no conocían, una gran preocupación y cansados por estar tantos días sin alimentarse apropiadamente.\n\nNo conseguí muchos más detalles, pero vi un poco de las consecuencias del abuso a una persona indefensa en recuperación. La ayuda que pude dar por cuenta propia fue una parte a la familia y otro al hospital que necesitaba insumos ya que tenía otros casos similares y entre uno de ellos uno de abandono.\n\nRápidamente el dinero que había destinado para esto ĺo gaste en una farmacia comprando todo lo que alcanzó. A mi me parecieron excesivos los precios de los medicamentos e insumos que me indicaron hacían falta, pero aún así tuve que comprarlos. Luego pedí ayuda a algunas personas del trabajo que no se negaron y aportaron de buena gana :) Con ese dinero alcanzó para comprarles ropa, pañales y muchos otros productos de bebés para los recién nacidos y algo para la familia.\n\nEsperando que esta navidad sea mejor para esa familia me despedí cuando se subían al transporte que los llevaba de vuelta a su pueblo lejano en los Yungas de La Paz. Por todo lo demás fue una navidad típica en familia para mi, pero me queda la necesidad de hacer más cosas similares.\n\n \nNo pude evitar pensar en este caso como muchos otros casos de abuso con consecuencias muy fuertes, cuáles son las causas o factores que los disparan. Revise sin muchos detalles algunas estadísticas y luego entendí mejor lo que impulsa a muchos movimientos de lucha contra el abuso y violencia contra la mujer.\n\nLas mujeres viven una situación de desigualdad en nuestro medio y padecen directamente las consecuencias, por que en un caso como este, posiblemente la madre de los dos gemelos tendría que dejar de estudiar y dedicarse al cuidado de los niños aún si fuese en contra de su voluntad.\n\nPienso que entre la gran cantidad de problemas de desigualdad que existen, uno de los peores es la falta de educación equitativa, —tener un grupo de personas "con buen nivel de educación" no garantiza el buen vivir de otro grupo de personas con un nivel de educación inferior.\n\n \nLa desigualdad es tremenda sólo comparando las cenas de navidad que unas familias tienen y cómo otras no las tienen o las dificultades que muchas tienen que vivir. Si la gente que tiene mucho en navidad daría a la gente que no tiene, seguro se verían grandes diferencias en esta celebración. Dar algo nuestro para otras personas que lo necesitan provoca cambios positivos y duraderos.\n\nNo hay razón para que este tipo de actos sean considerados raros, "cursis" o difíciles de hacer, más bien es hora de hacerlo una costumbre más extendida :D \n', ['reflexión', 'navidad'])

]]>
Navidad 2016 https://rmgss.net/posts/navidad-2016 https://rmgss.net/posts/navidad-2016 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reflexión , navidad (' \nHoy es víspera de navidad, desde el interior de una casa hay algo de ajetreo pero no hay preocupaciones mayores, se espera una cena agradable y juntarse con la familia y personas cercanas. \n\nEn la mesa se ven adornos y productos alimenticios envasados, con colores y etiquetas brillantes, se ven botellas de bebidas gaseosas y muebles cómodos. Hay luces de colores y adornos por toda la sala. Todo parece tan confortable en este día y se espera sea aún más al día siguiente.\n\nVan muchos años que es así y según parece así seguirá, pero que tal si paramos un poco para pensar en el costo de esta confortable velada.\n\nPara hacerlo habría que pensar también en las personas para quienes la navidad no es tan confortable y no por voluntadad propia, basta con salir a una de las calles en zonas comerciales de la ciudad de La Paz y ver que hay mucha gente que está vendiendo cosas pequeñas y baratas, y con lo que puedan reunir hoy posiblemente les alcance para comprarse una botella de sidra para brindar con su familia o al menos a solas. En el hogar de esas personas seguramente no habrán muebles cómodos ni adornos por todas partes, al menos la misieria económica que sufren no lo permite. Tambíen se puede pensar en quienes tienen la suficiente riqueza monetaria para permitirse grandes banquetes, viajes y caprichos "desmedidos". \n\nSin embargo para no desviar el sentido de esta reflexión trataré de centrarme en la familia de clase media.\n\n \nTodos esos productos y adornos que dan comodidad tienen un costo monetario, y mucha gente invierte mucho dinero en este día para asegurarse una velada confortable. Desde cierto punto de vista mucho del dinero gastado para navidad es un gran derroche, pero parece que para la mayoría de la gente es un gasto necesario o inevitable.\n\nSupuestamente, el 25 de diciembre se recuerda el nacimiento de Jesucristo, pero no parece se piensa en eso a la hora de consumir tanto. -- ¿Cúal es el significado de la navidad?.\n\nEn muchos hogares de La Paz, se preparan para recordar el nacimiento del niño Jesús, y preparan un bonito pesebre en miniatura con una figura del niño al centro y cuando son las 00:00 se juntan para orarle al niñito.\n\nEn otros no hay nada de eso, los regalos y los productos para consumir son lo que más importa a parte de seguramente compartir con la familia.\n\nEn el último caso, ¿qué tal si no habrían esos regalos o cosas que consumir? ¿Sería lo mismo entonces compartir con la familia?. Acaso ¿compartir con la familia es el pretexto para comprar y consumir en navidad? o tal vez, comprar y consumir tanto es un pretexto para compartir con la familia.\n\nEn esta ocasión mas que en otras fechas, me animo a decir que el consumismo alcanza su punto más alto y hasta parece que en navidad se celebra este hábito.\n\n \nNo necesariamente, consumimos productos para satisfacer necesidades o deseos pero -- cuando para satisfacer esas "necesidades" o deseos se tiene que perjudicar mucho a alguien ahí veo algo negativo.\n\nPor ejemplo para tener en la mesa una botella de Coca-Cola, se ha seguido un gran proceso de fabricación que incluye exceso de uso de azúcar y otros ingredientes secretos, además del posible derroche de agua y digo derroche por que para producir un litro de Coca-Cola se desperdicia y contamina una cantidad significativa de agua 1, 2 , 3.\n\nOtro ejemplo para consumir el panetón navideño es posible que se haya usado harina y probablemente esa harina venga de enormes plantaciones de trigo. Y hay mucha probabilidad de que esa plantación sea un mono cultivo que este sobre explotando la tierra o se haya tenido que destruir un bosque natural para plantar el trigo.\n\nTanto el panetón como la Coca-Cola tienen sabor agradable para muchos pero en esos dos casos, -- a costa de la contaminación del agua y la posible destrucción de bosques naturales la gente puede consumir Coca-Cola y comerse el panetón.\n\nLa gente en general no parece consciente de los costos que implican poder comer lo que come o tomar lo que toma. Pero no se puede estar completamente consciente de todo, por ejemplo ahora mismo no estoy seguro del impacto ambiental o la necesidad energética que causa el hecho de que pueda escribir usando una computadora.\n\nEl hecho de consumir algo no es lo negativo, las personas consumen las cosas que les gustan y eso es natural, pero ¿Qué tan conscientes somos de lo que consumimos?\n\n \nNo creo que la navidad haya sido siempre así, por lo menos se pueden ver algunos signos de lo que hablan muchos al decir que la navidad se trata de dar y no de recibir.\n\nHay personas que en navidad sacrifican algo de ese impulso por comprar y consumir y comparten lo que tienen con otr@s, y hay quienes se ocupan enteramente de ayudar a otras personas en navidad. No me animo a decir cúantos ni en que proporción pero si hay.\n\n \nSi en lugar de celebrar el hábito de consumir, la gente se preocuparía más en dar en lugar de recibir al menos en navidad, seguramente habría más alegría y motivos para celebrar.\n\nEn lugar de tergiversar la imagen de un personaje ficticio como "papanoel" para engañar a los niños y hacerles creer que la navidad se trata de recibir regalos, sería mas provechoso recordar las lecciones que Jesucristo trató de dar al decir frases como "ama al prójimo como a ti mismo".\n\n \nRecuerdo me contaban que antes la navidad era mas linda, por que se regalaba dulces y comida a los niños que "adoraban al niño". Según entendí "adorar al niño Jesús" se trataba de cantar y bailar villancicos además de rezar y jugar con otros niños y esa costumbre era muy fuerte especialmente en el campo.\n\nAl menos en la ciudad de La Paz no recuerdo haber visto eso y supongo que en otras grandes ciudades del mundo la cosa es similar. Para mi "adorar al niño Jesús" es mucho más sano que la mayor parte de las cosas se hacen en navidad ahora.\n\nEn navidad se debería incentivar el compartir con otros o -- ¿Cómo te enteras de las necesidades de los demás si no compartes con ellos? y ¿Cómo puedes esperar dar algo que les sirva sin saber lo que necesitan?.\n\nEn cuanto a los hábitos consumistas, es importante estar consciente sus consecuencias , reducir el consumismo navideño es crucial o esas malas costumbres podrían frustrar los esfuerzos para mejorar la navidad.\n\n \nEspero la siguiente navidad sea mejor, deseo que esta reflexión te ayude a ver los hábitos que están degradando esta fiesta y la convivencia entre seres humanos en general. También deseo que tu también pongas tu esfuerzo para mejorarla :)\n\n\n\n\n', ['reflexión', 'navidad'])

]]>
Fotos8 https://rmgss.net/posts/fotos8 https://rmgss.net/posts/fotos8 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia fotos ('Una colección de fotos de un bonito viaje bien acompañado a Isla Tortuga y un poco a "El Dragón Dormido" en el lago Titicaca.\n\ncacto3\n<- Tamaño original\n\n----\n\nUn pequeño asentamiento aprovechando la pacífica orilla y el sonido del lago.\n\norilla1\n<- Tamaño original\n\n----\n\nYa se nota por que le dicen "Isla Tortuga".\n\nplano isla tortuga 1\n<- Tamaño original\n\n----\n\nLas Algas que nacen y crecen encima las piedras que son acariciadas por el agua cristalina que saluda brillando, todo eso en la orilla del lago.\n\npiedras_orilla_1\n<- Tamaño original\n\npiedras_orilla_2\n<- Tamaño original\n\n----\n\n\nEsta planta, quien sabe de cúantos amaneceres, atardeceres, anocheceres y mucho mas ha sido testigo allí cerca de la orilla.\n\nplanta_testigo_2\n<- Tamaño original\n\n----\n\nCuesta un poco ver en la cuesta que hay unas ovejas que la disfrutan.\n\ncuesta_1\n<- Tamaño original\n\n----\n\nEn la cima de la isla Tortuga al mirar a un lado y al otro.\n\npaisaje_orilla2\n<- Tamaño original\n\nlago_y_sol1\n<- Tamaño original\n\n----\nEspinos y paja brava.\n\ncacto4\n<- Tamaño original\n\n----\n\n¿Cual es una isla y cual es una canela?\n\nisla_canela_1\n<- Tamaño original\n\n----\n\nCaminando hacia "El Dragón dormido".\n\nisla_dragón_1\n<- Tamaño original\n\nisla_dragón_2\n<- Tamaño original\n\n----\nPara capturar más luz en un terreno no tan fértil — hay que darse modos.\n\nplanta_de_cerca_7\n<- Tamaño original\n\n----\nLa "cabeza" del dragón hecha de macizas piedras. Mientras duerme, variadas plantas aprovechan su sueño profundo y encuentran un hogar en sus rincones, grietas o faldas — lo importante es estar cerca.\n\nisla_dragón_3\n<- Tamaño original\n\npared_piedras_1\n<- Tamaño original\n', ['fotos'])

]]>
Fotos7 https://rmgss.net/posts/fotos7 https://rmgss.net/posts/fotos7 Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia fotos ('Esta es una serie de fotos de una caminata por la ruta "el Choro" en los Yungas de La Paz - Bolivia.\n\nchoro15\n<- Tamaño original\n\nLa caminata comienza desde las frías montañas que son el inicio de una larga ruta hacia una de las zonas con más humedad en Bolivia.\n\n----\n\nmontañas1\n<- Tamaño original\n\nA medida que se va descendiendo por las montañas de "la cumbre", la neblina de a poco va revelando la ruta que espera.\n\nchoro1\n<- Tamaño original\n\n----\n\nDespués una hora de descenso se empiezan a escuchar ríos y de a poco se camina al lado de riachuelos y vertientes de aguas cristalinas.\n\nchoro2\n<- Tamaño original\n\nchoro3\n<- Tamaño original\n\n----\n\nSiguiendo se va viendo como se deja atrás la cordillera desde donde viene el agua de todo lo que sigue.\n\nchoro4\n<- Tamaño original\n\nchoro5\n<- Tamaño original\n\n----\n\nLuego el paisaje cambia, se respira humedad y olor a vegetación densa entre las montañas.\n\nchoro6\n<- Tamaño original\n\nEn todo el trayecto que normalmente toma tres días siempre se puede conseguir agua.\n\nchoro7\n<- Tamaño original\n\n----\n\nMientras más se baja más por las verdes montañas, más se encuentran cascadas y ríos. \n\nchoro8\n<- Tamaño original\n\nEl cansancio de la marcha sin parar y la sed, hacen que tomar estas aguas sea realmente bueno.\n\nchoro9\n<- Tamaño original\n\nchoro10\n<- Tamaño original\n\nchoro11\n<- Tamaño original\n\n----\n\nHasta las piedras que se encuentran en el camino están llenas de vegetación.\n\nchoro12\n<- Tamaño original\n\n----\n\nEntre los caminos estrechos, las largas y empinadas cuestas, los puntos altos son buena ocasión para tomarse una pausa y contemplar el paisaje.\n\nchoro13\n<- Tamaño original\n\n----\n\nAltas montañas y abundante vegetación, puentes improvisados, senderos resbalosos con paredes de piedras, precipicios a un paso y cascadas cuyas aguas vienen desde las altas y grandes montañas, hacen que al tomar agua de una de estas cascadas se sienta el sabor de todo esto y más.\n\nEs agua tan dulce y refrescante que no puedes olvidar su sabor y tampoco el querer volver a caminar por esta ruta o ir incluso más lejos.\n\nchoro14\n<- Tamaño original\n', ['fotos'])

]]>
Construir firmware para enrutadores con buildroot https://rmgss.net/posts/construir-firmware-para-enrutadores-con-buildroot https://rmgss.net/posts/construir-firmware-para-enrutadores-con-buildroot Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia software , tutoriales , redes_libres ('Aquí se muestra una forma de construir una imagen de firmware para grabarla en un dispositivo enrutador o en uno embebido, todo esto usando el sistema de construcción "Build root" de sistemas operativos libres como openwrt, lede o librecmc.\n\nEn otras palabras, construir/compilar el sistema operativo manualmente y ponerlo en un enrutador compatible.\n\nAlgunas ventajas de usar "Build root" son:\n\n La generación de la imagen es altamente personalizable y tendrá los programas que escojamos en el proceso de construcción.\n Construir el conjunto de paquetes e incluirlos en la imagen resultante o en paquetes por separado.\n Constuir y poder usar la cadena de herramientas (en inglés toolchain) para hacer compilación cruzada.\n Obtener el SDK para hacer compilación cruzada desde otra computadora.\n Obtener el Image generator para poder cocinar imágenes de firmware más rápidamente desde otra computadora.\n Constuir los programas y mantenerlos en paquetes instalables o incluirlos por defecto en la imagen generada.\n Generar un repositorio descargable de paquetes e imágenes de firmware personalizadas generadas como este: https://librecmc.rmgss.net\n Hacer modificaciones/mejoras al sistema operativo resultante.\n\nEste alto nivel de flexibilidad es justo lo que se necesita para proyectos de redes libres o para personas que necesitan hacer modificaciones a nivel de sistema operativo en sistemas embebidos.\n\n \nBuild root, es una colección de Makefiles y parches que permiten fácilmente generar una cadena de herramientas y el sistema de archivos raíz para sistemas embebidos, usando una biblioteca C estándar y descargando el kernel linux. [^1]\n\nEste sistema de construcción tiene una interfaz cómoda que permite seleccionar los programas que necesitemos y los dispositivos objetivos. Los Makefiles son archivos con recetas de construcción de software, y el sistema de construcción Build root los utiliza para constuir los programas que seleccionemos.\n\n-- Para el resto de este tutorial se utilizará el sistema de construcción de librecmc, librecmc es una distribución GNU/Linux para sistemas embebidos que contiene solamente software libre.\n\n \nHardware:\n\n De 8 a 10 GB de espacio en disco duro.\n 4 GB de RAM , aunque yo lo he probado con 2 GB de RAM pero ha tardado mucho.\n\nSoftware:\n\n Sistema operativo GNU/Linux\n GNU GCC / GCC-C++\n build-essential\n flex, gawk, wget, unzip\n ncurses-dev (ncurses5-devel, etc..)\n libghc-zlib-dev, libssl-dev, patch, perl5, subversion, git-core\n\nInternet:\n\nUna buena conexión a internet por que la descarga puede tranquilamente superar los 2 GB, en mi caso al no tener internet en casa he usado un Servidor con buena conexión.\n\nAquí esta la referencia oficial.\n\n \nSe instalan los paquetes build-essential, gcc, git-core, etc como se indican en los prerequisitos.\n\nLuego queda descargar el sistema de construcción en si mismo como se indica en el manual de librecmc:\n\n :::bash\n\tgit clone https://gogs.librecmc.org/libreCMC/libreCMC.git\n\nEsto descargará la colección de Makefiles y parches necesarias para el proceso de construcción, la estructura de directorios descargada se divide en carpetas:\n\n tools: Contiene las instrucciones para descargar las herramientas de construcción para la imagen.\n toolchain: Contiene las instrucciones para descargar las cabeceras del kernel, la biblioteca C, binutils, el compilador y el depurador.\n target: Instrucciones de construción para la imagen de fimrware y para el kernel.\n package: Los makefiles y parches para todos los paquetes principales, estos Makefiles tienen su propia sintaxis diferente a la herramienta make.\n scripts: Scripts perl que se encargan del manejo de paquetes openwrt.\n dl: Directorio donde se descargan los tarballs (archivos .tar) con código fuente.\n build_dir: Donde todas las herramientas user-space serán "cross-compiladas".\n bin: Directorio donde se guardan las imágenes de firmware generedas y también los paquetes .ipk\n\nReferencia utilizada: http://www.ccs.neu.edu/home/noubir/Courses/CS6710/S12/material/OpenWrt_Dev_Tutorial.pdf\n\n \nEntramos al directorio donde hemos clonado el código de buildroot, cd libreCMC y ejecutamos:\n\n :::bash\n ./scripts/feeds update -a\n\t./scripts/feeds install -a\n\nEsto actualizará la lista de todos los paquetes y hará que sean disponibles para seleccionar en el menú de construcción.\n\n \nUtilizamos\n\n :::bash\n make menuconfig\n\t\nEsto desplegará un menú con interfaz en modo texto cómodo para configurar la construcción.\n\nmake menuconfig\n\nNavegar por el menú se hace con las flechas del teclado, presionando enter para ingresar a una sección, esc para salir al anterior, espacio para seleccionar un programa para que se incluya en la imagen generada, m para modularizar o marcar un programa y que se genere un paquete .ipk en lugar de incluirlo en la imagen generda por defecto.\n\n \nEl menú desplegado tiene varias secciones y debemos empezar indicando la arquitectura objetivo, esta debe ser la arquitectura del microprocesador del router o dispositivo embebido para el que queremos crear una imagen de firmware.\n\nPara este ejemplo construiremos la imagen para el enrutador TP-Link TL-MR3020, ingresamos al menu "Target System" y marcamos Atheros AR7xxx/AR9xxx que corresponde a la arquitectura para este enrutador.\n\nLuego hay que especificar el objetivo específico en este caso en el menu Target Profile, seleccionaremos TP-LINK TL-MR3020.\n\n \nAntes de continuar para seleccionar los programas que contendrá la imagen vamos a seleccionar las opciones:\n\n Build the librecmc Image Builder: generará el Image Builder para poder descargarlo y generar imágenes desde otra computadora y más rapidamente.\n Inlcude package repositories: Para que el Image Builder generado use a repositorios externos para paquetes .ipk.\n Build the librecmc SDK: Construirá el SDK para poder descargarlo y usarlo en otra computadora, el SDK es útil para compilar programas para el enrutador objetivo.\n Package the librecmc-based toolchain: Empaquetar el toolchain (cadena de herramientas).\n\nEste paso es opcional y la imagen se generaría de igual forma incluso si no lo seleccionamos.\n\n \nHay una gran variedad de programas que podemos incluir, por defecto están seleccionados programas básicos para utlizar el dispositvo y los estrictamente necesarios como libc y algunos controladores no pueden excluirse de la selección ya que el menú no da esa opción.\n\nLos programas están bien clasificados por secciones y debemos ingresar a cada una de ellas para seleccionarlos, por ejemplo en Base System están marcados libc, busybox, uci, firewall, etc. Se puede prescindir de algunos de ellos por ejemplo no incluir el firewall desmarcándolo.\n\nLa selección de programas es enteramente nuestra responsabilidad y podemos experimentar con muchas opciones, por ejemplo no incluir una interfaz de configuración luci, no incluir controladores para wifi, no incluir un servidor dhcp, incluir módulos para controlar dispositovs usb, manejar los leds del aparato, incluir utilidades para monitorizar tráfico de red, estadísticas de conexión como iperf3, etc. Las combinaciones serán a nuestra elección y tenemos toda la libertad de probar bajo nuestro propio riesgo.\n\nLo que se debe tener en cuenta es que no todos los paquetes pueden ser incluidos en la imagen del firmware generada esto por limitaciones de espacio del mismo dispositivo. En el caso del TL-MR3020 este sólo cuenta con 4MB de memoria FLASH, y no se puede hacer caber todos esos programas en tan pequeño espacio de almacenamiento.\n\nPor eso existe la opción de modularizar los programas, esto es presionando M para que estos programas se empaquten como .ipk y luego se puedan instalar manualmente con opkg install nombre_del_paquete en el dipositivo una vez se haya transferido la imagen y si tiene espacio disponible.\n\nUna vez termines de seleccionar los programas presiona esc hasta salir y aparecerá un mensaje que pregunta si va a guardar las configuraciones y tenemos que indicarle que SI lo haga. Estas configuraciones se guardarán en un archivo con nombre .config en el mismo directorio y es buena idea hacerle copias para recuperar configuraciones.\n\n \nPara aprovechar al máximo estos 4MB de memoria donde se debe almacenar el sistema operativo base y programas, openwrt y otros como librecmc y lede utlizan un layout especial en la memoria [^2].\n\nDurante el arranque del sistema cuando instalemos la imagen generada, se crea un sistema de archivos de sólo lectura squashfs para comprimir el sistema base y un sistema de archivos JFFS2 de lectura/escritura para datos adicionales. Ambos se combinan y montan en un punto de montaje /overlay, para el usuario del sistema se ve como un sistema de archivos único y usable. [^3]\n\nSquashFS es un sistema de archivos de sólo lectura y está pensado para su uso como sistema de archivos genérico de solo lectura y en dispositivos de bloques/sistemas de memoria limitados [^4], en SquashFS además se incluye un sistema de recuperación en caso de "mal configurar" el router, con esta utilidad se puede entrar a un modo de recuperación para arreglar el sistema. Además algunos programas y datos de SquashFS y JFFS2 se descomprimen en la memoria RAM para ser ejecutados desde alli. En el caso del TL-MR3020 se tiene 32 MB de RAM.\n\nPuedes revisar https://wiki.openwrt.org/doc/techref/flash.layout para ver la distrubición de la memoria FLASH con mayor detalle.\n\n \nAhora solo queda emepezar la construcción y se hace con:\n\n :::bash\n\tmake\n\nO para una visión mucho más completa de lo que pasa:\n\n :::bash\n make V=s\n\nEste proceso puede tardar mucho y es un trabajo intensivo para el CPU que puede tomar muchas horas dependiendo la cantidad de programas seleccionados y dispositivos objetivos.\n\nSi quieres dejar este trabajo como tarea en segundo plano y además necesitas cerrar la terminal actual, puedes utilizar:\n\n nohup make &\n\t\nQue enviará el proceso de construcción en segundo plano y continuará incluso si cerramos la terminal actual, además puedes usar ionice para aumentar/reducir prioridad a la tarea o cpulimit para limitar el uso del CPU.\n\nEl proceso puede fallar y si así lo hace debes usar la opción make V=s para ver el detalle.\n\nCuando hagas make, se hará:\n\n1. Construir - automake , autoconf, sed, cmake.\n2. Construir los binutils - ld, as ,etc\n3. Construir el toolchain - gcc, g++, etc\n4. Construir los módulos del kernel linux.\n5. Constuir los paquetes base y feed.\n6. Constuir la imagen del kernel.\n7. Generar la imagen del firmware.\n\nReferencia: https://wiki.openwrt.org/about/toolchain#openwrt_build_system_build_sequence\n\n \nLa imagen generada debería estar en la carpeta bin/targets del directorio raíz donde hemos descargado Build Root, más concretamente targets/ar71xx/ por ser la arquitectura ar71xx.\n\nUn ejemplo del resultado está en https://librecmc.rmgss.net/\n\nAhora seleccionaremos la imagen con nombre librecmc-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin, cuando termina -factory.bin se trata de la imagen que podemos grabar en el enrutador TL-MR3020 para reemplazar el sistema operativo actual.\n\nEl proceso de grabación no esta contemplado en este tutorial pero puedes revisar los siguientes enlaces:\n\n https://wiki.lapaz.laotrared.net/guias/instalar_openwrt#paso_0\n http://lamurraydemas.blogspot.com/2014/03/actualizar-tp-link-tl-mr3020-con-openwrt.html\n http://kurup87.blogspot.com/2014/09/installing-open-wrt-in-tp-link-mr3020.html\n\n\n----\n\n \nEl proceso de construción no se limita a generar la imagen de firmware, tambíen tengamos en cuenta lo siguiente:\n\n staging_dir/: Contiene el compilador y el toolchain (la cadena de herramientas) para la arquitectura seleccionada, el toolchain está en este caso en staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.16/bin/ y podemos usarlo para hacer compilación cruzada y crear/construir programas para que se ejecuten en el router.\n bin/packages/: Contiene los paquetes .ipk que hemos seleccionado para instalarlos manualmente.\n bin/targets/: Contiene el Image Generator o Image Builder para construir firmware desde otras computadoras con GNU/Linux, usando los paquetes y programas que acabamos de construir, también contiene el SDK para usarlo en otras computadoras con GNU/Linux y construir/compilar programas para el dispositivo objetivo que hemos selccionado.\n* dl/: Contiene los tarballs con el código fuente de los programas seleccionados.\n\nCon Build root hemos generado una serie de herramientas para generar sistemas operativos a medida gracias a las herramientas libres que proveen proyectos como openwrt, lede o librecmc.\n\nAdemás tenemos la posiblidad de tener el control y conocimiento entero de todo el sofware que opera en el enrutador.\n\nEspero este tutorial te haya servido, lo actualizaré con información adicional o haciendo correcciones.\n\n[^1]: https://wiki.openwrt.org/about/toolchain\n[^2]: https://wiki.openwrt.org/doc/techref/flash.layout\n[^3]: https://wiki.openwrt.org/doc/techref/filesystems#boot_process\n[^4]: http://squashfs.sourceforge.net/\n\n', ['software', 'tutoriales', 'redes_libres'])

]]>
Accediendo a equipos de casa mediante vpn wireguard https://rmgss.net/posts/accediendo-a-equipos-de-casa-mediante-vpn-wireguard https://rmgss.net/posts/accediendo-a-equipos-de-casa-mediante-vpn-wireguard Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia software , tutoriales ('Una forma sencilla de acceder a equipos de casa que tienen conexión a internet pero no tienen IP pública. Se usa software para redes privadas virtuales VPN, en este caso Wireguard.\n\nDe esta manera podemos acceder a un equipo por ejemplo en nuestra casa usando como "puente" a un servidor con IP pública, la ventaja de usar una VPN como Wireguard es que es muy rápida, fácil de configurar, usa criptografía asimétrica y además se pueden agregar pares (equipos en la vpn) de manera sencilla. Wireguard establece un túnel de conexiones fu3ertemente cifradas entre pares.\n\n \nvpn-1\n\n \n- Un servidor con IP pública al que tengamos acceso.\n- Una computadora en casa con conexión a internet a la que queremos acceder.\n- Se asume que tanto el servidor como la computadora funcionan con alguna distribución de GNU/Linux, aunque wireguard está disponible para otros sistemas operativos.\n\n \nLa guía oficial están en https://www.wireguard.com/install/, sin embargo para no agregar ppas a nuestro repositorio de paquetes, lo conveniente es instalar construyendo desde el código fuente, los pasos que seguí:\n\n :::bash\n sudo apt-get install libmnl-dev libelf-dev linux-headers-$(uname -r) build-essential pkg-config\n\t# clonando el repositorio\n\tgit clone https://git.zx2c4.com/WireGuard\n\t# construyendo\n\tcd WireGuard/src\n\tmake\n\t# instalando en el sistema\n\tsudo make install\n\n \nUsaremos archivos de configuración, recordando que para esta vpn sólo habrán dos pares; el servidor y la computadora en casa.\n\nPara una guía mas detallada se puede seguir https://www.wireguard.com/quickstart/\n\n \nPrimero se deben generar el par de claves pública y privada usando wireguard en ambos equipos.\n\n :::bash\n\t# clave privada\n sudo wg genkey > private.txt\n\t# clave publica\n\tsudo wg pubkey < private.txt > public.txt\n\nUsaremos el contenido de private.txt y public.txt para copiarlo en los archivos de configuración y permitir el acceso de los equipos a nuestra VPN.\n\n \nAhora creamos el archivo /etc/wireguard/10-mivpn.conf donde \n\n [Interface]\n\t# La clave privada es el contenido del archivo private.txt \n PrivateKey = eI0Tf4v...\n ListenPort = 10100\n\n # Peer equipo de casa\n [Peer]\n\t# Aqui copiamos la llave publica del equipo de casa (archivo public.txt)\n PublicKey = Aoc0F8e...\n # indicamos que se aceptan conexiones de cualquier IP\n AllowedIPs = 0.0.0.0/0\n\nLuego es conveniente crear un script bash para configurar la interfaz de red y aplicar las configuraciones a wireguard directamente. Por ejemplo en el script setup-vpn.sh:\n\n :::bash\n\t#!/bin/bash\n\tinterface=wg0\n\tconf=/etc/wireguard/10-mivpn.conf\n # configuracion de interfaces de red del tipo "wireguard"\n\tip link del dev $interface 2>/dev/null || true\n\tip link add $interface type wireguard\n\tip addr add 50.50.50.49 dev $interface\n\tip link set $interface up\n # aplicando configuracion a wireguard\n\twg setconf $interface $conf\n\twg show\n\n\texit 0\n\nAhora ejecutamos el script para configurar las interfaces de red y configurar la VPN.\n\n :::bash\n\tsudo ./setup-vpn.sh\n\n \nCreamos el archivo /etc/wireguard/10-mivpn.conf con:\n\n [Interface]\n\t# La clave privada es el contenido del archivo private.txt \n PrivateKey = C8M-25...\n ListenPort = 10100\n\n # Peer Servidor\n [Peer]\n\t# Aqui copiamos la llave publica del servidor (archivo public.txt)\n PublicKey = 9Fvpn4...\n # indicamos que se aceptan conexiones de cualquier IP\n AllowedIPs = 0.0.0.0/0\n\t# indicamos la IP publica del servidor y el puerto en que este escucha\n\tEndpoint = <IP pública del servidor>:10100\n\t# ajustamos intervalo de tiempo para enviar un paquete para mantener la conexion\n\tPersistentKeepalive = 120\n\nDe igual manera creamos un script para levantar la vpn fácilmente por ejemplo setup-vpn.sh:\n\n :::bash\n\t#!/bin/bash\n\tinterface=wg0\n\tconf=/etc/wireguard/10-mivpn.conf\n # configuracion de interfaces de red del tipo "wireguard"\n\tip link del dev $interface 2>/dev/null || true\n\tip link add $interface type wireguard\n # importante la mascara en este caso /24\n\tip addr add 50.50.50.50/24 dev $interface\n\tip link set $interface up\n # aplicando configuracion a wireguard\n\twg setconf $interface $conf\n\twg show\n\n\texit 0\n\nLuego ejecutamos el script sudo bash setup-vpn.sh\n\n \nPodemos comprobar en ambos equipos la configuración de wireguard con:\n\n sudo wg show\n\t\nQue debería mostrar los cambios que hemos aplicado, es importante también asegurarse que las interfaces de red estén funcionales con:\n\n ip a\n\t\nQue debería mostrarnos una interfaz del tipo wg0 con ipv4 50.50.50.x según sea el servidor o la computadora de casa.\n\nFinalmente abrimos la conexión de la VPN, desde el equipo de casa con:\n\n :::bash\n\tping 50.50.50.49\n\t\nQue debería responder positivamente. Hay que notar que el único equipo capaz de abrir la conexión en este caso es la computadora de casa por que sabe como llegar al servidor, esto por la línea Endpoint = &lt;IP pública del servidor&gt;:10100 en su archivo de configuración. Como este apunta a una IP pública accesible por internet, el equipo de casa puede llegar al servidor y al recibir las peticiones, wireguard en el servidor también establece un túnel hacia el equipo de casa.\n\nPara renovar automáticamente la conexión se usa PersistentKeepalive = 120 para enviar un paquete cada 120 segundos, también por ejemplo en /etc/crontab del equipo de casa se puuede hacer que se envien peticiones ICMP (ping) al servidor para que vaya constantemente reavivando la conexión y guardando en archivos el resultado del intento de conexión.\n\nFinalmente si el resultado es positivo ya podemos conectarnos al equipo de casa a través del servidor primero, solo bastaría acceder al servidor desde cualquier lugar y apuntar al equipo de casa (IP: 50.50.50.50) para establecer comunicación "directa".\n\nHay gran cantidad de usos para este tipo de conexiones, por ejemplo servir una página web alojada en un equipo en nuestra casa y usar un servidor sólo como proxy que dirija todas las peticiones desde internet a nuestro equipo de casa, y las respuestas del equipo de casa hacia internet, los ejemplos de uso son muy variados, por ejemplo salir a internet a través de VPN. Más allá de ellos, espero esta guía te haya servido.\n\n\n\n', ['software', 'tutoriales'])

]]>
Comentarios sobre el libro Explotación digital https://rmgss.net/posts/Comentarios-sobre-el-libro-Explotación-digital https://rmgss.net/posts/Comentarios-sobre-el-libro-Explotación-digital Sun Jul 23 08:15:02 2023 text/html Rodrigo Garcia reseña , libros , comentarios ('He tenido el agrado de leer el libro "Explotación digital - Trabajadores de plataformas digitales subsumidos formalmente al capital" de Cristian Paucara España, y quiero escribir comentarios para incentivar el estudio de la situación de muchos trabajadores en la actualidad. Me da la impresión de que este tema se toma con poca importancia y abrir un debate es una buena idea.\n\n \nEl libro se refiere a plataformas digitales en un sentido orientado a las economías de plataformas digitales, donde se tiene un sitio en internet en el que usuarios pueden acceder para conseguir productos o servicios ofrecidos por terceros. La plataforma es el medio principal de intermediación entre la oferta y la demanda.\n\nEjemplos concretos serían el caso de Uber, Workana, TripUniq, Airbnb, Amazon Mechanical Turk, etc.\n\n \nComo mencionó Cristian en su presentación, en el primer capítulo repasa conceptos teóricos y lo hace para intentar solventar definiciones y conjeturas basadas en estudios anteriores. Me topé con mucho material nuevo para mí, incluyendo conceptos definidos por Carl Marx y otros autores.\n\nEl marxismo si bien está en el hablar de muchas personas en nuestra sociedad, al parecer la mayoría de ellas tiene una pobre comprensión e ideas muy simplificadas al respecto. El autor del libro muestra haberlo estudiado con mucha mayor profundidad.\n\nSegún entiendo que postula Marx, la finalidad del capitalista es la obtención del plusvalor o ganancia neta y se da modos para reducir, evitar o incluso eliminar cualquier obstáculo que evite su obtención o en algunos casos maximización. Y en este sentido, el valor de la tecnología no es tomado como el aumento del valor de uso de las cosas y tiempo libre para el hombre, sino — como valorización para el capital, por tanto, el desarrollo y uso de la tecnología es "manipulado" con el fin de incrementar el plusvalor.\n\nSe tocan temas como el impacto de la tecnología en el desempleo y como se promueven procesos de subsunción de los trabajadores a "los intereses del capital". \n\n> Entiendo como subsunción de trabajadores, al paso a segundo plano o pérdida de poder de decisión de los trabajadores respecto a su situación laboral.\n\nEl segundo capítulo se enfoca en las economías de plataformas y plataformas digitales, sus tipos y características principales. Se presentan varias plataformas y se explica su modo de operación y los sectores en que se desempeñan. Puntualizando sobre sus características:\n\n - Intermediador. La plataforma es el punto de enlace entre usuarios que ofrecen mercancías y una oferta que las provee.\n - Capital de riesgo. La economía de plataformas parece atraer inversión de un capital cuyas ganancias no están aseguradas y las plataformas tiene valoradas sus acciones por encima de su valor real.\n - Deslocalización. La plataforma no está atada a una localización física, puede operar en múltiples.\n - Tercerización. La plataforma externaliza sus actividades de trabajo.\n - Efectos de red positivos. O efecto arrastre, ocurre cuando una o más personas demandan una mercancía porque otras ya cuentan con ella.\n - Tendencias monopólicas. A menudo la plataforma gana un control importante sobre el mercado, sometiendo a competidores y estableciendo reglas según conveniencia propia.\n - Dinamicidad. Las plataformas cambian, incorporan o desarrollan nuevas tecnologías constantemente para darles ventaja sobre sus competidores.\n \nCon este análisis sobre la naturaleza de las plataformas, en el tercer capítulo se procede a describir casos concretos de trabajo en plataformas digitales. Incluyendo las condiciones que tienen los trabajadores de plataformas, su condición legal, los procesos de convocatoria, acuerdos (y cambios de acuerdos), políticas de pago, ganancias, jerarquías, algoritmos de funcionamiento, control y gestión de trabajo en las plataformas, capacitación y formación de trabajadores, etc.\n\nFinalmente, describe como las plataformas usan este compendio de "herramientas" para afianzar control sobre sus procesos productivos y por ende sus trabajadores, valiéndose a menudo en algoritmos o políticas de recompensas y penalizaciones, manipulación de valorización del trabajador usando métricas para establecer reputación, incentivar la dependencia o desincentivar la organización de los trabajadores para conseguir mejores condiciones de trabajo.\n\nA continuación resaltaré algunos temas que toca el libro y daré mi opinión al respecto.\n\n \nSegún se explica, las plataformas digitales son un mecanismo de intermediación entre diferentes actores y a partir de ese mecanismo se consolida la economía de plataformas. Entonces, ¿Es necesario tener intermediadores para servicios que terceros ofrecen a través de Airbnb, Uber, Pedidos Ya, Amazon Mechanical Turk, etc?.\n\nDesde un punto de vista de la comodidad de usuarios, si lo son. Por ejemplo, si alguien está de viaje en una ciudad que no conoce, necesita transportarse y no tiene alguien que le ayude, le resultaría más cómodo ingresar a su teléfono móvil y abrir Uber para solicitar un taxi. De igual manera, para muchos otros servicios como entregas a domicilio, alojamiento, reparaciones, alquiler de vehículos, etc. es más sencillo para una persona que no tiene conocimiento de proveedores ingresar a una plataforma que permita contratar los servicios de esos proveedores.\n\nTener un lugar centralizado donde consultar es más rápido que tener que buscar en varios lugares, además la plataforma podría incluso proteger al usuario o darle ciertas garantías y otras ventajas como recomendaciones. Por ende, para consumidores finales, las plataformas digitales son una cosa buena.\n\nIncluso plataformas de microtrabajo como Amazon Mechanical Turk que permite contratar "microtrabajadores" para hacer tareas como clasificar imágenes u otras que requieran intervención humana remota, son necesarias porque hay tareas que no son bien resueltas por computadoras y deben ser hechas por humanos. Por eso es necesario conseguir a los humanos que ofrecen hacer esas tareas, y es una gran ventaja si hay un sitio donde se los puede conseguir sin complicaciones como poner anuncios en varios sitios o consultar a muchas personas para hacerlo.\n\n \nPara un trabajo no sólo importan los clientes y sus necesidades, los trabajadores también son importantes, después de todo son ellos quienes hacen el trabajo requerido. Por eso pensar en sólo satisfacer la necesidad ignorando el costo humano, en términos de trabajo; es un ingrediente para la explotación.\n\n \nImaginen estar trabajando como taxista de Uber, entre otras cosas uso mi propio automóvil, debo estar al tanto por si alguien requiere contratarme, debo competir con otros taxistas de Uber para recoger pasajeros y tener cuidado de no accidentarme en el camino para recoger pasajeros porque Uber sólo cubre un seguro contra accidentes durante el viaje contratado por el pasajero. No soy trabajador reconocido por Uber y no tengo beneficios sociales como vacaciones o seguro médico.\n\nSi soy trabajador de microtareas en Amazon Mechanical Turk y soy "contratado" para revisar cientos o miles de fotos de calles cada día y encerrar en un círculo las tiendas describiendo el tipo de tienda, seguramente tendré que pasar muchas horas al día haciendo este trabajo repetitivo para obtener los ingresos que necesito para subsistir, aparte tengo que tener buena conexión a internet, buen espacio de trabajo y equipos de computación que me lo permitan y todo eso va por mi cuenta.\n\nSi trabajo como repartidor en Pedidos Ya o Yaigo en Bolivia, debo contar con una moto para movilizarme, tendré que comprarme el traje de repartidor y la mochila, debo inscribirme como empresa unipersonal y hacer declaraciones a impuestos cada mes. Aparte para conseguir ganancias necesito ser contratado y que otras personas soliciten un envío a domicilio, por lo que tendré que estar atento a las notificaciones del celular por si hay nuevos envíos que podría realizar y estos pueden ser a cualquier hora y en lapsos de tiempo no definidos. Se me podría hacer más difícil tener un horario si lo que necesito es obtener más ingresos, los horarios los define la demanda. La empresa no me da vacaciones ni un sueldo fijo porque no soy parte realmente de la empresa, solo soy a lo mejor un consultor, también si hay muchos repartidores tendré menos posibilidades de hacer envíos y mis ingresos serán menores.\n\nSi soy youtuber, me esfuerzo por subir nuevo contenido periódicamente y hacer que los usuarios suscritos a mi canal aumenten, tendré que subir videos que a ellos les guste. Suponiendo que tengo ciertos ingresos y youtube cambia los términos de pago, mis ingresos podrían verse afectados y poco podré hacer al respecto. Si un día decido publicar contenido que es considerado inaceptable para youtube o si decide que el contenido que subí anteriormente lo es, mis videos o incluso mi cuenta podría ser eliminada. Si eso pasa, todo el esfuerzo, esa parte de mi que di para conseguir seguidores, habría engrandecido a youtube, pero los seguidores que conseguí seguramente los pierdo.\n\nSi soy anfitrión en Airbnb tengo que mantener una casa limpia y acogedora para captar huéspedes, la mantención de la casa tiene un costo que corre enteramente por mi cuenta y debo estar atento por si hay solicitudes y aceptarlas, los impuestos van por mi cuenta. Es probable que pese a mi esfuerzo uno o mas huéspedes no estén conformes y podrían dar una mala reseña por lo que mi popularidad se podría ver afectada y captaría menos huéspedes.\n\nSi empiezo como freelancer en Workana y deseo conseguir trabajos, a pesar de ser bueno en programación seguramente necesitaré referencias demostrables, si no las tengo, la plataforma me clasificará como principiante y se me hará mucho mas difícil conseguir que alguien me contrate. No cuento con salario fijo así que si no me contratan, no percibiré ingresos y si trabajo mucho, no cuento con beneficios sociales. Incluso si lo hago muchos años, puede que mis ingresos no se incrementen.\n\nHay muchos otros casos, pero se ve que cada forma de trabajo en muchas plataformas digitales tiene desventajas principalmente para los trabajadores. Independientemente de las ganancias económicas que los trabajadores perciben, las condiciones de trabajo deben ser las adecuadas.\n\n \nEl libro establece buenas bases conceptuales para sustentar la afirmación de que los trabajadores son subsumidos al capital. Muchas plataformas aprovechan su situación de intermediadoras para establecer un control sobre el mercado de proveedores y someter a los trabajadores, las plataformas cobran por el servicio de intermediación, más no realizan el trabajo principal. También se benefician de los usuarios; mientras más usuarios tenga la plataforma, más puede ejercer control e imponer condiciones de trabajo.\n\nComo se describe en el libro, en muchos casos los trabajadores no tienen más opción que aceptar los términos establecidos por las plataformas. Y si la intencionalidad de los dueños o tomadores de decisiones de estas es maximizar ganancias, seguramente intentarán aprovecharse de su situación de punto de conexión hacia los clientes para explotar a sus trabajadores. Entonces, sí se puede afirmar que los trabajadores son subsumidos por las plataformas digitales.\n\n \nHasta ahora el libro de Cristian Paucara es el trabajo más completo que conozco sobre los trabajadores de plataformas digitales en Bolivia, y Bolivia es un país con una pobre legislación respecto a plataformas digitales. Este trabajo es una buena referencia para abrir este importante debate — ¿Está bien que en Bolivia se permita que las plataformas digitales sometan a los trabajadores? ¿Cuáles deberían ser las limitaciones de éstas? ¿Qué mecanismos de control podemos plantear o ejercer?\n\nPor ejemplo, una forma de apoyar a los trabajadores de plataformas como "Pedidos Ya" sería exigir que esta empresa mejore sus condiciones laborales empezando por reconocerlos como personal interno de la empresa.\n\n \nQuizá dejar de usar plataformas no sea suficiente, primero partiendo del hecho de que no todas las personas lo harían y pasando por el hecho de que si una plataforma se cierra, otra podría reemplazarla y quizá ser peor, pero podemos ejercer presión como consumidores y ciudadanos.\n\nSe puede exigir y penalizar a las plataformas para que mejoren la situación de sus trabajadores, apoyar a los trabajadores e incentivar sus justas demandas. Apoyar iniciativas y políticas públicas que velen por el cumplimiento de derechos laborales. Ayudar a brindar los medios para que los trabajadores mejoren su situación laboral en plataformas digitales.\n\nLuego de leer este libro me he puesto a reflexionar y me di cuenta de que muchas personas tienen mejores condiciones laborales y que éstas son producto de auténticas luchas de las clases populares —no deberíamos permitir que esos derechos se pierdan solo por comodidad como consumidores o conformismo como trabajadores. Nuevas condiciones de trabajo están surgiendo y las plataformas digitales son una muestra de ello, no basta con dejar que nos arrastre la corriente, ya que podemos remar para cambiar nuestro destino mejorando las condiciones de trabajo y de nuestras vidas.\n', ['reseña', 'libros', 'comentarios'])

]]>