1. 程式人生 > >openvpn伺服器&客戶端配置

openvpn伺服器&客戶端配置

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 端

  1. 匯入配置檔案
    開啟Tunnelblick, 將testuser.ovpn拖到軟體上即可。

  2. 點選“連線”
    連線後的圖片

3.2 Windows 10

  1. 匯入配置
    將ca.crt/testuser.crt/testuser.key/testuser.ovpn檔案放入 c:\Program Files\OpenVPN\config目錄下

  2. 開啟軟體,即可實現聯接。
    連線後的圖片

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/
如下圖。
這裡寫圖片描述