OpenVPN

  • Luego de instalar y configurar un cliente OpenVPN tuve la necesidad de que el mismo utilice una dirección IP estática en la red privada. Esto generalmente ocurre porque necesitamos permitir el acceso en firewalls de otros sistemas en la misma red privada según la IP del cliente. Por lo tanto esta debe ser fija y conocida.

    Por defecto, un servidor OpenVPN provee DHCP para asignar direcciones IP a sus clientes. Sin embargo es posible forzar el uso de una IP fija a través de la directiva ifconfig-push. Este artículo explica cómo configurar una IP estática para un cliente OpenVPN, a través del uso y funcionamiento de dicha directiva.

  • De forma segura y a prueba de NAT y DHCP. Este artículo demuestra de qué forma es posible acceder desde cualquier parte del mundo, a través de Internet, a una Raspberry Pi, Cubieboard u otra microcomputadora corriendo un sistema operativo Raspbian, Ubuntu o similar (basado en Debian). El objetivo es poder conectarse a la raspi de forma eficaz, aún cuando ésta tenga acceso a Internet mediante una dirección IP dinámica (DHCP) no predecible, e incluso detrás de una NAT o una red privada del ISP (lo que haría inútil recurrir a un servicio como no-ip). A tal fin sólo se requiere de una VPN (red privada virtual), por ende se deberá contar con un servidor de VPN accesible públicamente (a través de una dirección IP pública estática y fija).

    Esta implementación resulta de gran utilidad a quienes estén implementando soluciones de domótica como openHAB o similares, y tengan la necesidad de controlar su casa desde cualquier parte del mundo. Todo esto utilizando soluciones open source.

  • Este artículo muestra paso a paso cómo conectarse a una VPN desde Windows, incluyendo la instalación y configuración del cliente OpenVPN.

  • En este artículo voy a explicar cómo instalar OpenVPN y cómo conectarse a una red privada virtual (VPN) en FreeBSD. Es decir, utilizar a un sistema FreeBSD como cliente de una VPN.

  • Al conectarse a una red privada virtual (VPN), el servidor asigna a sus clientes una dirección IP perteneciente a una subred (mediante el protocolo DHCP). A su vez, como mencioné anteriormente, OpenVPN permite reservar direcciones IP de este pool para asignar estáticamente a determinados clientes. Sin embargo, y a pesar de que todos los clientes de una misma VPN poseen direcciones IP de una misma subred, por defecto no existe conectividad entre los mismos. Hablando en criollo: "no se ven entre ellos". Aunque es posible lograr que se puedan conectar entre ellos a través de una configuración simple en el servidor de VPN.

  • Anteriormente expliqué detalladamente el proceso de instalación y configuración de un servidor OpenVPN, incluyendo la generación de certificados y configuración de clientes. En aquel momento utilizaba un servidor Ubuntu Server 12.04 LTS. Ahora me tocó montar un nuevo servidor de VPN, pero esta vez sobre un sistema Debian 9 con systemd.

    En este artículo voy a explicar cuáles son los pasos necesarios para instalar correctamente OpenVPN en Debian 9, teniendo en cuenta las particularidades a tener en cuenta para que funcione con systemd. El proceso es muy similar al que cubre mucho más detalladamente el artículo Instalación y configuración de OpenVPN.

  • Luego de montar un servidor VPN con OpenVPN, y dejarlo corriendo durante algunos años, puede llegar el momento de necesitar dar de baja un usuario (revocar su certificado OpenSSL), o conocer la lista de usuarios habilitados (cuyo certificado es válido) y deshabilitados (cuyo certificado ha sido revocado). Cabe recordar que para simplificar la gestión de certificados OpenSSL, OpenVPN cuenta con un conjunto de scripts Bash dentro del directorio easy-rsa, los cuales son sumamente útiles y prácticos para aquellos administradores que no cuentan con suficiente experiencia o no están familiarizados con OpenSSL.

  • Este artículo explica detalladamente cómo instalar y configurar el cliente OpenVPN en Ubuntu 16.04 para conectarse a un servidor de VPN.

  • Una red privada virtual (VPN de las siglas en inglés de Virtual Private Network) es una tecnología de red que permite una extensión segura de la red local sobre una red pública o no controlada. Ejemplos comunes son la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, etc. Todo ello utilizando la infraestructura de Internet.

    Este artículo detalla los pasos de instalación y configuración de OpenVPN sobre un servidor Debian 6 ó Ubuntu 12.04 (para este artículo ha sido probado en ambos), para dar acceso remoto desde Internet hasta una red privada de un centro de cómputos. OpenVPN es una solución VPN basada en SSL, liberada bajo la licencia GPL y es el estándar de facto para crear una VPN en GNU/Linux.

  • Este artículo explica cómo instalar OpenVPN y configurar el acceso a una VPN en Devuan.

  • Este artículo explica cómo listar todos los usuarios conectados a un servidor OpenVPN utilizando un pequeño script Bash.

    Existe una forma de comunicarse con el demonio de openvpn, a fin de obtener estadísticas de conexiones, sin necesidad de tener habilitada la interfaz de administración. Consiste en enviar la señal SIGUSR2 al proceso correspondiente al demonio openvpn. De acuerdo a la documentación oficial de OpenVPN, esta señal está reservada para que el demonio vuelque las estadísticas de conexiones en el syslog.

  • El artículo Instalación y configuración de OpenVPN explicar en detalle la instalación y configuración de OpenVPN, lo cual incluye la generación de los certificados y la autoridad certificante (CA) para que los clientes puedan acceder de forma segura a la red privada virtual (VPN) utilizando openssl.

    Un tema que había quedado pendiente es la posterior administración de la CA (crear, renovar y revocar certificados) utilizando los scripts "easy-rsa" incluídos en el paquete openvpn.

    OpenVPN incluye una serie de scripts bash dentro del directorio "easy-rsa" para administrar la Autoridad Certificante de forma simple. Una gran ayuda para aquellos que no estén familiarizados con openssl y sus comandos básicos.

  • Supongamos que hemos montado un servidor OpenVPN accesible libremente desde Internet (desde cualquier dirección IP). Este, por ejemplo, es el caso en el que deseamos que clientes conectados desde cualquier ubicación (usuarios remotos y con movilidad) puedan acceder a nuestra red local corporativa.

    El problema es que tener un acceso público a nuestra VPN nos vuelve blanco de todo tipo de ataques, con lo cual deseamos mejorar la seguridad de su instalación (hardening). Afortunadamente es posible recurrir al mecanismo de autenticación TLS para crear un firewall HMAC (hash-based message authentication code). Esto permite bloquear ataques de tipo DoS (Denial of Service) y flooding de puertos UDP antes de que se establezca efectivamente la conexión con el servidor OpenVPN.

  • Tal vez algunos de mis más viejos y queridos lectores recuerden que hace un tiempo monté mi servidor VPN sobre Debian 6 utilizando OpenVPN. Habiendo finalizado ya el soporte LTS para Debian 6 y sin muchas intenciones de migrarlo a Debian 7 (pienso que no vale la pena pues el soporte LTS para Wheezy es sólo hasta 2018, apenas dos años más, siendo que este servidor estuvo en producción 4 años de forma ininterrumpida) qué mejor oportunidad para poner en producción mi primer servidor OpenBSD.