GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar el servidor Softether VPN 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 paquetes de 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 unos 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 trabajo adicional. Vamos a usar solo Linux y ninguna GUI aquí, así que comencemos. Al principio, actualicemos el sistema, instalemos dependencias y deshabilitemos 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 un nuevo kernel. Después de que se inicie el servidor, deshabilite ambos cortafuegos porque pueden interferir con las pruebas. Las reglas del cortafuegos 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. A continuación, necesitamos hacer un cd a /usr/src, descargar Softether, descomprimirlo y compilarlo. Usaremos la versión 4.20 de Softether, que se encuentra en el momento de escribir la versión rtm más reciente. 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 le hará tres preguntas al final, debe responder todas con 1.

A continuación, debemos crear un script de inicio para softether, ya que uno no está incluido 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 arranque.

chmod +x /etc/init.d/vpnserver

/etc/init.d/vpnserver start

systemctl enable vpnserver

No importa que se queje sobre la interfaz de tap, eso se debe a que lo agregamos al script de inicio y lo hicimos comenzar con softether pero aún no hicimos la interfaz de tap en la configuración de softether. Llegaremos a esto ú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 Entrar 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 usar softether, se debe crear un centro virtual. Crearemos uno llamado MOB con el siguiente comando

HubCreate MOB

Le pedirá que establezca una contraseña, que usará 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 está SecureNAT, que es más fácil de configurar pero requiere muchos recursos. Iremos con el puente local y el dispositivo tap, tenga en cuenta que con el puente local también se debe configurar e instalar el servidor DHCP, lo que se 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 por defecto crean máquinas virtuales sin modo promiscuo. Configure el modo promiscuo y luego vuelva a intentar la creación del dispositivo tap.

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. Se pueden agregar usuarios 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 centro virtual

Ahora cambiamos al concentrador MOB

Hub MOB

y crear usuario

UserCreate test

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

UserPasswordSet test

Ahora configuramos L2TP/IPSec, trabaje en el indicador de la siguiente manera, en negrita es lo que debe 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 para poder usarlo 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. Luego necesitamos crear una configuración para el cliente OpenVPN como esta

OpenVpnMakeConfig ~/openvpn_config.zip

VPN sobre DNS y VPN sobre ICMP

Escriba Hub para volver a administrar todo el servidor vpn 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 la evasión máxima de todos los bloqueos, también debemos 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 servidor vpn y configurar dnsmasq

service vpnserver stop

Servidor DHCP, reenvío y postenrutamiento

Softether ahora está configurado, pero dado que no estamos usando SecureNAT y vamos con un puente local en su lugar, necesitaremos un servidor DHCP. El dnsmasq ya está instalado en la primera etapa del tutorial cuando instalamos las dependencias, por lo que ahora debemos 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

Aplique 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 posenrutamiento:

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 permita que se inicien en cada arranque:

service vpnserver start

systemctl start dnsmasq

systemctl enable dnsmasq

chkconfig vpnserver on

Conclusión

Eso concluye la instalación y configuración del servidor Softether VPN. Está configurado con Local Bridge para un máximo rendimiento, solo ahora necesitamos conectar clientes. Los de Windows y Android son fáciles, para Windows solo 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 incorporado. 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/ maquina linux En un artículo futuro nos concentraremos en este cliente GNU/Linux de escritorio que, por alguna razón, a los chicos de la Universidad de Tsukuba no les gusta y requieren todos estos pasos adicionales.


Cent OS
  1. Cómo instalar el servidor de Minecraft en CentOS 7

  2. Cómo instalar Nginx en CentOS 8

  3. Cómo instalar PostgreSQL en CentOS 8

  4. Cómo instalar el servidor Teamspeak 3 en CentOS 8

  5. Cómo instalar ProFTPD en CentOS 7

Cómo instalar Shoutcast Server en CentOS 8

Cómo instalar Lighttpd en CentOS

Cómo instalar VPN PPTP en CentOS 6

Cómo instalar VestaCP en CentOS 6

Cómo instalar el servidor VNC en CentOS 7

Cómo instalar el servidor de Minecraft en CentOS 6