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:

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Franco Diaz Hurtado 27 artículos
Ing. Telecomunicaciones y Electrónica; 1er Especialista en Redes de ECASA Nivel Central

15 comentarios

  1. Waterfox 56.2.10 Waterfox 56.2.10 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.2.10

    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.

  2. Firefox 67.0 Firefox 67.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

    Corregido. Se añadieron los links de descarga para el servidor en Linux y los clientes, tanto en Linux como en Windows.
    SL2

  3. Firefox 68.0 Firefox 68.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

    mano pudieras poner la configuracion para crear pero con el cliente del openvpn

  4. Firefox 60.0 Firefox 60.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0

    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

  5. Google Chrome 76.0.3809.132 Google Chrome 76.0.3809.132 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

    Buenos Dias, quizas se auna pregunta tonta, perosi monto el servidor softether y el cliente, es posible ver el escritorio remoto de todas las maquinas d emi red casera y poder trabajarlo como si fuera teamviewer?

  6. Firefox 67.0 Firefox 67.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

    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

  7. Firefox 73.0 Firefox 73.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0

    Instalando el softether vpnclient y un tightVNC-server como servicio(para que el usuario no lo cierre) en el cliente podes acceder al escritorio tal cual teamviewer.

  8. Google Chrome 79.0.3945.130 Google Chrome 79.0.3945.130 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36

    Puedo hacer que alguien desde otro pais se conecte a mi server vpn si le doy internet a la pc?

  9. Opera 68.0.3618.125 Opera 68.0.3618.125 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.125

    He instalado el servidor y quisiera saber como ver el trafico de red de cada uno de los clientes, quiero saber como sacar un reporte de cada uno.

  10. Google Chrome 83.0.4103.97 Google Chrome 83.0.4103.97 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36

    Hola Franco,
    Cuando hago ifconfig sólo muestra ipv6 a la vpn_se y cuando hago «dhclient vpn_se» si obtengo la ipv4, pero el computador queda sin conexión a internet y red lan (inalámbrica y por cable utp). ¿Tienes idea porque?

  11. Google Chrome 83.0.4103.97 Google Chrome 83.0.4103.97 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36

    Hola Franco,
    Instalé el Softether vpn server sobre Windows 2003 Server e instalé el Softether vpn client en un notebook con windows 10 todo muy bien funciona en varias redes externas e incluso fuera de mi región conectándome con la conexión compartida del celular. Puedo ver la información de la red de mi casa y compartir datos como si estuviera allá, e incluso imprimir.
    En cambio con una conexión de Linux en el notebook no puedo ver los datos de la red de mi casa. Siendo que en el Manager Users aparece que está conectado. Hago todo lo explicas en la conexión sobre Linux. Cuando hago ifconfig sólo muestra ipv6 a la vpn_se y cuando hago dhclient vpn_se si obtengo la ipv4, pero el computador queda sin conexión a internet y red lan (inalámbrica y por cable). ¿Tienes idea porque?

  12. Google Chrome 83.0.4103.97 Google Chrome 83.0.4103.97 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36

    Hola Franco,
    cuando activo la «vpn_se» y ejecuto el «sudo dhclient vpn_se» y hago un ifconfig detecté que tendo 2 getway y ese es mi problema de no poder navegar. Pues bien intento borrar el getway proporcionado por la conexión compartida del celular y no puedo:

    sudo route del default gw 192.168.43.255 wlp1s0 y me aparece el siguiente mensaje
    SIOCDELRT: No existe el proceso

    La conexión que me entrega por el celular es:
    wlp1s0: flags=4163 mtu 1500
    inet 192.168.43.88 netmask 255.255.255.0 broadcast 192.168.43.255
    inet6 fe80::6e7e:7dad:58b8:d0ad prefixlen 64 scopeid 0x20
    ether 54:13:79:85:ee:e5 txqueuelen 1000 (Ethernet)
    RX packets 37348 bytes 13781982 (13.7 MB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 11308 bytes 2541554 (2.5 MB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    ¿Tienes alguna idea de solución?
    De ante mano muchas gracias

  13. Google Chrome 88.0.4324.99 Google Chrome 88.0.4324.99 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.99 Safari/537.36

    tienen alguna idea de la configuracion del sever para recibir conexxiones detras de un server proxy que tiene el inspection ssl activo?

  14. Opera 76.0.4017.107 Opera 76.0.4017.107 Mac OS X  10.14.6 Mac OS X 10.14.6
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 OPR/76.0.4017.107

    Hola, muy buena explicación. Tengo una duda, yo instalé el servidor en una maquina virtual con linux CENTOS. Al parecer está corriendo, pero luego quiero configurar el servidor desde otra maquina virtual con Windows, pero el Server Manager no se logra conectar al Servidor. ¿Hay alguna recomendación que me puedas dar?

Dejar una contestacion

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