Configuración del servidor OpenVPN con máxima seguridad en pfSense

Configuración del servidor OpenVPN con máxima seguridad en pfSense

Sergio De Luz

El sistema operativo pfSense que está orientado a firewall y router, dispone de varios protocolos de VPN para interconectar sedes a través de VPN Site-to-Site, y también podremos configurar VPN de acceso remoto para interconectar diferentes clientes móviles entre sí, y para que todo el tráfico de Internet pase a través del propio sistema operativo. OpenVPN es uno de los softwares más utilizados para crear redes privadas virtuales, gracias a su seguridad, flexibilidad y buen funcionamiento. Hoy en RedesZone os vamos a explicar paso a paso cómo configurar el servidor OpenVPN que está dentro de pfSense.

 

¿Qué es un servidor VPN?

Antes de entrar en cómo configurar un servidor openvpn, es importante comprender qué es un servidor VPN y para qué se utiliza.

Un servidor VPN es una herramienta muy importante en el ámbito de la seguridad y la privacidad en línea. Este tipo de servidor crea una conexión segura y cifrada entre un dispositivo, como un ordenador o un smartphone y una red privada a través de Internet. Su objetivo principal es proporcionar un túnel seguro para la transmisión de datos, protegiendo la información sensible de posibles amenazas externas.

La función principal de un servidor VPN es crear una capa de privacidad y seguridad al enrutar el tráfico a través de una conexión cifrada. Esto es especialmente importante al utilizar redes públicas, como las de cafeterías, aeropuertos o cualquier otro lugar con acceso WiFi, donde los datos pueden ser vulnerables a ataques cibernéticos.

Cuando te conectas a un servidor VPN, puedes hacerlo mediante una aplicación específica o configurando la conexión directamente en tu sistema operativo. Una vez establecida la conexión, el tráfico de datos se encripta, lo que significa que, incluso si un tercero intercepta tu información, los datos serán ilegibles sin la clave de cifrado correspondiente.

Además de proporcionar seguridad, un servidor VPN también ofrece otros beneficios. En primer lugar, permite acceder a recursos de red privados, como archivos y aplicaciones, como si el dispositivo estuviera físicamente conectado a la red privada, incluso si se encuentra a miles de kilómetros de distancia. Algo muy útil para empresas donde se teletrabaja, por ejemplo. Además, otro de los beneficios de usar una VPN es el acceso a webs bloqueadas en tu zona geográfica. Al no presentarte con tu dirección IP real, podrás acceder a ciertos sitios que en tu situación geográfica está bloqueado mientras que en la situación del servidor VPN al que estás conectado, tiene acceso.

 

¿Qué es y para qué sirve el OpenVPN integrado en pfSense?

OpenVPN es un software que nos permite levantar redes privadas virtuales, tendremos un canal de control donde se gestionará el levantamiento del túnel y la negociación de los protocolos de cifrado, y tendremos un canal de datos donde todo el tráfico del túnel irá cifrado punto a punto. Uno de los puntos fuertes de OpenVPN en pfSense, es que la gran mayoría de opciones disponibles las tenemos a través de una interfaz gráfica de usuario muy intuitiva, esto nos permitirá configurarlo sin necesidad de incorporar ninguna directiva de manera manual en el campo de «opciones avanzadas». El software OpenVPN que tenemos integrado en pfSense nos permitirá crear y configurar dos tipos de arquitecturas:

  • VPN de acceso remoto: los clientes remotos se conectarán al servidor VPN de pfSense, y saldrán a Internet a través de nosotros. También podrán acceder a las subredes que nosotros indiquemos. Este tipo de VPN están orientadas a teletrabajadores, técnicos de redes y sistemas etc.
  • VPN Site-to-Site: esta arquitectura nos permite intercomunicar una sede con otra, para intercomunicar diferentes sedes a través de Internet y que todo el tráfico esté protegido punto a punto. Por ejemplo, con este tipo de VPN podremos comunicar oficinas, sedes de empresas etc.

OpenVPN soporta decenas de configuraciones diferentes, tanto para mejorar el rendimiento como la seguridad. pfSense permite diferentes tipos de autenticaciones, pero la más recomendable es la basada en certificados SSL/TLS para asegurar la autenticidad, confidencialidad e integridad, no siendo recomendable hacer uso de claves precompartidas. Además de incorporar la autenticación basado en certificados SSL/TLS, también podríamos incorporar una autenticación adicional con usuario/contraseña, para tener un sistema más robusto. pfSense permite exportar la clave privada de los certificados con una contraseña, de esta forma, para poder usar estos certificados también tendríamos que incorporar una contraseña adicional, de lo contrario, no funcionaría.

El servidor OpenVPN integrado en pfSense nos permitirá conectarnos a nuestro hogar o trabajo de forma remota, rápida y segura, independientemente de que la red sea cableada o WiFi. Todo el tráfico irá cifrado punto a punto desde nuestro cliente OpenVPN (que está instalado en un ordenador, smartphone o tablet) hasta el servidor OpenVPN de pfSense. Un detalle muy importante, es que el servidor OpenVPN debe estar instalado en una conexión a Internet fuera de CG-NAT, y con las reglas en el firewall abiertas para permitir la conexión, de lo contrario, no podremos conectarnos a través de Internet.

Por supuesto, en el servidor podremos añadir diferentes subredes para enrutar el tráfico a través de las diferentes subredes que tengamos en el pfSense, e incluso podremos configurar en el firewall si queremos permitir o no esos accesos desde una dirección IP del servidor OpenVPN en concreto. Con OpenVPN tenemos dos formas de gestión de los paquetes y cómo trabajan a nivel de capa de transporte:

  • TUN: este modo de funcionamiento permite encapsular todos los paquetes que se transportan a través de él como segmentos TCP o datagramas UDP. Todos los clientes se les proporcionará una subred nueva específica, por defecto la subred de OpenVPN es la 10.8.0.0/24 pero podremos configurar la que nosotros queramos.
  • TAP: este modo de funcionamiento simula una interfaz de red Ethernet, también se conoce como puente o bridge, y este túnel virtual lo que hace es encapsular directamente paquetes Ethernet. El modo de funcionamiento puente es útil para intercomunicar usuarios remotos de manera fácil, pero si la red privada de origen coincide con la de destino, tendremos un problema de enrutamiento y la comunicación no funcionará.

