VPN 代表虛擬專用網(wǎng)絡(luò)。
虛擬專用網(wǎng)絡(luò)使計(jì)算機(jī)能夠?qū)?shù)據(jù)從一個(gè)專用網(wǎng)絡(luò)發(fā)送和接收到另一個(gè)通過公共網(wǎng)絡(luò)(Internet)連接的專用網(wǎng)絡(luò)。
這對于那些在公司內(nèi)網(wǎng)之外,并且喜歡安全地連接到辦公網(wǎng)絡(luò)以訪問內(nèi)部服務(wù)器的人來說是有幫助的。當(dāng)您將多個(gè)分支機(jī)構(gòu)連接在一起時(shí),VPN 也很有幫助。
即使您沒有將多個(gè)分支機(jī)構(gòu)連接在一起,您仍然可以使用 VPN 設(shè)置讓您的員工從他們的筆記本電腦遠(yuǎn)程連接到數(shù)據(jù)中心并訪問系統(tǒng)。
有時(shí)公司會(huì)購買專線組成WAN(廣域網(wǎng)),并與分支機(jī)構(gòu)進(jìn)行通信。專線雖然安全可靠,但價(jià)格昂貴。
VPN 通過通過公共網(wǎng)絡(luò)提供點(diǎn)對點(diǎn)虛擬連接來填補(bǔ)這一空白。VPN 可以擴(kuò)展以輕松容納不同地理位置的更多用戶。
VPN的類型
概括地說,以下是兩種類型的 VPN:
遠(yuǎn)程訪問
站點(diǎn)到站點(diǎn)
遠(yuǎn)程訪問是通過 VPN 將個(gè)人計(jì)算機(jī)連接到網(wǎng)絡(luò)?!罢军c(diǎn)到站點(diǎn)”通過 VPN 將兩個(gè)網(wǎng)絡(luò)連接在一起。
什么是 OpenVPN
來自 OpenVPN 人:
OpenVPN 是 James Yonan 的開源 VPN 守護(hù)程序。OpenVPN 是一個(gè)強(qiáng)大且高度靈活的 VPN 守護(hù)程序。OpenVPN 支持 SSL/TLS 安全性、以太網(wǎng)橋接、通過代理或 NAT 的 TCP 或 UDP 隧道傳輸、對動(dòng)態(tài) IP 地址和 DHCP 的支持、對成百上千用戶的可擴(kuò)展性以及對大多數(shù)主要操作系統(tǒng)平臺的可移植性。
本教程解釋了為遠(yuǎn)程訪問設(shè)置和配置 OpenVPN 服務(wù)器和客戶端的過程。
一、配置OpenVPN——服務(wù)器端
1. 安裝 OpenVPN
在服務(wù)器和客戶端機(jī)器上安裝 openvpn 包。
$ sudo apt-get install openvpn
使用您正在使用的發(fā)行版的相應(yīng)包管理器。如果您使用的是 yum,請執(zhí)行以下操作
$ yum install openvpn
2.創(chuàng)建目錄并設(shè)置Env變量
在/etc/openvpn中創(chuàng)建一個(gè)目錄并將easy-rsa內(nèi)容復(fù)制到其中。這樣做是為了確保在升級包時(shí)對腳本所做的更改不會(huì)丟失。將所有者更改為當(dāng)前用戶,以便當(dāng)前用戶具有創(chuàng)建文件的權(quán)限。
$ 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以適應(yīng)您的環(huán)境。
export KEY_COUNTRY="IN" export KEY_PROVINCE="TN" export KEY_CITY="CHN" export KEY_ORG="tgs" export KEY_EMAIL="admin@hgst.com.cn"
3. 創(chuàng)建 CA – 證書頒發(fā)機(jī)構(gòu)(根證書)
構(gòu)建 openvpn 服務(wù)器的下一步是建立一個(gè)公鑰基礎(chǔ)設(shè)施,以便服務(wù)器和客戶端可以相互驗(yàn)證。
$ 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/中看到一個(gè)名為“ca.key”和“ca.crt ”的文件
請記住,“.key”文件必須保密。
4. 為服務(wù)器創(chuàng)建證書
下一步是為我們的 Openvpn 服務(wù)器創(chuàng)建一個(gè)證書。
$ /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 是服務(wù)器的 HOSTNAME。該命令將接受用戶的輸入,類似于前一個(gè)命令。此命令將為服務(wù)器創(chuàng)建證書和密鑰文件。
5. 為客戶創(chuàng)建證書
VPN 客戶端還需要證書來與服務(wù)器進(jìn)行身份驗(yàn)證。如果要配置多個(gè)客戶端,則需要為每個(gè)客戶端分別創(chuàng)建證書。
$ ./build-key vpnclient1 ... ... Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
vpnclient1 是客戶端的主機(jī)名。此命令將為客戶端創(chuàng)建證書和密鑰文件。
6. 創(chuàng)建 Diffie Hellman 參數(shù)
$ ./build-dh
成功完成上述所有步驟后,您將在/etc/openvpn/easy-rsa/keys中擁有許多密鑰和證書文件。
7. 將證書復(fù)制到相應(yīng)位置
我們已經(jīng)創(chuàng)建了根證書、服務(wù)器證書和客戶端證書。我們需要將它們復(fù)制到適當(dāng)?shù)奈恢谩?/p>
$ 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
現(xiàn)在我們已將客戶端證書和密鑰復(fù)制到客戶端計(jì)算機(jī)。在復(fù)制密鑰文件時(shí),請記住使用 scp 之類的安全介質(zhì)。
8. 配置服務(wù)器
OpenVPN 提供了一個(gè)默認(rèn)的 server.conf。您可以根據(jù)需要對其進(jìn)行修改。
$ 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
現(xiàn)在啟動(dòng) OpenVPN 服務(wù)器:
$ 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
默認(rèn)情況下,openVPN 會(huì)在 syslog 文件中記錄錯(cuò)誤。
二、配置 OpenVPN – 客戶端
9. 設(shè)置客戶端配置文件
現(xiàn)在我們將配置 openVPN 作為客戶端工作。記住我們已經(jīng)在客戶端安裝了openvpn包,我們在/etc/openvpn/中有“ca.crt”、“vpnclient1.key”、vpnclient1.crt”
將示例 client.conf 復(fù)制到/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
現(xiàn)在在客戶端啟動(dòng) 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 設(shè)置
從客戶端機(jī)器 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 通,那么您已經(jīng)進(jìn)行了正確的設(shè)置。
請記住以下幾點(diǎn):
確??蛻舳撕头?wù)器使用相同的協(xié)議和端口號。
客戶端和服務(wù)器必須對一些參數(shù)使用相同的配置,如密鑰大小、壓縮等……
如果出現(xiàn)任何問題,請?jiān)谂渲弥性黾尤罩驹敿?xì)程度并檢查 syslog 文件以進(jìn)行故障排除。
鏈接:https://bbs.huaweicloud.com/blogs/369552
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208717 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
8958瀏覽量
85082 -
客戶端
+關(guān)注
關(guān)注
1文章
289瀏覽量
16640
原文標(biāo)題:如何在 Linux 上輕松設(shè)置 OpenVPN 服務(wù)器和客戶端:完整教程與實(shí)用技巧
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論