CiberseguridadFirewallOpenVPN

Nuestra propia VPN más firewall

Seguramente si has llegado hasta aquí es porque te gustaría tener tu propia VPN. Si como nosotros, quieres conectarte al trabajo o a los ordenadores de casa desde fuera de la red (o quizá vienes para saltarte protecciones de compartición de cuentas por IP) necesitarás una VPN. En este artículo podrás ver como instalar OpenVPN y además todo ello bajo un firewall de pfsense, que sin duda nos va a garantizar tener una conexión segura para que solo nos preocupemos de disfrutar.

¿Qué vamos a usar?

Para llevar a cabo este proceso, necesitarás los siguientes elementos:

  • Pfsense: Es una distribución de software de código abierto basada en FreeBSD que se utiliza para construir firewalls y enrutadores. En este caso, utilizaremos PFSENSE para gestionar tanto nuestra VPN como nuestro firewall.
  • OpenVPN: Este es uno de los protocolos VPN más populares y seguros disponibles. Lo usaremos en conjunto con PFSENSE para crear nuestra VPN.
  • VPS o Servidor: Necesitarás un servidor o un servidor privado virtual (VPS) en el que podamos instalar PFSENSE y configurar nuestra VPN y firewall (opcionalmente podemos usar un ordenador antíguo, una RaspberryPI, una máquina virtual…). Respecto a los recursos que necesita la máquina podemos decir que funciona de sobra con 2GB de RAM y 30GB de espacio.
  • Snort: SNORT es un sistema de detección de intrusos (IDS) open source que podemos integrar con PFSENSE para mejorar la seguridad de nuestra red. Aunque es opcional, es un añadido valioso a nuestro firewall y supone dos minutos más de instalación (o incluso menos).

¿Qué es una VPN?

Una VPN o Virtual Private Network es una tecnología que permite establecer una conexión segura y cifrada entre dos puntos en una red. La principal ventaja de una VPN comercial sería que oculta nuestra IP, pero para el caso que nos atañe, nos quedaremos con que cifra nuestros datos (siempre que la configuremos bien), lo que garantiza la privacidad y la seguridad de tus comunicaciones en línea y nos permite conectarnos a otros dispositivos como si estuviéramos en la misma red que ellos.

En nuestro caso, vamos a crear una VPN para acceder de forma segura a nuestros recursos de red desde cualquier lugar, podremos acceder a una NAS en local, a servidores, a un RDP de Windows que tengamos en casa… lo que nosotros queramos.

Igualmente, si disponemos de aplicaciones online, como un wordpress, un email corporativo o de algún dominio propio, etc. podremos bloquear los accesos para únicamente acceder desde la IP de nuestra VPN.

Por todo lo expuesto, podemos decir qué, por tanto, disponer de una VPN supone una mejora sustancian en nuestra seguridad y protección y, además, tendremos un control sobre toda la infraestructura muy diferente del que tendríamos haciendo uso de una solución comercial.

¿Qué es un firewall?

Un firewall es un muro de seguridad que se utiliza para proteger una red o un sistema informático de amenazas y ataques. Funciona filtrando el tráfico de red y permitiendo o bloqueando el acceso en función de un conjunto de reglas predefinidas (las que vienen por defecto están muy bien y además veremos como añadir mejoras).

El firewall pfsense que vamos a utilizar es una solución opensource altamente configurable y potente, hemos probado otros, peor este es el que más nos ha gustado personalmente debido a su completa e intuitiva interfaz.

Para los que no nos conozcan de otras vidas (o blogs), siempre abogamos por programas open source en todos nuestros artículos.

Instalación de PFSENSE y OpenVPN

Este proceso es tremendamente sencillo. En primer lugar, nos vamos a centrar en la instalación de pfsense, después, mediante la interfaz, instalaremos la VPN que queramos (en nuestro caso OpenVPN). Los pasos básicos son:

  1. Descarga de PFSENSE: Comenzamos descargando la última versión de pfsense desde el sitio web oficial, generalmente se recomienda bajar el fichero ISO directamente (pero lo dejamos a vuestra elección). Puedes acceder a la descarga aquí.
  2. Creación de un medio de instalación: Crea un medio de instalación, como una unidad flash USB, con la imagen descargada de pfsense, os recomendamos el uso de Rufus para llevar a cabo este proceso en ordenadores Windows. Ojo, aquí tendréis que ver que queréis instalar, si una máquina virtual, una Raspberry… en nuestro caso y para todo el artículo hablaremos siempre de una VPS.
  3. Instalación de pfsense: Arrancamos el servidor desde el medio de instalación (dependerá del caso nuevamente) y seguiremos las instrucciones (que dejamos un poco más abajo) para instalarlo en el servidor. Antes de volvernos locos, algunos proveedores de hosting nos realizan ya la instalación completamente automática, por lo que si es nuestro caso y podemos mirar primero, seguramente ahorremos aún más tiempo.

