ASA防火墙高级配置——远程登陆,NAT应用,NAT豁免

一、实验拓补图

该实验使用GNS3软件部署,主机配置IP地址(指定各自网关),你们自行配置

在这里插入图片描述

1.R1路由器配置

F0/0

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int f0/0
R1(config-if)#ip add 100.1.1.254 255.255.255.0
R1(config-if)#no sh
Ctrl+Z
R1#ping 100.1.1.1		#测试和100.1.1.1的连通性

F1/0

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int f1/0
R1(config-if)#ip add 100.2.2.254 255.255.255.0
R1(config-if)#no sh
Ctrl+Z
R1#ping 100.2.2.2		#测试和100.2.2.2的连通性

F2/0

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int f2/0
R1(config-if)#ip add 192.168.10.1 255.255.255.0
R1(config-if)#no sh
R2(config-if)#exit

配置远程登录

R1(config)#enable password 456		#配置特权密码
R1(config)#line vty 0 4
R1(config-line)#password 123
R1(config-line)#login
R1(config-line)#exit

2.R2路由器配置

F0/0

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int f0/0
R2(config-if)#ip add 172.16.1.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit

F1/0

R2(config)#int f1/0
R2(config-if)#ip add 200.200.200.254 255.255.255.0
R2(config-if)#no sh
Ctrl+Z
R2#ping 200.200.200.1		#测试和外网连通性

在这里插入图片描述
配置远程登录

R2(config)#enable password 456		#配置特权密码
R2(config)#line vty 0 4
R2(config-line)#password 123
R2(config-line)#login
R2(config-line)#exit

3.配置DMZ区域服务器

1)FTP服务器

[root@localhost ~]# yum -y install vsftpd		#安装 FTP 服务
[root@localhost ~]# systemctl start vsftpd		#开启 FTP 服务
[root@localhost ~]# systemctl enable vsftpd		#设置 FTP 开启自启

在这里插入图片描述

2)HTTP服务器

[root@localhost ~]# yum -y install httpd		#安装 httpd 服务
[root@localhost ~]# echo "This is DMZ" >> /var/www/html/index.html	#编写测试页面
[root@localhost ~]# systemctl start httpd		#开启httpd服务
[root@localhost ~]# systemctl enable httpd		#设置httpd开机自启

在这里插入图片描述

二、ASA 基础

1.ASA 的基本配置

1)配置主机名

ciscoasa(config)# hostname ASA

2)配置特权模式密码

ASA(config)# enable password 456

3)配置远程登录密码

ASA(config)# passwd 123

2.接口配置

E0/0

ASA(config)# int e0/0
ASA(config-if)# nameif dmz
INFO: Security level for "dmz" set to 0 by default.
ASA(config-if)# security-level 50
ASA(config-if)# ip add 192.168.1.254 255.255.255.0
ASA(config-if)# no sh
Ctrl+Z
ASA# ping 192.168.1.1		#测试和dmz区域的连通性

在这里插入图片描述
E0/1

