使用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,給團隊內的夥伴們送上翻牆梯子,也是不錯的小福利。
歡迎關注陳同學的公眾號,一起學習,一起成長
相關文章
- Ubuntu 設定遠端桌面(RDP)Ubuntu
- 居家辦公如何破? “遠端易”幫你高效接入遠端辦公
- ADB 設定遠端除錯除錯
- 遠端辦公的普及
- 在家辦公是如何實現高效遠端辦公的
- Ubuntu 設定遠端桌面(VNC 連線)UbuntuVNC
- 遠端辦公必坑指南
- win10設定遠端桌面連線的方法_win10如何設定遠端桌面連線Win10
- 日本開始啟動遠端辦公,遠端辦公資料安全如何防範?
- 如何在 Linux 上使用 x2go 設定遠端桌面LinuxGo
- 如何遠端連線 桌面設定遠端桌面連線
- 遠端辦公防洩密技巧
- 遠端辦公軟體安全嗎?
- openvpn安裝使用文件
- centos下安裝openvpn———客戶端CentOS客戶端
- 遠端辦公開啟中國To B元年
- 遠端辦公軟體的價格
- 遠端辦公軟體的報價
- 遠端辦公這 5 年的感受
- 在Ubuntu上使用MySQL設定遠端資料庫優化站點效能UbuntuMySql資料庫優化
- 在家遠端辦公效率低?那你一定要收好這個「在家辦公」神器!
- 鴻翼ECM文件雲:讓遠端辦公更便捷,提升企業辦公效率
- Jmeter-分散式執行指定遠端主機JMeter分散式
- 復工復產下辦公,哪些遠端協同辦公產品免費助攻
- 遠端辦公助企業全力以“復”
- 遠端辦公 | 適應時代的工作模式模式
- 疫情之下 | 教你遠端辦公高效又安全
- TeamViewer:遠端辦公網路安全守護者View
- 遠端辦公如何保證資料安全?
- 開啟遠端辦公企業雲盤
- 利用LINUX進行遠端辦公(轉)Linux
- 辦公進階:HoudahSpot使用教程
- 遠端辦公,你該選擇哪些遠端協同工具?
- CentOs7 中mysql8 設定遠端連線CentOSMySql
- 疫情下的遠端辦公該做什麼?
- 超實用!免費遠端辦公工具分享!
- 遠端辦公:讓工作效率變得高效
- 宅也要宅出精彩,遠端辦公哪家強