Está en la página 1de 24

SoftEther

Aridane J. Mirabal García


Webmaster@mirabalphoto.es
Contenido
Introducción .................................................................................................................................. 3
¿Qué es SoftEther?........................................................................................................................ 3
Crear el Servidor Virtual ................................................................................................................ 3
Actualizar el Servidor ................................................................................................................ 3
Descargar SoftEther .................................................................................................................. 3
Instalar y configurar SoftEther .................................................................................................. 5
Cambiar la contraseña de administrador .................................................................................. 8
Crear un Hub Virtual.................................................................................................................. 8
Habilitar SecureNAT .................................................................................................................. 8
Crear y Gestionar Usuarios........................................................................................................ 9
Configurar L2TP/IPSec ............................................................................................................... 9
Configurar SSTP / OpenVPN .................................................................................................... 10
Clientes ........................................................................................................................................ 11
Configuración de un cliente Android ...................................................................................... 11
Configuración de un cliente Windows .................................................................................... 11
Cliente de Windows ............................................................................................................ 11
Cliente SoftEther ................................................................................................................. 18
Configuración de un cliente Linux ........................................................................................... 22
Fuente ......................................................................................................................................... 24

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Introducción

En este manual, se explicará como configuar e instalar un servidor VPN multiprotocolo


usando el paquete SoftEther. Configuraremos y habilitaremos OpenVPN y L2TP sobre IPSec y
SSTP VPN Server en Linux

¿Qué es SoftEther?
SotfEther VPN, es uno de los softwares VPN Multiprotocolo más potentes y fáciles de
utilizar, creado por la buena gente de la Universidad de Tsukuba, en Japón. Se puede ejecutar
sobre Windows, Linux, Mac, FreeBSD y Solaris. También tenemos que recalcar que se trata de
un freeware de código abierto. Lo podremos utilizar a nivel personal o profesional sin ningún
coste.

Crear el Servidor Virtual

En la página web, mencionan que el software trabaja bien en distribuciones Linux con
kernel 2.4 o superior, pero que es recomendable utilizar CentOS, Fedora o Red Hat Enterprise.

El manual que he seguido yo, explica que también funciona bien tanto sobre Ubuntu
x86 como x64.

Actualizar el Servidor

Utilizaremos los siguientes comandos para sincronizar nuestra lista de repositorios y


actualizar el software en nuestro servidor.

Debian / Ubuntu:

apt-get upgrade && apt-get dist-upgrade

CentOS / Fedora

yum upgrade

Descargar SoftEther

Podemos descargar el paquete de Linux desde su página web:

Descargar SoftEther

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Desafortunadamente, no hay una manera de obtener las últimas versiones a traves de
gestores de paquetes por el momento. No obstante, podremos utilizar un navegador para
descargar el paquete. Hay varias maneras de llevar a cabo este proceso: Primero, buscaremos
en la web la configuración de nuestro equipo (Sistema Operativo, x86/x64, etc.) para encontrar
el link y poder utilizar wget para descargar dicho paquete. Alternativamente, podremos utilizar
Lynx, un navegador basado en Consola (Terminal).

¿Como utilizar Lynx?:

Para empezar, deberemos instalar Lynx:

Debian / Ubuntu:

apt-get install lynx -y

CentOS / Fedora:

yum install lynx -y

Ahora utilizaremos el siguiente comando para buscar la descarga en el sitio web:

lynx http://www.softether-download.com/files/softether

Aquí podremos encontrar todas las versiones disponibles de SoftEther.


Seleccionaremos la que creamos oportuno, pero para este manual utilizaremos el “v2.00-9387-
rtm-2013.09.16” y presionaremos Enter para obtener el enlace, posteriormente
seleccionaremos Linux y en la siguiente página, SoftEther VPN Server. Dependiendo de la
arquitectura del servidor, podremos elegir el paquete adecuado. Finalmente, para descargar el
tar, presionaremos D en la siguiente página, se empezará a descargar el fichero y cuando

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


