关键词不能为空

当前您在: 主页 > 英语 >

OpenVPN_服务搭建解读

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-02 21:38
tags:

-

2021年3月2日发(作者:什么意思英语)


OpenVPN




--------------


时间:


2014-7-7


-------------------


深圳运维组





如果你想要更多的不仅仅是 预共享密钥



OpenVPN


可以很容 易


地设置和使用公共密钥基础设施(


PKI

)来使用


SSL/TLS


证书进行身


份验证和


VPN


服务器和客户端之间的密钥交换。

< p>
OpenVPN


可以在路


由中使用或桥连的


VPN


模式,并且可以配置为使用


UDP



TCP


,端


口号 可以配置为其他的,但官方默认端口是


1194


,而且它仅使用 了


单端口的所有通信。



OpenVP N


的客户端可用于几乎所有的系统,包括所有的


Linux


发行版,


Mac OS X



Windows



OpenWRT

< br>的基于无线局域网的路由


器。





实验网络拓扑图:








目录



OpenVPN


.


........ .................................................. .................................................. .............


1



1.



2.



服务器安装


...................... .................................................. .............................


3



公钥基础设施设置


................... .................................................. ......................


3



2.1



2.2



2.3



3.



4.



5.



证书颁发机构设置


................... .................................................. ...............


3



服务器证书


...................... .................................................. ......................


4



客户端证书


...................... .................................................. ......................


5



服务器配置


...................... .................................................. .............................


5



客户端配置



.


................................................. .................................................. .....


7



故障排查



.


.................................................. .................................................. ....


9



5.1



5.2



错误一:



.


.................................................. ...............................................


9



错误二:



.


........................... .................................................. ..................


10



6.



客户端软件的实现


................... .................................................. ....................


10



6.1



6.2



6.3



Linux

< br>的网络管理器图形用户界面的


OpenVPN



........................................... .


10



Linux


的文本界面的


OpenVPN


.......... .................................................. .......


11



OpenVP N


的带有


GUI


Win 7



Win XP


.. ..................................................


12















1.



服务器安装



要安装

< br>OpenVPN




,请在终端输入:



$$sudo



s


##


输 入密码切换到


root


,后面的操作均是在

root


用户下进行。



#apt-get install openvpn easy-rsa


2.



公钥基础设施设置



构建的

< p>
OpenVPN


配置的第一步是建立一个公钥基础设施(

< br>PKI


),公钥基础设施


包括:



1.



一个单独的证书(也称为公钥)和私钥的服务器和每个客户端,



2.



这是用来签署每个服务器和客户 端证书的大师证书颁发机构(


CA


)的证


书和密钥。



OpenVPN


的支持 基于证书的双向认证,这意味着客户端必须验证服务器证书在


互信建立之前,服务器也必 须验证客户端证书。



服务器和客户端将验证对方先核实该提供 的证书是由主证书颁发机构(


CA


)签


署,然后通过在现在验证的证书的头,如证书的通用名称或证书类型测试信息


(客户端或 服务器)。



2.1



证书颁发机构设置



要建立你自己的证 书颁发机构(


CA


)和产生的证书和密钥的

OpenVPN


服务器多


个客户端的


easy-rsa


目录先复制到


/etc/openvpn< /p>


。这将确保任何更改脚本包时


更新也不会丢失。从终端的变化,以


root


用户:



mkdir /etc/openvpn/easy-rsa/


cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/



接下来,编辑的


/etc/openvpn/easy- rsa/vars


调整到适合您的环境:




root@ubuntu:/etc/openvpn/easy-rsa# cat vars |grep -v


##


主要修改红色部分内容,下 面是已经改好的例子



export EASY_RSA=


export OPENSSL=


export PKCS11TOOL=


export GREP=


export KEY_CONFIG=`$$EASY_RSA/whichopensslcnf $$EASY_RSA`


export KEY_DIR=


echo NOTE: If you run ./clean-all, I will be doing a rm -rf on


$$KEY_DIR


export PKCS11_MODULE_PATH=


export PKCS11_PIN=


export KEY_SIZE=2048


export CA_EXPIRE=3650


export KEY_EXPIRE=3650



export KEY_ COUNTRY=


CN



国家

< p>


export KEY_PROVINCE=


S Z



省份



export KEY_CITY=


ShenZhen



城市



export KEY_ORG=


acttao



组织单 位



export KEY_EMAIL=

jiaxxx@



邮箱



export KEY_OU=


acttao

< br>


组织单元



export KE Y_NAME=


acttao



证书名< /p>



export KEY_CN=


act tao



证书别名




输入以下命令以生成主证书颁发机构(


CA


)的证书和密钥:



