部署路由选择协议 园区网内各个路由器收敛后 每个路由器会获取每个网段的路由信息 默认情况 每台路由有 所有网段路由信息 默认转发数据包
每个规则被称为ace access control entry 称为一个访问控制规则 或条目 多个ace组成一个acl
1.直接在路由器的一个物理接口调用acl时 只有一个ace允许 流量通过时 此流量才能够被放行 反之 则流量被拒绝 此为数据层面
1.网段间的VPN 实现一个长点到另一个长点 的流量 加密形式发送 指定哪个网段的pc到另一个网段的流量需 要被保护 ipsec acl定义vpn保护的兴趣流量
2.重分发 一个路由器同时运行两个路由协议 例如eigrp和ospf 路由器连接的两个运行不同路由选择协议的 网段 默认两个路由选择协议不会互相传路由条目信息 如果想让eigrp和ospf互相交换路由条目信息 需 要用到acl的重分发 默认会把获得的所有路由信息传给另一路由协议网段或者域 用acl获取某些路由信息 就叫做重分发 用acl抓取控制层面的路由条目
3.acl序列号自顶向下匹配
4.隐式ace拒绝所有流量 acl中至少有一个显示ace允许流量的语句
5.尽可能使用入站过滤 因为针对所有流量 入站最全面
出站过滤针对路由器自己产生的流量不过滤
6. 扩展acl 靠近源ip地址部署
标准acl 靠近目的ip地址端口部署
例子:1.标准acl
#acess-list 1 permit 172.16.0.0 0.0.255.255 //定义一个名称为1的acl 允许172.16网段的流量通过 后面为反码模式 路由器精确匹配前8位 后8位随便
#interface ethernet 0 //应用到路由器的fa0/0接口
#ip access-group 1 out //应用的方向为从fa0/0接口出向的流量
2.扩展acl
#access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 //定义101名字的扩展acl 拒绝tcp协议的流量 端口号位21 即ftp 源地址为172.16.4.0 网段的 目的地址为172.16.3.0网段的所有流量的ftp流量
#access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20 同上也是ftp流量
#access-list 101 permit udp 172.16.4.0 0.0.0.255 1025 172.16.3.0 0.0.0.255 eq 88
同上 只是将协议改为udp 源端口号位1025的 且目的端口为88的流量
#access-list 101 permit ip any any //允许所有流量通过
#interface ethernet 0 应用到接口0
#ip access-group 101 out 调用acl在接口0的出站方向
如果将上面的tcp或者udp改成IP 则表示所有协议的流量
命名式的acl配置 ios版本 === 12.3以后
明确具体的名称 手工指定ace的序列号 可以做任意的序列号的插入 sequence-number 可以单独no掉 ace
例子:
1. #ip access-list standard troublemaker //创建一个名称为troublemaker 标准的acl
#deny host 172.16.4.13 //拒绝172.16.4.13的流量
#permit 172.16.4.0 0.0.0.255 //允许172.16.4.0网段的流量通过
#interface e0
#ip access-group troublemake out //在e0接口的出向方向上调用此acl
协议端口号
tcp 6
udp 17
eigrp 88
ospf 89
icmp 1
igmp 2
pim 103
实验:
一:静态acl gns3模拟器
1.需求:拓扑: r2------------------r1--------------------r3
r2接口:fa0/1 12.1.1.2 255.255.255.0
loopback 0 2.2.2.2 255.255.255.0
r1接口:左fa0/0 12.1.1.1 255.255.255.0
右 fa0/1 13.1.1.1 255.255.255.0
loopback 0 1.1.1.1 255.255.255.0
r3接口:fa0/0 13.1.1.3 255.255.255.0
loopback 0 3.3.3.3 255.255.255.0
2.
r2使用环回口作为源可以telnet r3的环回口 然后使用物理接口作为源不能telnet r3的环回口
r2使用物理接口作为源可以ping通r3的环回口 使用环回口作为源不能ping通r3的环回口
access-list 100 permit tcp host 2.2.2.2 host 3.3.3.3 eq 23
access-list 100 deny tcp host 12.1.1.2 host 3.3.3.3 eq 23 可以去掉 因为可以利用隐藏的deny any语句
access-list 100 permit icmp host 12.1.1.2 host 3.3.3.3 echo
access-list 100 deny icmp host 2.2.2.2 host 3.3.3.3 echo 可以去掉 因为可以利用隐藏的deny any语句
access-list 100 permit ospf host 12.1.1.2 host 224.0.0.5 以下不理解
access-list 100 permit ospf host 12.1.1.2 host 224.0.0.6
access-list 100 permit ospf host 12.1.1.2 host 12.1.1.1
3.命令
在接口调用:
r1:int fa0/0
# ip access-group 100 in
显示ace条目:
#show ip access-lists
去掉错误的接口调用:
int fa0/1
no ip access-group 100 in
r3:
line vty 0 1869
login local
exit
username admin password admin
enable password admin
测试:
r2:telnet 3.3.3.3 /source-interface loopback 0
输入用户名和密码 exit退出
telnet 3.3.3.3 显示不能登录
ping 3.3.3.3 通
ping 3.3.3.3 source 2.2.2.2 不通 显示U 有路由 但是不可达
去掉重复的:
IP access-lists extended 100 进入 名称为100的acl的配置模式 注意不能用 no access-lists 100会 全部删除
然后再删除不需要的ace条目
no 20
no 40 删除了sequence为20和40的条目
例子 ping 2.2.2.2 source 3.3.3.3
例子 telnet 2.2.2.2 /source-interface loopback 0
int fa0/0 //e0接口取消名字为100的acl
no ip access-group 100 in
二 dynamic acls
动态的acl 创建 更加的灵活
1.需求 满足某类条件的acl执行 没有满足条件 就不执行acl
r2需要证明是合法用户 才能与r3通信 登录成功是触发条件 acl才执行 以此放行r2的流量到r3
同上图
2.命令创建acl
#IP access-lists extended r2-r3
#permit ospf host 12.1.1.2 host 224.0.0.5 //放ospf的流量
#permit ospf host 12.1.1.2 host 224.0.0.6
#permit ospf host 12.1.1.2 host 12.1.1.1
#dynamic TEST permit IP host 2.2.2.2 host 3.3.3.3 //动态的acl
未触发时 此acl为睡眠状态 需要条件匹配
#line vty 0
#login local
#username admin password admin
#line vty 0
#autocommand access-enable host 让telnet登录认证通过与acl关联
添加放行telnet登录的语句到r1 acl都
#IP access-lists extended r2-r3
#35 permit tcp host 2.2.2.2 host 1.1.1.1 eq 23 前面的35为插入的序号
调用
#interface fa0/0
#ip access-group r2-r3 in
测试:
r2:ping 3.3.3.3 不通
r2:telnet 3.3.3.3 /source-interface loopback 0
可通
三 time-based ACLS 基于时间的acl 更加灵活
例子:
同上图
1.需求 在当前时间起 3分钟内 r2可以telnet3 之后被禁止
2.命令
#no ip access-list extended r2-r3
#int fa 0/0
#no ip access-group r2-r3 in
#time-range TIME 时间名称的设置
下面的参数中 一般用周期性 periodic 选项
#periodic daily 15:55 to 16:00 每天的15:55到16:00调用
#ip access-list extend TIME
......
#permit tcp host 2.2.2.2 host 3.3.3.3 time-range TIME *******
#调用此acl
四.自反acl 谁能主动访问谁 谁又不能主动访问谁 初级防火墙 模拟 此实验不能用7200路由器做实验 ios 版本问题
a发送数据可以去往b 回包可以回来 即a能主动访问b 因为路由器可以记录流量状态 a-b b到a的数据就可以放行
但b不能主动访问a
防火墙 security-level 安全级别 例如内外网
例子 同图
1.需求
r3可以主动访问r2 但是r2不能主动访问r3 环回口模拟
2. 其中需要两个acl
命令:
acl1:
#ip access-list extended BOSS
#permit ospf host 13.1.1.3 host 224.0.0.5
***
#permit ip host 3.3.3.3 host 2.2.2.2 reflect PASS 反向 此处的PASS为标记 ace 需要反向的ace
#exit
acl2:
#ip access-list extended Employee 创建一个名称为employee的acl
#permit ospf host 12.1.1.2 host 224.0.0.5
permit ospf host 12.1.1.2 host 224.0.0.6
permit ospf host 12.1.1.2 host 12.1.1.1
#evaluate PASS 生成反向允许通过的ace 序号是第4个
#接口调用
int fa0/1 r3方向 接口 调用入向
ip access-group BOSS in
int fa0/0 r2方向 接口 调用入向
ip access-group Employee in