ACL要点讲解
这里只对一点访问控制列表的知识小小总结一下,真正要明白还是要通过仔细钻研书本,动手做试验才能更好的掌握。
重要细节部分也由于时间关系说得不清楚,谅解谅解!
◆标准IP访问控制列表
一个标准IP访问控制列表匹配IP包中的源地址或源地址中的一部分,可对匹配的包采取拒绝或允许两个操作。编号范围是从1到99的访问控制列表是标准IP访问控制列表。
◆扩展IP访问控制列表
扩展IP访问控制列表比标准IP访问控制列表具有更多的匹配项,包括协议类型、源地址、目的地址、源端口、目的端口、建立连接的和IP优先级等。编号范围是从100到199的访问控制列表是扩展IP访问控制列表。
◆命名的IP访问控制列表
所谓命名的IP访问控制列表是以列表名代替列表编号来定义IP访问控制列表,同样包括标准和扩展两种列表,定义过滤的语句与编号方式中相似。
 附<◆标准IPX访问控制列表
   标准IPX访问控制列表的编号范围是800-899,它检查IPX源网络号和目的网络号,同样可以检查源地址   和目的地址的节点号部分。
   ◆扩展IPX访问控制列表
   扩展IPX访问控制列表在标准IPX访问控制列表的基础上,增加了对IPX报头中以下几个宇段的检查,它   们是协议类型、源Socket、目标Socket。扩展IPX访问控制列表的编号范围是900-999。
   ◆命名的IPX访问控制列表
   与命名的IP访问控制列表一样,命名的IPX访问控制列表是使用列表名取代列表编号。从而方便定义和   引用列表,同样有标准和扩展之分。>
***进方向的工作流程
进入接口的数据包——进方向的访问控制列表——判断
是否匹配——不匹配,丢弃,匹配,进入路由表——判断是否有相应的路由条目——无,丢弃,有从相应接口转发出去
出口方向的工作流程
进入接口数据包——进入路由表,判断是否是相应的路由条目——无,丢弃,有,数据包往相应接口——判断出口是否有访问控制列表——无,数据被转发,有,判断条件是否匹配——不匹配,丢弃,匹配,转发。
比较看,尽可能使用进方向的访问控制列表,但是使用哪个方向的应根据实际情况来定。
扩展访问控制列表
扩展访问控制列表所依据的判断条件是目标、源ip地址、协议及数据所要访问的端口。由此可得出,在判断条件上,扩展访问控制列表具有比标准的访问控制列表更加灵活的优势,能够完成很多标准访问不能完成的工作
cisco ios 软件11.2版本中引入了IP命名ACL,其允许在标准和扩展访问控制列表中使用名字代替数字来表示ACL编号
注:established 是可选项,只针对于tcp 协议
还有vty的限制,其ACL的建立与在端口上建立ACL一样,只是应用在vty ACL 到虚拟连接时,用命令access-class 代替命令access-group
放置ACL
一般原则:尽可能把扩展acl 放置在距离要被拒绝的通信流量近的地方。标准ACL由于不能指定目的地址,所以它们应该尽可能放置在距离目的地最近的地主。
命令后面加上log-input是为了显示监视数据报文被过滤的情况,接下来用debug ip packet detailed来监视报文经过R1的情况,应该路由器还有OSPF报文产生,因此我们对DEBUG信息做了限制.
***传统的ACL分三大类:标准ACL/扩展ACL/命名ACL。这里对其做简单的回顾:ACL的作用:1.限制网络流   量2.进行流量控制3.安全写在前面:
***子网掩码与通配符掩码的区别通配符: 与0 匹配,与1忽略通配符掩码与IP是成对出现的,类似于子网   与IP地址对,在通配符掩码的地址位使用1或0,表明如何处理相应的IP地址位,是忽略还是检查。而   在IP子网中,1和0用来决定是网络还是子网,还是相应的主机IP。
   host 10.1.6.66/any:匹配条件,等同于10.1.6.66 0.0.0.0。刚才说过,标准的ACL只限制源地址。   Host 10.1.6.66(10.1.6.66 0.0.0.0)的意思是只匹配源地址为10.1.6.66的包。0.0.0.0是wildcards   ,某位的wildcards为0表示IP地址的对应位必须符合,为1表示IP地址的对应位不管是什么都行。简单   点说,就是255.255.255.255减去子网掩码后的值,0.0.0.0的wildcards就是意味着IP地址必须符合   10.1.6.66,可以简称为host 10.1.6.66。any表示匹配所有地址。
   注意:IOS中的ACL均使用wildcards,并且会用wildcards对IP地址进行严格的对齐,如你输入一条   access-list 1 permit 10.1.1.129 0.0.0.31,在你show access-list看时,会变成access-list 1    permit 10.1.1.128 0.0.0.31,PIXOS中的ACL均使用subnet masks,并且不会进行对齐操作。
***命名访问列表可以包含数字和字母,但其不可以包含空格及标点符号,而且第一个字符要是字母。
***ACL的执行顺序是从上往下执行,一个包只要遇到一条匹配的ACL语句后就会停止后续语句的执行
***acl是对从一个接口上流入(in)或流出(out)路由器的包进行过滤的。

--对网络设备自身的访问如何进行控制的技术
    access-list 1 permit host 10.1.6.66
  line vty 0 4(部分设备是15)
  access-class 1 in
  这样就行了,telnet都是访问的设备上的line vty,在line vty下面使用access-class与ACL组进行关联,in关键字表示控制进入的连接。
--命名的IP acl提供的两个主要优点是:
  解决ACL号码不足的问题。
  可以自由的删除ACL中的一条语句,而不必删除整个ACL。(原本需要先取消端口的规则应用,再用no+整个列表)
  命名的ACL的主要不足之处在于无法实现在任意位置加入新的ACL条目。
其实基于名字的IP ACL还有一个很好的优点就是可以为每个ACL取一个有意义的名字,便于日后的管理与维护
基本格式:ip access-list [standard/extend] access-list-name
          [deny/permit]+规则(可以是标准的,也可以是扩展的)
--单向访问控制
  使用IP ACL实现单向访问控制
让我们回忆一下,在两台主机A与B之间要实现通讯,需要些什么条件呢?答案是既需要A能向B发包,也需要B能向A发包,任何一个方向的包被阻断,通讯都不能成功。普通的ACL均不具备检测会话状态的能力
--反向ACL格式很简单,只要在配好的扩展列表最后加上established (只用于TCP,只允许被动连接会话)
--现在对反向ACL新增加的内容一一解释如下:
  新增了一个ACL(fi-main)并应用在具备访问权限的接口下(财务部所在的vlan4)的in方向,使用该acl中具备reflect关键字的acl条目来捕捉建立反向ACL条目所需要的信息。我们将该ACL称为主ACL。
  reflect r-main timeout xxx:其中的reflect关键字表明该条目可以用于捕捉建立反向的ACL条目所需要的信息。r-main是reflect组的名字,具备相同reflect组名字的所有的ACL条目为一个reflect组。timeout xxx表明由这条ACL条目所建立起来的反向ACL条目在没有流量的情况下,多长时间后会消失(缺省值为300秒),单位为秒。
  evaluate r-main:我们注意到在fi-access-limit(我们把它称为反ACL)增加了这样一句,这一句的意思是有符合r-main这个reflect组中所定义的acl条目的流量发生时,在evaluate语句所在的当前位置动态生成一条反向的permit语句。
  反向ACL的局限性:必须使用命名的ACL,其实这不能叫局限性,应该算注意事项吧;
                   对多通道应用程序如h323之类无法提供支持。

PS:浏览internet现在基本上都是使用http或https进行访问,标准端口是TCP/80端口和TCP/443,MSN使用TCP/1863端口,QQ登录会使用到TCP/UDP8000这两个端口,还有可能使用到udp/4000进行通讯。而且这些软件都能支持代理服务器,目前的代理服务器主要布署在TCP 8080、TCP 3128(HTTP代理)和TCP1080(socks)这三个端口上 
在如下文件中可以找到大多数应用的端口的定义:
  Win9x:%windir%\services
  WinNT/2000/XP:%windir%\system32\drivers\etc\services
  Linux:/etc/services
 对于在services文件中找不到端口的应用,可以在运行程序的前后,运行netstat –ap来找出应用所使用的端口号。