Estas son las instrucciones oficiales de instalación traducidas al español:

  • Aceptamos los Términos de Licencia: Cuando empezamos la instalación de pfSense, lo primero que vemos son los términos de licencia que tenemos que aceptar antes de continuar. Nos tomamos un tiempo para leerlos, usando las teclas «Page Down» y «Page Up» para movernos por el texto. Cuando estamos listos, le damos al «Enter» para aceptar los términos y seguir adelante.
  • Opciones de Rescate: A continuación, el instalador nos pregunta si queremos usar opciones de rescate o si simplemente queremos iniciar la instalación. Usamos las flechas para seleccionar la opción que nos interesa y luego le damos al «Enter». Aquí las opciones son las siguientes: Instalar: Esto nos lleva directamente a la instalación de pfSense. Shell de Rescate: Esta opción es para usuarios avanzados que quieran hacer cosas más específicas o pruebas de diagnóstico. Recuperar config.xml: Si ya teníamos una instalación previa de pfSense, esto intenta recuperar nuestra configuración desde el disco.
  • Seleccionamos el Diseño de Teclado: La pantalla de selección de diseño de teclado nos permite elegir cómo queremos que funcione nuestro teclado durante la instalación. Para la mayoría de nosotros con un teclado estándar de PC, simplemente apretamos «Enter» para seleccionar «Continuar con el diseño de teclado predeterminado». Si tenemos un teclado con un diseño especial, buscamos la opción adecuada en la lista y luego volvemos al principio para elegir «Probar diseño de teclado predeterminado» o «Continuar».
  • Seleccionamos el Sistema de Archivos / Partición: En esta etapa, decidimos qué tipo de sistema de archivos queremos en el disco donde se instalará pfSense. Hay varias opciones, como ZFS o UFS, dependiendo de lo que necesitemos y de la potencia de nuestro hardware. Elegimos la opción que mejor nos convenga. Si no estamos seguros, UFS es una opción segura. Continuamos con la opción que hayamos elegido.
  • Proceso de Instalación: Ahora toca esperar mientras el proceso de instalación formatea la unidad y copia los archivos de software de pfSense en el disco. Cuando aparezca la pregunta final para hacer modificaciones finales, seleccionamos «No».
  • Reiniciamos: Finalmente, nos pide que reiniciemos el firewall, así que lo hacemos. Asegúrate de retirar cualquier medio de instalación antes de que se reinicie el hardware. ¡Felicidades! La instalación está completa y ya tenemos pfSense en funcionamiento.

En caso de requerir ver la documentación oficial os dejamos el enlace.

  1. Acceso a la interfaz web de pfsense: Una vez que PFSENSE esté instalado podrás acceder a su interfaz web utilizando un navegador y las credenciales por defecto (admin:pfsense). Desde esta interfaz podrás cambiar la configuración inicial (sobre todo cambiad la contraseña y el usuario), administrar el firewall, las VPNs o los plugins.

Con un poco de configuración y tiempo, podréis tener un dashboard como vosotros queráis. En nuestro caso lo hemos dejado así, pero pueden realizarse muchas configuraciones diferentes.

Os dejamos que experimentéis y no vamos a explicar mucho esta parte porque, la verdad, es muy sencillo realizar todo, lo más difícil es instalar pfsense.

  1. Configuración de OpenVPN: Tal y como hemos dicho antes utilizaremos la interfaz web de pfsense para configurar OpenVPN. Esto incluirá la generación de claves y certificados (todo de forma automática, una maravilla), la configuración de reglas de firewall y la asignación de direcciones IP a los clientes VPN.

En nuestro caso seleccionamos OpenVPN, por todo lo expuesto anteriormente y porque es un cliente que nos gusta, aunque como puede verse existen más opciones.

Vamos cumplimentando poco a poco la información con lo que nos va pidiendo, es un proceso sencillo e intuitivo, muy importante añadir una buena seguridad como por ejemplo una autenticación por certificado más contraseña, además de un cifrado TLS 1.3 para asegurar esa privacidad que tanto decimos que proporciona una VPN.

Para generar los certificados deberemos ir a Sistema>Certificados>Certificados. Todo se hace automático y es muy fácil de hacer, no tengáis miedo.

Una vez hayamos completado estos pasos ya tendremos nuestro servidor VPN. Pero claro, nos falta una forma de conectarnos al mismo…

Aquí no nos preocupamos, iremos al apartado Sistema>Gerente de Empaquetación>Paquetes disponibles y buscaremos openvpn-client-export.

Una vez lo tengamos instalado podremos ir al apartado OpenVPN>Client Export Utility.

Tal y como podemos ver en la imagen tenemos mil formas de exportarlo.

Una vez tengamos nuestro fichero .ovpn con nuestro certificado y configuración, podremos descargar el cliente de OpenVPN (ya sea en nuestro PC, móvil, etc) y abrir el fichero descargado con él.

Utilización de la VPN y el firewall

Después de completar la instalación y configuración, estaremos listos para utilizar nuestra VPN y nuestro firewall. Con esto ya tenemos garantizada:

  • Conexión remota segura: Conexión directa con nuestros equipos de forma segura en nuestra red doméstica o empresarial y desde cualquier lugar.
  • Protección contra amenazas en línea: El firewall protegerá a nuestra red de amenazas, como ataques de fuerza bruta y escaneo de puertos. Os aseguramos que al segundo de montar el firewall ya estábamos recibiendo un ataque.
  • Monitorización de tráfico: Utilizaremos las herramientas de pfsense para supervisar el tráfico de red y detectar actividades sospechosas, incluso, atención padres, podremos bloquear ciertos accesos a páginas de internet.

