ACL & NAT

一、ACL 访问控制列表

基础信息

功能:
  1. 访问控制:在路由器的 出或入接口方向 产生动作,只有 允许和拒绝。

  2. 定义感兴趣流量:帮助其他 策略 抓流量。

匹配规则:

由上至下,逐一匹配上条匹配 按 上条执行不再查看 下条。

华为体系 中,结尾 默认允许通过;但是在 思科体系 中,末尾 默认拒绝通过

分类:
  • 标准 ACL:仅关注 数据包中的 源 IP地址

  • 扩展 ACL:关注 数据包中的 源/目标IP地址协议号端口号

配置 标准 ACL

由于 标准 ACL 仅关注数据包中的 源 IP,故 调用时要尽量 靠近目标避免 对其他地址的访问 被误杀

范围:

  • 标准 ACL 编号范围:2000~2999

  • 扩展 ACL 编号范围:3000~3999

注意:一个编码就是 一张规则,一张规则 可以容纳 大量的具体规则。

标准 ACL

创建:
acl [标准编号]

创建 标准 ACL 表,编号为 标准范围。

以下命令都要在 进入标准 ACL 的基础下进行。

通配符:

ACL 的通配符 与 OSPF 的 反掩码 规则相同,唯一区别在于 通配符 可以进行 0 1 穿插

拒绝 网段/IP:
rule deny source [源IP] [通配符]

规定 拒绝 源 IP,在匹配地址时,需要使用通配符

rule deny source any

规定 拒绝所有 IP。

允许 网段/IP:
rule permit source [网段] [通配符]

规定 允许 源网段 通过 。

查表:
display acl 2000

查看 ACL 表。

rule [步调] deny source 192.168.2.1 0.0.0.0

规定 该规则 步调为7 拒绝 源192.168.2.1

traffic-filter inbound acl 2000

在相应接口的出方向上调用acl2000

扩展 ACL

仅关注 源/目标 IP

由于 扩展ACL 对流量进行了 精确匹配,故可以 表面误杀,因此,调用时,尽量 靠近源 IP

创建:
acl [扩展编号]

创建 扩展 ACL 表,编号为 扩展范围。

注意:一个 出/入接口 只能接受 一张 ACL 表,如果想更换,必须得 重新规定 一个 ACL 编号。

拒绝:

首先要 进入扩展 ACL

rule deny ip source [源IP] [通配符] destination [目标IP] [通配符]

规定 拒绝 一切 源 向 目标 范围内的 一切 IP行为

Telnet 远程登陆

---- 基于 TCP 23 端口

条件:
  1. 登陆设备 和 被登陆设备 之间 必须可达

  2. 被登陆设备 必须 开启 telnet 设定

开启服务:
aaa

开启 aaa 服务。

创建用户/权限/密码:

首先要 进入到 aaa 服务

local-user [用户名] privilege level [等级] password cipher [密码]

创建一个具有 权限等级密码用户

配置 远程登陆:

首先要 进入到 aaa 服务

local-user [用户名] service-type telnet

定义 用户远程登录 所使用 。

创建 虚拟通道:
user-interface vty [范围1] [范围2]

创建 范围区间内(闭区间) 个数的 虚拟通道

范围 0~4 或者 16~20,例如 user-interface vty 0 4 表示 创建 0~4 共 5 个 虚拟通道。

通道认证模式:

首先要进入 虚拟通道

authentication-mode aaa

规定 该通道 认证模式 为 服务 aaa。

远程登陆:

首先要进入到 用户视图 (尖括号)。

telnet [网关IP]

将该 路由器 远程登陆 对应网关。

同时再关注 目标端口号

以下命令要在 扩展 ACL 的基础下 进行。

拒绝端口行为:
rule deny tcp source [源IP] [通配符] destination [目标IP] [通配符] destination-port eq 23

规定 拒绝 源IP 向 目标IP 的 TCP端口23 行为

telnet 命令 属于 TCP 23 。

拒绝协议命令行为:
rule deny icmp/tcp source [源IP] [通配符] destination [目标IP] [通配符]

规定 拒绝 源 IP 向 目标IP 的 icmp/tcp 行为

ping 命令 属于 ICMP 协议telnet 命令 属于 TCP 协议

删除:

首先要进入到 ACL 进程

undo rule [步调数]

可以通过 display this 命令 查看当前 ACL 配置。

练习三

要求:
  1. PC1 可以 telnet R1,但是不能 telnet R2

  2. PC1 可以 ping R2,但是不能 ping R1

  3. PC2 所有要求 与 PC1 相反

先进行基础配置

