Raspberry Pi是目前非常熱門的開放硬體,價格低廉且用途廣泛,對此本文將示範如何在Raspberry Pi上使用OpenWRT以最低的成本架設基於OpenConnect的SSL VPN。
之後程式會繼續建立連線,等到狀態列出現字串「Established DTLS connection (using GnuTLS).」時就代表連線已成功建立,如圖22所示。
|
▲圖22 成功建立VPN連線。 |
成功建立連線之後,先以ipconfig指令檢視取得的IP與相關資訊。在此可以看出,取得的IP是192.168.100.127,另外DNS伺服器的部分取得預設的8.8.8.8。預設匣道的部分,由於先前有設定
要學到靜態路由192.168.1.0,因此預設閘道並沒有出現。
若未設定靜態路由,會將PC所有的流量往這個虛擬網卡送出,此時預設閘道就會出現192.168.100.1(先前設定的VPN IPv4 Address)。
也檢查一下路由表,確認透過此虛擬介面學到的路由有哪些。在此可以看出,除了192.168.100.127這個直連IP外,192.168.100.0及192.168.1.0都是透過此一虛擬介面學到的。
隨後使用ping的方式進行流量的驗證,確認可以連至OpenWRT的LAN IP。
確認連線正常後,再確認一下能否連到OpenWRT的LAN裡面的其他設備,筆者準備了一部192.168.1.253的路由器以進行連線驗證,這裡確認可以連通。
最後開啟該設備的網頁,確認已經可以連線,如圖23所示。
|
▲圖23 確認可以使用HTTP的方式連至遠端設備。 |
OpenConnect VPN—Server端確認
在成功建立連線後,可以使用SSH方式連回OpenWRT,確認介面是否自動產生。用「ifconfig vpns0」指令來查看該介面是否成功建立及確認其IP位址。在OpenWRT端,其IP為192.168.100.126,對口IP則為PC的192.168.100.127。
同樣地,檢查一下路由表,確認192.168.100.127是透過vpns0此一介面做封包轉發的。
OpenConnect VPN加密驗證
最後,在網路上側錄其封包,以驗證在其進行傳輸時,資料是否有進行加密。測試結果如圖24所示。從中可以看出,封包在傳輸過程中有使用TLS進行加密。而其DST Port也如先前規劃的,使用的是通訊埠443。
|
▲圖24 資料加密驗證。 |
筆者在此使用ping的方式進行測試,但以Wireshark查看時並無法推測出其內容,因此若有心人士想要攔截內容進行查看,並無法達成其目的。
結語
在本文中,介紹了如何在Raspberry Pi上使用OpenWRT以最低的成本架設基於OpenConnect的SSL VPN。在此例中使用的是簡單的帳號密碼驗證,易於使用,但較不安全,一旦密碼外洩,就可能會產生資安風暴。
由於此次介紹的內容頁數較多,因此下次再介紹如何使用更為嚴謹安全的憑證認證,進一步地加強資訊安全。
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>