如何在Linux上使用Osquery設定檔案完整性監控(FIM)
Osquery是一個SQL驅動作業系統檢測和分析工具,它由Facebook建立,支援像SQL語句一樣查詢系統的各項指標,可以用於OSX和Linux作業系統。
Osquery是一個多平臺軟體,可以安裝在Linux,Windows,MacOS和FreeBSD上。它允許我們使用基於SQL的查詢來處理作業系統的配置檔案、效能、安全檢查等。
在本教程中,我們將向您展示如何使用Osquery設定檔案完整性監控(FIM)。我們使用的linux作業系統是Ubuntu 18.04和CENTOS 7。
條件
-
Linux(Ubuntu或CentOS)
-
Root許可權
-
完成了第一個osquery指南
步驟一:在Linux伺服器上安裝osquery
Osquery為所有的安裝平臺提供了自己的儲存庫,我們要做的第一步是從官方的osquery儲存庫安裝osquery包。
在Ubuntu上
將osquery金鑰新增到系統。
Export OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $ OSQUERY_KEY
新增osquery儲存庫並安裝。
sudo add-apt-repository'deb [arch = amd64] https://pkg.osquery.io/deb deb
main'sudo apt install osquery -y
在CentOS上
將osquery金鑰新增到系統。
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery
新增並啟用osquery儲存庫,然後安裝該軟體包。
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 -y
等待安裝所有軟體包
注意: 如果您收到關於yum-config-manager命令的錯誤訊息。
sudo: yum-config-manager: command not found
安裝'yum-utils'包。
yum -y install yum-utils
步驟二:啟用Osquery的Syslog Consumption
Osquery提供了一些功能,可以使用Apple system Log (ASL)讀取Apple MacOS上的系統日誌,對於Linux則使用syslog。
在此步驟中,我們將通過rsyslog啟用osquery的syslog consumption。
在Ubuntu上
使用如下apt命令安裝rsyslog
sudo apt install rsyslog –y
在CentOS上
使用如下yum命令安裝rsyslog包。
sudo yum install rsyslog -y
安裝完成後,轉到'/etc/rsyslog.d'目錄並建立一個新的配置檔案osquery.conf。
cd /etc/rsyslog.d/
vim osquery.conf
然後貼上如下配置
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“)
儲存並退出
步驟三: osquery基本配置
osquery預設配置是'osquery.conf',通常位於'/ etc / osquery'目錄中。
在這一步,我們將瞭解osquery配置元件,建立自定義osquery配置,然後將osqueryd部署為服務。
格式化為JSON 檔案的osquery 配置包含如下規範:
-
Options:osqueryd CLI命令的一部分,它決定應用程式的啟動和初始化。
-
Schedule:將計劃的查詢名稱的Flow定義到查詢詳情。
-
Decorators:用於向結果和快照日誌新增額外的“decorations”。
-
Packs:一組排程查詢
-
More:File Path, YARA, Prometheus, Views, EC2, Chef Configuration。
轉到'/ etc / osquery'目錄並建立一個新的自定義配置'osquery.conf'。
cd / etc / osquery /
vim osquery.conf
貼上以下配置。
{ “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 / packages / osquery -monitoring.conf” } }
儲存並退出
注意:
-
我們使用'filesystem'作為配置檔案和記錄器外掛
-
定義'/ var / log / osquery'目錄的記錄器路徑
-
將SysLog-PIP啟用到'/Va/ysLogy/SySalpJixBube檔案中。
-
在排程程式中,我們定義了三個查詢來檢查crontab, system info, 和ssh login.
-
啟用名為“osquery-monitoring”的osquery包,並將該包放置在'/Ur/Stuts/OsQue/Pokes’目錄中。
啟動osqueryd daemon service(使其在每次系統引導時啟動)。
systemctl start osqueryd
systemctl enable osqueryd
重新啟動rsyslog服務
systemctl restart rsyslog
osquery基本配置完成。
步驟四:使用osquery配置檔案完整性監控(FIM)
Osquery使用Linux和FSEvents提供Linux和MacOS Darwin上的檔案完整性監控。簡單地的說,它使用'file_path'檢測定義目錄上的任何一個檔案的更改,然後將所有活動儲存到file_events表中。
在這個步驟中,我們將配置Osquery來使用自定義FIM包監視重要目錄,如HOST、SSH目錄,以及tmp和www web根目錄等。
轉到“/usr/share/osquery/packs”目錄,建立一個新的軟體包配置檔案“fim.conf”。
cd / usr / share / osquery / packs
vim fim.conf
配置如下:
{ "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/%%" ] } }
儲存並退出
返回到 '/etc/osquery'配置目錄,編輯osquery.conf檔案。
cd /etc/osquery/
vim osquery.conf
在 'packs' 中新增檔案完整性監控包配置。
"packs": { "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf", "fim": "/usr/share/osquery/packs/fim.conf" }
儲存並退出,然後重新啟動osqueryd服務。
systemctl restart osqueryd
注意: 繼續使用JSON linter“ http://jsonlint.com/ ” 檢查JSON配置檔案,確保沒有錯誤。
步驟五:測試
我們將通過在定義的目錄“home”和“www”上建立一個新檔案來測試檔案完整性監控包。
轉到“/var/www/”目錄,建立一個名為“howtoforge.md”的新檔案。
cd /var/www/
touch howtoforge.md
轉到'/ home / youruser /'目錄並建立一個名為'hakase-labs.md'的新檔案。
cd / home / vagrant /
touch hakase-labs.md
使用實時互動模式osqueryi 和osquery 的結果日誌檢查所有日誌監控。
osqueryi
執行下面的osqueryi命令。
osqueryi --config-path /etc/osquery/osquery.conf
檢查'file_events'表中檔案更改的所有日誌。
對於全域性更改。
select * from file_events;
對於'home'目錄。
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";
對於'www' web root目錄。
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";
osqueryd 結果日誌
轉到'/ var / log / osquery'目錄,您將獲得'osqueryd.results.log'檔案。
cd / var / log / osquery /
ls -lah osqueryd.results.log
使用'grep'命令篩選osquery日誌。
grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.log
你將看到所有已建立的檔案資訊
使用osquery在Linux Server Ubuntu和CentOS上安裝和配置檔案完整性監控(FIM)已成功完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2213905/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在 Linux 上建立和使用交換檔案Linux
- Linux 使用 inotify 監控檔案或目錄變化Linux
- 在Ubuntu上使用Netdata設定實時效能監控Ubuntu
- linux 監控檔案內容變化Linux
- 如何在 Linux 伺服器上設定 ulimit 和檔案描述符數限制Linux伺服器MIT
- 如何在Ubuntu上使用FreeFileSync同步檔案Ubuntu
- Lumen 檔案上傳設定
- linux監控資料夾內的檔案數量Linux
- 如何在 Linux 上重新命名一組檔案Linux
- 如何在 Debian Linux 上設定和配置網橋Linux
- 如何在 Ubuntu 上使用 ZFS 檔案系統Ubuntu
- 教你如何在CentOS上使用Samba共享檔案CentOSSamba
- 檔案完整性
- 如何在MacOS中設定共享檔案協議?Mac協議
- 如何在 Linux 上用密碼加密和解密檔案Linux密碼加密解密
- MinIO上傳和下載檔案及檔案完整性校驗.
- 如何在本地修改Hosts檔案設定域名訪問?
- 如何在 Linux 上使用 pkgsrcLinux
- 如何在 Linux 上識別同樣內容的檔案Linux
- 使用C#如何監控選定資料夾中檔案的變動情況?C#
- 如何在 Mac 上使用預覽將 .pdf 檔案更改為 .jpg 檔案Mac
- 檔案監控效能問題【BUG】
- 教你如何在 Linux 中使用 unzip 解壓縮檔案Linux
- Linux 監控Linux
- 使用CloudStats監控Linux伺服器CloudLinux伺服器
- 如何在 Arch Linux 上安裝和設定 KDE 桌面環境?Linux
- 如何在 Linux 上使用 GNU sedLinux
- Linux上傳檔案Linux
- Java實現檔案監控器FileMonitorJava
- Linux使用inotify-tools監聽檔案或目錄Linux
- 如何在Android上播放swf檔案Android
- 在 Linux 上監控 CPU 和 GPU 溫度LinuxGPU
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- 如何在 Linux 上設定古老又簡單的 TFTP 伺服器LinuxFTP伺服器
- 如何在Linux上為SSH登入設定電子郵件提醒Linux
- Flume實時監控 單個追加檔案
- 如何在 Linux Shell 程式設計中定義和使用函式Linux程式設計函式
- Linux——拖拽上傳檔案Linux