路由器配置:
 ### R1 配置 ###
 #配置 用户 AAA 
 [R1-aaa]local-user AAA privilege level 15 password cipher 123456
 #定义 用户 AAA 为 远程登陆 使用
 [R1-aaa]local-user AAA service-type telnet
 #创建 0~4 共 5 个 虚拟通道
 [R1]user-interface vty 0 4
 #规定 该通道 认证模式 为 服务 aaa
 [R1-ui-vty0-4]authentication-mode aaa
 ​
 #创建 扩展 ACL,编号为 3000
 [R1]acl 3000
 ========================================
 ###PC1 ping 不通 R1,拒绝 R1 两个接口网关
 #拒绝 IP 2.2 向 IP 1.1 的 icmp 行为(ping命令)
 [R1-acl-adv-3000]rule deny icmp source 192.168.2.2 0.0.0.0 destination 192.168.1.1 0.0.0.0
 #拒绝 IP 2.2 向 IP 2.1 的 icmp 行为
 [R1-acl-adv-3000]rule deny icmp source 192.168.2.2 0.0.0.0 destination 192.168.2.1 0.0.0.0
 ​
 ###PC1 无法 telnet R2,拒绝 R2 一个接口网关
 #拒绝 IP 2.2 向 IP 1.2 的 TCP端口23 行为(telnet命令)
 [R1-acl-adv-3000]rule deny tcp source 192.168.2.2 0.0.0.0 destination 192.168.1.2 0.0.0.0 destination-port eq 23
 ========================================
 ###PC2 ping 不通 R2,拒绝 R2 一个接口网关
 #拒绝 IP 2.3 向 IP 1.2 的 icmp 行为
 [R1-acl-adv-3000]rule deny icmp source 192.168.2.3 0.0.0.0 destination 192.168.1.2 0.0.0.0
 ​
 ###PC2 无法 telnet R1,拒绝 R1 两个接口网关
 #拒绝 IP 2.3 向 IP 1.1 的 TCP端口23 行为(telnet命令)
 [R1-acl-adv-3000]rule deny tcp source 192.168.2.3 0.0.0.0 destination 192.168.1.1 0.0.0.0 destination-port eq 23
 #拒绝 IP 2.3 向 IP 2.1 的 TCP端口23 行为
 [R1-acl-adv-3000]rule deny tcp source 192.168.2.3 0.0.0.0 destination 192.168.2.1 0.0.0.0 destination-port eq 23
 ========================================
 #ACL配置完成后,在需要的接口上调用
 [R1-GigabitEthernet0/0/1]traffic-filter inbound acl 3000
 ​
 ### R2 配置 ###
 #首先配置 R2 的 静态路由(网段 下一跳)
 [R2]ip route-static 192.168.2.0 24 192.168.1.1
 ​
 #配置 用户 BBB
 [R2-aaa]local-user BBB privilege level 15 password cipher 123456
 ##定义 用户 BBB 为 远程登陆 使用
 [R2-aaa]local-user BBB service-type telnet
 #创建 0~4 共 5 个 虚拟通道
 [R2]user-interface vty 0 4
 #规定 该通道 认证模式 为 服务 aaa
 [R2-ui-vty0-4]authentication-mode aaa
PC 端:

首先进行 基础配置,PC1 网关为 2.2,PC2 为 2.3。

 ### PC1 配置 缺省路由
 [PC1]ip route-static 0.0.0.0 0 192.168.2.1
 #PC1 成功 ping通 R2,无法 ping 通 R1
 <PC1>ping 192.168.1.1
 #PC1 成功 登录 R1,无法 登录 R2
 <PC1>telnet 192.168.1.2
 ​
 ### PC2 配置 缺省路由
 [PC2]ip route-static 0.0.0.0 0 192.168.2.1
 #PC2 测试结果 与 PC1 相反,只能 登录 R2 和 ping通 R1
 <PC2>ping 192.168.1.1
 <PC2>telnet 192.168.1.2

PC1:

                                 

PC2:

                                

二、NAT 网络地址转换

定义

网络地址转换,在 边界路由器 上,进行 公有地址私有地址 之间 的转换。

NAT 分类

  • 静态 NAT

  • 动态 NAT

  • NAPT

  • 端口映射

IP地址 分类:
  • 公有 IP全球唯一,可以在互联网中使用 ---- 付费使用

  • 私有 IP本地唯一,不可以在互联网使用 ---- 免费使用

私有地址:
  • A 类 私有地址:10.0.0.0 ~ 10.255.255.255

  • B 类 私有地址:172.16.0.0 ~ 172.31.255.255

  • C 类 私有地址:192.168.0.0 ~ 192.168.255.255

注意:华为设备 的 NAT 配置 一律默认在 边界路由器的出接口 上配置。

静态 NAT

定义:
  • 通过配置在我们 私网边界路由器 上建立维护一张 静态地址映射表,这张表 反映了 公有IP私有IP 之间一一对应的关系。

  • 内网的数据包 来到 边界路由器 上,会先检查其 目的地 是不是 公网IP;如果是,就会根据 静态地址映射表 上的 映射关系 查找该 源IP对应的 公网IP

  • 如果有记录,则将 发往公网的数据包源IP 改为 对应的公网IP

映射:

首先要进入 边界路由器出接口

nat static global [公网IP] inside [私网IP]

将 公网IP 映射为 私网IP。

查表:
display nat static

查询 静态映射表

动态 NAT

区别:

动态NAT 和 静态NAT 最大的区别 在于 地址映射表的内容可以变化的,动态NAT 不再是一一对应的关系 而是 实现 多对多的转换

NAPT 端口地址转化(PAT)

  • 为解决 动态NAT 同一时间 一个公网IP 只能对应 一个私网IP 的问题,在 边界路由器再维护 一张 源端口号地址映射关系表

  • 因为 端口号 的取值范围为 1~65535,即 65535个;所以 NAPT 同时支持通过 的数据包数量即为 65535 个,这就形成了 一对多 的NAPT;

  • 华为系统中,称这种 一对多 的 NAPT 叫做 EASY IP

  • 当 上网需求 非常大时,一个 公网IP 就可能 不够使用,我们也可以使用 多个公网 IP。这样就形成了 65535 的 倍数增长,也就形成了 多对多 的 NAPT

EASY IP:

首先进入 标准 ACL 2000

rule permit source [源IP] [通配符]

源IPIP地址 全部定义为 感兴趣流量

nat outbound 2000

在该接口的 出的方向地址转化 所有 ACL 2000 内的流量

多对多:
创建:
nat address-group [编号] [范围1] [范围2]

创建 IP 范围区间公网地址池

配置 ACL 抓捕流量:

首先进入 标准 ACL 2000

rule permit source [网段IP] [通配符]

抓捕 内网流量

进入外网接口

nat outbound 2000 address-group 1

将 ACL 2000 定义的 感兴趣流量 交给 1号公网地址池 进行 nat转换

  • 加 no-pat静态 多对多,相当于 多个一对一,一般用不上。

  • 不加 no-pat动态 多对多,相当于 多个一对多

端口映射

首先进入需要 映射的接口

nat server protocol tcp global current-interface [端口号] inside [映射IP] [端口号]

将该接口 服务器 TCP 协议端口 映射为 映射IP地址端口

例:

nat server protocol tcp global current-interface [8080] inside [192.168.1.20] [80]

8080 为 供 映射使用 的 高端口。

将该接口 服务器 TCP 协议 的 8080 端口 映射为 192.168.1.20 这个 IP地址的 80 端口

练习:

先进行基础配置。

静态 NAT:
 #先配置 外网 到 R1 的 缺省路由 和 R2 的 静态
 [R1]ip route-static 0.0.0.0 0 192.168.2.2
 [R2]ip route-static 192.168.1.0 24 192.168.2.1
 ### 此时 已经 全网通 ###
 ​
 #配置 静态 NAT,将 公网IP 12.1.1.3 映射给 内网IP 192.168.1.2
 [R2-GigabitEthernet0/0/1]nat static global 12.1.1.3 inside 192.168.1.2
地址转化:

先将 静态 NAT 的配置 删除。

 ### 首先 进入 标准 ACL 2000,无需限制用不上 3000
 [R2]acl 2000
 #将 汇总的网段 范围内所有的 IP地址 (内网) 定义为 感兴趣流量
 [R2-acl-basic-2000]rule permit source 192.168.0.0 0.0.255.255
 #在 出接口的方向上 地址转化 所有的内网 ACL 2000流量
 [R2-GigabitEthernet0/0/1]nat outbound 2000
多对多:

先将 nat outbound 2000 命令行 删除。

 #R2 创建 公网地址池,编号为 1,范围为 12.1.1.3 到 12.1.1.10
 [R2]nat address-group 1 12.1.1.3 12.1.1.10
 #将 ACL 2000 定义的 感兴趣流量 交给 公共地址池 1 进行 NAT 转换
 [R2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1

通过在 PC ping通 外网IP 12.1.1.2,对 ISP 进行抓包

可以发现 PC 的 源IP地址 被转化为 外网 IP地址。

端口映射:

新增一个 服务器,配置如下:

 #将 该接口 服务器 TCP 协议 的 80 端口 映射给 IP地址 的 80 端口
 ### 用接口的 80 端口 映射为 服务器 的 80 网页端口
 [R2-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 80 inside 192.168.1.10 80
 #检查 接口配置
 [R2-GigabitEthernet0/0/1]display this 

我们再给 交换机 连接一台 服务器 192.168.1.20。

 #将该接口 服务器 TCP 协议 的 8080 端口 映射为 192.168.1.20 这个 IP地址的 80 网页端口
 ### 8080 为 高端口
 nat server protocol tcp global current-interface 8080 inside 192.168.1.20 80
  • 41
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璀云霄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值