在本教程中,您将学习如何在 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 查询主机
您现在可以通过单击主机名来查询主机,然后 询问
- 设置查询名称
- Enter SQL 查询,例如 (
select interface,address,mask from interface_addresses where interface NOT LIKE '%lo%';
) - Save 如果需要,可以查询以备将来使用
- 选择要查询的主机
- 运行查询
我们查询的示例结果;
很不错,不是吗?
这就是在 Fleet manager 上添加或注册 Osquery 主机是多么简单。
您可以向 Fleet 添加更多主机,以便于管理和监控。
这标志着我们关于如何在 Fleet manager 上注册 Osquery 主机的教程结束。