在企业环境中配置最大性能

本节提供系统配置提示和最佳实践,以帮助确保安全控制台在企业级部署中的最佳性能。然而,较小的环境仍可能受益于这些建议中的一些,特别是调整数据库和灾难恢复的部分。

关于安全控制台主机

安全控制台是部署中操作的基础。它管理Scan Engines,并创建一个存储库,存储关于数据库中每次扫描、发现的每个资产和发现的每个漏洞的信息。每次扫描之后,Security Console都会更新存储库,同时维护所有关于扫描、资产和漏洞的历史数据。Security Console托管基于web的界面,用于配置和操作应用程序、管理站点和扫描、生成报告和管理用户。

安全控制台旨在满足企业级部署的扩展需求。一个安全控制台可以处理数百个扫描引擎、数千个资产和任意数量的报告,只要它运行在足够的硬件资源上并且配置正确。

在企业环境中,Security Console最消耗资源的活动是处理、存储和显示扫描数据。

有关不同尺度所需资源的信息,请参阅容量需求规划

选择承载安全控制台的操作系统

安全控制台有Linux和Windows版本,可以安装在组织的硬件上,运行受支持的操作系统。Rapid7建议为大型企业部署在受支持的Linux操作系统上安装安全控制台,以提高性能和可伸缩性。

对于正式支持的系统要求,请参阅“InsightVM系统要求”页面

配置最优RAID

Rapid7建议在高性能RAID阵列上部署安全控制台。

Rapid7建议将多个磁盘配置成条纹镜像,也称为RAID 1+0或RAID 10阵列。这提供了更好的随机磁盘I/O性能,而不会牺牲冗余。该RAID 10需要安装安全控制台和PostgreSQL。操作系统应该生成很少的磁盘I/O,它也可以共享这个阵列。

作为参考,Rapid7设备使用单个RAID 10配置,横跨8或16个硬盘。此配置提供了安全控制台和操作系统所需的存储性能。虽然安全控制台将受益于ssd,但它们不是必需的。

Rapid7建议将安全控制台安装在操作系统的单独分区上。

调优PostgreSQL数据库

为了获得最佳性能,Rapid7建议调优PostgreSQL数据库。下面的小节提供了9.4和11.7版本PostgreSQL的调优指南。

配置安全控制台JVM内存

默认情况下,安全控制台将分配75%的系统内存给Java虚拟机(JVM)。当系统的内存达到32GB时,推荐使用此方法,而当系统的内存大于或等于64GB时,则应该减少分配给安全控制台的内存,并向PostgreSQL数据库提供更多的内存。

虽然安全控制台可以配置超过31GB的内存,但不建议使用32GB到48GB之间的值。有关为什么不推荐这些值的详细信息,请参阅下面的文章。https://blog.codecentric.de/en/2014/02/35gb-heap-less-32gb-java-jvm-memory-oddities/

适用于内存超过40GB的系统,创建一个customaruntimeenvironment.env.文件以限制安全控制台的JVM内存。例如,完成以下步骤将JVM内存限制为31GB:

  1. 创建您的customaruntimeenvironment.env.文件in./ opt / rapid7 / nexpose / nsc /
  2. 开放customaruntimeenvironment.env.在文本编辑器中添加以下行:
         
1
-Xmx31G
2
- xx: MaxNewSize = 7 g
  1. 保存customaruntimeenvironment.env.并重新启动PostgreSQL数据库服务。

对于内存小于40GB的系统:

  • 保持为安全控制台分配的默认75%内存。
  • 为操作系统预留3GB (Linux)或6GB (Windows)内存。
  • 使用剩余内存调优PostgreSQL数据库http://pgtune.leopard.in.ua/

以下是具有128GB内存的系统的示例分配:

  • 操作系统(Linux): 3GB
  • 安全控制台:31 gb
  • PostgreSQL:94GB.

