Configuración del servidor SoftEther VPN en Ubuntu 16.04 Xenial Xerus Linux
Introducción
Ya sea que desee poder conectarse de forma remota a su red corporativa o construir una red virtual entre dos puntos remotos, a través de una red no segura (por ejemplo: Internet), de alguna manera necesitará una VPN (Red Privada Virtual). Una VPN le permite conectarse de forma segura a una LAN (red de área local) remota a través de Internet o redes no confiables.
SoftEther es un servidor VPN de código abierto, una alternativa a OpenVPN. Se cree que es el software VPN multiprotocolo más potente y fácil de usar del mundo. Nuestro artículo trata sobre cómo configurar SoftEther en Ubuntu Xenial Xerus Linux.
Que necesitarás
Ubuntu 16.04 Xenial Xerus Linux
Se recomienda un espacio disponible en disco de 30 GB
Un privilegio de root
Tenga en cuenta que los archivos binarios utilizados en este artículo son arquitecturas x64. Si su máquina no es x64, debe elegir los binarios adecuados.
Convenciones
# – requiere que los comandos de Linux determinados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso del comando sudo
$: requiere que los comandos de Linux determinados se ejecuten como un usuario normal sin privilegios > – comando dado que se ejecutará desde la interfaz de línea de comando vpncmd
Preparando el servidor
Actualizar el sistema:
$ sudo apt update
$ sudo apt upgrade
Instale (si aún no está instalado) build-essential
para fines de compilación:
$ sudo apt install build-essential
Instalación de SoftEther
Obtener fuentes más suaves
Busquemos las fuentes de SoftEther (la última versión es la versión 4.22 lanzada el 27 de noviembre de 2016):
$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Descomprimir las fuentes
$ tar xzf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Después de una descompresión exitosa, encontramos una carpeta llamada vpnserver
en nuestro directorio actual.
Instalar desde las fuentes
$ cd vpnserver
$ sudo make
Durante el proceso de instalación, tendremos que escribir 1
para leer el Acuerdo de Licencia, escribir 1
nuevamente para confirmar que hemos leído el Acuerdo de Licencia y finalmente escribir 1
para aceptar el Acuerdo de licencia. Después de la instalación, podemos revisar el resultado para confirmar que todo el proceso se desarrolló correctamente sin ningún error. Una vez hecho todo correctamente, ya podremos ejecutar el servidor vpn desde la carpeta de instalación usando este comando:
$ sudo ./vpnserver start
Hagámoslo mejor configurándolo como un daemon
.
Configuración como demonio
Sigamos estos pasos para configurar nuestro servidor vpn como un daemon
.
Mueva la carpeta de instalación a /usr/local
$ cd ..
$ sudo mv vpnserver /usr/local
Dar los derechos apropiados a los archivos.
$ cd /usr/local/vpnserver/
$ sudo chmod 600 *
$ sudo chmod 700 vpnserver
$ sudo chmod 700 vpncmd
Antes de continuar, comprobemos que el servidor vpn puede funcionar con normalidad en nuestro servidor. Es importante realizar esta comprobación antes de iniciar vpnserver
.
-
Ejecute el comando
vpncmd
Escriba
3 Luego escriba
verificar
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
Si todo está bien hecho, deberíamos recibir el mensaje "Se aprobaron todas las comprobaciones" al final de la operación.
Crear un servicio systemd
Cree el archivo /lib/systemd/system/vpnserver.service
$ sudo vi /lib/systemd/system/vpnserver.service
Y coloque el siguiente contenido dentro de él:
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
Ahora el servidor VPN se inicia automáticamente al arrancar y podemos administrar el servidor VPN usando systemctl
.
Prepare el servidor VPN SoftEther para su uso
SoftEther ofrece muchos casos de uso: VPN Ad-hoc, acceso remoto a LAN, puente de LAN a LAN, etc. En este artículo, lo estamos configurando para uso de “Acceso remoto a LAN”. Primero crearemos un centro virtual
y luego crearemos una especie de vínculo entre ese centro virtual
y la red del servidor (la LAN corporativa).
Establecer una contraseña de administrador para vpncmd
Por razones obvias, se recomienda establecer inmediatamente una contraseña de administrador para vpncmd
tan pronto como se instale el servidor VPN. Esto se hace a través de la utilidad vpncmd
:
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
Como se muestra en la imagen de arriba, seleccionamos 1
para "Administración del servidor VPN o puente VPN", luego simplemente presionamos Enter
para las siguientes preguntas hasta que obtengamos VPN. Mensaje del servidor>
. En el símbolo del sistema, escribimos ServerPasswordSet
.
Crear un centro virtual
Al usar vpncmd
, vamos a crear un virtual hub
llamado “myFirstHUB”:
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
> HubCreate myFirstHUB
Conecte el centro virtual a la red del servidor
Para permitir que los clientes accedan a la red del servidor, necesitamos vincular el virtual hub
a la LAN. Esto se puede hacer usando una conexión de puente local o usando la función SecureNAT
. En nuestro caso, se utilizará la función SecureNAT
. La función SecureNAT
permite utilizar el servidor VPN como puerta de enlace de red simple, servidor DHCP o puerta de enlace simple para acceder de forma remota a sitios remotos. Seleccionemos nuestro virtual hub
y habilitemos la función SecureNAT
.
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
> Hub myFirstHUB
> SecureNatEnable
Crear usuarios
Comando para crear un usuario: UserCreate
Después de la creación del usuario, debemos establecer una contraseña. Tenga en cuenta que es posible utilizar otros métodos de autenticación: NTLM
, RADIUS
, etc. El método de autenticación predeterminado es "contraseña". Comando para establecer la contraseña: UserPasswordSet
Configuración del cliente
SoftEther proporciona clientes para muchos sistemas operativos, incluido Linux.
Descargar el cliente
Usaremos el comando wget
para descargar el cliente.
$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Client/64bit_-_Intel_x64_or_AMD64/softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Descomprimir las fuentes
$ tar xzf softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Instalar desde las fuentes
La compilación del cliente es similar a la del servidor.
$ cd vpnclient
$ sudo make
Después de la instalación cambiamos los permisos de los archivos de la siguiente manera:
$ sudo chmod 600 *
$ sudo chmod 700 vpnclient
$ sudo chmod 700 vpncmd
Ahora podemos iniciar el cliente VPN y realizar la configuración requerida para conectarnos al servidor.
$ sudo ./vpnclient start
$ sudo ./vpncmd
Seleccione 2
para ingresar a "Administración del cliente VPN". Y realiza estas acciones:
Cree un adaptador virtual (use
NiceCreate
, proporcione "cualquier" nombre que desee)Cree una conexión VPN (
AccountCreate account0
)Especifique el nombre de host del servidor de destino y el número de puerto (servidor:puerto)
Seleccione el
virtual hub
al que desea conectarse (en nuestro caso estamos usando "myFirstHUB" creado en el servidor)Ingrese el nombre de usuario
Utilice el adaptador virtual creado anteriormente
Ahora podemos iniciar la conexión del cliente VPN. Antes de hacerlo, tenemos que especificar la contraseña del usuario que hemos configurado previamente en la conexión VPN.
> AccountPassword account0
> standard
> AccountConnect account0
El cliente ahora está conectado pero no se asigna ninguna dirección IP al adaptador virtual. Como último paso, debemos solicitar una dirección IP del servidor VPN. Podemos usar el comando ifconfig
para encontrar el adaptador virtual vpn (con el prefijo vpn_
) y luego usar el comando dhclient
para solicitar una dirección IP.
$ sudo dhclient vpn_ethvpn0
Después de este comando, el cliente VPN obtendrá una dirección IP del servidor VPN SoftEther y podrá comunicarse con la LAN remota.
Gracias por tu interés en este artículo. Agradecemos sus preguntas y mejoras.