openvpn伺服器&客戶端配置
阿新 • • 發佈:2019-01-06
openvpn伺服器&客戶端配置
1. 伺服器端
環境:CentOS 6.5
軟體:openvpn、easy-rsa。
1.1 關閉selinux
#setenforce 0
檢視狀態
#sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
1.2 安裝openvpn
#yum install -y openvpn
檢視版本:
#openvpn --version
1.3 安裝easy-rsa
#yum install -y easy-rsa
檢視
#rpm -ql easy-rsa
1.4 製作CA證書
#mkdir /etc/openvpn/easy-rsa/
#cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
1.5 編輯vars檔案
#vi /etc/openvpn/easy-rsa/vars
修改
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GD"
export KEY_CITY="Shenzhen"
export KEY_ORG="LD"
export KEY_EMAIL="[email protected]"
export KEY_OU="user"
export KEY_NAME="user"
1.6 生效vars
#cd /etc/openvpn/easy-rsa
#source vars
1.7 刪除keys目錄下的檔案
#./clean-all
1.8 製作ca證書
#./build-ca
使用預設資訊,一直回車即可。
#cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/
1.9 檢視 ca.crt / ca.key 兩個檔案。
#ls -l /etc/openvpn/easy-rsa/keys/
1.10 製作server端證書
#./build-key-server vpnserver
使用預設配置,最後兩次需要選擇兩次y
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
1.11 檢視server端證書
檢視 vpnserver.crt/vpnserver.csr/vpnserver.key
#ls -al /etc/openvpn/easy-rsa/keys
1.12 生成加密交換時的Diffie-Hellman檔案
#./build-dh
1.13 檢視加密檔案,dh2048.pem
#ls -al /etc/openvpn/easy-rsa/keys
1.14 將vpnserver.crt/vpnserver.key/dh2048.pem複製到/etc/openvpn/目錄下
#cd /etc/openvpn/easy-rsa/keys
#cp vpnserver.crt vpnserver.key dh2048.pem /etc/openvpn/
#ls /etc/openvpn/
顯示
ca.crt dh2048.pem easy-rsa openvpn.crt openvpn.key
至此, server端相關證書製作完成。
1.15 配置server端
#cp /usr/share/doc/openvpn-2.3.12/sample/sample-config-files/server.conf /etc/openvpn/server.conf.bak
#cp /etc/openvpn/server.conf.bak /etc/openvpn/server.conf
#cd /etc/openvpn/
#vi server.conf
去掉;client-to-client前面的";"。
cert server.crt 改成 cert vpnserver.crt #也可使用絕對路徑
key server.key 改成 key vpnserver.key #也可使用絕對路徑
其它的使用預設配置即可。
如果需要配置固定ip地址,則將以下兩行前面";"去掉
;client-config-dir ccd
;route 10.8.0.0 255.255.255.252
新建 ccd 目錄
#mkdir /etc/openvpn/ccd
為testuser配置固定虛擬ip地址
#cd /etc/openvpn/ccd
#echo ifconfig-push 10.8.0.1 10.8.0.2 > testuser
10.8.0.0 需要與server.confg裡面的 route 10.8.0.0 255.255.255.252 一樣。
1.16 重啟openvpn服務
配置防火牆
#iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
#iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
#service iptables save
重啟openvpn
#service openvpn start
Starting openvpn: [OK]
開機啟動
#chkconfig openvpn on
1.17 檢視是否啟動openvpn服務
#ss -tnlp | grep 1194
顯示LISTEN 0 1 *;1194 *.* users:(("openvpn",1765,6))表示成功。
2. 生成客戶端證書及key
2.1 製作client端使用的證書
#cd /etc/openvpn/easy-rsa
#./build-key testuser
使用預設配置,最後需要輸入兩次y
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
2.2 檢視testuser配置的檔案
#ls keys
應該包含了 testuser.crt testuser.csr testuser.key
其中,testuser.crt和testuser.key是我們需要使用的。
如果想快速生成,也可使用
#./build-key --batch testuser
2.3 編輯testuser.ovpn配置檔案
#cp /usr/share/doc/openvpn-2.3.12/sample/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/testuser.ovpn
#vi testuser.ovpn
修改以下幾點:
remote my-server-1 1194 改成 remote 自己伺服器ip 1194
cert client.crt 改成 cert testuser.crt
key client.key 改成 key testuser.key
配置檔案欄位詳細說明:
# 埠,使用預設埠
port 1194
# 預設使用udp,如果使用HTTP Proxy,必須使用tcp協議
proto tcp
dev tun
# 全路徑為/etc/openvpn/keys/ca.crt
ca ca.crt
cert testuser.crt
key testuser.key
dh dh2048.pem
# 預設虛擬區域網網段,不要和實際的區域網衝突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是這臺VPN伺服器所在的內網的網段
push "route 10.0.0.0 255.0.0.0"
# 可以讓客戶端之間相互訪問直接通過openvpn程式轉發,根據需要設定
client-to-client
# 如果客戶端都使用相同的證書和金鑰連線VPN,一定要開啟這個選項,否則每個證書只允許一個人連線VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的狀態日誌,預設為/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的執行日誌,預設為/etc/openvpn/openvpn.log
log-append openvpn.log
# 改成verb 5可以多檢視一些除錯資訊
verb 5
3.客戶端
下載cert和key:
將伺服器端以下4個檔案通過遠端下載到電腦上。
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/testuser.crt
/etc/openvpn/easy-rsa/keys/testuser.key
/etc/openvpn/easy-rsa/keys/testuser.ovpn
3.1 Mac 端
匯入配置檔案
開啟Tunnelblick, 將testuser.ovpn拖到軟體上即可。點選“連線”
3.2 Windows 10
匯入配置
將ca.crt/testuser.crt/testuser.key/testuser.ovpn檔案放入 c:\Program Files\OpenVPN\config目錄下開啟軟體,即可實現聯接。
3.3 Android 端
<ca>
ca.crt內容
</ca>
<cert>
testuser.crt內容,-----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE----- 內容
</cert>
<key>
testuser.key內容
</key>
開啟app,匯入testuser.ovpn即可。
3.4 使用vnc遠端登入
vnc遠端連線,必須配置成固定ip地址,請參照上述 [1.15]
目前我只用過 windows 登入 android 端。
windows 上需要安裝 VNC-View 應用。
VNC-View: https://www.realvnc.com/download/viewer/
如下圖。