VPN 代表虛擬專用網絡。
虛擬專用網絡使計算機能夠將數據從一個專用網絡發送和接收到另一個通過公共網絡(Internet)連接的專用網絡。
這對于那些在公司內網之外,并且喜歡安全地連接到辦公網絡以訪問內部服務器的人來說是有幫助的。當您將多個分支機構連接在一起時,VPN 也很有幫助。
即使您沒有將多個分支機構連接在一起,您仍然可以使用 VPN 設置讓您的員工從他們的筆記本電腦遠程連接到數據中心并訪問系統。
有時公司會購買專線組成WAN(廣域網),并與分支機構進行通信。專線雖然安全可靠,但價格昂貴。
VPN 通過通過公共網絡提供點對點虛擬連接來填補這一空白。VPN 可以擴展以輕松容納不同地理位置的更多用戶。
VPN的類型
概括地說,以下是兩種類型的 VPN:
遠程訪問
站點到站點
遠程訪問是通過 VPN 將個人計算機連接到網絡。“站點到站點”通過 VPN 將兩個網絡連接在一起。
什么是 OpenVPN
來自 OpenVPN 人:
OpenVPN 是 James Yonan 的開源 VPN 守護程序。OpenVPN 是一個強大且高度靈活的 VPN 守護程序。OpenVPN 支持 SSL/TLS 安全性、以太網橋接、通過代理或 NAT 的 TCP 或 UDP 隧道傳輸、對動態 IP 地址和 DHCP 的支持、對成百上千用戶的可擴展性以及對大多數主要操作系統平臺的可移植性。
本教程解釋了為遠程訪問設置和配置 OpenVPN 服務器和客戶端的過程。
一、配置OpenVPN——服務器端
1. 安裝 OpenVPN
在服務器和客戶端機器上安裝 openvpn 包。
$ sudo apt-get install openvpn
使用您正在使用的發行版的相應包管理器。如果您使用的是 yum,請執行以下操作
$ yum install openvpn
2.創建目錄并設置Env變量
在/etc/openvpn中創建一個目錄并將easy-rsa內容復制到其中。這樣做是為了確保在升級包時對腳本所做的更改不會丟失。將所有者更改為當前用戶,以便當前用戶具有創建文件的權限。
$ sudo mkdir /etc/openvpn/easy-rsa $ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa $ sudo chown -R $USER /etc/ openvpn/easy-rsa/
接下來,編輯/etc/openvpn/easy-rsa/vars以適應您的環境。
export KEY_COUNTRY="IN" export KEY_PROVINCE="TN" export KEY_CITY="CHN" export KEY_ORG="tgs" export KEY_EMAIL="admin@hgst.com.cn"
3. 創建 CA – 證書頒發機構(根證書)
構建 openvpn 服務器的下一步是建立一個公鑰基礎設施,以便服務器和客戶端可以相互驗證。
$ cd /etc/openvpn/easy-rsa/ $ source vars $ ./clean-all $ ln -s openssl-1.0.0.cnf openssl.cnf $ ./build-ca Generating a 1024 bit RSA private key ........++++++ ......++++++ unable to write 'random state' writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [IN]: State or Province Name (full name) [TN]: Locality Name (eg, city) [CHN]: Organization Name (eg, company) [tgs]: Organizational Unit Name (eg, section) [changeme]: Common Name (eg, your name or your server's hostname) [changeme]: Name [changeme]:lakshmanan Email Address [mail@host.domain]:admin@hgst.com.cn
./build-ca完成后,您將在/etc/openvpn/easy-rsa/keys/中看到一個名為“ca.key”和“ca.crt ”的文件
請記住,“.key”文件必須保密。
4. 為服務器創建證書
下一步是為我們的 Openvpn 服務器創建一個證書。
$ /etc/openvpn/easy-rsa/build-key-server vpnserver ... ... Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
請注意,vpnserver 是服務器的 HOSTNAME。該命令將接受用戶的輸入,類似于前一個命令。此命令將為服務器創建證書和密鑰文件。
5. 為客戶創建證書
VPN 客戶端還需要證書來與服務器進行身份驗證。如果要配置多個客戶端,則需要為每個客戶端分別創建證書。
$ ./build-key vpnclient1 ... ... Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
vpnclient1 是客戶端的主機名。此命令將為客戶端創建證書和密鑰文件。
6. 創建 Diffie Hellman 參數
$ ./build-dh
成功完成上述所有步驟后,您將在/etc/openvpn/easy-rsa/keys中擁有許多密鑰和證書文件。
7. 將證書復制到相應位置
我們已經創建了根證書、服務器證書和客戶端證書。我們需要將它們復制到適當的位置。
$ cd /etc/openvpn/easy-rsa/keys/ $ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/ $ scp ca.crt vpnclient1.key vpnclient1.crt root@vpnclient1:/etc /openvpn
現在我們已將客戶端證書和密鑰復制到客戶端計算機。在復制密鑰文件時,請記住使用 scp 之類的安全介質。
8. 配置服務器
OpenVPN 提供了一個默認的 server.conf。您可以根據需要對其進行修改。
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ $ sudo gzip -d /etc/openvpn/server.conf.gz
編輯“/etc/openvpn/server.conf”。
ca ca.crt cert vpnserver.crt key vpnserver.key dh dh1024.pem
現在啟動 OpenVPN 服務器:
$ sudo /etc/init.d/openvpn start * Starting virtual private network daemon(s)... * Autostarting VPN 'server' $ ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
默認情況下,openVPN 會在 syslog 文件中記錄錯誤。
二、配置 OpenVPN – 客戶端
9. 設置客戶端配置文件
現在我們將配置 openVPN 作為客戶端工作。記住我們已經在客戶端安裝了openvpn包,我們在/etc/openvpn/中有“ca.crt”、“vpnclient1.key”、vpnclient1.crt”
將示例 client.conf 復制到/etc/openvpn。
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
編輯/etc/openvpn/client.conf。
... # Specify that this is openvpn client client remote vpnserver 1194 ca ca.crt cert vpnclient1.crt key vpnclient1.key
現在在客戶端啟動 OpenVPN
$ /etc/init.d/openvpn start * Starting virtual private network daemon(s)... * Autostarting VPN 'client' $ ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
10. 測試 VPN 設置
從客戶端機器 ping vpnserver 以查看 VPN 是否正常工作。
$ ping 10.8.0.1 PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data. 64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms
如果您能夠 ping 通,那么您已經進行了正確的設置。
請記住以下幾點:
確保客戶端和服務器使用相同的協議和端口號。
客戶端和服務器必須對一些參數使用相同的配置,如密鑰大小、壓縮等……
如果出現任何問題,請在配置中增加日志詳細程度并檢查 syslog 文件以進行故障排除。
鏈接:https://bbs.huaweicloud.com/blogs/369552
-
Linux
+關注
關注
87文章
11292瀏覽量
209331 -
服務器
+關注
關注
12文章
9123瀏覽量
85328 -
客戶端
+關注
關注
1文章
290瀏覽量
16684
原文標題:如何在 Linux 上輕松設置 OpenVPN 服務器和客戶端:完整教程與實用技巧
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論