思科ACL详解

来源:互联网 发布:php常用的字符串函数 编辑:程序博客网 时间:2024/05/18 21:42

 

 
基本原则: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 evaluatecisco        
                    创建进来数据的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关键字,另外需要配置设备的日志语句及日志服务器,在此不做说明。

0 0