En este tutorial para configurar OpenVPN en pfSense usaremos una subred virtual 10.8.0.0/24 donde tendremos a todos los clientes VPN cuando se conecten, será muy fácil identificar a los diferentes clientes VPN que tenemos conectados a la red, además, podremos «forzar» a que cada cliente con un certificado en concreto siempre tenga la misma dirección IP privada del túnel VPN.

En este manual os vamos a enseñar cómo realizar una configuración de OpenVPN muy segura en pfSense, personalizando los algoritmos de cifrado simétrico, asimétrico y de hash. De esta forma, podremos tener el mejor cifrado posible de las comunicaciones.

 

Resumen de la criptografía a utilizar

  • Certificados digitales: OpenVPN permite hacer uso de certificados digitales basados en RSA o también EC (Curvas Elípticas), nosotros haremos usa del algoritmo de EC secp521r1, aunque tenemos disponibles muchos otros a través de la gestión de certificados de pfSense. El algoritmo hash que utilizaremos será SHA512, uno de los más seguros que podemos usar actualmente. Todos los clientes VPN a partir de la versión 2.4 deberían ser compatibles con esta configuración, en nuestro caso, tanto el servidor como los clientes hacen uso de OpenVPN 2.5 o superior, por lo que no debería haber problemas.
  • Canal de control OpenVPN: utilizaremos TLS 1.3 para tener la máxima seguridad, y siempre utilizando PFS (Perfect Forward Secrecy). Utilizaremos las tres suites criptográficas de TLS 1.3 para establecer la comunicación: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 y TLS_AES_128_GCM_SHA256. Si quieres comprobar si tu servidor o cliente soporta este tipo de cifrado, deberás poner en consola «openvpn –show-tls».
  • Canal de datos OpenVPN: utilizaremos el algoritmo de cifrado simétrico AES-256-GCM, uno de los más seguros actualmente y que se ha incorporado la compatibilidad en OpenVPN 2.4 y posterior. No obstante, también haremos uso de CHACHA20-POLY1305 y AES-128-GCM para que el cliente VPN elija el que quiera, dando prioridad al primero de ellos. Si quieres comprobar si tu servidor o cliente soportan estos tipos de cifrado, deberás poner en consola «openvpn –show-ciphers».

Para definir en el canal de datos que queramos hacer uso de TLS 1.3, tendremos que usar la directiva «tls-ciphersuites» en lugar del típico «tls-cipher» como hemos usado siempre. Quedaría de la siguiente forma:

tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

Adicionalmente a estas medidas de seguridad, incluiremos una firma HMAC para la primera negociación de TLS, esto nos permitirá proteger el servidor OpenVPN frente a posibles ataques DoS. Si el cliente no posee la firma HMAC correcta, automáticamente es bloqueado y no pasará a comprobar los certificados digitales. Haremos uso de tls-crypt que está disponible a partir de OpenVPN 2.4 y siguientes, para tener la mejor seguridad porque nos permite autenticar y cifrar el canal para que nadie sea capaz de capturar esta clave precompartida.

Por último, utilizaremos el protocolo UDP en lugar de TCP, porque es más fuerte frente a ataques de denegación de servicio, debemos recordar que UDP es no conectivo, no fiable y no orientado a conexión. No obstante, podremos usar TCP sin ningún problema para dotar a la VPN de todos los beneficios de este protocolo.

 

Ventajas de usar pfSense

pfSense incluye una gran lista de paquetes, los cuales nos permiten aumentar sus funciones de forma sencilla, de forma que no se comprometa la seguridad e integridad del sistema. Todo esto empleando un cortafuegos SP basado en reglas. Entre otras ventajas podemos destacar algunas como:

  • Puede realizar cifrados dinámicos de los paquetes.
  • Se trata de software libre.
  • Cuenta con una gran comunidad.
  • Se actualiza constantemente para ser más segura.
  • Aprovecha muy bien el hardware, de forma que logra un mejor rendimiento.
  • Nos permite realizar enrutamiento.
  • Acepta generar restricciones de ancho de banda a base de la prioridad del tráfico.
  • Opción de uso de diferentes tecnologías de VPN. Como pueden ser OpenVPN, L2TP o IPsec.
  • Permite el balanceo de carga entre diferentes ISP.
  • Establece DNS dinámico, en caso de que se cuente con una IP pública estática.
  • Dispone de conexión a servicios como DynDNS para buscar nuevos Firewall.
  • Admite asignación de direcciones IP de forma automática a los usuarios de la red LAN.
  • Posibilidad de deshabilitar la filtración para utilizarlo como router.
  • Se puede monitorizar de red de forma gráfica y por consola.
  • Contiene un bandwidth, para poder visualizar gráficos de uso de ancho de banda.
 

Rendimiento de pfSense

Cuando hablamos de pfSense, tenemos que hablar de un sistema que es muy conocido por sus capacidades para manejar grandes volúmenes de tráfico. Esto lo hace sin que se llegue a comprometer la estabilidad de los sistemas. Por lo cual está diseñado para poder trabajar con entornos donde es necesario un rendimiento muy alto, y una conectividad confiable y sobre todo, segura. Pero una de sus mejores características, es la capacidad de procesamiento de paquetes a altas velocidades. Donde utiliza una arquitectura muy optimizada junto con diferentes técnicas de enrutamiento, que hacen de este proceso algo mucho más eficiente y rápido con los paquetes de datos.

Por otro lado, si no nos llegará con este rendimiento, podemos utilizar todas sus medidas de configuración y personalización. Esto nos permite adaptarlo a las necesidades que requerimos, y sobre todo las específicas para nuestra red. Lo cual le da un alto nivel de adaptabilidad. Esto es un proceso muy sencillo, ya que tenemos un interfaz que facilita mucho todas estas tareas de administración y configuración. Lo cual, combinado con las demás funcionalidades, puede hacer que el rendimiento mejore, y tengamos un control mucho mayor sobre toda la estructura de nuestra red en estos términos.

