我们根据 GOST 进行加密:动态流量路由设置指南

我们根据 GOST 进行加密:动态流量路由设置指南
如果贵公司通过网络传输或接收依法受保护的个人数据和其他机密信息,则需要使用GOST加密。 今天我们将告诉您我们如何在其中一个客户处基于 S-Terra 加密网关 (CS) 实施此类加密。 信息安全专家以及工程师、设计师和建筑师都会对这个故事感兴趣。 在这篇文章中,我们不会深入探讨技术配置的细微差别;我们将重点关注基本设置的关键点。 有关设置 Linux 操作系统守护程序(S-Terra CS 所基于的)的大量文档可在 Internet 上免费获取。 设置专有 S-Terra 软件的文档也可在以下位置公开获取: 门户 制造商。

关于该项目的几句话

客户的网络拓扑是标准的——中心和分支机构之间的全网状。 有必要在所有站点之间引入信息交换通道的加密,其中有8个。

通常,在此类项目中,一切都是静态的:在加密网关 (CG) 上设置到站点本地网络的静态路由,注册用于加密的 IP 地址 (ACL) 列表。 然而,在这种情况下,站点没有集中控制,本地网络内任何事情都可能发生:可以以各种可能的方式添加、删除和修改网络。 为了避免在更改站点本地网络寻址时重新配置 KS 上的路由和 ACL,决定使用 GRE 隧道和 OSPF 动态路由,其中​​包括所有 KS 和站点网络核心级别的大多数路由器(在某些站点,基础设施管理员更喜欢在内核路由器上使用 SNAT 来实现 KS)。

GRE 隧道让我们解决了两个问题:
1. 在ACL中使用CS外部接口的IP地址进行加密,封装发送到其他站点的所有流量。
2. 在 CS 之间组织 ptp 隧道,这允许您配置动态路由(在我们的示例中,提供商的 MPLS L3VPN 在站点之间组织)。

客户下令实施加密即服务。 否则,他不仅必须维护加密网关或将其外包给某些组织,而且还必须独立监控加密证书的生命周期,按时更新证书并安装新证书。
我们根据 GOST 进行加密:动态流量路由设置指南
现在是实际的备忘录 - 我们如何配置以及配置什么

CII 主题注意事项:设置加密网关

基本网络设置

首先,我们启动一个新的CS并进入管理控制台。 您应该首先更改内置管理员密码 - 命令 更改用户密码管理员。 然后你需要执行初始化程序(命令 初始化),在此期间输入许可证数据并初始化随机数传感器(RNS)。

注意! S-Terra CC初始化时会建立安全策略,安全网关接口不允许报文通过。 您必须创建自己的策略或使用命令 运行 csconf_mgr 激活 激活预定义的允许策略。
接下来,您需要配置外部和内部接口的寻址以及默认路由。 最好使用 CS 网络配置并通过类似 Cisco 的控制台配置加密。 该控制台旨在输入类似于 Cisco IOS 命令的命令。 使用类似于 Cisco 的控制台生成的配置反过来会转换为操作系统守护程序使用的相应配置文件。 您可以使用以下命令从管理控制台转到类似 Cisco 的控制台 配置.

更改内置用户 cscons 的密码并启用:

>启用
密码:csp(预装)
#配置终端
#username cscons 特权 15 秘密 0 #enable 秘密 0 设置基本网络配置:

#接口GigabitEthernet0/0
#ip地址10.111.21.3 255.255.255.0
#不关机
#接口GigabitEthernet0/1
#ip地址192.168.2.5 255.255.255.252
#不关机
#ip 路由 0.0.0.0 0.0.0.0 10.111.21.254

GRE

退出类似 Cisco 的控制台并使用命令转到 debian shell 系统。 为用户设置您自己的密码 团队 passwd文件.
在每个控制室,为每个站点配置单独的隧道。 隧道接口在文件中配置 / etc /网络/接口。 IP 隧道实用程序包含在预安装的 iproute2 集中,负责创建接口本身。 接口创建命令写入pre-up选项中。

典型隧道接口的配置示例:
汽车站点1
iface site1 inet 静态
地址192.168.1.4
网络掩码255.255.255.254
pre-up ip 隧道添加 site1 模式 gre 本地 10.111.21.3 远程 10.111.22.3 key hfLYEg^vCh6p

注意! 需要注意的是,隧道接口的设置必须位于该节之外

###netifcfg-开始###
*****
###netifcfg-结束###

否则,当通过类似 Cisco 的控制台更改物理接口的网络设置时,这些设置将被覆盖。

动态路由

在S-Terra中,动态路由是使用Quagga软件包实现的。 要配置 OSPF,我们需要启用和配置守护进程 斑马 и ospfd。 zebra 守护程序负责路由守护程序和操作系统之间的通信。 ospfd 守护进程,顾名思义,负责实现 OSPF 协议。
OSPF 通过守护程序控制台或直接通过配置文件进行配置 /etc/quagga/ospfd.conf。 参与动态路由的所有物理和隧道接口都将添加到该文件中,并且还将声明将通告和接收通告的网络。

需要添加的配置示例 ospfd配置文件:
eth0接口
!
eth1接口
!
接口站点1
!
接口站点2
路由器 ospf
ospf 路由器 ID 192.168.2.21
网络 192.168.1.4/31 区域 0.0.0.0
网络 192.168.1.16/31 区域 0.0.0.0
网络 192.168.2.4/30 区域 0.0.0.0

在这种情况下,地址 192.168.1.x/31 保留用于站点之间的隧道 ptp 网络,地址 192.168.2.x/30 保留用于 CS 和内核路由器之间的传输网络。

注意! 为了减少大型安装中的路由表,您可以使用以下结构过滤传输网络本身的公告 没有重新分配连接 или 重新分配连接的路线图.