ASA# conf t
ASA(config)# int e0/1
ASA(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ASA(config-if)# security-level 0
ASA(config-if)# ip add 172.16.1.254 255.255.255.0
ASA(config-if)# no sh
Ctrl+Z
ASA# ping 172.16.1.1		#测试和R2路由器的连通性

在这里插入图片描述
E0/2

ASA(config)# int e0/2
ASA(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ASA(config-if)# security-level 100
ASA(config-if)# ip add 192.168.10.2 255.255.255.0
ASA(config-if)# no sh
Ctrl+Z
ASA# ping 192.168.10.1		#测试和R1路由器的连通性

在这里插入图片描述
注意:如果出现以下现象,是接口配置不对的问题,因为接口并不是相对应的
在这里插入图片描述
解决方案

  • 将原接口删除(删除接口下面有命令),对另外接口进行相同配置,配置完成后再次测试连通性;如果修改完后还未通信,就再次将原接口删除,对另外接口进行配置。

3.配置路由

  • 配置 R1 路由器出去的默认路由
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2 
  • 配置 R2 路由器回来的默认路由
R2(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.254
  • 配置 ASA 去 inside 区域的静态路由
ASA(config)# route inside 100.1.1.0 255.255.255.0 192.168.10.1
ASA(config)# route inside 100.2.2.0 255.255.255.0 192.168.10.1
  • 配置 ASA 去 outside 区域的默认路由
ASA(config)# route outside 0 0 172.16.1.1

4.验证

  • 高优先级默认可以访问低优先级端口,反之低优先级不能访问高优先级端口

1)在内部主机上添加 Telnet 功能

  • 控制面板——程序——打开或关闭 Windows 功能

在这里插入图片描述

2)打开 cmd 命令行进行 Telnet 远程登录 R2 路由器

在这里插入图片描述
在这里插入图片描述
注意:默认情况下,ping 包不允许通过防火墙 (ICMP协议对于防火墙来说是无状态化,默认拒绝ping 包通过)

查询 Conn 表:

ASA# sh conn detail

在这里插入图片描述

5.ACL 的配置

1)基本语法结构

  • 标准ACL:ASA(config)# access-list 名字 permit 或 deny 网段 掩码 (正常的掩码) (和路由器不同,路由器写的是子网掩码的反掩码)
  • 扩展ACL:ASA(config) # access-list 名字 permit 或 deny 协议 源网段 源掩码 目标网段 目标掩码 端口号

2)配置扩展ACL使其ICMP包通过

创建一个名字是 out_to_in ,允许主机172.16.1.1 访问主机100.1.1.1 所有协议的ACL:

ASA(config)# access-list out_to_in permit ip host 172.16.1.1 host 100.1.1.1

把刚刚创建的ACL 应用在 ASA 的外部接口的in 方向:

ASA(config)# access-group out_to_in in interface outside

3)验证

100.1.1.1验证:
在这里插入图片描述
100.2.2.2验证:
在这里插入图片描述
因为刚才配置的ACL允许172.16.1.1访问100.1.1.1,所以100.1.1.1可以访问,而100.2.2.2没做ACL,所以不可以访问(除了ICMP不可以,其它协议都可以访问)

6.其它配置

  • 保存配置:ASA # write = wr = copy running-config startup-config
  • 清除所有配置:ASA(config)# clear configure all
  • 清除所有的ACL :ASA(config)# clear configure access-list
  • 清除某一条 ACL :ASA(config)# clear configure access-list ACL 的名字
  • 删除 startup-config:ASA# write erasa
  • 查询路由表:ASA# show route

7.ASA 的远程配置

  • 支持三种远程接入方式:TelenetSSH、ASDM(本篇不介绍)
  • 注意:以上三种方式都是为了远程登录 ASA 防火墙!!!

1)Telnet 远程登陆

  • Telnet 管理方式不够安全,默认是禁止从外网使用 Telnet 的方式接入

仅允许主机地址是100.1.1.1 的进行Telnet连接,其他的全部不允许

ASA(config)# telnet 100.1.1.1 255.255.255.255 inside

注释:

ASA(config)# telnet 100.1.1.0 255.255.255.0 inside (配置允许内部网段的100.1.1.0 进行Telnet 接入)

ASA(config)# telnet 0 0 inside (特殊命令;允许所有的内部网段使用Telnet接入)

100.1.1.1主机进行 Telnet 验证:
在这里插入图片描述
100.2.2.2主机进行 Telnet 验证:
在这里插入图片描述

  • 因为 ASA 防火墙上没做允许100.2.2.2主机使用 Telnet 远程登录 ASA 防火墙,所以 Telnet 不过去

2)SSH 远程登陆

  • SSH 可以安全的对 ASA 进行远程管理(一般用于外访内)
  1. 配置域名
ASA(config)# domain-name zhangsan
  1. 生成密钥对