Aparte, podremos implementar otras tecnologías de seguridad. Sean VPNs, filtros de contenido o incluso detecciones de intrusión. Estas al ser elegibles, también nos permite adaptar más si cabe el rendimiento que vamos a necesitar. Suplementando a todas las funciones de seguridad. Todo esto hace que la escalabilidad sea un punto fuerte de pfSense. Lo cual es muy necesario no solo por el crecimiento de la red, sino para que todo siga funcionando de la forma más óptima posible y sin problemas en todos los dispositivos. Sean en los que está instalado pfSense, como en todos los que están en la misma red.

Pero una de sus más llamativas ventajas, es que es muy sencillo de utilizar y configurar, no siendo necesarios amplios conocimientos en la línea de comandos de UNIX.

 

Instalar el plugin OpenVPN Client para generar la configuración

Aunque OpenVPN se encuentra instalado por defecto en pfSense, ya sea en su modo de servidor o cliente, no tenemos un paquete preinstalado que nos permita generar automáticamente la configuración para los clientes. Si nos vamos al gestor de paquetes en «System / Package Manager» y nos vamos a la pestaña de «Available Packages» podremos instalar el paquete «OpenVPN-client-export» que nos permitirá realizar justamente esta acción, para facilitarnos enormemente la configuración de los clientes, importando la configuración del servidor con sus correspondientes certificados digitales.

Gracias a este paquete adicional que podemos instalar de forma opcional, el plugin será capaz de detectar la configuración de OpenVPN que hayamos realizado en el servidor, e incluso podrá detectar los certificados digitales orientados específicamente al servidor OpenVPN y a los clientes VPN, de esta forma, podremos exportar la configuración con todo lo necesario para realizar la comunicación sin necesidad de crear nosotros desde cero este archivo de configuración. Aunque si has trabajando anteriormente con este software, sabrás que no tiene demasiada dificultad, e incluso es posible que tengas plantillas para crear la configuración desde cero, es muy útil este plugin, sobre todo para no complicarnos la vida creando todos los ficheros de configuración desde cero.

Cuando lo instalamos, si no tenemos los certificados digitales creados o si no tenemos un servidor VPN levantado, no realizará ninguna función. En la parte final de este tutorial podréis ver en detalle cómo se utiliza para generar los certificados.

Una vez instalado, estaremos listos para pasar al siguiente paso, crear los certificados digitales.

 

Crear los certificados digitales en el propio pfSense

Para configurar un servidor OpenVPN con autenticación «Remote access SSL/TLS» deberemos hacer uso de unos certificados digitales. Tendremos que crear una autoridad de certificación (CA) con la que firmar los diferentes certificados, tenemos que crear un certificado específico para el servidor OpenVPN y de tipo servidor, así como todos los certificados digitales de los clientes VPN que queramos dar de alta.

También podremos crear una lista de revocación de certificados, si un certificado se ve comprometido porque lo hemos perdido, podremos anularlo directamente para que no sea válido. En caso de que un usuario ilegítimo lo utilice, no podrá conectarse a nuestro servidor VPN de ninguna forma, dará error automáticamente porque la CA se encargará de detectar que ese certificado ha sido revocado.

Además de crear certificados digitales para firmarlos, las CA también se encargan de revocar los diferentes certificados. En el caso de este software de VPN podremos crear una lista de revocación de certificados que consultará con cada conexión de VPN que se realice.

 

Crear la CA (Autoridad de Certificación)

Una autoridad de certificación, es una entidad de confianza de un emisor y receptor de un mensaje. La confianza entre ambos extremos, permite que cualquiera de los dos confíe en los mensajes de esta forma. De esta forma llegan identificados por un propietario, lo que nos lleva a los certificados.

En la sección de «CAs» es donde debemos pinchar en «Add» para crear una nueva autoridad de certificación, hacer esto es fundamental para hacer funcionar correctamente todos los certificados digitales, tanto el del servidor como los de los clientes VPN que se vayan a conectar. En este menú deberemos elegir las siguientes opciones:

  • Create /Edit CA
    • Descriptive Name: ponemos un nombre descriptivo a esta CA, el que nosotros queramos.
    • Method: Create an internal Certificate Authority.
  • Internal Certificate Authority
    • Key type: ECDSA con secp521r1 que es compatible con OpenVPN.
    • Digest Algorithm: sha512
    • Lifetime Days: 3650 (10 años)
    • Common-name: el CN debe ser un nombre descriptivo, que describa inequívocamente a esta CA. En nuestro caso solamente tenemos una CA para OpenVPN, así que hemos puesto simplemente «openvpn-ca»
    • Country Code: none. Esto ya no es necesario rellenarlo en los nuevos certificados de OpenVPN.

La configuración de la CA quedaría de la siguiente forma:

En los diferentes menús podremos elegir otras opciones de configuración, como importar una CA que ya tengamos creada, o crear una CA intermedia, nosotros vamos a crear una CA y después los certificados, sin usar ninguna CA intermedia.

También podremos elegir entre RSA o ECDSA, e incluso usar diferentes longitudes de clave de RSA y diferentes algoritmos EC para la creación de la CA. En «Digest algorithm» podremos elegir diferentes algoritmos de hash, los más recomendables son sha256, sha384 y sha512, nunca deberías utilizar sha1 por seguridad.

Una vez creada la CA, nos aparecerá en el listado de CA como podéis ver aquí:

En este menú podremos ver la cantidad de certificados que tiene asociados, el CN, la validez del certificado y si actualmente tenemos esta CA en uso. Cuando tenemos una CA o un certificado en uso, no podremos eliminarlo. En la sección de «Actions» podremos editar la descripción del certificado, exportar la clave pública de la CA, la clave privada, renovar la CA e incluso eliminar la CA que acabamos de crear.

 

Crear el certificado del servidor OpenVPN

Cuando hablamos de un certificado, nos referimos a un fichero que se emite desde la Autoridad de Certificación, y que nos garantiza que existe un vínculo entre la identidad de un usuario o sistema y su clave pública. Por lo tanto, hace que se pueda confiar en ese emisor o receptor

Ahora tenemos que crear el certificado que usará al servidor OpenVPN integrado en pfSense. Nos vamos a la sección de «Certificates» y pinchamos en «Add/Sign», siempre tendremos un certificado preconfigurado en pfSense porque el protocolo HTTPS lo utiliza para poder conectarse, de lo contrario, no podría funcionar. Este certificado lo crea automáticamente al realizar la instalación del sistema operativo.

