思科ACL详解

基本原则:
1、按顺序执行,只要有一条满足,则不会继续查找
2、隐含拒绝,如果都不匹配,那么一定匹配最后的隐含拒绝条目,思科默认的
3、任何条件下只给用户能满足他们需求的最小权限
4、不要忘记把ACL应用到端口上

一、标准ACL
命令:access-list {1-99} {permit/deny} source-ip source-wildcard [log]   
例:
access-list 1 penmit 192.168.2.0 0.0.0.255      允许192.168.2.0网段的访问          
access-list 1 deny 192.168.1.0 0.0.0.255         拒绝192.168.1.0网段的访问   
说明:
wildcard为反掩码,
host表示特定主机等同于192.168.2.3 0.0.0.0;
any表示所有的源或目标等同于0.0.0.0 255.255.255.255 ;
log表示有匹配时生成日志信息;
标准ACL一般用在离目的最近的地方

二、扩展ACL 
命令:access-list {100-199} {permit/deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established][log]   
例:
access-list 101 permit tcp 192.168.2.0 0.0.0.255 gt 1023 host 192.168.1.2 eq 80
允许192.168.2.0网段的主机访问主机192.168.1.2的web服务          
access-list 101 permit udp 192.168.2.0 0.0.0.255 gt 1023 any eq 53
允许192.168.2.0网段的主机访问外网以做dns查询   
说明:
gt 1023表示所有大于1023的端口,这是因为一般访问web、ftp等服务器时客户端的主机是使用一个1023以上的随机端口;established 表示允许一个已经建立的连接的流量,也就是数据包的ACK位已设置的包。

注:protocol是根据你允许用户使用相应通信的协议来确定的,如上面中WEB是TCP协议,DNS用UDP协议

三、命名ACL    
命令:
ip access-list {standard/extended} name
{ permit /deny} source-ip source-wildcard            标准
{ permit /deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established][log]                         扩展   
例:
ip access-list extended outbound
定义一个名为outbound的命名ACL          
permit tcp 192.168.2.0 0.0.0.255 gt 1023 host 192.168.1.2 eq 80
允许192.168.2.0网段的主机访问主机192.168.1.2的web服务
优点:可以删除/修改其中一条ACL,而不必删除整个ACL
       ip access-list extend server- protect
     no permit tcp 10.0.0.0 0.0.255.255 host 10.1.2.21 eq 1521
     permit tcp 10.1.0.0 0.0.0.255 host 10.1.2.21 eq 1521
     exit

四、自反ACL
基本思想:内网可以访问外网,但外网没有允许不能访问内网,内网访问外网的回应数据可以通过   
例:
一、ip access-list extended outbound permit tcp any any reflect cisco
创建出去数据的ACL,tcp的流量可以进来,但要在有内部tcp流量出去时动态创建
二、 ip access-list extended inbound permit icmp any any evaluate cisco                           
创建进来数据的ACL,允许基于ICMP的数据如echo-request,允许出去的ACL中的有cisco对应语句的TCP流量进来           
三、 int s1/0      s1/0为路由器的接外网的端口                
ip access-group outbound out               
ip access-group inbound in说明:reflect和evalute后面的对应名应该相同,此例中为cisco

五、基于时间ACL
  要求:要求在上班时间内(9:00-18:00)禁止内部员工浏览internet,禁止使用QQ、MSN。而且在2003年6月1号到2号的所有时间内都不允许进行上述操作。但在任何时间都可以允许以其它方式访问Internet。
  分析:浏览internet现在基本上都是使用http或https进行访问,标准端口是TCP/80端口和TCP/443,MSN使用TCP/1863端口,QQ登录会使用到TCP/UDP8000这两个端口,还有可能使用到udp/4000进行通讯。而且这些软件都能支持代理服务器,目前的代理服务器主要布署在TCP 8080、TCP 3128(HTTP代理)和TCP1080(socks)这三个端口上。由于是对访问Internet进行控制,ACL就放到公司的Internet出口处。

  应用    协议    源地址   源端口   目的地址   目的端口   操作
   IE       TCP   10.1/16   所有    所有      80    限制访问
   IE       TCP   10.1/16   所有    所有      443        限制访问
    MSN    TCP    10.1/16   所有    所有     1863     限制访问
     QQ    TCP    10.1/16   所有    所有     8000      限制访问
        UDP   TCP    10.1/16   所有    所有         8000     限制访问
        UDP   TCP    10.1/16   所有    所有        4000     限制访问
   HTTP代理    TCP          10.1/16           所有          所有                8080       限制访问
   HTTP代理    TCP          10.1/16            所有         所有                  3128       限制访问
     Socks        TCP        10.1/16           所有          所有                1080         限制访问
    All other       IP          10.1/16           N/A          所有                 N/A          允许访问


     time-range TR1

  absolute start 00:00 1 June 2003 end 00:00 3 June 2003

  periodic weekdays start 9:00 18:00

  exit

  ip access-list extend internet_limit

  deny tcp 10.1.0.0 0.0.255.255 any eq 80 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 443 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 1863 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

  deny udp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

  deny udp 10.1.0.0 0.0.255.255 any eq 4000 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 3128 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 8080 time-range TR1

  deny tcp 10.1.0.0 0.0.255.255 any eq 1080 time-range TR1

  permit ip any any

  int s0/0

  ip access-group internet_limit out

  或int fa0/0

  ip access-group internet_limit in

  或者将ACL配置在SWA上,并

  int vlan 3

  ip access-group internet_limit out

  呵呵,现在让我们来看看在基于时间的访问列表中都有哪些新内容吧:

  time-range TR1:定义一个新的时间范围,其中的TR1是为该时间范围取的一个名字。

  absolute:为绝对时间。只使用一次。可以定义为1993-2035年内的任意一个时点。具体的用法请使用?命令查看。

Periodic:为周期性重复使用的时间范围的定义。完整格式为periodic 日期关键字 开始时间 结束时间。其中日期关键字的定义如下所示:

  Monday 星期一

  Tuesday 星期二

  Wednesday 星期三

  Thursday 星期四

  Friday 星期五

  Saturday 星期六

  Sunday 星期天

  daily 每天

  weekdays 周一至五

  weekend 周末

  access-list 101 deny ip 10.1.0.0 0.0.255.255 any time-range TR1:注意这一句最后的time-range TR1,使这条ACL语句与time-range TR1相关联,表明这条语句在time-range TR1所定义的时间范围内才起作用。

  注意:给出三种配置位置是帮助大家深刻理解关于in/out的区别的。
----------------------------------------------------------------------------------------------------------------

实例1:
  防止用户TELNET登录到设备,但允许管理员登录,管理设备在vlan1(192.168.1.0/24)中,管理员 IP:192.168.1.66
  access-list 1 permit host 192.168.1.66
  line vty 0 4(部分设备是15)
  access-class 1 in
说明:telnet都是访问的设备上的line vty,在line vty下面使用access-class与ACL组进行关联,in关键字表示控制进入的连接。

实例2:
  如何查看ACL都过滤了哪些流量?
  在需要记录的acl条目的最后加一个log关键字,另外需要配置设备的日志语句及日志服务器,在此不做说明。

 

posted @ 2009-09-15 16:20  jone_linux  阅读(2711)  评论(0编辑  收藏  举报