OpenVPN pfSense TLS VPN CA

CA身份驗證結合TLS加密 架設更安全的兩站間VPN

2015-01-28
本文將繼續介紹如何在開源軟體pfSense上使用OpenVPN套件來建立Site-to-Site VPN(在兩部設備之間建立VPN連線),讓pfSense下的電腦都能輕易地透過VPN連線取得遠端的資源,而無須個別進行連線的動作。
pfSense相關設定:OpenVPN Client

這個步驟的目的是為了建立OpenVPN Client。先在Client端先點選VPN,再點選OpenVPN以及選擇Client,接著點選加號圖示,以新增一組Client。在Sever host or address欄位內,輸入Server端的WAN IP:203.70.228.5,如圖13所示。


▲圖13 設定OpenVPN Client的Server host or address。

接著將Automaticaly generate a shared TLS authentication key的勾選取消,並貼上之前所備份的Server端TLS Key。Client Certificate的部分,請選擇先前匯入的OpenVPNClient(CA: My OpenVPN CA),如圖14所示。


▲圖14 貼上TLS key並設定Client Certificate。

然後是Tunnel的設定,先在IPv4 Tunnel Network欄位填入與建立OpenVPN Server時相同的10.0.0.0/30,之後的IPv4 Remote Network/s部分填入Server的LAN IP網段:192.168.1.0/24,如圖15所示。


▲圖15 設定Tunnel網段。

pfSense相關設定:Firewall相關設定

在此階段將設定防火牆的規則,讓WAN介面可以接受OpenVPN的封包,並且將透過OpenVPN邏輯介面傳送的封包予以放行。

先點選Firewall選單裡面的Rules,並點選WAN,以及點選最上面的〔+〕號,新增一筆規則。而Protocol的設定,選擇下拉式選單內的TCP/UDP,如圖16所示。


▲圖16 設定WAN介面Firewall Rule。

接著,在Destination port range from部分選擇OpenVPN(to會自己變成OpenVPN),並按下〔Save〕按鈕存檔,如圖17所示。


▲圖17 設定Destination port range並存檔。

再點選上方選單的OpenVPN,並點選〔+〕號以新增一筆規則。接著找到Protocol部分,選擇下拉選單內的any,並按下〔Save〕按鈕進行存檔,如圖18所示。


▲圖18 設定OpenVPN Firewall Rule。

pfSense相關檢查:OpenVPN status

此時分別在Client和Server確認OpenVPN目前的狀態。在Client端點選Status裡面的OpenVPN,就可以看到相關的資訊,包含目前的狀態為up、連線建立的時間,以及虛擬IP和遠端IP等資訊。右上角的〔+〕號可以用來建立其他Server及Client,〔+〕號右邊的第二個像文件一樣的圖示,則可用來查看OpenVPN的Log,另外也可使用Status裡面的System Logs來加以查看,此功能在除錯上有很大的幫助,畫面擷圖如圖19所示。


▲圖19 查看Client端OpenVPN建立的狀態。

同樣地,在Server端亦可以查看OpenVPN建立的狀態。在Service右方的按鈕可以停止或重啟OpenVPN Service,如圖20所示。虛擬IP的部分,就如同之前建立Tunnel時設定的10.0.0.0/30,同時也可以看到遠端的IP為何。


▲圖20 查看Server端OpenVPN建立的狀態。

OpenVPN成果驗證

先在Client端準備了一台Cisco Router,並開啟其Web功能。再從Server端的電腦連入,測試能否開啟其網頁,驗證結果如圖21所示。透過192.168.2.2這個內部IP來進行連結,並且可以正常開啟其網頁。接著,telnet進入192.168.2.2,再ping回Server端的192.168.1.2,確認Client也可以連線至Server端的電腦,如下所示:



▲圖21 驗證OpenVPN連線是否成功建立。

此時使用Wireshark確認OpenVPN在建立和傳輸時的封包內容為何。圖22是Client發起建立VPN Tunnel時的封包,可以看出在Secure socket Layers的部分使用的是TLS,如此一來就可以確實增加其安全性。


▲圖22 確認及檢查OpenVPN封包內容。

最後,再查看實際傳輸資料時真實的資料是否受到保護。從192.168.1.2持續對192.168.2.2發起ICMP的封包,並以Wireshark觀察其內容,圖23是其輸出結果,可以看出資料已經被包在OpenVPN的封包裡,有心人士無法輕易地看出其中的內容。


▲圖23 以Wireshark查看傳輸時的封包內容。

<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!