GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat osquery na Debian 10

osquery je bezplatný nástroj s otevřeným zdrojovým kódem vyvinutý společností Facebook, který lze použít k dotazování na informace související s operačním systémem, včetně využití paměti, nainstalovaných balíčků, informací o procesu, přihlášení uživatelů, naslouchací porty a mnoho dalších. Může být spuštěn na několika operačních systémech včetně Windows, Linux, FreeBSD a MacOS. Je to velmi užitečný nástroj pro různé případy použití k řešení problémů s výkonem a provozními problémy. Dodává se se spoustou nástrojů, které vám pomohou provádět analýzy a monitorování OS.

V tomto tutoriálu se naučíme, jak nainstalovat a používat osquery na Debian 10.

Předpoklady

  • Server se systémem Debian 10.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.

Začínáme

Než začnete, je dobré aktualizovat balíček vašeho systému na nejnovější verzi. Všechny balíčky můžete aktualizovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky aktualizovány, restartujte systém, aby se změny projevily.

Instalovat osquery

Ve výchozím nastavení není osquery k dispozici ve výchozím úložišti Debian 10. Takže budete muset přidat úložiště osquery do vašeho systému.

Nejprve si stáhněte a přidejte klíč GPG pomocí následujícího příkazu:

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

Dále přidejte úložiště osquery pomocí následujícího příkazu:

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

Dále aktualizujte úložiště a nainstalujte osquery pomocí následujícího příkazu:

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

Po dokončení instalace spusťte službu osquery pomocí následujícího příkazu:

osqueryctl start osqueryd

Stav osquery můžete také ověřit pomocí následujícího příkazu:

osqueryctl status osqueryd

Měli byste vidět následující výstup:

? 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

Práce s osquery

osquery obsahuje tři užitečné komponenty osqueryi, osqueryd a osqueryctl. osqueryi je osquery interaktivní shell a nekomunikuje s démonem. Shell můžete použít ke spouštění dotazů a prozkoumávání aktuálního stavu vašeho operačního systému. osqueryd je démon monitorování hostitele, který lze použít k plánování dotazů a záznamu změn stavu OS. osqueryctl je pomocný skript pro testování konfigurace.

Pro připojení k osquery shell můžete spustit následující příkaz:

osqueryi

Měli byste získat následující výstup:

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

Dále spusťte příkaz .help, abyste viděli všechny dostupné možnosti s osquery:

osquery> .help

Měli byste získat následující výstup:

Welcome to the osquery shell. Please explore your OS!
You are connected to a transient 'in-memory' virtual database.

.all [TABLE]     Select all from a table
.bail ON|OFF     Stop after hitting an error
.echo ON|OFF     Turn command echo on or off
.exit            Exit this program
.features        List osquery's features and their statuses
.headers ON|OFF  Turn display of headers on or off
.help            Show this message
.mode MODE       Set output mode where MODE is one of:
                   csv      Comma-separated values
                   column   Left-aligned columns see .width
                   line     One value per line
                   list     Values delimited by .separator string
                   pretty   Pretty printed SQL results (default)
.nullvalue STR   Use STRING in place of NULL values
.print STR...    Print literal STRING
.quit            Exit this program
.schema [TABLE]  Show the CREATE statements
.separator STR   Change separator used by output mode
.socket          Show the osquery extensions socket path
.show            Show the current values for various settings
.summary         Alias for the show meta command
.tables [TABLE]  List names of tables
.types [SQL]     Show result of getQueryColumns for the given query
.width [NUM1]+   Set column widths for "column" mode
.timer ON|OFF      Turn the CPU timer measurement on or off
osquery> 

Existuje mnoho tabulek dostupných pro dotaz. Všechny tabulky můžete vypsat pomocí následujícího příkazu:

osquery> .table