配置守护进程后,需要更改守护进程的启动状态 /etc/quagga/守护进程。 在选项中 斑马 и ospfd 没有更改为是。 启动 quagga 守护进程并将其设置为在启动 KS 命令时自动运行 update-rc.d quagga 启用.

如果GRE隧道和OSPF配置正确,那么KSh和核心路由器上应该会出现其他站点网络中的路由,从而实现本地网络之间的网络连通。

我们对传输的流量进行加密

正如已经写过的,通常在站点之间进行加密时,我们会指定 IP 地址范围 (ACL),在这些范围之间的流量将被加密:如果源地址和目标地址落在这些范围内,那么它们之间的流量就会被加密。 然而,在这个项目中,结构是动态的,地址可能会改变。 由于我们已经配置了 GRE 隧道,因此我们可以指定外部 KS 地址作为加密流量的源地址和目标地址 - 毕竟,已经被 GRE 协议封装的流量到达时需要进行加密。 换句话说,从一个站点的本地网络到其他站点已公布的网络进入 CS 的所有内容都是加密的。 在每个站点内都可以执行任何重定向。 因此,如果本地网络发生任何变化,管理员只需修改从他的网络发往该网络的公告,并且该公告将可供其他站点使用。

S-Terra CS 中的加密是使用 IPSec 协议执行的。 我们根据 GOST R 34.12-2015 使用“Grasshopper”算法,为了与旧版本兼容,您可以使用 GOST 28147-89。 从技术上讲,可以对预定义密钥 (PSK) 和证书执行身份验证。 然而,在工业操作中,必须使用根据 GOST R 34.10-2012 颁发的证书。

使用该实用程序可处理证书、容器和 CRL 证书管理器。 首先,使用命令 cert_mgr 创建 需要生成私钥容器和证书请求,发送到证书管理中心。 收到证书后,必须使用以下命令将其与根 CA 证书和 CRL(如果使用)一起导入 cert_mgr 导入。 您可以使用以下命令确保安装所有证书和 CRL cert_mgr 显示.

证书安装成功后,进入类似Cisco的控制台配置IPSec。
我们创建一个 IKE 策略,指定所创建的安全通道所需的算法和参数,并将其提供给合作伙伴进行批准。

#crypto isakmp 策略 1000
#encr gost341215k
#哈希 gost341112-512-tc26
#验证标志
#组vko2
#一生3600

该策略在构建IPSec第一阶段时应用。 第一阶段顺利完成的结果是SA(安全协会)的成立。
接下来,我们需要定义用于加密的源和目标IP地址(ACL)列表,生成转换集,创建加密映射(crypto map)并将其绑定到CS的外部接口。

设置访问控制列表:
#ip 访问列表扩展站点1
#permit gre 主机 10.111.21.3 主机 10.111.22.3

一组转换(与第一阶段相同,我们使用模拟插入生成模式的“Grasshopper”加密算法):

#crypto ipsec 转换集 GOST esp-gost341215k-mac

我们创建一个加密映射,指定 ACL、转换集和对等地址:

#crypto map MAIN 100 ipsec-isakmp
#匹配地址site1
#set 变换设置 GOST
#设置对等点10.111.22.3

我们将加密卡绑定到收银机的外部接口:

#接口GigabitEthernet0/0
#ip地址10.111.21.3 255.255.255.0
#加密地图主要

要加密与其他站点的通道,您必须重复创建 ACL 和加密卡的过程,更改 ACL 名称、IP 地址和加密卡号。

注意! 如果不使用 CRL 的证书验证,则必须明确指定:

#crypto pki 信任点 s-terra_technological_trustpoint
#撤销检查无

至此,可以认为设置完成了。 在类似 Cisco 的控制台命令输出中 显示加密 isakmp sa и 显示加密 ipsec sa IPSec第一期和第二期的建设应该得到体现。 使用命令可以获得相同的信息 sa_mgr 显示,从 debian shell 执行。 在命令输出中 cert_mgr 显示 应出现远程站点证书。 此类证书的状态将是 远程。 如果没有建立隧道,则需要查看 VPN 服务日志,该日志存储在文件中 /var/log/cspvpngate.log。 文档中提供了日志文件的完整列表及其内容描述。

监控系统的“健康状况”

S-Terra CC 使用标准 snmpd 守护程序进行监控。 除了典型的Linux参数之外,开箱即用的S-Terra还支持根据CISCO-IPSEC-FLOW-MONITOR-MIB发布有关IPSec隧道的数据,这就是我们在监控IPSec隧道状态时使用的数据。 还支持将脚本执行结果输出为值的自定义 OID 功能。 此功能允许我们跟踪证书到期日期。 编写的脚本解析命令输出 cert_mgr 显示 结果给出了本地证书和根证书到期之前的天数。 当进行大量冠状动脉搭桥手术时,这项技术是必不可少的。
我们根据 GOST 进行加密:动态流量路由设置指南

这样的加密有什么好处呢?

S-Terra KSh 开箱即用地支持上述所有功能。 也就是说,不需要安装任何可能影响加密网关认证以及整个信息系统认证的额外模块。 站点之间可以有任何渠道,甚至可以通过互联网。

由于当内部基础设施发生变化时,无需重新配置加密网关, 系统作为服务运行,这对于客户来说非常方便:他可以将他的服务(客户端和服务器)放置在任何地址,并且所有更改都将在加密设备之间动态传输。

当然,加密由于开销成本(overhead)会影响数据传输速度,但影响很小——通道吞吐量最多可以降低5-10%。 同时,该技术已经过测试,即使在相当不稳定且带宽较低的卫星信道上也显示出良好的效果。

Igor Vinokhodov,Rostelecom-Solar 第二线管理工程师

来源: habr.com

添加评论