termine le tendremos que decir “Save to disk”. El fichero se descargará en la carpeta en la que
estemos antes de haber ejecutado Lynx. Para finalizar, pusaremos Q.

Instalar y configurar SoftEther

Ahora descomprimiremos el paquete que hemos descargado y lo compilaremos. El


paquete usado en este manual se llama “softether-vpnserver-v2.00.9387-rtm-2013.09.16-
linux-x86-32bit.tar.gz” así que lo descomprimiremos con el siguiente comando:

tar xzcf softether-vpnserver-v2.00.9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

Después de la extracción, habrá un directorio llamado vpnserver. Para realizar la


compilación deberemos tener instalados los siguientes paquetes: make, gccbinutils (gcc), libc
(glibc), zlib, openssl, readline y ncurses.

Si nos son necesarios, podremos instalarlos a traves de la siguiente línea:

Debian / Ubuntu:

apt-get install build-essential gcc -y

CentOS / Fedora:

yum groupinstall “Development Tools”

Ahora, ya que tenemos todo lo necesario, podremos compilar SoftEther usando los
siguientes comandos:

cd vpnserver

make

Nos saldrá unos mensajes en los que tendremos que pulsar 1 ó 2, en las tres ocasiones
pulsaremos 1, ya que correspondería a decir que “si hemos leído y aceptamos los acuerdos de
la licencia”.

Ahora SoftEther está compliado y habrá creado dos ficheros ejecutables (vpnserver y
vpncmd). Si el proceso falla, deberemos comprobar que estén todos los paquetes que son
requeridos estén instalados.

Una vez compilado, deberemos mover la carpeta vpnserver al directorio /usr/local,


para ello lo haremos de la siguiente manera:

cd ..

mv vpnserver /usr/local/

cd /usr/local/vpnserver/

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Y cambiaremos los permisos de la siguiente manera:

chmod 600 *

chmod 700 vpnserver

chmod 700 vpncmd

Si queremos tener SoftEther iniciado como servicio o al inicio del sistema, podremos
crear un fichero llamado vpnserver en /etc/init.d .

Crearemos el fichero utilizando vi o nano

vi /etc/init.d/vpnserver

Y pegaremos en él lo siguiente:

#!/bin/sh

# chkconfig: 2345 99 01

# description: SoftEther VPN Server

DAEMON=/usr/local/vpnserver/vpnserver

LOCK=/var/lock/subsys/vpnserver

test -x $DAEMON || exit 0

case “$1” in

start)

$DAEMON start

touch $LOCK

;;

stop)

$DAEMON stop

rm $LOCK

;;

restart)

$DAEMON stop

sleep 3

$DAEMON start

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


;;

echo “Usage: $0 {start|stop|restart}

exit 1

esac

exit 0

Finalmente guardaremos y cerraremos el fichero puslando “esc” y escribiendo “:wq”


para cerrar vi.

Tendremos que crear el directorio /var/lock/subsys si no está creado.

Mkdir /var/lock/subsys

Ahora cambiaremos los permisos y ejecutaremos el script con el siguiente comando:

chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start

Para dejarlo en el inicio, ejecutaremos lo siguiente:

Debian / Ubuntu:

update-rc.d vpnserver defaults

CentOS / Fedora:

chkconfig --add vpnserver

SoftEther VPN Server está instalado y configurado para arrancar al inicio. Para finalizar,
comprobaremos que el servidor está funcionando:

cd /usr/local/vpnserver

./vpncmd

Ahora pulsaremos 3 para seleccionar “Use of VPN Tools” y después escribiremos check.

Si todos los checks son satisfactorios, el servidor estará listo. Ahora escribiremos “exit”
para salir.

Hay dos maneras de configurar SoftEther VPN Server: utilizar el cliente de windows o
utilizar la herramienta vpncmd para configurar el servidor.

Podremos descargar el SoftEther Server Manager para Windows, descargándolo desde


la propia página web y realizar la configuración utilizando la GUI que nos proporciona, esto es
lo más deseable si eres usuario de Windows, pero en nuestro caso utilizaremos VPNCMD para
configurar nuestro servidor.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Cambiar la contraseña de administrador

En este punto, tendremos SoftEther VPN Server instalado, por lo que el siguiente paso
es asignar una contraseña de administrador para poder utilizar SoftEther. Lo haremos
utilizando la herramienta vpncmd basada en línea de comandos:

./vpncmd

Presionaremos 1 para seleccionar “Management of VPN Server or VPN Bridge”,


después pulsaremos enter sin escribir nada para conectarnos al servidor localhost y
pulsaremos enter nuevamente para conectarnos en modo administrador. Para cambiar la
contraseña utilizaremos el siguiente comando:

ServerPasswordSet

Crear un Hub Virtual

Para utilizar SoftEther, deberemos crear un Hub Virtual, aquí, en este manual, como
ejemplo utilizaremos un hub llamado VPN, para ello utilizaremos el siguiente comando en la
herramienta vpncmd

HubCreate VPN

Al hacerlo, el programa nos pedirá la contraseña de administrador. Esta contraseña


será requerida siempre que no estemos logueados como Server Admin. Una vez creado,
seleccionaremos el hub que hemos creado con el siguiente comando:

Hub VPN

Habilitar SecureNAT

Hay dos maneras de conectar los Hubs a la red: Utilizando la red local o utilizando
SecureNAT.

Se pueden utilizar por separados, ya que en conjunto suelen causar problemas.

Nosotros utilizaremos SecureNAT, porque es muy fácil de configurar y funciona muy


bien en la mayoría de simulaciones. Podremos utilizar red local, pero entonces, tendremos que
instalar y configurar un servidor DHCP.

SecureNAT es una combinación de las funciones de Virtual NAT y Servidor DHCP. Para
habilitarlo utilizaremos el siguiente comando:

SecureNatEnable

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Crear y Gestionar Usuarios

Ahora, crearemos los usuarios para nuestro Hub Virtual, los cuales se conectarán a
nuestra VPN. Para ello podremos utilizar el comando UserCreate y para ver los usuarios
utilizaremos UserList. Los usuarios pueden añadirse a grupos y pueden tener diferentes
métodos de autentificación (incluyendo: Contraseña, Certificado, RADIUS, NTLM, etc.).

Nosotros crearemos el usuario “test”:

UserCreate test

Daremos enter a todo lo que nos pida después.

Podremos cambiar los métodos de autentificación con los siguientes comandos:

• UserNTLMSet para autentificación con dominios NT


• UserPasswordSet para autentificación por contraseña
• UserAnonymousSet para autentificación anónima
• UserRadiusSet para autentificación por RADIUS
• UserCertSet para autentificación con certificado individual
• UserSignedSet para autentificación con certificado firmado

En este manual utilizaremos el método de autentificación por contraseña para el


usuario creado anteriormente, para ello, usaremos el siguiente comando:

UserPasswordSet test

Una vez ejecutado dicho comando, nos pedirá la contraseña, la introduciremos y nos la
volverá a pedir, para confirmarla.

Configurar L2TP/IPSec

Para habilitar L2TP/IPSec en nuestro servidor VPN utilizaremos el siguiente comando:

IPSecEnable

Después de introducir éste comando, nos preguntará las funciones de L2TP que
queremos configurar.

Enable L2TP over IPSec Server Function: Seleccionaremos “yes” para habilitar L2TP
VPN sobre IPSec con encriptación de clave pre-compartida . Activando esta función, podremos
conectarnos utilizando dispositivos iPhone, Android, Windows y MacOsX.

Enable Raw L2TP Server Function: Esto habilita L2TP VPN para clientes sin encriptación
IPSec.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Enable EtherIP / L2TPv3 over IPSec Server Funtion: Los routers compatibles con EtherIp
/ L2TP sobre IPSec se podrán conectar con esta configuración.

