实验拓扑如下:
单向访问一般是采用自反ACL实现的——(Reflexive ACL)是一种用于动态管理流量的访问控制列表,它允许流量从内部网络发起,而返回的流量则被自动允许。自反ACL通常用于提高网络安全性,同时允许有效的会话管理。
工作原理:
-
流量的初始发起:
-
当内部主机发起连接(例如,访问外部服务器),自反ACL会首先检查出站流量。
-
出站流量会根据ACL规则进行评估,如果符合允许规则,流量会被允许通过。
-
-
记录状态:
-
自反ACL会动态地记录这次连接的状态信息,包括源IP、目标IP、源端口和目标端口等信息。
-
这通常通过创建临时的“会话”条目来实现。
-
-
允许返回流量:
-
当外部服务器尝试响应该连接时,返回流量会根据之前记录的会话信息进行检查。
-
自反ACL会允许这些返回流量,而不需要再进行静态配置。
-
-
会话过期:
-
如果在一定时间内没有流量进行活动,记录的会话条目会过期,从而不再允许返回流量。
-
优势
-
动态性: 自反ACL可以动态管理流量,而无需为每个可能的返回流量手动添加规则。
-
安全性: 它提高了网络的安全性,因为只允许已建立的会话的返回流量,防止未授权的流量。
实验环境搭建准备与说明:
内网路由器R1的loopback口可以访问外网的203.0.113.3,反向则不允许,使用telnet测试。因为ACL设置的单项反问是基于TCP和UDP的而没有允许ICMP等协议。
路由器R1的基础配置:
Building configuration...
hostname R1
enable password cisc0123
username cisco password 0 cisc0123
interface Loopback1
ip address 10.1.1.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
interface Ethernet0/0
ip address 10.1.12.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
router ospf 1
router-id 1.1.1.1
line vty 0 4
password cisc0123
login local
transport input telnet
路由器R2的基础配置:
Building configuration...
Current configuration : 1186 bytes
!
hostname R2
interface Ethernet0/0
ip address 10.1.12.2 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
interface Ethernet0/1
ip address 198.51.100.66 255.255.255.252
router ospf 1
router-id 2.2.2.2
default-information originate metric 100
!
ip route 0.0.0.0 0.0.0.0 198.51.100.65
路由器R3的基础配置:
Building configuration...
Current configuration : 1220 bytes
!
hostname R3
username cisco secret 5 $1$FiFI$ifpOrnDTWZLNTIkWDGF1s.
interface Loopback1
ip address 203.0.113.3 255.255.255.255
!
interface Ethernet0/0
ip address 198.51.100.65 255.255.255.252
ip route 0.0.0.0 0.0.0.0 198.51.100.66
line vty 0 4
login local
transport input telnet
现阶段,配置单向访问前准备已完成。全网互通,由于简化模型则没有设置NAT选项。外网只是配了一条默认路由的回包;为了配合测试单向访问则开启了telnet服务。在运营商申请固定IP地址时,运营商只给一个/30的地址和下一跳IP地址以及DNS地址。具体运营商给客户的路由是如何配置的有了解细节的希望回复一下。
以下开始实施单向访问——在网关设备R2的核心配置:
//LAN Connection to WAN Outside(定义一个本身具有注释的名字很有意义)->LC2W-O
//One-way Access(accessing a network unilaterally-单向反问一个网络)->OWA
ip access-list extended LC2W-O
permit tcp any any reflect OWA timeout 300
permit udp any any reflect OWA timeout 300
ip access-list extended WC2L-I
evaluate OWA
interface Ethernet0/1
ip access-group LC2W-O out
ip access-group WC2L-I in
测试一下:
如果想换个方向做单向访问,去R2的E0/1上把LC2W-O的方向变成in;把WC2L-I变成out即可。
PS:但实际应用是不会有人使用互联网单向访问某个内网的;不过换个思路,两个独立的自主的网络,设置某一方可以单向访问另一方是可行的。
技术要点:
-
自反ACL永远设置为permit;
-
自反ACL允许高层Session信息的数据包过滤;
-
利用自反ACL可以只允许出去的流量,但是阻止从外网产生的流量发往内网;
-
自反ACL是在有流量产生时(如出方向的流量)临时自动产生,并且当Session结束时将清除条目;
-
自反ACL不是直接被应用到某个接口下,而是嵌套在一个扩展命名ACL下。
以上输出可以看到自反ACL当有内部到外部Telnet流量经过时临时产生一条ACL;反过来在外网Telnet进入内网时不会自动产生一条ACL,不能访问。