高级ACL
高级ACL编号范围:3000-3999
- 思科
- 标准ACL (华为的基本ACL)
- 扩展ACL(就是华为的高级ACL)
高级ACL可以根据数据包
华为高级ACL的创建
华为可以给ACL命名,但系统依然会配一个编号,所以差别不大。
[ISP] acl 3000 | |
---|---|
[ISP-acl-adv-3000] rule permit icmp(各种协议) | 对icpm协议族下的数据包进行过滤 |
[ISP-acl-adv-3000] rule permit icmp source 10.10.10.0 0.0.0.255 destination 20.20.20.0 0.0.0.255 | 允许 10.10.10.0 24 ping 20.20.20.0 24 |
[ISP-acl-adv-3000]rule 5 deny ip(Any ip protocol) | 通过禁止源目地址 |
[ISP-acl-adv-3000]rule 5 deny ip source 10.10.10.0 0.0.0.255 destination 10.20.20.0 0.0.0.255 | 阻止全部协议的通信 |
[ISP-acl-adv-3000] rule permit tcp source 10.10.10.0 0.0.0.255 desination 162.16.33.11 0 eq destination-port 80 | http流量的端口号为80 htpps : 443 |
拒绝来源特定网络通过端口号20、21访问172.16.33.11 | |
rule deny tcp source 10.10.10.0 0.0.0.255 destination 172.16.33.11 0 destination-port range 20 21 | ftp-data 20 ftp 21 |
法不禁止就可行,华为的高级ACL也同样拥有隐式语句,默认放行。 | |
Tip : 当不记得命令时,利用好 ?提示符
ACL匹配原则:从上到下,一有匹配直接发送。
ACL自动匹配原则(深度匹配):
任务一描述:防止外网利用UDP访问端口445安全问题
[AR4] ACL 3000 | 创建高级ACL |
---|---|
[AR4-acl-adv-3000] rule deny udp source any destination any destination-port any eq 445 | 禁止任何源IP地址访问任何目的地址通过udp协议族访问目的端口为445端口 |
[AR4-acl-adv-3000]rule permit ip sou any de any | 允许通过任何协议的源IP访问任何的目的IP |
创建完ACL之后,我们需要调用 | |
[AR4] int g0/0/0 | 进入连接外网的端口(找到所要抓取流量的必经之路) |
[AR4] traffic-filter inbound acl 3000 | 调用acl3000 来过滤 从这个端口进入的流量(inbound) |
测试是否生效: |
用外网的一台PC0对Sever服务器发起访问,目的IP为NAT更改后的,目的的端口445,源端口任意,发起访问。
我们在未过滤前的端口如:ISP的g0/0/0抓取流量,发现有数据包
在过滤后的接收端口查看数据包,发现无数据包。
任务二:拒绝VLAN10除TCP流量的访问
通过分析,VLAN10的流量到达Sever服务器
我们可以根据自己的想法来设置ACL,我们选择在AR3(sever的网关)的 G0/0/1 设置ACL。
[AR3] acl 3000 | 创建ACL |
---|---|
[AR3] rule permit tcp source any destination 172.16.33.11 0 destination-port eq 80 | 允许任何的TCP流量访问服务器 |
[AR3]rule deny ip source 10.10.10.0 0.0.0.255 destination 172.16.33.11.0 | 拒绝VLAN10的流量以任何方式(协议)来访问 |
[AR3] rule permit ip source any destination any | 设置允许所有流量。 |
设置完acl后,调用 | |
[AR3] int g0/0/1 | |
[AR3-g0/0/1] traffic-filter outbound acl 3000 | 调用acl3000,来抓取从这个端口出来的流量 |
测试… | |
ACL实施思路:
-
确定流量必经之路,明确应该在哪台设备的哪个端口的哪个方向
-
在相应设备上创建ACL(源IP、目的IP、协议类型、端口等)
-
必须要应用(简化的流策略)
-
优化
- acl的设置要考虑消耗资源、更好的容错。
- 比如在LSW2上设置ACL防止vlan10流量,那么当该设备出现故障时,可能会从另一条路发送流量。
- 在LSW1上设置ACL防止VLAN10流量,调用后会抓取所有从VLAN10出来的流量,造成资源浪费。
- 在AR3上的g0/0/1端口调用,虽然也会抓取所有访问sever的流量,但明显优于在LSW1上设置ACL
- acl的设置要考虑消耗资源、更好的容错。
高级ACL
思科版
NAT
与华为不同,在做NAT转换时,思科需要先设置端口角色
Easy IP:
R5(config) # int g0/2 | 以R5为例(所有端口都要配),进入连接服务器的端口 |
---|---|
R5 (config-if) # ip nat inside | 内网设置为 inside |
R5(config-if)# exit | |
R5(config) # ip access-list standard NAT | 创建了一个名为 NAT 的标准ACL |
R5(config-std-nacl) # permit 10.0.0.0 0.255.255.255 | 设置ACL抓取 |
R5(config-std-nacl) # quit | |
R5(config) # ip nat inside source list NAT interface s0/0/0 overload | 调用 NAT acl, 选择接口的IP |
Tip(小提示):
R5(config) # ip nat inside source list NAT ? | 抓取流量转换地址,选择转换成谁 |
---|---|
interface Specify interface for gloval address pool Name pool of global address | 是接口还是地址池 |
R5(config) # ip nat inside source list NAT interface s0/0/0 overload | 选择接口时,注意如果多台设备转换时,需要开启过载 |
利用好提示符” ?“ |
静态NAT
R5(config) # ip nat inside source static 172.16.55.11 51.51.51.10 | 静态转换IP(1对1 转换)将内网的172.16.55.11转换成外网的51.51.51.10 |
---|---|
拓展ACL- 思科
R5(config) # ip access-list extended 100 | |
---|---|
R5(config-ext-nacl) # deny udp any any eq 445 | 将udp 445端口的流量全部拒绝调(任何源地址,任何目的地址) |
R5(config-ext-nacl) # permit ip any any | 思科默认是拒绝所有,所以我们需要让其它的通信 |
R5(config-ext-nacl) # end | end 可直接跳转到 特权模式 |
R5 # show ip access-list | 查看你设置的ACL列表 |
R5(config) # int s0/0/0 | |
R5(config)-if # ip access-group 100 in | 通过编号或名称调用 ACL。 调用ACL100对进入的流量做出相应的动作。 |
验证ACL-思科
未限制VLAN10
在未对VLAN10做出流量限制之前,PC1可以通过 Web 浏览器 访问 服务器、通过DNS域名访问以及Ping通等等都可以的
限制VLAN10
只允许VLAN10 的设备 的 TCP协议端口号为 80 的访问,其他流量均无法通行
R5 (config) # ip access-list extended Guest | 创建一个名为Guest的拓展ACL |
---|---|
R5 (config-ext-nacl)# permit tcp 10.10.10.0 0.0.0.255 host 172.16.55.11 eq 80 | 允许 通过 tcp 协议以及端口号为80且源IP为10.10.10.0网段 目的IP为172.16.55.11的流量 |
R5 (config-ext-nacl)# deny ip 10.10.10.0 0.0.0.255 host 172.16.55.11 | 拒绝VLAN10的所有流量,所有只有VLAN10的upd才能访问 |
R5 (config-ext-nacl)# permit ip any any | 再允许其他的流量通过 |
R5 (config-ext-nacl)# end | |
R5 # show ip acc |
R5(config) # int g0/2 | 进入将要调用ACL的端口 |
---|---|
R5(config-if) # ip access-group Guest out | 调用名为Guest的ACL来抓取出来的流量并对它们执行相应动作。 |
限制后的效果
通过http依然可以访问服务器,因为http 依靠的 是 Tcp协议 我们允许通过。
域名访问时无法访问: 域名访问时,PC1首先要对服务器的DNS服务发起访问,得到地址后,再通过地址访问。 但是我们只允许了Tcp流量的通信,所以缺少中间的一步,故无法访问。