目录
使用自签名证书
使用证书颁发机构颁发的证书
使用PKI
关于CrowdSec和TLS身份验证的更新说明
结论
首页 系统教程 操作系统 使用https保护多服务器安全引擎安装

使用https保护多服务器安全引擎安装

Mar 10, 2025 am 09:02 AM

Secure A Multi-Server Security Engine Installation With HTTPS

本教程的第二部分将介绍如何设置和保护多服务器CrowdSec安全引擎的安装。在第一部分中,我们讲解了如何在多台服务器上设置CrowdSec安全引擎,其中一台服务器作为父服务器,另外两台服务器将警报转发给它。

本部分将解决先前多服务器安全引擎安装中明文HTTP通信带来的安全问题。为了解决这个问题,我们建议通过加密通道建立安全引擎之间的通信。此解决方案允许服务器2或服务器3信任服务器1的身份,并避免中间人攻击。

使用自签名证书

创建证书首先,您需要创建一个证书。这可以通过以下单行命令实现:

openssl req -x509 -newkey rsa:4096 -keyout encrypted-key.pem -out cert.pem -days 365 -addext "subjectAltName = IP:172.31.100.242"
登录后复制
登录后复制

目前,安全引擎在启动时无法请求私钥的密码。因此,您可以选择每次启动或重新加载安全引擎时手动解密私钥,或者将密钥未加密地存储。无论哪种方式,要删除密码,您可以使用以下命令:

openssl rsa -in encrypted-key.pem -out key.pem
登录后复制

然后,在安全引擎启动后,可以安全地删除未加密的密钥文件。

配置安全引擎以使用自签名证书在服务器1上,您需要配置安全引擎以使用生成的证书。如下所示,以下/etc/crowdec/config.yaml摘录中api.server部分的tls.cert_filetls.key_file选项设置为生成的证书文件。

api:
  server:
    log_level: info
    listen_uri: 10.0.0.1:8080
    profiles_path: /etc/crowdsec/profiles.yaml
    online_client: # Crowdsec API credentials (to push signals and receive bad 

    tls:
      cert_file: /etc/crowdsec/ssl/cert.pem
      key_file: /etc/crowdsec/ssl/key.pem
登录后复制

在客户端,配置更改发生在两个文件中。首先,修改/etc/crowdec/config.yaml以接受自签名证书,方法是将insecure_skip_verify设置为true

您还需要在/etc/crowdsec/local_api_credentials.yaml文件中将HTTP更改为HTTPS以反映这些更改。此小的更改必须在所有三台服务器(服务器1、服务器2和服务器3)上完成。

注意:请记住,如果服务器1也用作日志处理器,则也必须在此服务器上进行此LAPI配置。

url: https://10.0.0.1:8080/
login: <login>
password: <password></password></login>
登录后复制

旁注:显然,使用自签名证书不会对LAPI服务器的所有权提供任何保证。使用该服务的服务器(在此设置中为服务器2或服务器3)仍然容易受到中间人攻击,但至少此设置提供了加密通信。这就是需要InsecureSkipVerify选项的原因。

使用证书颁发机构颁发的证书

Let's Encrypt或Amazon ACM等服务可以通过为可以添加到/etc/hosts或本地DNS服务器的完全限定域名颁发证书来解决InsecureSkipVerify问题。然后,可以使用此指定的完全限定域名填充/etc/crowdsec/local_api_credentials.yaml

这确实有效,并防止设置InsecureSkipVerify选项。只要可以信任DNS配置,这就能确保客户端和服务器之间的通信不会被篡改,但这仍然应该被视为一种变通方法。

使用PKI

配置和管理SSL公钥基础设施(PKI)的过程不在本教程的范围内,但我强烈建议您查看OpenSSL官方文档。简单的PKI方案足以满足此安全引擎设置的需求。

根据OpenSSL文档,有一些值得一提的事情。

要在我们的CrowdSec TLS方案中使用,证书请求必须使用与Crowdsec LAPI服务器的IP相对应的主题替代名称发出。这可以通过在调用OpenSSL进行证书请求时定位SAN环境变量来完成(请参阅OpenSSL简单PKI方案中的步骤3.3)。

openssl req -x509 -newkey rsa:4096 -keyout encrypted-key.pem -out cert.pem -days 365 -addext "subjectAltName = IP:172.31.100.242"
登录后复制
登录后复制

在启动CrowdSec安全引擎之前,必须将根证书和签名证书的公共部分(在OpenSSL简单PKI方案的步骤4.5中创建的捆绑文件)添加到本地证书存储区。在此设置中,这是连接到LAPI服务器所必需的。有很多方法可以做到这一点,golang源代码指定了预期证书的位置,或者您可以在systemd服务文件中使用SSL_CERT_FILE环境变量来指定启动安全引擎时查找证书的位置。

