




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OpenVPN -时间:2014-7-7 -深圳运维组 如果你想要更多的不仅仅是预共享密钥的OpenVPN可以很容易地设置和使用公共密钥基础设施(PKI)来使用SSL/TLS证书进行身份验证和VPN服务器和客户端之间的密钥交换。OpenVPN可以在路由中使用或桥连的VPN模式,并且可以配置为使用UDP或TCP,端口号可以配置为其他的,但官方默认端口是1194,而且它仅使用了单端口的所有通信。OpenVPN的客户端可用于几乎所有的系统,包括所有的Linux发行版,Mac OS X,Windows和OpenWRT的基于无线局域网的路由器。实验网络拓扑图:目录OpenVPN11.服务器安装32.公钥基础设施设置32.1证书颁发机构设置32.2服务器证书42.3客户端证书53.服务器配置54.客户端配置75.故障排查95.1错误一:95.2错误二:96.客户端软件的实现106.1Linux的网络管理器图形用户界面的OpenVPN106.2Linux的文本界面的OpenVPN106.3OpenVPN的带有GUI为Win 7或Win XP111. 服务器安装要安装OpenVPN的,请在终端输入:$sudo s#输入密码切换到root,后面的操作均是在root用户下进行。#apt-get install openvpn easy-rsa2. 公钥基础设施设置构建的OpenVPN配置的第一步是建立一个公钥基础设施(PKI),公钥基础设施包括:1. 一个单独的证书(也称为公钥)和私钥的服务器和每个客户端,2. 这是用来签署每个服务器和客户端证书的大师证书颁发机构(CA)的证书和密钥。OpenVPN的支持基于证书的双向认证,这意味着客户端必须验证服务器证书在互信建立之前,服务器也必须验证客户端证书。服务器和客户端将验证对方先核实该提供的证书是由主证书颁发机构(CA)签署,然后通过在现在验证的证书的头,如证书的通用名称或证书类型测试信息(客户端或服务器)。2.1 证书颁发机构设置要建立你自己的证书颁发机构(CA)和产生的证书和密钥的OpenVPN服务器多个客户端的easy-rsa目录先复制到/etc/openvpn。这将确保任何更改脚本包时更新也不会丢失。从终端的变化,以root用户:mkdir /etc/openvpn/easy-rsa/cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/接下来,编辑的/etc/openvpn/easy-rsa/vars调整到适合您的环境:rootubuntu:/etc/openvpn/easy-rsa# cat vars |grep -v #主要修改红色部分内容,下面是已经改好的例子export EASY_RSA=pwdexport OPENSSL=opensslexport PKCS11TOOL=pkcs11-toolexport GREP=grepexport KEY_CONFIG=$EASY_RSA/whichopensslcnf $EASY_RSAexport KEY_DIR=$EASY_RSA/keysecho NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIRexport PKCS11_MODULE_PATH=dummyexport PKCS11_PIN=dummyexport KEY_SIZE=2048export CA_EXPIRE=3650export KEY_EXPIRE=3650export KEY_COUNTRY=CN #国家export KEY_PROVINCE=SZ #省份export KEY_CITY=ShenZhen #城市export KEY_ORG=acttao #组织单位export KEY_EMAIL= #邮箱 export KEY_OU=acttao #组织单元export KEY_NAME=acttao #证书名export KEY_CN=acttao #证书别名输入以下命令以生成主证书颁发机构(CA)的证书和密钥:cd /etc/openvpn/easy-rsa/chown -R root.$user . #$user指的是当前管理系统的用户(非root)chmod g+w .source ./vars./clean-all./build-ca (可能会报错,详见下图)rootubuntu:/etc/openvpn/easy-rsa# ./build-caerror on line 198 of /etc/openvpn/easy-rsa/f140065253045920:error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198或者rootubuntu:/etc/openvpn/easy-rsa# ./build-caerror on line 220 of /etc/openvpn/easy-rsa/f140519323657888: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/f 把这两行给注释掉。#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 acttao.crt acttao.key ca.crt dh2048.pem /etc/openvpn/2.3 客户端证书VPN客户端还需要一个证书来验证自己到服务器。通常你创建一个不同的证书为每个客户端。创建证书,请输入以下的终端,而作为root用户:cd /etc/openvpn/easy-rsa/source ./vars./build-key client1#大部分都是回车,最后两步是”y”使用安全的方法,把下列文件拷贝到客户端:1. /etc/openvpn/ca.crt2. /etc/openvpn/easy-rsa/keys/client1.crt3. /etc/openvpn/easy-rsa/keys/client1.key由于客户端证书和密钥只需要在客户机上,你应该从服务器上删除它们。3. 服务器配置随着你的OpenVPN安装你得到了这些示例配置文件(还有更多,如果你打勾):rootserver:/# ls -l /usr/share/doc/openvpn/examples/sample-config-files/total 68-rw-r-r- 1 root root 3427 2011-07-04 15:09 client.conf-rw-r-r- 1 root root 4141 2011-07-04 15:09 server.conf.gz开始复制和拆包server.conf.gz到/etc/openvpn/server.conf中。sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/sudo gzip -d /etc/openvpn/server.conf.gz编辑/etc/openvpn/server.conf中确保以下行指向您在上一节中创建的证书和密钥。rootubuntu:/etc/openvpn# cat server.conf |grep -v # |grep -v ;local 52 #OpenVPN Server 服务器的IPport 1194 #通信端口proto udp #也可以使用tcp端口,但传输速度可能没有udp快,建议保持沉默dev tun #tun模式一般用DHCP分发IP,另一种tap模式,一般是从IP段中指派IP ca /etc/openvpn/ca.crt #强烈建议写绝对路径cert /etc/openvpn/acttao.crt #强烈建议写绝对路径key /etc/openvpn/acttao.key # This file should be kept secretdh /etc/openvpn/dh2048.pem #强烈建议写绝对路径server #配置VPN使用的网段,OpenVPN会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网IP段重复,保证唯一性ifconfig-pool-persist ipp.txt #存储分发IP记录,确保下次登录还获得一样的IPpush redirect-gateway def1 bypass-dhcp #若客户端希望所有的流量都通过VPN传输,则可以使用该语句,其会自动改变客户端的网关为VPN服务器(推荐关闭)push dhcp-option DNS push dhcp-option DNS duplicate-cn#此处设置一个证书可以多个用户同时登陆client-to-client #默认OpenVPN客户端之间是不能互通的,注释掉就可以了。keepalive 10 120comp-lzo #使用lzo压缩的通讯,服务端与客户端都必须配置max-clients 100 #最大连接数user nobodygroup nogrouppersist-keypersist-tunstatus openvpn-status.log #日志文件verb 3e这是起码的,你必须通过配置来获得一个工作OpenVPN服务器。您也可以使用该样本server.conf中的文件中的所有默认设置。现在启动服务器。你会发现日志和错误信息在您的系统日志(/var/log/syslog)里面可以查看到。rootserver:/etc/openvpn# service openvpn start * Starting virtual private network daemon(s). * Autostarting VPN server OK 现在,可以查看到OpenVPN创建了一个tun0的接口:rootserver:/etc/openvpn# ifconfig tun0tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr: P-t-P: Mask:55 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1.配置虚拟网卡tun0可以通过eth0网卡进行NAT转发数据包vim /etc/default/ufw DEFAULT_FORWARD_POLICY=DROP修改成DEFAULT_FORWARD_POLICY=ACCEPTvim /etc/sysctl.conf#net.ipv4.ip_forward=1修改成net.ipv4.ip_forward=1sysctl -p 执行一下命令使修改生效 添加几条策略ufw allow 22/tcpiptables -A INPUT -p udp -dport 1194 -j ACCEPT 或(ufw allow 1194/udp)iptables -A FORWARD -s /24 -o eth0 -j MASQUERADEiptables -t nat -A POSTROUTING -s /24 -o eth0 -j MASQUERADE防止系统重启后iptables不生效iptables-save -c /etc/ufw/iptables.saveecho iptables-restore -c /etc/ufw/iptables.save /etc/rc.local4. 客户端配置有带和不带图形用户界面的各种不同的OpenVPN客户端实现。你可以阅读更多有关在后面的部分客户。现在我们使用OpenVPN客户端的Ubuntu这是相同的可执行文件服务器。所以,你必须在客户机上重新安装OpenVPN的包:sudo apt-get install openvpn这一次的client.conf样本配置文件复制到/etc/openvpn/。sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/复制客户端密钥,你在上面的部分,例如要在/etc/openvpn /然后编辑/etc/openvpn/client.conf创建,以确保以下行指向这些文件的CA证书。如果client.conf在/etc/openvpn下的文件/可以省略路径。ca ca.crtcert client1.crtkey client1.key你必须至少指定OpenVPN服务器的名称或地址,确保关键字的客户端是在config,这就是使得客户端模式。clientremote 8 1194 #8是OpenVPN Server 映射出去的公网IP(52的1194端口在防火墙做了映射)此外,client.conf不在/etc/openvpn目录下时,请确保您指定的服务器复制的密钥文件名ca /etc/openvpn/ca.crtcert /etc/openvpn/client1.crtkey /etc/openvpn/client1.key#强烈建议用绝对路径,这样不容易出错。现在启动OpenVPN客户端: rootclient:/etc/openvpn# service openvpn start * Starting virtual private network daemon(s). * Autostarting VPN client OK 检查它是否创造了一个tun0的接口:rootclient:/etc/openvpn# ifconfig tun0tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr: P-t-P: Mask:55 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1检查是否可以ping OpenVPN服务器:rootclient:/etc/openvpn# ping PING () 56(84) bytes of data.64 bytes from : icmp_req=1 ttl=64 time=0.920 msOpenVPN服务器总是使用客户端网络中的第一个可用的IP地址,只有该IP可侦测。例如,如果你配置了一个/ 24的客户端网络掩码,.1地址将被使用。点对点解决您在ifconfig输出中看到上面通常不回答ping请求。检查你的路由表:rootclient:/etc/openvpn# netstat -rnKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface 55 UH 0 0 0 tun0 55 UGH 0 0 0 tun0 U 0 0 0 eth0 UG 0 0 0 eth05. 故障排查如果完成了上面操作的还启动不了服务或连接不了,检查:1. 检查您的系统日志,例如:tail / var/log/syslog2. 请检查您是否配置了正确的client.conf和server.conf中指定的密钥文件的名称3. 不可以在客户端连接到服务器的机器,也许是防火墙阻止访问4. 客户端和服务器必须使用相同的协议和端口,如UDP端口11945. 客户端和服务器必须使用相同的配置对于压缩,看比赛 - LZO配置选项6. 客户端和服务器必须使用相同的方面配置桥接与路由模式,请参阅服务器与服务器桥接配置选项举例:5.1 错误一:Jul 6 13:01:10 ubuntu ovpn-server2767: Options error: -server and -server-bridge cannot be used togetherJul 6 13:01:10 ubuntu ovpn-server2767: Use -help for more information.原因:Server.conf配置文件中server 不能与下面的一起使用server-bridge 0 00server-bridge5.2 错误二:Jul 6 13:02:07 ubuntu ovpn-server2813: Options error: -server-bridge directive only makes sense with -dev tapJul 6 13:02:07 ubuntu ovpn-server2813: Use -help for more information.原因:Server.conf配置文件中server-bridge 0 00server-bridge只能配合tap用dev tap;dev tun (tun注释掉)6. 客户端软件的实现6.1 Linux的网络管理器图形用户界面的OpenVPN许多Linux发行版,包括Ubuntu桌面变种配有网络管理器,一个漂亮的GUI来配置您的网络设置。它也可以管理你的VPN连接。请确保您有安装包的网络管理员,OpenVPN的。在这里,您会看到安装程序将安装所有其他所需的软件包,以及:rootclient:# apt-get install network-manager-openvpnReading package lists. DoneBuilding dependency tree Reading state information. DoneThe following extra packages will be installed: liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpnSuggested packages: resolvconfThe following NEW packages will be installed: liblzo2-2 libpkcs11-helper1 network-manager-openvpn network-manager-openvpn-gnome openvpn0 upgraded, 5 newly installed, 0 to remove and 631 not upgraded.Need to get 700 kB of archives.After this operation, 3,031 kB of additional disk space will be used.Do you want to continue Y/n? 通知网络管理员对新安装的软件包,你将不得不重新启动它:rootclient:# restart network-manager network-manager start/running, process 3078打开网络管理界面,选择VPN选项卡,然后在“添加”按钮。OpenVPN的选择作为VPN类型的开放请求者,然后按“创建”。在接下来的窗口中的OpenVPN的服务器名称为“网关”,设置“类型”为“证书(TLS)”,点“用户证书”添加到您的用户证书,“CA认证”给您的CA证书和“私钥”您的私钥文件。使用高级按钮,启用压缩(如比赛 - LZO),dev的自来水,或者你在服务器上设置其它特殊设置。现在,尝试建立您的VPN。6.2 Linux的文本界面的OpenVPN安装OpenVPN服务sudo apt-get install openvpn从示例名把 client.conf 复制到配置目录下/etc/openvpn/sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/准备好以下证书文件(事前在OpenVPN Server生成好的,需要下载到客户端的/etc/openvpn/目录下)ca ca.crtcert client1.crtkey client1.key配置配置client.conf文确保OpenVPN的连接地址准确clientremote 8 1194 #8是我实验环境OpenVPN服务器的IP确保证书路径准确ca ca.crtcert client1.crtkey client1.key启动客户端OpenVPN服务rootclient:/etc/openvpn# service openvpn start * Starting virtual private network daemon(s). * Autostarting VPN client OK 查看tun0接口信息rootclient:/etc/openvpn# ifconfig tun0tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr: P-t-P: Mask:55 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1客户端可以ping通OpenVPN Serverrootclient:/etc/openvpn# ping PING () 56(84) byt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵金属废料综合利用项目环境影响报告书
- Chapter1 Coming to school说课稿-2025-2026学年小学英语2A香港朗文版
- 考点解析-人教版八年级上册物理声现象《声音的产生与传播》专项练习练习题(含答案详解)
- 绿化工程施工安全管理方案
- 混凝土裂缝防治方案
- 磁性生物炭对重金属镉的吸附性能及复合毒性效应机制研究
- 考点攻克苏科版八年级物理上册《物体的运动》专题练习练习题(含答案详解)
- 考点解析人教版八年级上册物理声现象《噪声的危害和控制》达标测试试题(详解)
- 基于滑移率预测的多地形移动机器人运动控制研究
- 第1课 生活处处皆算法教学设计小学信息技术(信息科技)五年级下册鲁教版(信息科技)
- 采购业务审计培训
- 2025-2026学年冀美版(2024)小学美术二年级上册(全册)教学设计(附目录P284)
- 服装色彩构成课件
- 化工仪表检修与维护课件
- 2025年华为软件开发工程师招聘面试题库及答案解析
- 程序化广告课件
- 电工基础课件
- 四川省石渠县2025年上半年公开招聘辅警试题含答案分析
- 真菌生物膜毒力因子-洞察及研究
- 基孔肯雅热危害及预防课件
- 副校长在任职宣布会上的表态发言材料
评论
0/150
提交评论