10计科 陈艳华 201030457109
网络安全与维护实验报告
实验三 VPN的搭建
一、实验目的:
了解VPN的基本原理
掌握一种或多种VPN的搭建方法
二、实验要求:
本实验以 OpenVPN 服务器搭建作为实验内容,学生还可以依据自己的实际情况自选设计搭建方法。
三、环境简介:
服务器:WIN XP 客户端:WIN XP
软件: openvpn-2.2.2
网络结构: PC1、PC2在同一局域网中。
四、实验内容:
1、进入cmd,输入cd "C:\Program Files\OpenVPN\easy-rsa" 进入目录C:\Program Files\OpenVPN\easy-rsa
第3步到10步都是生成密码文件所需,这里只要在服务器端做就行了,生成后把客户端需要的文件复制到相应目录就行。
2、输入 init-config 初始化
命令行输出 :
已复制 1个文件。
3、输入 vars
4、输入 clean-all
命令行输出:
已复制 1个文件。
已复制 1个文件。
5、创建ca文件 ,输入 build-ca
命令行输出:
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) :
State or Province Name (full name) :
Locality Name (eg, city) :
Organization Name (eg, company) :
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
OpenVPN-CAEmail Address [me@myhost.mydomain]:
依次修改这些值就可以了,或者使用默认值。这些默认值存储在vars.bat中,所以也可以去修改vars.bat。
需要注意的是 Common Name必须填写。在我的例子中使用的是E3Call。
6、生成服务器端 证书和密钥
输入 build-key-server server
和之前一样,Common Name必须写,这里改成server,最后两个新增选项选y就行
7、生成三个客户端 证书和密钥
输入build-key client1
build-key client2
build-key client3
同上,一定要填写Common Name,可以分别写:client1、client2、client3
8、生成密钥交换参数(Generate Diffie Hellman parameters)
输入 build-dh
至此所有密钥文件都生成完了,存在C:\Program Files\OpenVPN\easy-rsa\keys 文件夹中
服务器需要使用的文件是ca.crt、dh{n}.pem(这里是dh1024.pem)、server.crt、server.key。其中需要保密的是server.key
client1需要ca.crt、client1.crt、client1.key。其中client1.key需要保密
将服务器和客户端所需的文件分别复制到C:\Program Files\OpenVPN\keys文件夹中
9、编辑服务器端的配置文件
在C:\Program Files\OpenVPN\sample-config 目录下有现成的配置文件样本,直接复制server.ovpn文件到C:\Program Files\OpenVPN\config
编辑C:\Program Files\OpenVPN\config\server.ovpn
直接选用以下配置文件。
port 443
proto tcp-server
dev tun
server 10.8.0.0 255.255.255.0
duplicate-cn
keepalive 20 180
ca "C:\\Program Files\\OPENVPN\\KEY\\ca.crt"
cert "C:\\Program Files\\OPENVPN\\KEY\\server.crt"
key "C:\\Program Files\\OPENVPN\\KEY\\server.key"
dh "C:\\Program Files\\OPENVPN\\KEY\\dh1024.pem"
push "dhcp-option DNS 202.96.134.133"
mode server
tls-server
status C:\\Program Files\\OPENVPN\\log\\openvpn-status.log
comp-lzo
verb 4
#******server.ovpn示例结束********
10、启动openvpn server
右键点击桌面右下角的openvpn gui,选server->connect即可
然后红色图标会变成绿色,表示已经启动成功,如果没有成功就去看C:\Program Files\OpenVPN\log目录下的log。
11、编辑客户端的配置文件
同样 在C:\Program Files\OpenVPN\sample-config 目录下有现成的配置文件样本,直接复制client.ovpn文件到C:\Program Files\OpenVPN\config
当然,正常情况下server和client应该是两个台机器,所以现在确认一下你已经在另一台机器上开始工作了。
编辑C:\Program Files\OpenVPN\config\client.ovpn, 最好先改名吧 改成client1.ovpn,这样好记一些
直接选用以下配置文件。
client
dev tun
proto tcp-client
remote 172.22.24.X(换成服务器IP)
resolv-retry infinite
nobind
#http-proxy 192.168.1.1 80
mute-replay-warnings
ca "C:\\Program Files\\OPENVPN\\KEY\\ca.crt"
cert "C:\\Program Files\\OPENVPN\\KEY\\client.crt"
key "C:\\Program Files\\OPENVPN\\KEY\\client.key"
comp-lzo
verb 4
status openvpn-status.log
12、启动openvpn client1
右键点击桌面右下角的openvpn gui,选 client1->connect即可
然后红色图标会变成绿色,表示已经启动成功,如果没有成功就去看C:\Program Files\OpenVPN\log目录下的log。
---------------------------------------------------------------------------- 13、验证
现在可以尝试客户端和服务器之间相互ping。可以ping通就是成功了。至此openvpn在xp下的设置就完成了。
可以看到server ip 10.8.0.1 client1 ip 10.8.0.6,具体要看实际分配结
果
六、实验小结:
在本次试验中,我和同学一起使用OpenVPN --2.2.2实现了同一局域网内VPN的搭建,了解了VPN搭建的方法。虽然实验过程中也遇到了各种问题,例如:在配置两台电脑完成后,出现客户端和服务器之间相互ping无法成功,查看了C:\Program Files\OpenVPN\log目录下的log发现是客户端的在相应文件夹
中的名称不正确,更改之后就成功了。所以,这次的实验不仅学会了VPN的搭建,更锻炼了我的实际解决问题的能力。
第二篇:51CTO下载-实例讲解VPN网络的搭建和路由设置
VPN是企业实现安全远程互联的有效方法。本文根据一个应用实例,具体描述VPN的配置和实施过程。其主要应用特点包括:基于封装安全负载标准ESP-DES(Encapsulating Securiry Payload – Data Encryption Standard)的IPSec;专有网络通过端口地址转换(PAT)技术访问Internet。
一、 网络基本情况
该单位公司总部在北京,全国有3个分支机构。要求做到在4个地点的数据能够实时查询,便于业务员根据具体情况作出正确决策。早期方案是使用路由器,通过速率为256Kbps的DDN专网连接北京总部。但技术人员通过市场调研,发现该网络运营成本过高。通过进一步的咨询和调整,最终方案是分支机构使用DDN在本地接入Internet,总部使用以太网就近接入Internet。并对互联的路由器进行配置,使用VPN技术,保证内部数据通过Internet安全传输。
二、配置过程及测试步骤
在实施配置前,需要检查硬件和软件是否支持VPN。对于Cisco路由器,要求IOS版本高于12.0.6(5)T,且带IPSec功能。本配置在Cisco路由器上配置通过。
以下是分支网络1的路由器实际配置过程,其他路由器的配置方法与此基本一致,只需修改具体的环境参数(IP地址和接口名称)即可。
以下黑体字为输入部分,< Enter >为键盘对应键,^Z为Ctrl+Z组合键。
1. 配置路由器的基本参数,并测试网络的连通性
(1) 进入路由器配置模式
将计算机串口与路由器console口连接,并按照路由器说明书配置―终端仿真‖程序。执行下述命令进入配置模式。
Router>en
Router#config terminal
Router(config)#
(2)配置路由器的基本安全参数
主要是设置特权口令、远程访问口令和路由器名称,方便远程调试。
Router(config)#enable secret xxxxxxx
Router(config)#line vty 0 4
Router(config-line)#password xxxxxx
Router(config-line)#exit
Router(config)#hostname huadong
huadong(config)#
(3)配置路由器的以太网接口,并测试与本地计算机的连通性
注意: 配置前,请将线缆与相关设备连接好。其中ethernet0/0端口接内部网络,serial0/0端口接外部网络。外部网络接口地址由ISP分配,至少一个地址,多者不限。以下假定为一个,使用PAT模式,地址为210.75.32.9,上级路由器为210.75.32.10。内部网络地址如附图所标示。
关键是配置IP地址和启用以太网接口。测试时,使用基本的测试命令ping。 huadong(config)#inter eth0/0
huadong(config-if)#ip address 172.17.1.1 255.255.255.0
huadong(config-if)#no shutdown
以下是测试命令:
huadong#ping 172.17.1.1
…
!!!!!
…
huadong#ping 172.17.1.100
…
!!!!!
…
在IP地址为172.17.1.100的计算机上:
c:>ping 172.17.1.1
Pinging 172.17.1.1 with 32 bytes of data:
Reply from 172.17.1.1: bytes=32 time=5ms TTL=255
……
结果证明连接及配置正确。
(4) 配置路由器的串口,并测试与上级路由器的连通性
与以太网口的配置方法类似,而且需要指定带宽和包的封装形式。同时,注意将Cisco设备特有的CDP协议关掉,保证基本的安全。
huadong(config)#inter serial0/0
huadong(config-if)#ip address 210.75.32.9 255.255.255.252
huadong(config-if)#bandwidth 256
huadong(config-if)#encapsulation ppp
huadong(config-if)#no cdp enable
huadong(config-if)#no shutdown
以下是测试命令:
huadong#ping 210.75.32.9
……
!!!!!
……
huadong#ping 210.75.32.10
……
!!!!!
……
结果证明连接及配置正确。
2. 配置路由器NAT网络
(1) 配置外出路由并测试
主要是配置缺省路由。
huadong(config)#ip route 0.0.0.0 0.0.0.0 210.75.32.9
huadong#ping 211.100.15.36
……
!!!!!
……
结果证明本路由器可以通过ISP访问Internet。
(2) 配置PAT,使内部网络计算机可以访问外部网络,但不能访问总部和分支机构 主要是基于安全目的,不希望内部网络被外部网络所了解,而使用地址转换(NAT)技术。同时,为了节约费用,只租用一个IP地址(路由器使用)。所以,需要使用PAT技术。使用NAT技术的关键是指定内外端口和访问控制列表。
在访问控制列表中,需要将对其他内部网络的访问请求包废弃,保证对其他内部网络的访问是通过IPSec来实现的。
huadong(config)#inter eth0/0
huadong(config-if)#ip nat inside
huadong(config-if)#inter serial0/0
huadong(config-if)#ip nat outside
huadong(config-if)#exit
以上命令的作用是指定内外端口。
huadong(config)#route-map abc permit 10
huadong(config-route-map)#match ip address 150
huadong(config-route-map)#exit
以上命令的作用是指定对外访问的规则名。
huadong(config)#access-list 150 deny 172.17.1.0 0.0.0.255 172.16.0.0 0.0.255.255 huadong(config)#access-list 150 deny 172.17.1.0 0.0.0.255 172.17.2.0 0.0.0.255 huadong(config)#access-list 150 deny 172.17.1.0 0.0.0.255 172.17.3.0 0.0.0.255
huadong(config)#access-list 150 permit ip 172.17.1.0 0.0.0.255 any
以上命令的作用是指定对外访问的规则内容。例如,禁止利用NAT对其他内部网络直接访问(当然,专用地址本来也不能在Internet上使用),和允许内部计算机利用NAT技术访问Internet(与IPSec无关)。
huadong(config)#ip nat inside source route-map abc interface serial0/0 overload 上述命令的作用是声明使用串口的注册IP地址,在数据包遵守对外访问的规则的情况下,使用PAT技术。
以下是测试命令,通过该命令,可以判断配置是否有根本的错误。例如,在命令的输出中,说明了内部接口和外部接口。并注意检查输出与实际要求是否相符。
huadong#show ip nat stat
Total active translations: 0 (0 static, 0 dynamic; 0 extended)
Outside interfaces:
Serial0/0
Inside interfaces:
Ethernet0/0
……
在IP地址为172.17.1.100的计算机上,执行必要的测试工作,以验证内部计算机可以通过PAT访问Internet。
c:>ping 210.75.32.10
……
Reply from 210.75.32.10: bytes=32 time=1ms TTL=255
……
c:>ping
……
Reply from 211.100.15.36: bytes=32 time=769ms TTL=248
……
此时,在路由器上,可以通过命令观察PAT的实际运行情况,再次验证PAT配置正确。 huadong#show ip nat tran
Pro Inside global Inside local Outside local Outside global
icmp 210.75.32.9:1975 172.17.1.100:1975 210.75.32.10:1975 210.75.12.10:1975 ……
以上测试过程说明,NAT配置正确。内部计算机可以通过安全的途径访问Internet。当然,如果业务要求,不允许所有的内部员工/计算机,或只允许部分内部计算机访问Internet,那么,只需要适当修改上述配置命令,即可实现
3. 配置ESP-DES IPSec并测试
以下配置是配置VPN的关键。首先,VPN隧道只能限于内部地址使用。如果有更多的内部网络,可在此添加相应的命令。
huadong(config)#access-list 105 permit ip 172.17.1.0 0.0.0.255 172.16.0.0 0.0.255.255
huadong(config)#access-list 106 permit ip 172.17.1.0 0.0.0.255 172.17.2.0 0.0.0.255 huadong(config)#access-list 107 permit ip 172.17.1.0 0.0.0.255 172.17.3.0 0.0.0.255 指定VPN在建立连接时协商IKE使用的策略。方案中使用sha加密算法,也可以使用md5算法。
在IKE协商过程中使用预定义的码字。
huadong(config)#crypto isakmp policy 10
huadong(config-isakmp)#hash sha
huadong(config-isakmp)#authentication pre-share
huadong(config-isakmp)#exit
针对每个VPN路由器,指定预定义的码字。可以一样,也可以不一样。但为了简明起见,建议使用一致的码字。
huadong(config)#crypto isakmp key abc2001 address 211.157.243.130
huadong(config)#crypto isakmp key abc2001 address 202.96.209.165
huadong(config)#crypto isakmp key abc2001 address 192.18.97.241
为每个VPN(到不同的路由器,建立不同的隧道)制定具体的策略,并对属于本策略的数据包实施保护。本方案包括3个VPN隧道。需要制定3个相应的入口策略(下面只给出1个)。 huadong(config)#crypto map abc 20 ipsec-isakmp
huadong(config-crypto-map)#set peer 211.157.243.130
huadong(config-crypto-map)#set transform-set abc-des
huadong(config-crypto-map)#match address 105
huadong(config-crypto-map)#exit
使用路由器的外部接口作为所有VPN入口策略的发起方。与对方的路由器建立IPSec。 huadong(config)#crypto map abc local-address serial0
IPSec使用ESP-DES算法(56位加密),并带SHA验证算法。
huadong(config)#crypto ipsec transform-set abc-des esp-des esp-sha-hmac 指明串口使用上述已经定义的策略。
huadong(config)#inter serial0/0
huadong(config-if)#crypto map abc
在IP地址为172.17.1.100的计算机上验证:
c:>ping 172.16.1.100
……
Reply from 172.16.1.100: bytes=32 time=17ms TTL=255
……
huadong#show crypto engine conn acti
ID Interface IP-Address State Algorithm Encrypt Decrypt
1 < none > < none > set HMAC_SHA+DES_56_CB 0 0
2000 Serial0/0 210.75.32.9 set HMAC_SHA+DES_56_CB 0 452
2001 Serial0/0 210.75.32.9 set HMAC_SHA+DES_56_CB 694 0
同时,这种连接使用了IPSec,而没有使用NAT技术。
三、测试
将所有路由器按照上述过程,根据具体的环境参数,做必要修改后,完成VPN的配置。网络部分任务完成,可以顺利开展业务应用了。
如果需要,路由器本身提供更详细的调试命令:
debug crypto engine connections active
debug crypto isakmp sa
debug crypto ipsec sa
在调试时,需要注意,在对应路由器上也执行相应的调试命令。然后,在一台客户机(172.17.1.100)上执行如下命令:
c:>ping 172.16.1.100 -n 1
最后,对比2个路由器的输出,观察出现问题的提示——这是隧道不能建立的主要原因。针对此提示,做必要的修改工作,便可圆满完成VPN的配置计划。
在实际中,该方案完全满足用户需求,并充分验证了VPN技术的可用性和实用性。至今运行正常,用户非常满意。