Configurar ProtonVPN en Archlinux

Por medio del Ing. Ronald Escalona, me entero del servicio ProtonVPN. El cual es un servicio de VPN (Virtual Private Network) para dirigir tu tráfico de Internet a través de su red. Agregando una capa de seguridad y privacidad a tu conexión de Internet, lo cual es útil en situaciones como: cifrado de la conexión en redes públicas como la de restaurantes donde no se puede confiar quién está en la misma red, conectarse a sitios prohibidos por el proveedor de Internet (saltar bloqueos), evitar que conozcan (exceptuando el dueño de la VPN) que sitios de Internet estas navegando, entre otros.

Obtener acceso en ProtoVPN

ProtonVPN a pesar de ser un servicio pago, puedes solicitar una cuenta gratuita y al cabo de unas semanas (dependiendo de su cupo) obtendrás un enlace para activar tu cuenta. Una vez activado, necesitamos entrar al sitio para configurar el acceso por OpenVPN, el software que utilizaremos para conectarnos desde GNU/Linux. Allí coloca el usuario y contraseña para la conexión (el cual es distinto a las credenciales para acceder al servicio) y guardas.

Luego necesitamos descargar el archivo de configuración, para ello debemos:

  1. Ir a la sección de Downloads en la barra lateral.
  2. Encuentra la configuración de OpenVPN, ve a la sección de archivos y selecciona Linux. El protocolo recomendado es UDP pero si tienes problemas selecciona TCP que será mas lento.
  3. Selecciona el servidor a conectarse (o todos) y coloca el archivo en un lugar seguro.

Instalar el software requerido en Archlinux

Ahora en Archlinux debemos instalar el paquete de openvpn y systemd-resolved para proteger nuestro DNS. Para instalar este software debes ejecutar:

pacaur -S openvpn openvpn-update-systemd-resolved --needed

Luego iniciar el servicio de systemd-resolved, en mi caso lo activé también para cada arranque del sistema:

systemctl enable systemd-resolved.service

systemctl start systemd-resolved.service

Configurar la conexión

Luego edita el archivo que descargaste desde ProtonVPN y cambia:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Por las siguientes líneas:

script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre

Finalmente ejecutar con privilegios de administrador el siguiente comando:

openvpn archivo_descargado_de_protonvpn.opvn

¡Listo! Veras como se inicia la conexión y ahora estarás navegando por medio de ProtonVPN.

Nota: algunos comandos fueron tomados de la RawSec, la fuente de inspiración para este artículo.

Resumen del evento de Herramientas para el desarrollo moderno

El pasado viernes 6 de octubre de 2017 se realizó en la Universidad Nacional Experimental del Táchira un evento llamado Herramientas para el desarrollo Moderno. Este evento en la UNET fue organizado por el Centro de Estudiantes de Informática en conjunto con el área de eventos del Departamento de Informática. Contó con la participación ponentes compuestos de un estudiante, un profesor, un invitado de otra ciudad y un invitado internacional. Ademas abarcó distintos temas y finalizó con el desarrollo del Firefox Quantum Sprint.

Temas

Se contaron con 4 ponencias dividas en 2 turnos:

  1. Edwin Vargas nos dió una introducción a React Native, un gran tecnología para hacer aplicaciones nativas utilizando Javascript. Explicó como es la tecnología, como iniciar y ejemplos de código. Excelente forma de iniciarse en el desarrollo de aplicaciones móviles.
  2. Luego Arturo Martinez, representante de Mozilla en Venezuela. Nos comentó sobre las mejoras prácticas para la elaboración de Interfaces de Usuario. Posteriormente, se repartió recuerdos de Mozilla a todos los asistentes del evento.
  3. En la tarde desde Argentina, Andrés Villanueva nos mostró todas las bondades de Firebase. Me gustó bastante esta ponencia porque no conocía la plataforma, ademas que Andrés siempre da un buen toque de humor y logra mantener la atención del grupo.
  4. Para cerrar, estuve hablando sobre las herramientas de desarrollo de Firefox. Pude mostrar unos pequeños ejemplos de como utilizarlas. Invitar a la audiencia a participar en el proyecto Mozilla y finalmente repartir mercancía de Mozilla.

Firefox Quantum Sprint

Luego de finalizar las charlas, procedimos a realizar el Firefox Quantum Sprint. Un evento de Mozilla que se estaba realizando en varios países del mundo. Este evento consistía en probar los sitios web mas importantes de Venezuela con la versión 57 del navegador. En caso de encontrar fallas se reportaba al equipo de Mozilla para posterior corrección (de hecho nos contactaron en tiempo real sobre algunos reportes, así que si estaban monitoreando).

