根据GOST加密:有关设置动态流量路由的备忘录


如果您的公司通过网络传输或接收受法律保护的个人数据和其他机密信息,则需要按照GOST进行加密。 今天,我们将告诉您如何在其中一位客户的基础上基于S-Terra加密网关(KS)实施这种加密。 这个故事将对信息安全专家以及工程师,设计师和架构师很有趣。 在本文中,我们不会深入探讨技术配置的细微差别-我们将介绍基本设置的关键点。 Internet上免费提供了大量有关配置Linux OS守护程序的文档,而S-Terra KS则基于该文档。 S-Terra专有软件配置文档也可以在制造商的门户网站上公开获得。

关于项目的几句话


客户的网络拓扑是典型的-中心和分支机构之间的全网格。 要求在所有站点之间引入信息交换通道的加密,该站点共有8个。

通常,在此类项目中,所有内容都是静态的:在加密网关(KS)上,将静态路由设置为站点的局域网,并写入用于加密的IP地址(ACL)列表。 但是,在这种情况下,站点没有集中管理,并且本地网络中可能发生任何事情:可以以各种方式添加,删除和修改网络。 为了避免在更改站点上本地网络的地址时重新配置到KS的路由和ACL,决定使用GRE隧道和动态路由OSPF,该协议包括站点上的所有KS和网络核心级别的大多数路由器(在某些站点,首选基础结构管理员)在内核路由器上按照KS的方向使用SNAT)。

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

客户命令将加密作为服务实施。 否则,他不仅必须支持加密网关或将某些组织外包,而且还必须独立监控加密证书的生命周期,及时更新它们并安装新证书。

现在,备忘录本身-我们如何以及如何设置

KII主题说明:我们配置了加密网关


基本网络设置


首先,我们启动一个新的缓存并进入管理控制台。 您应该首先更改内置管理员的密码 - 更改用户密码管理员命令。 然后,有必要执行初始化过程( 初始化命令),在该过程中输入许可证数据并初始化随机数传感器(DSN)。

注意! 初始化S-Terra KS后,将建立安全策略,其中安全网关接口不传递数据包。 您必须创建自己的策略,或使用run csconf_mgr Activate命令激活预定义的权限策略。
接下来,您需要配置外部和内部接口的寻址以及默认路由。 最好使用缓存的网络配置并通过类似于Cisco的控制台配置加密。 此控制台旨在输入与Cisco IOS命令类似的命令。 依次将使用类似Cisco的控制台创建的配置转换为OS守护程序使用的相应配置文件。 您可以使用configure命令从管理控制台转到类似于Cisco的控制台。

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

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

#interface GigabitEthernet0 / 0
#ip地址10.111.21.3 255.255.255.0
#不关机
#interface 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的控制台,并使用system命令进入debian shell。 使用passwd命令为root用户设置您自己的密码。
每个KSh上为每个站点配置了单独的隧道。 隧道接口在/ etc / network / interfaces文件中配置。 IP隧道实用程序是iproute2的预定义集的一部分,它负责创建接口本身。 创建接口的命令被写入pre-up选项中。

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

注意! 应该注意的是,隧道接口设置必须位于本节的外部

### netifcfg-开始###
*****
### netifcfg-end ###

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

动态路由


在S-Terra中,动态路由是使用Quagga软件包实现的。 要配置OSPF,我们需要启用并配置zebraospfd守护程序 。 zebra守护程序负责路由守护程序和操作系统之间的交互。 顾名思义,ospfd守护程序负责实现OSPF协议。
可以通过守护程序控制台或直接通过/etc/quagga/ospfd.conf配置文件来配置OSPF。 动态路由中涉及的所有物理和隧道接口均已添加到文件中,并且宣布了将要宣布的网络并接收通知。

要添加到ospfd.conf的示例配置:
eth0接口

eth1接口

界面site1

界面site2
路由器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为KS和内核路由器之间的传输网络分配。

注意! 为了减少大型安装中的路由表,您可以使用no redistribute连接redistribute连接的路由映射结构过滤传输网络本身的公告。

