# 如何使用Osquery监控Linux服务器安全

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/18968.html | 发布：2023-03-28 | 更新：2023-03-28 | 分类：IDC云库、服务器vps推荐

Osquery 是一种免费的开源工具，允许您获取操作系统信息以进行性能、安全性和合规性审计分析。

Osquery 是一种免费的开源工具，允许您获取操作系统信息以进行性能、安全性和合规性审计分析。它可以安装在所有主要操作系统上，如 Linux、FreeBSD、macOS、Windows 系统等。使用 Osquery，您可以获取所有重要的系统信息，包括正在运行的进程、加载的内核模块、活动用户帐户、网络连接等. 系统管理员使用它来解决性能和操作问题。

 

在本文中，我们将向您展示如何在 Oracle Linux 8 上安装 Osquery。

 

## 先决条件

 
 
- Atlantic.Net 云平台上全新的 Oracle Linux 8 服务器 
- 在您的服务器上配置的根密码 

 

## 第 1 步 – 创建 Atlantic.Net 云服务器

 

首先，登录到您的Atlantic.Net 云服务器。创建一个新服务器，选择 Oracle Linux 8 作为操作系统，至少 2GB 内存。通过 SSH 连接到您的云服务器，并使用页面顶部突出显示的凭据登录。

 

登录到 Oracle Linux 8 服务器后，运行以下命令以使用最新的可用程序包更新您的基本系统。

 

```
dnf更新-y
```

 

## 第 2 步 – 在 Oracle Linux 8 上安装 Osquery

 

默认情况下，Osquery 包不包含在 Oracle Linux 默认存储库中，因此您需要将 Osquery 存储库添加到您的系统中。您可以使用以下命令添加它：

 

```
卷曲-L https :// pkg 。查询。io / rpm / GPG | tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
dnf 配置管理器 --add-repo https :// pkg 。查询。io / rpm / osquery - s3 - rpm 。回购
```

 

接下来，使用以下命令验证添加的 repo：

 

```
dnf 回复 | grep osquery
```

 

您将获得以下输出：

 

```
osquery-s3-rpm-repo 名称=osquery RPM 存储库 - x86_64
```

 

接下来，使用以下命令安装 Osquery 包：

 

```
dnf --enablerepo osquery-s3-rpm-repo 安装 osquery -y
```

 

您可以使用以下命令启动 Osquery 服务：

 

```
osqueryctl启动
```

 

要停止 Osquery 服务，请运行以下命令：

 

```
osqueryctl 停止
```

 

## 第 3 步 – 在独立模式下运行 Osquery/h2>

 

您可以使用以下命令以独立模式运行 Osquery：

 

```
奥斯奎里
```

 

要获取所有命令的列表，请运行以下命令：

 

```
。帮助
```

 

您将获得以下输出：

 

```
欢迎使用 osquery shell。请探索您的操作系统！
您已连接到一个临时的“内存中”虚拟数据库。

.all [TABLE] 从表中选择所有
.bail ON|OFF 遇到错误后停止
.connect PATH 连接到 osquery 扩展套接字
.disconnect 断开连接的扩展套接字
.echo ON|OFF 打开或关闭命令回显
.exit 退出这个程序
.features 列出osquery的特性及其状态
.headers ON|OFF 打开或关闭标题显示
.help 显示这条消息
.mode MODE 设置输出模式，其中 MODE 是以下之一：
                   csv 逗号分隔值
                   列 左对齐列 请参见 .width
                   line 每行一个值
                   列出由 .separator 字符串分隔的值
                   漂亮漂亮打印的 SQL 结果（默认）
.nu​​llvalue STR 使用 STRING 代替 NULL 值
.print STR... 打印文字字符串
.quit 退出这个程序
.schema [TABLE] 显示 CREATE 语句
.separator STR 更改输出模式使用的分隔符
.socket 显示本地 osquery 扩展套接字路径
.show 显示各种设置的当前值
.summary show meta 命令的别名
.tables [TABLE] 列出表名
.types [SQL] 显示给定查询的 getQueryColumns 结果
.width [NUM1]+ 为“列”模式设置列宽
.timer ON|OFF 打开或关闭 CPU 定时器测量
```

 

## 第 4 步 – 如何使用 Osquery

 

Osquery 使用一个表来存储所有与系统相关的信息。您可以使用以下命令列出所有表：

 

```
.tables
```

 

您应该在以下输出中看到所有表的列表：

 

```
  => acpi_tables
  => apparmor_events
  => apparmor_profiles
  => apt_sources
  => arp_cache
  => 原子包
  => augeas
  => authorized_keys
  => azure_instance_metadata
  => azure_instance_tags
  => 块设备
  => bpf_process_events
  => bpf_socket_events
  => carbon_black_info
  => 雕刻
  =>证书
  => chrome_extension_content_scripts
  => chrome_extensions
  => cpu_info
  => cpu_time
  => CPUID
```

 

要检查操作系统版本，请运行以下命令：

 

```
从 os_version 中选择 *；
```

 

您将获得以下输出：

 

```
+------------------------+-------------------- ----------------------+--------+--------+--------+- ------+------------+----------------+------------+----- ---+
| 姓名 | 版本 | 专业 | 未成年人 | 补丁| 建造 | 平台 | 类似平台 | 代号 | 拱 |
+------------------------+-------------------- ----------------------+--------+--------+--------+- ------+------------+----------------+------------+----- ---+
| 红帽企业 Linux | 红帽企业 Linux 8.5 版（Ootpa）| 8 | 5 | 0 | | 雷尔 | 雷尔 | | x86_64 |
+------------------------+-------------------- ----------------------+--------+--------+--------+- ------+------------+----------------+------------+----- ---+
```

 

要列出 UID 大于**1000 的所有用户，**请运行以下命令：

 

```
从 uid >=1000 的用户中选择 *；
```

 

您将获得以下输出：

 

```
+--------+--------+------------+------------+------ ---+--------------------+------------+------------ ----+------+
| uid | gid | uid_signed | gid_signed | 用户名 | 说明 | 目录 | 壳 | uuid |
+--------+--------+------------+------------+------ ---+--------------------+------------+------------ ----+------+
| 65534 | 65534 | 65534 | 65534 | 没有人 | 内核溢出用户 | / | /sbin/nologin | |
+--------+--------+------------+------------+------ ---+--------------------+------------+------------ ----+------+
```

 

要列出所有活动的登录用户，请运行以下命令：

 

```
从 logged_in_users 中选择用户、tty、主机、时间，其中 tty 不像“~”；
```

 

您将获得以下输出：

 

```
+--------+--------+------------+------------+
| 用户 | 终端 | 主持人 | 时间 |
+--------+--------+------------+------------+
| 登入 | tty1 | | 1662011298 |
| 根 | 分/0 | 117.99.59.26 | 1662011331 |
+--------+--------+------------+------------+
```

 

要检查系统正常运行时间，请运行以下命令：

 

```
从正常运行时间中选择 *；
```

 

您将获得以下输出：

 

```
+------+--------+--------+--------+------------ -+
| 天 | 小时 | 分钟 | 秒| 总秒 |
+------+--------+--------+--------+------------ -+
| 0 | 0 | 5 | 57 | 357 |
+------+--------+--------+--------+------------ -+
```

 

要列出所有网络接口，请运行以下命令：

 

```
从 interface_addresses 中选择接口、地址、掩码，其中接口不喜欢 '%lo%'；
```

 

您将获得以下输出：

 

```
+------------+----------------------------+----- ------------------+
| 界面 | 地址 | 面膜 |
+------------+----------------------------+----- ------------------+
| eth0 | 208.117.81.163 | 255.255.255.0 |
| eth0 | fe80::200:d0ff:fe75:51a3%eth0 | ffff:ffff:ffff:ffff:: |
| eth1 | fe80::200:aff:fe75:51a3%eth1 | ffff:ffff:ffff:ffff:: |
+------------+----------------------------+----- ------------------+
```

 

要启用行模式，请运行以下命令：

 

```
.模式线
```

 

要检查系统信息并逐行打印输出，请运行以下命令：

 

```
从系统信息中选择 *；
```

 

您将获得以下输出：

 

```
          主机名 = oraclelinux8
              uuid = 537b369a-6701-4b31-bb3d-5a34d663eb1f
          cpu_type = x86_64
       cpu_subtype = 6
         cpu_brand = QEMU 虚拟 CPU 版本 2.5+
cpu_physical_cores = 1
 cpu_logical_cores = 1
     cpu_microcode = 0x1
   物理内存 = 1905364992
   硬件供应商 = QEMU
    hardware_model = 标准 PC (i440FX + PIIX, 1996)
  hardware_version = pc-i440fx-bionic
   硬件_序列号 =
      board_vendor =
       board_model =
     board_version =
      board_serial =
     计算机名 = oraclelinux8
    local_hostname = oraclelinux8
```

 

您可以使用以下命令退出 Osquery shell：

 

```
。出口
```

 

## 第 5 步 – 通过 Systemd 运行 Osquery

 

要通过 systemd 运行 Osquery，您需要复制 Osquery 配置文件：

 

```
cp /opt/osquery/share/osquery/osquery.example.conf /etc/osquery/osquery.conf
```

 

接下来，使用以下命令停止 Osquery 守护进程：

 

```
osqueryctl 停止
```

 

接下来，使用以下命令通过 systemd 启动并启用 Osquery 服务：

 

```
systemctl 启动 osqueryd
systemctl 启用 osqueryd
```

 

要检查 Osquery 的活动状态，请运行以下命令：

 

```
系统状态 osqueryd
```

 

您将获得以下输出：

 

```
● osqueryd.service - osquery 守护进程
   已加载：已加载（/usr/lib/systemd/system/osqueryd.service；已禁用；供应商预设：已禁用）
   活跃：自美国东部时间周四 2022-09-01 01:57:08 开始活跃（运行）；12 秒前
  处理：1458 ExecStartPre=/bin/sh -c if [ -f $LOCAL_PIDFILE ]; 然后 mv $LOCAL_PIDFILE $PIDFILE; fi（代码=退出，状态=0/成功）
  处理：1456 ExecStartPre=/bin/sh -c if [ ! -f $FLAG_FILE ]; 然后触摸 $​​FLAG_FILE；fi（代码=退出，状态=0/成功）
 主 PID：1459（osqueryd）
    任务：14（限制：11409）
   内存：7.9M
   CGroup: /system.slice/osqueryd.service
           ├─1459 /opt/osquery/bin/osqueryd --flagfile /etc/osquery/osquery.flags --config_path /etc/osquery/osquery.conf
           └─1462 /opt/osquery/bin/osqueryd
```

 

## 结论

 

在本文中，我们向您展示了如何在 Oracle Linux 8 上安装 Osquery。我们还解释了如何使用 Osquery 获取系统信息。您现在可以轻松地使用 Osquery 来获取与系统相关的信息。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
