Monitoraggio file · 6 min read · Nov 03, 2025
Come configurare il monitoraggio dell'integrità dei file (FIM) utilizzando osquery su Linux

Osquery è uno strumento open source per l’istrumentazione, il monitoraggio e l’analisi del sistema operativo. Creato da Facebook, espone un sistema operativo come un database relazionale ad alte prestazioni che può essere interrogato utilizzando query basate su SQL.
Osquery è un software multi-piattaforma, può essere installato su Linux, Windows, MacOS e FreeBSD. Ci consente di esplorare tutti i profili di quei sistemi operativi, le prestazioni, il controllo della sicurezza, ecc., utilizzando query basate su SQL.
In questo tutorial, ti mostreremo come configurare il monitoraggio dell’integrità dei file (FIM) utilizzando osquery. Utilizzeremo i sistemi operativi Linux Ubuntu 18.04 e CentOS 7.
Prerequisiti
- Linux (Ubuntu o CentOS)
- Privilegi di root
- Completato il primo guida osquery
Cosa faremo
- Installare osquery sul server Linux
- Abilitare il consumo di Syslog per osquery
- Configurazione di base di osquery
- Configurare il monitoraggio dell’integrità dei file osquery
- Testare
Passo 1 - Installare osquery sul server Linux
Osquery fornisce il proprio repository per l’installazione su tutte le piattaforme, e il primo passo che faremo è installare il pacchetto osquery DAL repository ufficiale di osquery.
Su Ubuntu
Aggiungi la chiave osquery al sistema.
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEYAggiungi il repository osquery e installa il pacchetto.
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt install osquery -ySu CentOS
Aggiungi la chiave osquery al sistema.
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osqueryAggiungi e abilita il repository osquery, e installa il pacchetto.
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 -yAspetta che tutti i pacchetti siano installati.

Nota:
Se ricevi l’errore riguardo al comando yum-config-manager.
sudo: yum-config-manager: command not foundInstalla il pacchetto ‘yum-utils’.
yum -y install yum-utilsPasso 2 - Abilitare il consumo di Syslog in osquery
Osquery fornisce funzionalità per leggere o consumare i log di sistema su Apple MacOS utilizzando l’Apple System Log (ASL), e per Linux utilizza il syslog.
In questo passo, abiliteremo il consumo di syslog per osquery tramite rsyslog.
Su Ubuntu
Installa il pacchetto rsyslog utilizzando il comando apt qui sotto.
sudo apt install rsyslog -ySu CentOS
Installa il pacchetto rsyslog utilizzando il comando yum qui sotto.
sudo yum install rsyslog -yDopo che l’installazione è completata, vai nella directory ‘/etc/rsyslog.d’ e crea un nuovo file di configurazione osquery.conf.
cd /etc/rsyslog.d/
vim osquery.confIncolla la seguente configurazione lì.
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")Salva ed esci.

Passo 3 - Configurazione di base di osquery
La configurazione predefinita di osquery è ‘osquery.conf’, di solito situata nella directory ‘/etc/osquery’. Ci sono campioni della configurazione di osquery in ‘/usr/share/osquery/osquery.conf’ e campioni di configurazione dei pacchetti osquery.
In questo passo, impareremo i componenti della configurazione di osquery, creeremo la configurazione personalizzata di osquery e poi deployeremo osqueryd come servizio.
La configurazione di osquery formattata come un file JSON contiene le specifiche della configurazione di osquery descritte di seguito.
- Opzioni: parte del comando CLI di osqueryd e determina l’avvio e l’inizializzazione delle app.
- Programmazione: definisce il flusso dei nomi delle query programmate ai dettagli della query.
- Decoratori: utilizzati per aggiungere ulteriori “decorazioni” ai risultati e ai log degli snapshot.
- Pacchetti: un gruppo di query programmate.
- Altro: Percorso del file, YARA, Prometheus, Visualizzazioni, EC2, Configurazione Chef.
Vai nella directory ‘/etc/osquery’ e crea una nuova configurazione personalizzata ‘osquery.conf’.
cd /etc/osquery/
vim osquery.confIncolla le seguenti configurazioni lì.
{
"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"
}
}Salva ed esci.
Nota:
- Stiamo utilizzando ‘filesystem’ come plugin di configurazione e logger.
- Definisci il percorso del logger nella directory ‘/var/log/osquery’.
- Abilita il pipe syslog nel file ‘/var/syslog/syslog_pipe’.
- Nello scheduler, definiamo tre query per controllare il crontab, le informazioni di sistema e il login ssh.
- Abilita i pacchetti osquery chiamati ‘osquery-monitoring’, e i file dei pacchetti si trovano nella directory ‘/usr/share/osquery/packs’.
Ora avvia il servizio daemon osqueryd e abilitalo per avviarsi ogni volta all’avvio del sistema.
systemctl start osqueryd
systemctl enable osquerydE riavvia il servizio rsyslog.
systemctl restart rsyslogLa configurazione di base di osquery è stata completata.

