思科防火墙IPsec配置--野蛮模式

2024-01-26 19:04

本文主要是介绍思科防火墙IPsec配置--野蛮模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络拓扑如上图所示,为方便记忆从左到右顺时针方向的网段的分别为192.168.1.0, 2.0, 3.0。

配置目标:两台思科防火墙之间建立IPsec VPN(野蛮模式),使得左边192.168.1.0网段能够访问右边192.168.3.0网段。左边ASA2作为连接发起端,右边ASA1作为连接接收端。在这里两边都是固定IP地址,在真实环境中发起端一般为非固定IP地址,如拨号上网的网络,光猫通过拨号动态获取IP地址,ASA2防火墙可以放在光猫的LAN口一端。接收一端必须有固定IP地址。

基本信息:该环境使用GNS3模拟软件,防火墙软件版本为8.0(2),更新的版本配置差不太多,只是有些命令需要选择ikev1或ikev2,选择ikev1即可。防火墙的e0/1作为outside口,ip地址为192.168.2.1和192.168.2.2。e0/0作为inside口,ip地址为192.168.1.1和192.168.3.1。配置完成后ipsec连接不会自动触发,需要数据请求通过隧道才会触发,比如在192.168.1.2上ping 192.168.3.2,就会触发ipsec连接。

ASA2(发起连接端)防火墙配置:

基本配置:

配置主机名:

hostname ASA2

配置接口和IP地址:

int e0/0

nameif inside

ip address 192.168.1.1 255.255.255.0

no shut

int e0/1

nameif outside

ip address 192.168.2.2 255.255.255.0

no shut

配置从192.168.1.0到192.168.3.0的数据包不做地址转换,该网络拓扑比较简单,可以不配置,但是真实环境比较复杂,一般都需要配置,故这里也配置上。

access-list no-nat extended permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0

nat (inside) 0 access-list no-nat

下面配置控制连接的参数,配置后,收到连接或发出连接请求时会根据策略号由低到高的匹配对端的策略

设置1号策略,策略号可以随便填,敲入后进入二层命令行

crypto isakmp policy 1

设置预共享密码(不是密钥),密码需要与对端一致,具体密码在通道命令里设置

 authentication pre-share

设置控制连接加密方法为3des,需要与对端一致

 encryption 3des

设置控制连接数据包完整性校验方法为sha,需要与对端一致

 hash sha

设置密钥生成的长度,需要与对端一致,一般号码越高,越长

 group 2

设置密钥更新周期,建议与对端一致

 lifetime 28800

下面配置数据连接的参数:

使用隧道(esp)方式,建议使用esp.  加密方式为3des,数据完整性校验方式为sha

crypto ipsec transform-set trans1 esp-3des esp-sha-hmac

配置NAT-T特性,这个特性使得防火墙outside的IP地址,如果在网络中有被转换为其他地址,则双方也能通讯,建议配置。如果outside的IP地址被网络中的设备NAT后没有配置这个选项,则IPSEC不能建立。这个命令后面会加一个数字表示多少秒,该数字表示周期性发送类似于心跳包的数据包,保持网络中网络设备的NAT会话不会被删除。

crypto isakmp nat-traversal 30

配置对端设备的身份识别方式(可以理解为账号名,一般登陆一个系统需要账户名和密码,密码就是预共享密码在后面配置)

简要介绍一下这个命令:

 crypto isakmp identity {address | hostname |  key-id 字符串 | auto}

可以看出有3种类型的识别方式, address,hostname, key-id。auto是address和hostname的综合,这里不介绍。识别方式要和对端一致。hostname的识别方式叫FQDN识别方式,hostname只是思科命令不是IPsec的术语。如果选择hostname则用户名(身份识别字符串)为设备的hostname,可以用show hostname命令查看具体字符串。

在本场景中,使用识别方式为hostname方式,则FQDN身份识别方式的识别字符串为ASA2。查看之前基本配置里的配置命令(hostname ASA2)。

crypto isakmp identity hostname

配置IPSEC通道

野蛮方式的通道名为对端的身份识别字符串,对端的识别方式为FQDN方式,识别字符串为ASA1

tunnel-group ASA1 type ipsec-l2l

配置这条命令后设备会有提示,表示该配置为数字证书或者对端为野蛮模式才会这样配,如下图所示,可以忽略这个提示。

配置预共享密码和断线检测

tunnel-group ASA1 ipsec-attributes

进入第二层命令模式

配置连接密码为123456,需与对端一致

  pre-shared-key  123456

配置IPSEC密码和断线检测,配置20秒超时后重传,重传3次判断为断线

  isakmp keepalive threshold 20 retry 3

配置哪些数据包需要转发到IPSEC通道,该配置需要设置一个ACL,然后后面配置绑定这个ACL

access-list goIntoTunnel extended permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0

配置cryto map。  cryto map是一个列表,该列表记录哪些数据包需要建立IPsec, 将前面配置的一些分散的信息绑定到一起形成一个ipsec连接的完整信息,这个列表有序号,序号可以随意填,匹配IPSEC参数的时候按照序号从低到高的顺序进行匹配。

