Introducción

Es una pena que no exista un paquete abierto y completo con interfaz de usuario para configurar una VPN tipo SSTP en MacOS, afortunadamente existe el administrador de paqueterías para Mac Homebrew que, como la descripción de su sitio https://brew.sh lo indica: Homebrew es el adminsitrador de paquetes que Apple no provee; por lo tanto, es una excelente herramienta para instalar software de gran utilidad en nuestra Mac. Dentro de el amplio repositorio de paquetes existe el cliente SSTP que, aunque no cuenta con una interfaz gráfica, podemos utilizarlo fácilmente a través de la terminal de nuestro MacOS.

Instalación de Homebrew

Para instalar el administrador de paquetes Homebrew basta con ejecutar el siguiente comando en nuesta terminal: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Es recomendable que antes de ejecutar el comando para instalar el gestor de paquetes leamos detenidamente qué es lo que el script hace -> ver aquí la documentación

Instalación del sstp-client

La instalación es muy sencilla, por lo que si se realizó de manera correcta la instalación de Homebrew, simplemente podremos instalar el cliente sstp usando el siguiente comando:

brew install sstp-client

Si existiese algún problema ocasionado por la incompatibilidad del MacOS, basta con seguir las indicaciones que nos arroje el instalador para corregirlo. Normalmente suelen necesitar paquetes y librerías adicionales.

Establecer la conexión con el servidor SSTP

Una vez instalado el paquete sstp-client, tenemos que abrir la terminal y ejecutar el siguiente comando, modificando los campos de usuario, password y dirección del servidor SSTP según corresponda:

sudo /usr/local/sbin/sstpc --log-stderr --cert-warn --user ${USERNAME} --password ${PASSWORD} ${SERVER} usepeerdns require-mschap-v2 noauth noipdefault defaultroute refuse-eap noccp

Explicación del comando que ejecutamos

El comando para llevar a cabo la conexión tiene que ser ejecutado con privilegios de superusuario, razón por la cual se antepone el “sudo”. El parámetro “–log-stderr” indica que registre errores que surjan al ejecutar la aplicación.

Hay que prestar atención en el parámetro “–cert-warn”, el cual indica que, previo a establecer conexión con el servidor, veririque el certificado que éste tiene. En caso de no contar con certificado vigente o emitido por una autoridad certificadora reconocida, no podrá llevar a cabo la conexión. Por seguridad es importante que el servidor cumpla con esta medida para que nuestra comunicación no se vea comprometida.

Los parámetros finales corresponden a lo siguiente:

  • usepeerdns : Indica que utilice los servidores DNS configurados en el servidor SSTP
  • require-mschap-v2 : Indica que use el protocolo de autenticación de Microsoft MS-CHAP v2
  • defaultroute : Agrega una ruta en el sistema para que todas las comunicaciones salientes usen el servidor SSTP remoto. En caso de no requerir el enrutamiento de todo el tráfico al servidor, se especifica el parámetro nodefaultroute
  • refuse-eap : Indica que rechace conexiones con el protocolo de autenticación extensible (EAP)
  • noccp : Desactiva el encriptado del protocolo de control en clúster

Fuentes

https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-sstp

<< Configurar un servidor de VPN tipo SSTP con MikroTik | Configurar y desplegar un contenedor de MongoDB con Docker >>