Passo 4 - Configurare il monitoraggio dell’integrità dei file (FIM) utilizzando osquery
Osquery fornisce il monitoraggio dell’integrità dei file su Linux e MacOS Darwin utilizzando inotify e FSEvents. Semplicemente, monitora e rileva eventuali modifiche ai file nella directory definita utilizzando ‘file_path’ e poi memorizza tutta l’attività nella tabella file_events.
In questo passo, configureremo osquery per monitorare directory importanti come home, directory ssh, ecc., tmp e la directory radice www utilizzando pacchetti FIM personalizzati.
Vai nella directory ‘/usr/share/osquery/packs’ e crea un nuovo file di configurazione dei pacchetti ‘fim.conf’.
cd /usr/share/osquery/packs
vim fim.confIncolla le configurazioni qui sotto.
{
"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/%%"
]
}
}Salva ed esci.
Ora torna nella directory di configurazione ‘/etc/osquery’ ed edita il file osquery.conf.
cd /etc/osquery/
vim osquery.confAggiungi la configurazione dei pacchetti di monitoraggio dell’integrità dei file all’interno della sezione ‘packs’.
"packs": {
"osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf",
"fim": "/usr/share/osquery/packs/fim.conf"
}
Salva ed esci, poi riavvia il servizio osqueryd.
systemctl restart osqueryd
Nota:
Continua a controllare il file di configurazione JSON utilizzando il linter JSON ‘ http://jsonlint.com/ ‘ e assicurati che non ci siano errori.
Passo 5 - Testare
Testeremo i pacchetti di monitoraggio dell’integrità dei file creando un nuovo file nella directory definita ‘home’ e ‘www’.
Vai nella directory ‘/var/www/‘ e crea un nuovo file chiamato ‘howtoforge.md’.
cd /var/www/
touch howtoforge.mdVai nella directory ‘/home/youruser/‘ e crea un nuovo file chiamato ‘hakase-labs.md’.
cd /home/vagrant/
touch hakase-labs.mdOra controlleremo tutti i log di monitoraggio utilizzando la modalità interattiva in tempo reale osqueryi e i log dei risultati di osquery.

osqueryi
Esegui il comando osqueryi qui sotto.
osqueryi --config-path /etc/osquery/osquery.confOra controlla tutti i log riguardanti le modifiche ai file nella tabella ‘file_events’.
Per le modifiche globali.
select * from file_events;Per la directory ‘home’.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";Per la directory radice web ‘www’.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";
log dei risultati di osqueryd
Vai nella directory ‘/var/log/osquery’ e troverai il file ‘osqueryd.results.log’.
cd /var/log/osquery/
ls -lah osqueryd.results.logFiltra i log di osquery utilizzando il comando ‘grep’.
grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.logVedrai informazioni su quei file che sono stati creati.

L’installazione e la configurazione del monitoraggio dell’integrità dei file (FIM) su Linux Server Ubuntu e CentOS utilizzando osquery è stata completata con successo.
Riferimenti
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.