设置10号入口,匹配ACL名为goIntoTunnel(该ACL已在之前设置好),需要与对端为192.168.2.1的地址建立IPSEC连接,数据连接参数为trans1(该参数已在之前设置),发起控制连接时使用野蛮模式发起连接。

crypto map mymap 10 match address goIntoTunnel

crypto map mymap 10 set peer 192.168.2.1

crypto map mymap 10 set transform-set trans1

crypto map mymap 10 set phase1-mode aggressive

将crypto map 绑定到outside并设置ISAKMP(Internet Security Association and Key Management Protocol)为enable。ISAKMP就是建立IPsec连接时需要使用的框架,包含一系列的规则。

crypto map mymap interface outside

crypto isakmp enable outside

设置允许IPSEC的数据包进入防火墙

sysopt connection permit-vpn

设置192.168.3.0的数据包通过outside接口进行发送

route outside 192.168.3.0 255.255.255.0 192.168.2.1

ASA2配置完毕。

配置ASA1:

基本配置:

配置主机名:

hostname ASA1

配置接口和IP地址:

int e0/0

nameif inside

ip address 192.168.3.1 255.255.255.0

no shut

int e0/1

nameif outside

ip address 192.168.2.1 255.255.255.0

no shut

配置从192.168.3.0到192.168.1.0的数据包不做地址转换,上面已介绍过。

access-list no-nat extended permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0

nat (inside) 0 access-list no-nat

下面配置控制连接的参数,上面已介绍过。

crypto isakmp policy 1

 authentication pre-share

 encryption 3des

 hash sha

 group 2

 lifetime 28800

下面配置数据连接的参数,上面已介绍过:

crypto ipsec transform-set trans1 esp-3des esp-sha-hmac

配置NAT-T特性,上面已介绍过。

crypto isakmp nat-traversal 30

配置对端设备的身份识别方式,上面已介绍过:

crypto isakmp identity hostname

配置IPSEC通道,上面已介绍过,和上面不同的是这里设置通道名为ASA2。。

tunnel-group ASA2 type ipsec-l2l

配置预共享密码和断线检测,上面已介绍过:

tunnel-group ASA2 ipsec-attributes

  pre-shared-key  123456

  isakmp keepalive threshold 20 retry 3

配置哪些数据包需要转发到IPSEC通道,上面已介绍过。

access-list goIntoTunnel extended permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0

配置动态crypto maps:

由于野蛮模式的控制连接只需要设备认证方式和预共享密码匹配就能连接,对端的IP地址不知道(相当于信息不全),需要设置到动态crypto maps(Dynamic Crypto Maps)里。静态crypto maps就是ASA2里面配置的crypto maps那样。动态crypto maps只设置在野蛮模式的接收端,和静态crypto maps一样,也是把一些分散的信息集中起来形成一个完整的ipsec连接信息,里面的匹配规则也和静态crypto maps一样从低到高匹配,配置方式也和静态crypto maps一样。设置好之后,最终也要绑定到静态crypto maps上。然后把静态crypto maps绑定到接口上。

配置一个名为dyn1的动态crypto maps,配置30号入口(号码随便填写),匹配ACL名为goIntoTunnel(该ACL已在之前设置好),数据连接参数为trans1(该参数已在之前设置)。

crypto dynamic-map dyn1 30 match address goIntoTunnel

crypto dynamic-map dyn1 30 set transform-set trans1

将该动态crypto maps绑定到静态crypto maps上

crypto map mymap 50 ipsec-isakmp dynamic dyn1

将静态crypto map 绑定到outside并设置为enable,  上面已介绍过。

crypto map mymap interface outside

crypto isakmp enable outside

设置允许IPSEC的数据包进入防火墙

sysopt connection permit-vpn

设置192.168.1.0的数据包通过outside接口进行发送

route outside 192.168.1.0 255.255.255.0 192.168.2.2

ASA1配置完毕。

两个防火墙设置完毕后,只能从发起端的PC发送数据包请求通过隧道,才会触发ipsec连接(因为接收端的配置里没有发起端的IP地址信息)。可以从PC1(192.168.1.2)ping PC3(192.168.3.2)触发设备建立IPsec连接。可以使用show crypto isakmp sa查看控制连接是否建立,使用show crypto isakmp sa查看数据连接是否建立。如下图所示:

ASA1端:

ASA2端:

两个防火墙的所有配置如下:

ASA1配置:

ASA1# show run

: Saved

:

ASA Version 8.0(2)

!

hostname ASA1

enable password 8Ry2YjIyt7RRXU24 encrypted

names

!

interface Ethernet0/0

 nameif inside

 security-level 100

 ip address 192.168.3.1 255.255.255.0

!

interface Ethernet0/1

 nameif outside

 security-level 0

 ip address 192.168.2.1 255.255.255.0

!

interface Ethernet0/2

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/3

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/4

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/5

 shutdown

 no nameif

 no security-level

 no ip address

!

passwd 2KFQnbNIdI.2KYOU encrypted

boot config disk0:/.private/startup-config

ftp mode passive

access-list no-nat extended permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0

access-list goIntoTunnel extended permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0

