如何使用SoftEther設置多協議VPN服務器
介紹
本文介紹了如何使用SoftEther軟件包安裝和配置多協議VPN服務器。我們在Linux上通過IPSec和SSTP VPN服務器啟用和配置OpenVPN和L2TP。
什么是SoftEther
SoftEther VPN是世界上功能最強大,易於使用的多協議VPN軟件之一,由日本築波大學的好伙伴開發。它可以在Windows,Linux,Mac,FreeBSD和Solaris上運行,並且是免費軟件和開放源代碼。您可以免費將SoftEther用於任何個人或商業用途。
步驟1:創建虛擬服務器
首先,您需要創建一個DigitalOcean Droplet。如SoftEther的網站所述,SoftEther將在內核v2.4或更高版本的幾乎所有Linux發行版上運行;但是,建議選擇以下發行版之一:CentOS,Fedora或Red Hat Enterprise Linux。
我個人曾在32位和64位版本的Ubuntu,CentOS和Fedora上進行過嘗試,並且運行良好。
步驟2:更新伺服器軟體
使用以下命令,將服務器軟件包更新和升級到最新版本:
Debian / Ubuntu:
apt-get update && apt-get upgrade
CentOS / Fedora:
yum upgrade
步驟3:下載SoftEther
您可以從他們的網站下載最新的Linux版SoftEther服務器軟件包:
不幸的是,目前無法通過程序包管理器獲取最新版本(甚至使用單個URL)。因此,您必須使用桌面瀏覽器瀏覽他們的網站以下載軟件包。有兩種處理方法:首先,在您自己的計算機上瀏覽其網站,然后根據您的服務器配置(OS,x86 / x64等)找到相應軟件包的鏈接,然后使用wget下載該軟件包。打包到您的服務器。或者,您可以使用基於終端的Web瀏覽器(例如lynx)來瀏覽SoftEther網站並下載正確的軟件包。
使用lynx的方法如下:
首先在您的服務器上安裝lynx:
Debian / Ubuntu:
apt-get install lynx -y
CentOS / Fedora:
yum install lynx -y
現在,使用下面的命令瀏覽SoftEther下載網頁:
lynx http://www.softether-download.com/files/softether/
此頁面包含可用的所有版本的SoftEther。選擇所需的版本(在本教程中,我們使用v2.00-9387-rtm-2013.09.16),然后按Enter鍵轉到鏈接。現在選擇Linux,然后在下一頁中選擇SoftEther VPN Server。根據您的服務器硬件架構,選擇一個程序包;在32位-英特爾的x86和64位-英特爾的x64或者AMD64為DigitalOcean 32位或64位微滴的工作。最后,通過按鏈接上的“ D”鍵從下一頁下載tar文件,並在Lynx詢問時選擇“保存到磁盤”。保存文件后,我們可以按“ Q”退出Lynx並繼續進行安裝。
步驟4:安裝和配置SoftEther
現在,我們必須提取從SoftEther下載頁面收到的軟件包並進行編譯。本教程中使用的軟件包名為softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz,因此我們將使用以下命令將其提取:
tar xzvf softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
解壓縮后,將在工作文件夾中創建一個名為vpnserver的目錄。為了編譯SoftEther,必須在服務器上安裝以下工具和軟件包:
make,gccbinutils(gcc),libc(glibc),zlib,openssl,readline和ncurses
確保已安裝這些。您可以使用以下命令安裝構建SoftEther所需的所有軟件包:
Debian / Ubuntu:
apt-get install build-essential -y
CentOS / Fedora:
yum groupinstall "Development Tools"
注意:在Fedora上,我發現沒有使用上述命令安裝gcc軟件包,因此您必須使用yum install gcc手動安裝它。
現在,我們已經安裝了所有必需的軟件包,我們可以使用以下命令來編譯SoftEther:
首先“ cd”進入vpnserver目錄:
cd vpnserver
現在運行“ make”將SoftEther編譯為可執行文件:
make
SoftEther將要求您閱讀並同意其許可協議。選擇1以閱讀協議,再次確認已閱讀,最后選擇同意許可協議。
現在,SoftEther已編譯並制成可執行文件(vpnserver和vpncmd)。如果該過程失敗,請檢查是否已安裝所有需求包。
現在已經編譯了SoftEther,我們可以將vpnserver目錄移動到其他地方,在這里我們將其移動到usr / local:
cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/
然后更改文件權限以保護它們:
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
如果您希望SoftEther在啟動時作為服務啟動,請在/etc/init.d目錄中創建一個名為vpnserver的文件,並將其更改為以下內容:
首先使用vi
或創建並打開文件nano
:
vi /etc/init.d/vpnserver
並將以下內容粘貼到文件中:
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
最后,按esc並鍵入:wq以關閉vim,以保存並關閉文件。
如果一個目錄不存在,我們必須在/ var / lock / subsys中建立一個目錄:
mkdir /var/lock/subsys
現在,更改啟動腳本的權限,並使用以下命令啟動vpnserver:
chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start
使用以下命令使其在啟動時運行:
Debian / Ubuntu:
update-rc.d vpnserver defaults
CentOS / Fedora:
chkconfig --add vpnserver
現在已安裝SoftEther VPN Server,並將其配置為在啟動時運行。最后,我們必須檢查VPN服務器是否正常工作:
cd /usr/local/vpnserver
./vpncmd
現在按3選擇“使用VPN工具”,然后鍵入:
check
如果所有檢查均通過,則您的服務器已准備好成為SoftEther VPN服務器,您可以繼續下一步。輸入“ exit”退出VPN Tools。
有兩種方法可以配置SoftEther VPN服務器:您可以使用基於Windows的服務器管理器從遠程管理和配置任意數量的SoftEther VPN服務器。或使用內置的vpncmd工具配置服務器。
您可以使用他們的網站下載適用於Windows的SoftEther Server Manager,並使用其提供的GUI進行配置,如果您是Windows用戶,這是一種更好的選擇。
在這里,我們使用vpncmd來配置我們的VPN服務器。
步驟5:更改管理員密碼
現在,您已經安裝了SoftEther VPN服務器,您必須分配管理員密碼才能與SoftEther一起使用。您可以使用vpncmd進行此操作,vpncmd是SoftEther的基於命令行的管理工具:
./vpncmd
按1選擇“ VPN Server或VPN Bridge的管理”,然后按Enter而不輸入任何內容以連接到localhost服務器,再按Enter而不輸入任何內容以通過服務器管理模式連接到服務器。
然后使用以下命令更改管理員密碼:
ServerPasswordSet
步驟6:創建虛擬集線器
要使用SoftEther,我們必須首先創建一個虛擬集線器。在此,作為示例,我們創建一個名為VPN的集線器,以在vpncmd工具中輸入以下命令:
HubCreate VPN
接下來,將要求您輸入集線器的管理員密碼。每當您未以服務器管理員模式登錄並且要管理該特定集線器時,都將使用此密碼。
現在,選擇使用此命令創建的虛擬集線器:
Hub VPN
步驟7:啟用SecureNAT
有兩種將集線器連接到服務器網絡的方法:使用本地網橋連接或使用SecureNAT功能。
您可以單獨使用每個,但是同時使用這兩個會導致問題。
在這里,我們使用SecureNAT,它非常容易設置,並且在大多數情況下都可以很好地工作。您也可以使用Local Bridge,但隨后也必須安裝和配置DHCP服務器。
SecureNAT是虛擬NAT和DHCP服務器功能的組合。您可以使用以下命令啟用SecureNAT:
SecureNatEnable
步驟8:創建和管理用戶
現在,我們必須為虛擬集線器創建用戶才能使用VPN。我們可以使用UserCreate命令為Virtual Hub創建用戶,並通過UserList查看當前用戶的列表。可以將用戶添加到組,甚至可以具有不同類型的身份驗證模式(包括:密碼,證書,RADIUS,NTLM等)。
通過使用UserCreate命令,我們創建一個名為“ test”的用戶:
UserCreate test
身份驗證的默認類型是密碼,但是我們可以使用以下命令將其更改為其他類型:
UserNTLMSet
用於NT域驗證
UserPasswordSet
用於密碼驗證
UserAnonymousSet
用於匿名身份驗證
UserRadiusSet
用於RADIUS身份驗證
UserCertSet
用於個人證書認證
UserSignedSet
用於簽名證書認證
在本教程中,我們使用密碼作為測試用戶的用戶身份驗證模式,因此使用此命令為用戶測試設置密碼:
UserPasswordSet test
步驟9:設定L2TP / IPSec
要啟用L2TP / IPsec VPN服務器,可以使用以下命令:
IPsecEnable
輸入此命令后,將要求您配置L2TP服務器功能:
啟用IPsec服務器上的L2TP功能:選擇“是”以啟用具有預共享密鑰加密的IPSec上的L2TP VPN。現在,您可以使用iPhone,Android,Windows和Mac OS X設備與該服務器建立VPN連接。
啟用原始L2TP服務器功能:這將為沒有IPSec加密的客戶端啟用L2TP VPN。
通過IPsec服務器啟用EtherIP / L2TPv3功能:與通過IPsec兼容EtherIP / L2TPv3的路由器可以通過啟用此功能連接到該服務器。
IPsec的預共享密鑰:輸入要與L2TP VPN一起使用的預共享密鑰。
如果省略用戶名上的HUB,則為默認虛擬HUB:連接時,用戶必須使用Username @ TargetHubName作為用戶名來指定要嘗試連接的虛擬HUB 。如果用戶不提供此類信息,則此選項指定要使用的虛擬集線器。在我們的例子中,輸入VPN。
步驟10:設定SSTP / OpenVPN
SoftEther可以克隆Microsoft SSTP VPN服務器和OpenVPN服務器的功能。但是在啟用這些功能之前,我們必須為服務器生成一個自簽名SSL證書。您可以使用openssl或SoftEther自己的命令來生成SSL證書。
在這里,我們使用SoftEther的ServerCertRegenerate命令為我們的服務器生成並注冊一個自簽名SSL證書。傳遞給命令的參數是CN(通用名稱),並且必須設置為您的主機名(FQDN)或IP地址:
ServerCertRegenerate [CN]
注意1: SoftEther還帶有內置的動態DNS功能,可以為您的服務器分配唯一的永久主機名。您可以使用此功能分配的主機名來創建SSL證書並連接到服務器。
注2:如果您已經具有SSL證書,或者已使用openssl創建了一個SSL證書,則可以使用將該證書添加到服務器中ServerCertSet
。
現在,我們已經創建了證書,我們必須將證書下載到我們的客戶並將其添加為受信任的客戶。使用以下命令,我們將服務器證書保存到名為cert.cer的文件中:
ServerCertGet ~/cert.cer
現在,您可以使用FileZilla或任何其他SFTP客戶端將證書下載到客戶端。
若要使證書在Windows中受信任,必須將其安裝在“受信任的根證書頒發機構”存儲中。這是一篇介紹操作方法的文章(請閱讀“安裝證書鏈”部分):
現在我們已經為服務器創建並注冊了SSL證書,我們可以使用以下命令啟用SSTP功能:
SstpEnable yes
並啟用OpenVPN:
OpenVpnEnable yes /PORTS:1194
注意: OpenVPN的默認端口是1194,但是您可以通過將上面命令的/ PORTS:1194部分更改為所需的一個或多個端口,將其更改為所需的任何端口(是的,它支持多個端口)。
啟用OpenVPN后,您可以下載OpenVPN客戶端的示例配置文件。在這里,我們創建一個示例OpenVPN配置文件,並將其保存到我的openvpn config.zip中:
OpenVpnMakeConfig ~/my_openvpn_config.zip
然后,您可以使用任何SFTP客戶端(例如FileZilla)下載它,並將其應用於您的OpenVPN客戶端。
SoftEther還為Windows和Linux提供了專用的VPN客戶端軟件。它支持功能非常強大的稱為“基於HTTPS的以太網”或SSL-VPN的SoftEther特定協議。它使用HTTPS協議和端口443來建立VPN隧道,並且由於該端口是眾所周知的,幾乎所有的防火牆,代理服務器和NAT都可以傳遞數據包。為了使用SSL-VPN協議,您必須下載並安裝SoftEther VPN Client,可以從其網站獲得。
步驟11:連接到SoftEther VPN Server(客戶端配置)
由於SoftEther是多協議VPN服務器,因此有許多方法可以作為客戶端連接到它。您可以選擇任何協議來建立與服務器的安全連接,包括L2TP,SSTP,OpenVPN和SoftEther協議專有的SSL-VPN。
根據客戶端操作系統和配置,您可以使用任何上述協議。但是,我更喜歡使用SSL-VPN,因為它既安全又快速,並且如上所述,因為它使用了一個通用的知名端口(443或https-port),它可以穿透大多數防火牆。
在這里,我們使用SoftEther自己的VPN客戶端軟件連接到我們的服務器:
首先從SoftEther的網站下載適用於Linux的SoftEther VPN客戶端。我們可以使用lynx瀏覽器下載它。輸入以下命令以打開SoftEther的下載頁面:
lynx http://www.softether-download.com/files/softether/
然后,就像下載服務器軟件時一樣,選擇最新版本(此處使用v2.00-9387-rtm-2013.09.16)。現在選擇Linux,然后在下一頁中選擇SoftEther VPN Client。現在,根據系統的硬件體系結構,選擇一個程序包(32位-Intel x86和64位-Intel x64或AMD64適用於DigitalOcean 32位或64位Droplet)。最后,通過按鏈接上的“ D”鍵從下一頁下載tar文件,並在Lynx詢問時選擇“保存到磁盤”。保存文件后,按“ Q”退出Lynx。
使用以下命令解壓縮剛剛下載的tar文件:
tar xzvf softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
注意:更改softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
為下載文件的名稱。
現在,就像處理服務器一樣,我們必須通過運行以下命令來編譯vpnclient並使之成為可執行文件(確保在客戶端上安裝了第4步中提到的開發工具):
cd vpnclient
make
當要求閱讀並接受許可協議時,請輸入3次,然后輸入1,然后將文件移動到另一個目錄並更改權限:
cd ..
mv vpnclient /usr/local
cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpnclient
chmod 700 vpncmd
然后使用以下命令啟動VPN客戶端服務:
./vpnclient start
要配置我們的客戶端,我們將使用vpncmd
。在vpnclient目錄中時,輸入以下命令以運行vpncmd
工具:
./vpncmd
選擇2進入“管理VPN客戶端”模式,然后按Enter鍵連接到並管理您剛安裝的本地VPN客戶端。
SoftEther使用虛擬適配器建立與我們的VPN服務器的連接,使用此命令創建一個名為myadapter的虛擬適配器:
NicCreate myadapter
現在使用此命令,創建一個名為myconnection的新VPN連接:
AccountCreate myconnection
然后輸入您的SoftEther VPN服務器的IP和端口號。該端口號可以是您在服務器上設置為偵聽的任何端口。默認情況下,SoftEther偵聽以下四個端口:443、992、1194、5555。在下面的示例中,我們使用端口443:
Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443
注意:除了輸入IP地址,您還可以輸入服務器的標准域名(FQDN)。
現在,輸入您要在服務器上嘗試連接的虛擬集線器的名稱。在我們的例子中,它被命名為VPN:
Destination Virtual Hub Name: VPN
然后輸入您在服務器中創建的用戶的用戶名。我們創建了一個名為test的用戶:
Connecting User Name: test
最后輸入您剛剛創建的虛擬集線器的名稱:
Used Virtual Network Adapter Name: myadapter
現在我們的VPN連接已創建,可以連接了。最后一步是將身份驗證模式更改為密碼,因為這是我們在服務器中配置用戶身份驗證模式的方式:
AccountPasswordSet myconnection
當要求輸入標准作為密碼驗證方法時:
Specify standard or radius: standard
最后,我們可以連接我們的連接–使用此命令可以做到這一點:
AccountConnect myconnection
您可以使用以下命令查看連接狀態:
AccountStatusGet myconnection
注意:為了使與服務器的連接更加安全並防止中間人攻擊,最好使用SSL證書來標識服務器。使用SoftEther可以很容易地做到這一點。為此,首先必須按照步驟10中的說明將證書文件下載到客戶端,然后使用CertAdd將其添加到客戶端的受信任證書中。然后,使用命令AccountServerCertEnable
為您的VPN連接啟用證書驗證。
整理起來
在本文中,我們介紹了使用vpncmd設置SoftEther VPN服務器的過程,vpncmd是SoftEther提供的命令行管理實用程序。使用Windows的SoftEther Server Manager也可以完成此處所做的所有事情,並且使用該工具設置SoftEther VPN Server甚至更加容易。因此,如果您有Windows計算機,我建議您使用它。
就是這樣。我們已經使用SoftEther成功安裝並配置了多協議VPN服務器。現在,客戶端可以使用L2TP,IPSec,SSTP,OpenVPN等連接到我們的服務器。
參考地址 http://blog.dengxj.com/archives/9/