ACL装备技能详解
“说那么多废话做什么,从速开端进行装备吧。”,A公司的网管说。呵呵,并不是我想说那么多废话,由于了解这些根底的概念与简略的原理对后续的装备和排错都是适当有用的。说说看,你的第一个需求是什么。
“做为一个网管,我不期望普通用户能telnet到网络设备”――ACL根底
“弥补一点,要求可以从我现在的机器(研制VLAN的10.1.6.66)上telnet到网络设备上去。”。hamm,是个不错的主见,谁都不期望有人在自己的花园中撤野。让咱们剖析一下,在A公司的网络中,除出口路由器外,其它一切的网络设备段的是放在Vlan1中,那个我只需求在到VLAN 1的路由器接口上装备只答应源地址为10.1.6.66的包通过,其它的包通通过滤掉。这中只管源IP地址的ACL就叫做
规范IP ACL:
咱们在SWA上进行如下的装备:
access-list 1 permit host 10.1.6.66
access-list 1 deny any
int vlan 1
ip access-group 1 out
这几条指令中的相应关键字的含义如下:
access-list:装备均ACL的关键字,一切的ACL均运用这个指令进行装备。
access-list后边的1:ACL号,ACL号相同的一切ACL构成一个组。在判别一个包时,运用同一组中的条目从上到下逐个进行判别,一遇到满意的条目就停止对该包的判别。1-99为规范的IP ACL号,规范IP ACL由于只读取IP包头的源地址部分,耗费资源少。
permit/deny:操作。Permit是答应通过,deny是丢掉包。
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,并且不会进行对齐操作。更为详细的关于IP V4地址的材料可以拜见拙著《IP v4根底知识》http://www.ultratechnology.net/showarticle.php?s=articleid=60 一文
int vlan1///ip access-group 1 out:这两句将access-list 1运用到vlan1接口的out方向。其间1是ACL号,和相应的ACL进行相关。Out是对路由器该接口上哪个方向的包进行过滤,可以有in和out两种挑选。
留意:这儿的in/out都是站在路由器或三层模块(今后简称R)上看的,in表明从该接口进入R的包,out表明从该接口出去的包。
好了,这便是一个最基本的ACL的装备方法。什么,你说普通用户还能telnet到RTA?那你在int vlan3上现加一个ip access-group 1 out吧。Hammmm,等等,你这样加上去普通用户就拜访不了internet了。让咱们把方才的ACL去掉,从头写一个。
回想一下,咱们的意图是除了10.1.6.66可以进行telnet操作外,其它用户都不答应进行telnet操作。方才咱们说过,规范的IP ACL只能操控源IP地址,不能操控到端口。要操控到第四层的端口,就需求运用到:
扩展的IP ACL的装备
先看看装备实例吧。在SWA上进行如下装备:
int vlan 1
no ip access-group 1 out
exit
no access-list 1
access-list 101 permit tcp host 10.1.6.66 any eq telnet
access-list 101 deny tcp any any eq telnet
int vlan 1
ip access-group 101 out
int vlan 3
ip access-group 101 out
你应该留意到到这儿的ACL有一些改变了,现在对改变的部分做一些阐明:
access-list 101:留意这儿的101,和方才的规范ACL中的1相同,101是ACL号,表明这是一个扩展的IP ACL。扩展的IP ACL号规模是100-199,扩展的IP ACL可以操控源IP、意图IP、源端口、意图端口等,能完成适当精密的操控,扩展ACL不只读取IP包头的源地址/意图地址,还要读取第四层包头中的源端口和意图端口,的IP在没有硬件ACL加快情况下,会耗费许多的CPU资源。
int vlan 1///no ip access-group 1 out///exit///no access-list 1:撤销access-list 1,关于非命名的ACL,可以只需求这一句就可以悉数撤销。留意,在撤销或修正一个ACL前,有必要先在它所运用的接口上先把运用给no掉,否则会导致适当严重的结果。
tcp host 10.1.6.66 any eq telnet:匹配条件。完好格局为:协议 源地址 源wildcards [联系] [源端口] 意图地址 意图wildcards [联系] [意图端口]。其间协议可以是IP、TCP、UDP、EIGRP等,[]内为可选字段。仅在协议为tcp/udp等具有端口号的协议才有用。联系可以是eq(等于)、neq(不等于)、lt(大于)、range(规模)等。端口一般为数字的1-65535,关于周知端口,如23(服务名为telnet)等可以用服务名替代。源端口和意图端口不界说时表明一切端口。
把这个ACL运用上去后,用户们开端打电话来骂娘了,由于他们都拜访不了Internet了,是哪里出了问题了呢?
留意:一切的ACL,缺省情况下,从安全视点考虑,最终都会隐含一句deny any(规范ACL)或deny ip any any(扩展IP ACL)。所以在不了解事务会运用到哪些端口的情况下,最好在ACL的最终加上一句permit ip any any,在这儿便是access-list 101 permit ip any any。
现在用户却是可以拜访Internet了,但咱们的不幸的网管却发现普通用户仍是可以telnet到他的SWA上面,由于SWA上面有许多个网络接口,并且运用扩展的ACL会耗费许多的资源。有什么简略的方法可以操控用户对网络设备的Telnet拜访,而又不耗费太多的资源呢?这就需求运用到:
对网络设备本身的拜访怎么进行操控的技能
让咱们先把方才装备的ACL都取掉(详细装备略,否则后读者会认为我在骗稿费了。),再在每台网络设备上均进行如下装备:
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关键字表明操控进入的衔接。
就这么简略?wk,你丫是不是在玩咱们,为什么还要绕一大圈?臭鸡蛋和烂西红柿开端在70的脑袋上方狂飞。(5555555,偶也仅仅想向咱们把ACL的根底知识讲的理解一些的嘛)。通过方才的装备,咱们可以理出一个简略的ACL装备过程了:
u 剖析需求,找清楚需求中要维护什么或操控什么;为便利装备,最好能以表格方式列出。在本文的后边会举例的。
u 剖析契合条件的数据流的途径,寻觅一个最适合进行操控的方位;
u 书写ACL,并将ACL运用到接口上;
u 测验并修正ACL。
当A公司的领导知道在网管可以操控普通用户对网络设备的拜访后,咱们的不幸的网管就收到了许多看起来很难的要求。领导要求网管: