使用OpenVPN搞定遠端辦公
歡迎訪問陳同學部落格原文
本文基於同事海偉的內部筆記整理,新增了httpbasic demo,client從付費的shimo換成了免費的tunnelblick。
背景:公司VPN僅支援IE瀏覽器,需在登入VPN賬戶後一直開著IE的視窗。這對於Mac使用者非常不友好,在下班之後、出差中、長期遠端辦公等場景時非常不便。
這是很多人可能遇到的場景,本文將介紹如何利用openvpn打通網路,不涉及openvpn原理,感興趣者可自行了解。
搭建VPN非常簡單,第一步是選取一臺內網伺服器部署openvpn server,第二步是用VPN客戶端連線。
OpenVPN server
前人栽樹,後人乘涼。dockerhub mdns/rancher-openvpn 這個映象可直接使用,支援httpbasic、ldap等認證方式。如果公司有ldap服務,可直接使用ldap作認證;如果想自行管理使用者密碼,可以簡單使用httpbasic。我將演示這兩種方式。
更多關於路由、DNS等相關配置,dockerhub上有更詳細的介紹。
首先,選擇一臺可以訪問你的目標網路的內網機器,機器需要分配公網IP(做IP對映之類都可以)。在上面以docker方式安裝openvpn server。
ldap 認證
docker run -d
--privileged=true
-e REMOTE_IP=example.com
-e REMOTE_PORT=1194
-e ROUTE_NETWORK=192.168.12.0
-e ROUTE_NETMASK=255.255.255.0
-e PUSHDNS=192.168.211.103
-e AUTH_METHOD=ldap
-e AUTH_LDAP_URL=ldap://example.com
-e AUTH_LDAP_BASEDN=`ou=employee,dc=example,dc=com`
-e AUTH_LDAP_SEARCH=`(&(employeeNumber=$username)(employeeType=0))`
-v /etc/openvpn:/etc/openvpn
--name=vpn
-p 1194:1194
mdns/rancher-openvpn
- REMOTE_IP、REMOTE_PORT:可選項,openvpn server所在的主機和埠
- ROUTE_NETWORK、ROUTE_NETMASK:可選項,如果你不想暴露整個網路出來,可以通過這個配置可以訪問的網路範圍。如果需要控制更多網路,參考dockerhub的
OPENVPN_EXTRACONF
變數。 - PUSHDNS:可選項,配置push到VPN client的DNS
- AUTH_LDAP_URL、AUTH_LDAP_BASEDN、AUTH_LDAP_SEARCH:必要,設定你的LDAP配置資訊。`
/etc/openvpn
是各項配置儲存的地方,最好mount到磁碟上,這樣以後出現問題時可以基於這些配置恢復openvpn server,不用去更新客戶端的配置。
執行容器後你需要等待幾分鐘(取決於機器配置),openvpn server需要生成私鑰、公鑰等資訊。客戶端的配置資訊可以在容器日誌或/etc/openvpn/client.conf
中找到,將內容拷貝出來儲存為 client.ovpn
,下面介紹VPN客戶端時將用到。
client.conf
資訊如下圖所示(圖片資訊不全,有刪減)。
httpbasic 認證
執行一個非常簡單的openvpn server做Demo,DNS、訪問控制等參考ldap的例子。
sudo docker run -d --privileged=true -p 1194:1194
-e REMOTE_IP=example.com
-e REMOTE_PORT=1194
-e AUTH_METHOD=httpbasic
-e AUTH_HTTPBASIC_URL=https://chenyongjun.vip/httpbasic
-v /etc/openvpn:/etc/openvpn
--name=vpn
mdns/rancher-openvpn
- AUTH_METHOD設定為httpbasic
- AUTH_HTTPBASIC_URL設定為你的認證服務URL,https://chenyongjun.vip/httpbasic 是我用部落格做的一個httpbasic認證demo。
下面用nginx做一個httpbasic認證的小例子。
location /httpbasic {
auth_basic "nginx http basic demo";
auth_basic_user_file /etc/nginx/sites-available/users;
root /etc/nginx/sites-available/httpbasic;
}
auth_basic_user_file指向的檔案用於配置使用者/密碼,我在users
檔案中配置了兩個使用者:
user1:eQjd/6QJAvqE6
user2:eQjd/6QJAvqE6
密碼都是123456,是用 openssl passwd -crypt 123456
命令加密後的密文。
/etc/nginx/sites-available/httpbasic
目錄下建立了一個名為 httpbasic
檔案,內容為 ok。
訪問 https://chenyongjun.vip/httpbasic 輸入配置的使用者/密碼即可通過認證,獲取到httpbasic檔案資源。
至此,基於ldap和httpbasic的兩種方式都已介紹完。下面介紹如何在Mac上使用vpn客戶端。
OpenVPN client
OpenVPN客戶端選擇很多,這裡選擇免費的 Tunnelblick,在官網直接下載,只有16M,很方便。
用 Tunnelblick 開啟上面儲存的 client.ovpn
客戶端配置檔案,將會新增一條VPN配置。
連線client,輸入ldap或httpbasic中的賬戶密碼,會自動完成建立TCP連線、分配IP地址等一系列建立連線的過程,連線成功後會出現如下提示:
至此,我們完成了OpenVPN server的搭建,並使用客戶端基成功連線,可以通過VPN訪問OpenVPN server 中設定的網段。
如果有國外的雲伺服器,順手搭建個VPN,給團隊內的夥伴們送上翻牆梯子,也是不錯的小福利。
歡迎關注陳同學的公眾號,一起學習,一起成長
相關文章
- 居家辦公如何破? “遠端易”幫你高效接入遠端辦公
- 遠端辦公的普及
- 遠端辦公必坑指南
- 日本開始啟動遠端辦公,遠端辦公資料安全如何防範?
- 在家辦公是如何實現高效遠端辦公的
- 遠端辦公防洩密技巧
- 遠端辦公軟體安全嗎?
- 遠端辦公,你該選擇哪些遠端協同工具?
- TeamViewer遠端連線工具實現遠端辦公高效工作View
- 遠端辦公軟體的報價
- 遠端辦公軟體的價格
- TeamViewer遠端控制軟體,讓你享受遠端辦公的便利View
- 遠端辦公背後的雲端計算博弈
- 疫情之下 | 教你遠端辦公高效又安全
- 遠端辦公開啟中國To B元年
- 遠端辦公助企業全力以“復”
- 開啟遠端辦公企業雲盤
- 遠端辦公如何保證資料安全?
- 一圖讀懂 | 志翔科技“遠端易”助力企業遠端辦公
- 遠端辦公奏響抗疫交響曲
- 宅也要宅出精彩,遠端辦公哪家強
- 超實用!免費遠端辦公工具分享!
- 遠端辦公 | 適應時代的工作模式模式
- 疫情下的遠端辦公該做什麼?
- 遠端辦公:讓工作效率變得高效
- Zoho CRM系統如何實現遠端辦公?
- TeamViewer:遠端辦公網路安全守護者View
- 遠端辦公的發展趨勢如何呢?
- 透過遠端辦公助力防疫常態化
- 在家遠端辦公效率低?那你一定要收好這個「在家辦公」神器!
- 鴻翼ECM文件雲:讓遠端辦公更便捷,提升企業辦公效率
- 「疫情」之下,2020或為中國遠端辦公“元年”
- 【遠端辦公】5分鐘實現內網穿透內網穿透
- 遠端辦公需求爆發,迎來加速發展期!
- Zoho Workplace解決遠端辦公中的痛點
- 移動遠端辦公是怎樣實現的?
- 復工復產下辦公,哪些遠端協同辦公產品免費助攻
- 遠端辦公需要更新程式,沒有硬體Ukey怎麼辦?