您好,登錄后才能下訂單哦!
小編給大家分享一下Stunnel加密封裝器如何安裝設置和使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Stunnel作為一個小巧的跨平臺(Unix/Linux和Windows)的開源(GNU)項目,提供了以下2個主要功能:
針對本身無法進行TLS或SSL通信的客戶端及服務器,Stunnel可提供安全的加密連接(基于OpenSSL)。
針對有訪問限制的局域網,Stunnel提供加密的SSL連接解除防火墻和代理的限制直接和遠端服務器理論上的任何網絡服務連接。我們知道一般局域網都會開放443端口用于加密的HTTP連接,我們可以利用這點用Stunnel和遠程端口443創建一個SSL連接,防火墻和代理會認為這個連接是正常的HTTPS連接而允許通過。
>>去網絡安全工具百寶箱看看其它安全工具
Stunnel的安裝
Stunnel的Windows版本可以點此下載。我們需要把下載下來的Stunnel程序同時安裝在服務器端和客戶端。安裝過程比較簡單,一路Next就行。假設我們把Stunnel安裝在默認路徑C:\Program Files\stunnel\下。具體安裝步驟見下:
訪問控制以及安全證書的生成
Stunnel使用OpenSSL提供了基于安全證書的訪問控制。遵循SSL協議,客戶端和服務器端都可以要求對方提供安全證書用以驗證對方是否可信。而在大多數應用中往往只有服務器端需要驗證客戶端的安全證書以確認連接者可以被信任,所以我的這篇文章主要講解服務器端驗證的設置。客戶端驗證的設置方法和步驟同服務器端相反,這里就不再敘述了。
決定了如何進行訪問控制,下一個步驟我們需要一個安全證書,你可以選擇以下幾個方法得到安全證書:
1.Stunnel安裝程序自帶的(C:\Program Files\stunnel\stunnel.pem)
2.OpenSSL成生的安全證書
3.從CA處購買的安全證書
一般來說不推薦方法1,因為通用性的Stunnel安全證書不能提供任何安全保證因為人人都可以下載獲得。而最安全的第3種方法需要花費不少銀子,因此這里我們使用方法2:在不花錢的情況下得到***的安全性。Stunnel的Windows版本并沒有提供OpenSSL程序,所以要生成安全證書需要通過以下途徑。
1. 使用網頁服務生成安全證書
用Stunnel提供的網頁服務(http://www.stunnel.org/pem/),輸入所有相關信息然后Stunnel的服務器會生成所需的安全證書,具體見下圖:
點擊Generate stunnel.pem File按鈕等待幾秒鐘系統會出現以下頁面:
拷貝所有文本框內的內容另存為stunnel.pem文件,這個就是你所需要的安全證書了。正如Stunnel網頁上所說,這種方法并不安全,因為生成的證書是通過沒有加密的通道傳輸的,任何人都可以從中竊取這個證書。
2. 使用Unix/Linux生成安全證書
第二種方法需要一臺安裝了OpenSSL的Unix或者Linux主機。運行以下命令生成安全證書:
openssl req -new -x509 -days 365 -nodes -out ${FILE_NAME}.pem -keyout ${FILE_NAME}.pem
${FILE_NAME}.pem是自定義生成的安全證書的名字,其他各個參數的意義如下:
◆-new:生成新的密匙
◆-x509:生成X509安全證書
◆-days 365:有效期1年
◆-nodes:不設置密碼
◆-out:生成的文件名
◆-keyout:存放密匙的文件名
運行這個命令后需要回答以下問題,然后安全認證會自動存放在${FILE_NAME}.pem文件中。
在驗證安全證書有效性時,Stunnel使用Hash值搜索證書,所以我們還需要運行以下2條命令得到這個證書的Hash值,然后重命名這個文件:
hash_name=`openssl x509 -hash -noout -in ${FILE_NAME}.pem ` mv ${FILE_NAME}.pem $hash_name.0
這樣最終得到的安全證書就是XXXXXXXX.0,其中X代表16進制數字。以上2段腳本可以合在一起變成一個批處理文件。
我們需要注意的是,生成的安全證書需要同時拷貝到客戶端和服務器端。客戶端需要向服務器端發送這個證書,而服務器端需要檢查客戶端證書是否和服務器端證書一致。
客戶端配置
編輯Stunnel的配置文件(位置在C:\Program Files\stunnel\stunnel.conf):
[CLIENT] accept=22443 connect=proxyhost:8080 client=yes ccert=c:\program files\stunnel\${FILE_NAME}.pem protocol=connect protocolHost=192.234.191.174:443
其中各個參數的含義為:
◆accept:接受的端口(在這個例子中,如果訪問遠程服務需要連接到localhost端口22443)。
◆connect:遠程服務器的IP地址和端口(注意這里我們使用標準HTTPS端口)。
◆client:告訴stunnel這個配置是client配置。
◆cert:連接是提供給對方的安全證書。這個證書可以是${FILE_NAME}.pem文件名也可以直接用XXXXXXXX.0文件。
如果客戶端需要通過HTTPS代理連接,需要使用以下配置文件:
[CLIENT] accept=22443 connect=proxyhost:8080 client=yes ccert=c:\program files\stunnel\${FILE_NAME}.pem protocol=connect protocolHost=192.234.191.174:443
這里connect處需要填入代理服務器的IP和端口,protocolHost處填入遠程服務器的IP和端口。配置結束后運行stunnel程序,然后雙擊任務欄的圖可以查看日志:
服務器端配置
服務器端配置比客戶端稍微麻煩些。首先我們需要把先前生成的XXXXXXXX.0證書拷貝到一個文件夾中(假設這個文件夾叫CApath),所有可信任的證書都應該拷貝到這里。然后我們需要配置C:\Program Files\stunnel\stunnel.conf文件:
[SERVER] accept=443 cert=stunnel.pem connect=localhost:21 CApath=c:\program files\stunnel\CApath CRLpath=c:\program files\stunnel\CRLpath verify=3
以下是這個配置各個參數的含義:
◆accept:接受連接請求的端口(應該和客戶端一致)
◆cert:服務器端發送給客戶端的安全認證。因為我們的客戶端不驗證這個證書,所以使用標準的stunnel證書就可以。
◆connect:連接到本地或者其他局域網的網絡服務(這里我們使用本地FTP服務)。
◆CApath:保存了所有可信安全證書的文件夾(所有文件名都應該是XXXXXXXX.0格式)。
◆CRLpath:保存了所有已經撤銷的安全證書的文件夾(所有文件名都應該是XXXXXXXX.0格式)。這個的主要作用是當你把安全證書發布給客戶以后你依然可以拒絕他的連接請求。
◆verify:驗證級別。1表示如果客戶提供安全證書則驗證安全證書。2表示客戶必須提供安全證書并驗證安全證書,這個模式適合于驗證從CA處購買的安全證書。3表示客戶必須提供安全證書并根本本地CAPath和CRLpath來驗證證書是否合法。毫無疑問這里我們應該選3。
設置完成后我們可以啟動stunnel程序然后進行下簡單的測試。
連接測試
首先確認服務器端和客戶端的stunnel程序都已經啟動,并且提供服務的網絡應用程序也已經啟動(這里我們是FTP服務)。打開命令行,輸入:
telnet localhost 22443
這時你應該能得到一個到FTP服務器的TCP連接,同時也宣告大功告成:)以上這個例子可以使在禁止FTP的局域網中使用FTP服務,當然任何安裝在服務器端的TCP服務都可以通過這種方法使用。由于Stunnel使用加密過的連接,因此沒有人能看到服務器端和客戶端傳送的數據。需要注意的是,有些防火墻會在沒有流量的時候關閉連接,因此為了長期保持連接盡量不停發送數據(簡單的heartbeat就可以)。
以上是“Stunnel加密封裝器如何安裝設置和使用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。