调整PostgreSQL数据库,编辑/opt/rapid7/nexpose/nsc/nxpgsql/nxpdata/postgresql.conf.conf.使用pgtune中的推荐设置。下面的调优片段使用前面的示例分配数字,用于硬盘驱动器上的Linux安装。

警告-请确保为数据库版本提供正确的调优设置

这些示例中显示的调优设置包含的参数对于每个版本的PostgreSQL都是唯一的。将基于9.4的调优参数应用到11.7数据库(反之亦然)将阻止数据库启动。要特别注意应用与数据库当前PostgreSQL版本相对应的调优设置。如果您需要验证您的数据库运行的是哪个版本的PostgreSQL,请导航到管理>全局和控制台设置>管理>数据库这样做。

针对9.4数据库的调优

         
抨击
1
#db版本:9.4
2
#操作系统类型:linux
3.
# DB类型:web
4
#总内存(RAM): 94 GB
5
#连接数:100
6
#数据存储:hdd
7
8
max_connectionsOne hundred.
9
Shared_Buffers.24064 mb
10
effective_cache_size72192 mb
11
维护_Work_mem.2 gb
12
checkpoint_completion_target0.7
13
Wal_Buffers.16 mb
14
default_statistics_targetOne hundred.
15
random_page_cost4
16
effective_io_concurrency2
17
work_mem246415 kb
18
checkpoint_segments32

针对11.7数据库进行调优

         
抨击
1
# DB版本:11
2
#操作系统类型:linux
3.
# DB类型:web
4
#总内存(RAM): 94 GB
5
#连接数:100
6
#数据存储:hdd
7
8
max_connectionsOne hundred.
9
Shared_Buffers.24064 mb
10
effective_cache_size72192 mb
11
维护_Work_mem.2 gb
12
checkpoint_completion_target0.7
13
Wal_Buffers.16 mb
14
default_statistics_targetOne hundred.
15
random_page_cost4
16
effective_io_concurrency2
17
work_mem123207 kb
18
min_wal_size1 gb
19
max_wal_size4 gb

维护数据库

考虑到应用程序生成的数据量,强烈建议定期执行计划备份。在数据库备份过程中,安全控制台进入维护模式,无法运行扫描。规划部署涉及协调备份周期和扫描窗口。备份数据库所需的时间取决于数据量,可能需要几个小时才能完成。

有关执行数据库备份和维护的信息,请参阅数据库备份/恢复和数据保留

PostgreSQL还有一个自动真空功能,可以在后台执行一些必要的数据库维护任务。它在默认情况下是启用的,并且应该保持启用状态。

灾难恢复方面的考虑

如前所述,一个安全控制台足以处理企业级的所有活动。但是,对于您的组织的关键系统的灾难恢复计划,可能需要额外的备用安全控制台。如果灾难恢复计划开始生效,这个“冷备份”安全控制台将需要一个数据库恢复例程来包含最新的数据。

灾难恢复可能不保证数据中心扫描引擎的舰队加倍。相反,恢复计划可以指示在手头上有许多备件来对扫描的最小要求进行最小的要求 - 例如,每周而不是每日 - 直到生产条件恢复正常。例如,如果您的组织在数据中心中有10个扫描引擎,则额外的5可以就临时备份就足够。具有许多额外的扫描引擎也有助于处理每月Microsoft补丁验证等事件所需的偶尔扫描钉。

在服务器端使用杀毒软件

反病毒程序有时可能影响依赖于网络通信的关键操作,例如下载更新和扫描。阻止后者可能导致较低的扫描精度。如果您在预期主机上运行Anti-Virus软件,请配置软件以允许应用程序接收所需的文件和数据,以支持您的安全目标:

  • 将应用程序更新服务器updates.rapid7.com添加到白名单中,以便应用程序可以接收更新。
  • 将应用程序安装目录添加到白名单中,以防止反病毒程序删除该目录中与漏洞和利用有关的文件,否则它会认为这些文件是“恶意的”。

有关配置软件与应用程序一起使用的更多信息,请咨询您的Anti-Virus供应商。