
Osquery je open-source nástroj, který proměňuje operační systém na relační databázi — umožňuje vám pomocí SQL-dotazů zkoumat stav systému, běžící procesy, otevřené porty, instalované balíčky, změny souborů atd.
Použití osquery je vhodné pro:
- monitorování stavu zařízení / serverů,
- bezpečnostní audit, incident response,
- inventarizaci systémů, změny konfigurace,
- nasazení v heterogenním prostředí (Linux, Windows, macOS) pomocí jednotného dotazovacího jazyka SQL.
Proč jej nasadit na Raspberry Pi
Pokud provozujete Raspberry Pi jako server, domácí bránu, IoT zařízení nebo součást sítě, osquery vám umožní získat detailní vhled na toto zařízení — jak v reálném čase (např. nové procesy, změny souborů) tak i historicky (naplánované dotazy). Díky tomu můžete například detekovat nežádoucí změny, sledovat instalované balíčky, otevřené porty či síťová spojení.
Instalace na Raspberry Pi (ARM64)
Předpoklady: Raspberry Pi s 64bit OS (např. Raspberry Pi OS 64-bit / Debian/Ubuntu arm64). Ujistěte se, že systém je aktualizovaný.
Aktualizace systému:
sudo apt update && sudo apt upgrade -y
Přidání oficiálního repozitáře osquery:
sudo apt install -y curl gpg ca-certificates lsb-release
curl -fsSL https://pkg.osquery.io/deb/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/osquery-archive-keyring.gpg
ARCH=$(dpkg --print-architecture)
echo "deb [arch=${ARCH} signed-by=/usr/share/keyrings/osquery-archive-keyring.gpg] https://pkg.osquery.io/deb deb main" | sudo tee /etc/apt/sources.list.d/osquery.list
sudo apt update
Instalace balíčku osquery:
sudo apt install -y osquery
Zkopírování ukázkového konfiguračního souboru:
sudo cp /usr/share/osquery/osquery.example.conf /etc/osquery/osquery.conf
Spuštění démonu:
sudo systemctl enable osqueryd
sudo systemctl start osqueryd
Základní konfigurace
Níže je ukázka minimálního konfiguračního souboru /etc/osquery/osquery.conf, který můžete upravit dle potřeby:
{
"options": {
"host_identifier": "hostname",
"database_path": "/var/osquery/osquery.db",
"pidfile": "/var/osquery/osquery.pid",
"logger_plugin": "filesystem",
"logger_path": "/var/log/osquery",
"utc": true,
"disable_events": false
},
"schedule": {
"system_info_hourly": {
"query": "SELECT hostname, cpu_brand, physical_memory FROM system_info;",
"interval": 3600
},
"listening_ports_5m": {
"query": "SELECT pid, port, address, protocol, state FROM listening_ports;",
"interval": 300
},
"installed_packages_6h": {
"query": "SELECT name, version, arch FROM deb_packages;",
"interval": 21600
}
},
"file_paths": {
"etc": ["/etc/%%"],
"logs": ["/var/log/%%"]
}
}
Po uložení změn restartujte démon:
sudo systemctl restart osqueryd
Rychlé SQL dotazy pro testování
Po instalaci můžete spustit interaktivní shell:
osqueryi
A například:
SELECT * FROM users;
SELECT name, pid FROM processes WHERE on_disk = 0;
SELECT * FROM listening_ports WHERE address = '0.0.0.0';