与防火墙 并联的VPN集中器
当 建设访问虚拟专用网络(时VPN),无容置疑地一个偏爱的途径是并行 设计(说明在下面的镜象)。用户通常更喜欢此设计方法因为 实现,带有几乎没有影响到现有基础设施是容易的,并且因为它是 相对容易对根据设备灵活性的缩放比例。
在平行接近,VPN集中器连接到在分段内外。所有VPN会话终止在集中器没有通过防火墙。通常VPN客户端 软件预计有对内部网络的无限制访问,但他们的访问可以有时被限 制对一套内部的服务器(小型服务器站)。 其中一个理想的功 能是从正常互联网数据流分离VPN数据流,因此例如,VPN客户端软 件不允许通过公司防火墙访问互联网。
图6:与防火墙并联的VPN 集中器
测试与防火墙并联的VPN集中器
在本例中,我们使 用了一台VPN 5000 集中器,平行安装对PIX防火墙。二个路 由器配置作为网络服务器安装了在内部的分段作为一个内部服务器 组群。VPN客户端软件只允许访问小型服务器站,并且应该从 VPN 数据流(IPSec)分离互联网数据流。下面的图显示试验床 。
图7:与防火墙并联的VPN 集中器试验床
在此方案我们 有二个主要兴趣范围:
-
内部L2交换 机
-
外部L2交换机
数据流为内部L2交换机被定义根据以下语句:
-
VPN客户端软件有对预定义的套的完 全权限内部服务器(小型服务器站)
-
内部客户端也允许访问小型服务器站
-
内部客户端有对互联网的无限制访问
-
必须与PIX防火墙分离来自VPN集中 器的数据流
数据流为外部L2交换机 被定义如下:
-
来自路由器的数据流 一定能去VPN 集中器或PIX
-
必须与 来自VPN的数据流分离来自PIX的数据流
另外很可能,管理员想要防止数据流内部网络从能做 其方式对VPN主机,这可以通过在主VLAN配置的VACLs达到(VACL将过 滤离开从内部路由器的仅数据流,没有其他数据流受影响)。
PVLAN配 置
因为主要目标在此 设计将继续数据流来自从数据流分离PIX来自自服务器和VPN集中器 ,我们在不同的PVLAN比服务器和VPN集中器配置的PVLAN配置PIX。
来自内部网络的数据流一定能访问 小型服务器站并且VPN集中器和PIX。结果,连接到内部网络 的端口是一个混乱端口。
因为他们 能彼此,沟通服务器和VPN 集中器属于同样辅助VLAN。
关于外部L2交换机,产生的路由器 对的访问典型地属于网络服务提供商(ISP)的互联网()连接到一个混 乱端口当时VPN集中器和PIX 属于同样专用和隔离VLAN (以便他们 不能交换任何数据流)。通过执行此,来自服务提供商的数据 流能采取路径对VPN集中器或路径对PIX。因为他们查出,PIX 和VPN 集中器是保护。
内部L2交换机的PVLAN配置
sh pvlan
Primary Secondary Secondary-Type Ports
------- --------- ---------------- -----------
41 42 community 3/7,3/9-10
41 43 isolated 3/12
ecomm-6500-2 (enable) sh pvlan map
Port Primary Secondary
---- ------- ---------
3/34 41 42-43
ecomm-6500-2 (enable) sh port 3/7
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ----- ------------
3/7 to_vpn_conc connected 41,42 a-half a-10 10/100BaseTX
ecomm-6500-2 (enable) sh port 3/9
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ----- ------------
3/9 server_1 connected 41,42 a-half a-10 10/100BaseTX
ecomm-6500-2 (enable) sh port 3/10
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ----- ------------
3/10 server_2 connected 41,42 a-half a-10 10/100BaseTX
ecomm-6500-2 (enable) sh port 3/12 Port Name Status Vlan Duplex Speed Type ----- ------------------ ---------- ---------- ------ ----- ------------ 3/12 to_pix_intf1 connected 41,43 a-full a-100 10/100BaseTX ecomm-6500-2 (enable) sh pvlan map
Port Primary Secondary
---- ------- ---------
3/34 41 42-43
ecomm-6500-2 (enable) sh port 3/34
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ----- ------------
3/34 to_int_router connected 41 a-full a-100 10/100BaseTX
外部L2交 换机的PVLAN配置
sh pvlan
Primary Secondary Secondary-Type Ports
------- --------- ---------------- ------------
41 45 isolated 3/7,3/33
ecomm-6500-1 (enable) sh pvlan mapping
Port Primary Secondary
---- ------- ---------
3/43 41 45
ecomm-6500-1 (enable) sh port 3/7
Port Name Status Vlan Duplex Speed Type
----- ------------ ---------- ------ ----- ------------
3/7 from_vpn connected 41,45 a-half a-10 10/100BaseTX
ecomm-6500-1 (enable) sh port 3/33
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------
3/33 to_pix_intf0 connected 41,45 a-full a-100 10/100BaseTX
ecomm-6500-1 (enable) sh pvlan map
Port Primary Secondary
---- ------- ---------
3/43 41 45
ecomm-6500-1 (enable) sh port 3/43
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------
3/43 to_external_router connected 41 a-half a-10 10/100BaseTX
测试配置
此实验表示,内部路 由器能通过防火墙和到达外部路由器(接口是198.5.6.1)的外部防火 墙路由器。
ping 198.5.6.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 198.5.6.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
此实验显示以下,所有 从服务器1:
-
服务器1能连接内部路 由器:
server_1#ping 172.16.65.193
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.65.193, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms -
服务器1能连接VPN:
server_1#ping 172.16.65.203
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.65.203, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms -
切断1不能ping PIX内部界面:
server_1#ping 172.16.65.201
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.65.201, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5) -
服务器1不能连接外部路由器:
server_1#ping 198.5.6.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 198.5.6.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
以下实验表示,HTTP会话可以从内 部网络被打开对小型服务器站。
server_2#
1w1d: HTTP: parsed uri '/'
1w1d: HTTP: processing URL '/' from host 171.68.173.3
1w1d: HTTP: client version 1.0
1w1d: HTTP: parsed extension Connection
1w1d: HTTP: parsed line Keep-Alive
1w1d: HTTP: parsed extension User-Agent
1w1d: HTTP: parsed line Mozilla/4.7 [en] (X11; I; SunOS 5.5.1 sun4u)
1w1d: HTTP: parsed extension Host
1w1d: HTTP: parsed line 172.16.65.202
1w1d: HTTP: parsed extension Accept
1w1d: HTTP: parsed line image/gif, image/x-xbitmap, image/jpeg, image/
1w1d: HTTP: parsed extension Accept-Encoding
1w1d: HTTP: parsed line gzip
1w1d: HTTP: parsed extension Accept-Language
1w1d: HTTP: parsed line en
1w1d: HTTP: parsed extension Accept-Charset
1w1d: HTTP: parsed line iso-8859-1,*,utf-8
1w1d: HTTP: Authentication for url '/' '/' level 15 privless '/'
1w1d: HTTP: authentication required, no authentication information was provided
1w1d: HTTP: authorization rejected
1w1d: HTTP: parsed uri '/'
1w1d: HTTP: processing URL '/' from host 171.68.173.3
1w1d: HTTP: client version 1.0
1w1d: HTTP: parsed extension Connection
1w1d: HTTP: parsed line Keep-Alive
1w1d: HTTP: parsed extension User-Agent
1w1d: HTTP: parsed line Mozilla/4.7 [en] (X11; I; SunOS 5.5.1 sun4u)
1w1d: HTTP: parsed extension Host
1w1d: HTTP: parsed line 172.16.65.202
1w1d: HTTP: parsed extension Accept
1w1d: HTTP: parsed line image/gif, image/x-xbitmap, image/jpeg, image/
1w1d: HTTP: parsed extension Accept-Encoding
1w1d: HTTP: parsed line gzip
1w1d: HTTP: parsed extension Accept-Language
1w1d: HTTP: parsed line en
1w1d: HTTP: parsed extension Accept-Charset
1w1d: HTTP: parsed line iso-8859-1,*,utf-8
1w1d: HTTP: parsed extension Authorization
1w1d: HTTP: parsed authorization type Basic
1w1d: HTTP: Authentication for url '/' '/' level 15 privless '/'
1w1d: HTTP: Authentication username = 'maurizio' priv-level = 15 auth-type = aaa
1w1d: HTTP: received GET ''
以 下实验表示,HTTP数据流从VPN网络能做其道路通往小型服务器站( 注意地址10.1.1.1)。1w1d: HTTP: parsed uri '/'
1w1d: HTTP: processing URL '/' from host 10.1.1.1
1w1d: HTTP: client version 1.0
1w1d: HTTP: parsed extension Connection
1w1d: HTTP: parsed line Keep-Alive
1w1d: HTTP: parsed extension User-Agent
1w1d: HTTP: parsed line Mozilla/4.76 [en] (Windows NT 5.0; U)
1w1d: HTTP: parsed extension Host
1w1d: HTTP: parsed line 172.16.65.202
1w1d: HTTP: parsed extension Accept
1w1d: HTTP: parsed line image/gif, image/x-xbitmap, image/jpeg, image/
1w1d: HTTP: parsed extension Accept-Encoding
1w1d: HTTP: parsed line gzip
1w1d: HTTP: parsed extension Accept-Language
1w1d: HTTP: parsed line en
1w1d: HTTP: parsed extension Accept-Charset
1w1d: HTTP: parsed line iso-8859-1,*,utf-8
1w1d: HTTP: Authentication for url '/' '/' level 15 privless '/'
1w1d: HTTP: authentication required, no authentication information was provided
下列是VPN集 中器的配置:
[ IP Ethernet 0:0 ]
ipbroadcast = 172.16.65.255
mode = routedSubnetMask = 255.255.255.240
IPAddress = 172.16.65.203
[ General ]
IPsecGateway = 198.5.6.1
DeviceName = "VPN5008"
EnablePassword = "ww"
Password = "ww"
EthernetAddress = 00:30:85:14:5c:40
DeviceType = VPN 5002/8
ConcentratorConfiguredOn = Timeserver not configured
ConfiguredFrom = Command Line, from 171.68.173.3
[ IP Static ]
206.1.1.0 255.255.255.0
198.5.6.1 10.0.0.0
0.0.0.0 172.16.65.193 1
[ IP Ethernet 1:0 ]
ipbroadcast = 172.16.65.255
mode = routedSubnetMask = 255.255.255.0
IPAddress = 198.5.6.203
[ IKE Policy ]
Protecction = MD5_DES_G1
[ VPN Group "RemoteUsers" ]
maxconnections = 10IPNet = 172.16.65.0/24
LocalIPNet = 10.1.1.0/24
Transform = esp(des,md5)
[ VPN Users ]
martin Config="RemoteUsers"
SharedKey="mysecretkey"
maurizio Config="RemoteUsers"
SharedKey="mysecretkey"
以下命令显示用户列 表被联络:
sh VPN user
Port User Group Client Local ConnectNumber
Address Address Time
--------------------------------------------------------------------------------
VPN 0:1 martin RemoteUsers 206.1.1.10 10.1.1.1 00:00:11:40
应该注意它默认网关在 服务器是内部路由器172.16.65.193,将发出icmp重定向到 172.16.65.203。此实施导致非最优数据流,因为主机将寄发 流的第一个信息包到路由器,并且在重定向的接收,将发送后续信 息包到是更加适当处理此数据流的网关。 二者择一地你在服 务器能配置二个不同的路由为了指向VPN为10.x.x.x地址和到 172.16.65.193为数据流的其余。如果仅默认网关在服务器配 置,则我们需要确信,路由器接口用"ip 重定向配置"。
我们注意在测试期间的一个有趣点 是以下一个。如果我们设法 ping 一个外部地址类似 198.5.6.1从服务器或从VPN,默认网关将发送和icmp重定向到 172.16.65.201。
Sending 5, 100-byte ICMP Echos to 198.5.6.1, timeout is 2 seconds:
1w1d: ICMP: redirect rcvd from 172.16.65.193 -- for 198.5.6.1 use gw 172.16.65.201.
1w1d: ICMP: redirect rcvd from 172.16.65.193 -- for 198.5.6.1 use gw 172.16.65.201.
1w1d: ICMP: redirect rcvd from 172.16.65.193 -- for 198.5.6.1 use gw 172.16.65.201.
1w1d: ICMP: redirect rcvd from 172.16.65.193 -- for 198.5.6.1 use gw 172.16.65.201.
1w1d: ICMP: redirect rcvd from 172.16.65.193 -- for 198.5.6.1 use gw 172.16.65.201.
Success rate is 0 percent (0/5)
因为在另一个辅助 VLAN,服务器或VPN 这时将发送地址解析协议(ARP)请求 172.16.65.201 并且从201不得到任何回应; 这是什么 PVLAN 提供我们。实际上有一个简单的方法获得围绕此,是 发送数据流到193 MAC和与目的地IP 172.16.65.201。
路由器193将路由数据流回到同一个 接口,但因为路由器接口是一个混乱端口,数据流将到达201,我们 想防止。此问题在VACLs和 PVLANs 部分的 已知限制 解释了 。
VACL配置
此部分是关键改进安 全在小型服务器站。如所描述在VACLs 和PVLANs 部分的已知限制 ,即使服务器和PIX属于二个不同的辅助VLAN,仍然有 攻击者能使用做他们彼此传达的一个方法。如果他们设法直 接地沟通,他们不会能执行它由于PVLANs。如果攻陷入侵者 然后配置服务器在这种情况下数据流为相同子网被发送到路由器, 这一个在相同子网将路由数据流因而阻挠目的对于PVLANs 。
所以,VACL在运载数据流从路由器) 的主VLAN (VLAN需要配置用以下制度:
-
允许来源IP是路由器的IP的数据流
-
否决数据流带有两个包括源和目的地IPs是小型服务 器站的子网
-
允许数据流的所有其余
ecomm-6500-2 (enable) sh sec acl info protect_pvlan
set security acl ip protect_pvlan
---------------------------------------------------
1. permit ip host 172.16.65.193 any
2. deny ip 172.16.65.192 0.0.0.15 172.16.65.192 0.0.0.15
3. permit ip any any
ecomm-6500-2 (enable) sh sec acl
ACL Type VLANS
-------------------------------- ---- -----
protect_pvlan IP 41
此ACL不会影响PIX生成的由服务器 亦不数据流; 它只将防止路由器路由来自服务器的数据流回 到同样VLAN。前二个语句允许路由器发送消息类似icmp重定 向或icmp不可得到到服务器。
我们 识别管理员也许希望路过VACLs 平均值的另一数据流,并且此流是 从内部网络到VPN主机。为了执行如此,VACL可以被映射对主 VLAN (41)和与早先一个被结合:
show sec acl info all
set security acl ip protect_pvlan
1. deny ip any 10.1.1.0 0.0.0.255
2. permit ip host 172.16.65.193 any
3. deny ip 172.16.65.192 0.0.0.15 172.16.65.192 0.0.0.15
4. permit ip any any
测试配置
我们现在 ping 10.1.1.1主机从路由器193 (zundapp)。在我们映射 VACL之前, ping 是成 功的。
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms
在映射VACL以后在VLAN 41, 同一 ping 不会成功:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
然而,我们能仍然 连接 外部路由器:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 198.5.6.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 100/171/192 ms