El menú de creación de los certificados es muy similar al anterior, tendremos que elegir entre tres opciones:

  • Method:
    • Create an internal certificate.
    • Import an existing certificate.
    • Create a certificate signing request.
    • Sign a certificate signing request.

Nosotros vamos a seleccionar la primera opción, crear un certificado interno.

A continuación, tendremos que ponerle un nombre descriptivo, el que nosotros queramos, y la configuración debe ser la siguiente:

  • Add / Sign a New Certificate
    • Method: Create an internal Certificate Authority.
    • Descriptive Name: ponemos un nombre descriptivo a este certificado, el que nosotros queramos.
  • Internal Certificate
    • Certificate Authority: debemos elegir la CA anterior que acabamos de crear en el paso anterior.
    • Key type: ECDSA con secp521r1 que es compatible con OpenVPN. El mismo que la CA.
    • Digest Algorithm: sha512
    • Lifetime Days: 3650 (10 años)
    • Common-name: el CN debe ser un nombre descriptivo, que describa inequívocamente a este certificado del servidor. En nuestro caso solamente tenemos un certificado para servidor, así que hemos indicado openvpn-servidor simplemente.
    • Country Code: none. Esto ya no es necesario rellenarlo en los nuevos certificados de OpenVPN.

Si tenemos un certificado con una duración superior a 398 días es posible que nos de fallos en algunas plataformas, esto es de forma general, pero no para OpenVPN. Por tanto, podremos poner la duración que nosotros queramos sin problemas, no nos dará fallo.

En la parte inferior, deberemos elegir las siguientes opciones:

  • Certificate Attributes:
    • Certificate Type: server certificate
    • Alternative Name: lo podemos dejar sin nada, completamente vacío.

Debemos tener en cuenta que ahora mismo estamos configurando el certificado digital para el servidor OpenVPN, por tanto, debemos elegir «Server Certificate».

La sección de «Alternative Name» se suele utilizar para los certificados de IPsec, pero no lo usaremos en OpenVPN.

Una vez creado, lo veremos en el listado de certificados, además, también podremos ver la CA con la que hemos firmado el certificado y si es de tipo servidor.

Este certificado digital para el servidor es el que tendremos que poner a la hora de configurar el servidor OpenVPN en el pfSense, debemos acordarnos muy bien del nombre que le hemos dado, porque después nos sacará un listado con todos los certificados.

 

Crear los certificados de todos los clientes

Para crear uno o varios certificados digitales para los clientes, debemos hacer exactamente el mismo proceso que para el certificado del servidor.

  • Add / Sign a New Certificate
    • Method: Create an internal Certificate Authority.
    • Descriptive Name: ponemos un nombre descriptivo a este certificado del cliente.
  • Internal Certificate
    • Certificate Authority: debemos elegir la CA anterior que hemos creado en el primer paso.
    • Key type: ECDSA con secp521r1 que es compatible con OpenVPN. El mismo que la CA.
    • Digest Algorithm: sha512
    • Lifetime Days: 3650 (10 años)
    • Common-name: el CN debe ser un nombre descriptivo, que describa inequívocamente a este certificado del cliente. En nuestro caso solamente tenemos un certificado para cliente, así que hemos indicado openvpn-cliente1 simplemente.
    • Country Code: none. Esto ya no es necesario rellenarlo en los nuevos certificados de OpenVPN.

En la sección de «Certificate Attributes» tendremos que configurarlo de la siguiente forma:

  • Certificate Attributes:
    • Certificate Type: user certificate
    • Alternative Name: lo podemos dejar sin nada, completamente vacío.

Una vez creado, podremos ver el listado nuevo de certificados creados en pfSense.

Si pinchamos en editar, lo único que podremos hacer es modificar el nombre descriptivo, pero también podremos exportar la clave privada con una contraseña de paso, si ponemos clave, la propia clave privada se cifrará con AES-256-CBC para proteger su contenido, y, por tanto, evitar que si cae en malas manos puedan leerlo y utilizarlo. Esto es lo que hemos usado nosotros para exportar el certificado de los clientes, como posteriormente os enseñaremos.

Si queremos crear más certificados de clientes lo podremos hacer de la misma forma, lo único que tenemos que hacer es poner una descripción diferente y también un CN diferente.

Una vez que hayamos terminado de crear todos los certificados de los clientes que se van a conectar al servidor OpenVPN, procedemos a configurar paso a paso el servidor.

 

Configurar el servidor OpenVPN con todas las opciones explicadas

Para configurar el servidor OpenVPN, lo único que tenemos que hacer es irnos al menú principal de pfSense, pinchar en la sección de «VPN» y seleccionar «OpenVPN«. En este menú es donde tendremos todas las opciones de configuración disponibles para empezar con la configuración avanzada y con la mejor seguridad posible de este servidor VPN que nos proporcionará acceso a la red profesional o doméstica, y también reenvío de tráfico de forma opcional.

En la sección de «OpenVPN» debemos pinchar en «Servers» y pinchamos en «Add» para agregar un nuevo servidor OpenVPN. Hay una opción de «Wizards» que nos permitirá crear el servidor VPN paso a paso con un asistente de configuración, y posteriormente editar la configuración creada para adaptarlas a nuestras necesidades. No obstante, es mejor crear desde cero el servidor con la mejor seguridad posible, ideal para no tener ningún tipo de problema. Con este tutorial podrás configurar esta VPN con la mejor seguridad posible, aunque debemos recordar que la seguridad al 100% no existe, además, podríamos configurar de manera opcional un «segundo factor de autenticación» basado en un servidor RADIUS que podemos instalar en pfSense.

Dentro de la configuración del servidor OpenVPN, deberemos elegir las siguientes opciones:

  • General Information:
    • Server Mode: Remote Access (SSL/TLS)
    • Protocol: UDP
    • Device Mode: tun
    • Interface WAN
    • Local Port: 1194, por defecto es este puerto, es recomendable cambiarlo.
    • Description: ponemos una descripción de este servidor OpenVPN, porque podremos crear varios.

En la sección de «Protocol» tenemos diferentes opciones de configuración, por defecto es «UDP on IPv4 only», ya que también podremos usar TCP, e incluso TCP y UDP, y también para las redes IPv6, si es que usamos este protocolo de red. En la sección de «Device Mode» podremos elegir tun o tap, como os hemos explicado anteriormente, tun es a nivel de capa 3, y tap es a nivel de capa 2, con sus puntos fuertes y sus puntos débiles. En la sección de «Interface» lo más normal es utilizar la WAN, pero podremos estar escuchando con este servidor OpenVPN en todas las interfaces. Por último, en «Local port» podemos modificar el puerto TCP y/o UDP que nosotros queramos, es recomendable no utilizar el puerto por defecto que es el 1194.

En la sección de «Cryptographic Settings» podremos configurar todo respecto a los certificados digitales SSL/TLS, a continuación, os explicamos todas las opciones:

  • Cryptographic Settings
    • TLS Configuration: habilitamos usar una clave TLS, para hacer uso del tls-crypt, pinchamos en generar automáticamente la clave TLS. Al guardar los cambios, nos aparecerá si queremos usar «Autenticación» o también «Encriptación», es recomendable este último para hacer uso del nuevo tls-crypt en lugar de tls-auth que teníamos anteriormente.
    • Peer Certificate Authority: seleccionamos la CA que hemos creado en el propio pfSense para este servidor OpenVPN.
    • Peer certificate Revocation list: si creamos una lista de revocación de certificados, lo creamos en la sección de «System > Cert.Manager» y seleccionamos aquí el listado que lo hemos creado anteriormente.
    • Server Certificate: elegimos el servidor OpenVPN, en nuestro caso, es «OpenVPN_ServidorOVPN (Server: Yes)»
    • DH Parameter Length: ECDH Only
    • ECDH Curve: elegimos secp521r1

En la sección de «Data Encryption Negotiation» lo habilitamos, y elegimos los cifrados simétricos que queremos usar para el canal de datos. En nuestro caso, hemos elegido un total de 3: AES-256-GCM, AES-128-GCM y también el nuevo CHACHA20-POLY1305 que han incorporado recientemente. También deberemos elegir un algoritmo de «Fallback» por si el cliente OpenVPN no es compatible, en este caso elegimos AES-256-CBC, pero si quieres la máxima seguridad, os recomendamos elegir AES-256-GCM para forzar a que no se conecte si no usamos cifrados robustos, nada de usar AES-256-CBC, si hay clientes antiguos debemos actualizarlos.

En «Auth Digest Algorithm» elegiremos SHA256 o SHA512, siempre funciones hash seguras.

En la sección de «Hardware Crypto»: si tenemos aceleración de cifrado por hardware, lo elegiremos aquí para que funcione más rápida la conexión a la VPN, si no tenemos o no queremos habilitarla, dejamos el valor por defecto.

En «Certificate Depth» seleccionamos «One (Client + Server)».

En la sección de «Tunnel Settings» tendremos que configurar las siguientes opciones:

  • IPv4 Tunnel Network: pondremos la subred específica para los clientes OpenVPN, debe ser una subred libre que no hayamos utilizado anteriormente. En nuestro caso hemos elegido la 10.8.0.0/24 que es la de por defecto en este software, pero podremos usar cualquier subred.
  • IPv6 Tunnel Network: lo mismo que en IPv4, pero si utilizas redes IPv6.
  • Redirect IPv4 Gateway y IPv6: si habilitamos esta opción, todo el tráfico de los clientes OpenVPN pasarán por el servidor OpenVPN y tendrán acceso a todas las subredes del sistema operativo, podremos bloquear el acceso a ciertas subredes a través de las opciones de configuración del firewall, pero los clientes recibirán la ruta para llegar a todas las subredes. Si vamos a hacer Full-Tunnel VPN activamos esta opción, si vamos a usar Split-Tunnel entonces lo deshabilitaremos, y tendremos que introducir abajo las subredes a las que queremos que tengan acceso.
  • Concurrent Connections: 10, es el número máximo de clientes conectados simultáneamente, esto dependerá de tus necesidades.
  • Allow Compression: Refuse, no queremos compresión para evitar ataques.
  • Push Compression: podremos proporcionar esta opción de compresión (sin compresión) a los clientes.
  • Inter-client communication: podremos permitir o denegar que los clientes OpenVPN se puedan comunicar entre ellos, por seguridad es recomendable desactivarlo, pero en ciertos casos es necesario e incluso recomendable que haya comunicación, esto dependerá de tus necesidades.
  • Duplicate Connection: esta opción normalmente debería estar desactivada, cada cliente OpenVPN debería tener sus propias credenciales, y no usar el mismo cliente con el mismo certificado para conectarnos. Esta opción es útil si queremos usar los mismos certificados en nuestro smartphone, ordenador y tablet (3 dispositivos), y vamos a conectarnos simultáneamente. Nuestra recomendación es emitir un certificado por cada dispositivo.

En «Client Settings» podremos proporcionar a los clientes una IP dinámica, luego podremos especificar que cada cliente tenga una IP del rango 10.8.0.0/24 específico. En «Topology» elegimos «subnet» que es mucho más eficiente que net30 que es la forma antigua.

En «Ping Settings» podremos configurar los pings para ver si un cliente sigue conectado o ha perdido la conectividad.

En «Advanced Client Settings» podremos configurar los servidores DNS, ya sean servidores DNS externos como el popular 8.8.8.8 o un servidor DNS local del propio pfSense. También podremos seleccionar la opción de «Bloquear el acceso a servidores DNS» excepto los del túnel VPN para mejorar la seguridad.

En la sección de «Advanced Configuration» podremos añadir reglas adicionales avanzadas que no tenemos en la interfaz gráfica de usuario, por ejemplo, nos interesa que siempre negocie con TLS 1.3 como mínimo, si un cliente no es compatible no se conectará, porque no estaremos permitiendo TLS 1.2.

Tal y como os hemos explicado antes, al guardar por primera vez la configuración del servidor OpenVPN, en la sección de «TLS Key» nos saldrá la clave TLS generada automáticamente por pfSense, y deberemos elegir «TLS Encryption and Authentication».

Una vez configurado, podremos ver el resumen de la configuración a continuación:

Otra configuración que podremos realizar respecto a las rutas, es que, en lugar de forzar a todos los clientes a enviar todo el tráfico por el túnel VPN, podremos definir que solamente podamos acceder a ciertas redes, las que nosotros queramos, y automáticamente los clientes recibirán las rutas a estas redes.

Una vez que hemos configurado el servidor OpenVPN, vamos a configurar el firewall para permitir conexiones entrantes.

 

Configurar las reglas en el firewall para permitir acceso

En la sección de «Firewall / Rules» pinchamos en WAN, y creamos una regla con los siguientes valores:

  • Action: PASS
  • Interface: WAN
  • Address Family: IPv4
  • Protocol: UDP
  • Source: Any, cualquier origen ya que no sabemos siempre qué IP pública vamos a tener
  • Destination: WAN Address en el puerto OpenVPN 1194, o en el puerto que hayamos configurado el servidor.

Guardamos y ya tendremos la regla creada en la WAN de Internet.

Ahora nos tenemos que ir a la sección de «Firewall / Rules / OpenVPN», en esta sección es donde vamos a definir los accesos de los clientes OpenVPN. Si queremos permitir que los clientes OpenVPN accedan a cualquier subred de pfSense y también a Internet, tendremos que crear una regla de «Pass todo», definiendo lo siguiente:

  • Action: PASS
  • Interface: OpenVPN
  • Address Family: IPv4
  • Protocol: Any
  • Source: Any
  • Destination: Any

Si queremos crear reglas específicas para denegar el tráfico a ciertas subredes, pues tendremos que crear reglas que cumplan esta condición.

Una vez que ya tenemos acceso desde la WAN de Internet, y también a cualquier subred del sistema operativo y redirección a Internet, vamos a exportar el archivo de configuración OpenVPN para los clientes.

 

Exportar el archivo de configuración OpenVPN para los clientes

Nos vamos a la sección de «VPN / OpenVPN / Client Export», aquí configuraremos la extensión para generar la configuración automática para los clientes:

  • Remote Access Server: elegiremos el servidor VPN que hayamos configurado, podemos tener varios, por tanto, elegiremos el que nos interese.
  • Host Name resolution: el dominio DDNS que tengamos configurado en pfSense, o la dirección IP de la WAN, tendremos varias posibilidades.
  • Verify Server CN: Automatic – use verify-x509-name
  • Block outside DNS: habilitamos esta opción.
  • Use random local port: habilitamos esta opción.

Una vez configurado todo lo anterior, deberemos pinchar en los clientes a exportar, lo más normal es seleccionar «Inline Configurations: Most Clients» y nos exportará en un mismo archivo de configuración la CA, clave pública y privada del certificado del cliente, y toda la configuración.

Nuestra recomendación es elegir esta opción de «Inline Configurations: Most Clients», pero añadiendo la clave privada del cliente cifrada, para que si este archivo de configuración cae en malas manos, no pueda acceder a nuestro servidor VPN. Para exportar la clave privada cifrada, debemos irnos a la sección de «System / Cert Manager» e irnos a «Edit» el certificado del cliente, ponemos una contraseña de paso y pinchamos en «Export private Key»:

Ahora con un editor de texto, abrimos esta clave cifrada y el archivo de configuración recién descargado:

  • En el archivo de configuración completo de OpenVPN borramos todo lo que hay dentro de «<key></key>»
  • Copiamos el contenido completo de la clave privada exportada dentro de «<key></key>» y guardamos cambios.

Ahora, al usar la clave privada para conectarnos al servidor, tendremos que introducir esta contraseña que protege el certificado. Ahora vamos a comprobar que el servicio está levantado, y nos conectaremos con el primer cliente.

 

Comprobar estado del servicio y de los clientes conectados

En la sección de «Status / OpenVPN» podremos ver si está activado o no, lo activamos y conectaremos el primer cliente sin ningún tipo de problema.

Una recomendación adicional que podéis hacer con pfSense, es proporcionar a un mismo cliente VPN que usa un certificado en concreto, la misma dirección IP siempre. Para hacer esto, simplemente tenemos que meternos en «Client Specific Overrides», añadimos uno nuevo, elegimos el servidor y el CN del cliente específico y en la sección de «Advanced» ponemos:

ifconfig-push 10.8.0.2 255.255.255.0;

Y este cliente VPN con ese determinado CN siempre tendrá esta dirección IP privada dentro del túnel VPN.

 

Alternativas a PFSense

Puede darse el caso de que PFSense no sea una herramienta que se adapta perfectamente a las necesidades que se requieren. Por lo cual siempre se puede buscar alguna otra opción, buscando ese nivel de complementación con nuestro sistema, o porque resulta más sencilla a los usuarios en sí. Algunas de las alternativas más conocidas son:

  • Sophos UTM: Se trata de una herramienta de seguridad que incorpora un Firewall, VPN, antimalware, filtrado web y muchas más características importantes. Por lo cual es una muy buena opción para todos los usuarios que necesitan una solución de seguridad integral para toda su red.
  • Zentyal: Se trata de un servidor Linux, el cual está diseñado para que sea utilizado como un firewall, router, servidor de correo, de archivos, y otras muchas aplicaciones que pueden venir muy bien a nivel empresarial, por ejemplo. Es una buena alternativa, ya que resulta muy sencillo de utilizar, y cuenta con una gama de características muy amplia.
  • Untangle NG Firewall: Se trata de una completa herramienta de seguridad que incorpora un firewall, conexión VPN, antimalware y filtrado web, entre otras muchas funciones. De nuevo estamos ante una buena opción, ya que resulta simple de utilizar, y nos da muchas características añadidas.
  • Fortinet: Se trata de un firewall UTM, con protección completa frente a amenazas y que cuenta con muchas características de seguridad. Entre ellas, podemos destacar la conexión VPN, detección de intrusos, antimalware y filtrado web.
  • Checkpoint: Se trata de una gran solución para empresas, ya que cuenta con una gran gama de características en una sola herramienta. Siendo muy recomendable para empresas, sobre todo.
  • MikroTik: Estamos ante un sistema operativo basado en Linux, que fue específicamente diseñado para funcionar como un firewall, un router o un punto de acceso inalámbricos. Se trata de una de las alternativas más flexibles y escalables.

Estas son solo unas pocas de todas las alternativas a pfSense que nos podemos encontrar. Para elegir la adecuada, lo mejor que podemos hacer es tener un listado de los requerimientos que vamos a tener con estas soluciones. Esto nos ayudará a tomar la mejor decisión posible al elegir una de ellas.

1 Comentario
Logo redeszone.net
Navega gratis con publicidad…

Navegar por testdevelocidad.es con publicidad personalizada, seguimiento y cookies de forma gratuita. i

Para ello, nosotros y nuestros socios i necesitamos tu consentimiento i para el tratamiento de datos personales i para los siguientes fines:

Las cookies, los identificadores de dispositivos o los identificadores online de similares características (p. ej., los identificadores basados en inicio de sesión, los identificadores asignados aleatoriamente, los identificadores basados en la red), junto con otra información (p. ej., la información y el tipo del navegador, el idioma, el tamaño de la pantalla, las tecnologías compatibles, etc.), pueden almacenarse o leerse en tu dispositivo a fin de reconocerlo siempre que se conecte a una aplicación o a una página web para una o varias de los finalidades que se recogen en el presente texto.

La mayoría de las finalidades que se explican en este texto dependen del almacenamiento o del acceso a la información de tu dispositivo cuando utilizas una aplicación o visitas una página web. Por ejemplo, es posible que un proveedor o un editor/medio de comunicación necesiten almacenar una cookie en tu dispositivo la primera vez que visite una página web a fin de poder reconocer tu dispositivo las próximas veces que vuelva a visitarla (accediendo a esta cookie cada vez que lo haga).

La publicidad y el contenido pueden personalizarse basándose en tu perfil. Tu actividad en este servicio puede utilizarse para crear o mejorar un perfil sobre tu persona para recibir publicidad o contenido personalizados. El rendimiento de la publicidad y del contenido puede medirse. Los informes pueden generarse en función de tu actividad y la de otros usuarios. Tu actividad en este servicio puede ayudar a desarrollar y mejorar productos y servicios.

La publicidad que se presenta en este servicio puede basarse en datos limitados, tales como la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que está interactuando (o con el que ha interactuado) (por ejemplo, para limitar el número de veces que se presenta un anuncio concreto).

  • Un fabricante de automóviles quiere promocionar sus vehículos eléctricos a los usuarios respetuosos con el medioambiente que viven en la ciudad fuera del horario laboral. La publicidad se presenta en una página con contenido relacionado (como un artículo sobre medidas contra el cambio climático) después de las 18:30 h a los usuarios cuya ubicación no precisa sugiera que se encuentran en una zona urbana.
  • Un importante fabricante de acuarelas quiere realizar una campaña publicitaria en Internet para dar a conocer su última gama de acuarelas con la finalidad de llegar tanto a artistas aficionados como a profesionales y, a su vez, se evite mostrar el anuncio junto a otro contenido no relacionado (por ejemplo, artículos sobre cómo pintar una casa). Se detectará y limitará el número de veces que se ha presentado el anuncio a fin de no mostrarlo demasiadas veces.

La información sobre tu actividad en este servicio (por ejemplo, los formularios que rellenes, el contenido que estás consumiendo) puede almacenarse y combinarse con otra información que se tenga sobre tu persona o sobre usuarios similares(por ejemplo, información sobre tu actividad previa en este servicio y en otras páginas web o aplicaciones). Posteriormente, esto se utilizará para crear o mejorar un perfil sobre tu persona (que podría incluir posibles intereses y aspectos personales). Tu perfil puede utilizarse (también en un momento posterior) para mostrarte publicidad que pueda parecerte más relevante en función de tus posibles intereses, ya sea por parte nuestra o de terceros.

  • En una plataforma de redes sociales has leído varios artículos sobre cómo construir una casa en un árbol Esta información podría añadirse a un perfil determinado para indicar tuinterés en el contenido relacionado con la naturaleza, así como en los tutoriales de bricolaje (con el objetivo de permitir la personalización del contenido, de modo que en el futuro, por ejemplo, se te muestren más publicaciones de blogs y artículos sobre casas en árboles y cabañas de madera).
  • Has visualizado tres vídeos sobre la exploración espacial en diferentes aplicaciones de televisión. Una plataforma de noticias sin relación con las anteriores y con la que no has tenido contacto en el pasado crea un perfil basado en esa conducta de visualización marcando la exploración del espacio como un tema de tu posible interés para para otros vídeos.

El contenido que se te presenta en este servicio puede basarse en un perfilde personalización de contenido que se haya realizado previamente sobre tu persona, lo que puede reflejar tu actividad en este u otros servicios (por ejemplo, los formularios con los que interactúas o el contenido que visualizas), tus posibles intereses y aspectos personales. Un ejemplo de lo anterior sería la adaptación del orden en el que se te presenta el contenido, para que así te resulte más sencillo encontrar el contenido (no publicitario) que coincida con tus intereses.

  • Has leído unos artículos sobre comida vegetariana en una plataforma de redes sociales. Posteriormente has usado una aplicación de cocina de una empresa sin relación con la anterior plataforma. El perfil que se ha creado sobre tu persona en la plataforma de redes sociales se utilizará para mostrarte recetas vegetarianas en la pantalla de bienvenida de la aplicación de cocina.
  • Has visualizado tres vídeos sobre remo en páginas web diferentes. Una plataforma de video, no relacionada con la página web en la que has visualizado los vídeos sobre remo, pero basandose en el perfil creado cuando visistaste dicha web, podrá recomendarte otros 5 vídeos sobre remo cuando utilices la plataforma de video a través de tu televisor .

La información sobre qué publicidad se te presenta y sobre la forma en que interactúas con ella puede utilizarse para determinar lo bien que ha funcionado un anuncio en tu caso o en el de otros usuarios y si se han alcanzado los objetivos publicitarios. Por ejemplo, si has visualizado un anuncio, si has hecho clic sobre el mismo, si eso te ha llevado posteriormente a comprar un producto o a visitar una página web, etc. Esto resulta muy útil para comprender la relevancia de las campañas publicitarias./p>

  • Has hecho clic en un anuncio en una página web/medio de comunicación sobre descuentos realizados por una tienda online con motivo del “Black Friday” online y posteriormente has comprado un producto. Ese clic que has hecho estará vinculado a esa compra. Tu interacción y la de otros usuarios se medirán para saber el número de clics en el anuncio que han terminado en compra.
  • Usted es una de las pocas personas que ha hecho clic en un anuncio que promociona un descuento por el “Día de la madre”de una tienda de regalos en Internet dentro de la aplicación de una web/medio de comunicación. El medio de comunicación quiere contar con informes para comprender con qué frecuencia usted y otros usuarios han visualizado o han hecho clic en un anuncio determinado dentro de la aplicación y, en particular, en el anuncio del “Día de la madre” para así ayudar al medio de comunicación y a sus socios (por ejemplo, las agencias de publicidad) a optimizar la ubicación de los anuncios.