Měli byste získat následující výstup:

  => acpi_tables
  => apparmor_profiles
  => apt_sources
  => arp_cache
  => atom_packages
  => augeas
  => authorized_keys
  => block_devices
  => carbon_black_info
  => carves
  => chrome_extensions
  => cpu_time
  => cpuid
  => crontab
  => curl
  => curl_certificate
  => deb_packages
  => device_file
  => device_hash
  => device_partitions
  => disk_encryption
  => dns_resolvers
  => docker_container_labels
  => docker_container_mounts

Různé systémové informace můžete najít pomocí výše uvedené tabulky s osquery.

Monitorování systému pomocí osquery

Pomocí osquery můžete sledovat využití paměti, informace o zpracování, místo na disku, přihlášení uživatelů a mnoho dalšího.

Nejprve spusťte shell osquery pomocí následujícího příkazu:

osqueryi

Dále můžete získat informace o názvu hostitele vašeho systému, jádru procesoru a fyzické paměti pomocí následujícího příkazu:

osquery> select hostname,cpu_physical_cores,physical_memory from system_info;

Měli byste získat následující výstup:

+------------+--------------------+-----------------+
| hostname   | cpu_physical_cores | physical_memory |
+------------+--------------------+-----------------+
| debian10   | 1                  | 1032937472      |
+------------+--------------------+-----------------+

Chcete-li získat informace o souboru ssh_config, spusťte následující dotaz:

osquery> select * from ssh_configs;

Měli byste získat následující výstup:

W0419 15:47:17.043509 25397 virtual_table.cpp:959] The ssh_configs table returns data based on the current user by default, consider JOINing against the users table
W0419 15:47:17.043740 25397 virtual_table.cpp:974] Please see the table documentation: https://osquery.io/schema/#ssh_configs
+-----+--------+--------------------------+---------------------+
| uid | block  | option                   | ssh_config_file     |
+-----+--------+--------------------------+---------------------+
| 0   | host * | sendenv lang lc_*        | /etc/ssh/ssh_config |
| 0   | host * | hashknownhosts yes       | /etc/ssh/ssh_config |
| 0   | host * | gssapiauthentication yes | /etc/ssh/ssh_config |
+-----+--------+--------------------------+---------------------+
osquery> 

Chcete-li získat seznam všech uživatelů ve vašem systému, spusťte následující dotaz:

osquery> SELECT * FROM users;

Měli byste získat následující výstup:

+-------+-------+------------+------------+-----------------+------------------------------------+----------------------+-------------------+------+
| uid   | gid   | uid_signed | gid_signed | username        | description                        | directory            | shell             | uuid |
+-------+-------+------------+------------+-----------------+------------------------------------+----------------------+-------------------+------+
| 0     | 0     | 0          | 0          | root            | root                               | /root                | /bin/bash         |      |
| 1     | 1     | 1          | 1          | daemon          | daemon                             | /usr/sbin            | /usr/sbin/nologin |      |
| 2     | 2     | 2          | 2          | bin             | bin                                | /bin                 | /usr/sbin/nologin |      |
| 3     | 3     | 3          | 3          | sys             | sys                                | /dev                 | /usr/sbin/nologin |      |
| 4     | 65534 | 4          | 65534      | sync            | sync                               | /bin                 | /bin/sync         |      |
| 5     | 60    | 5          | 60         | games           | games                              | /usr/games           | /usr/sbin/nologin |      |
| 6     | 12    | 6          | 12         | man             | man                                | /var/cache/man       | /usr/sbin/nologin |      |
| 7     | 7     | 7          | 7          | lp              | lp                                 | /var/spool/lpd       | /usr/sbin/nologin |      |

Pokud chcete vypsat všechny nesystémové uživatele ve vašem systému, spusťte následující dotaz:

osquery> select * from users where uid <= 1000 limit 3;

Měli byste získat následující výstup:

+-----+-----+------------+------------+----------+-------------+-----------+-------------------+------+
| uid | gid | uid_signed | gid_signed | username | description | directory | shell             | uuid |
+-----+-----+------------+------------+----------+-------------+-----------+-------------------+------+
| 0   | 0   | 0          | 0          | root     | root        | /root     | /bin/bash         |      |
| 1   | 1   | 1          | 1          | daemon   | daemon      | /usr/sbin | /usr/sbin/nologin |      |
| 2   | 2   | 2          | 2          | bin      | bin         | /bin      | /usr/sbin/nologin |      |
+-----+-----+------------+------------+----------+-------------+-----------+-------------------+------+

Chcete-li získat seznam aktuálně přihlášených uživatelů, spusťte následující dotaz:

osquery> select * from logged_in_users where type = 'user';

Měli byste získat následující výstup:

+------+------+-------+--------------+------------+-------+
| type | user | tty   | host         | time       | pid   |
+------+------+-------+--------------+------------+-------+
| user | root | pts/0 | 27.61.217.59 | 1587309538 | 19279 |
| user | root | pts/1 | 27.61.217.59 | 1587310737 | 25378 |
| user | root | pts/2 | 27.61.217.59 | 1587310997 | 25394 |
+------+------+-------+--------------+------------+-------+

Chcete-li zobrazit informace o paměti vašeho systému, spusťte následující dotaz:

osquery> select * from memory_info;

Měli byste získat následující výstup:

+--------------+-------------+----------+------------+-------------+-----------+-----------+------------+-----------+
| memory_total | memory_free | buffers  | cached     | swap_cached | active    | inactive  | swap_total | swap_free |
+--------------+-------------+----------+------------+-------------+-----------+-----------+------------+-----------+
| 4138455040   | 2407211008  | 79745024 | 1384751104 | 0           | 556371968 | 954744832 | 0          | 0         |
+--------------+-------------+----------+------------+-------------+-----------+-----------+------------+-----------+
osquery> 

Chcete-li zjistit průměrné zatížení vašeho systému, spusťte následující dotaz:

osquery> select * from load_average;

Měli byste získat následující výstup:

+--------+----------+
| period | average  |
+--------+----------+
| 1m     | 0.000000 |
| 5m     | 0.000000 |
| 15m    | 0.000000 |
+--------+----------+
osquery> 

Chcete-li získat seznam prvních pěti balíčků ve vašem systému, spusťte následující dotaz:

osquery> select * from deb_packages top limit 5;

Měli byste získat následující výstup:

+-------------------+------------+--------------+------+-------+----------+
| name              | version    | source       | size | arch  | revision |
+-------------------+------------+--------------+------+-------+----------+
| acpi-support-base | 0.142-8    | acpi-support | 43   | all   | 8        |
| acpid             | 1:2.0.31-1 |              | 146  | amd64 | 1        |
| adduser           | 3.118      |              | 849  | all   |          |
| apparmor          | 2.13.2-10  |              | 1833 | amd64 | 10       |
| apt               | 1.8.2      |              | 4064 | amd64 |          |
+-------------------+------------+--------------+------+-------+----------+

Chcete-li získat informace o běžících procesech ve vašem systému, spusťte následující dotaz:

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';

Měli byste získat následující výstup:

+------+------+-----+
| name | port | pid |
+------+------+-----+
| sshd | 22   | 729 |
+------+------+-----+

Chcete-li najít všechna předchozí přihlášení, spusťte následující dotaz:

osquery> select * from last;

Měli byste získat následující výstup:

+----------+-------+-------+------+------------+--------------+
| username | tty   | pid   | type | time       | host         |
+----------+-------+-------+------+------------+--------------+
| root     | pts/0 | 1448  | 7    | 1587365277 | 27.61.217.41 |
| root     | pts/1 | 13392 | 7    | 1587368569 | 27.61.217.41 |
|          | pts/0 | 1004  | 8    | 1587376329 |              |
|          | pts/1 | 13321 | 8    | 1587376821 |              |
|          | ttyS0 | 748   | 8    | 1587465619 |              |
|          | tty1  | 749   | 8    | 1587465619 |              |
| root     | pts/0 | 1057  | 7    | 1587465664 | 27.61.217.9  |
| root     | pts/1 | 1375  | 7    | 1587465846 | 27.61.217.9  |
+----------+-------+-------+------+------------+--------------+

Chcete-li zobrazit seznam všech úloh naplánovaných crontabem, spusťte následující dotaz:

osquery> select command, path from crontab ;

Měli byste získat následující výstup:

+----------------------------------------------------------------------------------------------------------------------------------------+-------------------+
| command                                                                                                                                | path              |
+----------------------------------------------------------------------------------------------------------------------------------------+-------------------+
| root cd / && run-parts --report /etc/cron.hourly                                                                                       | /etc/crontab      |
| root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )                                                       | /etc/crontab      |
| root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )                                                      | /etc/crontab      |
| root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )                                                     | /etc/crontab      |
| root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi | /etc/cron.d/mdadm |

Chcete-li najít všechny otevřené porty ve vašem systému, spusťte následující dotaz:

osquery> select * from listening_ports;

Měli byste získat následující výstup:

+------+------+----------+--------+------------+-----+--------+----------------------------------------+---------------+
| pid  | port | protocol | family | address    | fd  | socket | path                                   | net_namespace |
+------+------+----------+--------+------------+-----+--------+----------------------------------------+---------------+
| 444  | 53   | 6        | 2      | 127.0.0.53 | 13  | 14910  |                                        | 4026531993    |
| 729  | 22   | 6        | 2      | 0.0.0.0    | 3   | 16940  |                                        | 4026531993    |
| 664  | 3306 | 6        | 2      | 127.0.0.1  | 69  | 15824  |                                        | 4026531993    |
| 544  | 6379 | 6        | 2      | 127.0.0.1  | 6   | 15472  |                                        | 4026531993    |
| 729  | 22   | 6        | 10     | ::         | 4   | 16951  |                                        | 4026531993    |
| 544  | 6379 | 6        | 10     | ::1        | 7   | 15473  |                                        | 4026531993    |
| 759  | 80   | 6        | 10     | ::         | 4   | 17009  |                                        | 4026531993    |
| 444  | 53   | 17       | 2      | 127.0.0.53 | 12  | 14909  |                                        | 4026531993    |
| 405  | 58   | 255      | 10     | ::         | 15  | 16039  |                                        | 4026531993    |

Chcete-li zobrazit seznam 5 nejaktivnějších procesů, spusťte následující dotaz:

osquery> select count(pid) as total, name from processes group by name order by total desc limit 5;

Měli byste získat následující výstup:

+-------+---------+
| total | name    |
+-------+---------+
| 4     | sshd    |
| 3     | apache2 |
| 2     | systemd |
| 2     | bash    |
| 2     | agetty  |
+-------+---------+

Závěr

Ve výše uvedeném tutoriálu jsme se naučili, jak nainstalovat a používat osquery v Debianu 10. osquery je velmi užitečný nástroj k nalezení jakýchkoli zadních vrátek, malwaru nebo jakéhokoli zombie procesu ve vašem systému. Další informace o osquery naleznete na stránce dokumentace osquery.


Debian
  1. Jak nainstalovat R na Debian 9

  2. Jak nainstalovat Apache ZooKeeper na Debian 10

  3. Jak nainstalovat WildFly na Debian 11

  1. Jak nainstalovat R na Debian 10

  2. Jak nainstalovat Ionic Framework na Debian 10

  3. Jak nainstalovat Django Framework na Debian 11

  1. Jak nainstalovat PHP 8 na Debian 11

  2. Jak nainstalovat GitLab na Debian 11

  3. Jak nainstalovat Apache Spark na Debian 11