如何在 Ubuntu 22.04 上安装 Fleet Osquery Manager如何在 Ubuntu 22.04 上安装 Fleet Osquery Manager如何在 Ubuntu 22.04 上安装 Fleet Osquery Manager如何在 Ubuntu 22.04 上安装 Fleet Osquery Manager
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 22.04 上安装 Fleet Osquery Manager

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Fleet 是一个开源 osquery 管理器,可用于维护安全的工作站和服务器,并保留所有设备的准确清单。 Fleet 支持可编程实时查询、流日志以及服务器、容器和设备(例如笔记本电脑和本地计算机)的实时可见性。

通过机群,您可以识别设备上的漏洞。这意味着该机群将自动识别过时、易受攻击或受损的软件、应用程序和软件包。此外,车队还将识别设备配置错误和 MDM 注册问题。 Fleet 对于 IT 行业、安全或任何合规性监控设备非常有用。

Fleet 还在单个应用程序中启用并自动化安全工作流程。您可以使用 osquery/agent 从多个服务器和设备收集事件,然后将收集到的数据存储在一个位置,该位置可以通过 Fleet 仪表板进行访问,也可以通过aflectl 使用终端进行访问。

在本教程中,您将在 Ubuntu 22.04 服务器上安装 Fleet Osquery Manager。此过程包括在 Ubuntu 系统上安装 MySQL 和 Redis 服务器。最后,您还将了解如何通过 Orbit 将主机添加到队列中,Orbit 是一个 osquery 运行时和自动更新程序,可让您轻松部署 osquery 并管理配置。

先决条件

要开始学习本教程,您必须满足以下要求:

  • 运行 Ubuntu 22.04 的服务器 - 本示例使用主机名为“fleet”的 Ubuntu 服务器。
  • 具有 sudo/root 管理员权限的非 root 用户。
  • 指向服务器 IP 地址的域名 - 本示例使用域名“fleet.hwdomain.io”。

就是这样;现在让我们开始安装舰队 osquery 管理器。

安装MySQL服务器

在基本架构中,fleet osquery管理器使用MySQL服务器作为后端数据库并存储数据。对于本指南,您必须做的第一件事是安装 MySQL 服务器、保护 MySQL 安装并设置 MySQL root 密码。

首先,运行以下 apt 命令来更新和刷新您的 Ubuntu 软件包索引。

sudo apt update

然后通过以下 apt 命令安装 MySQL 服务器包。出现提示时,输入 y 进行确认,然后按 ENTER 继续。

sudo apt install mysql-server

安装 MySQL 后,运行以下 systemctl 命令来验证 MySQL 服务器并确保该服务已启用并正在运行。

sudo systemctl is-enabled mysql
sudo systemctl status mysql

您应该收到如下输出 - MySQL 服务器已启用,并将在系统启动时自动启动。并且MySQL服务器的状态是正在运行。

接下来,通过下面的“mysql”命令登录 MySQL shell。

sudo mysql

运行以下查询来更改 MySQL“root”用户的密码。另外,请务必更改查询中的以下密码。然后,输入“exit”以从 MySQL shell 注销。

ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "toor?p4ssw0rd";
exit

这样,您现在就可以通过下面的“mysql_secure_installation”命令开始保护 MySQL 服务器的安全。

sudo mysql_secure_installation

当提示输入 MySQL root 密码时,输入您配置的新密码。然后,系统将询问您以下 MySQL 服务器配置:

  • 在 MySQL 上设置 VALIDATE PASSWORD 组件?输入 Y 确认。
  • 输入您要使用的数字密码策略。为您的 MySQL 服务器选择您首选的选择策略。
  • 更改MySQL root 密码?输入 n 作为编号
  • 删除默认的 MySQL 匿名用户?输入 Y。
  • 禁用MySQL root用户远程登录?输入 Y。
  • 从 MySQL 服务器中删除默认数据库测试?输入 Y。
  • 重新加载表权限以应用更改?输入 Y 确认。

这样,MySQL 服务器就已安装,root 密码也已配置,并且还通过“mysql_secure_installation”命令保护 MySQL 服务器的安全。

安装Redis服务器

默认情况下,fleet osquery 管理器使用 Redis 来摄取分布式查询的结果、缓存数据等并对其进行排队。在此步骤中,您将在 Ubuntu 服务器上安装 Redis。

运行以下 apt 命令开始安装 Redis。出现提示时,输入 y 进行确认,然后按 ENTER 继续。

sudo apt install redis

Redis安装完成后,运行以下systemctl命令验证Redis服务并确保该服务已启用并正在运行。

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

您应该收到如下输出 - 输出“enabled”确认 Redis 服务已启用,并将在系统启动时自动运行。默认情况下,Redis 服务的状态为正在运行。

设置MySQL数据库和用户

安装 MySQL 服务器和 Redis 后,您现在将创建一个将由舰队使用的新数据库和用户。

通过下面的“mysql”命令登录 MySQL shell。

mysql -u root -p

运行以下查询来创建新的 MySQL 数据库和用户。在此示例中,您将使用用户fleetadmin 创建数据库fleetdb,该数据库将用于fle osquery 管理器安装。另外,请务必更改以下查询中的密码。

CREATE DATABASE fleetdb;
CREATE USER fleetadmin@localhost IDENTIFIED BY 'S3curep4ssw0rd--=';
GRANT ALL PRIVILEGES ON fleetdb.* TO fleetadmin@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

接下来,运行以下查询来验证 MySQL 服务器上的用户列表。您应该会收到 fleetadmin 用户添加到 MySQL 的输出。

SELECT USER,host FROM mysql.user;

运行以下查询来检查 MySQL 用户fleetadmin 的权限。您应该收到一个输出,表明 fleetadmin 有权访问 fleetdb 数据库。

SHOW GRANTS FOR fleetadmin@localhost;

现在输入“quit”以从 MySQL shell 注销。现在,您已经完成了 MySQL 服务器配置并准备好安装舰队 osquery 管理器。

下载舰队 Osquery 管理器

Fleet osquery 管理器可作为单个二进制文件提供,该文件提供以下内容:

  • Fleet TLS Web 服务器(不需要外部 Web 服务器,但如果需要,它支持代理)
  • 舰队网络界面
  • 舰队应用程序管理 REST API
  • 舰队 osquery API 端点

至于fleecttl,它是舰队的命令行界面,允许您从命令行管理舰队部署、配置、集成和报告。

在此步骤中,您将从官方 GitHub 页面下载舰队和fleecttl 二进制包。在撰写本文时,fleet 和fleecttl 的最新版本是v4.26。

在开始之前,请使用以下命令创建一个新的系统用户“fleet”。

sudo useradd -r -d /opt/fleet -s /usr/sbin/nologin fleet

通过下面的curl 命令下载fleet 二进制包和fleetctl(舰队的命令行界面)。

curl -LO https://github.com/fleetdm/fleet/releases/download/fleet-v4.26.0/fleet_v4.26.0_linux.tar.gz
curl -LO https://github.com/fleetdm/fleet/releases/download/fleet-v4.26.0/fleetctl_v4.26.0_linux.tar.gz

下载后,通过下面的 tar 命令解压舰队和fleecttl包。

tar xf fleet_v4.26.0_linux.tar.gz
tar xf fleetctl_v4.26.0_linux.tar.gz

现在将“fleet”和“fleetctl”的二进制文件移动到“/usr/local/bin”目录。

cp fleet_v4.26.0_linux/fleet /usr/local/bin/
cp fleetctl_v4.26.0_linux/fleetctl /usr/local/bin/

检查系统上当前的 PATH 环境变量。如果 PATH 环境变量中存在“/usr/local/bin”目录,则您可以运行“fleet”和“fleetctl”命令。

echo $PATH

使用以下命令验证“fleet”和“fleetctl”命令的完整路径。这两个二进制文件都应位于“/usr/local/bin”目录中。

which fleet
which fleetctl

使用以下命令验证“fleet”和“fleetctl”的版本。在此示例中,您安装了fleet 和fleecttl v4.26。

fleet version
fleetctl --version

最后,运行以下“fleet”命令来初始化安装的数据库。另外,请务必更改详细信息数据库名称、用户和密码。这样,您将为舰队 osquery 管理器创建必要的表。

fleet prepare db --mysql_address=127.0.0.1:3306 --mysql_database=fleetdb --mysql_username=fleetadmin --mysql_password=S3curep4ssw0rd--=

以下是车队数据库初始化/迁移过程中的输出。

初始化完成后,您应该会得到诸如“迁移完成”之类的输出。

现在,fleet osquery manager 的数据库已迁移。在下一步中,您将配置队列部署。

配置舰队 Osquery 管理器

要部署队列,您必须确保已验证 SSL/TLS 证书。因此,在开始之前,请确保您有一个指向服务器 IP 地址并生成 SSL/TLS 证书的域名或本地域名。您可以在本地环境中使用 LetsEncrypt 或任何证书管理器。

在此示例中,从 Letsencryopt 生成的 SSL/TLS 证书将用于 Fleet Osquery Manager 安装。

运行以下命令创建新目录'/etc/fleet'、'/etc/fleet/certs'和新的配置文件'/etc/ 'fleet/fleet.yml',以及新的服务文件'/etc/systemd/system/fleet.service'。

mkdir -p /etc/fleet/certs
touch /etc/fleet/fleet.yml
touch /etc/systemd/system/fleet.service

将您的 SSL/TLS 证书复制到“/etc/fleet/certs” 目录。

