N16 吃完蕃茄配 OPENVPN
分類:硬道理
以在 windows 環境下製做為主 , 系統 : win 7 x64 怕有什麼風險就先備份一下設定檔 , 因為Js 第一次做完整台N16 出錯回到預設值 …..
- openvpn client http://openvpn.net/index.php/download/community-downloads.html 下載完預設安裝即可
- openssl http://slproweb.com/products/Win32OpenSSL.html
下載完預設安裝後再建環境變數 , 這裡僅做一次性設定,請在cmd內輸入 ,請用這個cmd 做完下面的流程 , 關閉cmd 就失效了
set path=%path%;C:\OpenSSL-Win64\bin
- easy-rsa https://github.com/OpenVPN/easy-rsa下載完取出2.0 跟 easy_rsa/windows 資料夾就好 , 我放在 D:\ 下 , 再取出 2.0資料夾內的 openssl-1.0.0.cnf 放到d:\windows 裡
- 用cmd 進到 D:\windows 內 先執行init-config.bat資料夾內會產生一個 vars.bat 的檔 , 先編輯這個檔案,找到下面幾個set 改成自己的資訊 ,後續建KEY 會被引用
set KEY_COUNTRY=TW set KEY_PROVINCE=Taiwan set KEY_CITY=Taichung set KEY_ORG=OpenVPN set KEY_EMAIL=mail@host.domain set KEY_CN=changeme set KEY_NAME=changeme set KEY_OU=changeme
- 執行 vars.bat
- clean-all.bat #清除已除在的key
- 再執行 vars.bat
- build-ca.bat #建立CA

- build-dh.bat #建立 pem檔 , 會稍微久一點

- build-key-server.bat server #建立server key
[y/n] 問題要填一下y - build-key client #建立客戶端 key , 在 common name 時 切勿使用和server 相同的名稱

- 設定N16上的openvpn

金鑰設定(檔案在 d:\windows\keys 裡):
認證中心 = ca.crt
伺服器憑證=server.crt
伺服器金鑰=server.key
Diffie Hellman 參數=dh2048.pem - 啟用JFFS

- 使用telnet 或 ssh 進入 N16 cd /etc vi generate.sh #內容: #!/bin/sh HASHPASS=$(echo -n "$1$2" | md5sum | sed s'/\ -//') i=0 while [ $i -lt 10 ]; do HASHPASS=$(echo -n $HASHPASS$HASHPASS | md5sum | sed s'/\ -//') i=$(expr $i + 1) done echo $1:$HASHPASS exit 1 EOF #:wq離開chmod 755 /etc/generate.sh nvram setfile2nvram /etc/generate.sh vi verify.sh #內容: #!/bin/sh #echo "${username}" hash=$(/etc/generate.sh "${username}" "${password}") USERS=$(cat /etc/vpnusers) for u in $USERS; do test "${hash}" == "${u}" && exit 0 done exit 1 EOF #:wq離開 chmod 755 /etc/verify.sh nvram setfile2nvram /etc/verify.sh #測試建立VPN撥入帳號 /etc/generate.sh user1 passwd1 >> /etc/vpnusers nvram setfile2nvram /etc/vpnusers nvram commit#測試Script是否OK可運作 export username=user1 export password=passwd1 /etc/verify.sh echo $? #若出現0是運作正常,若出現1則有問題 , 沒問題就reboot
- 建立 ovpn 檔,放到 openvpn/config 下
client proto udp dev tun remote your_server 1194 resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3 auth-user-pass dhcp-option DNS 8.8.4.4 dhcp-option DNS 168.95.192.1
-----BEGIN CERTIFICATE----- MIIExzCCA6+gAwIBAgIJAOgRb7MNku3CMA0GCSqGSIb3DQEBCwUAMIGdMQswCQYD Z/09yeJDHO/MC0vn+WL3 yxcyZFv/dUMOKwElz/qkOIPhzu8TyANgQHkn -----END CERTIFICATE----- Certificate: Digital Signature Signature Algorithm: sha256WithRSAEncryption 3b:f1:30:81:08:c1:1e:17:ca:b9:ec:a1:13:c9:a4:86:83:dc: 58:c9:ef:37:e7:9f:b4:4d:95:d1:77:56:89:8d:2a:c7:38:47: 62:94:80:16:e4:bc:ae:be:7e:b2:c4:65:b7:23:47:af:ca:61: 1f:19:98:03 -----BEGIN CERTIFICATE----- MIIFCzCCA/OgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMCVFcx DO95HdeHA+D2brxqMpcGxtS8m dUAuzHCgQFjJ7zfnn7RNldF3VomNKsc4R2KUgBbkvK6+frLEZbcjR6/KYR8ZmAM= -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDLo5TmK9roFYO4 lTNjY+41SjwzmFjvx8WtJW8b 9FJ4o06SJbAUkiszM2uqzg== -----END PRIVATE KEY----- - 其他說明 :
- win7測試正常 ,但android 測試下只要勾選了 "指引VPN客戶端重定向 Internet 流量" 或在ovpn 檔內指定了route-gateway 192.168.1.254redirect-gateway 也會不通 , 但是不指定就不會跳到N16的IP , 不確定這樣VPN有沒有起作用 , 不過有點懶的測 , 基本上 , 我不會用手機連VPN , 連了也不知道要幹嘛 ....
- 在建KEY時可能會產生一些找不到資料夾的問題 , 但是沒關係 , 不用管他,我們的目地只是把KEY產生出來 ,路徑不修正也不要緊