关于CrowdSec和TLS身份验证的更新说明

在本文首次发表后,我们在安全引擎中添加了一项新功能,您现在不仅可以保护TLS上的通信,还可以使用证书确保身份验证。在官方文档中,您可以找到一个很好的示例,该示例显示了如何在安全引擎之间或安全引擎和补救组件之间使用证书进行TLS身份验证。

结论

本文重点介绍了如何保护不同CrowdSec安全引擎安装之间的通信。所考虑的用例是在私有网络中的安全引擎安装,但这也可以在具有互联网通信的公共网络上部署。在这种情况下,第三方证书很容易就能解决问题。

根据需要,我们提出了三种不同的方法来实现安全引擎之间的安全TLS通信——使用自签名证书、使用证书颁发机构颁发的证书和使用SSL公钥基础设施。

第一种方案(使用自签名证书)仅适用于您希望确保加密通信而无需身份验证的情况。当您可以修改本地DNS解析时,才可以考虑第二种方案。第三种方案是最复杂的,但它适合大多数用例,并且在安全问题严重时可能是最佳选择。

希望本教程对您有所帮助。感谢您的阅读,敬请期待!

如果您有任何疑问或反馈,请随时通过我们的Discord和Discourse社区平台与我们联系。

以上是使用https保护多服务器安全引擎安装的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何计算Linux中的文件和目录:初学者指南 如何计算Linux中的文件和目录:初学者指南 Mar 19, 2025 am 10:48 AM

有效地计数Linux中的文件和文件夹:综合指南 知道如何快速计算Linux中的文件和目录对于系统管理员和管理大型数据集的任何人至关重要。本指南使用简单命令l演示

如何将用户添加到Linux中的多个组 如何将用户添加到Linux中的多个组 Mar 18, 2025 am 11:44 AM

有效管理用户帐户和组成员资格对于Linux/UNIX系统管理至关重要。 这样可以确保适当的资源和数据访问控制。 本教程详细介绍了如何将用户添加到Linux和Unix系统中的多个组中。 我们

如何从Commandline列出或检查所有已安装的Linux内核 如何从Commandline列出或检查所有已安装的Linux内核 Mar 23, 2025 am 10:43 AM

Linux内核是GNU/Linux操作系统的核心组件。由Linus Torvalds于1991年开发,是一种免费的开源,单片,模块化和多任务Unix样核。在Linux中,可以在Sing上安装多个内核

如何轻松地配置Flatpak应用程序的权限 如何轻松地配置Flatpak应用程序的权限 Mar 22, 2025 am 09:21 AM

Flatpak 应用权限管理利器:Flatseal 使用指南 Flatpak 是一款旨在简化 Linux 软件分发和使用的工具,它将应用程序安全地封装在一个虚拟沙箱中,用户无需 root 权限即可运行应用程序,同时不会影响系统安全。由于 Flatpak 应用位于此沙箱环境中,它们必须请求权限才能访问操作系统的其他部分、硬件设备(如蓝牙、网络等)和套接字(如 pulseaudio、ssh-auth、cups 等)。本指南将指导您如何在 Linux 上使用 Flatseal 轻松配置 Flatpak

如何在Ubuntu Linux中输入印度卢比符号 如何在Ubuntu Linux中输入印度卢比符号 Mar 22, 2025 am 10:39 AM

该简短指南说明了如何在Linux操作系统中键入印度卢比符号。前几天,我想在Word文档中键入“ Indian Rupee符号(€)”。我的键盘上有一个卢比符号,但我不知道如何键入它。后

Linux最好使用的是什么? Linux最好使用的是什么? Apr 03, 2025 am 12:11 AM

Linux最适合用作服务器管理、嵌入式系统和桌面环境。1)在服务器管理中,Linux用于托管网站、数据库和应用程序,提供稳定性和可靠性。2)在嵌入式系统中,Linux因其灵活性和稳定性被广泛应用于智能家居和汽车电子系统。3)在桌面环境中,Linux提供了丰富的应用和高效的性能。

Linux内核6.14 RC6发布 Linux内核6.14 RC6发布 Mar 24, 2025 am 10:21 AM

Linus Torvalds已发布Linux内核6.14释放候选6(RC6),报告没有重大问题并保持发布能力。此更新中最值得注意的更改地址是AMD Microcode签名问题,而其余更新

YT-DLP命令:初学者的完整教程(2025) YT-DLP命令:初学者的完整教程(2025) Mar 21, 2025 am 11:00 AM

您是否曾经想从互联网中保存自己喜欢的视频?无论是有趣的猫视频还是您要稍后观看的教程,YT-DLP都可以提供帮助!在这个全面的YT-DLP教程中,我们将解释什么是YT-DLP,如何安装i

See all articles