CISCO学习笔记(十)访问控制列表ACL

一、访问控制列表的作用:

*过滤:通过过滤经过路由器的数据包来管理IP流量

*分类:标识流量以进行特殊处理

 

  ACL在作用的时候有两个动作,即允许和拒绝。

允许或拒绝经过路由器的数据包

允许或拒绝来自路由器或到路由器的vty访问

如果没有ACL,所有数据包会发往网络的所有部分。

 

配置完以后一定要记得调用ACL的访问控制列表。

二、访问列表的分类:

*标准

 -检查源地址

 -通常允许、拒绝的是完整的协议

*扩展

 -检查源地址和目的地址

 -通常允许、拒绝的是某个特定的协议

*进方向和出方向

  -出方向   先查路由表,如果有去往目的网段的路由,就转到出接口,如果出接口调用了访问控制列表ACL,那么就看是否和ACL的访问控制列表匹配,是允许permit还是拒绝deny,如果是允许,就根据路由表转发数据,如果是拒绝就直接将数据包丢弃了。

  -入方向   当入接口收到数据包的时候,先跟入接口的ACL访问控制列表进行匹配,如果允许则查看路由表从而进行转发,如果拒绝则直接丢弃。

而在这个deny的机制中,有一条隐藏的deny所有报文的语句

也就是说,当接收到的数据包和前面所有的访问控制列表ACL都不匹配的时候,则就会触发这条隐藏的命令。

三、如何来标识ACL

*标准编号IPV4列表(1-99)可测试源地址的所有IP数据包的条件。扩展范围是(1300-1999)

*扩展编号IPV4列表(100-199)可测试源地址和目的地址、特定TCP/IP协议和目的端口条件。扩展范围(2000-2699)

*命名ACL用字母数字字符串(名称)标识IP标准ACL和扩展ACL。

四、配置标准访问控制列表的命令:

标准访问控制列表可以用来匹配:

1用来匹配源地址和目标地址

2用来匹配远程登录

标准访问控制列表建议配在接近于目标的位置,因为如果配置在接近于源的目标的位置,那么发出来的报文就会立刻被deny掉了,而且数据包不仅发送不到目标位置,甚至连接近于源的目标位置以外的其他的路由器也发送不到了,都不可以访问了。所以标准访问控制列表一定要放在接近于目标的位置。

实验一:

                                                                                            允许|拒绝   源地址    反掩码

RouterX(config)#access-listaccess-list-number {permit|deny} sourse [mark]

                  ForexampleR3(config)#access-list1 deny 192.168.1.0 0.0.0.255

                            意思就是只要是192.168.1.0网段的(1-254)的IP地址发过来的数据包都会被拒绝。

                    接着要写一个permit语句去保证允许其他网段的数据报文可以通过。

即:R3(config)#access-list 1 permit 0.0.0.0 255.255.255.255

当然 0.0.0.0 255.255.255.255 代表所有网段也可以用 any 来表示。

即:R3(config)#access-list 1 permit any  可以这样来写,也是可以生效的。

隐藏的deny所有的命令:R3(config)#access-list 1 deny any

所以要记得相反的permit允许其他所有的命令:R3(config)#access-list1 deny any


1.然后在接口下来掉用这个访问控制列表ACL“

RouterX(config-if)#ipaccess-group access-list-number {in|out}  标识是出方向还是入方向

如果用192.168.1.2来ping192.168.2.2则可以是R3的F0/1的入方向或者F0/0的出方向。

For example:

R3(config)#interfacef0/1

R3(config-if)#ipaccess-gourp 1 in 同样建议配置在in方向,因为可以少一次查询的动作。

到这里访问控制列表ACL就调用成功了,这个时候在去ping就会告诉你目的主机不可达。

即:Destination host unreachable。

2.可以通过show access-lists来产看到当前所被deny掉的数据状态。

3.删除访问控制列表:

R3(config)#noaccess-list 1

    它会将之前配置的deny的语句和permitany的语句在访问控制列表1里面同时删除。

4.如果是只是deny某一个IP地址的数据报文,可以使用完全匹配的方式:

即:R3(config)#access-list 1 deny 192.168.1.20.0.0.0 这样后面的四个零就是完全匹配的意思。

当然这个四个零0.0.0.0 也可以用host 来表示:

即:R3(config)#access-list1 deny host 192.168.1.2

  而为了能让其他的数据能够被转发,所以必须要加上permit any的命令,以便让其他的报文可以通过。

  即:R3(config)#access-list 1 deny host 192.168.1.2

      R3(config)#access-list 1 permit any

此外因为在输入访问控制列表的时候,是按照输入的顺序来进行排列的,所有如果将permit any或者deny any语句放在具体的permit或者deny语句之前,即:

先配置了R3(config)#access-list1 permit any

再配置了R3(config)#access-list1 deny host 192.168.1.2

就会发现,后面配置的”R3(config)#access-list1 deny host 192.168.1.2”完全没有生效,报文依旧可以转发。

所以在配置的时候一定要注意先后的顺序,严谨的放在后面。

实验二:

如果在R3上配置远程管理:

R3(config)#line vty 04

R3(config-line)#passwordcisco

R3(config-line)#login

R3(config-line)#exit

R3(config)#enablepassword cisco

然后不允许192.168.1.2来远程访问R3,则:

R3(config)#access-list1 deny host 192.168.1.2

R3(config)#access-list1 permit any

但是调用的时候则是在line下面来调用的:

R3(config)#line vty 04

R3(config-line)#access-class1 in

如果不在line调用的话,也可以在接口下面调用:

R3(config)#interfacef0/1

R3(config-if)#ipaccess-group 1 in

五、扩展访问控制列表:

扩展访问控制列表可以用来匹配:

-不仅可以匹配源地址还可以匹配协议

  -还可以匹配目标地址

  -还可以匹配端口号

扩展访问控制列表建议配置在接近于源的位置,如果配置在接近于目标位置或其他位置的路由器上面,因为产生的结构都是一样的,所以会浪费大量的带宽,而如果配置在接近于源的的目标位置就不会出现这种情况,所以,扩展访问控制列表一定要配置在接近于源的目标位置。

实验一:

命令:

建立扩展访问控制列表:                                                                           协议  源地址              反掩码        相应端口        目标地址      目标地址反掩码

RouterX(config)#access-listaccess-list-number {permit|deny} protocol source source-wildcard [operatorport] Destination destination-wildcard [operator port] [established] [log]

调用扩展访问控制列表:

RouterX(config-if)#ipaccess-group access-list-number {in|out}

ping”命令是基于ICMP协议的命令。且下面的命令是deny掉了去的报文和回的报文。

即:R3(config)#access-list 100 deny icmp192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 echo   报文格式

    R3(config)#access-list 100 deny icmp 192.168.1.00.0.0.255 192.168.2.0 0.0.0.255 echo-reply    回应报文格式

    R3(config)#access-list 100 permit ip any any  因为三层所用的协议是IP协议,所以是ip anyany,这里的IP表示的是协议号。

接下来调用,在R1的入方向来调用这个ACL。

R1(config)#interfacef0/1

R2(config-if)#ipaccess-group 100 in

实验二:

要求:不允许192.168.1.2去telnet远程连接R3路由器。

     而telnet的协议是基于tcp协议的。

R1(config)#access-list100 deny tcp host 192.168.1.2 host 23.1.1.3 eq telnet  这里的eq指的是“等于”

R1(config)#access-list100 permit ip any any

然后去接口调用:

R1(config)#ipaccess-group 100 in

常见的协议端口号:

http   80

dhcp   server67 client68

tftp    69

DNS   tcp53号端口和udp53号端口,而我们平时上网的时候都是用的UDP53号端口。

      只有在DNS服务器之间同步DNS服务的时候,才会用到基于TCP53号端口。或者发的报文比较大的时候也才会用到DNS的第53号端口。

NTP   是网络时间协议,使用的是123号端口

Email  一个是SMTP25号端口,还有一个是POP3110号端口。

FTP    一个是20号端口,一个是21号端口,通常情况下被动模式是使用的是21号端口来建立连接的,而传输数据的是随机端口,而如果设置的是主动模式的话,则是用21号端口来建立连接,用20号端口来传输数据。

ACL配置指导:

-标准或扩展代表可过滤经过路由器的内容

-每隔接口、协议、方向只允许有一个ACL

-ACL语句的顺序控制着测试,因此最具体的语句位于列表顶部。

-最后的ACL测试始终是隐式拒绝其他所有语句,因此每隔列表需要至少一条permit语句

-在全局范围内创建ACL,然后将其应用到入站流量或出站流量的接口

-ACL可过滤经过路由器的流量或往返路由器的流量,具体取决于其应用方式

-将ACL置于网络中时:

      *标准ACL应靠近目的地址

      *扩展ACL应靠近源地址。

【总结】

-标准IPv4 ACL允许根据源IP地址进行过滤

-扩展ACL允许根据源IP地址、目的IP地址、协议和端口号进行过滤

-命名ACL允许从一条ACL中删除单挑语句

-可以使用show access-lists和show ipinterface命令排除ACL配置的常见错误。

NAT网络地址转换

前言:NAT主要是为了解决IP地址不够用的问题。

-IP地址是本地地址或全局地址

-本地IPV4地址在网络内部可见

-全局IPv4地址在网络外部可见

NAT类型:

1.      静态NAT  只能把一个私网地址转换成一个公网地址

2.      动态NAT  把一组私网地址转换成一组公网地址

3.      PAT端口复用  把一组私网地址转换成一组公网地址,也可以把一组私网地址转换成一个公网地址

一、静态NAT

                                   

建立内部本地地址与内部全局地址之间的静态转换  

                                                                     内部私网地址 外部公网地址

RouterX(config)#ipnat inside sourse static local-ip global-ip

R1(config)#ip nat insidesourse static 192.168.1.2 12.1.1.1

将该接口标记为连接内部网络的接口                                 

RouterX(config-if)#ipnat inside

R1(config)#interfacef0/1

R1(config-if)#ip natinside                                    

将该接口标记为连接外部网络的接口

RouterX(config-if)#ipnat outside

R1(config)#interfacef0/0

R1(config-if)#ip natoutside

显示活动的转换

RouterX#show ip nattranslations

                                     outside


inside

Inside global   要接入内网的公网地址

Inside local    要接入外网的内部私网地址

Outside local   外部服务器本地地址

Outside global  外部服务器公网地址

二、动态NAT

定义可根据需要进行分配的全局地址池

RouterX(config)#ipnat pool name start-ip end-ip {netmask netmask|prefix-length prefix-length}

定义允许那些要被转换的内部本地地址的标准IP ACL

RouterX(config)#access-listaccess-list-number permit sourse[source-wildcard]

建立动态源转换,指定上一步定义的ACL

RouterX(config)#ip nat inside source listaccess-list-number pool name

显示活动的转换

RouterX#show ip nattranslations

 

For example:

首先用局域网的访问控制列表来抓局域网的私网地址:

R1(config)#access-list1 permit 192.168.1.0 0.0.0.255

然后,用动态NAT建立一个公网的IP地址池:

R1(config)#ip natpool net-208 171.69.233.209 171.69.233.222 netmask 255.255.255.240

然后让访问控制列表抓来的这些地址映射到先前建立好的地址池里面去:

RouterX(config)#ip nat insidesource list 1 pool net-208

                                                 访问控制列表1 地址池net-208

但是这里注意看访问控制列表1里面的地址有254个地址,而公网的地址只有222-209=13个,也就是说如果有254台电脑想要上网,但是只能用这13个公网地址上网。那么就会出现一种情况即:这254台电脑的前13台电脑可以上网,也就是254个地址的前13个地址可以上网,当其他的电脑想要上网的时候,除非前面的13台电脑里面的某台电脑不上网了,那么后面的电脑才会被允许进行NAT地址转换上网。这样很多人还是上不了网。

三、PAT配置过载,端口复用

通过端口号来判断从公网上面发回来的数据包该发给谁。

For example:

首先用局域网的访问控制列表来抓局域网的私网地址:

R1(config)#access-list1 permit 192.168.1.0 0.0.0.255

然后,建立一个地址池:

如果公网的地址只有一个,且配置在了边界路由的出端口上,那么这里做NAT地址转换的时候可以将POOL的地址池名称直接改换成端口就可以了,即:R1(config)#ip nat inside source list 1  interface f0/0 overload

R1(config)#ip nat pool cisco 12.1.1.112.1.1.2 netmask 255.255.255.0

到这里进行IP地址映射且加上一个端口复用的参数overload:

R1(config)#ip natinside source list 1 pool cisco overload            

然后指定端口的inside和outside:

R1(config)#interfacef0/0

R1(config-if)#ip natoutside

R1(config)#interfacef0/1

R1(config-if)#ip natinside

最后开启debug进行验证:

R1#debug ip nat

然后用192.168.1.2ping一下192.168.2.2

最后关闭debug信息:

R1#undebug all

【总结】

-有三类NAT:静态NAT、动态NAT、PAT端口复用(过载)

-静态NAT是一对一的地址映射。动态NAT地址是从地址池中挑选的。

-NAT过载(PAT)允许将许多内部地址映射到一个外部地址。

-使用show ip nattranslations命令显示转换表,并检验是否发生转换。

-要确定是否在使用当前转换条目,使用showip nat statistics检查使用次数计数器。

  • 19
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACL(Access Control List)是一种用于控制网络流量的技术,可以根据设定的条件对数据包进行过滤和控制。思科设备(如路由器和交换机)支持ACL配置,以实现网络安全和流量控制。 以下是一个示例ACL配置的方法: 1. 首先,进入思科设备的特权模式(Privileged EXEC mode)。 2. 进入全局配置模式(Global Configuration mode),使用以下命令: ``` configure terminal ``` 3. 创建一个ACL,可以选择创建标准ACL或扩展ACL。例如,创建一个标准ACL,使用以下命令: ``` access-list <ACL号> {permit | deny} <源地址> [掩码] ``` 其中,ACL号是一个唯一的标识符,用于区分不同的ACL规则。permit表示允许匹配的数据包通过,deny表示拒绝匹配的数据包通过。源地址和掩码用于指定要匹配的数据包的源IP地址。 例如,创建一个标准ACL,拒绝源IP地址为192.168.1.0/24的数据包通过,使用以下命令: ``` access-list 1 deny 192.168.1.0 0.0.0.255 ``` 4. 将ACL应用到接口上,使用以下命令: ``` interface <接口> ip access-group <ACL号> {in | out} ``` 其中,接口是要应用ACL的接口,ACL号是之前创建的ACL的标识符。in表示应用ACL到接口的入方向,out表示应用ACL到接口的出方向。 例如,将ACL 1应用到接口GigabitEthernet0/1的入方向,使用以下命令: ``` interface GigabitEthernet0/1 ip access-group 1 in ``` 5. 完成ACL配置后,保存配置并退出配置模式,使用以下命令: ``` end write memory ``` 以上是一个简单的思科ACL配置的示例。根据实际需求,可以根据不同的条件和规则创建和应用ACL来实现网络流量的控制和安全保护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值