Noticias rmgss.net https://www.rmgss.net/rss Sitio personal de Rodrigo Garcia es python Flask - Jinja2 Nodo chersky LaOtraRed https://rmgss.net/posts/nodo-chersky-LaOtraRed https://rmgss.net/posts/nodo-chersky-LaOtraRed Sun Sep 2 17:17:46 2018 text/html Rodrigo Garcia LaOtraRed , redes_libres , medios_de_comunicación (u'\nEsta es una rese\xf1a sobre la puesta en marcha experimental del nodo "Chersky" como parte del proyecto LaOtraRed La Paz. En este post podr\xe1s revisar fotos, experiencias sobre el montado del nodo, adem\xe1s detalles t\xe9cnicos de puesta de servicios y configuraciones.\n\nNota: Este art\xedculo es una referencia hist\xf3rica por que el nodo Chersky ha evolucionado, aqu\xed la segunda versi\xf3n.\n \n LaOtraRed\n \xbfDe qu\xe9 se trata?\n Materiales usados\n Montado de la torre\n Servicios disponibles\n Agradecimientos y m\xe1s\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\xf3n u empresa que sea due\xf1a.\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\xf3sito en tanto no perjudiques el funcionamiento de la propia red ni a la libertad de los dem\xe1s usuarios.\n Eres libre de saber c\xf3mo es la red, de qu\xe9 se compone y c\xf3mo funciona.\n Eres libre de emplear la red para cualquier tipo de comunicaci\xf3n y difundir su funcionamiento.\n Incorpor\xe1ndote a la red, ayudas a extender estas libertades en las mismas condiciones.\n\nEstos principios son extra\xeddos de la licencia procom\xfan inal\xe1mbrica 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\xe9s del nodo sopocachi I.\n\n<span id="acercade"></span>\n \nEste nodo es un punto de conexi\xf3n wifi libre en un barrio de la ciudad de La Paz, si algui\xe9n se conecta a la se\xf1al wifi puede utilizar una serie de servicios libremente. Adem\xe1s este punto de conexi\xf3n wifi est\xe1 preparado para actuar como nodo en la red distribuida de LaOtraRed y se clasifica como un nodo normal por repartir la se\xf1al 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\xe9 detallando m\xe1s adelante.\n\nNodo Chersky infraestructura\n\n \nEl nodo se encuentra en la ciudad de La Paz, casi llegando al barrio gr\xe1fico cerca la plaza Villaroel y el hospital Arco Iris, puedes buscar la se\xf1al de wifi por ah\xed.\n\n<span id="materiales"></span>\n \nHe realizado una inversi\xf3n considerable en el montado de este nodo, pero esto no quiere decir que esta es la forma \xf3ptima 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\xf3n 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\xf1os (reciclados de un botadero)\n\nInversi\xf3n adquiriendo materiales y equipos : 696 bs\n\n<span id="torre"></span>\n \nPara la "torre" he usado b\xe1sicamente 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\xed se puede reducir la p\xe9rdida en la l\xednea de transmisi\xf3n coaxial hasta la antena. Y para colocar el router arriba se requiere darle suministro el\xe9ctrico, 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\xf3n ethernet, se ha hecho una modificaci\xf3n usando dos cajitas de red, y dos conectores jack. Esta modificaci\xf3n est\xe1 mejor descrita aqu\xed, 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\xe9 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\xe9 este dise\xf1o de antena hecha con el mismo cable coaxial y como parec\xeda sencilla de hacer la hice.\n\nPero no obtuve los resultados deseados y probablemente por errores en el proceso de construcci\xf3n, por ejemplo en las medidas de los trozos o al preparar los conectores, al final la antena med\xeda cerca de 1.4 m y la ganancia era similar a la antena con la que ven\xeda el router. De todas formas termin\xe9 pon\xedendola en el techo y espero poder realizar una mejor antena. Estar\xeda muy agradecido si me das sugerencias sobre antenas onmidireccionales, hazlo por aqu\xed por favor o escribe al foro de la otra red La Paz muchos te lo agradercer\xe1n.\n\nAqu\xed 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\xe9" un fierro en la base de madera para tener mejor apoyo sobre el techo inclinado.\n\ntorre materiales\n\nLuego amarr\xe9 3 alambres para sujetar los fierros donde tambi\xe9n asegur\xe9 la antena con el alambre de amarre, al final la base de la "torre" termin\xf3 as\xed:\n\ntorre asegurada\n\nDespu\xe9s conect\xe9 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\xe9s si lo puse o no habr\xeda conexi\xf3n con el servidor.\n\ntorre asegurada\n\nUna vez cubierto el router para protegerlo de la interperie y asegurarlo, s\xf3lo 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\xf3n es que Amos Batto un activista ambientalista y que antes se pasaba por el r00thouse don\xf3 el equipo, agradezco a Amos por la donaci\xf3n 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 \xfatil.\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\xe9 Debian GNU/Linux 8 jessie y puse algunos servicios que especificar\xe9 a continuaci\xf3n.\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\xf3n e hiperactivo. Adem\xe1s hab\xeda otro equipo en el r00thouse que llamamos Chip pero ten\xeda caracter\xedsticas superiores al chipsito. Ni hablar m\xe1s aqu\xed 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\xe1s 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\xe1 m\xe1s 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\xe1gina 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\xe9cnicos han sido fundamentales, cuando andaba desubicado me ayudaba a ubicarme de nuevo. Su apoyo moral tambi\xe9n ha sido importante adem\xe1s 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\xe1sicas 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\xe9n: Wonkey como miembro del r00thouse ayud\xf3 mucho impulsando el proyecto y haciendo cosas que nadie m\xe1s se animaba como cuando se anim\xf3 a configurar VLANS o conseguir routers ganando hackatones. Eso me d\xedo 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\xe1s por permitirme usar el server chipsito para este nodo.\n Franklin Torres: Dx por su ayuda y apoyo constante en cada problema que surg\xeda cuando yo era parte del r00thouse.\n Esteban Lima: Tebo de buena gana ayud\xf3 a iniciar el proyecto LaOtraRed y a conseguirnos espacios de prueba, tambi\xe9n colabor\xf3 en Cochabamba donde han estado construyendo LaOtraRed.\n\nVoy a hacer un agradecimiento especial a Philippe Rivi\xe8re o Fil, que es la persona que realiz\xf3 una importante donaci\xf3n monetaria cuando empezabamos el proyecto con esa donaci\xf3n pudimos adquirir muchos enrutadores con los que empezamos a probar en serio la creaci\xf3n 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\xfablico, s\xf3lo confiando en que su donativo apoyar\xeda al proyecto y as\xed lo hizo \xa1Gracias Fil!.\n\n \nAntes de pasar a la parte enteramente t\xe9cnica me gustar\xeda 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\xe1n a nuestras necesidades reales, adem\xe1s se podr\xedan aprovechar de nuestra situaci\xf3n por falta de comunicaci\xf3n para --imponernos tarfias excesivas y un mal servicio, como es el caso del internet en Bolivia.\n\nSi tienes la posibilidad debes tomar acci\xf3n apoyando la creaci\xf3n de redes libres para los y las ciudadanas, controladas y gestionadas por los mismos.\n\nRechaza medios de comunicaci\xf3n 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\xe9n emite y recibe se\xf1ales wifi (2.4 y 5Ghz) en modo adhoc para unirse a la red distribuida LaOtraRed.\n\nEl siguiente diagrama muestra con m\xe1s detalle la infraestructura del nodo.\n\nNodo Chersky infraestructura detalle\n\nS\xf3lo hay un aparato enrutador que realiza la conexi\xf3n a la red distribuida, este aparato tambi\xe9n 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\xe1n una IP p\xfablica (ser\xe1n visibles por todos los nodos en LaOtraRed).\n\n<span id="configuraciones"></span>\n \nEsta es una configuraci\xf3n 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\xe1s a una red local de clientes temporales.\n\n El nodo Chersky tiene reservado el bloque 10.64.3.64 /27 siguiendo una pol\xedtica de asignaci\xf3n de IPs\n\nLo \xfaltimo 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\xe1n p\xfablicas 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\xfablico 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\xe1ticamente 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\xf3n 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\xed pertenezca a una interfaz espec\xedfica (en este caso "wiredmesh"), la VLAN 2 abarca los puertos ethernet 3 y 4 y cualquier dispositivo que se conecte a estos puertos pertenecer\xe1 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\xf3n 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\xf1al de la red distribuida en 2.4 y 5 Ghz, a continuaci\xf3n el archivo de configuraci\xf3n:\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\xfablicos dentro LaOtraRed La Paz (bloque 10.64.0.0 /15) lo har\xe1n a trav\xe9s de NAT. Esto quiere decir que se usar\xe1 la IP 10.64.3.65 del router para enviar el tr\xe1fico 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\xf3n a otros. Se utiliza el protocolo de enrutamiento din\xe1mico 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\xe1n a trav\xe9s 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\xf3n entre otros nodos cuando estos lo requieran.\n* Detecta autom\xe1ticamente otros nodos en la red y estos se unen autom\xe1ticamente.\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\xf3n:\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\xe1 haciendo crecer la red distribuida y libre.\n\nLo que en otro nodo se deber\xeda cambiar son las direcciones IP correspondientes a las que tengan asingadas, ver pol\xedtica de asignaci\xf3n de IPs para m\xe1s informaci\xf3n.\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\xf3n global de dnsmasq para que dirija las b\xfasquedas de dominios hacia una direcci\xf3n IP, en esta caso hacia el servidor chipsito.\n\nSe ha puesto al principio del archivo /etc/dnsmasq.conf la l\xednea:\n\n address=/#/10.64.3.66\n\nQue retornar\xe1 a 10.64.3.66 cualquier b\xfasqueda no respondida desde /etc/hosts o DHCP y que no haya sido enviada a un servidor DNS upstream, esto funcionar\xe1 para los dispositivos conectados en a la red lan y est\xe1n como clientes de este nodo.\n\nEn 10.64.3.66 (server chipsito) hay una p\xe1gina 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\xe1cilmente podr\xe1n usar sus servicios ya que hay una p\xe1gina de bienvenida y dnsmasq los redirije a esta. Sin embargo, no hay una referencia a servidores DNS p\xfablicos en LaOtraRed. Mientras no se definan servidores DNS p\xfablicos se podr\xeda 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\xe1s nodos en la red distribuida, no se est\xe1n cifrando desde este nodo, esto por que no se tiene aun definida una contrase\xf1a p\xfablica 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', [u'LaOtraRed', u'redes_libres', u'medios_de_comunicaci\xf3n'])

]]>
Fotos5 https://rmgss.net/posts/fotos5 https://rmgss.net/posts/fotos5 Sun Aug 12 11:03:34 2018 text/html Rodrigo Garcia fotos (u'\nOtra selecci\xf3n mas o menos al azar de fotos.\n\nEn un d\xeda feriado, as\xed se ve un pasillo comercial con las tiendas cerradas, desde alg\xfan lugar del pasadizo se escucha una radio suave con el mensaje presidencial del 6 de agosto en Bolivia.\n\npasillo vac\xedo 1\n<- Tama\xf1o original\n\n----\n\nUna foto desde uno de los puntos m\xe1s altos de la ciudad de La Paz, otro \xe1ngulo desde donde se ve el nevado Illimani.\n\nIllimani 2\n<- Tama\xf1o original\n\n----\n\nMe gustan los musgos por muchas cosas, entre ellas se las arreglan para brotar en una pared donde haya algo de humedad d\xe1ndole vida a la pared.\n\nPared y musgos\n<- Tama\xf1o original\n\n----\n\nLos mercados son lugares con mucha energ\xeda.\n\nFrutasVillaF\xe1tima1\n\nMercado villa f\xe1tima\n<- Tama\xf1o original\n\nplantas de cerca 3\n<- Tama\xf1o original\n', [u'fotos'])

]]>
Utilidades bash 1 https://rmgss.net/posts/Utilidades-bash-1 https://rmgss.net/posts/Utilidades-bash-1 Mon Jun 4 23:06:16 2018 text/html Rodrigo Garcia software , bash , python (u'\nEn este post compartir\xe9 algunos scripts en bash, python y combinaci\xf3n de comandos que me han servido en distintas ocasiones como para escribir programas, estudiar, buscar, administrar sistemas, etc.\n\nLos scripts bash requieren tener instalado bash que viene instalado para la mayor\xeda de las distribuciones GNU/Linux, para las utilidades siguientes no he definido un orden pero aqu\xed una tabla peque\xf1a de contenidos:\n\n \n Programaci\xf3n\n\t- B\xfasqueda de palabras o expresiones\n Administraci\xf3n\n\t- Comando less manteniendo colores\n\t- Tama\xf1o de carpetas\n\t- Digestos de archivos en el directorio actual\n\t- Archivos duplicados\n\n \t\n \nLos programas pueden tener muchos archivos distintos con muchas l\xedneas de c\xf3digo. En varias ocasiones es necesario buscar una palabra o expresi\xf3n en particular en todos los archivos de c\xf3digo fuente del programa y podemos usar:\n\n :::bash\n grep -lir "palabra" .\n\nEsta orden usa grep en modo recursivo -r para buscar en todos los ficheros de subdirectorios, -l en lugar de mostrar las l\xedneas donde se encuentran ocurrencias solamente muestra el archivo donde se ha encontrado la "palabra". -i hace se ignore la diferencia entre may\xfasculas y min\xfasculas, finalmente. le dice que busque en el directorio actual.\n\nEl comando anterior es muy \xfatil, pero puede que necesitemos m\xe1s detalles por ejemplo saber cu\xe1ntas veces se encuentra la "palabra" en cada archivo para lo cual podemos usar los siguiente:\n\n\t:::bash\n\tgrep -irc "palabra" . | grep -E --color "[1-9]+[0-9]$"\n\nQue muestra el n\xfamero de veces que se encuentra "palabra" en cada archivo gracias a la opci\xf3n c. Luego de la tuber\xeda otro grep filtra una expresi\xf3n regular (por usar -E), la expresi\xf3n regular [1-9]+[0-9]*$ coincide con todas las cadenas que terminen en al menos una combinaci\xf3n de n\xfameros entre 1 y 9 seguido de cero o m\xe1s combinaciones de n\xfameros entre 0 y 9.\n\nSe usa este filtro por que la opci\xf3n -c del grep inicial tambi\xe9n imprime 0 en caso de que no se encuentren ocurrencias en un archivo, pero nosotros s\xf3lo queremos que se muestren los archivos en donde se encuentre al menos una ocurrencia.\n\nEl script anterior tambi\xe9n es muy \xfatil y gracias a --color en la salida final se mantiene resaltado en colores el n\xfamero de ocurrencias en un archivo. Sin embargo puede perfeccionarse, por ejemplo en un proyecto en python o node.js se tienen los directorios venv y node_modules con archivos de c\xf3digo fuente de las extensiones o programas que usa el programa principal, pero incluirlos en la b\xfasqueda seguramente no es lo que buscamos. Para que se ignoren estos directorios usamos --exclude-dir:\n\n\t:::bash\n\t# para python\n\tgrep -irc "palabra" --exclude-dir=venv . | grep -E --color "[1-9]+[0-9]$"\n\t# para node.js\n\tgrep -irc "palabra" --exclude-dir=node_modules . | grep -E --color "[1-9]+[0-9]$"\n\nAhora para no tener que escribir todo el tiempo la larga combinaci\xf3n de arriba y tener mayor facilidad lo convertiremos en un \xfatil script.\n\n\t:::bash\n #!/bin/bash\n \n uso()\n {\n echo "Uso:"\n echo " pgrep.sh [-e DIRECTORIO] EXPRESION"\n echo ""\n echo "Busca la EXPRESION en todos los ficheros dentro el directorio actual"\n echo "Si se ysa \'-e\' se excluye el DIRECTORIO en la b\xfasqueda."\n\t\texit 0\n }\n EXCLUDE=""\n EXPR=""\n if [ -z $1 ]\n then\n uso\n fi\n if [ $1 == "-e" ] # excluir directorio\n then\n if [ -z $2 ] \n then\n\t\t\tuso\n fi\n EXCLUDE=$2\n EXPR=$3\n else\n EXPR=$1\n fi\n # comando final de b\xfasqueda\n grep -rc "$EXPR" --exclude-dir="$EXCLUDE" . | grep -E --color "[1-9]+[0-9]$"\n exit 0\n\t\nPodr\xedamos incluso incluir el script anterior como global para usarlo en cualquier momento, para eso lo guardamos en una ruta dentro el PATH por ejemplo yo lo he guardado as\xed /usr/bin/ogrep.sh luego le damos permisos de ejecuci\xf3n (chmod +x /usr/bin/ogrep.sh) y listo.\n\n \nA menudo se usa less para capturar la salida de uno o m\xe1s comandos en una consola, al usar less los colores en el texto de salida se puede perder por ejemplo si se hace ls -l | less. Aqu\xed un ejemplo para mantener los colores usando less:\n\n\t:::bash\n\tls -l --color | less -R\n\nla opci\xf3n -R de less hace que se interpreten caracteres en bruto en este caso c\xf3digos de colores que ls con la opci\xf3n --color produce.\n\n\t:::bash\n\t# mantiene los colores en resultados de buscar .html en un archivo\n\tgrep ".html$" archivo --color=always | less -R\n\nM\xe1s ejemplos\n\n \n\t:::bash\n\t# Espacio que ocupa cada carpeta en el directorio actual\n\tdu -h --max-depth 1 .\n\t# Espacio que ocupa el directorio actual\n\tdu -sh\n\n \nUna manera simple para obtener sha1:\n\n\t:::bash\n\tsha1sum \n\nQue obtiene el digesto sha1 de todos los archivos en el directorio actual aunque este tambi\xe9n intenta obtener de los directorios, para solamente obtener de archivos se puede usar:\n\n :::bash\n find . -maxdepth 1 -type f | tr "\n" " " | xargs sha1sum\n\t# de la misma forma sin usar tr (mas eficiente)\n\tfind . -maxdepth 1 -type f -print0 | xargs --delimiter "\0" sha1sum\n\nDonde . hace que se busque en el directorio actual, -maxdepth con una profundidad de 1 y de tipo archivo (-type f), luego se usa tr &#34;\\n&#34; &#34; &#34; que reemplaza los saltos de l\xednea por espacios en blanco para que xargs se los pase a sha1sum. La segunda forma es m\xe1s eficiente al no tener que llamar a otro comando.\n\n \nEl siguiente script permite buscar archivos duplicados dentro un directorio dado analizando los nombres de archivos y si el contenido. Esta escrito en python y puede ejecutarse con:\n\n\tpython3 duplicados.py\n\nEl script se puede mejorar o agregar funcionalidades --> aqu\xed la \xfaltima versi\xf3n <-- si quisieras contribuir.\n\n\t:::python\n #!/usr/bin/python3\n import hashlib\n import os\n import sys\n \n # helpers\n def getList(directory="."):\n \'\'\' retorna una lista con los nombres de todos los archivos dentro el \n directorio actual.\n * basado en https://stackoverflow.com/questions/120656/directory-tree-listing-in-python#120701\n \'\'\'\n files = []\n for dirname, dirnames, filenames in os.walk(directory):\n # for subdirname in dirnames:\n # files.append(os.apth.join(dirname, subdirname))\n for filename in filenames:\n files.append(os.path.join(dirname,filename))\n return files\n \n def digest(filename, algorithm=\'sha1\'):\n \'\'\' returns hexdigest of the given filename using the gibe algorithm \'\'\'\n with open(filename, \'r+b\') as fil:\n if (algorithm == \'sha1\'):\n return hashlib.sha1(fil.read()).hexdigest()\n elif (algorithm == \'sha224\'):\n return hashlib.sha224(fil.read()).hexdigest()\n elif (algorithm == \'sha256\'):\n return hashlib.sha256(fil.read()).hexdigest()\n elif (algorithm == \'sha384\'):\n return hashlib.sha384(fil.read()).hexdigest()\n elif (algorithm == \'sha512\'):\n return hashlib.sha512(fil.read()).hexdigest()\n elif (algorithm == \'md5\'):\n return hashlib.md5(fil.read()).hexdigest()\n print (\'Invalid algorithm\')\n return ""\n \n def digests(fileList, algorithm=\'sha1\'):\n \'\'\' Retorna un diccionario con los digestos calculados de la lista de\n archivos `fileList\'.\n \'\'\'\n dict = {}\n for file in fileList:\n d = digest(file)\n if d in dict:\n # duplicado encontrado\n l = dict[d]\n l.append(file)\n dict[d] = l\n else:\n l = []\n l.append(file)\n dict[d] = l\n return dict\n \n def use():\n print (\'Obtiene un lista de archivos duplicados desde un directorio ra\xedz\')\n print (\'Cada linea contiene los archivos que se ha detectado iguales\')\n print ()\n print (\' python3 duplicados.py [DIR] [ALGORITMO]\')\n print ()\n print (\' - DIR: Directorio ra\xedz donde realizar la b\xfasqueda usa "." por defecto\')\n print (\' - ALGORITMO: Algoritmo para obtener digestos "sha1" por defecto\')\n print (\' permitidos; md5,sha1,sha224,sha256,sha384,sha512\')\n \n # main\n files = []\n directory=\'.\'\n hashAlgorithm = "sha1"\n \n if (len(sys.argv) > 1):\n if (sys.argv[1] != \'\'):\n if (sys.argv[1]==\'-h\' or sys.argv[1]==\'--help\'):\n use()\n exit(0)\n \n directory=sys.argv[1]\n if (len(sys.argv) > 2):\n if (sys.argv[2] != \'\'):\n if (sys.argv[2]==\'sha1\' or sys.argv[2]==\'md5\' or sys.argv[2]==\'sha224\'\n or sys.argv[2]==\'sha256\' or sys.argv[2]==\'sha512\'):\n hashAlgorithm = sys.argv[2]\n else:\n use()\n exit(0)\n \n files = getList(directory)\n digests = digests(files, hashAlgorithm)\n for digest, lista in digests.items():\n # verbose\n #print (digest, lista)\n \n if len(lista) > 1:\n s = \'\'\n for file in lista:\n s += file+\' \'\n print(s[:-1])\n exit(0)\n\nLa idea del script anterior se puede explotar de muchas formas, al usarlo se obtiene la lista de archivos que se detectan con contenido igual y a partir de esa lista se puede por ejemplo eliminar los duplicados. Adem\xe1s para que parezcan que no se han eliminado se podr\xeda crear enlaces simb\xf3licos y s\xf3lo mantener un archivo con contenido original por todos los dem\xe1s repetidos.\n\n----\nSi tienes comentarios sobre lo mostrado escr\xedbeme, espero te haya servido.\n', [u'software', u'bash', u'python'])

]]>
Sobre el trato a los animales https://rmgss.net/posts/Sobre-el-trato-a-los-animales https://rmgss.net/posts/Sobre-el-trato-a-los-animales Fri Apr 13 01:45:26 2018 text/html Rodrigo Garcia reflexión , naturaleza (u'\nllamas1\n\n\xbfQu\xe9 refleja el trato hacia los animales?. Como muchas personas me he estado preguntando esto y me gustar\xeda exponer algunas apreciaciones personales que se much@s tambi\xe9n comparten.\n\n \nPor su intelecto el ser humano puede considerarse como la especie superior del planeta tierra, pero esa es una visi\xf3n que no toma en cuenta muchas otras caracter\xedsticas.\n\nPor ejemplo las abejas, moscas, mariposas y otros insectos polinizan las plantas y permiten que haya intercambio gen\xe9tico natural permitiendo nuevas generaciones de plantas mejores adaptadas a la vida. No se puede cuestionar que las plantas son la base de la vida en el planeta y que los insectos juegan un papel fundamental.\n\nSi comparar\xedamos al ser humano en funci\xf3n de su utilidad en la vida de las dem\xe1s especies en el planeta, ser\xeda claro que los insectos son superiores.\n\nmosca en flores 1\n<- Tama\xf1o original\n\nabeja1\n\nUn ser humano es tambi\xe9n un animal que vive en el planeta tierra y no es el \xfanico animal que razona.\n\nPor ejemplo los zorros, lobos y otros c\xe1nidos, guardan la comida enterr\xe1ndola en lugares estrat\xe9gicos para com\xe9rsela cuando no puedan cazar. Eso demuestra que tambi\xe9n razonan anticip\xe1ndose a posibles per\xedodos de hambruna.\n\nQuiz\xe1s no se deber\xeda considerar al ser humano superior sobre los animales, ya que estar\xedamos s\xf3lo tratando ciertos aspectos.\n\nDe todas formas en las leyes de todos los pa\xedses del mundo civilizado seguramente un ser humano tiene m\xe1s derechos que un animal y se lo considera superior.\n\n \nVamos a suponer que un humano es superior a cualquier otro animal en el planeta.\n\nEl hecho de que sea superior no significa que es correcto maltratar a los dem\xe1s "seres inferiores". Si un ser superior tiene m\xe1s privilegios, \xbfpor qu\xe9 deber\xeda hacer la vida de los menos privilegiados m\xe1s dif\xedcil?.\n\nDe hecho un ser superior es benevolente y trata de cuidar a los menos privilegiados sin diferenciar especies.\n\nCuando una persona, maltrata animales o incita a hacerlo \xbfAcaso ese comportamiento no la hace inferior?.\n\nEl maltrato hacia los animales viene de nuestros antepasados y es normal que lo hayamos heredado, pero las influencias negativas deben ser removidas de nosotros y deber\xedamos mejorar el trato que le damos a los animales.\n\nMostrar compasi\xf3n por un "ser inferior" es un acto noble y actuar para mejorar la vida de ese "ser inferior" es siempre gratificante, enriquecedor y contagioso.\n\n \nperrito1\n<- Tama\xf1o original\n\n> \u201cUn pa\xeds, una civilizaci\xf3n se puede juzgar por la forma en que trata a sus animales.\u201d\n\nEsa frase de Mahatma Gandhi, tiene un profundo significado.\n\nA menudo se trata de medir el nivel de avance de una civilizaci\xf3n por su riqueza econ\xf3mica, tecnol\xf3gica, militar, etc. Pero nada de eso es en realidad tan importante como al tratar de medir c\xf3mo viven sus habitantes.\n\nPor ejemplo, en una sociedad donde se tiene mucha riquieza econ\xf3mica, tecnolog\xeda avanzada y buena salud, uno podr\xeda apresurarse y decir que es una sociedad pr\xf3spera y un modelo a seguir. Sin embargo, que tal si en esa misma sociedad hay mucha pobreza o los ciudadanos menos aventajados sufren enormemente. Entonces decir que es una sociedad pr\xf3spera es ocultar esos problemas y crear un falso ejemplo de sociedad avanzada.\n\nEn otro caso si hay una sociedad con muy bajos niveles de pobreza y donde la gente vive con una buena calidad de vida, antes de poder decir que es una sociedad realmente pr\xf3spera habr\xeda que preguntarse \u2014a qu\xe9 costo se logra eso\u2014. Si para mantenerse as\xed, esa sociedad le ha quitado la prosperidad a otra (por ejemplo a causa de una guerra) o destruye h\xe1bitats enteros, o trata a los animales como meros productos de consumo, el costo me parece muy alto y otra vez decir que es pr\xf3spera es ocultar esos males de ra\xedz.\n\nLos problemas de una sociedad se pueden ver claramente en sus habitantes menos privilegiados, y \u2014no es casualidad que los animales que forman parte de ella sean los que m\xe1s sufren las consecuencias. Una sociedad avanzada protege a sus animales, por que estos forman parte de ella directa o indirectamente. El bienestar de un grupo de habitantes privilegiados no justifica que se menosprecie el respeto por la vida de los dem\xe1s miembros de una sociedad.\n\n \nComo nosotros los dem\xe1s animales son seres vivos, tienen muchas ganas de vivir (y vivir felices), cumplen una funci\xf3n en el planeta, tienen sue\xf1os, sentimientos, seres queridos, se enojan, tienen miedo, resuelven problemas, juegan y son capaces de mostrar much\xedsimo afecto.\n\nEl trato que le das a los animales tambi\xe9n refleja el trato que le dar\xedas a un ser menos aventajado y eso muestra tambi\xe9n tu nivel de prosperidad.\n\nchiwanku1\ntommy1\npalomas1\n', [u'reflexi\xf3n', u'naturaleza'])

]]>
Probando bmx7 https://rmgss.net/posts/probando-bmx7 https://rmgss.net/posts/probando-bmx7 Sat Mar 3 13:01:05 2018 text/html Rodrigo Garcia software , tutoriales , redes_libres (u'\nEn este post compartir\xe9 unas pruebas y peque\xf1a gu\xeda del protocolo de enrutamiento Bmx7 para una red en malla.\n\nPara construir una red en malla aut\xf3noma hace falta uno o m\xe1s 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\xe9n ayuda a llevar informaci\xf3n de un nodo a otro a trav\xe9s 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\xe1s se ajuste a las necesidades de una red libre comunitaria y de control colectivo. En ese af\xe1n hemos estado trabajando sobre una primera versi\xf3n estable o 1VE donde hemos definido el protocolo bmx7 como el principal.\n\n \nEste protocolo es una versi\xf3n m\xe1s segura de bmx6. Bmx6 siendo una modificaci\xf3n de Batman-adv, est\xe1 enfocado a redes en malla (que es lo mismo que decir redes mesh) pero le agrega soporte para IPv6, mejora la difusi\xf3n del estado de cada nodo, etc [1] .\n\nBmx7 adem\xe1s le agrega seguridad usando SEMTOR lo que hace que los anuncios de rutas est\xe9n firmados criptogr\xe1ficamente [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\xe1sicamente dos nodos, el nodo A y el nodo B se descubren y establecen comunicaci\xf3n con la ayuda de bmx7. El nodo A tiene la direcci\xf3n IPv6: fa99:1:a::a y tambi\xe9n 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\xe9n bloques de red, por ejemplo A dir\xe1 que es acreedor del bloque IPv6 fa99:1:a::/48 directamente y tambi\xe9n anuncia un bloque IPv4: 10.64.1.1/24 a trav\xe9s de un t\xfanel, la manera de hacer anuncios var\xeda en bmx7 y veremos eso m\xe1s adelante.\n\nLa idea de este escenario es que se puede hacer que un nodo le diga a toda la red y m\xe1s espec\xedficamente a sus vecinos, que tiene conexi\xf3n a un grupo de direcciones IP (bloque IP) y que a trav\xe9s de si mismo los dem\xe1s 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\xeda con descargar la \xfaltima versi\xf3n 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\xe1genes 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\xeda para firmar paquetes y verificar autenticidad, requiere la biblioteca mbedtls instalada en el sistema, como los enrutadores mr3020 y 3040 s\xf3lo 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\xf3n.\n\nUna soluci\xf3n ser\xeda desinstalar completamente luci pero no he encontrado una forma sencilla de hacerlo, por lo que se puede construir im\xe1genes de firmware usando buildroot o image-generator, en el post construir im\xe1genes de firmware para enrutadores con build root puedes ver c\xf3mo hacerlo.\n\nPor ejemplo usando el image-generator se puede construir im\xe1genes 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\xe9n puedes descargar las im\xe1genes de firmware con estas caracter\xedsticas de mi repositorio de im\xe1genes 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\xe1genes de firmware correspondientes en los enrutadores. Si nunca lo has hecho revisa esta gu\xeda.\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\xf1al 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\xf3n 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\xfan otro nodo pueda utilizar las IP que anuncia un nodo mediante un identificador \xfanico y que los bloques de direcciones no se solapen. Todos estos paquetes se asocian a un indentificador \xfanico por cada nodo y van firmados criptogr\xe1ficamente.\n\nFinalmente, bmx7 es s\xf3lo IPv6 y para anunciar bloques IPv4 utiliza anuncios de t\xfaneles. Afortunadamente no tenemos que crear los t\xfaneles manualemente ya que bmx7 los crea por nosotros, s\xf3lo indicamos mediante tun4Address que este nodo anuncia la red 10.64.1.0/24 y mediante tunOut le decimos que acepte anuncios que est\xe9n dentro de 10.64.0.0/16 y que los retransmita.\n\nEn el nodo B las configuraciones son similares donde s\xf3lo cambian los bloques y direcciones IP correspondientes, si habr\xeda otro nodo C o otros m\xe1s 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\xfaneles, a continuaci\xf3n 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\xeda 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 \xe9l, 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\xe1ticamente una direcci\xf3n IPv6 al azar y un indentificador \xfanico en la red, pero los anuncios de redes UHNA son \xfanicos y eso suprime el riesgo de IP spoofing.\n\nAhora la comunicaci\xf3n 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\xf3n para modificar el comportamiento del protocolo. Cuando el demonio bmx7 esta ejecut\xe1ndose 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\xeda que el nodo tambi\xe9n anuncie el bloque fc01:1934:ffed::/64, de igual manera se puede hacer que se anuncien t\xfaneles, quitarlos, establecer p\xf3liticas para aceptar anuncios y distribuirlos, etc. Consulta la gu\xeda oficial.\n\nCon toda la flexibilidad que ofrece bmx7 ya tenemos construida una peque\xf1a red en malla :)\n\n \n1. An evaluation of BMX6 for Community Wireless Networks\n2. Securely-Entrusted Multi-Topology Routing for\nCommunity Networks\n', [u'software', u'tutoriales', u'redes_libres'])

]]>
Fotos4 https://rmgss.net/posts/fotos4 https://rmgss.net/posts/fotos4 Mon Jan 22 14:12:54 2018 text/html Rodrigo Garcia fotos (u'\nLa lluvia est\xe1 mojando esta pared y tambi\xe9n la est\xe1 refrescando, s\xf3lo hace falta ver que "vive" en esa pared.\n\npared y agua\n<- Tama\xf1o original\n\npared y agua\n<- Tama\xf1o original\n\n----\n\nEsta mosca tambi\xe9n quiere n\xe9ctar.\n\nmosca en flores 1\n<- Tama\xf1o original\n\nmosca en flores 2\n<- Tama\xf1o original\n\n----\n\nEstas plantas con espinos siempre me han llamado la atenci\xf3n por que les toma tiempo crecer, un tiempo en el que pueden sobrevivir sequ\xedas, llenarse de espinos y crear jugosos frutos... tunas.\n\nplanta de cerca 4\n<- Tama\xf1o original\n\ntunas 1\n<- Tama\xf1o original\n\ntunas 2\n<- Tama\xf1o original\n\n', [u'fotos'])

]]>
Navidad 2017 https://rmgss.net/posts/navidad-2017 https://rmgss.net/posts/navidad-2017 Sat Dec 30 02:44:26 2017 text/html Rodrigo Garcia reflexión , navidad (u'\nNuevamente el tema de navidad esta vez con nuevas cosas que he llegado a percibir de esta celebraci\xf3n.\n\nnavidad 2017\n\nEs como una actualizaci\xf3n de la reflexi\xf3n de Navidad 2016.\n\n \nCiertamente cuando ni\xf1o uno espera con ansias esta fecha, el gusto de recibir regalos y compartir una cena diferente al resto de las cenas en todo el a\xf1o. A medida que se adquiere el gusto se hace una costumbre y aunque los modos de celebrarla pueden haber cambiado, la navidad siempre parece centrarse en la familia.\n\nNo he percibido que el h\xe1bito de consumir en estas fechas haya cambiado mucho, incluso he visto que ha disminuido un poco :) al menos en mi entorno. Sin embargo, aunque no parezca esta reflexi\xf3n no va a ser una dura cr\xedtica como esta que podr\xeda ser necesaria para empezar a reflexionar o recordar hacerlo nuevamente.\n\n \nHasta una celebraci\xf3n y cena tranquila puede hacerse aburrida en especial cuando se olvidan las razones para celebrarla, cuando los miembros de la familia est\xe1n atravesando una situaci\xf3n dificil. En ese momento es f\xe1cil empezar a cuestionar la verdadera uni\xf3n familiar ya que esta ocasi\xf3n parece ser perfecta para ver una familia unida y alegre, pero en cambio se tiene una cena casi silenciosa y casi vac\xeda del "esp\xedritu navide\xf1o".\n\nNo recuerdo recibir una explicaci\xf3n sobre a que se refiere el "esp\xedritu navide\xf1o" m\xe1s all\xe1 de la explicaci\xf3n que dan las pel\xedculas que aluden a Papanoel, renos y duendes. Todos esos personajes creados y promovidos principalmente por una "cultura occidentalizada" quiz\xe1s para mostrar a la gente como normales los h\xe1bitos que se promueven en estas fiestas de fin de a\xf1o.\n\nComo en general las personas estamos tan ocupadas y distra\xeddas en estas fechas, cuesta percibir que algo le hace falta a la navidad y las fiestas de fin de a\xf1o m\xe1s all\xe1 que solo querer seguir celebrando.\n\n \nCuando ya se percibe que algo falta o se ha perdido se puede empezar una aventura por recuperarlo.\n\nEl hecho que la cena navide\xf1a en familia no sea como fue antes indica que hay cosas que han cambiado y deben cambiar, que hay que ver mas all\xe1 de la comida o regalos y reflexionar sobre uno mismo y los miembros de la familia.\n\nA veces no se puede evitar lamentar lo que no hemos valorado y se ha perido pero ahora --si s\xf3lo lamentamos que hemos perdido algo, no lo recuperaremos y en el descuido podr\xedamos perder mucho m\xe1s, entonces esta es una oportunidad para cambiar de actitud y buscar algo bueno para llenar ese vac\xedo.\n\n \nEn navidad tambi\xe9n se recuerda el nacimiento de Jesucristo y una fiesta religiosa para que los ni\xf1os y ni\xf1as crezcan con valores espirituales, es mejor que inculcarles una necesidad de consumo desmedida. La familia es una uni\xf3n que se manifiesta a diario y vale m\xe1s que una cena y lo que se tenga para comer o los regalos de ese d\xeda.\n\nAl empezar un a\xf1o nuevo hay muchos deseos y esperanza, es una buena oportunidad para recordar las cosas buenas que hemos hecho y recibido, recordar nuestros errores y el por qu\xe9 los hemos cometido, recordar a quienes hemos lastimado incluso sin desearlo y ver la forma de remediarlo y sobre todo no volver a hacerlo.\n\nToda esta reflexi\xf3n es desde el punto de vista de una persona que vive en familia y \xbfQu\xe9 hay de quienes no tienen algo que celebrar en estas fiestas de fin de a\xf1o?.\n\nHay muchas cosas negativas en navidad mucho que se va perdiendo con cada a\xf1o, las fiestas de fin de a\xf1o parecen cada vez m\xe1s un instrumento de distracci\xf3n y seducci\xf3n que hacen a la gente valorar cosas materiales y olvidar el costo de tenerlas o creer tenerlas, muchas cosas nuevas vienen y parecen llevarnos a un futuro gris e ins\xedpido en especial para las personas en situaci\xf3n dif\xedcil. Pero en medio de todo esto al final lo que hagamos ser\xe1 lo que decida el sentido que tendr\xe1n las fiestas de fin de a\xf1o y todo el resto del a\xf1o.\n\nplanta_rincon 2\n<--Tama\xf1o original\n\n"No pienso en todas las desgracias, sino en toda la belleza que a\xfan permanece."\n\nAna Frank\n\n', [u'reflexi\xf3n', u'navidad'])

]]>
Construyendo Babeld para enrutadores https://rmgss.net/posts/construyendo-Babeld-para-enrutadores https://rmgss.net/posts/construyendo-Babeld-para-enrutadores Tue Nov 28 00:10:00 2017 text/html Rodrigo Garcia proyectos , software , tutoriales (u'\nAqu\xed se muestra una manera de construir el programa Babeld mediante compilaci\xf3n cruzada para enrutadores con el sistema operativo LEDE. \n\nterm.png Babeld que es una implementaci\xf3n del protocolo de enrutamiento Babel escrito en lenguage C, se utliza frecuentemente en enrutadores de redes inl\xe1mbricas en malla que crecen y se gestionan autom\xe1ticamente.\n\nContenido:\n\n Como construir programa Babeld para enrutadores de la rama ar71xx que tengan el sistema operativo LEDE por ejemplo para el enrutador TL-MR3020 o TL-MR3040.\n\n Como construir Babeld-lor para enrutadores de la rama ar71xx, Babeld-lor que es una implementaci\xf3n de un m\xe9todo de autenticaci\xf3n para el protocolo Babel que he estado probando y desarrollando.\n\n \nPara poder obtener el ejecutable de Babeld (construirlo) y que se pueda ejecutar en un enrutador b\xe1sicamente se necesita:\n\n Compilador cruzado Cross compiler de lenguage C.\n Enlazador, bibliotecas y otros utilitarios para lenguage C.\n\n \nComo queremos que el programa se ejecute en un enrutador TL-MR3020, primero debemos obtener el compilador cruzado apropiado. Dentro del Sistema operativo LEDE u Openwrt, el TL-MR3020 esta dentro de la rama objetivo ar71xx.\n\n \nLa primera forma de obtener el cross compiler es descarg\xe1ndolo del repositorio oficial, el proyecto LEDE mantiene un SDK.\n\nEn https://downloads.lede-project.org/releases/17.01.4/targets/ar71xx/generic/ deber\xeda haber un archivo que contenga sdk por ejemplo: lede-sdk-17.01.4-ar71xx-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz.\n\nEn la wiki de LEDE se describe mejor el SDK, b\xe1sicamente es una cadena de herramientas (toolchain) para hacer compilaci\xf3n cruzada y construir programas para una determinada plataforma objetivo (en nuestro caso ar71xx).\n\nLuego debemos descomprimir este archivo, que contiene el toolchain que necesitamos.\n\n \nSi lo que quieres es construir todo incluyendo el SDK, puedes usar Build root. El proceso de construcci\xf3n lo he descrito en el post: Construir firmware para enrutadores con Buildroot, no olvides marcar la opci\xf3n: Build the ... SDK.\n\nUna vez termine el largo proceso de construcci\xf3n, hay que ubicarse en bin/targets/ar71xx/generic donde deber\xeda estar un archivo comprimido con el SDK reci\xe9n construido.\n\n--> En general, es preferible usar la primera forma y s\xf3lo descargar el SDK precompilado desde el repositorio oficial de LEDE.\n\n \nEl c\xf3digo fuente de Babeld se puede obtener desde https://www.irif.fr/~jch/software/files/babeld-1.8.0.tar.gz o descargando la versi\xf3n de desarrollo con:\n\n git clone git://github.com/jech/babeld.git\n\nCon todo lo necesario, ya podemos empezar a construir Babeld.\n\n<hr id="Babeld">\n \nPrimero como en todo programa nos ubicamos en el directorio ra\xedz del c\xf3digo fuente, luego de clonar u obtener Babeld en el directorio ra\xedz existe un archivo Makefile, con instrucciones b\xe1sicas para la construcci\xf3n del programa.\n\nEn el Makefile, la regla con la instrucci\xf3n de compilaci\xf3n:\n\n babeld: $(OBJS)\n $(CC) $(CFLAGS) $(LDFLAGS) -o babeld $(OBJS) $(LDLIBS)\n\nAh\xed la variable $(CC) es la que se puede reemplazar para que se utilice el compilador cruzado del SDK de LEDE.\n\nBabeld no utiliza bibliotecas adicionales y todas las necesarias (libc) vienen en el SDK asi que para construirlo solamente apuntamos al compilador cruzado del SDK que tenemos, esto se hace con el comando:\n\nmake CC=/ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-musl-gcc PLATFORM_DEFINES=\&#39;-march=mips32\&#39;\n\nLa parte que dice /ubicacion/del/SKD/ apunta a la ubicaci\xf3n en nuestro compuador donde descomprimimos el SDK, ah\xed dentro esta staging_dir/ y ah\xed deber\xeda estar el toolchain para la arquitectura, en este caso mips_24kc.\n\nPara comprobar que en este directorio se encuentra el compilador cruzado:\n\n :::bash\n ./ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-gcc --version\n\nUsaremos el compilador gcc-5.4.0 cuyo archivo ejecutable es mips-openwrt-linux-gcc y si en la pantalla aparece un mensaje con la version 5.4.0 el archivo es correcto, por ejemplo:\n\n mips-openwrt-linux-gcc (LEDE GCC 5.4.0 r3664-4124847) 5.4.0\n\nAhora, construimos con:\n\n :::bash\n make CC=/ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-musl-gcc \\n\tPLATFORM_DEFINES=\'-march=mips32\'\n\nEl proceso deber\xeda terminar r\xe1pidamente y deber\xeda haber un archivo ejecutable con nombre babeld. Este archivo se puede ejecutar en un enrutador con LEDE, para comprobar que la arquitectura objetivo del ejecutable es correcta usamos:\n\n :::bash\n file babeld\n\nQue deber\xeda mostrar:\n\n :::bash\n babeld: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked, interpreter /lib/ld-musl-mips-sf.so.1, not stripped\n\nAhora solo hace falta probarlo copiando el archivo babeld al enrutador digamos en el directorio /tmp/ y luego ejecutarlo con:\n\n ./babeld\n\n--> De esta forma hemos usado el compilador cruzado directamente para construir desde el c\xf3digo fuente, de forma similar se construyen programas para los enrutadores y cada programa puede tener sus necesidades espec\xedficas. Pero con esto podr\xedamos modificar el c\xf3digo de Babeld y probar estos cambios directamente en el enrutador.\n\n<hr id="Babeld-lor">\n \nAhora podemos usar el SDK para construir una versi\xf3n modificada de Babeld llamada Babeld-lor, esta versi\xf3n en desarrollo pretende implementar un m\xe9todo de autenticaci\xf3n en el protocolo Babel para protegerlo contra ataques de suplantaci\xf3n de identidad.\n\n \nBabeld-lor utiliza descifrado RSA y una clave p\xfablica RSA generada por una entidad central para autenticaci\xf3n, por eso es necesario copiar o tener instalada la biblioteca mbedtls en el enrutador.\n\nUna forma sencilla de instalarla es mediante el mediante manejador de paquetes de LEDE, en el enrutador:\n\n opkg install libmbedtls\n\nPara m\xe1s detalles sobre esta biblioteca revisa este post como construir mbedtls.\n\n \nSe puede copiar a la partici\xf3n /tmp los archivos necesarios para la biblioteca mbedtls. El siguiente procedimiento es una soluci\xf3n temporal y cada que el enrutador se reinicie se debe volver a repetir cierta parte.\n\n :::bash\n # Conect\xe1ndose al enrutador que digamos tiene la IP: 192.168.1.1\n ssh root@192.168.1.1\n\t# una vez dentro el enrutador\n ### obteniendo mbdetls \n cd /tmp/\n wget https://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/base/libmbedtls_2.6.0-1_mips_24kc.ipk\n mv libmbedtls_2.6.0-1_mips_24kc.ipk libmbedtls_2.6.0-1_mips_24kc.tar.gz\n tar -zxvf libmbedtls_2.6.0-1_mips_24kc.tar.gz\n tar -zxvf data.tar.gz\n cd usr/lib\n\tmkdir /tmp/mbedtls\n cp libmbedcrypto.so.0 libmbedtls.so.10 libmbedx509.so.0 /tmp/mbedtls\n ######\n # creando un enlace simbolico para que el sistema apunte a los archivos correctos\n cd /usr/lib\n ln -s /usr/lib/libmbedcrypto.so /tmp/mbedtls/libmbedcrypto.so.0\n ln -s /usr/lib/libmbedtls.so /tmp/mbedtls/libmbedtls.so.10\n ln -s /usr/lib/libmbedx509.so /tmp/mbedtls/libmbedx509.so.0\n\nAhora la biblioteca libmbedtls esta instalada temporalmente en el sistema, pero al apagar el equipo la partici\xf3n temporal /tmp se vaciar\xe1 y tiene que repetir la parte que dice "### obteniendo mbdtls".\n\n \nComo Babeld-lor utiliza una clave p\xfablica RSA de una entidad central, es necesario que el enrutador la tenga para poder descifrar las actualizaciones de rutas y autenticarlas. Tambi\xe9n, se requiere que cada enrutador cuente con un conjunto de tokens de autenticaci\xf3n.\n\n \nPrimero se debe crear el par de claves p\xfablica y privada y lo podr\xedamos hacer en nuestra computadora, esta clave debe ser creada con la biblioteca mbedtls, una forma r\xe1pida de construir mbedtls est\xe1 la secci\xf3n "construyendo mbedtls" del post: probando mbedtls\n\nUna vez lo tengamos, en el directorio del c\xf3digo fuente de mbedtls:\n\n cd programs/pkey\n ./gen_key\n\nQue generar\xe1 el par de claves de la entidad central.\n\nAhora podemos utilizar este script para generar tokens cifrados para direcciones IP dadas:\n\n :::bash\n DIR_BASE=$PWD\n DIR_RSA=/Ruta/donde/esta/mbedtls-2.4.2/programs/pkey # modificar esto segun convenga\n ARCH_TOKEN=$DIR_RSA/result-enc.txt\n DIR_DEST=$DIR_BASE/tokens\n PREFIJO=$1\n \n echo "preparando para prefijo $PREFIJO"\n \n if [ ! -e tokens ]\n then\n mkdir tokens\n fi\n \n if [ -e $DIR_DEST/$PREFIJO.ctxt ]\n then\n echo "borrando tokens/$PREFIJO.ctxt"\n rm $DIR_DEST/$PREFIJO.ctxt\n fi\n \n for((i=0;i<100;i++))\n do\n B=$(head -c 19 /dev/urandom | sha1sum | head -c 6 | tr "[a-z]" "[0-9]")\n if [ $i -lt "10" ]\n then\n CAD=$PREFIJO""$B"0"$i\n else\n CAD=$PREFIJO""$B$i\n fi\n \n echo "mensaje: $CAD"\n \n # cifrando\n cd $DIR_RSA\n ./rsa_encrypt_con_clave_privada $CAD > /dev/null\n #$PPK "$CAD" 2> /dev/null\n TOKEN=$(cat $ARCH_TOKEN | tr -d \' \')\n #echo "TOKEN: $TOKEN"\n # quitando newlines\n while read -r linea\n do\n L=$(echo "$linea"| tr -d \' \' )\n #echo -n "$L"\n echo -n "$L" >> $DIR_DEST/$PREFIJO.txt\n done < $ARCH_TOKEN\n echo >> $DIR_DEST/$PREFIJO.txt\n done\n \n # eliminando ^M\n cat $DIR_DEST/$PREFIJO.txt | tr -d $\'\r\' > $DIR_DEST/$PREFIJO.ctxt\n rm $DIR_DEST/$PREFIJO.txt\n \n cp $DIR_RSA/rsa_pub.txt $DIR_DEST/\n \n echo "Hecho."\n exit 0\n\nGuardamos este script como digamos "gk.sh", ahora creamos los tokens con:\n\n :::bash\n bash gk.sh 192.168.1.1\n\nQue generar\xe1 un total de 100 tokens de autenticaci\xf3n para la direcci\xf3n ip 192.168.1.1 en una carpeta tokens\n\n \nAhora necesitamos descargar el c\xf3digo fuente de Babeld-lor, por ejemplo de la rama de desarrollo forked-updateTLV:\n\n git clone https://notabug.org/strysg/babeld-lor/src/forked-updateTLV\n\nEste repositorio contiene un Makefile para compilar usando mbedtls y un SDK.\n\nTambi\xe9n un script llamado set-up.sh que apunta a un SDK en el directorio actual y como podr\xedamos tener el SDK de LEDE en otro directorio podemos crear un enlace simb\xf3lico al SDK con:\n\n ln -s /ruta/donde/esta-el-SDK/ SDK\n\nEl script set-up.sh extrae la clave p\xfablica, los tokens de autenticaci\xf3n, el ejecutable construido y los copia al enrutador en la carpeta /tmp, no instala Babeld-lor ya que estamos solamente haciendo una prueba.\n\nAntes de ejecutar el script deber\xedamos copiar el contenido de la carpeta tokens donde se generaron las claves de autenticaci\xf3n al directorio donde descargamos Babeld-lor, concretamente en un directorio pruebas/tokens dentro el c\xf3digo fuente de Babeld-lor.\n\nFinalmente para construir babeld-lor usamos:\n\n ./set-up.sh export 192.168.1.1\n\nQue construir\xe1 el programa usando el SDK, y copiar\xe1 lo necesario al enrutador con la direcc\xedon IP 192.168.1.1.\n\nPara probar que esto funciona en el enrutador:\n\n :::bash\n cd /tmp/\n # para que babeld-lor exporte las rutas por la interfaz wifi wlan0\n ./babeld wlan0\n # o si queremos mas verbosidad\n ./babeld -d 2 wlan0\n # Para utlizar el archivo de configuracion por defecto\n ./babeld -c /var/etc/babeld.conf -d 2\n\nSi funciona ahora se puede probar y modificar Babeld-lor a gusto.\n\n', [u'proyectos', u'software', u'tutoriales'])

]]>
Fotos3 https://rmgss.net/posts/fotos3 https://rmgss.net/posts/fotos3 Sun Oct 22 01:12:21 2017 text/html Rodrigo Garcia fotos (u'\nUn acercamiento a plantas en lugares variados, por que un mejor acercamiento revela mejores cosas.\n\nplantas_de_cerca2\n<- Tama\xf1o original\n----\n\nUna filtraci\xf3n, una pared y mas de una cosa brota.\n\nplanta_grieta_1\n<- Tama\xf1o original\n\n----\nplanta_de_cerca3\n<- Tama\xf1o original\n----\nplantas_de_cerca1\n<- Tama\xf1o original\n----\nAh\xed parece que esta tela de ara\xf1a ha contenido la ca\xedda de esa piedra al lado de una cascada, ahora es un lugar confortable para quiensea que la haya hecho su hogar.\n\ntela_y_piedra\n<- Tama\xf1o original\n', [u'fotos'])

]]>
Charla jugando con redireccion en bash https://rmgss.net/posts/charla-jugando-con-redireccion-en-bash https://rmgss.net/posts/charla-jugando-con-redireccion-en-bash Fri Aug 18 06:44:10 2017 text/html Rodrigo Garcia software , tutoriales , bash (u'\nHe propuesto dar esta charla para el Debian Day 2017 en La Paz y este art\xedculo es para quienes no puedan asistir a la charla o quieren revisarla con m\xe1s calma.\n\nMostrar\xe9 las formas en las que he estado jugando con operadores de redireccionamineto y tuber\xedas en bash como interprete de comandos en GNU/Linux. (descargar las diapositivas (155KB))\n\n Brevemente sobre file-descriptors\n Sobre operadores de redirecci\xf3n\n Ejemplos de utilidad\n\n<br id="file-descriptors">\n \nUn programa o comando en GNU/Linux puede hacer muchas cosas y entre estas esta interactuar con otros programas o usuarios extrayendo informaci\xf3n de alg\xfan lugar y tambi\xe9n poner los resultados de lo que hace en otro lugar.\n\nT\xedpicamente el "lugar" desde donde los programas extraen informaci\xf3n es un stream al que se le llama la entrada est\xe1ndar o stdin (que viene de standard input). El lugar hacia donde reportan sus acciones es la salida est\xe1ndar o stdout y donde reportan errores se llama el error est\xe1ndar stderr. Los streams que utilizan los procesos son listados en file-descriptors asociados a cada proceso.\n\nEstos tres streams son los m\xe1s utilizados y estandarizados pero en este sistema operativo se pueden usar otros mas y podr\xedamos utilizarlos como nos convega.\n\nUn descriptor de archivo o file-descriptor es como un indicador que dice los streams que usa un archivo. En sistemas UNIX todo es un archivo, y al estar GNU/Linux basado en UNIX, un proceso tienen una serie de archivos asociados a este que lo describen y ayudan a gestionarlo. (en este https://pastebin.com/raw/PnUj8UPt puedes ver otra descripci\xf3n sencilla sobre file-descriptors)\n\nPor ejemplo podemos ver los archivos asociados un proceso, en este caso el proceso de la terminal que tenemos abierta con:\n\n :::bash\n lsof -p $BASHPID\n\nDonde lsof es un comando que se utiliza para ver los archivos abiertos y con -p $BASHPID filtramos solo los archivos del identificador de proceso (PID) de la misma terminal abierta, en bash la variable $BASHPID es la que alamcena el PID de la terminal abierta, para filtrar solamente los file-descriptors asociados al proceso de la terminal acutal podemos usar:\n\n :::bash\n lsof +f g -ap $BASHPID -d 0,1,2\n\n(Ejemplo extra\xeddo de http://wiki.bash-hackers.org/howto/redirection_tutorial)\n\nEl resultado muestra entre muchas cosas los file descriptros (FD) usados por el proceso con PID 6841:\n\n COMMAND PID USER FD TYPE FILE-FLAG DEVICE SIZE/OFF NODE NAME\n bash 6481 lorilu 0u CHR RW 136,5 0t0 8 /dev/pts/5\n bash 6481 lorilu 1u CHR RW 136,5 0t0 8 /dev/pts/5\n bash 6481 lorilu 2u CHR RW 136,5 0t0 8 /dev/pts/5\n\nEn el caso anterior con -d 0,1,2 filtramos los file descriptors 0,1,2 que se asocian a stdin, stdout y stderr respectivamente ya que:\n\n \n Stream File-descriptor (FD) \n\n stdin (entrada estandar) ---> 0 \n stdout (salida estandar) ---> 1\n stderr (error estandar) ---> 2\n\nSi queremos ver todos los file descriptors asociados a un proceso, podemos listar el contenido del directorio /proc/&lt;PID&gt;/fd, donde &lt;PID&gt; viene a ser el PID del proceso.\n\nLos operadores de redirecci\xf3n entre los que est\xe1n &gt; &gt;&gt; &lt; n&gt;m &amp;&gt; o las tuber\xedas | ayudan a manipular la fuente o destino de informaci\xf3n con la que los programas interact\xfaan y fuer\xf3n programados para brindar un alto nivel de flexiblidad.\n\n<br id="op-redireccion">\n \nComo sabemos que los programas act\xfaan sobre streams definidos por file-descriptors ahora podemos utilizar los operadores de redirecci\xf3n, que est\xe1n brevemente descritos en http://www.catonmat.net/download/bash-redirections-cheat-sheet.pdf\n\n \n comando &gt; archivo\n\nEl operador &gt; redirije el stdout y lo guarda en un archivo.\n\n :::bash\n\t# guarda la salida estandar de cada comando en archivos nuevos\n\tls > lista.txt\n ps -aux --forest > lista_procesos.txt\n\t\nAl usar comando &gt; archivo se debe tener en cuenta que si archivo ya existe su contenido sera reemplazado por la salida est\xe1ndar de comando.\n\n \n comando &gt;&gt; archivo\n\n&gt;&gt; al igual que &gt; redirije el stdout, pero a diferencia de este adiciona el contenido de stdout al archivo y no lo reemplaza.\n\n \n comando &amp;&gt; archivo\n comando &amp;&gt;&gt; archivo\n\nPor defecto redirije la stdout y stderr al archivo, pero puede usarse tambien de otros file-descriptors que veremos mas adelante.\n\n \n comando &lt; archivo\n\nRedirecciona el contenido del archivo a la stdin, si el comando lee la entrada estandar estara en realidad leyendo el contenido del archivo y lo usara como argumento.\n\n \n comando1 | comando2\n\nRedirije stdout del comando1 a stdin y si el comando2 la lee la usara como argumento.\n\n \n comando 2&gt; archivo\n\nFunciona igual que &gt; solo que en este caso 2&gt; redirije el file-descriptor 2 que es stderr al archivo, de hecho se puede usar cualquier file desriptor por ejemplo comando 11&gt; archivo que usara el file-descriptor 11 y lo guardara en archivo. El comportamiento es el mismo con n&gt;&gt;.\n\n \n comando 1&lt; archivo\n\nAl igual que &lt; redirije el contenido de archivo al file-descriptor 1.\n\n \n comando 2&gt;&amp;1\n\nEste operador hace que lo que haya escrito en el file-descriptor 2 (stderr) vaya al file-descriptor 1 (stdout)\n\n \nBash eval\xfaa los operadores de redireccionamiento de izquierda a derecha.\n\nPor ejemplo si queremos guardar en un archivo el error y salida estandar de un comando se hace asi, por ejemplo para ls:\n\n :::bash\n ls algo-que-no-existe > archivo 2>&1\n\nGr\xe1ficamente se puede ver por pasos como funciona esto:\n\nPrimero.- Al evaluar bash &gt; archivo los file-descriptors quedan de esta forma:\n\n File descriptor (FD) Archivo\n \n 0 ---------> /dev/pts/5\n \t 1 ---------> archivo\n \t 2 ---------> /dev/pts/5\n \n Hay que notar que /dev/pts/5 es la terminal y por ende lo esta muestra en la pantalla, se ve que la entrada estandar stdin y stderr apuntan a la terminal actual /dev/pts/5. En cambio stdout est\xe1 apuntando a archivo\n\nLuego.- bash eval\xfaa 2&gt;&amp;1 que hara que los file-descriptors queden de esta forma:\n\n File descriptor (FD) Archivo\n \n 0 ---------> /dev/pts/5\n \t 1 ---------> archivo\n /\n 2 ---\xb4\n\nSe ve que 2&gt;&amp;1 hace que lo que esta en stderr (file descriptor 2) se duplique en 1 (se copie en 1), y antes el file descriptor 1 estaba apuntando a archivo. De esta forma tanto stderr y stdout se guardaran en archivo.\n\nSe puede ver adem\xe1s que bash ejecuta primero los operadores de redirecci\xf3n antes que los comandos.\n\nOtro ejemplo si queremos ver con el comando less el error estandar y la salida estandar de un comando podemos usar lo siguiente:\n\n comando1 2&gt;&amp;1 | less\n\nEsto hace que el stderr vaya hacia stdout y como | redirije stdout al stdin del comando que esta a la derecha, less recibira los dos streams como argumentos.\n\n\n<br id="ejemplos">\n \nEn lo que queda de este tutorial se usar\xe1n ejemplos concretos para algunos operadores de redirecci\xf3n.\n\n \n :::bash\n\t# obtener los 10 procesos que usan mas memoria RAM de todos los usuarios\n\tps aux --sort -rss | head \n\n\t# obtener los 10 procesos que usan mas memoria RAM del usuario \'lorilu\'\n\tps aux --sort -rss | head | grep -E "^lorilu"\n\nEn estos dos primeros ejemplos usamos ps --sort -rss para que ordene los procesos de todos los usuarios por el campo RSS que se refiere a la memoria residente o la cantidad de memoria RAM que ocupa acutalmente un proceso, usamos | para redirigir la stdout de ps a la stdin de head que muestra las 10 primeras l\xedneas. Al agregar | grep -E &#34;^lorilu&#34; hacemos que grep reciba la salida de head y filtre solamente las l\xedneas que empiezan en "lorilu" que es el nombre del usuario de quien buscamos los procesos abiertos, se busca solo en el principio de la l\xednea por que ps pone el nombre del usuario al principio de cada l\xednea.\n\n :::bash\n\t# itera linea por linea en archivo.txt\n\twhile read -r linea \n\tdo\n\t echo "$linea"\n\t # extas ...\n\tdone < archivo.txt\n\nEste script muestra que bash ejecuta primero los operadores de redirecci\xf3n (en este caso &lt;) antes que los comandos. En la parte final del script bash, &lt; archivo.txt hace que stdin apunte al contenido de archivo.txt y esto hace que el bucle while itere sobre el contenido del archivo y haga que read -r lea cada linea y guarde el resultado de cada iteraci\xf3n en la variable linea, echo simplmente muestra la l\xednea actual. Dentro el blucle se pueden poner una cantidad indefinida de comandos para procesar cada l\xednea a conveniencia.\n\n \n :::bash\n\t# renombra los archivos cuyos nombres tienen espacios en blanco y los reemplaza por _\n\tfor nombre in \n\tdo\n\t nombre_sin_espacios=$(echo $nombre | tr " " "")\n\t\tmv "$nombre" "$nombre_sin_espacios" 2> /dev/null\n\tdone\n\nA veces es problem\xe1tico tener archivos con nombres con espacios en blanco como "archivo numero 1" lo que hace el script anterior es renombrarlo como "archivo_numero_1".\n\nEl bucle for actua iterando en * que coincide con cualquier archivo dentro el directorio actual y guardando cada nombre de archivo en nombre en cada iteraci\xf3n. Luego echo $nombre | tr &#34; &#34; &#34;_&#34; hace que tr reemplaze cualquier caracter " " por "" y la salida de esto se guarda en la variable nombre_sin_espacios.\n\nLuego se usa mv &#34;$nombre&#34; &#34;$nombre_sin_espacios&#34; para renombrar el archivo por su "equivalente" sin espacios en blanco.\n\nLa parte 2&gt; /dev/null es opcional ya que para el caso en que los archivos no tengan nombres con espacios en blanco, mv mostrar\xe1 un error ya que los archivos son del mismo nombre y no pueden renombrarse, ese error va hacia stderr y se mostrar\xeda en pantalla si no fuese por 2&gt; /dev/null que pone stderr en /dev/null haciendo que se pierda y no se muestre en pantalla los errores producidos por mv, esto es es como silenciar los errores.\n\n \n :::bash\n\t# Cifra una carpeta con la clave "123456" comprimiendola primero\n\ttar -cf - carpeta/ | gpg --symmetric --no-use-agent --passphrase "123456" > carpeta.gpg\n\nEl comando tar puede comprimir archivos o carpetas pero requiere escribir el resultado en algun lugar por ejemplo tar -cf carpeta.tar.gz carpeta/ lo guarda en el archivo carpeta.tar.gz. En este caso para enviar su salida directamente a otro programa se usa tar - donde - es una opci\xf3n de tar para enviar el resultado a stdout (salida est\xe1ndar).\n\nLuego a medida que la carpeta se va comprimiendo, mediante | se env\xeda el resultado a gpg --symmetric que cifrar\xe1 lo que lea de stdin y con &gt; carpeta.gpg se guarda la salida est\xe1ndard (stdout) en el archivo carpeta.gpg. Las opciones -no-use-agent --passphrase &#34;123456&#34; son para indicarle a gpg que no le pida al usuario ingresar la clave mediante teclado y en lugar de eso utilice "123456" para cifrar el mensaje.\n\n \n :::bash\n\t# Enviar una carpeta al servidor algo.com a medida que es comprimida\n\t# primero se requiere que en el servidor algo.com se tenga un puerto escuchando\n\t# el trafico en un puerto dado para recibir el contenido enviado\n\n # En el servidor\n\tnc -l -p 5151 | tar -C . -xvf -\n\nPrimero en el servidor "algo.com" abrimos el puerto 5151 haciendo que nc (netcat) escuche el tr\xe1fico en este puerto. nc enviara a stdout el tr\xe1fico que reciba satisfactoriamente y con | hacemos que tar -xvf - descomprima lo que reciba en stdin y lo guarde en el directorio actual con las opciones -C .\n\n :::bash\n # En el cliente (la maquina que envia la carpeta)\n\ttar -cf - carpeta/ | nc -q 0 algo.com 5151\n\nComo el servidor esta escuchando el tr\xe1fico en el puerto 5151, usamos tar -cf - carpeta/ para comprimir la carpeta y enviar el resultado a stdout. Con | lo redirijimos al stdin de nc algo.com 5151 que env\xeda lo que lea del stdin al servidor algo.com por el puerto 5151. La opci\xf3n -q 0 de netcat hace que cuando se detecte EOF (fin de archivo) de la entrada est\xe1ndard al cabo de 0 segundos se cierre el programa.\n\nDe esta forma se puede enviar un archivo mediante TCP a medida que es comprimido y al llegar al servidor se ira descomprimiendo, se puede obviamente combinar esto con otros comandos para por ejemplo cifrar el contenido o analizar el env\xedo en tiempo real.\n\n \n :::bash\n\t# convertir una secuencia de imagenes .jpg en un archivo pdf ordenando alfabeticamente\n\tls .jpg | sort -n | tr \'\n\' \' \' | sed \'s/$/\ doc.pdf/\' | xargs convert - doc.pdf\n\nSoluci\xf3n extra\xedda de este hilo en stack-overflow\n\nCon ls *.jpg listamos todos los archivos de imagen .jpg, luego sort -n los ordena alfab\xe9ticamente, la lista ordenada la recibe tr \&#39;\\n\&#39; \&#39; \&#39; que reemplaza los saltos de l\xednea \\n por espacios en blanco , despu\xe9s sed \&#39;s/$/\\ mydoc.pdf/\&#39; agrega al final de la l\xednea un espacio en blanco " " y la cadena "doc.pdf" esto por que el comando convert requiere recibir las imagenes seguido del nombre del archivo pdf que crear\xe1 a partir de los archivos de im\xe1genes que le preceden.\n\nFinalmente mediante | xargs convert - doc.pdf se hacen varias cosas, primero el comando xargs se utiliza para pasarle como lista de argumentos la salida stdout* de lo que esta a la izquierda de | al comando que esta a la derecha, en este caso es convert - doc.pdf que tomar\xe1 los nombres de los archivos de imagen y a partir de estos crear\xe1 el archivo doc.pdf.\n\nEsto es \xfatil cuando se requiren hacer reportes r\xe1pidos en pdf de una lista larga de im\xe1genes.\n\n--> Espero este peque\xf1o compendio de utilidades te haya servido y tratar\xe9 de reunir m\xe1s pronto. Si tienes sugerencias u observaciones ponte en contacto\n\n \n * http://www.catonmat.net/download/bash-redirections-cheat-sheet.pdf (Tabla de referencia r\xe1pida sobre operadores de redirecci\xf3n)\n * http://wiki.bash-hackers.org/howto/redirection_tutorial (Tutorial extenso sobre redirecci\xf3n en bash)\n * https://www.gnu.org/software/bash/manual/html_node/Redirections.html (Manual de referencia sobre redirecciones en bash)\n\n', [u'software', u'tutoriales', u'bash'])

]]>
Nodo ayma LaOtraRed https://rmgss.net/posts/nodo-ayma-LaOtraRed https://rmgss.net/posts/nodo-ayma-LaOtraRed Mon Jul 17 15:08:05 2017 text/html Rodrigo Garcia LaOtraRed , redes_libres , reseña (u'\nDesde ayer 15 de Julio, hay un nuevo nodo en LaOtraRed\n\nrouter\nver m\xe1s grande\n\nAymatha ha bautizado a su nodo como Ayma que seg\xfan me dijo hace referencia al respeto, pero va m\xe1s all\xe1 por que se relaciona con darle el cari\xf1o, valorar, corresponder, esforzarse. El t\xe9rmino es dif\xedcil traducirlo directamente, se relaciona m\xe1s con el aprender a vivir con los dem\xe1s respetando y haciendo que te respeten.\n\n \nNos encontramos a las 10:00 en casa de Luis Mita para recoger una computadora con Debian 9 que ha donado para utilizarla como servidor.\n\nLa computadora que Luis don\xf3, tiene un CPU pentium IV con algo de RAM (si mal no recuerdo 1 o 2 GB) y como 250 GB de HDD. Estas son las caracter\xedsticas usuales de computadoras en desuso, a pesar de sus a\xf1os este tipo de computadoras pueden aprovecharse para brindar servicios libres.\n\nTambi\xe9n recogimos dos enrutadores WiFi de 2.4 Ghz para servir como puntos de conexi\xf3n para usuarios de la red. A este tipo de enrutadores les solemos llamar "APs abiertos", que viene de Access Points o puntos de acceso abiertos y son enrutadores con el sistema operativo LEDE que emiten se\xf1al wifi en 2.4Ghz para que cualquier persona se conecte y use los servicios de la red libremente.\n\nYa ten\xedamos cables de red que sobrar\xf3n de otras instalaciones que intentamos hacer y r\xe1pidamente nos fuimos a casa de Aymatha.\n\n \nNormalmente en la instalaci\xf3n de nuevos nodos, nos toma tiempo considerable asegurar las antenas, apuntarlas y hacer el cableado. En el caso de este nodo no fue as\xed, no tardamos ni 20 minutos en hacer todo eso, pero el trabajo que no hicimos acomodando antenas lo pasamos configurando los servicios del nodo.\n\nNos repartimos tareas; Luis se encargaba de configurar los enrutadores y la red interna del nodo, yo montaba los servicios del nodo en la computadora y Aymatha estaba aprendiendo con nostros.\n\n \nEmpec\xe9 con la wikipedia en castellano y tom\xf3 como unos 20 minutos, luego con Aymatha hicimos la p\xe1gina de bienvenida que luce as\xed:\n\nsplash\n\nLuego empec\xe9 a configurar una radio v\xeda wifi de manera similar a la radio que configur\xe9 en el nodo Chersky usando icecast2 como servidor de streaming y ices2 como el cliente para icecast2. (aqu\xed algunos servicios que solemos montar).\n\nEn esto tuve dificultades y estuve como 2 horas tratando de hacer funcionar la radio correctamente, pero el problema surg\xedo al tratar de automatizar el funcionamiento del servicio ices2 al iniciar el sistema. Al principio le estaba echando la culpa a systemd y cre\xeda que por alguna raz\xf3n no se llevaba bien con ices2 ya que la radio no se iniciaba autom\xe1ticamente.\n\nPara ganar tiempo, tuve que pedirle a Luis que deje de hacer lo que estaba haciendo y que instal\xe9 y configure un botadero para compartir archivos. Esperaba que mientras hac\xeda eso yo pudiese al fin corregir el problema con ices2.\n\nAl cabo de unos 15 minutos el botadero ya estaba listo y la radio segu\xeda sin iniciarse autom\xe1ticamente. Pens\xe9 en que el problema era systemd y hice un min\xfasculo script bash para iniciar ices2 al estilo SysV, similar a este:\n\n :::bash\n #!/bin/bash\n\n cd /srv/Musica\n\tfind /srv/Musica/ | grep ".ogg" > lista.txt\n\tices2 confs.xml # confs extraia la lista de reproduccion de lista.txt\n\n exit 0\n\nAl ejecutar el script la radio funcionaba bien, pero no funcionaba autom\xe1ticamente al iniciar el sistema.\n\nPara no perder m\xe1s tiempo Luis tuvo que echarme una mano y v\xedo que systemd no era el culpable si no que ices2 y icecast2 no se sincronizaban correctamente al iniciar el sistema. Despu\xe9s de muchas pruebas finalmente se corrig\xedo el error con la siguiente configuraci\xf3n en un archivo; /etc/systemd/system/ices2.service\n\n [Unit]\n Description=ices2 deamon\n\t# La siguiente linea corrige el problema\n After=icecast2.service\n \n [Service]\n User=www-data\n Group=www-data\n WorkingDirectory=/usr/share/bin\n ExecStart=ices2 /srv/Musica/confs.xml\n \n [Install]\n WantedBy=multi-user.target\n\nCon eso la radio tocaba los m\xe1s de 40 GB de m\xfasica que Aymatha hab\xeda seleccionado para que lo escuchen las personas que se conecten a su se\xf1al wifi.\n\nAl final el nodo termin\xf3 con los siguientes servicios:\n\n * Wikipedia en castellano\n * Radio ayma\n * Botadero para compartir archivos\n * P\xe1gina de bienvenida\n\n \nEste nodo se encuentra en la parte baja de la zona Sagrado Coraz\xf3n de Jes\xfas de la ciudad de La Paz, no esta enlazado todav\xeda con otro nodo pero esperamos lo podamos hacer pronto. Casi al finalizar la tarde Aymatha estuvo muy contento al terminar de acomodar el router que reparte la se\xf1al abierta y la computadora que da los servicios mencionados.\n\n<img src="/static/imgs/posts/aymaRouter.jpeg" width="398" height="229"><br>\nUna foto tomada por Aymatha del enrutador compartiendo la se\xf1al de wifi de su nodo.\n\nEsperamos que dentro de poco se unan m\xe1s nodos a LaOtraRed, necesitamos aportes y asegurar m\xe1s nodos para hacer crecer la red libre. Ponte en contacto si deseas colaborar.\n\n', [u'LaOtraRed', u'redes_libres', u'rese\xf1a'])

]]>
Fotos2 https://rmgss.net/posts/fotos2 https://rmgss.net/posts/fotos2 Mon Jun 5 00:40:51 2017 text/html Rodrigo Garcia fotos (u'\nParece van a entrar a clases o est\xe1n en descanso, todos mirando una pantalla y la mayor\xeda la de un celular.\n\numsa_infor 2\n<- Tama\xf1o original\n\nLlama mucho la atenci\xf3n que los estudiantes en el s\xf3tano de la carrera de inform\xe1tica de la UMSA, prefieran interactuar entre s\xed a trav\xe9s de una pantalla.\n\numsa_informatica1\n\n----\nCasas encima de la avenida perif\xe9rica en La Paz.\nencima avenida perif\xe9rica\n<- Tama\xf1o original\n----\n\nEsas plantas que viven ah\xed, parece estar\xedan contemplando la vista o fuesen testigos de una mezcla de edificios, calles, casas, flora y fauna que crece en el primer rinc\xf3n donde se pueda. Es una mezcla de eso y mucho m\xe1s que no se alcanza a ver.\n\nplanta testigo 1\n<- Tama\xf1o original\n\n', [u'fotos'])

]]>
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 Thu May 18 13:37:15 2017 text/html Rodrigo Garcia reseña , reflexión (u'\nEl N\xfacleo GNU/Linux de la carrera de inform\xe1tica de la UMSA, es un grupo de estudios de software libre organizado y gestionado por estudiantes.\n\nN\xfacleo GNU/Linux\n\nLogo del N\xfacleo GNU/Linux de 2014 a 2016 (por Ruth Margarita Garc\xeda Lopez).\n\nCon alegr\xeda veo sus progresos estudiando, promocionando y desarrollando software libre, uno de los \xfaltimos eventos que han realizado son las charlas pre-flisol para el FLISOL 2017 en La Paz Bolivia. Fuer\xf3n 3 d\xedas 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\xf3n voy a hacer una peque\xf1a rese\xf1a seg\xfan lo que se de la historia del grupo.\n\n \nGabriel Condori Cortes fue el primer organizador que se aventur\xf3 a formar el grupo de estudio junto con Hardy Beltr\xe1n y un gran apoyo de la comunidad de software libre en Bolivia.\n\nLlevar\xf3n el reto de formar un grupo de estudio de software libre en una carrera plagada de ense\xf1anza en software privativo, pero era un reto que deb\xeda 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\xe1tica 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\xedas s\xe1bados con la participaci\xf3n de estudiantes y docentes de la carrera y culmin\xf3 a fines de Junio de 2013.\n\nEn esa \xe9poca el grupo se donominaba "N\xfacleo Linux".\n\n \nJunto con el N\xfacleo Linux se formar\xf3n otros grupos de estudio en la carrera de inform\xe1tica de la UMSA, entre ellos el grupo de estudios Android (el m\xe1s 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\xf3 en el hacklab \u201cr00thouse\u201d en la ciudad de La Paz, se manten\xeda la din\xe1mica de un curso con temario definido en la wiki del r00thouse.\n\nMucha gente aport\xf3 y yo era parte, recuerdo a los chicos y chicas del r00thouse, de la sociedad cient\xedfica de la facultad de ciencias puras y naturales como Erick G\xf3mez, Javier Zelada, y miembros de la comunidad de software libre Bolivia como Reynaldo Condori.\n\nRecuerdo no ten\xedamos un logo y Ruth Garc\xeda hizo uno que ahora aparece en la galer\xeda de arte del proyecto GNU, es la misma imagen que esta en la cabeza de este post.\n\nA partir de esa gest\xedon comenz\xf3 a llamarse "N\xfacleo GNU/Linux", pero el curso termin\xf3 con unos 5 a 10 estudiantes en las \xfaltimas clases, era claro que los otros grupos de estudio nos llevaban la delantera en cuanto a cantidad de estudiantes.\n\n \nEn 2015 hubier\xf3n pocas personas con posiblidades de organizar el n\xfacleo por lo que me hice cargo, trat\xe9 de enfocar los cursos del grupo como clases introductorias a los aspectos t\xe9cnicos del S.O. GNU/Linux y por su puesto a la filosof\xeda.\n\nDicte el curso con la ayuda de Armin Mesa y Franklin Torrez del r00thouse a pesar de que yo tambi\xe9n estaba emepezando en el mundo del software libre, el curso se llevaba a cabo todos los s\xe1bados a las 10:00 am en el laboratorio prestado de telem\xe1tica de la carrera de inform\xe1tica.\n\nRecuerdo dictamos un total de 14 sesiones y el n\xfamero de asistentes al final del curso era de aproximadamente 5, lo que me caus\xf3 preocupaci\xf3n ya que otros grupos de estudio como el de Android o Microsoft en la UMSA ten\xeda tranquilamente unos 20 estudiantes activos.\n\nEl n\xfacleo tambi\xe9n apoyaba la organizaci\xf3n de eventos como el FLISOL y la semana del ping\xfcino, y gracias a un mensaje que nos envi\xf3 Richard Stallman noz hizo notar que no se pod\xeda excluir al \xd1u de GNU al hablar de software libre, paso a llamarse la semana del \xd1u y del ping\xfcino.\n\nPero el n\xfamero 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\xfacleo y cambiamos el tiempo de duraci\xf3n 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\xfamero de asistentes al final no superaba los 5 nuevamente.\n\nProbablemente por el horario nocturno donde los estudiantes en su mayor\xeda est\xe1bamos cansados o por que el aula que nos prestar\xf3n contaba con m\xe1quinas con capacidades muy limitadas (pentium III y IV) y sin conexi\xf3n a internet, es por que el curso no alcanz\xf3 un n\xfamero mayor de asistentes. El aula era tan peque\xf1a que a lo sumo entraban 10 computadoras y una pizarra. Entre los estudiantes lo llam\xe1bamos "el labo patito", yo cre\xeda que era por su tama\xf1o 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\xed, el nombre al parecer viene del juez patito que usa ese grupo de estudios. Luego convirtier\xf3n el "labo patito" en un ba\xf1o para los administrativos le quitar\xf3n las m\xe1quinas para que posteriormente se mudara a otro lugar casi igual de peque\xf1o y lo sigue utilizando el grupo de la ACM as\xed sin computadoras.\n\nEl n\xfacleo GNU/Linux no ten\xeda ning\xfan ambiente exclusivo, tan s\xf3lo nos prestaban el laboratorio de telem\xe1tica a menudo a cambio de hacerle mantenimiento a los programas necesarios para la materia de telem\xe1tica 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\xe1quinas con Debian 7 y 8 en mas de 60 m\xe1quinas de la carrera.\n\nA pesar de las dificultades, continuamos con el n\xfacleo y conoc\xed 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\xeda seguir a la cabeza del n\xfacleo ya que no estaba teniendo mucho \xe9xito en cuanto al n\xfamero de asistentes como cre\xed se necesitaba en la carrera de inform\xe1tica. Por fortuna, Alejandro Quisbert (Alexandro) un estudiante que nunca hab\xeda asistido a ning\xfan curso del n\xfacleo que organiz\xe1bamos acept\xf3 el reto de organizar el n\xfacleo, Alejandro tamb\xeden asist\xeda al r00thouse y aprendi\xf3 y adopt\xf3 r\xe1pidamente GNU/Linux.\n\nAlejandro junto con Sam, Lupe y los dem\xe1s miembros del n\xfacleo han conseguido expandirlo m\xe1s all\xe1 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\xe1tica de la UMSA. Est\xe1n trabajando muy duro y aunque siguen sin un ambiente exclusivo en la carrera y ayudando en el mantenimiento de los laboratorios, est\xe1n llevando el n\xfacleo 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\xe1tica y a la sociedad al mostrar nuevos horizontes en cuanto al desarrollo de software y tecnolog\xeda.\n\nHasta ahora el n\xfacleo GNU/Linux en la UMSA sale del t\xedpico esquema que dice: "Hay que producir software para incrementar ganacias monetarias, lo dem\xe1s es secundario" o el t\xedpico: "La demanda del mercado es lo que m\xe1s 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\xf3n universitaria en la mayor\xeda de las materias y actividades en la UMSA.\n\nMe alegra haber sido parte activa del n\xfacleo y aunque cuando yo lo "dirig\xeda" no tuvimos mucho \xe9xito, se que gracias a lo que hicimos el inter\xe9s por el movimiento del sofware libre en la carrera de inform\xe1tica sigu\xedo ah\xed vivo, creciendo y formando una comunidad valiosa.\n\n\n', [u'rese\xf1a', u'reflexi\xf3n'])

]]>
Libro Programming in C https://rmgss.net/posts/libro-Programming-in-C https://rmgss.net/posts/libro-Programming-in-C Mon Apr 3 12:57:52 2017 text/html Rodrigo Garcia descargas , libros , software (u'\ndescargar.png Descargar versi\xf3n offline\n\nAqu\xed comparto una versi\xf3n descargable y offline del libro "Programming in C UNIX System Calls and Subroutines using C" por A. D. Marshall (1999)\n\nLa versi\xf3n online del libro se encuentra en https://users.cs.cf.ac.uk/Dave.Marshall/C/CE.html, sin embargo para los que no tengan internet todo el tiempo y aun as\xed quieran leer el libro de manera c\xf3moda la versi\xf3n offline que pongo les servir\xe1.\n\nSolo hace falta descomprimir el .zip y abrir la p\xe1gina \xednidice que tiene nombre node1.html con un navegador web, desde all\xed se puede revisar todo el contenido.\n\n \n wget -r https://users.cs.cf.ac.uk/Dave.Marshall/C/CE.html\n\nQue descarga recursivamente con una profundidad de hasta 5 y afortunadamente wget tamb\xeden descarga las im\xe1genes del libro, luego hay una carpeta llamda Dave.Marshall y dentro otra C, s\xf3lo he comprimido esa carpeta como .zip\n\nEspero les sirva.\n', [u'descargas', u'libros', u'software'])

]]>
Resistirse a usar ciertos medios comunicacion https://rmgss.net/posts/resistirse-a-usar-ciertos-medios-comunicacion https://rmgss.net/posts/resistirse-a-usar-ciertos-medios-comunicacion Wed Mar 8 11:57:15 2017 text/html Rodrigo Garcia medios_de_comunicación , anonimato , reflexión (u'\n \nAlgunas razones por las que deber\xedamos considerar no utilizar ciertos medios de comunicaci\xf3n masiva por violar la privacidad de sus usuari@s y otras cosas negativas.\n\nTambi\xe9n voy a mencionar algunas alternativas y formas de incentivar, apoyar y desarrollar tecnolog\xedas que se adapten a las necesidades comunicacionales de las personas -- no adapatar las necesidades comunicacionales de las personas a las tecnolog\xedas.\n\n \nEn general de plataformas que funcionan por internet como Facebook, Twitter, Whatsapp, Google+, el motor de b\xfasqueda de google, Telegram y muchos otros m\xe1s.\n\nEsas plataformas tienen la caracter\xedstica de brindar soluciones comunicacionales r\xe1pidas, c\xf3modas y baratas para sus usuari@s, pero las consecuencias que estos \xfaltimos sufren incluso sin saberlo, tiene efectos que pone seriamente en riesgo su anonimato y derecho a la privacidad.\n\nAdem\xe1s generan una costumbre y tendencia a "sacrificar derechos a cambio de comodidades", esto por que los usuarios acostumbran a permitir que estas plataformas y las compa\xf1\xedas detr\xe1s se aprovechen exageradamente su necesidad de comunicaci\xf3n para --imponer condiciones de uso que requieren que los y las usuarias renuncien a ciertos derechos a cambio.\n\nVamos a ver el caso espec\xedfico de algunas plataformas a continuaci\xf3n.\n\n<span id="facebook"></span>\n \nConocida como la "red social" m\xe1s grande del mundo, tiene acumulada tanta informaci\xf3n sobre sus usuarios que le permite generar ganancias con las que ciertos pa\xedses solo pueden fantasear.\n\nPero el hecho de lucrar no le quita lo \xe9tico, sino la forma en que lo hace. Esto dicen en sus t\xe9rminos de servicio actualizados hasta el 28 de diciembre de 2016 :\n\n1. Recopilamos el contenido y otros datos que proporcionas cuando usas nuestros Servicios\n2. Tambi\xe9n recopilamos el contenido y la informaci\xf3n que otras personas proporcionan cuando usan nuestros Servicios y que puede incluir datos sobre ti.\n3. La informaci\xf3n asociada a tu cuenta se conservar\xe1 hasta que la cuenta se elimine, a menos que ya no necesitemos los datos para proporcionar los productos y servicios.\n4. Cuando eliminas tu cuenta, eliminamos el contenido que publicaste, como tus fotos y actualizaciones de estado\n5. Recuerda que la informaci\xf3n que otras personas compartieron acerca de ti no forma parte de tu cuenta y no se retirar\xe1 cuando la elimines.\n\nEsas son algunas oraciones escritas en los t\xe9rminos de servicio de Facebook, y es lo que Facebook dice hacer con los datos de sus usuarios.\n\nEl punto 1 es habitual en casi cualquier plataforma web, el punto 2 abre ciertas posibilidades, como por ejemplo que alguien que no seas t\xfa comparta supuesta informaci\xf3n relacionada a ti y que podr\xeda comprometerte de alguna manera, aunque eso tambi\xe9n ocurre cuando alguien habla acerca de ti por cualquier otro medio as\xed que no hay cosas demasiado cuestionables all\xed.\n\nEl punto 3 y 4 parece sugerir que al eliminar tu cuenta los datos se borran tambi\xe9n, pero al decir a menos que ya no necesitemos los datos para propocionar productos y servicios hacen entrar en duda sobre si realmente eliminan los datos o s\xf3lo lo hace cuando ya no les sirven.\n\nLos punto 2 y 5 dicen que si alguien que no seas tu comprate informaci\xf3n tuya en Facebook, a partir de ese momento esa informaci\xf3n no es parte de tu cuenta y permanecer\xe1 incluso si eliminas tu cuenta. Y eso a mi parecer es una injusticia por que si por ejemplo algui\xe9n comparte una foto tuya incluso sin tu permiso no puedes eliminarlo por que seg\xfan los t\xe9rminos de servicios esa informaci\xf3n no te pertenece.\n\n \nNo se y es dif\xedcil saberlo, pero seg\xfan los documentos que Edward Snowden filtr\xf3 sobre PRISM, Facebook colaboraba con la NSA y le proporciona datos para espiar las acciones de sus usuarios ([^6], [^2]) facilitando la recolecci\xf3n de su tr\xe1fico al gobierno estado unidense.\n\nSi Facebook hac\xeda eso a espaldas de los usuarios, es fundamentado sospechar que hace otras cosas como vender datos privados de las personas como chats, publicaciones, fotos, etc. a qui\xe9n pueda pagar.\n\n \nA parte para expandir su dominio y incrementar el n\xfamero de usuarios a facebook, este \xfaltimo lleva a cabo campa\xf1as de supuesta beneficencia. Cuando en realidad son estrategias que se aprovechan de la escasez de recusos en ciertos lugares para ofrecerles Facebook "gratis", pero a costa de que comiencen a conocer el internet como sin\xf3nimo de facebook.\n\nHace tiempo hab\xeda una campa\xf1a para informar de los peligros de esta iniciativa, revisa https://wiki.hacklab.org.bo/wiki/Anti_Internet.org_de_Facebook para m\xe1s informaci\xf3n.\n\n<span id="whatsapp"></span>\n \nLa empresa Facebook no hace mucho ha comprado Whatsapp y ahora sus usuarios han crecido mucho (m\xe1s 900 millones de usuarios mensuales seg\xfan wikipedia[^3]). Hay muchas personas que usan esta aplicaci\xf3n para sus comunicaciones m\xe1s intimas pero no consideran la posibilidad de que esta plataforma este vigilando sus acciones y vendiendo/revelando esta informaci\xf3n al igual que Facebook.\n\nAdem\xe1s la aplicaci\xf3n Whatssapp es software privativo, y no se puede estudiarla o saber que realmente hace, ni tampoco mejorarla o adaptarla a ciertas necesidades. \n\n<span id="telegram"></span>\n \nA diferencia de Whatsapp, la aplicaci\xf3n para celulares, para computadores de escritorio , y la aplicaci\xf3n web de telegram es c\xf3digo abierto lo que quiere decir que se la puede estudiar, copiar y mejorar [^4], adem\xe1s de brindar seguridad extra al cifrar las comunicaciones de cliente a servidor y otras utilidades para aumentar la privacidad.\n\nPero telegram almacena los datos en servidores y yo creo con ganas de restarle importancia sobre en qu\xe9 servidores se almacena la informaci\xf3n dice que los almacena en la nube [^5].\n\nDespu\xe9s de leer las preguntas y respuestas frecuentes de telegram no he encontrado menciones concretas de que hacen con las conversaciones y datos que los usuarios suben al usar telegram, en otras palabras el cliente telegram es libre pero telegram no es una red libre. (Si estoy equivocado agradezco te pongas en contacto)\n\nLuego de leer informaci\xf3n como la que propociona este hilo en el foro de trisquel, mi pocisi\xf3n al respecto sobre usar telegram es: Si telegram se resiste a decir que hace con datos m\xedos, entonces yo me resistir\xe9 a usarlo.\n\n<span id="google"></span>\n \nEs sin duda el gigante de la informaci\xf3n en internet, tanto as\xed que hace ver a Facebook, Twitter, Apple y posiblemente hasta Microsoft como diminutos en comparaci\xf3n con la cantidad de datos que Google posee sobre los usuarios.\n\nBasta con mirar la cantidad de servicios que tiene para suponer la cantidad de informaci\xf3n que tiene sobre las personas, podemos citar algunos servicios populares que brinda google:\n\n Motor de b\xfasquedas google.com (la p\xe1gina m\xe1s visitada en internet)\n gmail (el servicio de correo electr\xf3nico m\xe1s usado)\n youtube\n Google+\n Google Drive\n Traductor Google\n streetview\n Muchos otros m\xe1s\n\nCon esos servicios le basta como para convertirse en un gigante en la recolecci\xf3n de datos, es dif\xedcil imaginar la cantidad de informaci\xf3n que solamente youtube, gmail o google.com pueden conseguir sobre las personas en solamente 1 minuto o incluso 1 segundo.\n\nPero la recolecci\xf3n de datos no ser\xeda peligrosa en si misma, una vez m\xe1s seg\xfan los documentos filtrados por Edward Snowden ([^2], [^6], [^7]), google colaboraba con la NSA para revelar informac\xedon confidencial de sus usuarios al facilitar la vigilancia de su tr\xe1fico para el gobierno estado unidense.\n\n<span id="peligro_como_herramientas"></span>\n \nHay personas que opinan que por ejemplo google, facebook y otros medios similares son herramientas efectivas para llegar a la gente y es cierto, ya que la mayor parte de la gente en internet las utiliza.\n\nPero hacerse dependiente de estas herramientas, hace dependiente a qui\xe9n las utiliza para contactarte. Si por ejemplo llevas un proyecto de beneficiencia usando facebook, obligas que los beneficiarios sean usuarios de facebook, de igual manera con google, telegram, etc.\n\nSi bi\xe9n es comprensible que se utilicen estos medios por su gran alcance hacia la gente, si solamente utilizas estos como medios de comunicaci\xf3n para tus actividades, les das mucho poder y en el futuro ser\xe1 cada vez m\xe1s dif\xedcil quit\xe1rselo.\n\nUtiliza alternativas libres y descentralizadas y aseg\xfarate de promocionarlas en los medios de comunicaci\xf3n que utilices, lib\xe9rate de sus cadenas y libera tambi\xe9n a tus seguidores.\n\n<span id="que_hacer"></span>\n \nLo ideal ser\xeda no utilizar los servicios mencionados o los que son similares, pero esto no es una opci\xf3n f\xe1cil especialmente para personas que dependen mucho de estos servicios.\n\nUna estrategia es gradualmente reemplazar estos servicios por alternativas que re\xfanen condiciones donde se respeta la privacidad de los usuarios principalmente y con preferencia se pueda ejercer el derecho a la anonimidad.\n\n<span id="alternativas"></span>\n \nSe pueden econtrar muchas alternativas a los servicios mencionados. Esta es una tabla b\xe1sica:\n\n<table>\n<tr>\n\t<th>\t\t</th>\n\t<th> ALTERNATIVA RECOMENDADA</th>\n</tr>\n<tr>\n\t<td>google.com</td>\n\t<td>\n\t\t<a href="https://duckduckgo.com">duckduckgo.com</a>\n\t\tEste buscador adem\xe1s de ser software libre, no hace seguimiento a los usuarios o las b\xfasquedas que hacen.\n\t</td>\n</tr>\n<tr>\n\t<td> facebook</td>\n\t<td> <a href="https://joindiaspora.com/">diaspora</a> , tiene un uso y apariencia similar a facebook pero es software libre y no es centralizada, cualquier persona puede usarla y cualquiera esta en el derecho de montar un pod (se llaman pods a los servidores que ejecutan disapora y almacenan la informacion de los usuarios que se registran en ellos). Mientras mas pods menos centralizada es la informaci\xf3n y m\xe1s variedad hay.</td>\n</tr>\n\n<tr>\n\t<td> Whatsapp, Telegram </td>\n\t<td>\n\t\t<ul>\n\t\t\t<li><a href="https://kontalk.org/">kontalk</a> Es una aplicaci\xf3n de mensajer\xeda similar a telegram y whatsapp para dispositivos m\xf3vilies. Pero es gestionada y mantenida por comunidades, el servidor y el cliente son software libre. </li>\n\t\t\t<li><a href="https://tox.chat">Tox</a> Una aplicaci\xf3n de mensajer\xeda orientada a brindar privacidad, cifra fuertemente las comunicaciones, es software libre del lado del cliente y servidor.\n\t\t\t</li>\n\t\t</ul>\n\t</td>\n</tr>\n\n<tr>\n\t<td>Twitter</td>\n\t<td>\n\t\t<ul>\n\t\t\t<li><a href="https://es.wikipedia.org/wiki/GNU_Social">GNU Social</a> Similar a Twitter y distribuida.\n\t\t\t</li>\n\t\t</ul>\n\t</td>\n</tr>\n\n</table>\n\n\n[^2]: https://www.theguardian.com/world/2013/jun/06/us-tech-giants-nsa-data\n[^3]: https://es.wikipedia.org/wiki/WhatsApp\n[^4]: https://telegram.org/apps#source-code\n[^5]: https://telegram.org/faq#q-how-is-telegram-different-from-whatsapp\n[^6]: http://www.nytimes.com/2013/06/08/technology/tech-companies-bristling-concede-to-government-surveillance-efforts.html?ref=global-home&_r=1&&pagewanted=all\n[^7]: https://www.wired.com/2013/06/google-uses-secure-ftp-to-feds/\n\n>> Seguir\xe9 actulizando este post a medida que encuentre informaci\xf3n m\xe1s precisa.\n', [u'medios_de_comunicaci\xf3n', u'anonimato', u'reflexi\xf3n'])

]]>
Fotos1 https://rmgss.net/posts/fotos1 https://rmgss.net/posts/fotos1 Mon Feb 27 09:40:50 2017 text/html Rodrigo Garcia fotos (u'\nNo tienen una tem\xe1tica definida la mayor\xeda son de rincones en la ciudad de La Paz.\n\ncacto1\n<- Tama\xf1o original\n----\nAlgo de lluvia, una grieta en la acera y una planta brota.\n\nplanta en rincon\n<- Tama\xf1o original\n\n----\nAtardecer, el Illimani, una vieja pared, dos perros, gradas, etc. A veces hace falta caminar un poco para ver estas cosas juntas.\n\nillimani 1\n<- Tama\xf1o original\n----\ncacto2\n<- Tama\xf1o original\n', [u'fotos'])

]]>