自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實踐出真知 布署openvpn環(huán)境應注意的事

原創(chuàng)
安全
OpenVPN是一個開源的加密隧道構(gòu)建工具,基于OpenSSL的SSL/TLS協(xié)議,可以在Internet中 實現(xiàn)點對點的SSLVPN安全連接。使用OpenVPN的好處是安全、易用和穩(wěn)定,且認證方式靈活,具備實現(xiàn)SSL VPN解決方案的完整特性。OpenVPN可以應用于Linux、Unix、Mac OS以及Windows等各種操作系統(tǒng)平臺。OpenVPN提供兩種 類型的虛擬網(wǎng)絡接口:TUN和TAP,分別用于建議IP隧道、以太網(wǎng)橋接。在Linux/unix中使用這兩種虛擬設(shè)備,需要對應的內(nèi)核模塊支持。

 【51CTO.com獨家特稿】前言

OpenVPN是一個開源的加密隧道構(gòu)建工具,基于OpenSSL的SSL/TLS協(xié)議,可以在Internet中 實現(xiàn)點對點的SSLVPN安全連接。使用OpenVPN的好處是安全、易用和穩(wěn)定,且認證方式靈活,具備實現(xiàn)SSL VPN解決方案的完整特性。OpenVPN可以應用于Linux、Unix、Mac OS以及Windows等各種操作系統(tǒng)平臺。OpenVPN提供兩種 類型的虛擬網(wǎng)絡接口:TUN和TAP,分別用于建議IP隧道、以太網(wǎng)橋接。在Linux/unix中使用這兩種虛擬設(shè)備,需要對應的內(nèi)核模塊支持。 RHEL5/FreeBSD8系統(tǒng)默認已編譯好TUN模塊,直接使用即可。OpenVPN的官方站點是http://openvpn.net,目前穩(wěn)定版為OpenVPN-2.0.9。

推薦專題:企業(yè)內(nèi)網(wǎng)開發(fā)環(huán)境部署與管理全攻略(FreeBSD+PHP)

我替公司設(shè)計VPN家庭辦公方案時,初期部署的是pptpd方案,穩(wěn)定性和加密性大家都是還滿意的;后期在運作時發(fā)現(xiàn),許多小區(qū)或用電信路由器作NAT撥號的同事發(fā)現(xiàn),根本連接不了公司的公網(wǎng)pptpd服務器,撥號時出現(xiàn)了619報錯,具體原因為:

這種情況大數(shù)多原因為客戶機連接Internet的網(wǎng)關(guān)(如家庭寬帶路由或公司上網(wǎng)網(wǎng)關(guān)路由或防火墻)NAT-T功能關(guān)閉或?qū)PN支持性不好,主要是對GRE及PPTP協(xié)議的NAT-T不支持??纱蜷_網(wǎng)關(guān)路由的NAT-T功能,如果還是出現(xiàn)錯誤,則需要更換網(wǎng)關(guān)設(shè)備,現(xiàn)在市面上大多數(shù)設(shè)備已經(jīng)支持。由于公司在小區(qū)或家里有幾臺電腦的情況都很普遍,另考慮到以前布署的點對點openvpn穿透能力還是很強的,考慮放棄pptpd,改用openvpn。

值得注意的是:為了消除防火墻及路由器的影響,我直接將openvpn服務器放在防火墻前面(如果置于防火墻后,還要考慮DMZ映射及路由方面的因素,失敗率比較高),為了穩(wěn)定性我用的是64bit的Centos5.5,LAN:192.168.4.222,WAN:220.249.x.x。

這里提前說明一下openvpn的網(wǎng)絡部署應該注意的情況,如果你所在小區(qū)的局域網(wǎng)是192.168.1.0,而你的openvpn所在局域網(wǎng)也是192.168.4.0的話,會發(fā)生杯具性的事情,你是撥不上openvpn服務器的;所以你在規(guī)劃你的網(wǎng)絡時,應該考慮將網(wǎng)段不要設(shè)計成192.168.1.0的網(wǎng)段,考慮用192.168.4.0或192.168.10.0這些不常見的網(wǎng)段;你到星巴克咖啡館唱咖啡時你會驚奇的發(fā)現(xiàn),大多數(shù)類似的提供無線服務,基本是將局域網(wǎng)設(shè)計成192.168.1.0的,所以我推薦公司的網(wǎng)絡盡量不要用192.168.1.0的網(wǎng)段,切記。

完整安裝步驟如下(以下過程我重復了上百次,大家可依此實驗,F(xiàn)reebsd及Linux均適用)

一、安裝前的準備工作

OpenVPN是基于openssl的,所以需要安裝openssl,在freebsd8下可采用port安裝 cd /usr/ports/security/openssl && make install clean;

RHEL5&Centos5下用 yum -y install openssl openssl-devel

二、 安裝服務器端及配置 ,源碼包我放在/usr/local/src下。

①首先下載及安裝lzo軟件包,用于壓縮隧道通訊數(shù)據(jù)以加快傳輸速度。

wget  http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz  

  1. tar zxvf lzo-2.03.tar.gz  
  2. cd lzo-2.03  
  3. ./configure --prefix=/usr && make && make install  

②下載openvpn及安裝

wget http://openvpn.net/release/openvpn-2.0.9.tar.gz

  1. tar zxvf openvpn-2.0.9  
  2. ./configure --with-lzo-lib=/usr && make && make install  

一、OpenVPN服務器端的配置

1)建立CA

在OpenVPN源代碼目錄下有一個\easy-rsa\2.0目錄,進入后修改vars文件最后部分的信息,即

  1. vim /root/openvpn-2.0.9/easy-ras/2.0/vars  
  2. export KEY_COUNTRY="CN" 
  3. export KEY_PROVINCE="BJ" 
  4. export KEY_CITY="Beijing" 
  5. export KEY_ORG="PKU" 
  6. export KEY_EMAIL=" xxxxxx@pku.edu.cn"  

保存退出,再運行:

  1. source vars  
  2. NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/openvpn-2.0.9/easy-rsa/2.0/keys  
  3. ./clean-all  
  4. ./build-ca  

然后就是一段提示,要求輸入信息,大部分信息默認就是上述vars文件里的信息,自己只需要填寫“Organizational Unit Name”一項,這個隨便寫一個就是了,也可以不寫,我就沒有寫。

2)為服務器生成證書和密鑰

./build-key-server server

