Dateiüberwachung · 6 min read · Nov 03, 2025
So richten Sie die Datei-Integritätsüberwachung (FIM) mit osquery unter Linux ein

Osquery ist eine Open-Source-Instrumentierung, Überwachung und Analyse des Betriebssystems. Entwickelt von Facebook, stellt es ein Betriebssystem als eine leistungsstarke relationale Datenbank dar, die mit SQL-basierten Abfragen abgefragt werden kann.
Osquery ist eine plattformübergreifende Software, die auf Linux, Windows, MacOS und FreeBSD installiert werden kann. Es ermöglicht uns, alle Profile, die Leistung, die Sicherheitsüberprüfung usw. dieser Betriebssysteme mithilfe von SQL-basierten Abfragen zu erkunden.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Datei-Integritätsüberwachung (FIM) mit osquery einrichten. Wir verwenden die Linux-Betriebssysteme Ubuntu 18.04 und CentOS 7.
Voraussetzungen
- Linux (Ubuntu oder CentOS)
- Root-Rechte
- Abgeschlossene erste osquery-Anleitung
Was wir tun werden
- Installieren Sie osquery auf dem Linux-Server
- Aktivieren Sie die Syslog-Verbrauch für osquery
- Grundlegende osquery-Konfiguration
- Konfigurieren Sie die Datei-Integritätsüberwachung osquery
- Testen
Schritt 1 - Installieren Sie osquery auf dem Linux-Server
Osquery bietet sein eigenes Repository für die Installation aller Plattformen, und der erste Schritt, den wir unternehmen werden, ist die Installation des osquery-Pakets AUS dem offiziellen osquery-Repository.
Auf Ubuntu
Fügen Sie den osquery-Schlüssel zum System hinzu.
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEYFügen Sie das osquery-Repository hinzu und installieren Sie das Paket.
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt install osquery -yAuf CentOS
Fügen Sie den osquery-Schlüssel zum System hinzu.
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osqueryFügen Sie das osquery-Repository hinzu und aktivieren Sie es, und installieren Sie das Paket.
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm
sudo yum install osquery -yWarten Sie, bis alle Pakete installiert sind.

Hinweis:
Wenn Sie den Fehler über den Befehl yum-config-manager erhalten.
sudo: yum-config-manager: Befehl nicht gefundenInstallieren Sie das Paket ‘yum-utils’.
yum -y install yum-utilsSchritt 2 - Aktivieren Sie den Syslog-Verbrauch in osquery
Osquery bietet Funktionen zum Lesen oder Verbrauchen von Systemprotokollen auf dem Apple MacOS mit dem Apple System Log (ASL), und für Linux wird syslog verwendet.
In diesem Schritt aktivieren wir den Syslog-Verbrauch für osquery über das rsyslog.
Auf Ubuntu
Installieren Sie das rsyslog-Paket mit dem folgenden apt-Befehl.
sudo apt install rsyslog -yAuf CentOS
Installieren Sie das rsyslog-Paket mit dem folgenden yum-Befehl.
sudo yum install rsyslog -yNachdem die Installation abgeschlossen ist, gehen Sie in das Verzeichnis ‘/etc/rsyslog.d’ und erstellen Sie eine neue Konfigurationsdatei osquery.conf.
cd /etc/rsyslog.d/
vim osquery.confFügen Sie dort die folgende Konfiguration ein.
template(
name="OsqueryCsvFormat"
type="string"
string="%timestamp:::date-rfc3339,csv%,%hostname:::csv%,%syslogseverity:::csv%,%syslogfacility-text:::csv%,%syslogtag:::csv%,%msg:::csv%\n"
)
*.* action(type="ompipe" Pipe="/var/osquery/syslog_pipe" template="OsqueryCsvFormat")Speichern und beenden.

Schritt 3 - Grundkonfiguration osquery
Die Standardkonfiguration von osquery ist ‘osquery.conf’, die sich normalerweise im Verzeichnis ‘/etc/osquery’ befindet. Es gibt Beispiele für die osquery-Konfiguration ‘/usr/share/osquery/osquery.conf’ und Beispiele für die Konfiguration von osquery-Packs.
In diesem Schritt lernen wir die Komponenten der osquery-Konfiguration kennen, erstellen die benutzerdefinierte osquery-Konfiguration und setzen dann osqueryd als Dienst ein.
Die osquery-Konfiguration ist als JSON-Datei formatiert und enthält die folgenden Spezifikationen der osquery-Konfiguration.
- Optionen: Teil des osqueryd CLI-Befehls, der den Start und die Initialisierung der Apps bestimmt.
- Zeitplan: Definiert den Fluss der geplanten Abfragenamen zu den Abfragedetails.
- Dekoratoren: Werden verwendet, um zusätzliche “Dekorationen” zu Ergebnissen und Snapshot-Protokollen hinzuzufügen.
- Packs: eine Gruppe von geplanten Abfragen.
- Mehr: Dateipfad, YARA, Prometheus, Ansichten, EC2, Chef-Konfiguration.
Gehen Sie in das Verzeichnis ‘/etc/osquery’ und erstellen Sie eine neue benutzerdefinierte Konfiguration ‘osquery.conf’.
cd /etc/osquery/
vim osquery.confFügen Sie dort die folgenden Konfigurationen ein.
{
"options": {
"config_plugin": "filesystem",
"logger_plugin": "filesystem",
"logger_path": "/var/log/osquery",
"disable_logging": "false",
"log_result_events": "true",
"schedule_splay_percent": "10",
"pidfile": "/var/osquery/osquery.pidfile",
"events_expiry": "3600",
"database_path": "/var/osquery/osquery.db",
"verbose": "false",
"worker_threads": "2",
"enable_monitor": "true",
"disable_events": "false",
"disable_audit": "false",
"audit_allow_config": "true",
"host_identifier": "hakase-labs",
"enable_syslog": "true",
"syslog_pipe_path": "/var/osquery/syslog_pipe",
"force": "true",
"audit_allow_sockets": "true",
"schedule_default_interval": "3600"
},
"schedule": {
"crontab": {
"query": "SELECT * FROM crontab;",
"interval": 300
},
"system_info": {
"query": "SELECT hostname, cpu_brand, physical_memory FROM system_info;",
"interval": 3600
},
"ssh_login": {
"query": "SELECT username, time, host FROM last WHERE type=7",
"interval": 360
}
},
"decorators": {
"load": [
"SELECT uuid AS host_uuid FROM system_info;",
"SELECT user AS username FROM logged_in_users ORDER BY time DESC LIMIT 1;"
]
},
"packs": {
"osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf"
}
}Speichern und beenden.
Hinweis:
- Wir verwenden ‘filesystem’ als Konfigurations- und Logger-Plugins.
- Definieren Sie den Logger-Pfad im Verzeichnis ‘/var/log/osquery’.
- Aktivieren Sie das Syslog-Pipe zum Datei ‘/var/syslog/syslog_pipe’.
- Im Zeitplan definieren wir drei Abfragen zur Überprüfung des Crontabs, der Systeminformationen und des SSH-Logins.
- Aktivieren Sie die osquery-Packs mit dem Namen ‘osquery-monitoring’, und die Packdateien befinden sich im Verzeichnis ‘/usr/share/osquery/packs’.
Starten Sie jetzt den osqueryd-Daemon-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet wird.
systemctl start osqueryd
systemctl enable osquerydUnd starten Sie den rsyslog-Dienst neu.
systemctl restart rsyslogDie grundlegende Konfiguration von osquery wurde abgeschlossen.

Schritt 4 - Konfigurieren Sie die Datei-Integritätsüberwachung (FIM) mit osquery
Osquery bietet die Datei-Integritätsüberwachung unter Linux und MacOS Darwin mithilfe von inotify und FSEvents. Einfach gesagt, es überwacht und erkennt alle Änderungen von Dateien im definierten Verzeichnis mithilfe des ‘file_path’ und speichert dann alle Aktivitäten in der Tabelle file_events.
In diesem Schritt konfigurieren wir osquery, um wichtige Verzeichnisse wie home, ssh-Verzeichnis usw., tmp und das www-Webstammverzeichnis mithilfe benutzerdefinierter FIM-Packs zu überwachen.
Gehen Sie in das Verzeichnis ‘/usr/share/osquery/packs’ und erstellen Sie eine neue Pack-Konfigurationsdatei ‘fim.conf’.
cd /usr/share/osquery/packs
vim fim.confFügen Sie die folgenden Konfigurationen ein.
{
"queries": {
"file_events": {
"query": "SELECT * FROM file_events;",
"removed": false,
"interval": 300
}
},
"file_paths": {
"homes": [
"/root/.ssh/%%",
"/home/%/.ssh/%%"
],
"etc": [
"/etc/%%"
],
"home": [
"/home/%%"
],
"tmp": [
"/tmp/%%"
],
"www": [
"/var/www/%%"
]
}
}Speichern und beenden.
Gehen Sie jetzt zurück in das Konfigurationsverzeichnis ‘/etc/osquery’ und bearbeiten Sie die osquery.conf-Datei.
cd /etc/osquery/
vim osquery.confFügen Sie die Konfiguration der Datei-Integritätsüberwachung in den Abschnitt ‘packs’ ein.
"packs": {
"osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf",
"fim": "/usr/share/osquery/packs/fim.conf"
}
Speichern und beenden, und starten Sie dann den osqueryd-Dienst neu.
systemctl restart osqueryd
Hinweis:
Überprüfen Sie die JSON-Konfigurationsdatei mit dem JSON-Linter ‘ http://jsonlint.com/ ‘ und stellen Sie sicher, dass keine Fehler vorhanden sind.
Schritt 5 - Testen
Wir werden die Datei-Integritätsüberwachungs-Packs testen, indem wir eine neue Datei im definierten Verzeichnis ‘home’ und ‘www’ erstellen.
Gehen Sie in das Verzeichnis ‘/var/www/‘ und erstellen Sie eine neue Datei mit dem Namen ‘howtoforge.md’.
cd /var/www/
touch howtoforge.mdGehen Sie in das Verzeichnis ‘/home/youruser/‘ und erstellen Sie eine neue Datei mit dem Namen ‘hakase-labs.md’.
cd /home/vagrant/
touch hakase-labs.mdJetzt werden wir alle Protokolle überwachen, indem wir den Echtzeit-Interaktivmodus osqueryi und die Protokolle der osquery-Ergebnisse verwenden.

osqueryi
Führen Sie den osqueryi-Befehl unten aus.
osqueryi --config-path /etc/osquery/osquery.confÜberprüfen Sie jetzt alle Protokolle über Dateiänderungen in der Tabelle ‘file_events’.
Für globale Änderungen.
select * from file_events;Für das Verzeichnis ‘home’.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";Für das www-Webstammverzeichnis.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";
osqueryd-Ergebnisprotokoll
Gehen Sie in das Verzeichnis ‘/var/log/osquery’ und Sie erhalten die Datei ‘osqueryd.results.log’.
cd /var/log/osquery/
ls -lah osqueryd.results.logFiltern Sie die osquery-Protokolle mit dem Befehl ‘grep’.
grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.logSie werden Informationen darüber sehen, dass diese Dateien erstellt wurden.

Die Installation und Konfiguration der Datei-Integritätsüberwachung (FIM) auf dem Linux-Server Ubuntu und CentOS mit osquery wurde erfolgreich abgeschlossen.
Referenz
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.