wiki:wade/openVPN

【Environment:環境】

  • server:
    • OS:ubuntu 8.04。
  • client:
    • 未定:

【Download:下載】

【Install:安裝】

  • 準備 OpenSSL、LZO、Pthread library。
      sudo apt-get install liblzo2-dev openssl  libpthread-stubs0-dev libcurl4-openssl-dev
    
  • 安裝
      cd openvpn-2.0.9
      ./configure
      make
      sudo make install
    
  • 測試
      make check
    
  • 測試加密
      ./openvpn --genkey --secret key
      ./openvpn --test-crypto --secret key
    
  • 測試 SSL/TLS 協定,請將兩行指令在不同的 terminal 內執行。
    ./openvpn --config sample-config-files/loopback-client  
    ./openvpn --config sample-config-files/loopback-server  
    

【Generate CA/keys:產生 CA certificate 、 server/client keys】

  • 預設安裝目錄為
    ~/openvpn-2.0.9
    
  • 進入產生認證所需的 script 的 easy-rsa 目錄
    cd ~/openvpn-2.0.9/easy-rsa
    
  • 編輯 vars 檔案
    vim vars
    
    • vars 內容
      export KEY_DIR=$D/keys                 存放 key 的目錄
      export KEY_SIZE=1024                   key 長度
      export KEY_COUNTRY=KG                  剩下請自行填入,請「不要」讓這些設定「空白」
      export KEY_PROVINCE=NA
      export KEY_CITY=BISHKEK
      export KEY_ORG="OpenVPN-TEST"
      export KEY_EMAIL="me@myhost.mydomain"
      
  • 將 vars 內容加至環境變數中。
    .vars          官網教學用這個指令
    source vars    我用這個
    
  • 產生主要的 ca
    ./clean-all    如果你之前有產生過 key ,想要移除之前的 key,請先執行些指令
    ./build-ca
    
    • 會產生以下目錄及檔案:
      • 產生:keys/
      • 產生:keys/ca.crt
      • 產生:keys/ca.key
      • 產生:keys/index.txt
      • 產生:keys/serial
  • 產生 server 的 ca 及 key
    ./build-key-server server
    
    • 會產生以下目錄及檔案:
      • 產生:keys/01.pem
      • 產生:keys/index.txt
        • 將原本的 index.txt → index.txt.old
      • 更新:keys/serial
        • 將原本的 serial → serial.old
      • 產生:keys/server.crt
      • 產生:keys/server.csr
      • 產生:keys/server.key
  • 產生 client 的 ca 及 key
    ./build-key client1
    
    • 會產生以下目錄及檔案:
      • 產生:02.pem
      • 產生:client1.crt
      • 產生:index.txt
        • 將原本的 index.txt → index.txt.old
      • 產生:index.txt.attr
        • 將原本的 serial → serial.old
      • 產生:serial
      • 產生:client1.csr
      • 產生:client1.key
  • 產生 Diffie Hellman 參數
    ./build-dh
    
  • 結果:在 keys 目錄下所有檔案對照。
Filename Needed By Purpose Secret
ca.crt server + all clients Root CA certificate NO
ca.key key signing machine only Root CA key YES
dh{n}.pem server only Diffie Hellman parameters NO
server.crt server only Server Certificate NO
server.key server only Server Key YES
client1.key client1 only Client1 Key YES
client2.crt client2 only Client2 Certificate NO
client2.key client2 only Client2 Key YES
client3.crt client3 only Client3 Certificate NO
client3.key client3 only Client3 Key YES

【Creating configureation files:設定】

Sample openVPN 2.0 configuration file

  • server:
    • ./sample-config-files/server.conf
        local a.b.c.d     輸入你 Server 對外的 IP
        port 1194         你要監聽那個 por  
        proto tcp         你的 server 要監聽 TCP port
        proto udp         你的 server 要監聽 UDP port
        ca ca.crt
        cert server.crt
        key server.key  # This file should be kept secret
        client-to-client  是否要讓你的 client 與 client 間可以互相連接
      
  • client:
    • ./sample-config-files/client.conf
        remote [a.b.c.d Server 對外的 IP] 1194
        ca ca.crt
        cert client.crt
        key client.key
      

【Start up the openVPN:啟動 openVPN】

  • Server:
    openvpn server.conf
    
  • Client:
    openvpn client.conf
    

【指令】

~/openvpn-2.0.9/easy-rsa

  • clean-all:將目錄底下存放 key 的目錄整個移除,預設 key 目錄為 :~/openvpn-2.0.9/easy-rsa/key

【Reference:參考資料】

Last modified 15 years ago Last modified on Aug 6, 2009, 4:08:56 PM

Attachments (1)

Download all attachments as: .zip