GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare il server VPN Softether su Centos 7

Configurare il tuo server di rete privata virtuale è un buon modo per eludere il blocco ed essere in grado di accedere ai siti che sono bloccati nel tuo paese. La scelta dei pacchetti VPN open source è lunga ma oggi abbiamo deciso di provare Softether proveniente dall'Università di Tsukuba in Giappone. Softether è stato a lungo un prodotto proprietario sotto il nome di PacketX ed è stato open source solo diversi anni fa. Questo potrebbe essere il motivo per cui è così orientato a Windows, la GUI di configurazione è solo Windows e la connessione dai client Linux richiede lavoro extra. Useremo solo Linux e nessuna GUI qui, quindi iniziamo. All'inizio, aggiorniamo il sistema, installiamo le dipendenze e disabilitiamo 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

Dopo questo riavviare il computer in modo che selinux si fermi e si avvii il nuovo kernel se l'aggiornamento ha un nuovo kernel. Dopo l'avvio del server, disabilitare entrambi i firewall perché possono interferire con i test. Le regole del firewall verranno impostate dopo aver configurato tutto

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

service iptables save
service iptables stop
chkconfig iptables off

Di questi due batch di comandi, uno comporterà un errore perché non stai eseguendo due firewall. Quindi abbiamo bisogno di cd su /usr/src, scaricare Softether, scompattarlo e compilarlo. Utilizzeremo la versione 4.20 di Softether che è al momento di scrivere l'ultima versione rtm. C'è anche 4.21 ma è 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

Compila ti farà tre domande alla fine, devi rispondere a tutte con 1.

Successivamente è necessario creare uno script init per softether, poiché uno non è incluso nell'installazione. Quindi esegui vi /etc/init.d/vpnserver e incolla questo 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

Successivamente è necessario aggiungere il bit eseguibile allo script init e avviarlo per la prima volta alla vecchia maniera e quindi abilitarlo con systemd per avviarlo ad ogni avvio.

chmod +x /etc/init.d/vpnserver

/etc/init.d/vpnserver start

systemctl enable vpnserver

Non importa se si lamenta dell'interfaccia tap, perché l'abbiamo aggiunto allo script init e l'abbiamo fatto iniziare con softether ma non abbiamo ancora creato l'interfaccia tap nella configurazione softether. Arriveremo a quest'ultimo.

Softether è installato, ora configuriamo

Passando alla parte di configurazione, dobbiamo avviare l'utilità vpncmd

/usr/local/vpnserver/vpncmd

Premi 1 per selezionare "Gestione del server VPN o del ponte VPN", quindi quando ti chiede quale server configurare, premi semplicemente invio e sceglierà localhost dove hai appena installato Softether. Premi Invio ancora una volta per ottenere l'accesso al server come amministratore. Tipo successivo

ServerPasswordSet

per impostare la password amministratore per il server. Per utilizzare softether, è necessario creare un hub virtuale. Ne creeremo uno chiamato MOB con il seguente comando

HubCreate MOB

Ti chiederà di impostare la password, che utilizzerai per amministrare un hub, senza accedere all'intero server VPN.

Ora dobbiamo creare un bridge locale. Questo è più efficiente dei modi, c'è anche SecureNAT che è più facile da configurare ma richiede molte risorse. Andremo con il bridge locale e toccando il dispositivo, si noti che con il bridge locale anche il server DHCP deve essere configurato e installato, cosa che verrà eseguita alla fine del tutorial. Quindi il bridge locale viene creato con il seguente comando:

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

Se la creazione del dispositivo TAP non riesce con un messaggio sui privilegi insufficienti, potresti voler controllare se il tuo controller di rete è impostato in modalità promiscua. HyperV e VMware per impostazione predefinita creano VM senza modalità promiscua. Imposta la modalità promiscua e poi riprova a creare il dispositivo tap.

Ora dobbiamo creare un utente per l'hub virtuale MOB che abbiamo creato. Gli utenti vengono creati con il comando UserCreate ed è possibile visualizzare l'elenco degli utenti tramite il comando UserList. Gli utenti possono essere aggiunti ai gruppi e ogni gruppo può avere modalità di autenticazione diverse, ad esempio Password, Certificato, RADIUS, NTLM e altri.