Pre Shared Key for IPSec: Introducir la clave pre-compartida para usar con L2TP VPN

Default Virtual Hub in case of omitting the hub on the username: Los usuarios podrán
determinar al Hub que se conectan usando Usuario@Hub como nombre de usuario. Con esta
opción especificamos que el Hub al que se conectarán en caso de no especificarlo. En nuestro
caso será VPN.

Configurar SSTP / OpenVPN

SoftEther puede clonar las funciones de Microsoft SSTP VPN Server y Open VPN Server.
Pero antes de habilitar esto, deberemos generar un certificado SSL autofirmado en nuestro
servidor. Podemos utilizar openssl o el proio comando de SoftEther para generar dicho
certificado SSL.

Nosotros generaremos el certificado con el comando ServerCertRegenerate del propio


SoftEther. El argumento que le pasaremos es el CN (Nombre Común) y puede ser el nombre
del host (FQDN) o la dirección IP

ServerCertRegenerate VPN

Nota 1: SoftEther también puede utilizar funciones de Dynamic DNS. Podremos asignar
esta función al generar el certificado SSL y conectarnos al servidor.

Nota 2: Si ya tenemos un listo un certificado SSL o si hemos generado uno con openssl,
podrá ser añadido al servidor utilizando el comando ServerCertSet .

Ahora, una vez hemos creado el certificado, nos lo descargaremos para utilizarlo en los
clientes que confiemos. Usaremos el siguiente comando para guardar el certificado con el
nombre “cert.cer”

ServerCertGet ~/cert.cer

Ahora lo podremos descargar utilizando un cliente FTP o SFTP.

Para hacer que el certificado sea confiable en Widnwos, tendremos que instalar el
“Trusted Root Certificaciton Authorities Store”. A continuación dejaré un enlace donde explica
como instalar el certificado

Instalando un certificado en Windows

Ahora, una vez hemos creado y registrado el certificado SSL podremos habilitar la
función SSTP con el siguiente comando:

SstpEnable Yes

Y habilitar OpenVPN

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


OpenVpnEnable yes /PORTS:1194

Nota: El puerto por defecto de OpenVPN es el 1194, pero podremos cambiarlo si


queremos, para ello cambiaremos /PORTS:1194 por /PORTS:XXXX donde XXXX es el puerto que
queremos asignar (y por si te lo preguntas, sí, tiene soporte para varios puertos).

Despues de habilitar OpenVPN, podremos descargar la plantilla de configuración para


los clientes OpenVPN. Nosotros crearemos la plantilla y la guardaremos como
“my_openvpn_config.zip” para ello usaremos el siguiente comando:

OpenVpnMakeConfig ~/my_openvpn_config.zip

Tras esto, podremos descargar ésta configuración utilizando un cliente FTP o SFTP y
aplicar dicha configuración en clientes OpenVPN.

SoftEther también proveé de un cliente de VPN dedicado, para sistemas Windows y


Linux. Soporta los protocolos específicos llamados “Ethernet over HTTPS” ó “SSL-VPN” con
mucha potencia. Utiliza el protocolo HTTPS y el puerto 443 para establecer un tunel VPN,
como se utiliza un puerto bien conocido, la gran mayoría de los cortafuegos, servidores proxy y
NAT pueden hacer pasar los paquetes. Por otro lado, para utilizar el protocolo SSL-VPN
deberemos descargar e instalar el cliente VPN de SoftEther, el cuál podrá ser obtenido desde la
propia página web.

Clientes

Configuración de un cliente Android

Para configurar un cliente Android, nos iremos al menú → Ajustes → Conexiones


Inalámbricas → Más… → VPN → Añadir Red VPN

Dentro de éste, en el nombre le pondremos el nombre que estimemos oportuno, en


