手把手帶您建立Google Cloud VPN

文章推薦指數: 80 %
投票人數:10人

這時我們可以採用IPsec VPN ,將兩個網路之間的通訊進行加密,藉此保護你的資料不會以明文的方式在網際網路上進行傳輸,也省去要對多個元件分別修改設定 ... × Skiptocontent 建立GoogleCloudVPN步驟教學看這邊 當你想要將服務轉換到GoogleCloud上,卻發現你無法將所有元件搬移上去,得要在分散於兩個不同網路的元件之間傳遞資料時,你會開始在想「我要怎麼在兩個受信任的網路之間傳遞資料而不被竊聽?幫每個元件之間的連線都改用SSL/TLS連線嗎?如果該元件不支援SSL/TLS怎麼辦?」。

這時我們可以採用IPsecVPN,將兩個網路之間的通訊進行加密,藉此保護你的資料不會以明文的方式在網際網路上進行傳輸,也省去要對多個元件分別修改設定SSL/TLS的困擾。

而IPsecVPN是被GoogleCloudVPN支援的,所以我們在此使用GoogleCloudVPN來為兩端的網路間建立安全的通道。

需求與限制 • 兩端(分別是in-house與GoogleCloud端)都需要有VPNgateway。

in-house端可以是獨立的VPNgateway設備,也可以在server上透過安裝軟體完成。

GoogleCloud端則由GoogleCloudVPN提供。

• in-house端的VPNgateway需要支援IKEv1或IKEv2pre-sharedkeyauthentication。

• in-house端的VPNgateway需要支援ESPTunnelMode。

• 兩端的VPNgateway都需要有staticpublicIP。

• 如果in-houseVPNgateway外有firewall,請開放udp:500,4500這兩個port以便讓ESP&IKE流量通過 • 兩端網路使用的IPrange不可以重疊 • 準備好,在設定兩端的VPNgateway時會用到。

這裡為了簡化說明,我們會使用GoogleCloud來建立in-house端的環境。

準備in-house端與GoogleCloud端的網路 建立in-house端網路 gcloudcompute--project"in-house-project"networkscreate"vpn"--subnet-mode"custom" gcloudcompute--project"in-house-project"networkssubnetscreate"vpn-asia-east1"--network"vpn"--region"asia-east1"--range"192.168.0.0/24" gcloudcompute--project"in-house-project"firewall-rulescreate"vpn-allow-ssh"--allowtcp:22--network"vpn"--source-ranges"0.0.0.0/0" gcloudcompute--project"in-house-project"firewall-rulescreate"vpn-allow-internal"--allowtcp,udp,icmp--network"vpn"--source-ranges"192.168.0.0/24" gcloudcompute--project"in-house-project"firewall-rulescreate"vpn-allow-gcloud"--allowtcp,udp,icmp--network"vpn"--source-ranges"10.240.0.0/24" 接著建立GoogleCloud端網路,這裡將in-house端網路的IPrange設定為192.168.0.0/24,同時設定了firewall讓我們能透過SSH連上GCEinstance進行操作、讓in-house端網路內部互連以及與GoogleCloud端網路能夠互連。

gcloudcompute--project"google-cloud-project"networkscreate"vpn"--subnet-mode"custom" gcloudcompute--project"google-cloud-project"networkssubnetscreate"vpn-asia-east1"--network"vpn"--region"asia-east1"--range"10.240.0.0/24" gcloudcompute--project"google-cloud-project"firewall-rulescreate"vpn-allow-ssh"--allowtcp:22--network"vpn"--source-ranges"0.0.0.0/0" gcloudcompute--project"google-cloud-project"firewall-rulescreate"vpn-allow-internal"--allowtcp,udp,icmp--network"vpn"--source-ranges"10.240.0.0/24" gcloudcompute--project"google-cloud-project"firewall-rulescreate"vpn-allow-inhouse"--allowtcp,udp,icmp--network"vpn"--source-ranges"192.168.0.0/24" 最後請執行以下指令,在兩個project內各保留一個publicIP供VPNgateway使用。

這裡將GoogleCloud端網路的IPrange設定為10.240.0.0/24,與in-house端的192.168.0.0/24有所不同,這裡也同時設定了firewall讓我們能透過SSH連上GCEinstance進行操作、讓GoogleCloud端網路內部互連以及與in-house端網路能夠互連。

gcloudcompute--project"in-house-project"addressescreate"vpn-gateway"--region"asia-east1" gcloudcompute--project"google-cloud-project"addressescreate"vpn-gateway"--region"asia-east1" 記下保留下來的IPaddress(可以到VPCnetwork的ExternalIPaddresses那邊查看剛剛設立的IP),這裡假設在in-house-project跟google-cloud-project保留下來的IP分別是111.111.111.111與111.111.222.222,之後會用到。

準備in-house端環境 step1在in-house端網路建立VPNgateway 可以參考SetupaVPNgateway,在in-house端的網路內找一台Linuxserver,安裝strongSwan來當作VPNGateway。