ASA(config)# crypto key generate rsa modulus 1024
--------如果显示以下,输入 yes 即可
Do you really want to replace them? [yes/no]: yes
  1. 配置允许 SSH 接入
ASA(config)# ssh 0 0 outside    #允许所有的外部网段进行SSH接入
  1. 设置 SSH 版本,默认版本是 1,连接时就默认应用 SSH1
ASA(config)# ssh version 2		#把SSH版本改成2
  1. 外网客户机访问验证
    在这里插入图片描述
    在这里插入图片描述

8.ASA 的默认六条访问规则

  • DMZ区域:位于企业内网和外部网络之间的一个区域(用来放置一些必须公开的服务器)(安全级别一般设置为50)
  1. inside 可以访问 DMZ 和 outside 区域
  2. outside 默认不能访问 inside 和 DMZ 区域
  3. DMZ 可以访问 outside 但不能访问 inside 区域
  • 注意:如果想要实现外网访问 DMZ 可通过 ACL 的配置实现

三、ASA 的 NAT 应用

1.动态 NAT

  • 将一组 IP 地址转换为指定地址池中的 IP 地址

1)指定需要转换的网段

  • 格式:ASA(config)# nat (网段所在的接口名称) nat ID号 转换的网段 掩码
ASA(config)# nat (inside) 1 100.1.1.0 255.255.255.0

2)定义全局地址池(转换后的地址池)

  • 格式:ASA(config)# global (转换后接口名称) NAT ID 号 转换后唯一地址
ASA(config)# global (outside) 1 172.16.1.188-172.16.1.200

在这里插入图片描述

3)验证

使用 100.1.1.1 主机Telnet 远程登录 172.16.1.1
在这里插入图片描述
查看ASA防火墙转换条目

ASA# sh xlate detail

在这里插入图片描述
测试完后将刚才配置的动态 NAT 转换条目清除,方便后续测试

ASA(config)# clear xlate			  #清除NAT转换表
ASA(config)# clear configure nat      #删除动态NAT
ASA(config)# clear configure global   #清空全局地址池

在这里插入图片描述

2.动态 PAT

  • 将一组地址转换程一个地址(多转一)

1)指定需要转换的网段

  • 格式:ASA(config)# nat (网段所在的接口名称) nat ID号 转换的网段 掩码
ASA(config)# nat (inside) 1 0 0			#为防火墙中所有 inside 区域做转换

2)定义全局地址池(转换后的地址池)

  • 格式: ASA(config)# global (转换后接口名称) NAT ID 号 转换后唯一地址
ASA(config)# global (outside) 1 172.16.1.222
INFO: Global 172.16.1.222 will be Port Address Translated

在这里插入图片描述
分别使用内网两台主机 Telnet 远程登陆 R2 路由器
在这里插入图片描述
在这里插入图片描述
查看ASA防火墙转换条目

ASA# show xlate detail

在这里插入图片描述
注意:也可以将内部地址直接转换到外部的接口上(也就是图中的172.16.1.254)

ASA(config)# global (outside) 1 interface

测试完后将刚才配置的动态 PAT 转换条目清除,方便后续测试

ASA(config)# clear xlate			   #清除NAT转换表
ASA(config)# clear configure nat       #删除动态NAT
ASA(config)# clear configure global    #清空全局地址池

在这里插入图片描述

3.静态 NAT

  • 将一个内部地址转换为一个外部地址,一对一的转换,其主要作用是保证内网地址的安全

1)配置静态转换

  • 格式:ASA(config)# static (需要转换的接口名称,转换后所在接口名称) 转换后的全局IP 转换前的本地IP
ASA(config)# static (dmz,outside) 172.16.1.233 192.168.1.1

2)配置ACL

  • 静态转换后,外网如果想访问内网的转换前的地址,必须写一条ACL ,该ACL的目标应该指向转换后的IP
ASA(config)# access-list out_to_dmz permit ip host 200.200.200.1 host 172.16.1.233		
ASA(config)# access-group out_to_dmz in interface outside

3)验证

在 200.200.200.1 主机上使用浏览器访问转换后地址测试
在这里插入图片描述
查看转换条目

ASA# show xlate detail

=
测试完后将刚才配置的静态 NAT 转换条目清除,方便后续测试

ASA(config)# clear configure static		#删除静态NAT

4.静态 PAT

  • 将多个内网地址转换到一个公网地址,通过端口号去区分不同的服务

1)配置转换条目

  • 格式 :ASA(config)# static (转换前所在区域名称, 转换后所在区域名称) 协议 转换后地址 端口或服务 转换前地址 端口或服务

将DMZ区域中192.168.1.1 的HTTP服务和 192.168.1.2 中的 FTP 服务转换到 outside 区域的外部地址172.16.1.188 的 FTP 和 HTTP 服务

ASA(config)# static (dmz,outside) tcp 172.16.1.188 http 192.168.1.1 http
ASA(config)# static (dmz,outside) tcp 172.16.1.188 ftp 192.168.1.2 ftp

2)配置ACL

ASA(config)# access-list out_to_dmz permit ip host 200.200.200.1 host 172.16.1.188		
ASA(config)# access-group out_to_dmz in interface outside

3)验证

在这里插入图片描述
在这里插入图片描述
查看转换条目

ASA# show xlate detail

在这里插入图片描述
测试完后将刚才配置的静态 PAT 转换条目清除,方便后续测试

ASA(config)# clear configure static		#删除静态PAT

四、NAT 控制

默认高安全级别是可以访问低安全级别的,也就是说,即使我们不做 NAT,inside 也可以访问 Internet;而在真实环境中,inside 访问Internet 时,可以通过 ASA 将源地址是自己 IP 的请求包发送出去,但是却不会接收到回应包,因为私网地址在互联网上是不合法的,因此我们还是需要做 NAT,将私网地址映射为公网地址来访问互联网或被互联网访问

ASA 从 7.0 开始提供了一个 NAT 控制的开关,即 nat-control 命令,当我们开启 NAT 后,简单的配置中,inside 不能再访问 Internet 了,必须做 NAT 转换才能进行访问

默认情况下,是禁用 NAT 控制(no nat-control),但在实际环境中,我们一般启用 NAT 控制方便管理;在启用 NAT 控制时,NAT 规则是必须的;即发起的每一个连接都需要一个相应的 NAT 规则

1.禁用 NAT 控制

这是默认的情况,在禁用 NAT 控制是,NAT 规则并不是必须的:它允许匹配 NAT 规则的网段进行地址转换通信;也允许不匹配 NAT 规则的网段通信,只是不经过地址转换

ASA(config)# no nat-control

2.启用 NAT 控制

如果启用了 NAT 控制,NAT 的规则就是必须的:它允许匹配 NAT 规则的网段进行地址转换通信;禁止不匹配 NAT 规则的网段通信

ASA(config)# nat-control

3.NAT 豁免

当启用 NAT 控制时,每个发起的连接都需要一个相应的 NAT 规则,但是在某些应用场合(例如配置 VPN)需要绕过 NAT 规则。绕过 NAT 规则有很多种方法,NAT 豁免就是其中一种,NAT 豁免允许双向通信

1)启用 NAT 控制

ASA(config)# nat-control 

为 100.1.1.0/24 网段配置动态NAT

ASA(config)# nat-control 
ASA(config)# nat (inside) 1 100.1.1.0 255.255.255.0
ASA(config)# global (outside) 1 172.16.1.188-172.16.1.200

2)配置 NAT 豁免

为 100.2.2.0/24 网段配置 NAT豁免

ASA(config)# access-list nonat extended permit ip 100.2.2.0 255.255.255.0 172.16.1.0 255.255.255.0				
ASA(config)# nat (inside) 0 access-list nonat

3)验证

100.1.1.1验证
在这里插入图片描述
100.2.2.2验证
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46902396/article/details/110234838