Plugins extras

Si volvemos unos pasos atrás, justo en el momento en el que accedimos al apartado de sistema he instalamos el gestor de exportación de openvpn, podemos ver que existen más plugins, en nuestro caso hemos instalado:

  • Snort: Snort es un sistema de detección de intrusos de código abierto (IDS) que nos permite monitorear el tráfico de red en tiempo real. Detecta y alerta sobre actividades sospechosas o maliciosas en nuestra red, lo que nos ayuda a prevenir posibles amenazas y ciberataques, es decir, con Snort, estamos mejorando nuestra capacidad para proteger nuestros sistemas y datos contra intrusiones no deseadas.
  • ntopng: Otra herramienta valiosa que hemos incorporado es ntopng. Este plugin proporciona una visión detallada y en tiempo real de nuestro tráfico de red. Con ntopng, podemos supervisar el uso de ancho de banda, identificar patrones de tráfico, y obtener información sobre las conexiones de red en nuestra infraestructura. Esta visibilidad en profundidad nos ayuda a optimizar nuestro rendimiento de red y tomar decisiones sobre la gestión del tráfico.
  • pfBlockerNG: pfBlockerNG es otro complemento importante que hemos implementado en nuestra configuración. Este plugin es una poderosa herramienta de filtrado y prevención de intrusiones que nos permite bloquear el tráfico no deseado o malicioso. Con pfBlockerNG, podemos crear listas de bloqueo personalizadas o bien descargarlas directamente de proveedores gratuitos como los de listas de malware, phishing, abuse… además podremos bloquear rangos de direcciones IP, y aplicar políticas de filtrado.

Experiencia de uso tras dos meses

Después de usar esta configuración durante dos meses de forma continuada os podemos decir que funciona a la perfección. Podemos realizar multitud de acciones con máquinas en remoto (no daremos ideas, pero podéis imaginaros la de juguetes que se pueden montar…) y todo ello bajo una protección bastante potente bajo nuestro punto de vista, si nos vamos a los registros del firewall, podemos enseñaros como contínuamente estamos parando ataques, cada 5, 10 minutos, intentos de acceso ssh, escaneos no autorizados, etc. Esto nos hace pensar que sin duda es mejor que abrir un puerto del router o alguna locura similar como alternativa (y mucho más si contamos con que en diez minutos podríamos tener ya todo montado). Además, si lo usamos en una VPS podremos tener siempre activo el servidor y conectarnos en cualquier momento.

En nuestro caso hemos configurado que todos los equipos dentro de la VPN se vean entre sí, por lo que podemos acceder a cualquier dispositivo que esté conectado a la VPN, esté dónde esté.

Alternativas

Si bien PFSENSE y OpenVPN son excelentes opciones para construir nuestra propia VPN bajo firewall, existen algunas alternativas populares que podrían ser consideradas igualmente:

  • IPFire: Una distribución de firewall de código abierto basada en Linux. Nosotros la hemos probado también, pero por como está constituida la VPS que hemos elegido nos venía mejor pfsense.
  • OPNsense: OPNsense es un firewall de código abierto basado en FreeBSD y derivado de pfSense. Ofrece características de seguridad avanzadas, incluyendo filtrado de contenido, VPN, balanceo de carga y soporte para múltiples interfaces de red. OPNsense es conocido por su enfoque en la seguridad y su interfaz web fácil de usar.
  • Endian Firewall Community: Endian Firewall Community es una distribución de código abierto basada en Linux que ofrece firewall, VPN, filtrado de contenido y otras características de seguridad. Es fácil de configurar y adecuado para pequeñas y medianas empresas.

Finalmente, otra solución interesante que nos gustaría destacar para entornos domésticos y sobre todo para padres que estén buscando limitar la actividad de sus hijos y crear un entorno más seguro en casa, recomendamos Pi-hole.

  • Pi-hole: Pi-hole es un proyecto de código abierto que convierte una Raspberry Pi en un servidor DNS local capaz de bloquear anuncios y rastreadores antes de que lleguen a nuestros dispositivos. Funciona bloqueando solicitudes de dominios conocidos por ser utilizados para entregar anuncios y realizar seguimiento en línea. Al usar Pi-hole en nuestra red local, podemos reducir significativamente la cantidad de anuncios que aparecen en nuestros dispositivos y mejorar la privacidad en línea.

Cualquiera que sea la opción elegida, la configuración de una VPN y un firewall es una inversión importante en la seguridad de nuestra red y además, en este caso, siempre y cuando hayamos usado materiales reciclados como ordenadores antíguos que no usemos, o máquinas virtuales, podremos disfrutar de estos beneficios de forma gratuíta.

Esperemos que os haya gustado el artículo y por favor, cualquier consulta no dudéis en escribirnos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *