配置离线端点和隔离环境
edit配置离线端点和隔离环境edit
默认情况下,Elastic Endpoint 通过自动从 https://artifacts.security.elastic.co 下载全局工件更新来持续防御最新的威胁。在受限网络中运行 Elastic Endpoint 时,您可以设置一个本地镜像服务器,将更新代理到无法直接访问 elastic.co
URL 的端点。
- 如果您的端点无法直接访问互联网,请设置一个本地 HTTP 镜像服务器。请参考 托管 Elastic Endpoint 工件镜像。
- 如果您的端点在隔离环境中运行,请设置一个本地 HTTP 服务器并手动复制全局工件更新。请参考 托管隔离的 Elastic Endpoint 工件服务器。
托管 Elastic Endpoint 工件镜像edit
您可以部署自己的 Elastic Endpoint 全局工件镜像,使端点能够通过充当代理的另一个服务器自动更新其全局工件。这使端点即使在无法直接访问互联网时也能获得更新。
完成以下步骤
- 部署 HTTP 反向代理服务器。
- 配置 Elastic Endpoint 从代理服务器读取。
步骤 1:部署 HTTP 反向代理服务器edit
设置并配置 HTTP 反向代理,以将请求转发到 https://artifacts.security.elastic.co,并在代理时包含来自 elastic.co 服务器的响应头。
实体标签 (Etag
) 头是您必须在服务器配置文件中设置的强制性 HTTP 响应头。Elastic Endpoint 使用 Etag
头来确定自上次下载以来您的全局工件是否已更新。如果您的服务器配置文件不包含 ETag
头,则 Elastic Endpoint 不会在有新工件时下载新工件。
示例:Nginx
此示例脚本启动 Nginx Docker 镜像,并将其配置为代理工件
cat > nginx.conf << EOF server { location / { proxy_pass https://artifacts.security.elastic.co; } } EOF docker run -v "$PWD"/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 80:80 nginx
示例:Apache HTTPD
此示例脚本启动 Apache httpd Docker 镜像,并将其配置为代理工件
docker run --rm httpd cat /usr/local/apache2/conf/httpd.conf > httpd.conf cat >> httpd.conf << EOF LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule ssl_module modules/mod_ssl.so SSLProxyEngine on ServerName localhost ProxyPass / https://artifacts.security.elastic.co/ ProxyPassReverse / https://artifacts.security.elastic.co/ EOF docker run -p 80:80 -v "$PWD"/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd
步骤 2:配置 Elastic Endpointedit
为每个需要使用镜像的 Elastic Defend 集成策略 设置 advanced.artifacts.global.base_url
高级设置。请注意,每个操作系统都有一个单独的设置
-
linux.advanced.artifacts.global.base_url
-
mac.advanced.artifacts.global.base_url
-
windows.advanced.artifacts.global.base_url
托管隔离的 Elastic Endpoint 工件服务器edit
如果 Elastic Endpoint 需要在封闭网络中完全离线运行,您可以设置一个镜像服务器,并定期手动更新它以获取新的工件更新。
完成以下步骤
- 部署 HTTP 文件服务器。
- 配置 Elastic Endpoint 从文件服务器读取。
- 手动将工件更新复制到文件服务器。
步骤 1:部署 HTTP 文件服务器edit
部署一个 HTTP 文件服务器,以从本地目录提供文件,该目录将在后面的步骤中填充工件更新文件。
实体标签 (Etag
) 头是您必须在服务器配置文件中设置的强制性 HTTP 响应头。Elastic Endpoint 使用 Etag
头来确定自上次下载以来您的全局工件是否已更新。如果您的服务器配置文件不包含 ETag
头,则 Elastic Endpoint 不会在有新工件时下载新工件。
示例:Nginx
此示例脚本启动 Nginx Docker 镜像,并将其配置为文件服务器
cat > nginx.conf << 'EOF' # set compatible etag format map $sent_http_etag $elastic_etag { "~(.*)-(.*)" "$1$2"; } server { root /app/static; location / { add_header ETag "$elastic_etag"; } } EOF docker run -v "$PWD"/nginx.conf:/etc/nginx/conf.d/default.conf:ro -v "$PWD"/static:/app/static:ro -p 80:80 nginx
示例:Apache HTTPD
此示例脚本启动 Apache httpd Docker 镜像,并将其配置为文件服务器
docker run --rm httpd cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf cat >> my-httpd.conf << 'EOF' # set compatible etag format FileETag MTime EOF docker run -p 80:80 -v "$PWD/static":/usr/local/apache2/htdocs/ -v "$PWD"/my-httpd.conf:/usr/local/apache2/conf/httpd.conf:ro httpd
步骤 2:配置 Elastic Endpointedit
为每个需要使用镜像的 Elastic Defend 集成策略 设置 advanced.artifacts.global.base_url
高级设置。请注意,每个操作系统都有一个单独的设置
-
linux.advanced.artifacts.global.base_url
-
mac.advanced.artifacts.global.base_url
-
windows.advanced.artifacts.global.base_url
步骤 3:手动复制工件更新edit
从 Elastic 全局工件服务器下载最新的工件文件,然后将这些文件复制到您在步骤 1 中创建的服务器实例。
以下是一个下载所有全局工件更新的示例脚本。每个版本的 Elastic Endpoint 都有不同的工件文件。更改示例脚本中 ENDPOINT_VERSION
变量的值,使其与部署的 Elastic Endpoint 版本匹配。
export ENDPOINT_VERSION=8.14.3 && wget -P downloads/endpoint/manifest https://artifacts.security.elastic.co/downloads/endpoint/manifest/artifacts-$ENDPOINT_VERSION.zip && zcat -q downloads/endpoint/manifest/artifacts-$ENDPOINT_VERSION.zip | jq -r '.artifacts | to_entries[] | .value.relative_url' | xargs -I@ curl "https://artifacts.security.elastic.co@" --create-dirs -o ".@"
此命令将下载应直接复制到文件服务器的文件和目录结构。
Elastic 会持续发布更新,因为检测引擎会不断改进。因此,我们建议至少每月更新一次隔离环境,以确保工件更新最新。
验证您自托管的工件服务器edit
每个新的全局工件更新版本都会增加一个版本标识符,您可以检查该标识符以确保 Elastic Endpoint 已接收并安装了最新版本。
要确认给定 Elastic Endpoint 版本的工件的最新版本,请检查发布的版本。此示例脚本检查版本
curl -s https://artifacts.security.elastic.co/downloads/endpoint/manifest/artifacts-8.14.3.zip | zcat -q | jq -r .manifest_version
将上面命令中的 https://artifacts.security.elastic.co
替换为您的本地镜像服务器,以验证工件是否已正确提供。
将 Elastic Endpoint 配置更新为从镜像服务器读取后,使用 Kibana 的 发现视图 搜索 metrics-*
数据视图以查找 endpoint.policy
响应文档,然后检查已安装的版本 (Endpoint.policy.applied.artifacts.global.version
) 并将其与上面命令的输出进行比较