-
ACL
的应用
一、
概述
属于
IOS
包过滤防火墙的一部分,但是现在不仅仅是用在这个方面
。
现在可以应用在:
1
、
data plan
通过一些对数据包的匹配,
抓到数据包对数据包进行丢弃或者转发
等操作(对象
:
数据包、数据帧)
2
、
control plan
对路由条目的匹配,对路由条目执行策略(路由条目)
二、
理论以及命令
全局模式下:
access-list
<1-99> IP
标准访问控制列表
<100-199>IP
扩展访问控制列表
<200-299>
协议类型代码访问控制列表
没有明确标准的应用的流量
<300-399>DECnet
访问控制列表
<700-799>48bit
MAC
地址访问控制列表
<1100
-1199>
扩展的
48bit
MAC
地址访问控制列表
<1300
-1999>IP
标准访问控制列表
<2000-2699>IP
扩展访问控制列表
这些包含了常见的
IP
的二层协议和三层协议
1
、
标准
只能匹配协议中的一个地址(源地址)
命令
access-list 1 permit
(允许)
/deny
(拒绝)
/remark
hostname/x.x.x.x/any
(所有
主机通配符
32
个
p>
1
)
/host
(
一台单一主机通配符
32
个
0
)
掩码:
/nn&x.x.x.x
log/
例子
access-list 1 permit 1.1.1.1
访问控制列表必须在某种技术环节下调用,
否则不存在任何意义。
一般调用在接
口下,比较常用。
调用的时候有方向:
in
或者
out
注意:每条访问控制列表后面都有一个
隐式拒绝
一个编号的访问控制列表可以使用多行,默认一般都是以
10
开始编号,间隔是
10
,最大是
2147483647
。一般认为无上限。
ACL
书写的时候注意,
是金字塔式的
,
从上到下,
匹配的范围越来越大。
因
为
ACL
一旦匹配,就会立即执行动作,不会放到后一条。
p>
例子:
first
:
deny 192.168.1.0
Second
:
permit
192.168.0.0
Third
:
deny
192.0.0.0
ACL
使用
反掩
码(标识一个子网的范围)
和
通配符(不连续)
确定所写的网段的
路由范围
反掩码与通配符的不同,是通配符不用连续
例子:
192.168.1.0
192.168.3.0
192.168.5.0
如何用通配符匹配
192.168.1.0
192.168.00000
00<
/p>
1.0
192.168.3.0
192.168.00000
p>
01
1.0
192.168.5.0
192
.168.00000
10
1.0
红位标注为不一致的地方,
其他均为一致的地方,
一致的地方使用
0
标识不一致
的地方使用
1
标识,
而且匹配
IP
地址最后的几个比特不做严格限制
,最后
结果
是:
192.168.1.0<
/p>
(
3.0
、
5.
0
都行最后默认都会变成
1.0
)
p>
0.0.6.255
(通配符)
p>
网络号是匹配路由的时候使用,
IP
是对数
据包进行匹配
show ip access-lists
查询出匹配了多少包
clear
ip access-lists counters [acl num]/
没加反掩码或者通配符的话,那么后面自动跟上
0.0.0.0
如果先
permit any
再
permit
明细的话,会报错。
扩展访问控制列表不会(因为
有不同协议等)
2
、
扩展
可以匹配两个地址(源目的)<
/p>
、协议号、端口号等
扩展访问控制列表可以控制源和目的。
全局模式下:
access-list
100
permit/deny/remark
< br>协议
/
协议编号范围
x.x.x.x
(源地址)
/any/host/object-group
x.x.x.x
(目的地址)
/any/host/object-group
如果用的是
IP
协议最后还可以加上
IP
包头当中的不同字段
如果是
TCP
协议最后还
可以加
tcp
包中的各种位
如果加上
eq(
等于
)
/gt(
大于
)/lt(
小于
)
可以匹配
TCP
端口号
如果在
eq
xx
后面还可以加某些端口下的特殊位
eq
xx
还可以放在源地址和目的地址之间。
如果
eq xx
放在源地址后,匹配源端口;放在目的地址后匹配目的端口号
和标准访问控制列表一样需要调用。
3
、
访问控制列表调用
接口下调用:
in/out
切记
p>
ACL
不能控制本地始发流量,环回接口也是一样。
ciscoIOS
特性
如果想过滤始发流量:
第一种方法:
route-map
第二种方法:
service-policy
4
、
偏移列表
偏移列表(只能跟标准的)
offset-list x in/out x
fx/x
(进接口)
acl x <
/p>
匹配的路由都会在原有的
metric
上
加
x
此时
acl
时需要注意匹配的写法需要和路由表中的显示的一样,如果不想保持一
致,可以使用
通配符匹配,例如:
1.1.1.0 0.0.0.255
注意
:
标准访问控制列表只能匹配路由
条目,
扩展访问控制列表可以匹配条目和
掩码。
5
、
前缀列表
特点:可以增量修改,比<
/p>
numberACL
来讲删除一条整条就删除了,前缀列表可
p>
以单独删除活添加。
在
< br>IOS12.0
以后的版本使用。
比
ACL
有性能的改进。如果
AC
L
超过
1000
条以上,此时更改成前
缀列表,那么
可能消耗资源占用会降低
70%-85%
。
命令:
ip prefix-list xxx
deny/permit/description/seq x.x.x.x/nn ge
大于
/le
小于
/
规则:
len
在大部分
IGP
当中扩展访问控制列表不生
效。应当使用标准访问控制列表。
列表中的序列号:可以将列
表排序和动态单独删除、插入,前缀列表起始是
5
,
间隙是
5
。
ip prefix-list sequence-
number
不起作用
前缀列表注意
命名的时候不要使用
s
或者
seq
p>
,因为有命令混淆。
6
、
命名访问控制列表
命令:
ip access-list extended
p>
(扩展)
/standard
(标准)
p>
word/number
permit/deny
x.x.x.x
等等
与普通
ACL
一样
还可以在动作之间直接加上序号。但是都显示在末尾。
例如
为什么会这样,是因为这几个地址都是
32
位主机地址,互相不冲突就会添
加到最后。
但如果形成冲突
例如:
这样的金字塔匹配,明显中间似乎少匹配了一个
1.1.1.0
输入这样的命令:
R1(config)#ip access-list standard 1
R1(config-std-nacl)#11 permit 1.1.1.0
0.0.0.255
显示结果:
命名访问控制列表可以兼容号和名称,最好用名称。利于标记。
命名注意:
对于字母来讲:没有空格
对于数字来
讲:开头如果就是数字,那么一直是数字。否则出错。如果都是数字
不能与默认
ACL
的号冲突。类型需要匹配。
对于特殊字符来讲:不能作为开头,特殊的就是“?”如果想输入的话要同时按
住
ctrl+v
松手输入“?”
。
注意带问号的命令可以敲,但是不可以复制,因为复
制不上。
在
acl
进程下还有一些命令:
R1(config)#ip access-list
standard aaa
R1(config-std-nacl)#?
Standard Access List configuration
commands:
<1-2147483647>
Sequence Number
default
Set a command
to its defaults
初始化命令
deny
Specify packets to reject
exit
Exit from access-list
configuration mode
no
Negate a
command or set its defaults
permit
Specify packets to forward
remark
Access list entry comment
标记
在外面也有一些命令:
R1(config)#ip access-list ?
extended
Extended Access
List
扩展
helper
Access List acts on helper-address
访问控制列表扮演帮
助地址,只能做
egress
上面的
check
p>
(做出项检查,对目的地的过滤检查)
log-update
Control access list log updates
控制日志更新
R1(config)#ip access-list log-update
threshold ?
<0-2147483647>
Access list log-update threshold
(number of
hits)
更新间隔的阀
值
匹配多少个包显示一次
logging
Control access list logging
控制日志输入
R1(config)#ip access-list logging ?
hash-generation
Enable syslog hash code
generation
生成系统日志的
hash
代
码
interval
Set
access list logging interval
达到了每
x
毫秒一个包的时
候,产
生一个
log
信息。范围
0-2147
483647
resequence
Resequence Access List
重新排序
如果有个
< br>acl
是这样:
需要在
11
和
12
之间插入
4.4.0.0
插入不进去,则需要重新排序。
R1(config)#ip access-list
resequence xxx [starting sequence
number]
(
起始号)
[step
to increment the
sequence number]
(间隔号)
比如输入:
R1(config)#ip access-
list resequence bbb 10 10
显示:
这样很显然就可以在
30
和
40
之间插入了。
standard
Standard Access
List
7
、
基于时间的访问控制列表
会有很多策
略需要在某段时间内生效。比如中午午休,晚上加班等等。
GW(config)#ip access-list extended aaa
GW(config-ext-nacl)#permit ip host
12.1.1.1 any time-range OUT
启用
acl aaa
关联上
time-range
名字叫
OUT
,证明
acl aaa
中的那条
acl
只能在
time-range OUT
生效的情况下生效。
GW(config)#int e0/1
GW(config-if)#ip access-group aaa in
p>
挂起在
e0/1
接口
in
方向
time-
range
配置:
GW(config)#time-range OUT
GW(config-time-range)#?
Time range configuration
commands:
absolute
absolute time and date
命令:
GW(config-
time-range)#absolute ?
end
ending time and date
结束时间,没有没有定义则永远生效
start
starting time and date
开始时间,没有定义的话就是从现在开始,直到
某一个时间点结束。
p>
default
Set a command to its defaults
exit
Exit from time-range
configuration mode
no
Negate a command or set its defaults
periodic
periodic time and date
周期性生效
每
x
怎么怎么样
GW(config-time-range)#periodic ?
Friday
Friday
Monday
Monday
Saturday
Saturday
Sunday
Sunday
Thursday
Thursday
Tuesday
Tuesday
Wednesday
Wednesday
daily
Every day of the week
每天都生效
weekdays
Monday thru
Friday
工作日生效
weekend
Saturday and Sunday
周末生效
命令:
GW(config-
time-range)#periodic weekdays [Starting time] to
[Ending time]
例子:
GW(config-
time-range)#periodic weekdays 12:00 to 13:00
时间范围:是从
12:00:00
到
13:00:59
如果在内部机器更改本地时间的话对
ACL
无影响。
但是更改
GW
p>
的时间是有影响
的。
GW#show ip access-lists
Extended IP access list aaa
10 permit ip host 12.1.1.1 any time-
range OUT (inactive)
如果是
inact
ive
是无
效,如果是
active<
/p>
是激活
GW#show time-
range
time-range entry: OUT
(inactive)
periodic weekdays 12:00 to 13:00
used in: IP ACL entry
标准访问控制列表是没有
time-
range
这个选项。
8
、
动态访问控制列表
可以动态的区分服务的对象。
与
Autocommand
命令结合使用
Autocommand
例子:
line vty 0 4
login local
autocommand show
ip int br
username 123 password 123
使用直连机器
telnet
这台设备
输入用户名密码正确则会自动执行
show
ip int br
这条命令,并且自动退出线程。
注意某些命令需要
15
级,比如
show run
联合
dynamic acl
使用
line vty 0 4
autocommand access-enable
login local
username xxx
privilege 15 password xxx
ip access-
list extended aaa
permit tcp host
x.x.x.x host x.x.x.x eq 23
dynamic xxx<
/p>
(不能与
aaa
相同)
< br>permit ip any any
然后再接口上挂载
acl
,
如果不使用
line
vty 0 4
线程登录的话是不可能启用动态
acl
的。如果使用
line vty 0 4
线程
登录的话,启用动态
acl
则可以启用
acl
中的内
容。
GW#show ip access-lists
Extended IP access list aaa
10
permit tcp host 12.1.1.1 host 12.1.1.2 eq telnet
(23 matches)
20 Dynamic bbb permit ip
any any
permit ip any any (5 matches)
动态列表激活后会生成一个一摸一样的
acl
copy
下来。
动态访问控制列表可以添加扩展访问控制列表后面的参数
还可以控制动态访问控制列表的存活时间。
GW(config-ext-nacl)#dynamic bbb timeout
1
permit ip any any
Timeout
是时间范文
1-9999
以分钟计数
。每
telnet
一次时间清零重新计数。
一个访问控制列表只能写一个
dynamic
,
最好把所有的
dyn
amic
属性放在
acl
最
后输入。
在
vty
线程下使用
autocommand access-
enable host
,
做出谁
te
lnet
谁才能上网,
不能一个人
te
lnet
成功所有人都能上了。
但是
如果换成与认证成功的主机的
ip
,那么
acl
就检测不到了
只有扩展的访问控制列表才能支持。
命令:
access-list dynamic-
extended
将密钥超时时间延长到
6
< br>分钟。
9
、
自反
ACL
内部网络可以发送数据出
去,
但是一般从
internet
以外
为源发起的数据进来
的话可能会引起安全隐患。
但是如果在外网口做策略防止流量进入,
那么就会把一些合法的数据流量阻<
/p>
止,比如,内网发起的连接,外网响应的数据回包。
自反
ACL
可以控制内部发起的连接的回包可以进
来,其他的回包不可以。
单用
est
ablished
缺点
:
只能使用
TCP
,因为他匹配的就是
TCP
中的
established
位
黑客如果伪装,虽然不可以窃取数据,但是完全可
以
DOS
攻击
-
-
-
-
-
-
-
-
-
上一篇:2010年6月入党积极分子思想汇报集锦
下一篇:快消品行业术语(行话)解析