1. 程式人生 > >windows下利用OpenVPN搭建VPN伺服器

windows下利用OpenVPN搭建VPN伺服器

一、OpenVPN是一款功能強大,可跨平臺(支援Win 2000/XP/2003, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, 和 OpenBSD)使用的SSL VPN伺服器軟體(具體說明見官方主頁官方主頁http://openvpn.net)。
       下載地址:http://openvpn.net/index.php/download.html






二、安裝與配置




第一步:安裝openvpn這一部分是服務端跟客戶端都要做的工作,操作完全相同雙擊 openvpn-2.2.2-install.exe進行安裝,點選NEXT,I Agree,NEXT之後開始選擇安裝路徑,建議按預設路徑C:\Program Files\OpenVPN安裝(以免後面生成證書麻煩) 。點選 Install 開始安裝,安裝過程中,彈出硬體安裝視窗,點選仍然繼續,安裝虛擬網絡卡。點選 next,Finish 完成安裝。




第二步: VPN伺服器配置:
說明:架設OPENVPN伺服器,伺服器方面做的工作比較多,客戶端相對來說就比較簡單。
伺服器採用RSA證書和金鑰驗證方式對客戶端進行驗證,預設情況下證書和使用者是一對一的,多個使用者使用同一證書會被踢出。所以首先要做的工作就是證書的製作。
在進行操作之前,首先進行初始化工作:


(1)修改C:\Program Files\OPENVPN\easy-rsa\vars.bat.sample的以下部分
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=FortFunston
set
[email protected]

請根據自身情況修改,也可以不修改!下面是解釋
set HOME=C:\Program Files\OPENVPN\easy-rsa
set KEY_COUNTRY=CN                               #(國家)
set KEY_PROVINCE=GuangDong              #(省份)
set KEY_CITY=ShenZhen                             #(城市)
set KEY_ORG=oovc.com                              #(組織)
set
[email protected]
           #(郵件地址)


檔案中以#開始的是註釋,請不要寫到檔案中。


開啟命令提示符:
開始-->執行...-->鍵入cmd,回車,進入命令提示符
或者 開始-->程式-->附件-->命令提示符


進入C:\Program Files\openvpn\easy-rsa目錄下:
命令如下:
(1)cd C:\Program Files\openvpn\easy-rsa
init-config
vars
clean-all


上面是初始化工作,以後,在進行證書製作工作時,仍舊需要進行初始化,但只需要進入openvpn\easy-rsa目錄,執行vars就可以了,不需要上面那些步驟了。




(2)下面開始證書的製作:
生成根證書:(請輸入紅字部分)
build-ca
Common Name (eg, your name or your server's hostname) [changeme]:OpenVPN-CA
Name [changeme]:


build-dh


生成服務端金鑰:
build-key-server server 
下面貼出需要互動的部分,其他地方預設。
Common Name (eg, your name or your server's hostname) [changeme]:server
Name [changeme]:




The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :PRINTABLE:'CA'
localityName          :PRINTABLE:'SanFrancisco'
organizationName      :PRINTABLE:'OpenVPN'
organizationalUnitName:PRINTABLE:'changeme'
commonName            :PRINTABLE:'server'
name                  :PRINTABLE:'changeme'
emailAddress          :IA5STRING:'
[email protected]
'
Certificate is to be certified until Aug 19 11:12:06 2022 GMT (3650 days)
Sign the certificate? [y/n]:y




1 out of 1 certificate requests certified, commit? [y/n]y


生成客戶端金鑰
build-key client


Common Name (eg, your name or your server's hostname) [changeme]:client
Name [changeme]:




The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :PRINTABLE:'CA'
localityName          :PRINTABLE:'SanFrancisco'
organizationName      :PRINTABLE:'OpenVPN'
organizationalUnitName:PRINTABLE:'changeme'
commonName            :PRINTABLE:'11111111'
name                  :PRINTABLE:'changeme'
emailAddress          :IA5STRING:'[email protected]'
Certificate is to be certified until Aug 19 11:24:35 2022 GMT (3650 days)
Sign the certificate? [y/n]:y




1 out of 1 certificate requests certified, commit? [y/n]y




build-key client2 //可以繼續配置第二個VPN客戶端金鑰
//生成的金鑰存放於C:\Program Files\openvpn\easy\rsa\keys目錄下




接下來開始配置伺服器和客戶端:


(3)將生成的ca.crt,dh1024.pem,server.crt,server.key複製到C:\Program Files\OpenVPN\config目錄下,這四個檔案是VPN服務端執行所需要的檔案。


(4)ca.crt,client.crt,client.key這三個是VPN客戶端所需要的檔案,複製到客戶端機器的C:\Program Files\OpenVPN\config目錄下


(5)在C:\Program Files\OpenVPN\config目錄下建立服務端配置檔案server.ovpn:




伺服器端配置檔案示例:(server.ovpn)


local 192.168.3.1     //openvpn服務端網絡卡的IP,也可以不寫
port 443                     //服務端埠號,根據需要自行修改,如果是用http代理連線請不要修改
proto tcp                    //通過tcp協議連線
dev tap                       //路由模式windows下必須設為tap
ca ca.crt                     //ca證書存放位置我放在了當前目錄下面也可以用(ca "C:\\Program Files\\OPENVPN\\config\\ca.crt")
cert server.crt            //伺服器證書存放位置,請根據實際情況自行修改
key server.key           //伺服器金鑰存放位置,請根據實際情況自行修改
dh dh1024.pem       //dh1024.pem存放位置,請根據實際情況自行修改
server 172.16.0.0 255.255.255.0      //虛擬區域網網段設定,請根據需要自行修改,不支援和拔號網絡卡位於同一網段
ifconfig-pool-persist ipp.txt        //在openvpn重啟時,再次連線的客戶端將依然被分配和以前一樣的IP地址
push "route 0.0.0.0 0.0.0.0"      //表示client通過VPN SERVER上網
push "redirect-gateway def1 bypass-dhcp"    //使客戶端所有網路通訊通過vpn
push "dhcp-option DNS 208.67.222.222"      //DNS配置,根據實際情況配置
push "dhcp-option DNS 208.67.220.220"      //DNS配置,根據實際情況配置
client-to-client             //使客戶端能相互訪問
duplicate-cn                //這條常用於測試用途,註釋該條可實現限制一個證書在同一時刻只能有一個客戶端接入
keepalive 10 120


;cipher BF-CBC        # Blowfish (default)      //選擇一種加密演算法與客戶端保持一致
;cipher AES-128-CBC  # AES
;cipher DES-EDE3-CBC  # Triple-DES




comp-lzo                           //允許資料壓縮與客戶端保持一致
;max-clients 100              //最大客戶端併發連線數量




;user nobody                    //定義執行openvpn的使用者用於使用者認證可以不採用使用者認證
;group nobody




persist-key   //通過keepalive檢測超時後,重新啟動VPN,不重新讀取keys,保留第一次使用的keys
persist-tap   //通過keepalive檢測超時後,重新啟動VPN,一直保持tun或者tap裝置是linkup的,否則網路連線會先linkdown然後linkup




status openvpn-status.log      //定期把openvpn的一些狀態資訊寫到檔案中,以便自己寫程式計費或者進行其他操作
verb 3               //設定日誌記錄冗長級別
mute 20           //重複日誌記錄限額


(6)客戶端設定:在客戶端安裝完成之後,需要將 ca.crt client.crt client.key 這三個檔案拷貝到C:\Program Files\openvpn\config目錄下,這三個檔案由服務端生成,所以,連線誰的伺服器,就需要跟誰索取這三個檔案。


然後,編輯一個 client.ovpn的配置檔案存放到C:\Program Files\openvpn\config目錄下,客戶端就可以進行連線了。
客戶端檔案示例:(client.ovpn)


client             //定義是一個客戶端
dev tap          //路由模式windows下必須設為tap,與服務端保持一致
proto tcp       //通過tcp協議連線,與服務端保持一致
remote 192.168.223.1 443     //指定服務端IP地址和埠,可以用多行指定多臺伺服器,實現負載均衡(從上往下嘗試)
;remote-random               //若上面配置了多臺伺服器,讓客戶端隨機連線
resolv-retry infinite           //解析伺服器域名
nobind          //客戶端不需要繫結埠




;user nobody      //安全設定。注意:Windows不能設定
;group nobody




persist-key
persist-tun
;http-proxy-retry          //代理連線錯誤時重試  
;http-proxy [proxy server] [proxy port]     //若客戶端通過HTTP Proxy設定,Proxy不能使用UDP為VPN的通訊協議
mute-replay-warnings       //無線網路經常會產生很多重複的資料包。將此標誌設定為重複的資料包關閉警告。
ca “C:\\Program Files\\OpenVPN\\config\\ca.crt”              //證書位置根據實際情況新增
cert “C:\\Program Files\\OpenVPN\\config\\client.crt”      //證書位置根據實際情況新增
key “C:\\Program Files\\OpenVPN\\config\\client.key”     //證書位置更加實際情況新增
comp-lzo          //使用lzo壓縮,與服務端一致
verb 3
;mute 20




上面的配置拔號成功後,VPN SERVER的IP:172.16.0.1,VPN client的IP:172.16.0.2。ping 172.16.0.1  //相互之間應能ping通






三、openvpn客戶端通過服務端訪問網路
(1)設定VPN SERVER上的”internet連線共享“來實現clinet通過VPN SERVER上網:(需要兩塊網絡卡)




(2)單網絡卡分類如下:


1. 開啟 Routing and remote access服務 
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter= 1   重啟
2 netsh
   routing ip nat
   install
   add interface name="本地連線 2" mode=full //伺服器上用於上外網的連線
   add interface name="本地連線 3" mode=private //安裝OpenVPN時生成的虛擬連線
   add interface name="內部" mode=private


輸入show interface命令後顯示:
NAT 內部 配置
---------------------------
模式              : 專用介面




NAT 本地連線 2 配置
---------------------------
模式              : 地址和埠轉換




NAT 本地連線 3 配置
---------------------------
模式              : 專用介面




即表示NAT配置成功,重啟。


以上步驟實現後,則VPN+NAT配置成功。可撥入主機,並可通過主機代理出去訪問主機所在的資源。如同處在主機帶的區域網中。






WindowsXP Pro下單網絡卡實現VPN+NAT代理伺服器


Step 1
   按Win+R 輸入並執行services.msc,在服務裡面尋找Routing and Remote Access,右鍵單擊進入屬性,將啟動型別更改為自動,並點選啟動按鈕。
Step 2
   開啟網路上的芳鄰,在左側網路任務裡面點選"檢視網路連線",可以看到"傳入"字樣,這表示Step1操作成功.單擊右鍵開啟"傳入的連線"的屬性,在"常規"標籤中虛擬專用網中鉤選"允許他人通過internet...",在"使用者"標籤中允許的連線的使用者鉤選相應使用者,確定退出。至此,VPN配置完畢。
Step 3
   按Win+R 輸入並執行netsh,繼續輸入routing並回車,繼續輸入ip並回車,繼續輸入nat並回車,繼續輸入install並回車。然後輸入add interface name="內部" mode=private並回車,輸入add interface "本地連線" full並回車。輸入show interface並回車,如果出現




NAT 內部 配置
---------------------------
模式              : 專用介面




NAT 本地連線 配置
---------------------------
模式              : 地址和埠轉換


即表示NAT配置成功。






windows Vista單網絡卡VPN server+NAT配置成功


Windows XP和2003都能做NAT,區別在於2003有GUI配置介面,而XP只能通過字元介面來配置,也就是用netsh routing。但是Vista和win7預設在netsh命令控制檯中沒有routing介面,需從服務版作業系統中複製ipmontr.dll和ippromon.dll這2個檔案到system32資料夾中,Vista與windows server 2008 相對應(windows server 2003好像也能用) ,win7與windows server 2008 R2相對應(2008R2沒有32位版,可以用GNS3模擬一個路由器然後一個口連本地物理網絡卡一個口連openv虛擬出來的網絡卡,然後再模擬的路由器上做NAT和路由配置就可以繞過netsh routing的配置了,實際測試好像經過模擬裝置速度變慢了),複製相應的伺服器作業系統檔案ipmontr.dll和ippromon.dll即可(伺服器只有在腳色配置中配置啟動了路由和路由遠端控制腳色才會有這兩個檔案)我從2003的安裝映象裡面找到兩個檔案。add helper ippromon.dll 的時候提示錯誤,先 delete helper ipmontr.dll, delete helper ippromon.dll,然後再add helper就成功了。




加完這兩個檔案,就能看到netsh裡有routing了,然後就能照著XP下面的配置方法來配置了。

相關推薦

windows利用OpenVPN搭建VPN伺服器

一、OpenVPN是一款功能強大,可跨平臺(支援Win 2000/XP/2003, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, 和 OpenBSD)使用的SSL VPN伺服器軟體(具體說明見官方主頁官方主頁http://openvp

CentOS利用openvpn 搭建ssl-vpn

一、OpenVPN是靠虛擬的TUN/TAP裝置實現SSL VPN的,因此核心必須支援TUN/TAP裝置模組,這個配置選項在2.6.x核心中,位於Device Drivers ->Network device support 選單中,全稱是Universal TUN/TAP device dr

Windows利用TortoiseSVN搭建本地SVN伺服器

寫在前面: 安裝TortoiseSVN時,圖中這步要選擇,才能同時安裝後面需要的svnserve.exe 環境說明: Win 7 TortoiseSVN 1.7 搭建步驟: 0.

Linux環境使用pptpd搭建vpn伺服器

要搭建VPN使用pptp是一種好辦法,而在Linux下搭建pptp伺服器並不難,今天就來簡單說一下,這裡使用的Linux伺服器為Ubuntu。 1 下載pptpd #sudo apt-get install pptpd 2 設定pptpd伺

win7利用IIS搭建FTP伺服器

       1、再回到“Internet資訊服務(IIS)管理器”視窗,雙擊剛才選中的“FTP授權規則”,在FTP站點中對View和Admin授權。如下所示:       2、點選右側的“新增允許規則”,在彈出的視窗中,勾選“指定的使用者”,輸入View,在下方的“許可權”中,勾選“讀取”。如下所示:   

windows利用IIS搭建web和ftp服務以及防火牆配置

第一步:找到程式與功能裡面的啟動或關閉windows功能。選擇如下圖:第二步:點選計算機管理,選擇IIS。將底下預設的Default web site網站關閉。然後右擊網站,新建一個網站,填寫如下資訊。網站名稱隨便自己起,網站根目錄自己選擇一個資料夾。協議如何你的網站網站得到

Windows 利用SecureCRT連線Linux伺服器

    SecureCRT是一款支援SSH(SSH1和SSH2)的終端模擬程式,簡單地說是Windows下登入UNIX或Linux伺服器主機的軟體。這樣操作的時候不必進入到linux桌面,可以更方便的在命令列下進行操作。 此次操作的環境為: SecureCRT 8.3 Li

《初入linux》--第二十一部分-利用squid搭建vpn伺服器(免流伺服器初級入門)

一.squid搭建簡單的vpn 正向代理       何為正向代理:簡單的解釋,我從主機A上想訪問伺服器C上的資源,但是因為種種原因(例如acl限制,防火牆,萬惡的GFW 5555555~~)A被限制了無法訪問C,此時,我們知道伺服器B是可以訪問C的,於是,我們先用A連線B

windows利用Node.js開發後臺伺服器(三)

三.為前端做資料介面 1.在專案資料夾下新建app.js檔案作為專案主入口檔案2.專案需要用到koa\koa-bodbparser\kou-router\kou-cors模組,先requrie進去 const Koa = require('koa'); const body

LinuxPPTPD搭建VPN伺服器連線後無法上外網及619錯誤的解決辦法

最近在搭建VPN伺服器時卻遇到了困難 先是出現619錯誤,接著是連線後無法上外網 下面一一給出解決辦法 解決619錯誤 619錯誤的原因有很多,下面給出原因列表,供大家排查 1、logwtmp衝突 解決:編輯 /etc/pptpd.conf,找到logwtmp用#註釋掉

Windows使用MaraDNS搭建簡單的DNS伺服器

在專案中需要DNS服務,查詢並嘗試了幾種主流的DNS伺服器軟體,比如NtBind等,配置都過於複雜。而MaraDNS可以說是能傻瓜式地快速滿足我的簡單需求。步驟如下:1.下載軟體:http://maradns.samiam.org/download.html2.7zip解壓3

windows通過linuxopenvpn登入遠端伺服器內網

需求:在某些網路要求比較嚴格的環境中,我們在異地無法遠端訪問公司內網,給我們的工作帶來了極大的不便;但是通過openvpn我們可以輕鬆實現,下面就來介紹下。 注:本實驗是在防火牆關閉的情況下進行的,即使開啟防火牆也未對nat表做限制。 1.網路環境: 公司openvpn伺服

Windows使用Nexus搭建Maven私服(安裝)

支持 blog 試用 prop 解壓 結束 factor repos name 一、下載Nexus 下載OSS最新版:https://www.sonatype.com/download-oss-sonatype 老版本:https://support.sonatype.

windows用腳手架搭建vue環境

原因 重新安裝 測試環境 安裝 如圖所示 安裝包 依次 等待 環境 做了幾個月vue項目,最近兩個項目使用腳手架搭建的,確實用腳手架搭建方便了許多,想想以前自己手配的時候,確實是。。。 1.在這之前我是默認你已經使用過vue的,也默認你已經安裝了node.js 2.接著安裝

windowsreactnative環境搭建

windows下reactnative環安裝python2 安裝nodejs 安裝android-studio 安裝jdk8 設置ANDROID_HOME環境變量 把Android SDK中的tools和platform-tools目錄添加到環境變量中 設置JAVA_HOME環境變量 打開andorid-st

Spark學習筆記--Spark在Windows的環境搭建(轉)

最新版本 https ons console 步驟 新版本 用戶 ref sudo 一、JDK的安裝 1、1 下載JDK   首先需要安裝JDK,並且將環境變量配置好,如果已經安裝了的老司機可以忽略。JDK(全稱是JavaTM Platform Standard Editi

windowsgit server搭建

安裝 修改 epo .net 下載 分享圖片 http win 編輯 使用gitblit1.8搭建 首先要安裝JDK 然後下載gitblit,這裏給一個CSDN下載 https://download.csdn.net/download/nietzsche0/10482683

windowstestlink環境搭建

detail rec req rep phpAdmin test tab read 支持 安裝步驟 安裝MySQL 安裝PHP 安裝Apache 安裝TestLink 安裝Mysql 見wondows下安裝mysql 安裝PHP 下載PHP後解壓,將PHP的文件的地址添

win7利用IIS搭建FTP服務器

div 第一步 brief bsp 就是 用戶和組 bce ssl ice 配置一個完整的FTP服務器比較復雜,可以使用Windows系統自帶的FTP服務(默認情況下Windows自帶的Web和FTP服務是關閉的)。前段時間,為了與他人共享文件,為創建一個FTP服務

Spark在Windows的環境搭建

[] 特定 features 千萬 安裝目錄 standard har java test load 由於Spark是用Scala來寫的,所以Spark對Scala肯定是原生態支持的,因此這裏以Scala為主來介紹Spark環境的搭建,主要包括四個步驟,分別是:JDK的安裝