天天看点

应用访问控制列表ACL实现网络单向访问

所谓单向访问,就是一部分网络主机可以访问另一部分网络主机,而反过来则不允许访问。对于单向访问不能简单的通过访问控制列表ACL中的deny语句来实现,deny语句可以实现A、B主机间访问数据流的彻底阻断,但是无法实现单向访问。因为如果deny掉A主机到B主机的访问,那么B主机也就不能访问A主机了(因为B主机到A主机的访问数据虽然能到达A主机,但是A主机的回复数据流被ACL访问控制列表规则阻断了)。

那么怎么实现单向访问呢?答案是利用permit语句。方法就是利用permit语句让B主机访问A主机的同时允许A主机的响应数据流通过(要在permit语句中使用established参数),但是不允许由A主机发起的到B主机的访问通过,这样就可以实现B主机向A主机的单向访问。

扩展的单向访问控制列表ACL的基本配置命令如下:

Router(config)#access-list access-list-number {permit|deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] [established] [log]

参数解释:

access-list-number 扩展的访问控制列表ACL的编号,比如100

permit|deny 允许或不允许通过

protocol 协议类型,比如 TCP IP UDP .

soure 源地址

destination 目标地址

established 已建立的连接

established参数可以在拒绝数据流通过的方向上,让已建立的连接的TCP数据流通过(比如ACK确认包),我们正是利用这一点来实现单向访问,将一个普通的扩展访问列表ACL转变成一个允许单向访问的控制列表ACL。

在路由器接口上应用扩展的访问控制列表ACL的配置命令如下:

Router(config)#ip access-group access-list-number in (一般都是进方向)

下边我们用一个ACL实例来看一下具体的实现单向访问的方法:

网络环境假定:

A部门网段:路由 S0:192.168.0.1 E0:10.98.0.1

B部门网段:路由 S0:192.168.0.2 E0:10.98.1.1

主机A、 B分别属于两个部门

主要配置如下:

A路由配置:

!

interface eth0

ip add 10.98.0.1 255.255.0.0

interface s0

ip add 192.168.0.1 255.255.255.0

<b>ip access-group 100 in</b>

ip route 10.98.1.0 255.255.0.0 s0

<b>access-list 100 permit tcp any host 10.98.0.1 established log</b><b></b>

<b>(</b><b>这条命令允许10.98.0.1建立的连接回送数据)</b>

<b>access-list 100 deny ip any any log</b>

B路由配置:

ip add 10.98.1.1 255.255.0.0

inter s0

ip add 192.168.0.2 255.255.255.0

ip route 10.98.0.1 255.255.0.0 s0

通过访问控制列表ACL的限制实现了B部门到A部门之间单项访问,部门A可以访问部门B的网络主机或服务器,而B部门的主机无法访问到A部门的主机。

本文转自 沐小七  51CTO博客,原文链接:http://blog.51cto.com/3088522/1031959

继续阅读