Implementación y configuración de SoftEther VPN Server [Debian9]

Hola comunidad, he querido hacerles llegar este material sobre SofEther VPN, ya que hay muy poca documentación en español acerca de este tipo de VPN que ha tenido muy buena aceptación desde que saliese al mercado hace unos pocos años. Espero les sea de ayuda.

Son varios los artículos acerca de PPTP vs OpenVPN o PPTP vs L2TP, sin embargo, hoy en día es muy habitual encontrarse una nueva comparación: SoftEther vs OpenVPN. En esta publicación se establecerá una rápida comparativa entre ambas soluciones de software libre para VPN y veremos cómo configurar SofEther VPN (servidor y cliente).

1 – ¿Por qué SoftEther?

SoftEther (Software Ethernet) es desarrollado en Japón y soporta múltiples protocolos de VPN, como L2TP, OpenVPN y SSTP. Desde el 2014 es uno los softwares escritos de VPN más sofisticados en software libre. A continuación, se muestra una imagen con algunos de los protocolos que soporta:

Es un software libre de muy fácil instalación y gestión. Su cliente VPN protege su identidad, ya que levanta automáticamente un nuevo adaptador de red con un direccionamiento ip diferente al del adaptador de red físico. Las siguientes características resumen las ventajas de este programa.
• Establece VPN sobre el protocolo ICMP y DNS, burlando los dispositivos de seguridad que se encuentran en la red.
• Ofrece resistencia a la alta restricción de los firewalls.
• Soporta VPN capa2 y capa3.
• Posee diversos métodos de encriptación, tales como AES 256-bit y RSA 4096.
• Brinda características de seguridad, tal como logging y firewall internos dentro del tunel VPN.
• Ofrece un throughput de 1Gbps, logrando tal rendimiento con poco consumo de memoria y de CPU.

A continuación, se muestra una comparación entre SofEther y OpenVPN:

La comparación anterior muestra cuán superior puede llegar a ser SoftEther a OpenVPN, pero la decisión de usar uno u otro dependerá del entorno de cada red y del administrador. Personalmente no desecho ninguno de los dos, sino que complemento ambos en mis soluciones.

2 – Arquitectura del SoftEther

El SoftEther VPN Client levanta en la máquina un nuevo adaptador de red con un direccionamiento interno e independiente a la dirección ip de nuestra tarjeta de red física. Esta dirección ip es asignada por el DHCP que posee el servidor VPN, el cual constituye el DNS y el Gateway de la nueva subred interna creada. Para lograr un mejor entendimiento de este tema las siguientes figuras hacen una analogía con una red física.

3 – Implementando SoftEther VPN Server

Paquetes necesarios

  • softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz

Preparando el escenario:

Copiar el compilador de softether en el directorio y acceder para su instalación:

Seguir los siguientes pasos:

Configurar el servicio como un demonio:

Antes de continuar, verifiquemos que el servidor vpn opera con normalidad. Es importante realizar este chequeo antes de inicializar el servidor vpn:

Seguir los siguientes pasos:

Si todo esta bien, debe devolver lo siguiente:

Crear un servicio de systemd para softether vpn server:

Agregar lo siguiente:

Ahora el servidor vpn inicia automáticamente cuando inicie el sistema, y podemos gestionar el servidor via systemctl. Si al reiniciar no levanta el demonio, hacer lo siguiente:

Agregar lo siguiente:

Damos los permisos de ejecución:

Editamos el cron para una tarea programada al inicio del sistema:

Seleccionar el editor preferido, y agregar lo siguiente y agregamos lo siguiente:

4 – Configurando el servidor de SoftEther mediante “SE-VPN Server Manager (Tools)”

Seguir el procedimiento descrito por las siguientes imágenes y adaptar a su red, según convenga.
Abrimos el “SoftEther VPN Manager” desde nuetra PC en Windows y damos click en “New Settings” para añadir una nueva configuración:

Configuramos la vpn, adpatando a su red:

De vuelta a la vista incial, ahora seleccionamos la nueva vpn creada y damos click en “Connect”:

Acto seguido pedirá definir una contraseña para la vpn:

En este caso configuraremos una vpn para acceso remoto:

Aceptamos la indicación del servidor:

Definimos el nombre que recibirá el “Virtual Hub”:

Deshabilitamos el servicio de “VPN Azure”:

Creamos un usuario para la vpn:

