13824320640 发表于 2009-6-2 21:23:39

PIX 防火墙(二)

4.8. VPN
VPN(虚拟专网)可以在公网上创建一条安全的加密通道,连接不同区域的办公网络。利用VPN技术,可以节省企业大量的专网建设成本,是现时很热门的一种联网技术。
PIX 506E防火墙最多可支持25条的VPN通道。
创建VPN的技术有很多种,有PPTP、L2TP、IPSec和SSL等。PIX使用IPSec协议支持VPN,具有以下特点:
数据机密性,发送者发送的数据经网络传送前对数据包进行加密。
数据完整性,接收者对接收的数据进行认证,保证数据在传输过程中没有被修改。
数据源认证,接收者对发送者数据包的源进行认证。
拒绝重放,接收者可探测并拒绝重放数据包,防止欺骗和中间人攻击。
IPSec包含两个主要协议,AH(认证头)和ESP(封装安全净荷)。
AH提供认证和可选的重放检测服务,充当"数字签名",保证数据在IP网络上没有被篡改。AH的IP协议号是51。
ESP提供数据加密机制,对IP数据包的数据净荷进行加密。ESP的IP协议号是50。
IPSec可以在两种不同的模式下工作:
隧道模式,在此模式下,整个数据包,包括初始的包头都使用ESP加密。PIX充当IPSec的代理,执行所有的加密工作,主机不执行任何的加密。
传输模式,在此模式下,只有IP净荷被加密。初始包头不进行加密,ESP包头插在IP包头后面。
启动IPSec加密,通信双方必须共享一个密钥。为保证共享密钥交换的机密性,IPSec分两步工作:
第一步,配置IKE参数,创建一个安全通道,用以交换安全信息。
第二步,配置IPSec参数,利用第一步创建的安全通道协商IPSec SA,SA用以对实际的用户数据进行加密和传输。SA包含的信息包括有通信双方的变换集和密钥。
PIX防火墙IPSec支持的标准。
ISAKMP(Internet Security Association and Key Management Protocol,互连网安全联盟及密钥管理协议)。ISAKMP是一个定义在主机之间交换密钥和协商安全参数的框架。ISAKMP定义密钥在非安全网络上交换的一般机制,ISAKMP定义的信息包括报文中消息的位置和通信过程发生的机制,但它不指明使用的协议和算法。
IKE(Internet密钥交换),为IPSec提供基础服务的混合协议,它在ISAKMP框架下运行。用于在对等体之间认证密钥并在它们之间建立共享的安全策略。IKE用于确认,譬如标志一个要求加密会话的对等体,以及决定对等体使用何种算法和何种密钥。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
DES,用以对数据包进行加密和解密。DES使用56位的密钥,加密速度很快。
3DES,是DES的加强版本,使用3个单独的密钥加密3次,是DES加密强度的3倍。3DES使用168位的密码,加密强度大。
AES,新的数据包加解密标准。加密强度比DES和3DES都要高,而且加密开销比它们小。AES使用128位、192位或256位的密钥。
D-H,D-H是一种公钥密码协议,该协议让收发双方通过一个不安全的通信通道建立共享密钥。IKE通过D-H建立会话密钥。PIX防火墙支持768位(组1),1024位(组2)和1536位(组3)的D-H组。
MD5,摘要算法,在认证数据包数据时使用的算法。IKE、AH、ESP都使用MD5进行认证。
SHA-1,另一种认证数据包数据的算法。IKE、AH、ESP都使用SHA-1进行认证。
RSA签名,用于认证的公钥加密系统。IKE使用D-H交换确定双方执行加密算法所需要的密钥。D-H交换可以使用RSA进行认证。
CA,为每台设备提供一个数据证书,双方通信时可通过交换数据证书进行身份认证。数字证书要从CA上申请。PIX使用RSA签名对CA上的交换过程进行验证。
NAT-T,在NAT设备间建立透明的IPSec通道,它自动探测NAT设备,在需要的时候把IPSec数据包进行封装。
SA(安全联盟),SA是IPSec的基础。类似于TCP和UDP中的端口号。每个IPSec设备在内存中都需包含SA参数的SA数据库。通过IPSec设备的地址、安全协议和安全参数索引唯一地确定出SA。
4.8.1. IKE
在创建IPSec安全通道的第一个阶段,要配置IKE来创建一个安全通道。配置IKE的参数有下面这五个:
加密算法(Encryption),指定IPSec对等体之间的加密算法,默认是56位的DES,可以指定168位的3DES。如果防火墙使用的是6.3或更高版本的软件,可以指定使用128位、192位或256位的AES。
哈希算法(Hash),指定用于保证数据完整性的哈希算法。可以选择MD5、SHA-1。
认证(Authentication),为IKE协调指定认证方式,可以选择数字证书或共享密钥。
D-H组,指定在IKE协商期间,用来保证共享密钥安全传递的D-H组。可选择组1(768位)、组2(1024位)或组5(1536位)。组5只在PIX版本在6.3或以上才有效。
SA有效期(lifetime),指定SA的有效期,单位为秒,默认为86400秒。SA有效期越短,安全性就越高。周期越长,协商的次数越少,性能越高。
通过对以上五种参数的组合,可以创建多个IKE。可为每个IKE策略指定优先级,通信双方进行协商时,优先级高的先被用来匹配,如果匹配成功就创建IKE SA,如果多种优先级匹配都不能成功则不能创建SA。
4.8.2. CA
当IPSec对等体较少时,才会在IKE认证时使用预先配置共享密钥(per-share)。当对等体较大时,一般使用CA来进行认证。在PIX中,使用ca命令配置对CA的支持。主要步骤有以下几个:
配置主机名:
fw(config)# hostname fw
配置域名:
fw(config)# domain-name test.com
创建一个RSA密钥对:
fw(config)# ca generate rsa key 1024
配置PIX与CA服务器间的通信参数,重试周期为1分钟,重试次数为100次:
fw(config)# ca configure ca.test.com ca 1 100
指定CA服务器地址:
fw(config)# ca identity ca.test.com 10.1.1.2
配置PIX通过获取CA的公钥和证书对CA进行认证:
fw(config)# ca authenticate ca.test.com
从CA服务器请求证书,12345是撤消证书时用到的质询密码,serial和ipaddress关健字表示把防火墙的序列号和IP地址包含在签名的证书中:
fw(config)# ca enroll ca.test.com 12345 serial ipaddress
到止为止配置完成,用show命令检查配置是否成功:
fw(config)# show ca certificate
配置正确,保存证书和配置:
fw(config)# ca save all
更新闪存。
fw(config)# write memory
4.8.3. LAN to LAN VPN
下面介绍使用IPSec实现两个局域网的互联,实验网络结构如下:
                                          IPSec通道(内网1)192.168.1.0---PIX1(61.28.60.2)----------------PIX2(61.28.39.2)---192.168.2.0(内网2)
首先,设置允许IPSec数据包通过防火墙的ACL和管道。
fw(config)# sysopt connection permit-ipsec
接下来我们就可以开始创建IPSec通道了。创建IPSec通道分两个阶段,首先配置IKE策略,共有五个参数需要配置。下面介绍的是在PIX1上的配置过程。
启动IKE自动协商功能,并指明启动IKE的接口,IKE默认已启动。
fw(config)# isakmp enable outside
使用isakmp policy命令配置IKE的五个参数。
指定加密算法(default is des):
fw(config)# isakmp policy 20 encryption 3des
指定Hash算法(default is sha):
fw(config)# isakmp policy 20 hash md5
指定认证方法(default is rsa-sig):
fw(config)# isakmp policy 20 authentication pre-share
如果采用预先配置共享密钥的认证方法,则要使用isakmp key命令预先定义共享钥密。注意:对等体两端的共享钥密要一致才能协商成功。
fw(config)# isakmp key 12345 address 61.28.39.2 netmask 255.255.255.255
指定D-H组标识符(default is group 1):
fw(config)# isakmp policy 20 group 2
指明IKE SA的有效期,单位为秒(default is 86400):
fw(config)# isakmp policy 20 lifetime 3600
(可选)配置NAT-T,当我们的PIX1位于地址转换设备后面时,需要配置NAT穿透功能。该功能只在PIX防火墙6.3及以上版本才支持。
fw(config)# isakmp nat-traversal
policy后跟的数字20表示IKE策略的优先级。我们可创建几个IKE策略,优先级高的先进行匹配。使用show isakmp policy命令可以查看配置。注意,如果我们使用的是默认值,则在配置文件中不会显示出来,要使用show命令来查看配置信息。
fw# show isakmp policyProtection suite of priority 20      encryption algorithm:   Three key triple DES      hash algorithm:         Secure Hash Standard      authentication method:Pre-Shared Key      Diffie-Hellman group:   #2 (1024 bit)      lifetime:               86400 seconds, no volume limitDefault protection suite      encryption algorithm:   DES - Data Encryption Standard (56 bit keys).      hash algorithm:         Secure Hash Standard      authentication method:Rivest-Shamir-Adleman Signature      Diffie-Hellman group:   #1 (768 bit)      lifetime:               86400 seconds, no volume limitfw# show isakmp policy 20isakmp enable outsideisakmp key ******** address 61.28.39.2 netmask 255.255.255.255isakmp policy 20 authentication pre-shareisakmp policy 20 encryption 3desisakmp policy 20 hash shaisakmp policy 20 group 2isakmp policy 20 lifetime 86400
配置完IKE策略后,我们就要进行第二阶段IPSec参数的配置了。
配置加密流量的ACL,确定哪些流量需要被IPSec保护。语法和普通ACL一样。
fw(config)# access-list inside_outbound_nat0_acl permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0fw(config)# nat (inside) 0 access-list inside_outbound_nat0_aclfw(config)# access-list outside_cryptomap_20 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0   
前两条语句表示对于从192.168.1.0到192.168.2.0的出站流量不用进行地址转换。第三条ACL表示对192.168.1.0到192.168.2.0的出站流量进行IPSec加密。这条加密ACL通过outside_cryptomap_20与后面的加密图关联。
注意:在配置加密ACL时,尽量不要使用any关健字。在应用了加密图的PIX上修改加密ACL时,应先去掉加密图,修改完加密ACL后再重新应用加密图。否则可能会使PIX外部接口的连接自动断开。对等体两端的加密ACL应该是对称的,如果不对称,则不能构建SA。
配置IPSec变换集,变换集是IPSec数据流安全策略的集合。包含数据包认证算法(AH),净荷加密及可选认证机制(ESP)和IPSec模式(传输模式或隧道模式)。对等体两端的变换集要一致才能连接。
fw(config)# crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
ESP-3DES-SHA是我们定义的变换集的名称,esp-3des和esp-sha-hmac是我们指定的两个变换集。esp-3des表示使用3DES密码(168位)的ESP变换。esp-sha-hmac表示带有HMAC-SHA认证的ESP变换,和esp-3des一起使用能为ESP数据包提供额外的完整性。选择变换集是一个比较复杂的问题,下面列举一些常用的变换集组合。
esp-des,提供高性能加密。
ah-md5-hmac,仅提供数据包认证,没有加密。
esp-3des和esp-md5-hmac,提供高强度加密和认证。
esp-aes-256和esp-sha-hmac,提供最强的加密和认证。SHA算法比MD5算法安全性更好,但速度慢。
在IPSec SA协商过程中,对等体搜索两个对等体上相的变换集。搜索从最高的安全级别开始搜索,当发现有相同的变换集后,就选中该变换集。变换集作为IPSec SA的一部份,用以保护加密ACL指定的数据流。
配置IPSec SA的有效期。它决定了IPSec SA在重新协商之前处于有效状态的时间。有效期仅用于通过IKE建立的SA,手工建立的SA不会过期。当SA过期时,在不中断数据流的情况下,会协商一个新的值。设置IPSec SA有效期的命令如下:
fw(config)# crypto ipsec security-association lifetime seconds 3600
上面这条命令把SA有效期设为1小时。seconds关健字指明SA过期之前的有效时间,单位是秒,默认值是28800秒(8小时)。还有一个关健字kilobytes,指明在SA过期之前,两个IPSec对等体间使用该SA可以传递的流量。默认是4608000KB(10MByte/s持续1小时)。注意:Cisco建议使用默认的有效期。
配置加密图,加密图把各项IPSec参数组合在一起,提供对数据流的加密。
在IPSec ISAKMP模式下创建加密图,创建加密图名和序号,序号越低优先级越高。
fw(config)# crypto map outside_map 20 ipsec-isakmp
把上面我们设置的加密ACL与该加密图关联,控制允许通过的加密数据流。
fw(config)# crypto map outside_map 20 match address outside_cryptomap_20
指定另一端的主机名或IP地址,可指定多个主机名或IP地址。当指定多个不机名或IP地址时就说明有多个对等体。
fw(config)# crypto map outside_map 20 set peer 61.28.39.2
指定加密图使用的变换集,该变换集由上面的crypto ipsec transform-set命令设置。
fw(config)# crypto map outside_map 20 set transform-set ESP-3DES-SHA
可以指定多个变换集,按顺序先列出的优先级高。最多可指定9个变换集。
(可选)指定为该加密图请求SA时,是否要请求PFS。PFS是最佳转发保密的意思,指定PFS时,每次协商SA都要进行一次D-H交换。PFS在生成密钥的过程中增强了安全性,但也增加了处理开销。
fw(config)# crypto map outside_map 20 set pfs group2
(可选)指定该加密图项SA的有效期。默认与IPSec SA有效期一样。
fw(config)# crypto map outside_map 20 set security-association lifetime seconds 7200
(可选)使用动态加密图。动态加密图是一个没有任何参数配置的基本加密图项。它是一个策略模板,缺少的参数以后根据对等体的要求动态配置(通过IPSec协商实现)。也就是说,即使PIX防火墙没有配置一个满足所有对等体要求的加密图项,对等体也能够和PIX防火墙交换IPSec数据流。命令格式如下:
fw(config)# crypto dynamic-map dynamic-map-name dynamic-seq-num
把加密图应用到接口。下面是应用到PIX防火墙的outside接口。
fw(config)# crypto map outside_map interface outside
使用show crypto map命令可以显示加密图配置信息。
fw# show crypto mapCrypto Map: "outside_map" interfaces: { outside }Crypto Map "outside_map" 20 ipsec-isakmp      Peer = 61.28.39.2      access-list outside_cryptomap_20 turbo-configured; 1 elements      access-list outside_cryptomap_20 line 1 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 (hitcnt=60282)      Current peer: 61.28.39.2      Security association lifetime: 4608000 kilobytes/28800 seconds      PFS (Y/N): N      Transform sets={ ESP-3DES-SHA, }
PIX默认是不允许通过IPSec VPN远程管理PIX防火墙的,也就是不允许通过VPN访问防火墙的内网接口(inside)。通过management-access inside命令可以打开该限制。
上面详细介绍了通过CLI创建IPSec VPN的过程,对于新手来说可能会复杂了一点。所以PIX提供了一个通过PDM来创建IPSec VPN的功能。通过PDM的VPN向导可以快速创建IPSec VPN,本文就不详细介绍了。
4.8.4. easy remote VPN
在PIx防火墙中还有一种叫Easy remote VPN的连接方式。该方式不属真正的site to site VPN解决方案。但当配置成网络扩展模式时,简易VPN可以提供类似site to site的连接功能。该功能在soho环境下实施效果非常好。在这种环境下,远程设备的IP地址可以动态的。简易远程VPN由VPN服务器和VPN远程设备组成。PIX可以担任两者中的任何一个角色。
客户端可以配置成两种模式,一种是客户端模式,一种是网络扩展模式。
客户端模式:在此模式下,服务器不能直接访问位于简易VPN远程设备后的设备。也就是说,简易VPN远程设备要对客户端经隧道发出的数据进行端口-地址转换。这种方式下,要求给远端设备分配一个单独的私有IP地址。客户端模式下,简易VPN远程设备的数据触发VPN连接,因此资源是按需分配的。
网络扩展模式:在此模式下,服务器可直接访问位于简易VPN远程设备后面的客户端。此时,客户端的IP地址不会被翻译,所以在网络扩展模式下,要给客户端分配适当数量的IP地址。网络扩展模式下,即使没有数据流发送的情况下,也会保持VPN连接。该方式和标准IPSec的site to site VPN连接的功能相似。
命令vpnclient配置客户端,示例:
fw(config)# vpnclient mode client-modefw(config)# vpnclient vpngroup server-name password 123456   #指定服务器上的vpngroup组名fw(config)# vpnclient username username password 123456      #指定用户名和密码fw(config)# vpnclient server 192.168.1.2                     #指定服务器IP地址,可多个fw(config)# vpnclient enable
vpngroup命令配置服务器,示例:
fw(config)# access-list nonat permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0fw(config)# access-list easy_acl permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0fw(config)# nat(inside) 0 access-list nonatfw(config)# ip local pool easypool 192.168.2.2-192.168.2.20fw(config)# crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmacfw(config)# crypto dynamic-map test 20 set transform-set ESP-3DES-SHAfw(config)# crypto map easy 50 ipsec-isakmp dynamic testfw(config)# crypto map easy client configuration address initiatefw(config)# crypto map easy interface outsidefw(config)# isakmp enable outsidefw(config)# isakmp identity vpnserverfw(config)# isakmp nat-traversal 60fw(config)# isakmp policy 20 authentication pre-sharefw(config)# isakmp policy 20 encryption 3desfw(config)# isakmp policy 20 hash shafw(config)# isakmp policy 20 group 2fw(config)# isakmp policy 20 lifetime 86400fw(config)# vpngroup server-name address-pool easypoolfw(config)# vpngroup server-name dns-server 192.168.2.30fw(config)# vpngroup server-name wins-server 192.168.2.31fw(config)# vpngroup server-name default-domain test.comfw(config)# vpngroup server-name split-tunnel easy_aclfw(config)# vpngroup server-name idle-time 1200fw(config)# vpngroup server-name password 123456
简易VPN服务器配置除了利用vpngroup命令外,还需要合适的IKE、IPSec以及动态加密图。192.168.1.0/24到192.168.2.0/24网络间的数据流是加密的,而且不会进行NAT转换。远端设备会把到其它网络的数据流直接路由到Internet上。远端设备的配置是在服务器上配置的,一旦连接成功,则服务器会把配置参数推送到客户端。
页: [1]
查看完整版本: PIX 防火墙(二)