前言
應公司要求需要在一臺遠程服務器上搭建一個OpenVPN服務端,在公司本地服務器上搭建一個OpenVPN客戶端,實現公司內網可以訪問遠程服務器的內網資產。
客戶端與服務端環境介紹
- ? 服務器:
- ? 外網:111.6.XXX.XXX
- ? 內網:172.XX.XX.23/25
- ? 系統:CentOS 7
- ? 客戶端:
- ? 外網:1.192.XX.XX
- ? 內網:10.10.XX.XX
- ? CentOS 7
開始搭建:
1、準備OpenVPN證書、密鑰等文件
1.1、從github上下載easy-rsa并傳到服務器上。
然后解壓并進入該文件目錄。
1.2、安裝easy-rsa和openvpn,執行如下命令:
yum install easy-rsa openvpn -y
1.3、下載好的easy-rsa文件里面內容如下:
剛下載好的是沒有vars文件的,我們復制一下并重命名
cp vars.example vars
然后編輯vars文件,找到如下位置并修改為你自己對應的信息。
然后使文件生效
source vars
./clean-all
1.4、生成根證書和根密鑰
執行命令
./easyrsa build-ca
1.5、生成server證書和server密鑰
執行命令
./easyrsa build-server-full server
隨后會生成3個文件:
server.crt
server.req
server.key
生成server.key的時候會要求輸入密碼,該密碼用于啟動openvpn服務時的認證(如果不填寫即啟動服務時不需要輸入密碼)
1.6、生成client的根證書和根密鑰
類似服務端,客戶端也要生成證書和密鑰。client.key文件的密碼,用于客戶端的密碼認證。執行命令:
./easyrsa build-client-full client
1.7、生成密鑰交換文件dh.pem
執行命令:
./easyrsa gen-dh
執行完畢后,文件生成在/usr/share/easy-rsa/pki/dh.pem
1.8、最后整理生成的證書和密鑰
把服務端的證書和密鑰放入/etc/openvpn/server/
下,把客戶端的證書和密鑰放入/etc/open/client/
下:
cp ca.crt /etc/openvpn/server/
cp dh.pem /etc/openvpn/server/
cp server.crt /etc/openvpn/server/
cp server.key /etc/openvpn/server/
cp ca.crt /etc/openvpn/client/
cp client.crt /etc/openvpn/client/
cp client.key /etc/openvpn/client/
2、修改服務器配置文件
執行命令
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn
將server.conf文件復制到openvpn的配置目錄下,這里可能每個人的目錄都不一樣,但是肯定是在doc目錄下有一個openvpn的目錄 編輯server.conf文件,找到如下位置并修改:
注意:這里不能有錯誤,有一個錯誤都會導致服務啟動不起來
端口可以自己設定,但設定后要與待會客戶端的保持一致
使用tcp或者udp協議,自己根據情況考慮
四個證書的位置,根據自己的路徑設置好
server那一行,是服務端給客戶端分配的IP地址默認是10.8.0.0段
第一個push,與自己上面的配置對應起來
第二個push,與自己服務器的內網IP對應起來,注意子網掩碼不要錯
修改加密方式為AES-256-GCM
最后保存文件
3、啟動OpenVPN服務
到此就可以啟動OpenVPN服務了,執行命令
openvpn --daemon --config server.conf
最后查看端口是否開啟:
netstat -lntup | grep 1194
這里端口根據自己的配置輸入
4、啟動路由轉發
最后為服務器開啟路由轉發,這樣客戶端才可以訪問服務器內網中的其他服務器。輸入如下命令:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
5、客戶端配置
5.1、證書及配置文件
先在服務端上找到client.conf,復制到openvpn目錄下:
cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf /etc/openvpn/client/
然后編輯client.conf文件 cipher AES-256-CBC 改為 cipher AES-256-GCM 找到 remote my-server-1 1194 改為 remote 111.6.XX.XX 1194
此處IP為OpenVPN服務端的外網IP 最后將/etc/openvpn/client文件傳輸到客戶端上。
5.2、安裝OpenVPN,根據自己的情況在Windows或Linux下安裝
- Windows直接去下載安裝包:
https://openvpn.net/community-downloads/
- Linux輸入命令:
yum -y install openvpn
5.3、連接服務端
5.3.1、Windows
Windows下找到你的OpenVPN的安裝目錄,打開config文件,將服務端的/etc/openvpn/client目錄下的文件放到客戶端的config目錄下, 把client.conf重命名為client.ovpn
最后,打開OpenVPN的設置,選高級,查看路徑是否為你OpenVPN的正確路徑。
確認無誤后直接連接即可。
可以看到成功連接并獲取到了服務端分配的IP。
5.3.2 Linux Linux下把服務端的/etc/openvpn/client目錄傳輸到客戶端上
然后在客戶端上運行client.conf
openvpn client.conf
可以看到連接成功
查看IP地址
可以看到客戶端成功獲取到服務端的分配的地址。
6、驗證網絡連通性
在客戶端分別ping服務端地址,服務端內網其他地址。
ping 10.8.0.1
ping 111.6.xx.xx
ping 172.xx.xx.23
ping 172.xx.xx.60
可以看到網絡全部都是連通的。
7、總結
至此已經完成了OpenVPN客戶端與服務端的搭建,客戶端也能成功與服務端內網進行通信,整個過程比較復雜,可以自己多配幾遍,多理解一下,切記配置文件中的內容不能有一點錯誤,否則就會導致客戶端連不上。
-
Linux系統
+關注
關注
4文章
603瀏覽量
28299 -
UDP協議
+關注
關注
0文章
70瀏覽量
13038 -
CentOS
+關注
關注
0文章
83瀏覽量
14138 -
TCP通信
+關注
關注
0文章
146瀏覽量
4462
發布評論請先 登錄
評論