Гид по технологиям

Установка и использование osquery на Debian 10

• 4 min read • Системное администрирование • Обновлено 22 Nov 2025
osquery на Debian 10 — установка и примеры
osquery на Debian 10 — установка и примеры

Иллюстрация osquery в терминале

  • osquery — бесплатный инструмент для выполнения SQL-подобных запросов к состоянию ОС, полезен для мониторинга и расследований.
  • В статье описана установка репозитория на Debian 10, запуск демона osqueryd и интерактивной оболочки osqueryi, а также набор практических запросов.
  • В конце — чек-листы, сниппеты и рекомендации по развёртыванию в продакшн.

Требования

  • Сервер с Debian 10.
  • Доступ root или привилегии sudo.

Начало работы

Перед установкой обновите пакеты системы:

apt-get update -y  
apt-get upgrade -y

После обновления рекомендуется перезагрузить систему, чтобы применить обновления ядра и сервисов.

Установка osquery

По умолчанию osquery отсутствует в стандартном репозитории Debian 10, поэтому добавим официальный репозиторий.

Сначала импортируйте GPG-ключ:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B

Затем установите helper и добавьте репозиторий:

apt-get install software-properties-common -y  
add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'

Обновите индекс пакетов и установите osquery:

apt-get update -y  
apt-get install osquery -y

Запустите демон osqueryd и проверьте статус:

osqueryctl start osqueryd
osqueryctl status osqueryd

Ожидаемый пример вывода службы systemd (пример):

? osqueryd.service - The osquery Daemon
   Loaded: loaded (/lib/systemd/system/osqueryd.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-04-19 15:21:57 UTC; 6s ago
  Process: 25333 ExecStartPre=/bin/sh -c if [ ! -f $CONFIG_FILE ]; then echo {} > $CONFIG_FILE; fi (code=exited, status=0/SUCCESS)
  Process: 25334 ExecStartPre=/bin/sh -c if [ ! -f $FLAG_FILE ]; then touch $FLAG_FILE; fi (code=exited, status=0/SUCCESS)
  Process: 25336 ExecStartPre=/bin/sh -c if [ -f $LOCAL_PIDFILE ]; then mv $LOCAL_PIDFILE $PIDFILE; fi (code=exited, status=0/SUCCESS)
 Main PID: 25337 (osqueryd)
    Tasks: 13 (limit: 4701)
   Memory: 6.4M
   CGroup: /system.slice/osqueryd.service
           ??25337 /usr/bin/osqueryd --flagfile /etc/osquery/osquery.flags --config_path /etc/osquery/osquery.conf
           ??25339 /usr/bin/osqueryd

Apr 19 15:21:57 debian10 systemd[1]: Starting The osquery Daemon...
Apr 19 15:21:57 debian10 systemd[1]: Started The osquery Daemon.
Apr 19 15:21:57 debian10 osqueryd[25337]: osqueryd started [version=4.2.0]
Apr 19 15:21:57 debian10 osqueryd[25337]: I0419 15:21:57.261158 25339 events.cpp:863] Event publisher not enabled: auditeventpublisher: Publish
Apr 19 15:21:57 debian10 osqueryd[25337]: I0419 15:21:57.261485 25339 events.cpp:863] Event publisher not enabled: syslog: Publisher disabled v

Важно: apt-key официально помечен как устаревший в новых версиях Debian. При необходимости используйте безопасное добавление ключей в /etc/apt/trusted.gpg.d или подписанные релизы.

Компоненты osquery

  • osqueryi — интерактивная оболочка, полезна для ad-hoc запросов и исследования системы.
  • osqueryd — демон для постоянного мониторинга и планирования запросов.
  • osqueryctl — вспомогательный скрипт для тестирования конфигураций и управления демоном.

Подключитесь к оболочке:

osqueryi

Ожидаемый приветственный текст:

Using a virtual database. Need help, type '.help'

Чтобы посмотреть доступные команды, выполните:

osquery> .help

(вывод .help содержит список команд и режимов отображения)

Доступные таблицы и базовые запросы

Список всех таблиц:

osquery> .table

Примеры полезных запросов для быстрой диагностики

  • Информация о системе:
osquery> select hostname,cpu_physical_cores,physical_memory from system_info;
  • Конфигурация ssh клиента:
osquery> select * from ssh_configs;
  • Все пользователи:
osquery> SELECT * FROM users;
  • Текущие вошедшие пользователи:
osquery> select * from logged_in_users where type = 'user';
  • Память:
osquery> select * from memory_info;
  • Средняя загрузка:
osquery> select * from load_average;
  • Первые 5 пакетов (deb):
