Nastavení vlastního virtuálního privátního síťového serveru je dobrý způsob, jak se vyhnout blokování a mít přístup na stránky, které jsou ve vaší zemi blokovány. Výběr open source balíčků VPN je dlouhý, ale dnes jsme se rozhodli vyzkoušet Softether z University of Tsukuba v Japonsku. Softether je již dlouho proprietární produkt pod názvem PacketX a teprve před několika lety byl otevřen jako open source. To může být důvod, proč je tak orientovaný na Windows, konfigurační GUI je pouze pro Windows a připojení z linuxových klientů vyžaduje práci navíc. Budeme zde používat pouze Linux a žádná GUI, takže začněme. Na začátku pojďme aktualizovat systém, nainstalovat závislosti a deaktivovat 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
Po tomto restartujte počítač, takže selinux zastaví a spustí se nové jádro, pokud aktualizace obsahuje nějaké nové jádro. Po spuštění serveru vypněte obě brány firewall, protože mohou rušit testování. Pravidla brány firewall budou nastavena po konfiguraci všech
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
service iptables save
service iptables stop
chkconfig iptables off
Z těchto dvou dávek příkazů bude jeden chybový, protože nepoužíváte dvě brány firewall. Dále musíme cd do /usr/src, stáhnout Softether, rozbalit a zkompilovat. Použijeme verzi 4.20 Softether, která je v době psaní nejnovější rtm verze. Existuje také 4.21, ale to je 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 vám na konci položí tři otázky, na všechny musíte odpovědět 1.
Dále musíme vytvořit init skript pro softether, protože jeden není součástí instalace. Spusťte tedy vi /etc/init.d/vpnserver a vložte tento skript.
#!/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
Dále je třeba přidat spustitelný bit do init skriptu a poprvé jej spustit starým způsobem a poté jej povolit pomocí systemd, aby se spustil při každém spuštění.
chmod +x /etc/init.d/vpnserver
/etc/init.d/vpnserver start
systemctl enable vpnserver
Nevadí, že si stěžuje na rozhraní tap, to je proto, že jsme ho přidali do init skriptu a začali s softetherem, ale ještě jsme nevytvořili tap rozhraní v softether config. K tomu druhému se dostaneme.
Softether je nainstalován, nyní konfigurujeme
Přesuneme-li se do konfigurační části, musíme spustit obslužný program vpncmd
/usr/local/vpnserver/vpncmd
Stisknutím 1 vyberte "Správa VPN serveru nebo VPN Bridge" a poté, když se vás zeptá, který server nakonfigurovat, stačí stisknout enter a vybere localhost, kam jste právě nainstalovali Softether. Stiskněte Enter ještě jednou, abyste získali přístup k serveru jako správce. Další typ
ServerPasswordSet
pro nastavení hesla správce pro server. Aby bylo možné používat softether, je třeba vytvořit virtuální hub. Vytvoříme jeden s názvem MOB pomocí následujícího příkazu
HubCreate MOB
Požádá vás o nastavení hesla, které budete používat ke správě hubu, bez přístupu k celému serveru VPN.
Nyní musíme vytvořit místní most. To je efektivnější ze způsobů, existuje také SecureNAT, který se snadněji nastavuje, ale je náročný na zdroje. Půjdeme s místním mostem a klepnutím na zařízení, všimněte si, že s místním mostem je také potřeba nakonfigurovat a nainstalovat server DHCP, což bude stačit na konci tutoriálu. Lokální most je tedy vytvořen následujícím příkazem:
BridgeCreate /DEVICE:"soft" /TAP:yes MOB
Pokud se vytvoření zařízení TAP nezdaří se zprávou o nedostatečných oprávněních, možná budete chtít zkontrolovat, zda je váš síťový řadič nastaven v promiskuitním režimu. HyperV a VMware ve výchozím nastavení vytvářejí virtuální počítače bez promiskuitního režimu. Nastavte promiskuitní režim a poté opakujte vytvoření výčepního zařízení.
Nyní musíme vytvořit uživatele pro virtuální hub MOB, který jsme vytvořili. Uživatelé se vytvářejí příkazem UserCreate a seznam uživatelů můžete zobrazit příkazem UserList. Uživatelé mohou být přidáni do skupin a každá skupina může mít jiný režim ověřování, například Heslo, Certifikát, RADIUS, NTLM a další.
Konfigurace virtuálního rozbočovače
Nyní přepneme na hub MOB
Hub MOB
a vytvořit uživatele
UserCreate test
Budeme to dělat jednoduše a použijeme ověření heslem, takže použijte následující příkaz
UserPasswordSet test
Nyní nastavíme L2TP/IPSec, zpracujeme výzvu následovně, tučně je to, co musíte napsat:
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.
To je vše pro IPsec, ale chceme mít i jiné protokoly. Například protokoly OpenVPN a Microsoft. Používáme ServerCertRegenerate příkaz k vygenerování a registraci certifikátu SSL pro server, aby jej bylo možné použít pro klienty OpenVPN a Microsoft. Argument předaný příkazu musí být IP adresa vašeho serveru nebo FQDIN:
ServerCertRegenerate <YOUR SERVER IP or FQDN>
Byl vytvořen nový certifikát serveru, musíme jej uložit do souboru:
ServerCertGet ~/cert.cer
Tento certifikát lze nyní přenést na vaše klienty. Nyní můžeme povolit funkci SSTP pomocí tohoto příkazu:
SstpEnable yes
A jak povolit OpenVPN:
OpenVpnEnable yes /PORTS:1194
Port pro OpenVPN lze změnit podle vašich představ. Potom musíme vytvořit konfiguraci pro klienta OpenVPN, jako je tento
OpenVpnMakeConfig ~/openvpn_config.zip
VPN přes DNS a VPN přes ICMP
Zadejte Hub, chcete-li se vrátit ke správě celého vpn serveru a nejen MOB hubu.
VPN Server/MOB>Hub
Hub command - Select Virtual Hub to Manage
The Virtual Hub selection has been unselected.
The command completed successfully.
Abychom se maximálně vyhnuli všem blokádám, musíme také povolit VPN přes ICMP a DNS:
VpnOverIcmpDnsEnable /ICMP:yes /DNS:yes
VpnOverIcmpDnsEnable command - Enable / Disable the VPN over ICMP / VPN over DNS Server Function
The command completed successfully.
Nyní ukončete vpncmd, protože musíme zastavit vpnserver a nastavit dnsmasq
service vpnserver stop
Server DHCP, předávání a postrouting
Softether je nyní nakonfigurován, ale protože nepoužíváme SecureNAT a místo toho používáme místní most, budeme potřebovat server DHCP. dnsmasq je již nainstalován v první fázi tutoriálu, když jsme instalovali závislosti, takže jej nyní musíme nakonfigurovat. Musíme upravit /etc/dnsmasq.conf nebo použít příkaz echo k připojení potřebných řádků. Použijeme druhou možnost, a když už jsme u toho, budeme také opakovat 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
Použijte toto nastavení spuštěním
sysctl -n -e --system
Zkontrolujte, zda je použito:
cat /proc/sys/net/ipv4/ip_forward
Mělo by ukazovat 1. Pokud ukazuje 0, udělejte toto
echo 1 > /proc/sys/net/ipv4/ip_forward
Povolit nat a 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
Restartujte servery vpn a dhcp pomocí následujících příkazů a povolte jim spuštění při každém spuštění:
service vpnserver start
systemctl start dnsmasq
systemctl enable dnsmasq
chkconfig vpnserver on
Závěr
Tím je instalace a konfigurace serveru Softether VPN ukončena. Je nakonfigurován pomocí Local Bridge pro maximální výkon, nyní musíme pouze připojit klienty. Windows a Android jsou jednoduché, pro Windows stačí zamířit na web Softether a stáhnout si klienta GUI a připojit se. Pro Android nepotřebujete ani to, máte vestavěného VPN klienta. Ale pro Linux, abyste se mohli připojit, potřebujete přepínač Virtual Layer-3 na serveru a musíte spustit dhclient na virtuálním rozhraní na klientovi GNU/ Linuxový stroj. V budoucím článku se zaměříme na tohoto Desktop GNU/Linux klienta, který se lidem z Tsukuba University z nějakého důvodu nelíbí a vyžadují všechny tyto dodatečné kroky.