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
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.