Llenamos los datos correspondientes para el usuario:

Una vez creado el usuario, damos clieck en “Exit”:

Cerramos la ventana:

Damos click en “Manage Virtual Hub” para configurar el servidor:

Configuramos el servidor DHCP virtual:

NOTA: Si configuramos el DHCP virtual, tenemos cuando un usuario se conecte al servidor vpn perderá conexión con la red extrena, si no se tiene configurado las subredes que será nateadas con la IP del servidor vpn. En cambio, si no se configura el servidor DHCP, los clientes Windows obtendrán un rango de IP propio, no así los clientes Linux (probado y verificado). En este caso obtaremos por configurar el DHCP virtual para hacer las configuraciones del cliente vpn, tanto en Linux como en Windows.

Es necesario habilitar el “SecureNAT”:

Aceptamos la notificación del servidor:

Accedemos a la ventana de configuración del servidor DHCP virtual:

Editamos el servidor según los datos de la red:

Salimos de la configuración del servidor DHCP virtual:

 

Salimos de la configuración del “Virtual Hub”:

Salimos de la ventana de configuración del servidor:

5 – Implementando SoftEther VPN Client en Linux

Paquetes necesarios

  • softether-vpnclient-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
    Obtenemos el paquete anterior y lo ubicamos en “/usr/local/”

 

5.1 – Compilando SoftEther VPN Client

Accedemos al directorio, desempaquetamos el paquete del cliente y accedemos al directorio del cliente:

Damos los permisos necesarios:

Compilamos el cliente:

Seleccione “Yes” como respuesta a todas las preguntas:

Damos los permisos necesarios a los nuevos ficheros creados:

Iniciamos el cliente con el script “vpnclient” estando dentro del directorio del cliente:

Deberá devolver lo siguiente:

Ejecutamos el cliente:

Antes de ir a la parte de configuración, debemos hacer una prueba de verificación a la instalación del cliente, seleccionando la opción 3:

Corremos el comando “check”:

Si todas las pruebas fueron superadas satisfactoriamente, debería salir lo siguiente:

Presionamos Ctrl+C para terminar ese proceso, o escribimos “exit”:

5.2 – Configurando el SoftEther VPN Client

Ejecutamos “./vpncmd” dentro del directorio del cliente:

Seleccionamos la opción 2 y establecemos una conexión con el “localhost”, sólo con presionar la tecla “ENTER”, ya que estableceremos una conexión local al cliente:

Habilitamos gestión remota del cliente vpn:

Creamos la interfaz virtual “se” para conectarnos al servidor vpn:

Configuramos el nombre al cual va a responder esta vpn en el cliente:

Configuramos la cuenta con los detalles ofrecidos por el servidor (Ip del servidor, puerto del servicio y usuario e la cuenta) y por el cliente (nombre del adaptador virtual):

Si hizo todo bien, debería poder salirle los siguiente:

Establecemos la contraseña para la cuenta creada (en este caso fue “123456”) y se trata de una cuenta con “Standar Password Authentication”:

Verificamos todas las configuraciones que hemos realizado en el cliente para esta conexión de vpn:

Ahora podremos conectarnos al SoftEther VPN Client a través de la cuenta creada:

Verificamos la conectividad con el servidor:

Salvaremos la configuración echa para esta conexión en el directorio “/home/”:

Salimos del SoftEther VPN Client:

Verificamos si se guardó correctamente el fichero de configuración exportado por el cliente:

Debe devolver lo siguiente:

Para ver la configuración del fichero de configuración, hacer lo siguiente:

Debe aparecer algo como esto, según la configuración del cliente:

Verificamos si se creó correctamente la interfaz de red virtual “se”, que deberá salir con el nombre “vpn_se”, ya que siempre saldrá el nombre del adaptador virtual con la sintaxis “vpn_<nombre_especificado>”:

Debe devolver algo como esto:

5.3 – Configuraciones de red

En caso de que se decida alcanzar una subred a través de nuestro servidor vpn. Para ello requirá agregar una ruta hacia esa subred, dando como puerta de enlace la IP del servidor vpn por dentro del tunel y especificando la IP de nuestro cliente por dentro del tunel. Será necesario que esté permitido el forwardeo de paquetes. Lo verificamos:

Si la respuesta es “1”, puede saltarse el siguiente procedimiento, pero si retorna el valor “0”, entonces edite el fichero “/etc/sysctl.conf” y descomente la línea “net.ipv4.ip_forward=1”. aplique los cambios con el comando “sysctl -p”. Luego verifique nuevamente:

La respuesta ahora debe ser “1”.

Si verificamos ahora todos los adaptadores de red, podremos ver que “vpn_se” no tiene una dirección IP.

Debe devolver algo como esto:

Para que la interfaz virtual obtenga una dirección ip, configuramos el cliente dhcp de Linux:

Pasado un momento, volvemos a encuestar el adaptador de red y veremos qe ya cuenta con una dirección IP:

Debe devolver algo como esto:

Si usted realizó todo los pasos anteriores, usted ya cuenta con un servidor cliente SoftETher para Linux totalmente funcional.

5.4 – Automatizando un poco el servicio en el cliente

Creamos un servicio de systemd para el cliente de softether:

Agregar lo siguiente:

Ahora el servidor vpn inicia automáticamente cuando inicie el sistema, y podemos gestionar el servidor via systemctl:

NOTA:
Si al reiniciar no levanta el demonio, lo haremos mediante un script:

Agregar lo siguiente:

Damos los permisos de ejecución:

Editamos el cron para una tarea programada al inicio del sistema:

Seleccionar el editor preferido, y agregar lo siguiente y agregamos lo siguiente:

Automatizamos la conexión al servidor vpn con el inicio del sistema:

Seleccionamos la 2da opción y establecemos una conexión al “localhost” como ya hemos echo anteriormente. Después de haber echo esto definimos que al iniciar el servicio se inicie la conexión con el servidor vpn especificado:

Con todo esto su sistema iniciará con el sistema el servicio “softethervpn-client” y establecerá una conexión automática con el servidor vpn especificado. Sólo resta ejecutar el cliente dhcp para la interfaz de red virtual “vpn_se”.

6 – Configuración del “SoftEther VPN Client Manager” para Windows

Paquetes necesarios

  • softether-vpnclient-v4.28-9669-beta-2018.09.11-windows-x86_x64-intel.exe

Descargar desde el siguiente enlace:

https://www.softether-download.com/files/softether/v4.28-9669-beta-2018.09.11-tree/Windows/SoftEther_VPN_Client/softether-vpnclient-v4.28-9669-beta-2018.09.11-windows-x86_x64-intel.exe

Procedimiento

Después de instalado el cliente, cuando se ejecute dará la opción de añadir una nueva conexión VPN. Pedirá crear un adaptador de red virtual, al cual usted debe darle el nombre de “VPN”. Si más adelante crea un nuevo adaptador, debe nombrarlo por “VPN2”, y así sucesivamente cambiará el número con tantos adaptadores se creen.
Para configurar una conexión seguir los pasos descritos por las siguientes imágenes:
Ejecutamos el cliente y nos desplazamos a la pestaña “Connect” y seleccionamos “New VPN Connection Setting…”:

Llenamos los datos necesarios para la conexión con el servidor:

Nos ubicamos encima de la nueva vpn configurada y damos click derecho y “Connect”:

Veremos cómo nos saldrá la nueva IP asignada, tras conectarnos al VPN:

Con esto ya usted tiene su cliente vpn para SoftEther configurado en Windows.

Bibliografía:

(Visited 2 times, 1 visits today)
Franco Diaz Hurtado
Sobre Franco Diaz Hurtado 13 Artículos
Ing. Telecomunicaciones y Electrónica; Administrador de redes en la dirección general de ECASA

7 Comentarios

  1. Hermano, el paquete necesario:

    softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar

    De dónde se descarga? te faltó poner eso…

    Saludos.

    • Mi amigo, ya eres la 3era persona que me esto…realmente nunca he usado el OpenVPN dentro del SoftEther, lo he implementado en modo standalone…pero me estudiare la propuesta y tratare de hacerles llegar la info cdo tenga algo entre manos.
      SL2

    • Hola Marcelo. Puedes instalar el servidor de softether e instalar el cliente en los computadores de los usuarios y luego hacer una conexión de escritorio remoto a la ip que recibieron esos computadores por dentro del tunel vpn, para tener una conexión por escritorio remoto cifrado. Lo que quieres se puede hacer, pero para ello ya existen programas como AnyDesk o TeamViewer…no sé qué es lo que realmente quieres hacer.
      SL2

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*