pager lines 24

mtu inside 1500

mtu outside 1500

no failover

icmp unreachable rate-limit 1 burst-size 1

no asdm history enable

arp timeout 14400

nat (inside) 0 access-list no-nat

route outside 192.168.1.0 255.255.255.0 192.168.2.1 1

timeout xlate 3:00:00

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00

timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00

timeout uauth 0:05:00 absolute

dynamic-access-policy-record DfltAccessPolicy

no snmp-server location

no snmp-server contact

snmp-server enable traps snmp authentication linkup linkdown coldstart

crypto ipsec transform-set trans1 esp-3des esp-sha-hmac

crypto dynamic-map dyn1 30 match address goIntoTunnel

crypto dynamic-map dyn1 30 set transform-set trans1

crypto map mymap 50 ipsec-isakmp dynamic dyn1

crypto map mymap interface outside

crypto isakmp identity hostname

crypto isakmp enable outside

crypto isakmp policy 1

 authentication pre-share

 encryption 3des

 hash sha

 group 2

 lifetime 28800

no crypto isakmp nat-traversal

telnet timeout 5

ssh timeout 5

console timeout 0

threat-detection basic-threat

threat-detection statistics access-list

!

!

tunnel-group ASA2 type ipsec-l2l

tunnel-group ASA2 ipsec-attributes

 pre-shared-key *

 isakmp keepalive threshold 30 retry 2

prompt hostname context

Cryptochecksum:94ec1c22e27dc1a0deb4f5714d0e1453

: end

ASA1#

ASA2配置:

ASA2(config)# show run

: Saved

:

ASA Version 8.0(2)

!

hostname ASA2

enable password 8Ry2YjIyt7RRXU24 encrypted

names

!

interface Ethernet0/0

 nameif inside

 security-level 100

 ip address 192.168.1.1 255.255.255.0

!

interface Ethernet0/1

 nameif outside

 security-level 0

 ip address 192.168.2.2 255.255.255.0

!

interface Ethernet0/2

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/3

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/4

 shutdown

 no nameif

 no security-level

 no ip address

!

interface Ethernet0/5

 shutdown

 no nameif

 no security-level

 no ip address

!

passwd 2KFQnbNIdI.2KYOU encrypted

boot config disk0:/.private/startup-config

ftp mode passive

access-list no-nat extended permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0

access-list goIntoTunnel extended permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0

pager lines 24

mtu inside 1500

mtu outside 1500

no failover

icmp unreachable rate-limit 1 burst-size 1

no asdm history enable

arp timeout 14400

nat (inside) 0 access-list no-nat

route outside 192.168.3.0 255.255.255.0 192.168.2.1 1

timeout xlate 3:00:00

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00

timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00

timeout uauth 0:05:00 absolute

dynamic-access-policy-record DfltAccessPolicy

no snmp-server location

no snmp-server contact

snmp-server enable traps snmp authentication linkup linkdown coldstart

crypto ipsec transform-set trans1 esp-3des esp-sha-hmac

crypto map mymap 10 match address goIntoTunnel

crypto map mymap 10 set peer 192.168.2.1

crypto map mymap 10 set transform-set trans1

crypto map mymap 10 set phase1-mode aggressive

crypto map mymap interface outside

crypto isakmp identity hostname

crypto isakmp enable outside

crypto isakmp policy 1

 authentication pre-share

 encryption 3des

 hash sha

 group 2

 lifetime 28800

crypto isakmp nat-traversal 30

telnet timeout 5

ssh timeout 5

console timeout 0

threat-detection basic-threat

threat-detection statistics access-list

!

!

tunnel-group ASA1 type ipsec-l2l

tunnel-group ASA1 ipsec-attributes

 pre-shared-key *

 isakmp keepalive threshold 30 retry 3

prompt hostname context

Cryptochecksum:71847346d74c80d846fdf1bf850fcced

: end

ASA2(config)#

这篇关于思科防火墙IPsec配置--野蛮模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647766

相关文章

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

在Spring中配置Quartz的三种方式

《在Spring中配置Quartz的三种方式》SpringQuartz是一个任务调度框架,它允许我们定期执行特定的任务,在Spring中,我们可以通过多种方式来配置Quartz,包括使用​​@Sche... 目录介绍使用 ​​@Scheduled​​ 注解XML 配置Java 配置1. 创建Quartz配置

Kibana的安装和配置全过程

《Kibana的安装和配置全过程》Kibana是一个开源的数据分析和可视化平台,它与Elasticsearch紧密集成,提供了一个直观的Web界面,使您可以快速地搜索、分析和可视化数据,在本文中,我们... 目录Kibana的安装和配置1.安装Java运行环境2.下载Kibana3.解压缩Kibana4.配

tomcat在nginx中的配置方式

《tomcat在nginx中的配置方式》文章介绍了如何在Linux系统上安装和配置Tomcat,并通过Nginx进行代理,首先,下载并解压Tomcat压缩包,然后启动Tomcat并查看日志,接着,配置... 目录一、下载安装tomcat二、启动tomcat三、配置nginx总结提示:文章写完后,目录可以自动

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。