protocolo recomiendo utilizar L2TP/IPSec PSK, en dirección del servidor, la dirección ip o el
FQDN y en clave IPSec Compartida previamente, la clave, y le daremos a guardar. Una vez
hecho esto, picaremos sobre el la VPN creada y añadiremos el usuario y la contraseña, que en
nuestro caso es test / ccenter.

Configuración de un cliente Windows

En Windows tenemos 2 opciones para configurar la VPN, o usar el cliente que viene
instalado ya en el sistema operativo, o utilizar el cliente de SoftEther.

Cliente de Windows

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Para configurar la VPN con el cliente de Windows, deberemos ir a: Panel de control →
Redes e Internet → Centro de redes y recursos compartidos. Una vez aquí seleccionaremos
“Configurar una nueva conexión o red”

Ahora se nos mostrará el siguiente asistente, del que seleccionaremos “Conectarse a


un área de trabajo” y haremos clic en siguiente.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


En la siguiente ventana, seleccionaremos la primera opción:

En la nueva ventana, la configuraremos con los datos de nuestra VPN, en Dirección de


Internet introduciremos la IP del servidor y en Nombre de destino, el nombre con el que se nos

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


mostrará la VPN. También deberemos marcar la opción de “no conectarse ahora” para
terminar de configurarla, ya que nos falta seleccionar el protocolo y añadir la clave
precompartida y daremos clic en siguiente.

En la nueva ventana, nos saldrá un pequeño formulario para introducir el usuario,


contraseña y dominio (en nuestro caso no es necesario introducir nada en este último campo),
también deberemos marcar “recordar esta contraseña” si no queremos estar introduciéndola
siempre que nos conectemos, y daremos clic en “conectar”.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Es muy posible que nos dé el siguiente error de conexión:

Tras él, solo daremos clic en “continuar la conexión de todas formas” y pasaremos a
establecer la clave precompartida. Para ello, iremos a: Panel de control → Redes e Internet →
Centro de redes y recursos compartidos → Cambiar configuración del adaptador de red.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


En la nueva ventana, nos mostrará los adaptadores de red que tenemos, entre ellos se
encontrará el adaptador virtual que creamos antes, para configurar la contraseña
haremos clic con el botón derecho del ratón sobre él y seleccionaremos
“propiedades”.

Ahora iremos a la pestaña “Seguridad” y seleccionaremos el protocolo L2TP/Ipsec e


iremos a la configuración avanzada.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Marcaremos “usar clave previamente compartida para autenticar”, la introduciremos y
haremos clic en aceptar.

En la ventana anterior haremos clic en Aceptar y solo faltará activar la conexión, para
ello, en la ventana donde se nos muestran las interfaces de red, haremos clic con botón
derecho y posteriormente haremos clic en conectar.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Ahora nos mostrará un pequeño asistente pero no tocaremos nada, solo haremos clic
en conectar

Cliente SoftEther

Para configurar un cliente Windows, deberemos descargar el software “cliente” de


SoftEhter desde su página.

Una vez descargado, lo instalaremos como cualquier otro programa, pero


seleccionando la opción de cliente VPN y NO la de cliente VPN Manager.

Una vez instalado, deberemos crear una adaptador Virtual, para ello “Virtual Adapter”
→ “New Virtual Network Adapter”.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Tras esto, nos mostrará una pequeña ventana para asignarle un nombre, pondremos el
que queramos y haremos clic en OK.

Nos saldrá la siguiente ventana:

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Tras esto solo nos falta configurar la conexión. Para ello haremos clic sobre “Add VPN
Connection”

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Una vez que hayamos hecho clic sobre “Add VPN Connection” nos saldrá lo siguiente:

Lo rellenaremos de forma similar a la que muestro. No obstante los datos a rellenar


son los siguientes:

• Host Name: Ip o FQDN del servidor


• Virtual Hub Name: El nombre del hub que creamos en el servidor, en nuestro
caso VPN
• Auth type: Estándar Password Authentication
• User Name: Usuario
• Password: Contraseña

Una vez rellenados, haremos clic en OK. Ahora solo falta realizar la conexión con el
servidor.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Para conectarnos, solo haremos clic con botón derecho sobre la nueva conexión
creada y haremos clic en “Connect”.

Si todo ha ido bien nos saldrá un mensaje como el siguiente:

Configuración de un cliente Linux

Para configurar un cliente Linux, deberemos descargar el software “cliente” de


SoftEhter desde su página, seleccionando la versión que corresponda (x86/x64).

Una vez descargado, lo descomprimiremos, entraremos al directorio que se nos ha


creado y ejecutaremos un “make”. Tendremos que aceptar los terminos del contrato de la
licencia, una vez lo hayamos completado, se nos habrán generado 2 ficheros, un “vpnclient” y
un “vpncmd”.

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Primero ejecutaremos “sudo ./vpnclient start” para iniciar el cliente. Después
procederemos a crear un fichero similar al que propongo a continuación, cambiando
“192.168.1.254” por la IP del servidor al que nos queramos conectar y cambiar el usuario
“test” por el que corresponda en la declaración de ClientAuth. Si queremos, también lo
podremos cambiar en la declaración de ClientOption.

El siguiente contenido lo guardaremos en /home/USUARIO/conexionvpn.vpn

declare root
{
bool CheckServerCert false
uint64 CreateDateTime 0
uint64 LastConnectDateTime 0
bool StartupAccount false
uint64 UpdateDateTime 0

declare ClientAuth
{
uint AuthType 1
string Username test
}
declare ClientOption
{
string AccountName test
uint AdditionalConnectionInterval 1
uint ConnectionDisconnectSpan 0
string DeviceName se
bool DisableQoS false
bool HalfConnection false
bool HideNicInfoWindow false
bool HideStatusWindow false
string Hostname 192.168.1.254
string HubName default
uint MaxConnection 1
bool NoRoutingTracking false
bool NoTls1 false
bool NoUdpAcceleration false
uint NumRetry 4294967295
uint Port 443
uint PortUDP 0
string ProxyName $
byte ProxyPassword $
uint ProxyPort 0
uint ProxyType 0
string ProxyUsername $
bool RequireBridgeRoutingMode false
bool RequireMonitorMode false
uint RetryInterval 15
bool UseCompress false
bool UseEncrypt true
}
}

Aridane J. Mirabal García | Webmaster@mirabalphoto.es


Ahora nos conectaremos al cliente vpn y crearemos una interfaz virtual llamada “se”.
Para ello ejecutaremos ./vpncmd, seleccionaremos la opción 2, posteriormente escribiremos
“remoteenable”, después de esto “nicenable” y se nos pedirá el nombre de la interfaz virtual,
aquí escribiremos “se”.

Para importar la configuración que hemos creado anteriormente, escribiremos


“accountimport”, el programa nos pedirá la ruta, por lo que escribiremos
“/home/USUARIO/vpn.vpn” y nos dirá que se ha importado de forma satisfactoria, para
conectarnos, usaremos la sentencia siguiente “accountconnect test”.

Cabe recordar que si hemos modificado el AccountName dentro de ClientOption, se


cambiará la sentencia anterior por “accountconnect USUARIO” siendo USUARIO el que
hayamos usado.

Tras esto, ya estaremos conectados a la VPN, pero hay que recordar que Linux no
habilita el enrutamiento de forma automática, por lo que deberemos habilitarlo. Para ello,
editaremos el fichero “/etc/sysctl.conf” buscando la línea que diga “net.ipv4.ip_forward=X”
(puede estar comentada y donde hay una X estar a 0 o 1) en caso de que esté comentada la
descomentamos y lo habilitaremos poniendo un 1 en el lugar de la X. Para que la configuración
surja efecto ejecutaremos un “sysctl -p”.

Fuente

Tutorial Original en Inglés

Aridane J. Mirabal García | Webmaster@mirabalphoto.es

También podría gustarte