Das Einrichten Ihres eigenen virtuellen privaten Netzwerkservers ist eine gute Möglichkeit, Blockierungen zu umgehen und auf Websites zuzugreifen, die in Ihrem Land blockiert sind. Die Auswahl an Open-Source-VPN-Paketen ist lang, aber heute haben wir uns entschieden, Softether von der University of Tsukuba in Japan auszuprobieren. Softether ist seit langem ein proprietäres Produkt unter dem Namen PacketX und wurde erst vor einigen Jahren als Open Source veröffentlicht. Das mag der Grund sein, warum es so Windows-orientiert ist, die Konfigurations-GUI nur Windows ist und die Verbindung von Linux-Clients zusätzliche Arbeit erfordert. Wir werden hier nur Linux und keine GUIs verwenden, also fangen wir an. Lassen Sie uns am Anfang das System aktualisieren, Abhängigkeiten installieren und SElinux deaktivieren
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
Nach diesem Neustart des Computers also selinux stoppen und neuen Kernel starten, wenn das Update einen neuen Kernel hatte. Deaktivieren Sie nach dem Hochfahren des Servers beide Firewalls, da sie das Testen beeinträchtigen können. Die Firewall-Regeln werden festgelegt, nachdem alles konfiguriert wurde
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
service iptables save
service iptables stop
chkconfig iptables off
Von diesen beiden Stapeln von Befehlen wird einer einen Fehler verursachen, da Sie nicht zwei Firewalls ausführen. Als nächstes müssen wir nach /usr/src cd, den Softether herunterladen, entpacken und kompilieren. Wir werden die Version 4.20 von Softether verwenden, die zum Zeitpunkt des Schreibens der neuesten RTM-Version ist. Es gibt auch 4.21, aber das ist 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 stellt dir am Ende drei Fragen, die du alle mit 1 beantworten musst.
Als nächstes müssen wir ein Init-Skript für Softether erstellen, da eines nicht in der Installation enthalten ist. Führen Sie also vi /etc/init.d/vpnserver aus und fügen Sie dieses Skript ein.
#!/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
Als nächstes müssen Sie das ausführbare Bit zum Init-Skript hinzufügen und es zum ersten Mal auf die altmodische Weise starten und es dann mit systemd aktivieren, um es bei jedem Start zu starten.
chmod +x /etc/init.d/vpnserver
/etc/init.d/vpnserver start
systemctl enable vpnserver
Es macht nichts, dass es sich über die Tap-Schnittstelle beschwert, das liegt daran, dass wir es zum Init-Skript hinzugefügt und es mit Softether gestartet haben, aber die Tap-Schnittstelle noch nicht in der Softether-Konfiguration erstellt haben. Zu Letzterem kommen wir noch.
Softether ist installiert, jetzt konfigurieren wir
Um zum Konfigurationsteil überzugehen, müssen wir das Dienstprogramm vpncmd starten
/usr/local/vpnserver/vpncmd
Drücken Sie 1, um „Management of VPN Server or VPN Bridge“ auszuwählen, und wenn Sie dann gefragt werden, welcher Server konfiguriert werden soll, drücken Sie einfach die Eingabetaste und es wird der lokale Host ausgewählt, auf dem Sie gerade Softether installiert haben. Drücken Sie noch einmal die Eingabetaste, um als Administrator Zugriff auf den Server zu erhalten. Nächster Typ
ServerPasswordSet
um das Admin-Passwort für den Server festzulegen. Um Softether verwenden zu können, muss ein virtueller Hub erstellt werden. Wir werden einen namens MOB mit folgendem Befehl erstellen
HubCreate MOB
Sie werden aufgefordert, ein Passwort festzulegen, mit dem Sie einen Hub verwalten, ohne Zugriff auf den gesamten VPN-Server.
Jetzt müssen wir eine lokale Brücke erstellen. Das ist effizienter, es gibt auch SecureNAT, das einfacher einzurichten, aber ressourcenintensiv ist. Wir werden mit der lokalen Bridge und dem Tap-Gerät arbeiten, beachten Sie, dass mit der lokalen Bridge auch der DHCP-Server konfiguriert und installiert werden muss, was am Ende des Tutorials erledigt ist. Die lokale Brücke wird also mit folgendem Befehl erstellt:
BridgeCreate /DEVICE:"soft" /TAP:yes MOB
Wenn die TAP-Geräteerstellung mit einer Meldung über unzureichende Berechtigungen fehlschlägt, sollten Sie überprüfen, ob Ihr Netzwerkcontroller auf den Promiscuous-Modus eingestellt ist. HyperV und VMware erstellen standardmäßig VMs ohne Promiscuous-Modus. Stellen Sie den Promiscuous-Modus ein und versuchen Sie dann erneut, das Tap-Gerät zu erstellen.
Jetzt müssen wir einen Benutzer für den von uns erstellten virtuellen MOB-Hub erstellen. Benutzer werden mit dem Befehl UserCreate erstellt und Sie können die Liste der Benutzer mit dem Befehl UserList anzeigen. Benutzer können zu Gruppen hinzugefügt werden und jede Gruppe kann einen anderen Authentifizierungsmodus haben, zum Beispiel Passwort, Zertifikat, RADIUS, NTLM und andere.
Konfigurieren des virtuellen Hubs
Jetzt wechseln wir zu Hub MOB
Hub MOB
und Benutzer anlegen
UserCreate test
Wir werden es einfach halten und die Passwortauthentifizierung verwenden, also verwenden Sie den folgenden Befehl
UserPasswordSet test
Jetzt richten wir L2TP/IPSec ein, bearbeiten die Eingabeaufforderung wie folgt, fett ist das, was Sie eingeben müssen:
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.
Das war es für IPsec, aber wir wollen auch andere Protokolle haben. Zum Beispiel OpenVPN und Microsoft-Protokolle. Wir verwenden ServerCertRegenerate Befehl, ein SSL-Zertifikat für den Server zu generieren und zu registrieren, um es für OpenVPN- und Microsoft-Clients verwenden zu können. Das an den Befehl übergebene Argument muss Ihre Server-IP-Adresse oder FQDIN sein:
ServerCertRegenerate <YOUR SERVER IP or FQDN>
Ein neues Serverzertifikat wurde erstellt, wir müssen es in der Datei speichern:
ServerCertGet ~/cert.cer
Dieses Zertifikat kann nun auf Ihre Kunden übertragen werden. Wir können jetzt die SSTP-Funktion mit diesem Befehl aktivieren:
SstpEnable yes
Und um OpenVPN zu aktivieren:
OpenVpnEnable yes /PORTS:1194
Der Port für OpenVPN kann nach Belieben geändert werden. Dann müssen wir eine Konfiguration für den OpenVPN-Client wie diese erstellen
OpenVpnMakeConfig ~/openvpn_config.zip
VPN über DNS und VPN über ICMP
Geben Sie Hub ein, um zur Verwaltung des gesamten VPN-Servers und nicht nur des MOB-Hubs zurückzukehren.
VPN Server/MOB>Hub
Hub command - Select Virtual Hub to Manage
The Virtual Hub selection has been unselected.
The command completed successfully.
Für eine maximale Umgehung aller Blockaden müssen wir auch VPN über ICMP und DNS aktivieren:
VpnOverIcmpDnsEnable /ICMP:yes /DNS:yes
VpnOverIcmpDnsEnable command - Enable / Disable the VPN over ICMP / VPN over DNS Server Function
The command completed successfully.
Beenden Sie nun den vpncmd, da wir den vpnserver stoppen und dnsmasq einrichten müssen
service vpnserver stop
DHCP-Server, Weiterleitung und Postrouting
Softether ist jetzt konfiguriert, aber da wir SecureNAT nicht verwenden und stattdessen mit lokaler Bridge arbeiten, benötigen wir einen DHCP-Server. Der dnsmasq ist bereits in der ersten Phase des Tutorials installiert, als wir Abhängigkeiten installiert haben, also müssen wir ihn jetzt konfigurieren. Wir müssen /etc/dnsmasq.conf bearbeiten oder den Befehl echo verwenden, um die erforderlichen Zeilen daran anzuhängen. Wir werden letzteres Opton verwenden und wenn wir schon dabei sind, werden wir auch die ipv4_forwarding.conf
echoenecho 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
Wenden Sie diese Einstellung an, indem Sie
ausführensysctl -n -e --system
Überprüfen Sie, ob es angewendet wird:
cat /proc/sys/net/ipv4/ip_forward
Es sollte 1 anzeigen. Wenn es 0 anzeigt, tun Sie dies
echo 1 > /proc/sys/net/ipv4/ip_forward
Aktivieren Sie nat und 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
Starten Sie VPN- und DHCP-Server mit den folgenden Befehlen neu und ermöglichen Sie ihnen, bei jedem Start zu starten:
service vpnserver start
systemctl start dnsmasq
systemctl enable dnsmasq
chkconfig vpnserver on
Schlussfolgerung
Damit ist die Installation und Konfiguration des Softether VPN-Servers abgeschlossen. Es ist mit Local Bridge für maximale Leistung konfiguriert, wir müssen jetzt nur noch Clients verbinden. Die Windows- und Android-Versionen sind einfach, für Windows gehen Sie einfach zur Softether-Site, laden den GUI-Client herunter und stellen eine Verbindung her. Für Android brauchen Sie nicht einmal das, Sie haben einen VPN-Client eingebaut. Aber für Linux, um eine Verbindung herstellen zu können, benötigen Sie einen virtuellen Layer-3-Switch auf dem Server, und Sie müssen dhclient auf der virtuellen Schnittstelle auf dem Client GNU/ ausführen. Linux-Maschine. In einem zukünftigen Artikel werden wir uns auf diesen Desktop-GNU/Linux-Client konzentrieren, den die Leute von der Tsukuba-Universität aus irgendeinem Grund nicht mögen und all diese zusätzlichen Schritte benötigen.