LINUX

Cómo instalar el servidor VPN Softether en Centos 7

Configurar su propio servidor de red privada virtual es una buena manera de evadir el bloqueo y poder acceder a sitios que están bloqueados en su país. La elección de los paquetes VPN de código abierto es larga, pero hoy decidimos probar Softether proveniente de la Universidad de Tsukuba en Japón. Softether ha sido durante mucho tiempo un producto patentado con el nombre de PacketX y ha sido de código abierto hace solo varios años. Esa puede ser la razón por la que está tan orientado a Windows, la GUI de configuración es solo para Windows y la conexión desde clientes Linux requiere un trabajo adicional. Vamos a utilizar sólo Linux y no GUI aquí, así que comencemos. Al principio, actualice el sistema, instalemos dependencias y desactivemos SElinux

yum update
yum -y groupinstall "Development Tools"
yum -y install gcc zlib-devel openssl-devel readline-devel ncurses-devel wget tar dnsmasq net-tools iptables-services system-config-firewall-tui nano iptables-services

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Después de esto, reinicie la computadora para que selinux se detenga y se inicie un nuevo kernel si la actualización tiene algún kernel nuevo. Después de que se inicie el servidor, desactive ambos firewalls porque pueden interferir con las pruebas. Las reglas del firewall se establecerán después de que todo esté configurado

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

service iptables save
service iptables stop
chkconfig iptables off

De esos dos lotes de comandos, uno generará un error porque no está ejecutando dos firewalls. Luego necesitamos cd a / usr / src, descargar el Softether, descomprimirlo y compilarlo. Usaremos la versión 4.20 de Softether, que está en el momento de escribir la versión más reciente de rtm. También hay 4.21 pero eso es beta.

wget www.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz

Descarga suave

tar xzvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz -C /usr/local

cd /usr/local/vpnserver
make

Compile te hará tres preguntas al final, debes responder todas con 1.

A continuación, necesitamos crear un script de inicio para software, ya que no se incluye uno en la instalación. Así que ejecute vi /etc/init.d/vpnserver y pegue este script.

#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable Softether by daemon.
### END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
TAP_ADDR=192.168.7.1

test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

A continuación, debe agregar el bit ejecutable al script de inicio e iniciarlo por primera vez a la antigua usanza y luego habilitarlo con systemd para que se inicie en cada inicio.

chmod +x /etc/init.d/vpnserver

/etc/init.d/vpnserver start

systemctl enable vpnserver

No importa que tenga quejas sobre la interfaz de tap, eso se debe a que lo agregamos al script de inicio y lo hicimos comenzar con suavidad, pero aún no hicimos la interfaz de tap en configuración de configuración suave. Llegaremos a eso último.

Softether está instalado, ahora configuramos

Pasando a la parte de configuración, necesitamos iniciar la utilidad vpncmd

/usr/local/vpnserver/vpncmd

Presione 1 para seleccionar «Administración de servidor VPN o Puente VPN», y luego cuando le pregunte qué servidor configurar, simplemente presione enter y elegirá localhost donde acaba de instalar Softether. Presione Enter una vez más para obtener acceso al servidor como administrador. Siguiente tipo

ServerPasswordSet

para establecer la contraseña de administrador para el servidor. Para utilizar más suave, es necesario crear un concentrador virtual. Crearemos uno llamado MOB con el siguiente comando

HubCreate MOB

Le pedirá que establezca una contraseña, que utilizará para administrar un concentrador, sin acceso a todo el servidor VPN.

Ahora necesitamos crear un puente local. Eso es más eficiente de las formas, también hay SecureNAT que es más fácil de configurar pero consume muchos recursos. Iremos con el puente local y el dispositivo de toque, tenga en cuenta que con el puente local también se debe configurar e instalar el servidor DHCP, lo que hará al final del tutorial. Entonces el puente local se crea con el siguiente comando:

BridgeCreate /DEVICE:"soft" /TAP:yes MOB

Si la creación del dispositivo TAP falla con un mensaje sobre privilegios insuficientes, es posible que desee verificar si su controlador de red está configurado en modo promiscuo. HyperV y VMware crean máquinas virtuales de forma predeterminada sin modo promiscuo. Configure el modo promiscuo y luego vuelva a intentar la creación del dispositivo de grifo.

Ahora necesitamos crear un usuario para el centro virtual MOB que creamos. Los usuarios se crean con el comando UserCreate y puede ver la lista de usuarios con el comando UserList. Los usuarios se pueden agregar a grupos y cada grupo puede tener un modo de autenticación diferente, por ejemplo, contraseña, certificado, RADIUS, NTLM y otros.

Configuración del concentrador virtual

Ahora cambiamos a hub MOB

Hub MOB

y crear usuario

UserCreate test

Lo mantendremos simple y usaremos la autenticación de contraseña, así que use el siguiente comando

UserPasswordSet test