還是與上一步類似,自己只需要填寫“Organizational Unit Name”一項,也可以不寫,即均默認為default值。還會出現(xiàn):“Sign the certificate? [y/n]”和“1 out of 1 certificate requests certified, commit? [y/n]”,都輸入y然后回車,其它可參照如下。

  1. Generating a 1024 bit RSA private key   
  2. ......++++++   
  3. ....................++++++   
  4. writing new private key to 'server.key'   
  5. -----   
  6. You are about to be asked to enter information that will be incorporated   
  7. into your certificate request.   
  8. What you are about to enter is what is called a Distinguished Name or a DN.   
  9. There are quite a few fields but you can leave some blank   
  10. For some fields there will be a default value,   
  11. If you enter '.', the field will be left blank.   
  12. -----   
  13. Country Name (2 letter code) [CN]:   
  14. State or Province Name (full name) [BJ]:   
  15. Locality Name (eg, city) [BJ]:   
  16. Organization Name (eg, company) [buaa]:   
  17. Organizational Unit Name (eg, section) []:gait   
  18. Common Name (eg, your name or your server's hostname) []:server   
  19. Email Address [[email]support@cooldvd.com[/email]]:   
  20.  
  21. Please enter the following 'extra' attributes   
  22. to be sent with your certificate request   
  23. A challenge password []:abcd1234   
  24. An optional company name []:dvdmaster   
  25. Using configuration from /openvpn-2.0.5/easy-rsa/openssl.cnf   
  26. Check that the request matches the signature   
  27. Signature ok   
  28. The Subject's Distinguished Name is as follows   
  29. countryName :PRINTABLE:'CN'   
  30. stateOrProvinceName :PRINTABLE:'GD'   
  31. localityName :PRINTABLE:'SZ'   
  32. organizationName :PRINTABLE:'dvdmaster'   
  33. organizationalUnitName:PRINTABLE:'dvdmaster'   
  34. commonName :PRINTABLE:'server'   
  35. emailAddress :IA5STRING:'[email]support@cooldvd.com[/email]'   
  36. Certificate is to be certified until Mar 19 08:15:31 2016 GMT (3650 days)   
  37. Sign the certificate? [y/n]:y   
  38. 1 out of 1 certificate requests certified, commit? [y/n]y   
  39. Write out database with 1 new entries   
  40.  
  41. Data Base Updated  

 3)在openvpn中,這種配置方法是每一個登陸的VPN客戶端需要有一個證書,每個證書在同一時刻只能供一個客 戶端連接(如果有兩個機器安裝相同證書,同時撥服務器,都能撥上,但是只有第一個撥上的才能連通網(wǎng)絡)。所以需要建立許多份證書。下面建立2份,名稱分別 為client1和client2

  1. ./build-key client1   
  2. Generating a 1024 bit RSA private key   
  3. .....++++++   
  4. ......++++++   
  5. writing new private key to 'client1.key'   
  6. -----   
  7. You are about to be asked to enter information that will be incorporated   
  8. into your certificate request.   
  9. What you are about to enter is what is called a Distinguished Name or a DN.   
  10. There are quite a few fields but you can leave some blank   
  11. For some fields there will be a default value,   
  12. If you enter '.', the field will be left blank.   
  13. -----   
  14. Country Name (2 letter code) [CN]:   
  15. State or Province Name (full name) [BJ]:   
  16. Locality Name (eg, city) [BJ]:   
  17. Organization Name (eg, company) [buaa]:   
  18. Organizational Unit Name (eg, section) []:gait   
  19. Common Name (eg, your name or your server's hostname) []:client1 重要: 每個不同的 client 生成的證書, 名字必須不同.   
  20. Email Address [[email]support@cooldvd.com[/email]]:   
  21.  
  22. Please enter the following 'extra' attributes   
  23. to be sent with your certificate request   
  24. A challenge password []:abcd1234   
  25. An optional company name []:gait   
  26. Using configuration from /openvpn-2.0.5/easy-rsa/openssl.cnf   
  27. Check that the request matches the signature   
  28. Signature ok   
  29. The Subject's Distinguished Name is as follows   
  30. countryName :PRINTABLE:'CN'   
  31. stateOrProvinceName :PRINTABLE:'GD'   
  32. localityName :PRINTABLE:'SZ'   
  33. organizationName :PRINTABLE:'dvdmaster'   
  34. organizationalUnitName:PRINTABLE:'dvdmaster'   
  35. commonName :PRINTABLE:'client1'   
  36. emailAddress :IA5STRING:'[email]support@cooldvd.com[/email]'   
  37. Certificate is to be certified until Mar 19 08:22:00 2016 GMT (3650 days)   
  38. Sign the certificate? [y/n]:y   
  39.  
  40. 1 out of 1 certificate requests certified, commit? [y/n]y   
  41. Write out database with 1 new entries   
  42. Data Base Updated  

 依次類推生成其他客戶端證書/key:

./build-key client2

4)./build-dh,這步不要看掉了~

生成的證書文件均在/usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys下

5)配置服務器VPN文件

a) cp -p /usr/local/src/openvpn-2.0.9/sample-config-files/server.conf /usr/local/etc/server.conf

b) vi /usr/local/etc/server.conf

i. proto udp改成proto tcp

ii. ca那四行改成

  1. ca     /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/ca.crt   
  2. cert   /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/server.crt   
  3. key   /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/server.key   
  4. dh    /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/dh1024.pem  

 iii. server那行改成

server 10.0.0.0 255.255.255.0 前期我用是10.0.0.0,后期實際部署用的是10.10.0.0。

v. 改成verb 5可以多查看一些調(diào)試信息

6) 啟動服務:

a) 關(guān)閉服務器、防火墻上所有對SSH(22)、openvpn(1194)的攔截。

b) echo "1" > /proc/sys/net/ipv4/ip_forward

c)

  1.  /usr/local/sbin/openvpn --config /usr/local/etc/server.conf  
  2. Fri Jan 23 23:55:34 2009 OpenVPN 2.0.9 i686-pc-linux [SSL] [EPOLL] built on Jan 23 2009  
  3. Fri Jan 23 23:55:34 2009 Diffie-Hellman initialized with 1024 bit key  
  4. Fri Jan 23 23:55:34 2009 TLS-Auth MTU parms [ L:1543 D:140 EF:40 EB:0 ET:0 EL:0 ]  
  5. Fri Jan 23 23:55:35 2009 TUN/TAP device tun0 opened  
  6. Fri Jan 23 23:55:35 2009 /sbin/ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2 mtu 1500  
  7. Fri Jan 23 23:55:35 2009 /sbin/route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.2  
  8. Fri Jan 23 23:55:35 2009 Data Channel MTU parms [ L:1543 D:1450 EF:43 EB:4 ET:0 EL:0 ]  
  9. Fri Jan 23 23:55:35 2009 Listening for incoming TCP connection on [undef]:1194  
  10. Fri Jan 23 23:55:35 2009 TCPv4_SERVER link local (bound): [undef]:1194  
  11. Fri Jan 23 23:55:35 2009 TCPv4_SERVER link remote: [undef]  
  12. Fri Jan 23 23:55:35 2009 MULTI: multi_init called, r=256 v=256 
  13. Fri Jan 23 23:55:35 2009 IFCONFIG POOL: base=10.0.0.4 size=62 
  14. Fri Jan 23 23:55:35 2009 IFCONFIG POOL LIST  
  15. Fri Jan 23 23:55:35 2009 MULTI: TCP INIT maxclients=1024 maxevents=1028 
  16. Fri Jan 23 23:55:35 2009 Initialization Sequence Completed 

 #p#

二、安裝WidnowsVPN客戶端

1、安裝客戶端

①從http://openvpn.se/files/上下載與openvpn服務器版本一致的Windows客戶端“OpenVPN GUI For Windows”

例如, 服務器裝的是 OpenVPN 2.09, 那么下載的 OpenVPN GUI fow windows應該是: openvpn-2.0.9-gui-1.0.3-install.exe

②執(zhí)行openvpn-2.0.9-gui-1.0.3-install.exe。一切采用默認設(shè)置。

③將ca.crt、client1.crt、client1.key復制到C:\Program Files\OpenVPN\config。(不同用戶使用不同的證書,每個證書包括.crt和.key兩個文件,如client2.crt和client2.key)

④在/root/openvpn-2.0.9/sample-config-files/client.conf 的基礎(chǔ)上建立客戶端配置文件,改名為C:\Program Files\OpenVPN\config\client.ovpn,即先在服務器上建立配置文件,然后再上傳改名到客戶機上。

a) proto udp改成proto tcp

b) remote那行改成

192.168.1.103   1194

c) ca那3行改為 

  1. ca ca.crt  
  2. cert client1.crt  
  3. key client1.key  

d) 注釋掉comp-lzo

⑤連接:在右下角的openvpn圖標上右擊,選擇“Connect”。正常情況下應該能夠連接成功,分配正常的IP。(點擊看大圖)

 

 

2、這些都很順利,但撥號成功后,如何才能使撥號用戶訪問局域網(wǎng)內(nèi)192.168.4.0網(wǎng)段的機器呢,具體做法來:

①在openvpn的配置文件里增加push "route 192.168.4.0 255.255.255.0",目的是為客戶端加一條路由,這樣客戶端才有可能訪問到辦公網(wǎng)絡中出VPN Server之外的其它主機(有很多VPN客戶端直接添加默認路由,這樣客戶端的所有連接請求都被路由到 VPN 通道內(nèi),結(jié)果是客戶端此時不能訪問VPN,而此項添加指定地址的路由不會導致這一問題)

②在openvpn上開啟ip轉(zhuǎn)發(fā)echo “1”>  /proc/sys/net/ipv4/ip_forward

③在公司的網(wǎng)關(guān)或路由器上增加一條路由,添加到 10.10.0.0/24 的路由項目,網(wǎng)關(guān)為服務器的內(nèi)部 IP 地址,目的是為了讓公司局域網(wǎng)里的主機知道去往VPN Client的包如何路由,記住 ,路由是雙向和回環(huán)的,既要有來的路由,也應該有回的路由。由于我這種環(huán)境下既沒有路由器,也沒有防火墻,所以我直接在公司重要的服務器及我要遠程的機器(xp)上增加一條路由。

route add 10.10.0.0 mask 255.255.255.0 192.168.4.222

三、需要注意的問題

每個人的網(wǎng)絡拓補不一樣,如何使openvpn的客戶端也能訪問除openvpn外的公司局域網(wǎng)內(nèi)的機器呢?這個問題是玩openvpn的朋友們最為關(guān)注的,其它情況可以參考以下幾點:

1 、可以把openvpn服務器也設(shè)成路由器,并使openvpn服務器作為這些需要被訪問的內(nèi)網(wǎng)機器的路由器,這樣路由器和openvpn在同一臺機器上就 ok了。

2 、如果內(nèi)網(wǎng)中有多臺機器可能需要被訪問,針對我這種情況,可以在路由器上設(shè)置靜態(tài)路由表,設(shè)置10.10.0.0網(wǎng)段的信息路由到openvpn服務器, 具體設(shè)置參看自己的路由器的設(shè)置頁面吧。如果是計算機作路由器,那就使用route add 10.10.0.0 mask 255.255.255.0 192.168.4.222(openvpn服務器的ip),這樣只需要改一個地方就ok了,就不需要修改每臺內(nèi)網(wǎng)的機器了。

3 、如果改不了路由器,或者內(nèi)網(wǎng)需要修改的機器不多的話,也可以直接在內(nèi)網(wǎng)要被訪問的機器上,執(zhí)行route add 10.10.0.0 mask 255.255.255.0 192.168.4.222(openvpn服務器的ip)命令(我的情況是操作系統(tǒng)是windows,命令就是那個了),來直接給內(nèi)網(wǎng)的機器添加路由,這樣 當碰到10.10.0.0網(wǎng)段的信息,它就知道直接路由到openvpn服務器,而不會走路由器這條路了。

還有一個細節(jié)問題應該注意:一臺機器只能用一個證書撥號,如果是二臺機器都要用一個證書來撥號的話,第二臺機器會發(fā)生每5秒就掉線的杯具,這個也是實際使用中發(fā)現(xiàn)的;雖然可以在openvpn通過配置來更改,但我建議還是一臺機器使用一個證書的好。

另外一個小問題就是:在進行證書制作工作時,仍舊需要進行初始化,

但只需要進入openvpn\easy-rsa目錄,運行vars就可以了,不需要./clean-all步驟,它會清掉一切證書文件的(汗) 。

以上就是我玩openvpn以來的一些經(jīng)驗總結(jié)和心得,希望能給大家?guī)硪恍椭?;每個人的情況不一樣,別人的未必適用于你,所以多動手,多嘗試,畢竟實踐出真知嘛。通過部署整個VPN辦公環(huán)境,發(fā)現(xiàn)openVPN的穩(wěn)定和穿透能力相當?shù)膹姾钒?,套用一句流行的話:openVPN相當V5,呵呵。

附錄:

在windows機器上永久增加路由的方法:

ROUTE命令可以在XP、2K/2003、WIN7等操作系統(tǒng)下手工增加靜態(tài)路由,但是重啟之后路由便丟失了,還要重新增加,那么怎樣能讓路由一直保待,重啟后仍然存在呢?其實很簡單,在增加路由的命令后加上-P開關(guān)就可以了。例如

route -p add 10.10.0.0 mask 255.255.0.0 192.168.4.222

-p參數(shù)詳解

與Add命令共同使用時,指定路由被添加到注冊表并在啟動TCP/IP協(xié)議的時候初始化IP路由表。默認情況下,啟動TCP/IP協(xié)議時不會保存添加的路 由,與Print命令一起使用時,則顯示永久路由列表。所有其他的命令都忽略此參數(shù)。永久路由存儲在注冊表中的位置是,注意最后一副圖畫紅線的部分,它也可以驗證我們新增的命令會永久的增加靜態(tài)路由。

HKEY_LOCAL_MACHSYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

責任編輯:林琳 來源: 51CTO.com
相關(guān)推薦

2021-10-26 11:42:51

系統(tǒng)

2012-08-13 16:48:31

架構(gòu)師

2013-12-23 10:14:36

虛擬網(wǎng)絡

2013-12-24 07:17:25

虛擬網(wǎng)絡網(wǎng)絡虛擬化

2013-06-28 08:49:46

炎黃盈動BPM

2019-10-18 11:11:52

DynamoDBNoSQL數(shù)據(jù)庫

2015-12-25 10:42:57

愛數(shù)云存儲

2010-11-17 11:29:39

2010-04-19 14:05:28

無線網(wǎng)絡故障

2014-07-04 16:06:45

用友優(yōu)普

2010-12-22 09:12:27

2012-08-14 16:57:25

開發(fā)技術(shù)周刊

2015-07-28 11:02:15

androidapp開發(fā)

2019-08-20 15:16:26

Reacthooks前端

2022-12-26 15:57:56

2011-08-30 10:03:59

軟件工程

2018-12-24 14:58:02

人工智能AI視覺搜索

2020-03-27 22:18:55

JavaScript編程語言代碼

2017-12-07 22:08:16

系統(tǒng)架構(gòu)設(shè)計數(shù)據(jù)服務交易系統(tǒng)

2015-06-18 17:18:56

綜合布線環(huán)境保護
點贊
收藏

51CTO技術(shù)棧公眾號