來源:原創 2014-05-08 23:19 707次瀏覽 3條評論html
本文主要介紹軟件 『Open×××』的相關內容: Linux版Open×××安裝、配置教程。其下列版本/分支能夠參考本文:linux
其餘版本/分支請點擊這裏查看:[ Open×××安裝、配置]
Open××× Linux版:[所有分支]git
本文將以目前最新的open***-2.3.4.tar.gz(更新於2014-5-2,下載地址)爲例來介紹如何在Linux系統中安裝、配置及使用Open×××。github
在這裏,咱們選用了一臺預裝CentOS 6.5 64位系統的計算機做爲Open×××服務器,一臺預裝Ubuntu 14.04 64位系統的計算機做爲Open×××客戶端,來演示Linux版Open×××的安裝配置操做過程。實際上,Open×××並不區分Linux發行版本,幾乎全部的配置都是同樣的,所以Red Hat、Fedora、SUSE等Linux發行版都可參考本文。算法
在安裝Open×××以前你必須確保你已經安裝了C編譯器(例如gcc)、OpenSSL、LZO(一種無損壓縮算法)、PAM(一種可插入式的身份驗證模塊)。若是你安裝了yum,可使用以下命令來安裝這些工具(選擇性地安裝以前沒有安裝的軟件包便可):安全
#安裝gcc、openssl、lzo、pam
yum install -y gcc openssl-devel lzo-devel pam-devel
Ubuntu、Debian等系統使用apt-get進行安裝,安裝命令請 參考這裏。
首先,咱們須要先下載Open×××安裝程序,上面已經給出了Linux版Open×××的下載地址,在這裏咱們就很少說了。服務器
在這裏,咱們將下載的安裝文件移動到/usr/local/文件夾中(你也能夠自行移動到其餘目錄)。網絡
接着,咱們使用tar
命令,將該壓縮文件解壓到當前目錄,完整命令爲:tar zxf open***-2.3.4.tar.gz
。tcp
接着,咱們依次執行以下命令:ide
#跳轉到解壓後的open***目錄
cd open***-2.3.4
#調用configure
./configure
#編譯
make
#安裝
make install
安裝Open×××完畢後,接下來就應該配置Open×××,以便於其能正常工做。配置Open×××主要有兩個步驟:一是生成服務器和客戶端所需的各類證書,二是編寫服務器和客戶端所需的配置文件。
想要生成各類證書和密鑰,咱們還要用到easy-rsa(只有服務器端須要easy-rsa,客戶端無需安裝)。坑爹的是,Open××× 2.3.x並無自帶這個東西,咱們還須要去GitHub下載easy-rsa。更坑爹的是,GitHub上的easy-rsa已經升級到了3.0版本,該版本幾乎重寫了以前全部的程序代碼,連使用方法都全變了,然而Open×××的官方文檔並無做相應更新,其中介紹的仍然是easy-rsa 2.0的操做方法。爲了不沒必要要的麻煩,咱們推薦下載2.0版本的easy-rsa,你也能夠直接點擊這裏下載。
在這裏咱們將下載的easy-rsa-release-2.x.zip文件放在/root目錄中。咱們依次執行以下命令:
#轉到easy-rsa安裝文件所在目錄
cd /root/
#解壓該安裝文件
unzip -q easy-rsa-release-2.x.zip
執行結果以下圖所示(其中的ls命令用於查看文件列表):
接着,咱們將上圖中所標註的easy-rsa-release-2.x/easy-rsa文件夾複製到Open×××的解壓目錄中,命令以下:
#複製解壓後的easy-rsa目錄到Open×××解壓目錄下
cp -r easy-rsa-release-2.x/easy-rsa /usr/local/open***-2.3.4
而後,咱們執行命令cd /usr/local/open***-2.3.4/easy-rsa/2.0
從而進入Open×××下的easy-rsa/2.0目錄。
上面說了這麼多,實際上就只是下載了easy-rsa 2.0,並將解壓後的easy-rsa子目錄複製到了Open×××的主目錄下。這裏的文件夾2.0就是咱們之後生成各類證書和密鑰的根據地了。
在生成證書以前,咱們建議你對2.0目錄中的vars文件稍做修改。vars文件存儲的是一些用戶變量設置信息,每次生成證書都會使用到其中的某些變量。以下圖所示,咱們着重建議你關注紅色矩形框內的變量,並選擇性地對其進行修改(你能夠不修改這些參數,但不要把這些參數留空)。
KEY_SIZE:表示密鑰的長度,通常爲1024或2048(長度越長,性能耗費越多)。
#下面是一些用戶相關信息配置
KEY_COUNTRY:所在國家
KEY_PROVINCE:所在省
KEY_CITY:所在城市
KEY_ORG:所在組織
KEY_EMAIL:郵箱地址
KEY_OU:機構單位或部門名稱
下面,咱們就開始來生成證書了。保持當前目錄爲Open×××根目錄/easy-rsa/2.0。而後依次執行下列命令:
#初始化命令,用於設置後續命令所需的相關變量信息
. ./vars
#清除以前建立的全部證書和密鑰
./clean-all
#生成CA證書和密鑰
./build-ca
注意:證書的用戶信息能夠根據須要自行輸入。若是不輸入、直接回車,則表示該字段使用"[]"中的默認值(也就是前面vars文件中設置的參數值);若是輸入".",則表示該字段留空。在這裏須要注意Common Name字段,這至關於證書的"用戶名",請確保每一個證書的Common Name字段是惟一的。
到這裏,咱們的CA證書和密鑰就已經生成成功了,生成的證書和密碼默認均存放在當前目錄的子文件夾keys中。
接下來,咱們爲服務器和客戶端生成各自所需的證書和密鑰(全部的證書和密鑰都必須由Open×××服務器上的easy-rsa生成)。
咱們能夠執行命令./build-key-server server
來生成服務器端所需的證書和密鑰。以下圖所示,與建立CA證書同樣,咱們先輸入證書的相關信息,並在最後輸入兩次"y"確認生成便可。
與建立服務器端證書相似,咱們可使用命令./build-key clientName來生成客戶端證書和密鑰,其中clientName爲自定義的客戶端名稱(例如:client一、client二、jim、tom)。若是須要爲多個客戶端生成證書,只須要分別執行屢次便可。
此外,咱們還須要爲Open×××的服務器端建立迪菲·赫爾曼交換密鑰,命令爲./build-dh
(無需額外輸入,耐心等待生成完畢便可)。迪菲·赫爾曼交換密鑰是一種安全協議,用以對數據進行加密。
這一步驟是可選操做。Open×××提供了TLS-auth功能,能夠用來抵禦Dos、UDP端口淹沒***。出於安全考慮,你能夠啓用該功能;啓用該功能,你須要執行命令open*** --genkey --secret keys/ta.key
來生成TLS-auth所需的密鑰文件。
到這裏,咱們的證書生成就告一段落了。若是你之後想要生成新的客戶端或執行其餘操做,只須要先執行命令. ./vars
,而後執行相應的命令便可,例如./build-key client2
。
最後,咱們來看看咱們一共生成了哪些證書和密鑰。
編號①:CA證書和密鑰
編號②:客戶端client1的證書和密鑰,
編號③:迪菲·赫爾曼交換密鑰 (若是你的KEY_SIZE=1024,則該文件名稱爲dh1024.pem)。
編號④:服務器端證書和密鑰。
編號⑤:啓用tls-auth所需的文件。
衆所周知,Open×××雖然能夠分爲客戶端和服務器,不過它們的安裝程序是徹底同樣的,只是經過不一樣的證書和配置文件來進行區分。在這裏,咱們先在Open×××主目錄下建立一個config目錄,並將其所需的證書和密鑰文件拷貝到該目錄中。
其中,服務器端須要用到的文件有:
ca.crt ca.key dh2048.pem (若是最初的變量KEY_SIZE設爲1024,這裏就是dh1024.pem) server.crt server.key ta.key (若是不開啓tls-auth,則無需該文件)
客戶端client1須要用到的文件有:
ca.crt client1.crt client1.key (名稱client1根據我的設置可能有所不一樣) ta.key (若是不開啓tls-auth,則無需該文件)
在這裏,咱們以Open×××服務器端爲例來演示上述操做流程。
#建立config目錄
mkdir /usr/local/open***-2.3.4/config
#複製證書和密鑰文件到config目錄
cp keys/ca.crt keys/ca.key keys/server.crt keys/server.key keys/dh2048.pem keys/ta.key /usr/local/open***-2.3.4/config
此外,咱們還須要爲服務器和每一個客戶端的config目錄分別編寫一個配置文件,服務器端的配置文件爲server.conf,客戶端的配置文件爲client.conf。
這兩個配置文件該如何編寫呢?Open×××已經在sample/sample-config-files子目錄中爲咱們提供了相關的示例文件server.conf和client.conf,而且配置文件中的每一個配置選項均有詳細的英文說明(配置文件中"#"或";"開頭的均爲註釋內容)。
如今,咱們先將server.conf文件拷貝到config目錄中,而後再對其進行修改。
#轉到simple-config-files目錄
cd /usr/local/open***-2.3.4/sample/sample-config-files
#複製server.conf到config目錄中
cp server.conf /usr/local/open***-2.3.4/config
在這裏,咱們先給出server.conf的詳細配置,並註明每項配置的做用。
local 192.168.1.106 #指定監聽的本機IP(由於有些計算機具有多個IP地址),該命令是可選的,默認監聽全部IP地址。接着是客戶端配置文件client.conf。
port 1194 #指定監聽的本機端口號
proto udp #指定採用的傳輸協議,能夠選擇tcp或udp
dev tun #指定建立的通訊隧道類型,可選tun或tap
ca ca.crt #指定CA證書的文件路徑
cert server.crt #指定服務器端的證書文件路徑
key server.key #指定服務器端的私鑰文件路徑
dh dh2048.pem #指定迪菲赫爾曼參數的文件路徑
server 10.0.0.0 255.255.255.0 #指定虛擬局域網佔用的IP地址段和子網掩碼,此處配置的服務器自身佔用10.0.0.1。
ifconfig-pool-persist ipp.txt #服務器自動給客戶端分配IP後,客戶端下次鏈接時,仍然採用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。
tls-auth ta.key 0 #開啓TLS-auth,使用ta.key防護***。服務器端的第二個參數值爲0,客戶端的爲1。
keepalive 10 120 #每10秒ping一次,鏈接超時時間設爲120秒。
comp-lzo #開啓×××鏈接壓縮,若是服務器端開啓,客戶端也必須開啓
client-to-client #容許客戶端與客戶端相鏈接,默認狀況下客戶端只能與服務器相鏈接
persist-key
persist-tun #持久化選項能夠儘可能避免訪問在重啓時因爲用戶權限下降而沒法訪問的某些資源。
status open***-status.log #指定記錄Open×××狀態的日誌文件路徑
verb 3 #指定日誌文件的記錄詳細級別,可選0-9,等級越高日誌內容越詳細
client #指定當前×××是客戶端
dev tun #必須與服務器端的保持一致
proto udp #必須與服務器端的保持一致
remote 192.168.1.106 1194 #指定鏈接的遠程服務器的實際IP地址和端口號
resolv-retry infinite #斷線自動從新鏈接,在網絡不穩定的狀況下(例如:筆記本電腦無線網絡)很是有用。
nobind #不綁定特定的本地端口號
persist-key
persist-tun
ca ca.crt #指定CA證書的文件路徑
cert client1.crt #指定當前客戶端的證書文件路徑
key client1.key #指定當前客戶端的私鑰文件路徑
ns-cert-type server #指定採用服務器校驗方式
tls-auth ta.key 1 #若是服務器設置了防護DoS等***的ta.key,則必須每一個客戶端開啓;若是未設置,則註釋掉這一行;
comp-lzo #與服務器保持一致
verb 3 #指定日誌文件的記錄詳細級別,可選0-9,等級越高日誌內容越詳細
實際上,將兩個模板文件中與IP地址有關的配置修改一下,就能夠直接拿來使用。
關於Open×××配置文件的更多信息請參考 server.conf配置詳解和 client.conf配置詳解。
當咱們把服務器和客戶端所需的證書、密鑰和配置文件都分配完畢以後,咱們就能夠嘗試啓動Open×××來檢查咱們的工做成果了。
在Linux中,咱們能夠直接執行如下命令來啓動Open×××:
open*** 配置文件路徑
若是你是服務器端,就指定server.conf文件的路徑,若是你是客戶端就指定client.conf文件的路徑。
請注意:
配置文件中的文件路徑涉及到相對路徑的,均以啓動Open×××時的所在目錄爲準。因爲咱們在配置文件中設置的文件路徑都是相對
config目錄的路徑,所以咱們也只能在
config目錄下才能正常啓動Open×××。若是你想在任何地方都能使用上述命令啓動Open×××,建議你將配置文件與文件路徑相關的部分所有改成絕對路徑。
Open×××服務器所在計算機必須容許Open×××經過防火牆,你能夠禁用掉防火牆,或者將Open×××設爲可信程序,或者開放1194端口。
啓動服務器和客戶端都須要必定的權限,建議用
root帳戶或sudo
命令進行啓動。
如下就是Open×××服務器的啓動效果:
客戶端的啓動效果以下:
咱們在客戶端嘗試ping
服務器的虛擬IP地址10.0.0.1,順利ping
通。
做者:軟件指南針(http://www.softown.cn),轉載請保留出處!