cd /etc/openvpn/easy-rsa/


chown -R root.$$user . ##$$user


指的是当前管理系统的用户(非


root




chmod g+w .


source ./vars


./clean-all


./build-ca


(


可能会报错,详见下图


)



root@ubuntu:/etc/openvpn/easy-rsa# ./build-ca


error on line 198 of /etc/openvpn/easy-rsa/


140:error:0E065068:configuration file


routines:STR_COPY:variable has no value:conf_def.c:618:line 198



或者



root@ubuntu:/etc/openvpn/easy-rsa# ./build-ca


error on line 220 of /etc/openvpn/easy-rsa/


148:error:0E065068:configuration file


routines:STR_COPY:variable has no value:conf_def.c:618:line 220



经排错得知原因是


:/etc/openvpn/easy- rsa/vars


配置文件中并没有涉及到该项,所以


会报无 效值,我们需要在


/etc/openvpn/easy-rsa/


把这两行给注


释掉。



#subjectAltName=$$ENV::KEY_ALTNAMES ##198



#


#subjectAltName=$$ENV::KEY_ALTNAMES ##220



#



再重新执行:


./build-ca


就不报错了


------


一直回车




2.2



服务器证书



接下来,我们会为服务器的证书和私钥:



./build-key-server acttao


一直回车,到


sign



Y 1out1



Y


正如 在上一步中,大部分参数都可以默认。其他两个查询需要积极的回应,


“注册证书?[Y / N]”和“1



1


证书请求认证, 提交?[Y / N]”





需要为的


OpenVPN


服务器生成的


Diffie Hellman


的参数:



./build-dh



所有证书 和密钥的子目录键已生成。通常的做法是将它们复制


/etc/openvpn/




cd keys/


cp /etc/openvpn/


2.3



客户端证书



VPN


客户端还需要一个证书来验证自己到服务器。通常你创建一个不同的证书


为每个客户端。创建证书,请输入以下的终端,而作为


root


用户:



cd /etc/openvpn/easy-rsa/


source ./vars


./build-key client1



##


大部分都是回车


,


最后两 步是



y






使用安全的方法,把下列文件拷贝到客户端:



1.



/etc/openvpn/


2.



/etc/openvpn/easy-rsa/keys/


3.



/etc/openvpn/easy-rsa/keys/


由于客户端证书和密钥只需要在客户机上,


你应该从服务器上删除它们

< br>。




3.



服务器配置



随着你的


OpenVPN


安装你得到了这些示例配置文件(还有更多,如果你打


勾):



root@server:/# ls -l /usr/share/doc/openvpn/examples/sample- config-


files/


total 68


-rw-r--r-- 1 root root 3427 2011-07-04 15:09


-rw-r--r-- 1 root root 4141 2011-07-04 15:09



开始复制和拆包




/etc/openvpn/

< p>
中。



sudo cp /usr/share/doc/openvpn/examples/sample- config-


files/ /etc/openvpn/


sudo gzip -d /etc/openvpn/



编辑


/etc/openvpn/


中确 保以下行指向您在上一节中创建的证书和


密钥。



root@ubuntu:/etc/openvpn# cat |grep -v



local 192.168.100.252 ##OpenVPN Server


服务器的


IP


port 1194 ##


通信端口



proto udp ##


也可以使用


tcp


端口,但传输速度可能没有


udp

快,建议保持沉默



dev tun ##tun


模式一般用


DHCP


分发


IP


,另一种


tap


模式,一般是从


IP


段中指派


IP


ca /etc/openvpn/ ##


强烈建议写绝对路径



cert /etc/openvpn/ ##


强烈建议写绝对路径



key /etc/openvpn/ # This file should be kept secret


dh /etc/openvpn/ ##


强烈建议写绝对路径



server 10.8.0.0 255.255.255.0 ##


配置


VPN


使用的网段,


O penVPN


会自动提供基


于该网段的


DHCP


服务,但不能和任何一方的局域网


IP


段重复,保证唯一性



ifconfig-pool- persist ##


存储分发


IP


记录,确保下次登录还获得一样的


IP


push


##


若客户端希望所有的流量都通过


VPN


传输,则可以使用该语句,其会自动改变客户端的网关为


VPN


服务器(推荐关闭)



push


push



duplicate- cn




#


此处设置一个证书可以多个用户同时登陆




client-to-client ##


默认


OpenVPN


客户端之间是不能互通的,注释掉就可以了。



keepalive 10 120


comp- lzo ##


使用


lzo


压缩的通 讯,服务端与客户端都必须配置



max-clients 100 ##


最大连接数



user nobody


group nogroup


persist-key


persist-tun


status ##


日志文件



verb 3e



这是起码的,你必 须通过配置来获得一个工作


OpenVPN


服务器。您也可以使 用


该样本



中的文件中的所有默认设置。 现在启动服务器。你会发现


日志和错误信息在您的系统日志(


/ var/log/syslog


)里面可以查看到。



root@server:/etc/openvpn# service openvpn start


* Starting virtual private network daemon(s)...


* Autostarting VPN 'server' [ OK ]



现在,可以查看到


OpenVP N


创建了一个


tun0


的接口:



root@server:/etc/openvpn# ifconfig tun0


tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00 -00-


00-00-00-00-00


inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255


UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1


[...]


配置虚拟网卡


tun0


可以通过


eth0


网 卡进行


NAT


转发数据包



vim /etc/default/ufw


DEFAUL T_FORWARD_POLICY=


修改成



DEFAULT_FORWARD_POLICY=


ACCEPT




vim /etc/


#_forward=1


修改成



_forward=1



sysctl -p


执行一下命令使修改生效




添加几条策略



ufw allow 22/tcp


iptables -A INPUT -p udp



-dport 1194 -j ACCEPT




ufw allow 1194/udp




iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j MASQUERADE


iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE



防止系统重启后


iptables< /p>


不生效



iptables-save -c >/etc/ufw/


echo




4.



客户端配置



有带和不带图形用户界面 的各种不同的


OpenVPN


客户端实现。你可以阅读更多


有关在后面的部分客户。现在我们使用


OpenVPN


客户端的


Ubuntu


这是相同的可


执行文件服务器。所以,你必须在客户机上重新安装


OpenVPN

< p>
的包:




sudo apt-get install openvpn



这一次 的



样本配置文件复制到


/etc/op envpn/




sudo cp /usr/share/doc/openvpn/examples/sample- config-


files/ /etc/openvpn/



复制客户端密钥,你在上面的部分,例如要在


/etc/ope nvpn /


然后编辑


/etc/openvpn/

< p>
创建,以确保以下行指向这些文件的


CA



书。



如果




/etc/openvpn


下的文件


/


可以省略路径。



ca


cert


key


你必须至少指定


OpenVPN


服务器的名 称或地址,确保关键字的客户端是在


config


,这就是使得 客户端模式。



client


remote


14.127.233.98


1194

< br>##14.127.233.98



OpenVPN Server


映射出去的公网


IP



192.168.100.252



1 194


端口在防火墙做了映射




此外,



不在


/et c/openvpn


目录下时,请确保您指定的服务器复制


的密 钥文件名



ca /etc/openvpn/


cert /etc/openvpn/


key /etc/openvpn/


##


强烈建议用绝对路径,这样 不容易出错。



现在启动


OpenVP N


客户端:



root@client:/etc/openvpn# service openvpn start


* Starting virtual private network daemon(s)...


* Autostarting VPN 'client' [ OK ]


检查它是否创造了一个


tun0


的接口:



root@client:/etc/openvpn# ifconfig tun0


tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00 -00-


00-00-00-00-00


inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255


UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1


检查是否可以


ping OpenVPN


服务器:



root@client:/etc/openvpn# ping 10.8.0.1


PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.


64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms


OpenVPN


服务器总是使用客户端网络中的第一个可用的


IP


地址,只有该


IP



侦测。



例如,如果你配置了一个


/ 24< /p>


的客户端网络掩码,


.1


地址将被使


用。



点对点解决您在

ifconfig


输出中看到上面通常不回答


ping


请求。



检查你的路由表:



root@client:/etc/openvpn# netstat -rn


Kernel IP routing table


Destination Gateway Genmask Flags MSS Window


irtt Iface


10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0


0 tun0


10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0


0 tun0


192.168.42.0 0.0.0.0 255.255.255.0 U 0 0


0 eth0


0.0.0.0 192.168.42.1 0.0.0.0 UG 0 0


0 eth0





5.



故障排查



如果完成了上面操作的还启动不了服务或连接不了,检查:



1.



2.



3.



4.



5.



6.



检查您的系统日志,例如:


tail / var/log/syslog


请检查您是否配置了正确的


< /p>




中指定的密钥文件的名称



不可以在客户端连接到服务器的机器,也许是防火墙阻止访问



客户端和服务器必须使用相同的协议和端口,如


UDP


端口


1194


客户端和服务器必须使用相同的配置对于压缩,看比赛


- LZO


配置选项



客户端和服务器必须 使用相同的方面配置桥接与路由模式,请参阅服务器与服务器桥


接配置选项




举例:




5.1



错误一:


-


-


-


-


-


-


-


-



本文更新与2021-03-02 21:38,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/693393.html

OpenVPN_服务搭建解读的相关文章