osquery> select * from deb_packages top limit 5;
  • Прослушиваемые порты и процессы:
osquery> SELECT DISTINCT processes.name, listening_ports.port, processes.pid FROM listening_ports JOIN processes USING (pid) WHERE listening_ports.address = '0.0.0.0';
  • История логинов:
osquery> select * from last;
  • Cron задания:
osquery> select command, path from crontab ;
  • Все прослушиваемые порты:
osquery> select * from listening_ports;
  • Топ 5 активных процессов по количеству PID:
osquery> select count(pid) as total, name from processes group by name order by total desc limit 5;

Мониторинг и использование на практике

osquery удобно использовать для:

  • Быстрой инвентаризации хоста.
  • Поиска необычных процессов и сетевых соединений.
  • Автоматического сбора состояния для SIEM и EDR.

Рекомендации по базовой конфигурации:

  • Составьте файл конфигурации osquery.conf с набором регулярных запросов.
  • Настройте log rotation и безопасную передачу логов на центральный сервер.
  • Запустите osqueryd под системным пользователем и ограничьте доступ к конфигам.

Когда osquery может не подойти

  • osquery не заменяет сетевой снэпшот-каптюр и не анализирует пакеты на уровне pcap.
  • Для поведенческого EDR и детальной трассировки приложений потребуется дополнительное ПО.
  • Некоторые виртуальные таблицы возвращают данные в контексте текущего пользователя, будьте внимательны при агрегировании.

Быстрый набор запросов — cheat sheet

Часто используемые запросы для расследования:

  • Список SUID/SGID файлов:
osquery> select * from file where mode & 04000 != 0 or mode & 02000 != 0;
  • Исполняемые файлы в домашней директории пользователя:
osquery> select path from file where directory = '/home' and (mode & 0111) != 0 limit 50;
  • Автозапуск служб и юниты systemd:
osquery> select name, runlevels from initd where runlevels != '';
osquery> select name, path, enabled from systemd_units where type = 'service';
  • Недавно изменённые файлы в /etc:
osquery> select path, atime, mtime from file where directory = '/etc' order by mtime desc limit 50;

Развёртывание на нескольких хостах — мини-методология

  1. Разработайте набор базовых запросов и формат логов.
  2. Протестируйте конфигурацию на тестовой машине в osqueryi и osqueryd.
  3. Внедрите доставку логов (syslog, fluentd, beats, HTTPS) в центральный репозиторий.
  4. Настройте шаблоны оповещений для критичных показателей.
  5. Периодически ревью конфигураций и обновлений osquery.

Ролевые чек-листы

Администратор:

  • Установить пакет и импортировать ключ.
  • Запустить osqueryd и убедиться в логировании.
  • Обновить конфигурацию и протестировать паузы.

Инженер безопасности:

  • Составить набор запланированных запросов для IOC.
  • Настроить передачу логов в SIEM.
  • Проверить доступность и валидность данных для расследований.

DevOps:

  • Интегрировать osquery с системой управления конфигурациями.
  • Автоматизировать развёртывание и обновления.
  • Контролировать SLI/SLO на основе доставленных логов.

Модель принятия решений

flowchart TD
  A[Нужен интерактивный аудит?] -->|Да| B[osqueryi]
  A -->|Нет, нужен постоянный сбор| C[osqueryd]
  C --> D{Нужна централизованная аналитика?}
  D -->|Да| E[Отправлять логи в SIEM/ELK]
  D -->|Нет| F[Локальные журналы и alerting]

1-строчная глоссарий

  • osqueryi — интерактивная SQL-оболочка для ad-hoc запросов.
  • osqueryd — демон для регулярных сборов и мониторинга.
  • table — виртуальная таблица, представляющая набор системных данных.

Критерии приёмки

  • osqueryd запущен и активен на хосте.
  • Логи доставляются в центральное хранилище или остаются доступны локально.
  • Набор базовых запросов успешно выполняется и возвращает ожидаемые столбцы.

Заключение

В этой инструкции рассмотрена установка osquery на Debian 10, запуск демона и примеры полезных запросов для мониторинга и расследований. osquery даёт быстрый программный доступ к множеству системных артефактов, что делает его удобным инструментом для администраторов и специалистов по безопасности.

Важно: osquery — часть экосистемы мониторинга, и для глубокого анализа событий рекомендуется комбинировать его с SIEM/EDR и инструментами сетевого анализа.

Короткая памятка: начните с osqueryi для изучения таблиц, затем переведите набор запросов в конфигурацию osqueryd и настройте централизованную доставку логов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро