PfSense – Servidor OpenVPN en Oracle Cloud

shape
shape
shape
shape
shape
shape
shape
shape

Instalar un servidor OpenVPN nos da muchas ventajas sobre cualquier otro servidor o servicio (Pritunl o Marketplace), entre esos el hecho de contar con un servidor con funciones de VPN completas, sin necesidad de incurrir en gastos adicionales.

PfSense al ser un firewall, nos permitirá configuraciones mas flexibles que otros servicios, por lo que es una gran alternativa en caso de necesitar un FW en OCI sin necesidad de incurrir en licenciamiento adicional.

Volviendo al tema, el modulo de OpenVPN viene habilitado por defecto en PfSense; Sin embargo, necesitaremos realizar algunos pasos para habilitarlo de manera correcta:

  1. Instalar el modulo de openvpn-client-export.
  2. Crear una Autoridad de Certificación (CA) y un Certificado para el servidor.
  3. Crear servidor OpenVPN.
  4. Crear usuarios OpenVPN.
  5. Establecer reglas de Firewall en PfSense para el OpenVPN.

1. Instalar el módulo de openvpn-client-export.

Para esto debemos ir al menú System – Package Manager

Dentro del Package Manager, damos clic en Available Packages y buscamos el paquete de openvpn-client-export y le damos clic en install.

En este punto solo debemos esperar a que termine la instalación de manera automática.

2. Crear una Autoridad de Certificación (CA) y un Certificado para el servidor.

Para crear el CA y el certificado, debemos ir al menú System – Certificates.

Al entrar al menú de certificates, quedaremos de manera automática en la pestaña de Autoridades, por lo que aprovechamos para crear la autoridad del servidor OpenVPN.

En este punto es solo llenar el formulario, técnicamente solo debemos colocarle un Nombre, seleccionar en el método que sea un Certificado de Autoridad Interno y finalmente llenar los datos de país, estado, ciudad, empresa y unidad organizativa (área de la empresa, por lo general se coloca IT).

Una vez creado, volveremos automáticamente al menú de certificados y lo veremos en la pestaña de Autoridad de Certificación. Solo nos queda crear el certificado, dando clic en la pestama de Certificados.

En la pestaña de certificados encontraremos el certificado creado por defecto para el servidor de PfSense, por lo que debemos crear uno nuevo para el servidor de OpenVPN dando clic en el botos de agregar.

En este punto encontraremos un nuevo formulario, por lo general tendrá algunos campos con información traida del CA, por lo que no debemos llenar todos los campos. Nos enfocaremos en los campos de Nombre, Metodo, Common Name y Tipo de Certificado.

Finalmente guardamos y volveremos de forma automática al menú de certificados, por lo que podremos evidenciar el certificado que acabamos de crear.

3. Crear servidor OpenVPN.

Para crear el servidor de VPN, nos iremos al menú de VPN – OpenVPN.

Esto nos dejara en la pestaña de servidores, en este momento no debe haber ninguno, por lo que solo daremos clic en Add.

Para crear el servidor nos pedirán bastante información, por lo que solo nos enfocaremos en los siguientes campos:

  • Description (Nombre del servidor)
  • Server Mode (Remote Access SSL/TLS + User Auth)
  • Local Port (Podemos dejar el por defecto a menos de que ya lo estemos usando).
  • Peer Certificate Authority (Seleccionamos el CA que creamos previamente).
  • Server Certificate (Seleccionamos el certificado creado previamente).
  • IPv4 Tunnel Network (Definimos un segmento de red para nuestra VPN).
  • IPv4 Local network(s) (Es el rango de nuestra VCN).
  • Ping Settings – Inactive (Dejamos la inactividad en 0 para que no nos desconecte automáticamente).

Lo demás campos quedarán por defecto, en las siguientes imágenes podrán evidenciar como queda la configuración del servidor.

Una vez creado el servidor, volveremos de manera automática al menú de servidores y podremos ver que nuestro servidor se ha creado correctamente.

4. Crear usuarios OpenVPN.

Crear los usuarios y descargar los ficheros de configuración de la vpn, es bastante sencillo. Debemos irnos al menú de System – User Manager.

Estando ubicados en el menú de Usuarios, daremos clic en Add.

En este punto, nos centraremos en los siguientes campos:

  • Username (Definimos el nombre de usuario).
  • Password (Definimos la contraseña para la vpn).
  • Full Name (Un nombre que identifique al usuario).
  • Certificate (Habilitamos el check en el certificado).
  • Descriptive Name (Podemos dejar el mismo nombre de usuario).

Al guardar volveremos al menú de usuario y podremos ver el usuario creado.

Ahora es necesario descargar los ficheros necesarios para conectarnos a la VPN usando nuestro usuario, para ello debemos ir nuevamente al menú de VPN – OpenVPN y luego a la pestaña de Client Export.

Al llegar a Client Export, debemos hacer un pequeño cambio en esta configuración. Debemos cambiar el Hostname Resolution a Other y Agregar la dirección IP Publica de nuestro PfSense. Caso contrario los archivos de configuración del cliente quedaran con la IP Privada que esta asignada a la WAN y no podremos conectarnos.

Bajamos un poco y guardamos la configuración con el botón de Save as Default.

Finalmente nos vamos al final de la pagina y encontraremos nuestro usuario junto a algunos archivos de configuración. Si no contamos con un cliente de OpenVPN instalado, podemos seleccionar Current Windows Installer y este nos instalara el cliente de OpenVPN con la configuración de la VPN del PfSense. En mi caso ya cuento con un cliente, por lo que solo descargare los archivos de configuración, para ello debemos elegir Inline Configurations y descargamos Most Clients.

Solo queda importar el archivo de configuración a nuestro cliente de OpenVPN, para ello ubicamos el icono de OpenVPN al lado del reloj (En Windows), le daremos clic derecho y luego en import. En este punto solo seleccionamos el fichero que descargamos y nos conectamos a la VPN.

Al dar clic en conectar, se abrirá una ventana con el log de la VPN y nos solicitará el usuario/contraseña que creamos previamente.

Lo mas seguro es que en este momento no nos deje conectar y esto se debe a que aun debemos crear algunas reglas en el firewall del PfSense para que permita nuestra conexión.

5. Establecer reglas de Firewall en PfSense para el OpenVPN.

Tenemos aun pendiente crear las reglas de Firewall necesarias para permitir la conexión de nuestra VPN, por lo que iremos al menú de Firewall – Rules.

Esto nos dejara en las reglas del Firewall, donde podremos ver 3 reglas, Floating, WAN y OpenVPN. De momento solo nos centraremos en las 2 ultimas (WAN y OpenVPN).

Estando en las reglas de WAN, daremos clic en Add

esto nos llevara a un formulario el cual dejaremos de la siguiente manera:

  • Protocol (TCP/UDP).
  • Source (Any).
  • Destination (Any).
  • Destination Port (Seleccionaremos de la lista OpenVPN).
  • Log (Habilitamos el check de log).

Luego de agregar esta regla, si intentamos conectarnos de nuevo a la VPN, notaremos que esta conecta correctamente. Sin embargo, aun no tendremos trafico entre nuestro equipo y la VCN, asi que si intentamos un ping a la IP privada del pfsense  veremos que esta nos rechaza.

Esto se debe a que no esta permitido el trafico proveniente de la VPN, ya que actualmente no tiene reglas y debemos crear una regla en la pestaña de OpenVPN.

En este punto la regla es mucho mas sencilla que la anterior, solo nos vamos a concentrar en los siguientes campos:

  • Protocol (Any).
  • Source (Any).
  • Destination (Any).
  • Log (Habilitamos el check).

Una vez agregada esta regla, si intentamos de nuevo el ping a la IP Privada del PfSense, esta debería responder sin problema.

De igual forma deberíamos llegar a los demás equipos de la VCN. Debemos tener en cuenta que esta es una configuración NAT, por lo que las solicitudes a las maquinas de OCI llegaran con la IP Privada de nuestro PfSense.

Esto se puede confirmar cuando nos conectamos por RDP al equipo con la IP 10.0.0.129 y revisamos en Wireshark el puerto 3389, allí evidenciamos que aunque la conexión se hace desde nuestro equipo, esta llega con la IP del PfSense.

En una próxima ocasión veremos como convertir esta configuración en un NO-NAT.

Deja una respuesta

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