poynt2005's blog

一個我的個人文章發表的地方

0%

如何使用Windows建立OpenVPN伺服器

寫在前面

這篇文寫於2021/1/10 11:30左右,寫完大概12:57,原本想當天放在個人的blog上,結果github上留著的是編譯過的hex blog,source file 留在家裡,冏= =

前言

會有這個需求是因為學校網路的流量是有限制的,每一個IP一日的用量就只有10G
我本身有3個IP可以使用,分別是實驗室的2個IP和宿舍的1個IP,總共30GB的流量可以使用 之前用過很多種方法都不可行,自己就是不太會設定,
有試過使用windows內建的、開虛擬機使用openvpn、開虛擬機使用docker建立openvpn…等等
均以失敗告終,教學不是太複雜就是根本不知道在寫什麼,我照著步驟一步一步做還TM不能用,當初寫教程的人根本沒有好好測試…
後來研究出直接在windows上面架設OpenVpn的伺服器,姑且紀錄一下

設定步驟

PS: 本篇教學是以Easy-RSA 3.0.8作為示範

以下是Server部分

  1. 下載並安裝OpenVPN for Windows(下載點),一開始選擇Customize,進入後中間會有兩個套件是打X的(預設不安裝,架設Server則必須要安裝),點擊打X的圖示,在下拉的選單中點選Will be installed on local hard drive,來安裝這兩個套件,之後就一直無腦下一步就好= =
    安裝介面
    安裝套件
    安裝套件
    安裝套件

  2. 這邊下載EasyRSA-3.0.8-win64.zip,解壓縮到桌面、文件,只要你爽就好的地方

  3. 去EasyRSA的資料夾中,建立一個名為”vars”的檔案,打開文字編輯器,寫入以下的code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    set_var EASYRSA                 "$PWD"
    set_var EASYRSA_PKI "$EASYRSA/pki"
    set_var EASYRSA_DN "cn_only"
    set_var EASYRSA_REQ_COUNTRY "TW"
    set_var EASYRSA_REQ_PROVINCE "Taipei"
    set_var EASYRSA_REQ_CITY "Taipei"
    set_var EASYRSA_REQ_ORG "組織名稱_自己寫"
    set_var EASYRSA_REQ_EMAIL "填一個email"
    set_var EASYRSA_REQ_OU "組織名稱_自己寫"
    set_var EASYRSA_KEY_SIZE 2048
    set_var EASYRSA_ALGO rsa
    set_var EASYRSA_CA_EXPIRE 3650
    set_var EASYRSA_CERT_EXPIRE 365
    set_var EASYRSA_NS_SUPPORT "no"
    set_var EASYRSA_NS_COMMENT "組織名稱_自己寫"
    set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
    set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf"
    set_var EASYRSA_DIGEST "sha256"
  4. 打開EasyRSA-Start.bat,會跳出一個console視窗,輸入./easyrsa init-pki,回車
    init-pki

  5. 輸入./easyrsa build-ca,回車,輸入密碼和自訂的server名稱
    build-ca

  6. 輸入./easyrsa gen-req [自訂的server名稱] nopass,回車,再輸入一次自訂的server名稱
    gen-req

  7. 輸入./easyrsa sign-req server *[自訂的server名稱]*,回車,並輸入yes跟第5步設定的密碼(圖片跟上面差不多就懶得放了= =)

  8. openssl verify -CAfile pki/ca.crt pki/issued/自訂的server名稱.crt,回車,畫面上必須顯示pki/issued/[自訂的server名稱]: OK,如果不OK就前面步驟再做一遍

  9. 輸入./easyrsa gen-req [自訂的client名稱] nopass,回車,再輸入一次自訂的client名稱

  10. 輸入./easyrsa sign-req client *[自訂的client名稱]*,回車,並輸入yes跟第5步設定的密碼

  11. 輸入openssl verify -CAfile pki/ca.crt pki/issued/[自訂的client名稱].crt,回車,如果不OK就9~11重做

  12. 輸入./easyrsa gen-dh,回車,會跑出一堆點和+。等他跑完

  13. 輸入./easyrsa gen-crl,回車,並輸入密碼

  14. 取得server和client所需的檔案,都在EasyRSA-3.0.8\pki目錄下,先複製一份出來到某個資料夾備用

    • Server(4個): ca.crt , dh.pem , issued\[自訂的server名稱].crt , private\[自訂的server名稱].key
    • Client(4個): ca.crt , dh.pem , issued\[自訂的client名稱].crt , private\[自訂的client名稱].key
  15. 建立server.ovpn檔案,打開文字編輯器寫入(中括號內的要改成自己的內容):
    其中,server [server ip 位址] [server ipmask]的部分,可以填server所在的網段,比如說我的server ip在10.10.10.5,則IP就能填10.10.10.0,mask就可以填255.255.255.0,則client就可以被分配到10.10.10.0~10.10.10.255的IP

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert [自訂的server名稱].crt
    key [自訂的server名稱].key
    dh dh.pem
    server [server ip 位址] [server ipmask]
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS [DNS server #1(可以用google的8.8.8.8)]"
    push "dhcp-option DNS [DNS server #2(可以用google的8.8.4.4)]"
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    status openvpn-status.log
    verb 3
    mute 20
  16. 將server.ovpn和剛剛第14步備用的4個server檔案複製到openvpn安裝目錄下的config資料夾,則server部分設置完成

  17. 可能需要設定Windows防火牆放行UDP的port 1194的連入連線,詳細設定教學請自己找google

以下是Server部分

  1. 下載並安裝OpenVPN for Windows,一開始install now,無腦下一步就好,不用設定有的沒的
  2. 建立client.ovpn文件,使用文字編輯器編輯,寫入以下內容(中括號內的要改成自己的內容)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    client
    dev tun
    proto udp
    remote [Server的IP位址] 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    mute-replay-warnings
    ca ca.crt
    cert cg1422-client.crt
    key cg1422-client.key
    comp-lzo
    verb 3
    redirect-gateway def1 bypass-dhcp
  3. 將client.ovpn和剛剛第14步備用的4個client檔案複製到openvpn安裝目錄下的config資料夾,則client部分設置完成
    server用法.png

使用

Server端: 右下角常駐程式找到OpenVPN GUI右鍵,找到server名稱並按連線,等待它跑完

Client端: 右下角常駐程式找到OpenVPN GUI右鍵,找到client名稱並按連線,等待它跑完