Configurazione dell'Hub virtuale

Ora passiamo all'hub MOB

Hub MOB

e crea utente

UserCreate test

Lo terremo semplice e useremo l'autenticazione della password, quindi usa il seguente comando

UserPasswordSet test

Ora configuriamo L2TP/IPSec, eseguiamo il prompt come segue, il grassetto è ciò che devi digitare:

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.

Questo è tutto per IPsec, ma vogliamo anche avere altri protocolli. Ad esempio i protocolli OpenVPN e Microsoft. Usiamo ServerCertRegenerate comando per generare e registrare un certificato SSL per il server in modo da poterlo utilizzare per client OpenVPN e Microsoft. L'argomento passato al comando deve essere l'indirizzo IP del tuo server o FQDIN:

ServerCertRegenerate <YOUR SERVER IP or FQDN>

È stato creato un nuovo certificato del server, dobbiamo salvarlo su file:

ServerCertGet ~/cert.cer

Questo certificato ora può essere trasferito ai tuoi clienti. Ora possiamo abilitare la funzione SSTP con questo comando:

SstpEnable yes

E per abilitare OpenVPN:

OpenVpnEnable yes /PORTS:1194

La porta per OpenVPN può essere modificata a tuo piacimento. Quindi dobbiamo creare la configurazione per il client OpenVPN in questo modo

OpenVpnMakeConfig ~/openvpn_config.zip

VPN su DNS e VPN su ICMP

Digitare Hub per tornare all'amministrazione dell'intero server VPN e non solo dell'hub MOB.

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

Per la massima evasione da tutti i blocchi, dobbiamo anche abilitare la VPN su ICMP e DNS:

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

Ora esci da vpncmd perché dobbiamo fermare vpnserver e configurare dnsmasq

service vpnserver stop

Server DHCP, inoltro e postrouting

Softether è ora configurato, ma poiché non stiamo utilizzando SecureNAT e invece stiamo utilizzando il bridge locale, sarà necessario un server DHCP. Il dnsmasq è già installato nella prima fase del tutorial quando abbiamo installato le dipendenze, quindi ora dobbiamo configurarlo. È necessario modificare /etc/dnsmasq.conf o utilizzare il comando echo per aggiungere le righe necessarie. Useremo quest'ultima opzione e mentre ci siamo, faremo anche eco a 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

Applica questa impostazione eseguendo

sysctl -n -e --system

Controlla se è applicato:

cat /proc/sys/net/ipv4/ip_forward

Dovrebbe mostrare 1. Se mostra 0, fallo

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

Abilita nat e 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

Riavvia i server vpn e dhcp con i seguenti comandi e abilita l'avvio ad ogni avvio:

service vpnserver start

systemctl start dnsmasq

systemctl enable dnsmasq

chkconfig vpnserver on

Conclusione

Ciò conclude l'installazione e la configurazione del server Softether VPN. È configurato con Local Bridge per le massime prestazioni, solo ora dobbiamo connettere i client. Quelli per Windows e Android sono facili, per Windows ti basta andare sul sito Softether e scaricare il client GUI e connetterti. Per Android, non ti serve nemmeno quello, hai un client VPN integrato. Ma per Linux, per poterti connettere, hai bisogno dell'interruttore Virtual Layer-3 su Server e devi eseguire dhclient sull'interfaccia virtuale sul client GNU/ macchina Linux. In un prossimo articolo ci concentreremo su questo client desktop GNU/Linux che per qualche motivo ai ragazzi della Tsukuba University non piace e richiedono tutti questi passaggi aggiuntivi.


Cent OS
  1. Come installare il server Minecraft su CentOS 7

  2. Come installare Nginx su CentOS 8

  3. Come installare PostgreSQL su CentOS 8

  4. Come installare Teamspeak 3 Server su CentOS 8

  5. Come installare ProFTPD su CentOS 7

Come installare Shoutcast Server su CentOS 8

Come installare Lighttpd su CentOS

Come installare VPN PPTP su CentOS 6

Come installare VestaCP su CentOS 6

Come installare il server VNC su CentOS 7

Come installare il server Minecraft su CentOS 6