4/03/2017

(Open-Source) 透過Amazon Web Service架構OpenVPN server (~4hrs)

https://openvpn.net/index.php/access-server/docs/admin-guides/182-how-to-connect-to-access-server-with-linux-clients.html+https://aws.amazon.com/+Xenial

"Every drop in the ocean counts, and here's mine"

網路的本質是開放,大多數的在情境下我們總希望我們的網路使用是不會被限制、監控或是管制的條件下使用。最有名的就是中國的網路長城,其次就是每個組織與機關的IT們的各自表述。透過VPN的方式(付費或是免費)是最快的方式,但是最後都會礙於頻寬限制而無法順利的在牆內看到外面的資料。無論是Google 服務、FB、或是其他影音網頁。以往常見的方式是在家裡的 NAS or WiFi AP上架設VPN server,但是如果長時間不在旁邊很難說不會有當機的狀況發生,而且同時也有安全上的疑慮(如果家用網路上設置VPN的server。)當然也可以單純的把家用WiFi AP當作VPN Client用,這樣安全性相對高,不過也是需要找個付費或免費的VPN Server(到頭來還是要花一次工?) 既然都已經在用Ubuntu LTS了(前陣子雖然不慎把他砍掉重練...不對是還原),乾脆就安裝在12個月免費的AWS EC2上。(每個月有750hrs,而且有許多知名的企業都是用這套精簡又24小時不打烊的容器。

What is the AWS Free Usage Tier?

AWS is offering a free usage tier for new AWS customers. Per month, the AWS750 hours of Amazon EC2 Linux or RHEL or SLES t2.micro instance usage (1 GiB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*

所以就著手開始設定。萬事起頭難,花了不少時間在找資料看與try and debug,以下紀錄過程中精簡的步驟,看著照做就可以讓OpenVPN動,或許有一些設定過程會碰到的小問題,相關網誌的連結有的失效了,或許可以參考我測試的方式一步一步過去,最後我這邊是可以所有裝置都順利連入AWS上的OpenVPN。

第一步到EC2的設定AMI選擇Free (基本上Linux的都是,所以就以常用的Ubuntu Server),

第二步是選擇Instance Type:這邊也以free tier 的t2.micro為虛擬主機
第三步將OpenVPN對應的port設定在Security Group(其他頁的都可以直接以Next帶過)
第四步.需要Review再確認看有沒有需要付費的資訊(就只是確定Amazon不會順便幫你扣款)
第五步. 設定並下載你主機的金鑰,這個憑證檔就是你連入你的server需要的資料檔

第六步.EC2 Dashboard可以看到有運行中的Ubuntu server了


第六步.SSH連線到IPv4的IP位置(需使用前面下載的PEM 金鑰)P.S.Windows 可用PuttyGen ([教學]十分鐘快速建立Amazon EC2免費主機
開啟終端機,輸入ssh ubuntu@public_ip -i key.pem,ubuntu為預設登入帳號無需更改, public_ip 替換為你的IP,key.pem 替換為先前下載的key,確認後送出(P.S.如果你的instance是AMI, 則記得將ubuntu改為ec2-user,後來我重新以Amazon Linux AMI 2017.03.0 (HVM)測試其他server時笨很久):

忘了截圖...用提到的網誌上的
第七步.在AWS的主機上面下載並安裝OpenVPN(下載網址先來OpenVPN確認版本與路徑),我的是Ubuntu, 就用sudo dpkg -i進行安裝, 結束後他會跳到設定OpenVPN使用的admin密碼


密碼則須以下指令設定:
passwd openvpn
這指令是對 openvpn 這個帳號進行密碼更新,按 enter 後就會看到要輸入新的密碼了

Enter new UNIX password:
Retype new UNIX password: passwd: 


第八步. 這邊需要到Amazon EC2設定Elastic IP,因為AWS的主機對外的Public IP要與OpenVPN的對應我們才能連入OpenVPN.所以需要在Dashboard確定有沒有對應好
 -------
這件事在AWS的管理介面中進行,AWS會馬上配發一個Elastic IP,注意,一定要把這個Elastic IP 連結到 openvpn伺服器,才算生效。
---------
第九步.用網頁瀏覽器連入OpenVPN的admin頁面確認有正確運作中
https://Elastic IP:943/admin 

第十步.從要連入該VPN的裝置上連入client頁面(登入後最下面那),
https://Elastic IP:943/
並記得修改config檔(*.ovpn)中的IP成 Elastic IP,而不是原本OpenVPN設定的IP再來使用用裝置上的OpenVPN開啟。(我是用Telegram傳到電腦上修改內容再丟回去行動裝置)
第11步. 在iPhone 開啟修改為elastic IP後的設定檔連線並測速(原本光纖速度是20/20M, 透過AWS VPN還有10/10M的速度),同時用WhatIsMyIPAddress查詢也會發現IP已經變成Amazon的.

延伸閱讀:
  1. Amazon Web Services EC2 Tiered Appliance Quick Start Guide
  2. NAS VPN 伺服器設定教學, Synology, QNAP, Asustor 
  3. OpenVPN HowTo 
  4.  [教學]十分鐘快速建立Amazon EC2免費主機
  5.   在 Amazon Web Service 上架設私人的 openvpn 伺服器
  6. 美國Spotify免費服務
Windows連線的方式: (參照延伸閱讀1)


Ubuntu/Debian連線的方式:

sudo openvpn --config client.ovpn


(2017-04-23) 今天上去查詢Billing 發現有0.01 USD! 流量目前也累計7.8GB了。看起來一直拿來使用當Spotify+AMAZON prime跳板聽音樂跟看電影好像也會多少有影響

BTW 在使用OpenVPN使用Spotify基本上就跟美國的免費用戶一樣,可以使用所有的功能(包括Running)這對於早起跑步的我還蠻有用的。
Running
5點的太陽

沒有留言:

張貼留言

謝謝您的留言, 我會在收到通知後盡快回覆您的.
Thanks for your comment. l may reply once I got notification.