執行以下指令,建立一個GCEinstance當作VPNgateway,設定firewall開放ESP&IKE流量後,使用SSH連上它 gcloudcompute--project"in-house-project"instancescreate"vpn-gateway"\ --zone"asia-east1-b"--machine-type"f1-micro"\ --subnet"vpn-asia-east1"--private-network-ip"192.168.0.2"--address111.111.111.111\ --can-ip-forward--tags"vpn-gateway"--image"debian-8-jessie-v20180307"--image-project"debian-cloud" gcloudcompute--project"in-house-project"firewall-rulescreate"vpn-allow-ike-esp"\ --allowudp:500,udp:4500--network"vpn"--source-ranges"111.111.222.222"\ --target-tags"vpn-gateway" gcloudcompute--project"in-house-project"ssh"vpn-gateway"--zone"asia-east1-b" 之後開始安裝strongSwan,這裡先來準備設定檔ipsec.conf。

這裡可以使用你習慣的編輯器,將以下設定貼入設定檔中。

設定檔裡面的left指的是現在正在設定的VPNgateway所在的網路相關設定,right則是另一端網路的相關設定。

connmyconn authby=psk auto=route dpdaction=hold ike=aes256-sha1-modp2048,aes256-sha256-modp2048,aes256-sha384-modp2048,aes256-sha512-modp2048! esp=aes256-sha1-modp2048,aes256-sha256-modp2048,aes256-sha384-modp2048,aes256-sha512-modp2048! forceencaps=yes keyexchange=ikev2 mobike=no type=tunnel left=%any leftid=111.111.111.111 leftsubnet=192.168.0.0/24 leftauth=psk leftikeport=4500 right=111.111.222.222 rightsubnet=10.240.0.0/24 rightauth=psk rightikeport=4500 然後執行以下指令安裝並設定strongSwan,記得將替換成你想要的字串 sudoapt-getupdate sudoapt-getinstallstrongswan-y echo"%any:PSK\"\""|sudotee/etc/ipsec.secrets>/dev/null echo"net.ipv4.ip_forward=1"|sudotee-a/etc/sysctl.conf>/dev/null sudosysctl-p sudocpipsec.conf/etc sudoipsecrestart sudoipsecupmyconn step2在in-house端網路設定前往GoogleCloud端網路的route gcloudcompute--project"in-house-project"routescreate"inhouse2gcloud"\ --destination-range"10.240.0.0/24"--network"vpn"--next-hop-instance"vpn-gateway"\ --next-hop-instance-zone"asia-east1-b"--priority"1000" step3在in-house端網路建立VPNclient gcloudcompute--project"in-house-project"instancescreate"vpn-client"\ --zone"asia-east1-b"--machine-type"f1-micro"\ --subnet"vpn-asia-east1"--image"debian-8-jessie-v20180307"--image-project"debian-cloud" gcloudcompute--project"in-house-project"ssh"vpn-client"--zone"asia-east1-b" 然後安裝Nginx sudoapt-getupdate sudoapt-getinstallnginx-light-y echo"Thisisaresponsecomingfromin-house."|sudotee/var/www/html/index.html>/dev/null 準備GoogleCloud端環境 step1設定GoogleCloudVPN 記得將替換成你想要的字串 gcloudcompute--project"google-cloud-project"target-vpn-gatewayscreate"vpn-gateway"\ --region"asia-east1"--network"vpn" gcloudcompute--project"google-cloud-project"forwarding-rulescreate"vpn-gateway-rule-esp"\ --region"asia-east1"--address"111.111.222.222"--ip-protocol"ESP"--target-vpn-gateway"vpn-gateway" gcloudcompute--project"google-cloud-project"forwarding-rulescreate"vpn-gateway-rule-udp500"\ --region"asia-east1"--address"111.111.222.222"--ip-protocol"UDP"--port-range"500"\ --target-vpn-gateway"vpn-gateway" gcloudcompute--project"google-cloud-project"forwarding-rulescreate"vpn-gateway-rule-udp4500"\ --region"asia-east1"--address"111.111.222.222"--ip-protocol"UDP"--port-range"4500"\ --target-vpn-gateway"vpn-gateway" gcloudcompute--project"google-cloud-project"vpn-tunnelscreate"tunnel2inhouse"\ --region"asia-east1"--peer-address"111.111.111.111"--shared-secret""\ --ike-version"2"--target-vpn-gateway"vpn-gateway" step2在GoogleCloud端網路設定前往in-house端網路的route gcloudcompute--project"google-cloud-project"routescreate"gcloud2inhouse"\ --network"vpn"--next-hop-vpn-tunnel"tunnel2inhouse"\ --next-hop-vpn-tunnel-region"asia-east1"--destination-range"192.168.0.0/24" step3在GoogleCloud端網路建立VPNclient gcloudcompute--project"google-cloud-project"instancescreate"vpn-client"\ --zone"asia-east1-b"--machine-type"f1-micro"--subnet"vpn-asia-east1"\ --image-family"debian-8" gcloudcompute--project"google-cloud-project"ssh"vpn-client"--zone"asia-east1-b" 然後安裝Nginx sudoapt-getupdate sudoapt-getinstallnginx-light-y echo"ThisisaresponsecomingfromGoogleCloud."|sudotee/var/www/html/index.html>/dev/null 執行測試 gcloudcompute--project"in-house-project"sshvpn-client\ --command'curlhttp://10.240.0.22>/dev/null' gcloudcompute--project"google-cloud-project"sshvpn-client\ --command'curlhttp://192.168.0.32>/dev/null' 如果分別看到ThisisaresponsecomingfromGoogleCloud.和Thisisaresponsecomingfromin-house.的話,就代表兩邊網路之間的VPN連線已經建立成功了! Reference • VPN簡述GoogleCloudVPNOverview • 建立VPNCreateGoogleCloudVPN • UsingCloudVPNwithPaloAltoNetworksPA-3020 • UsingCloudVPNwithAmazonWebServices • UsingCloudVPNwithFortinetFortiGate300C • UsingCloudVPNwithCiscoASA • UsingCloudVPNwithVyOS • UsingCloudVPNWithMicrosoftAzureTMVPNGateway • 在GCE上面建立VPNgatewaySetupaVPNgatewayonGCEinstance   文章導覽 PreviousPreviouspost:開發Windows應用更方便!GCP全面支援ASP.NETNextNextpost:幕後分享-我們如何解決PokémonGO上線前一天50倍爆量 訂閱電子報 掌握第一手雲端與AI技術資訊,立刻訂閱iKalaCloud電子報! 立即訂閱 站內搜尋 Searchfor: Search iKalaCloud 近期文章 善用CCAIInsights和ContractDocAI加速人工處理作業 「分散式雲端」來臨!GoogleDistributedCloud將基礎架構擴展至自有資料中心、邊緣位置 想打造出色的串流影音產品?掌握這幾項網路設置重點,優化LIVE影片播送! 【實用教學】4種方法,將資料傳輸到GoogleCloud 如何透過Anthos簡化混合雲與多雲部署? 文章分類 AI與機器學習(41) 基礎架構(59) 應用程式現代化(28) 最新消息與洞察(52) 生產力與協作(6) 產業解決方案(54) 資料管理與分析(43) 資訊安全(23) 標籤雲AI Anthos API Apigee APIM AutoML AWS Azure BigQuery Bigtable CloudArmor CloudFunctions CloudMonitoring CloudPub/Sub CloudStorage Dataflow DNS GAE GCE GCP GKE GoogleAnalytics GoogleCloud GoogleKubernetesEngine GoogleMeet GSuite Kubernetes Loadbalancing Migration NetworkIntelligenceCenter Pub/Sub Security Stackdriver Tensorflow VPC 媒體 安全 機房 權限 製造 資料倉儲 資料分析 遊戲 金融 電商 彙整 彙整 選取月份 2021年12月 (2) 2021年11月 (2) 2021年10月 (1) 2021年9月 (3) 2021年8月 (5) 2021年7月 (4) 2021年6月 (5) 2021年5月 (4) 2021年4月 (4) 2021年3月 (5) 2021年2月 (3) 2021年1月 (4) 2020年12月 (4) 2020年11月 (5) 2020年10月 (4) 2020年9月 (5) 2020年8月 (4) 2020年7月 (4) 2020年6月 (8) 2020年5月 (5) 2020年4月 (8) 2020年3月 (6) 2020年2月 (4) 2020年1月 (4) 2019年12月 (7) 2019年11月 (7) 2019年10月 (8) 2019年9月 (6) 2019年8月 (6) 2019年7月 (7) 2019年6月 (6) 2019年5月 (6) 2019年4月 (6) 2019年3月 (6) 2019年2月 (3) 2019年1月 (3) 2018年12月 (1) 2018年11月 (1) 2018年10月 (4) 2018年9月 (5) 2018年8月 (9) 2018年7月 (10) 2018年6月 (7) 2018年5月 (5) 2018年4月 (6) 2018年3月 (7) 2018年2月 (9) 2018年1月 (11) 2017年12月 (8) 2017年11月 (9) 2017年10月 (2) 2017年9月 (2) 2017年7月 (2) 2017年6月 (1) 2017年5月 (3) 2017年4月 (4) 2017年3月 (4) 2017年2月 (3) 2017年1月 (1) 2016年11月 (6) 2016年10月 (5) 2016年9月 (4) 2016年8月 (3) 聯絡我們 如果您有任何問題,可以先參考 FAQ 、寄信至[email protected]或者直接撥打+886287681110,謝謝! 產業類別* 遊戲業 媒體業 數據廣告業 電商與零售業 金融服務業 資訊產業 傳產製造業 高科技產業 教育/公家機構 自由業 其他 企業協作與辦公作業系統(支援遠端工作):GoogleWorkspace API管理 AI與機器學習 混合式雲端與多雲端 運算/無伺服器運算 資料分析 資料庫與儲存空間 搬遷(資料移轉/VM遷移) 網路(DNS/CDN/VPC) 安全性與身份識別 顧客數據平台 其他: 我已閱讀並同意「隱私權政策」 送出 清除 GCP Email格式不正確。

請填寫所有必填欄位。

謝謝您,表單已送出完成,請靜候我們的回覆!



請為這篇文章評分?