搜尋此網誌

顯示具有 OpenVPN 標籤的文章。 顯示所有文章
顯示具有 OpenVPN 標籤的文章。 顯示所有文章

2016年9月10日 星期六

OpenVPN + NAT 上網

OpenVPN 透過 Windows Server 本身的 NAT 機制,
便可以提供遠端存取共享連線。

設定:

1. 打開執行
regedit.exe

2. 找到這裡
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters

3.
設定 IpEnableRouter 值為 1

4.
打開儀表板
新增角色及功能
新增遠端存取
選取路由
按下一步,等待一些時間直到安裝完成

5.
之後不要直接去啟動設定精靈
從儀表板選工具,打開路由即遠端存取
出現畫面之後,用滑鼠右鍵點選左邊的本機
啟用設定精靈,選擇 網路位址轉譯(NAT)
點選下一步,等待服務啟動完成。

6.開始透過 OpenVPN Client 撥號連線測試是否成功。
驗證上,可以嘗試在 Client 端,先刪除預設閘道器之後,再撥號
route delete 0.0.0.0 mask 0.0.0.0

撥號成功之後,預設閘道器數值就是 IP 末值減 1

另外如果打算以 OpenVPN Server 當預設閘道器的話,
那調整取消原網卡上的 IPV4 的自動計量,改為手動計量 例如30
這樣 Push 過來的路由,就會優先於現在的路由以達到目的。







2016年9月8日 星期四

OpenVPN 啟用 用戶名/密碼驗證 設定方法

(1)
修改SERVER端 server.ovpn , 增加以下幾行:

# 設置腳本安全等級 3, 這一行很關鍵
script-security 3 system

# 指定用戶名密碼驗證程序為 checkpsw.cmd
auth-user-pass-verify checkpsw.cmd via-env

# 設置用戶名為 os 通用帳號
username-as-common-name


(2)
在 openvpn\config 目錄下新建 checkpsw.cmd, 內容如下
不管是通過 exe 、bat 或者其它第三方程序 來驗證用戶名和密碼,
最終需要返回 0 表示驗證OK, 1表示失敗


@echo off 

for /f "tokens=1,2,3 delims= " %%i in (password.txt) do (

if %%i == %USERNAME% if %%j==%PASSWORD% if %%k == 1 exit /B 0 

)

exit /B 1



(3)
在 openvpn\config 目錄下新建 password.txt, 內容如下:
格式依據 checkpsw.cmd 而定,
第1個欄位表示用戶名, 第2個欄位表示密碼, 第3個欄位數字 1 表示帳號狀態/用 0 表示停用禁止用戶登陸
例如:
client1 client1 1
client2 client2 1
user1 password1 1


(4)
修改client端 client.ovpn 文件, 增加:

# 增加用戶名&密碼驗證
auth-user-pass

# cache 中不記憶輸入的用戶名稱和密碼
auth-nocache


參考

2016年9月2日 星期五

OpenVPN Server


進入資料夾 cd C:\Program Files\OpenVPN\easy-rsa
用notepad++或UltraEdit 編輯 vars.bat.sample 檔案

KEY_SIZE=1024
set KEY_COUNTRY=TW
set KEY_PROVINCE=TW
set KEY_CITY=Taipei
set KEY_ORG=HGD
set KEY_EMAIL=user@mail.com.tw

cd /d C:\Program Files\OpenVPN\easy-rsa
md keys 產生存放keys憑證的資料夾
執行 init-config.bat
執行 vars.bat
執行 clean-all.bat
執行 build-dh.bat
執行 build-ca.bat
關鍵是 Common Name 要填寫

執行 build-key-server.bat server
執行 set OPENSSL_CONF=C:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
執行 build-key.bat client
關鍵是 Common Name 必須填,且不能與剛剛執行 build-dh 時相同,否則會出現以下:
failed to update database
TXT_DB error number 2
找不到 C:\Program Files\OpenVPN\easy-rsa\keys\*.old
造成三個檔案 client.key、client.csr 和 client.crt 也會生成,
但 client.crt 的大小確是 0,這是無效的還得重新來過才行,
直到看到 Data Base Updated 才能算數。


====Server 端設定====
產生完憑證之後,將 ca.crt, ca.key, dh1024.pem, server.crt, server.key
複製到 C:\Program Files\OpenVPN\config 資料夾下

將 C:\Program Files\OpenVPN\sample-config 資料夾下的server.ovpn
複製到 C:\Program Files\OpenVPN\config 資料夾下,打開編輯 server.ovpn

※local 部分是電腦的對外IP位址
※dh dh1024.pem根據是用1024bits or 2048bits來更改pem檔名稱
※push "route 10.8.0.0 255.255.255.0"
※client-to-client
※duplicate-cn

最後開啟 OpenVPN→Connect



====Client 端設定====
將 ca.crt, client.crt, client.key
複製到另外一台電腦的 C:\Program Files\OpenVPN\config 資料夾下

將 C:\Program Files\OpenVPN\sample-config 底下的client.ovpn
複製到 C:\Program Files\OpenVPN\config 資料夾下,打開編輯 client.ovpn

※remote 192.168.1.1 1194 設定 VPN server 的 IP 與 Port
※cert client.crt, key client.key 名稱記得改成自己修改的名稱

最後開啟OpenVPN→Connect

搜尋此網誌