La información sobre qué contenido se te presenta y sobre la forma en que interactúas con él puede utilizarse para determinar, por ejemplo, si el contenido (no publicitario) ha llegado a su público previsto y ha coincidido con sus intereses. Por ejemplo, si hasleído un artículo, si has visualizado un vídeo, si has escuchado un “pódcast” o si has consultado la descripción de un producto, cuánto tiempo has pasado en esos servicios y en las páginas web que has visitado, etc. Esto resulta muy útil para comprender la relevancia del contenido (no publicitario) que se te muestra.

  • Has leído una publicación en un blog sobre senderismo desde la aplicación móvil de un editor/medio de comunicación y has seguido un enlace a una publicación recomendada y relacionada con esa publicación. Tus interacciones se registrarán para indicar que la publicación inicial sobre senderismo te ha resultado útil y que la misma ha tenido éxito a la hora de ganarse tu interés en la publicación relacionada. Esto se medirá para saber si deben publicarse más contenidos sobre senderismo en el futuro y para saber dónde emplazarlos en la pantalla de inicio de la aplicación móvil.
  • Se te ha presentado un vídeo sobre tendencias de moda, pero tu y otros usuarios habéis dejado de visualizarlo transcurridos unos 30 segundos. Esta información se utilizará para valorar la duración óptima de los futuros vídeos sobre tendencias de moda.

Se pueden generar informes basados en la combinación de conjuntos de datos (como perfiles de usuario, estadísticas, estudios de mercado, datos analíticos) respecto a tus interacciones y las de otros usuarios con el contenido publicitario (o no publicitario) para identificar las características comunes (por ejemplo, para determinar qué público objetivo es más receptivo a una campaña publicitaria o a ciertos contenidos).

  • El propietario de una librería que opera en Internet quiere contar con informes comerciales que muestren la proporción de visitantes que han visitado su página y se han ido sin comprar nada o que han consultado y comprado la última autobiografía publicada, así como la edad media y la distribución de género para cada uno de los dos grupos de visitantes. Posteriormente, los datos relacionados con la navegación que realizas en su página y sobre tus características personales se utilizan y combinan con otros datos para crear estas estadísticas.
  • Un anunciante quiere tener una mayor comprensión del tipo de público que interactúa con sus anuncios. Por ello, acude a un instituto de investigación con el fin de comparar las características de los usuarios que han interactuado con el anuncio con los atributos típicos de usuarios de plataformas similares en diferentes dispositivos. Esta comparación revela al anunciante que su público publicitario está accediendo principalmente a los anuncios a través de dispositivos móviles y que es probable que su rango de edad se encuentre entre los 45 y los 60 años.

La información sobre tu actividad en este servicio, como tu interacción con los anuncios o con el contenido, puede resultar muy útil para mejorar productos y servicios, así como para crear otros nuevos en base a las interacciones de los usuarios, el tipo de audiencia, etc. Esta finalidad específica no incluye el desarrollo ni la mejora de los perfiles de usuario y de identificadores.

  • Una plataforma tecnológica que opera con un proveedor de redes sociales observa un crecimiento en los usuarios de aplicaciones móviles y se da cuenta de que, en funciónde sus perfiles, muchos de ellos se conectan a través de conexiones móviles. La plataforma utiliza una tecnología nueva para mostrar anuncios con un formato óptimo para los dispositivos móviles y con un ancho de banda bajo a fin de mejorar su rendimiento.
  • Un anunciante está buscando una forma de mostrar anuncios en un nuevo tipo de dispositivo. El anunciante recopila información sobre la forma en que los usuarios interactúan con este nuevo tipo de dispositivo con el fin de determinar si puede crear un nuevo mecanismo para mostrar la publicidad en ese tipo de dispositivo.

El contenido que se presenta en este servicio puede basarse en datos limitados, como por ejemplo la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que estás interactuando (o con el que has interactuado) (por ejemplo, para limitar el número de veces que se te presenta un vídeo o un artículo en concreto).

  • Una revista de viajes, para mejorar las experiencias de viaje en el extranjero, ha publicado en su página web un artículo sobre nuevos cursos que ofrece una escuela de idiomas por Internet. Las publicaciones del blog de la escuela se insertan directamente en la parte inferior de la página y se seleccionan en función de la ubicación no precisa del usuario (por ejemplo, publicaciones del blog que explican el plan de estudios del curso para idiomas diferentes al del país en el que este te encuentras).
  • Una aplicación móvil de noticias deportivas ha iniciado una nueva sección de artículos sobre los últimos partidos de fútbol. Cada artículo incluye vídeos alojados por una plataforma de streaming independiente que muestra los aspectos destacados de cada partido. Si adelantas un vídeo, esta información puede utilizarse para determinar que el siguiente vídeo a reproducir sea de menor duración.

Se puede utilizar la localización geográfica precisa y la información sobre las características del dispositivo

Al contar con tu aprobación, tu ubicación exacta (dentro de un radio inferior a 500 metros) podrá utilizarse para apoyar las finalidades que se explican en este documento.

Con tu aceptación, se pueden solicitar y utilizar ciertas características específicas de tu dispositivo para distinguirlo de otros (por ejemplo, las fuentes o complementos instalados y la resolución de su pantalla) en apoyo de las finalidades que se explican en este documento.

O sin publicidad desde 1,67€ al mes

Por solo 1,67€ al mes, disfruta de una navegación sin interrupciones por toda la red del Grupo ADSLZone: adslzone.net, movilzona.es, testdevelocidad.es, lamanzanamordida.net, hardzone.es, softzone.es, redeszone.net, topesdegama.com y más. Al unirte a nuestra comunidad, no solo estarás apoyando nuestro trabajo, sino que también te beneficiarás de una experiencia online sin publicidad ni cookies de seguimiento.