Ahora configuramos L2TP / IPSec, trabaje el indicador de la siguiente manera, negrita es lo que necesita escribir:

VPN Server/MOB>IPsecEnable
IPsecEnable command - Enable or Disable IPsec VPN Server Function
Enable L2TP over IPsec Server Function (yes / no): yes

Enable Raw L2TP Server Function (yes / no): yes

Enable EtherIP / L2TPv3 over IPsec Server Function (yes / no): yes

Pre Shared Key for IPsec (Recommended: 9 letters at maximum): linoxide

Default Virtual HUB in a case of omitting the HUB on the Username: MOB

The command completed successfully.

Eso es todo para IPsec, pero también queremos tener otros protocolos. Por ejemplo, los protocolos OpenVPN y Microsoft. Usamos ServerCertRegenerate comando para generar y registrar un certificado SSL para el servidor con el fin de poder utilizarlo para clientes OpenVPN y Microsoft. El argumento pasado al comando debe ser la dirección IP de su servidor o FQDIN:

ServerCertRegenerate <YOUR SERVER IP or FQDN>

Se ha creado un nuevo certificado de servidor, debemos guardarlo en el archivo:

ServerCertGet ~/cert.cer

Este certificado ahora se puede transferir a sus clientes. Ahora podemos habilitar la función SSTP con este comando:

SstpEnable yes

Y para habilitar OpenVPN:

OpenVpnEnable yes /PORTS:1194

El puerto para OpenVPN se puede cambiar a su gusto. Entonces necesitamos crear una configuración para el cliente OpenVPN como este

OpenVpnMakeConfig ~/openvpn_config.zip

VPN sobre DNS y VPN sobre ICMP

Escriba Hub para volver a administrar el servidor vpn completo y no solo el concentrador MOB.

VPN Server/MOB>Hub
Hub command - Select Virtual Hub to Manage
The Virtual Hub selection has been unselected.
The command completed successfully.

Para una evasión máxima de todos los bloqueos, también necesitamos habilitar VPN sobre ICMP y DNS:

VpnOverIcmpDnsEnable /ICMP:yes /DNS:yes
VpnOverIcmpDnsEnable command - Enable / Disable the VPN over ICMP / VPN over DNS Server Function
The command completed successfully.

Ahora salga de vpncmd porque necesitamos detener el vpnserver y configurar dnsmasq

service vpnserver stop

Servidor DHCP, reenvío y postrouting

Softether ahora está configurado, pero dado que no estamos usando SecureNAT y vamos con un puente local, necesitaremos un servidor DHCP. El dnsmasq ya está instalado en la primera etapa del tutorial cuando instalamos las dependencias, así que ahora necesitamos configurarlo. Necesitamos editar /etc/dnsmasq.conf o usar el comando echo para agregarle las líneas necesarias. Usaremos la última opción y mientras lo hacemos, también haremos eco de ipv4_forwarding.conf

echo interface=tap_soft >> /etc/dnsmasq.conf
echo dhcp-range=tap_soft,192.168.7.50,192.168.7.90,12h >> /etc/dnsmasq.conf
echo dhcp-option=tap_soft,3,192.168.7.1 >> /etc/dnsmasq.conf
echo port=0 >> /etc/dnsmasq.conf
echo dhcp-option=option:dns-server,8.8.8.8 >> /etc/dnsmasq.conf

echo net.ipv4.ip_forward = 1 >> /etc/sysctl.d/ipv4_forwarding.conf

Aplicar esta configuración ejecutando

sysctl -n -e --system

Compruebe si se aplica:

cat /proc/sys/net/ipv4/ip_forward

Debería mostrar 1. Si muestra 0, haz esto

echo 1 > /proc/sys/net/ipv4/ip_forward

Habilitar nat y postrouting:

iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to-source [YOUR SERVER IP ADDRESS]

iptables-save > /etc/sysconfig/iptables

Reinicie los servidores vpn y dhcp con los siguientes comandos y habilítelos para que se inicien en cada arranque:

service vpnserver start

systemctl start dnsmasq

systemctl enable dnsmasq

chkconfig vpnserver on

Conclusión

Con eso concluye la instalación y configuración del servidor Softether VPN. Está configurado con Local Bridge para un rendimiento máximo, ahora solo necesitamos conectar clientes. Los de Windows y Android son fáciles, para Windows simplemente diríjase al sitio de Softether y descargue el cliente GUI y conéctese. Para Android, no necesita ni siquiera eso, tiene un cliente VPN integrado. Pero para Linux, para poder conectarse, necesita el interruptor Virtual Layer-3 en el servidor, y debe ejecutar dhclient en la interfaz virtual en el cliente GNU / Máquina Linux. En un artículo futuro nos concentraremos en este cliente de escritorio GNU / Linux que a los chicos de la Universidad de Tsukuba por alguna razón no les gusta y requieren todos estos pasos adicionales.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar