资源描述
安全
Cisco IOS 访问控制列表号码
访问控制列表号码 描 述
1~99 IP标准访问控制列表
100~199 IP扩展访问控制列表
200~299 协议类型代码访问控制列表
300~399 DECnet访问控制列表
400~499 XNS标准访问控制列表
6
500~599 XNS扩展访问控制列表
600~699 AppleTalk访问控制列表
700~799 48比特MAC地址访问控制列表
800~899 IPX标准访问控制列表
900~999 IPX扩展访问控制列表
1000~1099 IPS SAP 访问控制列表
1100~1199 扩展48比特MAC地址访问控制列表
1200~1299 IPX汇总地址访问控制列表
1300~1999 IP标准访问控制列表(扩充范围)
2000~2699 IP扩展访问控制列表(扩充范围)
标准访问控制列表
RTA(config)#access-list access-list-number {permit|deny} source
[source-wildcard] [log]
扩展访问控制列表
RTA(config)#access-list access-list-number {permit|deny}protocol source
source-wildcard destination destination-wildcard [precedence
precedence][tos tos]established [log][time-range time-range-name]
由名字索引的访问控制列表句法(11.2版本前不支持)
标准
1.RTA(config)#ip access-list standard name //用名字定义
2.RTA(config-std-nacl)#permit|deny {source [source-wildcard]|any}[log]//指
定一个或多个允许或拒绝条件
3.RTA(config-std-nacl)#exit //退出
扩展(实例)
RTA(config)#ip access-list extended WEBONLY
RTA(config-ext-nacl)#permit tcp any 10.0.0.0 0.255.255.255 eq 80
RTA(config-ext-nacl)#deny ip any 10.0.0.0 0.255.255.255
RTA(config-ext-nacl)#permit ip any any
RTA(config-ext-nacl)#^Z
可以通过show access-lists 查看
基于时间的扩展访问控制列表(12.0.1(T)开始支持)
RTA(config)#time-range NO-HTTP
RTA(config-time-range)#periodic weekdays 8:00 to 18:00
RTA(config-time-range)#exit
RTA(config)#time-range UDP-YES
RTA(config-time-range)#periodic weekend 12:00 to 20:00
RTA(config-time-range)#exit
RTA(config)#ip access-list extended STRICT
RTA(config-ext-nacl)#deny tcp any any eq http time-range NO-HTTP
RTA(config-ext-nacl)#permit udp any any time-range UDP-YES
7
RTA(config-ext-nacl)#deny udp any any range netbios-ns netbios-ss
RTA(config-ext-nacl)#permit ip any any
可以使用remark 命令来描述访问控制列表(12.0.2之后)
应用访问控制列表到接口
RTA(config-if)#ip access-group access-list-number|access-list-name in|out
对路由器的VTY 线路施加访问控制列表
RTA(config)#access-list 5 permit 200.100.50.0 0.0.0.255
RTA(config)#access-list 5 permit 192.168.1.1
RTA(config)#line vty 0 4
RTA(config-line)#access-class 5 in
对路由器WEB端口施加访问控制列表
RTA(config)#access-list 17 permit 202.206.100.0 0.0.0.255
RTA(config)#ip http server
RTA(config)#ip http access-class 17
动态访问控制列表:LOCK-and-KEY
lock-and-key 使指定用户能获得对受保护资源的临时访问权
操作步骤:
1. 用户向一台配置了lock-and-key特性的防火墙路由器发起一个Telnet 会话。
2. Cisco 收到Telnet数据包,打开一个Telnet会话,提示输入密码认证
3. 用户通过防火墙中的临时通道交换数据
4. 当达到一个预先配置好的超时限制后,或管理员手工清除后,IOS将删除该临时性
访问控制列表条目。
RTA(config)#access-list access-list-number dynamic dynamic-name[timeout
minutes]{deny|permit}protocol source-address source-wildcard
destination-address destination-wildcard
配置一个动态访问控制列表
RTA(config)#access-list 101 permit tcp any host 192.168.1.1 eq telnet
RTA(config)#access-list 101 dynamic UNLOCK timeout 120 permit ip any any
RTA(config)#int s0
RTA(config)#ip access-group 101 in
Lock-and-Key 需要用到认证,因此需要配置一台安全服务器
其中TACACS+通过TCP 提供认证、授权和审计服务,而RADIUS 使用不太可靠的UDP 协
议
RTA(config)#tacacs-server host 10.0.0.2
RTA(config)#tacacs-server host itsasecret
RTA(config)#aaa new-model
RTA(config)#aaa authentication login default tacacs+ enable
8
配置路由器用本地数据库来认证VTY 用户
RTA(config)#username ernie password bert
RTA(config)#line vty 0 4
RTA(config)#login local
配置LOCK-AND-KEY 特性的最后步骤是在动态访问控制列表中创建一个临时性的访问控制
列表条目:RTA#access-enable [host][time-out minutes]
使用HOST关键字将只为用户所用的单个IP 地址源创建。
为了设置LOCK-AND-KEY特性,我们可以配置VTY 线路让路由器自动发布“access-enable”
命令然后切断用户的TELNET 会话。
RTA(config)#line vty 0 4
RTA(config-line)#autocommand access-enable host timeout 20
使用带“established”参数的扩展访问控制列表
六个TCP 代码比特:URG(Urgent,紧急)、ACK(Acknowledgement,确认)、PSH(Push,
推送)、RST(Reset,复位)、SYN(Synchronization,同步)和FIN(Finish,结束)
三次握手过程所发送的第一个数据包的SYN比特被设置为1,ACK比特和RST比特被设置
为0,从第二个数据包起,会话流中所有包的TCP 头标中的ACK或RST 比特都被设置为1,
因此被邀请进入网络的数据流总会有其中一个比特被设置为1,这种数据流被认为是已建立
(established)会话的一部分。使用Cisco IOS我们可以配置一个扩展访问控制列表根据数
据包是否是一个已建立连接的一部分来匹配它。
RTA(config)#access-list 101 permit tcp any 192.168.1.0 0.0.0.255 established
RTA(config)#access-list 101 permit icmp any any
RTA(config)#access-list 101 deny ip any 192.168.1.0 0.0.0.255
RTA(config)#access-list 101 permit ip any any
Established 参数仅限于TCP 数据流
自反访问控制列表(Reflexive access list)
我们可以利用自反访问控制列来允许发自网络内部会话的IP数据流,而拒绝发自网络外部
会话的IP 数据流,因此它可以防止大多数地址欺骗攻击和拒绝服务攻击
自反访问控制列表工作原理
只含临时性条目,没有“拒绝一切”语句
临时性条目的特点:
1.总是允许语句;
2.指定与最初的外出数据包相同的协议(TCP);
3.指定与最初外出数据包相同的源地址和目的地址,但这两个地址的位置被互换;
4.指定与最初外出数据包相同的源和目的端口号码(对TCP/UDP),但这两个地址的位置被
互换;
5.对于不含端口号码的协议,如ICMP 和IGMP,它会指定其他准则;
6.入数据流将根据自反条目被评判,直到该条目过期被删除;
9
7.在会话最后一个数据包通过接口后,该条目过期;
8.如果在一个可配置的时间长度(超时限制)中没有属于该会话的数据包被检测到,该条
目就会过期。
如果应用程序使用变化端口,则自反访问控制列表不能运用。如FTP,发起FTP 会话时通
常用TCP 端口21发送控制信息,包括三次握手和用户名/口令协商。连接建立后,通过20
端口进行数据发送。
配置步骤
1.定义运用于外出接口上的由名字索引的扩展访问控制列表
RTA(config)#ip access-list extended extended-list-name
2.配置该由名字索引的扩展访问控制列表来包含一个反射数据流的条目
RTA(config-ext-nacl)#permit ip-protocol any any reflect name[timeout
seconds]
3.将该外出方向的访问控制列表应用到外出接口上
RTA(config-if)#ip access-group extended-list-name out
4.定义将过滤入数据流的由名字索引的扩展访问控制列表
RTA(config)#ip access-list extended extended-list-name
5.配置该由名字索引的扩展访问控制列表,包含一个根据所命名的自反访问控制列表来评判
入数据流的条目
RTA(config-ext-nacl)#evaluate name
配置一个外出方向的访问控制列表来反射数据流
RTA(config)#ip access-list extended OUTBOUND
RTA(config-ext-nacl)#permit ip any any reflect INVITED-TRAFFIC
RTA(config-ext-nacl)#exit
RTA(config)#interface s0
RTA(config-if)#ip access-group OUTBOUND out
将一个自反访问控制列表嵌套到一个扩展访问控制列表
RTA(config)#ip access-list extended INBOUND
RTA(config-ext-nacl)#evaluate INVITED-TRAFFIC
RTA(config-ext-nacl)#exit
RTA(config)#interface s0
RTA(config-if)#ip access-group INBOUND in
为自反访问控制列表条目配置全局超时值
RTA(config)#ip reflexive-list timeout 200
基于上下文的访问控制(CBAC)
CBAC不仅仅是一个改进了的访问控制列表,它还是一个包括数据流过滤、JAVA 拦阻、数据
流审查、告警和涉及跟踪以及入侵检测功能的安全工具集。
入方向访问控制列表先于CBAC 应用,如果入访问控制列表拒绝了,则丢弃,CBAC不会被
审查。只有控制信道才被审查和监视,数据信道不被审查。
10
配置CBAC
1.选择一个接口
“内部”是指会话必须主动发起以让其数据流被允许通过防火墙的一侧;“外部”是指会话
不能主动发起的一侧(从外部发起的会话被禁止)
技术注释:基本防火墙配置技巧
1)配置一个包含允许来自不受保护网络的某些ICMP 数据流条目的访问控制列表
RTA(config)#access-list 101 permit icmp any any echo-reply
RTA(config)#access-list 101 permit icmp any any time-exceeded
RTA(config)#access-list 101 permit icmp any any packet-too-big
RTA(config)#access-list 101 permit icmp any any traceroute
RTA(config)#access-list 101 permit icmp any any unreachable
2)防欺骗保护,增加一条拒绝所有冒用受保护网络中地址的外来数据流条目
3)防止广播攻击,增加一个拒绝源地址为广播地址(255.255.255.255)数据包的条目
4)最好配置“enable secret”
5)在控制台端口设置一个口令。至少应配置“login”和“password”命令
6)对所有的虚拟终端端口应用访问控制列表及口令保护,用“access-list”命令来限制谁可
以telnet 到我们的路由器上
7)不要启用我们用不到的任何本地服务(如SNMP和NTP)还有CDP 和NTP 缺省打开,如
果不用就关闭
8)关闭低端口服务,对于IP,可以输入“No service tcp-small-servers”和“no service
udp-small-servers”全局配置命令
9)通过在任何异步telnet 端口上配置的访问控制列表来防止防火墙被用作中继跳板
10)关闭对任何可应用协议的定向广播功能,对于IP,使用“no ip directed-broadcast”
11)配置“no proxy-arp”来防止内部地址暴露
12)将防火墙放在一个安全的(上锁)的屋子里
配置外部接口的技巧
1) 如果我们在外部接口有一个对外出方向的IP访问控制列表,该访问控制列表可以是一
个标_____准的或是扩展的访问控制列表。
2) 在外部接口上的入方向访问控制列表必须是一个扩展的访问控制列表。
配置内部接口的技巧
1)如果内部接口有一个入方向的IP 访问控制列表,或在外部接口上有对外出方向的IP访
问控制列表,则访问控制列表可以是标准的或扩展的;
2)如果内部接口上的外出方向的IP访问控制列表和在外部接口上的入方向的访问控制列表
必须是扩展的访问控制列表
定义CBAC检查规则
每个方向一个
1)配置应用层协议检查
RTA(config)#ip inspect name inspection-name protocol [timeout seconds]
实例:RTA(config)#ip inspect name FIREWALL http
RTA(config)#ip inspect name FIREWALL ftp
11
RTA(config)#ip inspect name FIREWALL udp
RTA(config)#interface s0
RTA(config-if)#ip inspect FIREWALL out
配置JAVA 过滤
RTA(config)#access-list 24 deny 200.100.50.0 0.0.0.255
RTA(config)#access-list 24 deny 169.199.0.0 0.0.255.255
RTA(config)#access-list 24 permit any
RTA(config)#ip inspect name FIREWALL http java-list 24
RTA(config)#ip inspect name FIREWALL tcp
RTA(config)#interface s0
RTA(config-if)#ip inspect FIREWALL out
配置一般性的TCP 和UDP 审查
RTA(config)#ip inspect name FIREWALL tcp
RTA(config)#ip inspect name FIREWALL udp
在接口应用检查规则
要将一条检查规则应用于某个接口,可以使用下面的接口配置命令:
ip inspect inspection-name {in|out}
实例:RTA(config)#in e0
RTA(config-if)#ip inspect FIREWALL out
配置全局超时值
CBAC使用超时值和门限来确定为会话管理多长时间的状态信息,并确定何时切断还没有完
全建立起来的会话。
核验CBAC
命 令 目 的
Show ip inspect name inspection-name 显示一个已配置了的检查规则
Show ip inspect config 显示完整的CBAC 审查配置
Show ip inspect interfaces 显示与所应用的检查规则和访问控制列表
有关的接口配置
Show ip inspect session 显示当前被CBAC 跟踪和审查的现存会话
Show ip inspect all 显示所有的CBAC配置和所有当前被CBAC
跟踪和审查的现存会话
访问控制列表的替代选择
通过配置一条到空接口“null0”的静态路由,限制到某个目的地的所有数据流
RTA(config)#ip route 10.0.0.0 0.0.0.255 null0
展开阅读全文