在 Fleet Manager 上注册 Osquery 主机

在本教程中,您将学习如何在 Fleet manager 上添加或注册 Osquery 主机。 Fleet 是使用最广泛的开源 osquery 管理器。 使用 Fleet 部署 osquery 可以实现可编程的实时查询、流式日志以及跨 50,000 多台服务器、容器和笔记本电脑的 osquery 的有效管理。 这对于同时与多个设备通话特别有用。”

在我们之前的指南中,我们学习了如何在 Ubuntu 20.04 上安装 Osquery Fleet manager。

在 Ubuntu 20.04 上安装 Fleet Osquery Manager

在 Fleet Manager 上注册 Osquery 主机

在主机上安装 Osquery

在 Fleet manager 上添加或注册 Osquery 主机之前,您需要在远程主机上安装 Osquery。

以下是安装 Osquery 时可以遵循的一些指南;

在 Ubuntu 20.04 上安装 Osquery

在 Debian 10 Buster 上安装 Osquery

在 Fleet Manager 上注册 Osquery 主机

在主机上安装 Osquery 后,您可以继续在 Fleet manager 上注册它们。

因此,请登录到您的车队管理器 Web 界面。

要添加或注册主机,请单击 添加新主机. 这将打开这样一个向导。

下载:

  • Enrollment secret:提供一个活动的注册密钥,以允许 osquery 与 Fleet 服务器进行身份验证。
  • Server certificate:提供 Fleet 服务器使用的 TLS 证书以启用来自 osquery 的安全连接。
  • Flag File: 控制初始化、禁用/启用功能和选择插件的标志。

下载上述文件后,将它们复制到 Osquery 主机。

例如,在我的设置中,我已将文件复制到 Ubuntu 20.04 服务器上特定用户帐户的主目录;

ls ~/ -1
flagfile.txt fleet.pem secret.txt

导航到 osquery 主机上存储上述文件的目录,以防它是我的用户主目录。

cd ~/

通过运行以下命令在 Fleet manager 上注册 Osquery 主机。 (在运行以下命令之前,请确保您生成 SSL 证书的 Osquery Fleet 管理器主机名可从主机解析)

sudo osqueryd --flagfile=flagfile.txt --verbose

你会一些系统输出。

... I0320 16:53:40.973621  5419 init.cpp:340] osquery initialized [version=4.6.0] I0320 16:53:40.993187  5419 system.cpp:342] Found stale process for osqueryd (4742) I0320 16:53:40.993357  5419 system.cpp:374] Writing osqueryd pid (5419) to /var/run/osqueryd.pidfile I0320 16:53:40.993547  5419 extensions.cpp:453] Could not autoload extensions: Cannot open file for reading: /etc/osquery/extensions.load I0320 16:53:40.993702  5419 dispatcher.cpp:78] Adding new service: WatcherRunner (0x55de416f5f08) to thread: 139824272353024 (0x55de417114e0) in process 5419 I0320 16:53:40.994439  5420 watcher.cpp:613] osqueryd watcher (5419) executing worker (5421) I0320 16:53:41.004231  5421 init.cpp:337] osquery worker initialized [watcher=5419] I0320 16:53:41.004514  5421 dispatcher.cpp:78] Adding new service: WatcherWatcherRunner (0x55b07d7a9d98) to thread: 140124192265984 (0x55b07d79e8a0) in process 5421 I0320 16:53:41.004647  5421 rocksdb.cpp:132] Opening RocksDB handle: /var/osquery/osquery.db I0320 16:53:42.638896  5421 dispatcher.cpp:78] Adding new service: ExtensionWatcher (0x55b07d8a64c8) to thread: 140123990906624 (0x55b07d892450) in process 5421 I0320 16:53:42.639508  5421 dispatcher.cpp:78] Adding new service: ExtensionRunnerCore (0x55b07d820758) to thread: 140123999299328 (0x55b07d79a060) in process 5421 I0320 16:53:42.640108  5421 tls_enroll.cpp:70] TLSEnrollPlugin requesting a node enroll key from: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/enroll I0320 16:53:42.640694  5421 system.cpp:301] Using host identifier: f68ce9e5-caf4-4b2e-85c0-e1cd4304abb0 I0320 16:53:42.641921  5520 interface.cpp:270] Extension manager service starting: /var/osquery/osquery.em I0320 16:53:42.642381  5421 smbios_tables.cpp:105] Reading SMBIOS from sysfs DMI node I0320 16:53:42.662926  5421 smbios_tables.cpp:105] Reading SMBIOS from sysfs DMI node I0320 16:53:42.664144  5421 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/enroll I0320 16:53:43.371500  5421 auto_constructed_tables.cpp:97] Removing stale ATC entries I0320 16:53:43.372932  5421 dispatcher.cpp:78] Adding new service: ConfigRefreshRunner (0x55b07d81d508) to thread: 140124007692032 (0x55b07d7a5680) in process 5421 I0320 16:53:43.374224  5421 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/config ... ... I0320 17:00:07.842394  5521 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/config I0320 17:00:08.261268  5524 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/distributed/read I0320 17:00:09.360673  5524 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/distributed/read I0320 17:00:13.452287  5524 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/distributed/read I0320 17:00:15.192095  5522 tls.cpp:254] TLS/HTTPS POST request to URI: https://osquery.kifarunix-demo.com:8080/api/v1/osquery/log

主机现在与 Osquery Fleet manager 通信,它应该被注册。

导航到 Osquery Fleet Manager 并刷新 Web 界面。 您应该能够看到您的主机已注册。

作为服务运行 Osqueryd

为了确保 Osquery 主机和 Fleet 管理器之间的持续通信,您需要将 osqueryd 作为服务运行。

因此,通过按停止上面启动的独立进程 Ctrl+c.

更新 osqueryd 服务单元文件配置如下。

首先,让我们将机密、证书和标志文件移动到 /etc/osquery 目录;

sudo mv ~/{flagfile.txt,fleet.pem,secret.txt} /etc/osquery

接下来,更新 osqueryd 服务默认文件中 FLAG_FILE 环境变量的路径, /etc/default/osqueryd.

sudo vim /etc/default/osqueryd

检查突出显示的行。 相应地替换路径。

FLAG_FILE="/etc/osquery/flagfile.txt" CONFIG_FILE="/etc/osquery/osquery.conf" LOCAL_PIDFILE="/var/osquery/osqueryd.pidfile" PIDFILE="/var/run/osqueryd.pidfile"

接下来,编辑 flagfile.txt 文件并更新秘密和证书文件的路径。

sudo vim /etc/osquery/flagfile.txt
# Server --tls_hostname=osquery.kifarunix-demo.com:8080 --tls_server_certs=/etc/osquery/fleet.pem  # Enrollment --host_identifier=instance --enroll_secret_path=/etc/osquery/secret.txt --enroll_tls_endpoint=/api/v1/osquery/enroll

Save 并在进行更改后退出文件。

重新加载 systemd 配置;

sudo systemctl daemon-reload

重启osqueryd服务

sudo systemctl restart osqueryd.service

检查状态;

systemctl status osqueryd
● osqueryd.service - The osquery Daemon      Loaded: loaded (/lib/systemd/system/osqueryd.service; disabled; vendor preset: enabled)      Active: active (running) since Sat 2021-03-20 17:55:09 UTC; 19s ago     Process: 6553 ExecStartPre=/bin/sh -c if [ ! -f $FLAG_FILE ]; then touch $FLAG_FILE; fi (code=exited, status=0/SUCCESS)     Process: 6557 ExecStartPre=/bin/sh -c if [ -f $LOCAL_PIDFILE ]; then mv $LOCAL_PIDFILE $PIDFILE; fi (code=exited, status=0/SUCCESS)    Main PID: 6566 (osqueryd)       Tasks: 17 (limit: 2282)      Memory: 9.7M      CGroup: /system.slice/osqueryd.service              ├─6566 /usr/bin/osqueryd --flagfile /etc/osquery/flagfile.txt --config_path /etc/osquery/osquery.conf              └─6571 /usr/bin/osqueryd  Mar 20 17:55:09 ubuntu systemd[1]: Starting The osquery Daemon... Mar 20 17:55:09 ubuntu systemd[1]: Started The osquery Daemon. Mar 20 17:55:09 ubuntu osqueryd[6566]: osqueryd started [version=4.6.0] Mar 20 17:55:12 ubuntu osqueryd[6571]: I0320 17:55:12.108310  6571 events.cpp:867] Event...

使服务在系统启动时运行;

sudo systemctl enable osqueryd.service

还要验证 osquery 主机状态在 Fleet 管理器上是否在线。

从 Fleet Osquery Manager 查询主机

您现在可以通过单击主机名来查询主机,然后 询问

  1. 设置查询名称
  2. Enter SQL 查询,例如 (select interface,address,mask from interface_addresses where interface NOT LIKE '%lo%';)
  3. Save 如果需要,可以查询以备将来使用
  4. 选择要查询的主机
  5. 运行查询

我们查询的示例结果;

很不错,不是吗?

这就是在 Fleet manager 上添加或注册 Osquery 主机是多么简单。

您可以向 Fleet 添加更多主机,以便于管理和监控。

这标志着我们关于如何在 Fleet manager 上注册 Osquery 主机的教程结束。