设置守护程序后,您需要在/ etc / quagga / daemons中更改守护程序启动状态。 在选项zebraospfd中,没有固定为yes。 在使用update-rc.d quagga enable命令启动缓存时,运行quagga守护程序并设置其自动运行。

如果GRE隧道和OSPF配置正确,则到其他站点的网络的路由应出现在KS和内核路由器上,因此将在本地网络之间建立网络连接。

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


如前所述,在站点之间进行加密时,我们通常会指定在其间加密通信的IP地址范围(ACL):如果源地址和目标地址属于这些范围,则将加密它们之间的通信。 但是,在此项目中,结构是动态的,地址可以更改。 由于我们已经设置了GRE隧道,因此我们可以将外部KS地址指定为流量加密的源地址和目标地址-因为对于加密,流量已经被GRE协议封装。 换句话说,所有从一个站点的本地网络到其他站点声明的网络进入缓存的内容均被加密。 并且在每个站点中已经可以执行任何转发。 因此,在本地网络发生任何变化的情况下,管理员只需修改从其网络到中学方向的公告,便可以在其他站点使用。

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

使用cert_mgr实用程序来处理证书,容器和CRL。 首先,使用cert_mgr create命令, 需要创建一个私钥容器和一个证书请求,这些请求将被发送到证书管理中心。 收到证书后,必须使用cert_mgr import命令以及CA和CRL的根证书(如果使用)将其导入 。 您可以使用cert_mgr show命令验证是否已安装所有证书和CRL。

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

#crypto isakmp策略1000
#encr gost341215k
#hash gost341112-512-tc26
#身份验证标志
#group vko2
#lifetime 360​​0

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

设置ACL:
#ip访问列表扩展site1
#permit gre主机10.111.21.3主机10.111.22.3

一组转换(以及对于第一阶段,我们使用模拟模式的Grasshopper加密算法):

#crypto ipsec transform-set GOST esp-gost341215k-mac

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

#crypto map主要100 ipsec-isakmp
#match地址site1
#set transform-set GOST
#set对等10.111.22.3

我们将加密映射附加到CABG的外部接口:

#interface GigabitEthernet0 / 0
#ip地址10.111.21.3 255.255.255.0
#crypto map主

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

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

#crypto pki trustpoint s-terra_technologic_trustpoint
#吊销检查无

在此设置上可以认为是完整的。 类似于Cisco的控制台命令的输出显示crypto isakmp sacrypto ipsec sa应该反映IPSec的第一和第二阶段的构建。 使用从debian shell执行的sa_mgr show命令可以获得相同的信息。 cert_mgr show命令的输出应显示远程站点证书。 此类证书的状态为远程 。 如果未构建隧道,则需要查看VPN服务日志,该日志存储在/var/log/cspvpngate.log文件中。 文档中提供了日志文件的完整列表及其内容说明。

监控系统的“健康状况”


S-Terra KS使用标准的snmpd守护程序进行监视。 除了典型的Linux参数外,开箱即用的S-Terra还根据CISCO-IPSEC-FLOW-MONITOR-MIB支持IPSec隧道的输出,这是我们用来监视IPSec隧道状态的工具。 还支持自定义OID的功能,将脚本的结果作为值。 此功能使我们可以跟踪证书的到期日期。 编写的脚本将解析cert_mgr show命令的输出,并因此给出本地证书和根证书到期之前的天数。 在管理大量CABG时,此技术必不可少。


这种加密的秘诀是什么


KS S-Terra“开箱即用”支持上述所有功能。 也就是说,没有必要安装任何其他可能影响加密网关认证和整个信息系统认证的模块。 站点之间的通道可以是任何通道,甚至可以通过Internet。

由于在更改内部基础结构时无需重新配置加密网关,因此该系统作为服务运行 ,对客户而言非常方便:他可以将其服务(客户端和服务器)放置在任何地址,并且所有更改都在加密设备之间动态传输。

当然,由于开销引起的加密会影响数据传输速率,但影响不大-通道带宽最多可减少5-10%。 此外,该技术已经过测试,即使在不稳定且带宽较低的卫星频道上也显示出良好的效果。

Rostelecom Solar第二管理行的工程师Igor Vinokhodov

Source: https://habr.com/ru/post/zh-CN471470/


All Articles