cp /etc/letsencrypt/live/fleet.hwdomain.io/fullchain.pem /etc/fleet/certs/
cp /etc/letsencrypt/live/fleet.hwdomain.io/privkey.pem /etc/fleet/certs/

将队列配置目录“/etc/fleet/certs”的所有权更改为用户和组“fleet”。

sudo chown -R fleet:fleet /etc/fleet

接下来,使用以下 nano 编辑器命令打开舰队配置文件'/etc/fleet/fleet.yml'。

nano /etc/fleet/fleet.yml

将以下行添加到文件中。另外,请务必更改以下行中的数据库详细信息(数据库名称、用户和密码)。

mysql:
  address: 127.0.0.1:3306
  database: fleetdb
  username: fleetadmin
  password: S3curep4ssw0rd--=
redis:
  address: 127.0.0.1:6379
server:
  cert: /etc/fleet/certs/fullchain.pem
  key: /etc/fleet/certs/privkey.pem
logging:
  json: true
# auth:
# jwt_key: 0iXLJRKhB77puDm13G6ehgkClK0kff6N

完成后保存并退出文件'/etc/fleet/fleet.yml'。

现在使用以下 nano 编辑器命令打开舰队服务文件'/etc/systemd/system/fleet.service'。

sudo nano /etc/systemd/system/fleet.service

将以下行添加到文件中。这样,您将把fleet作为systemd服务运行,这样您就可以通过systemctl命令实用程序轻松管理fleet。

[Unit]
Description=Fleet Osquery Fleet Manager
After=network.target
[Service]
User=fleet
Group=fleet
LimitNOFILE=8192
ExecStart=/usr/local/bin/fleet serve -c /etc/fleet/fleet.yml
ExecStop=/bin/kill -15 $(ps aux | grep "fleet serve" | grep -v grep | awk '{print$2}')
[Install]
WantedBy=multi-user.target

完成后保存并退出文件。

接下来,运行以下 systemctl 命令来重新加载 systemd 管理器并应用更改。

sudo systemctl daemon-reload

之后,使用以下 systemctl 命令实用程序启动并启用队列服务。车队服务将运行并启用。

sudo systemctl start fleet
sudo systemctl enable fleet

运行以下 systemctl 命令实用程序来验证队列服务。

sudo systemctl status fleet

输出'active (running)'确认队列服务正在运行,输出'...;已启用;..'确认车队服务将在系统启动时自动启动。此外,您还可以看到使用配置文件“/etc/fleet/fleet.yml”运行的fleet启动命令。

配置 UFW 防火墙

在此步骤中,您将在 Ubuntu 上设置并运行 UFW 防火墙。您将打开 OpenSSH 服务端口和舰队 osquery 管理器使用的 TCP 端口 8080,然后启动并启用 UFW。

运行以下 ufw 命令将 OpenSSH 服务和 TCP 端口 8080 添加到 UFW。输出“规则更新”确认新配置已添加到 UFW。

sudo ufw allow OpenSSH
sudo ufw allow 8080/tcp

接下来,运行以下命令启动并启用 UFW 防火墙。出现提示时,输入 y 并按 ENTER 继续。这样,UFW 防火墙就应该运行并启用。

sudo ufw enable

输出 :

使用以下命令验证 UFW 防火墙的状态。您应该看到诸如“状态:活动”之类的输出,确认 UFW 正在运行并已启用。此外,您将看到 OpenSSH 服务端口 8080/tcp 可用并已添加到 UFW 防火墙。

sudo ufw status

输出 :

配置舰队 Osquery 管理器

在此步骤中,您将设置舰队 osquery 管理器部署。您将设置第一个用户并通过 Web 浏览器设置部署。

打开 Web 浏览器并使用 TCP 端口 8080 访问舰队 osquery 管理器安装的域(即:https://fleet.hwdomain.io:8080/)。

在第一步中,系统将要求您为队列部署设置第一个用户。输入您的全名、电子邮件地址和密码,然后点击下一步。

输入详细组织信息,然后再次单击下一步。

对于舰队 URL,您可以将其保留为默认值,然后单击下一步。

重新检查您的队列配置,然后单击确认完成部署。

成功后,您应该会看到车队管理仪表板。

现在fleet osquery manager安装已经完成。这样,您可以通过多种方式向舰队添加新主机,例如使用 Orbit(osquery 运行时)、具有桌面环境(包括 Windows 和 macOS)的主机的舰队桌面,或通过手动生成舰队机密和 TLS 证书。

通过 Orbit Osquery 运行时添加主机

Orbit 是一个 osquery 运行时和自动更新程序,可让您轻松部署 osquery 和管理配置。 Orbit是fleet的代理,可以与Fleet一起使用,也可以不与Fleet一起使用,Fleet可以与Orbit一起使用,也可以不与Orbit一起使用。

在此步骤中,您将学习如何为基于 Debian 的发行版生成 Orbit 软件包安装程序。然后,您将学习如何通过 Orbit 将新主机添加到队列中。

首先,返回到舰队仪表板并单击“添加主机”。

选择“高级”选项卡,下载队列证书“fleet.pem”,然后复制将用于为特定发行版创建 Orbit 包的命令。您可以为 RPM、DEB 和 pkg(适用于 macOS)生成 Orbit 安装程序。

接下来,将您下载的队列证书上传到队列服务器。在此示例中,您将使用“scp”将“fleet.pem”文件上传到队列服务器。

scp fleet.pem [email :/opt/

上传fleet.pem证书后,运行将用于生成orbit安装程序包的命令行。请务必将参数'--type'更改为您首选的包。

在此示例中,您将为基于 Debian 的发行版生成一个 Orbit 包。对于基于 RPM 的,您可以将参数“--type”更改为“rpm”,而“pkg”包可用于生成适用于 macOS 的 Orbit 安装程序。

fleetctl package --type=deb --fleet-url=https://fleet.hwdomain.io:8080 \
--enroll-secret=TSSnHvy350wlo1HmIeLcxRS3DrQO+Vah \
--fleet-certificate=/opt/fleet.pem

输出 :

该过程完成后,您可以在当前工作目录中看到文件'fleet-osquery_version.deb'。

接下来,通过下面的 dpkg 命令安装生成的 Orbit 包。安装后,orbit 软件包将创建一个新的服务文件“orbit.service”,允许您通过 systemctl 管理 Orbit。

sudo dpkg -i fleet-osquery_version.deb

输出 :

安装 Orbit 后,运行以下 systemctl 命令来启动 Orbit 服务。然后,验证状态以确保轨道服务正在运行。

sudo systemctl start orbit
sudo systemctl status orbit

您应该收到如下输出 - Orbit 服务处于“活动(正在运行)”状态,并且已启用并将在系统启动时自动运行。

现在回到舰队仪表板,您应该看到新主机“fleet.hwdomain.io”已添加到舰队 osquery 管理器中。

单击主机名“fleet.hwdomain.io”即可获取有关主机的详细信息。

至此,您现在已经通过 Orbit osquery 运行时向舰队 osquery 管理器添加了主机。您还为基于 Debian 的发行版生成了 Orbit 安装程序。

设置 Fleetctl 来管理队列

Fleetctl 或 Fleet control 是用于从终端管理车队部署的命令行。 Fleetctl 允许您管理配置和查询、生成 osquery 安装程序并使用舰队启用 GitOps 工作流程。

在此步骤中,您将设置舰队 osquery 管理器并连接到已安装的舰队 osquery 管理器。

首先,运行以下命令来设置默认队列 URL。请务必更改域名并确保您使用的是 HTTPS 安全连接。这样,您将在“默认”上下文/配置文件中设置队列连接。

fleetctl config set --address https://fleet.hwdomain.io:8080

使用以下命令登录到您的舰队 osquery 管理器。请务必在以下命令中更改电子邮件地址。

fleetctl login --email [email 

现在输入您用于登录舰队仪表板的密码。成功后,您应该会收到诸如“队列登录成功且上下文已配置!”之类的输出。

登录fleet后,运行以下fleecttl命令来验证您的配置。

检查队列上可用主机的列表。

fleetctl get hosts

输出 - 您应该看到主机 'fleet.hwdomain.io' 在使用 osquery v5.7.0 的机群上可用。

检查队列中可用用户的列表。

fleetctl get ur

输出 - 您应该看到您创建的舰队用户。

至此,您现在已经配置了fleecttl并连接到您的舰队部署。您现在可以从终端服务器设置主机、查询、管理更新、运行实时查询。

结论

在本教程中,您已在 Ubuntu 220.04 服务器上安装了 Fleet Osquery Manager。您已经安装了 Fleet,其中 MySQL 作为数据库后端,并使用 Redis 来摄取队列和缓存数据。此外,您还使用 SSL/TLS 证书保护 Fleet 并将 Fleet 作为 systemd 服务运行,这样您就可以使用 systemctl 命令实用程序轻松管理 Fleet。

最后,您通过 Orbit(osquery 运行时)向 Fleet 添加了主机,并为基于 Debian 的发行版生成了软件包安装程序。此外,您还配置了fleetctl 并登录到Fleet,以便可以从终端服务器管理和配置主机。

考虑到这一点,您现在可以通过 Orbit 或通过普通 osqueryd 服务手动将新主机添加到 Fleet osquery 管理中。此外,您还可以定义新的查询来监控主机、设置漏洞处理以允许您通过 Fleet 检测 CVE 等等。从 Fleet 的官方文档中了解有关 Fleet 的更多信息。

©2015-2025 Norria support@alaica.com