Esta parte del evento fue divertida porque se notó mucho interés de los participantes. Logramos probar aproximadamente 100 páginas y como 10 de ellas presentaron problemas en la nueva versión.  Al finalizar se rifó una franela del zorro, un kit de detalles de Mozilla a las chicas y calcomanías para todos.

Foto de Kevin Cortés | @Kevincortes13

Me gustó la iniciativa de realizar este tipo de evento en la UNET por parte de estudiantes, siempre se logra aprender cosas nuevas y actuales. Como profesor es gratificante ver la asistencia de alumnos y ver en sus rostros cuando se interesas por estos temas. Espero que este tipo de evento en la UNET ese realicen con mas frecuencia y mas participación de la comunidad. Gracias a todos los que hicieron posible la realización del evento.

Hackeando las instrucciones de x86

Cuando utilizamos la computadora y encontramos problemas, siempre solemos echar la culpa a las aplicaciones, nunca lo hacemos con el hardware porque asumimos que son piezas perfectas sin fallas. También cuando hacemos auditorías de seguridad, solemos solo fijarnos en el software y vemos al hardware como una caja negra segura. Sin embargo, en esta presentación vemos como un hacker estudia la arquitectura x86 (utilizada en la mayoría de las computadoras de escritorio y servidores) y desarrolla un algoritmo para encontrar instrucciones no documentadas en los procesadores x86.

El resultado es que consigue varias de ellas, demostrando que el hardware no es tan seguro o confiable como creemos. Pues contiene varias instrucciones no documentadas.

Instrucciones no documentadas x86

Las instrucciones no documentadas, permiten codificar programas para realizar acciones secretas en tu computadora. Por ejemplo, pueder acceder a direcciones de memoria especiales (podría pertenecer a otros programas y contener información privada), acceder a registros, realizar acciones privilegiadas, entre otros.

El peligro es que ocurre a nivel de hardware y al no estar documentadas, nadie las conoce, son indetectables. No se sabe si Intel/AMD las coloca para colaborar con agencias gubernamentales, para ellos mismos, pruebas, entre otros.

Si te interesa mas el tema, observa la conferencia “Rompiendo el conjunto de instrucciones de x86”.

Esperemos ver que información oficial sale sobre estos descubrimientos, o si son vulnerabilidades que se aprovecharán en el futuro. De todos modos, deseo que te haya gustado el vídeo y recuerda compartir tu opinión en la caja de comentarios.

Happy Hardware Hacking!

Hace 6 años en esa fecha: jQuery Categories List Widget

Hace 8 años en esa fecha: Will the real Linus Torvald please stand up?

Error de JSON malformed al enviar datos a Zoho

Zoho es una excelente herramienta en la nube para la administración de negocios. Posee una excelente API REST para realizar integración de datos entre sistemas. Hace unos días tuve problemas para subir información al API y me arrojaba el error JSON malformed.

Cómo solucionar el error de JSON malformed

La documentación no indica cual puede ser el problema y en que campo. Obviamente es un error de codificación de JSON pero al revisar mi código y los datos que estaba enviando, noté que el JSON estaba bien validado. Pero me di cuenta que Zoho pide enviar el JSON dentro del cuerpo de la petición en texto plano, no en formato JSON. Por ello, al codificar los campos en la cadena, el símbolo de ampersand ( & ) puede confundirse como el inicio de un parámetro GET. Así que es necesario codificarlo con su respectivo valor en HTML que es %26.

Así que para solucionar mi problema tuve simplemente que reemplazar el valor luego de ser codificado en JSON:

$jsonString = str_replace('&', '%26', json_encode($invoice));
$body = '&JSONString=' . $jsonString;

¡Listo! Ahora si podrás subir la data a Zoho.

Hace 6 años en esa fecha: Mi análisis o review de Duke Nukem Forever

Hace 11 años en esa fecha: Frogger en JAVA (JFrogger 2k6)

Mi entrevista en WordPress.tv por el Global WordPress Translation Day

El pasado noviembre me hicieron una entrevista en WordPress.tv, pues desde el 2016 he estado organizando encuentros de WordPress en San Cristóbal, Venezuela. El 12 de noviembre de 2016, organizamos el único Global WordPress Translation Day de latinoamérica. Allí explicamos como realizar traducciones y una herramienta para facilitar las hecha por Diego Juliao con la participación del localizador oficial para Venezuela Jordi Cuevas.

Mi entrevista en WordPress.tv

Puedes ver la entrevista a continuación, está en ingles, hablo un poco de mí y las tareas que realizo en los meetups. También explico como nació la comunidad local de WordPress y otras cosas.

Espero que les guste.