GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal osquery di Debian 10

osquery adalah alat sumber terbuka dan gratis yang dikembangkan oleh Facebook yang dapat digunakan untuk menanyakan informasi terkait sistem operasi termasuk, penggunaan memori, paket yang diinstal, informasi proses, pengguna login, mendengarkan port dan banyak lagi. Ini dapat dijalankan di beberapa sistem operasi termasuk, Windows, Linux, FreeBSD dan MacOS. Ini adalah alat yang sangat berguna untuk berbagai kasus penggunaan untuk memecahkan masalah kinerja dan operasional. Muncul dengan banyak alat yang membantu Anda melakukan analisis dan pemantauan OS.

Dalam tutorial ini, kita akan mempelajari cara menginstal dan menggunakan osquery di Debian 10.

Prasyarat

  • Server yang menjalankan Debian 10.
  • Kata sandi root dikonfigurasi di server Anda.

Memulai

Sebelum memulai, sebaiknya perbarui paket sistem Anda ke versi terbaru. Anda dapat memperbarui semua paket dengan perintah berikut:

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

Setelah semua paket diperbarui, mulai ulang sistem Anda untuk menerapkan perubahan.

Instal osquery

Secara default, osquery tidak tersedia di repositori default Debian 10. Jadi Anda perlu menambahkan repositori osquery di sistem Anda.

Pertama, unduh dan tambahkan kunci GPG dengan perintah berikut:

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

Selanjutnya, tambahkan repositori osquery dengan perintah berikut:

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

Selanjutnya, perbarui repositori dan instal osquery dengan perintah berikut:

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

Setelah instalasi selesai, jalankan layanan osquery dengan perintah berikut:

osqueryctl start osqueryd

Anda juga dapat memverifikasi status osquery dengan perintah berikut:

osqueryctl status osqueryd

Anda akan melihat output berikut:

? 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

Bekerja dengan osquery

osquery hadir dengan tiga komponen yang berguna osqueryi, osqueryd dan osqueryctl. Osqueryi adalah shell interaktif osquery dan tidak berkomunikasi dengan daemon. Anda dapat menggunakan shell untuk mengeksekusi kueri dan menjelajahi status sistem operasi Anda saat ini. osqueryd adalah daemon pemantau host yang dapat digunakan untuk menjadwalkan kueri dan merekam perubahan status OS. osqueryctl adalah skrip pembantu untuk menguji konfigurasi.

Anda dapat menjalankan perintah berikut untuk terhubung ke shell osquery:

osqueryi

Anda akan mendapatkan output berikut:

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

Selanjutnya, jalankan perintah .help untuk melihat semua opsi yang tersedia dengan osquery:

osquery> .help

Anda akan mendapatkan output berikut:

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> 

Ada banyak tabel yang tersedia untuk kueri. Anda dapat membuat daftar semua tabel dengan perintah berikut:

osquery> .table

Anda akan mendapatkan output berikut:

  => 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

Anda dapat menemukan berbagai informasi sistem menggunakan tabel di atas dengan osquery.

Memantau Sistem dengan osquery

Anda dapat memantau penggunaan memori, memproses informasi, ruang disk, pengguna login, dan banyak lagi dengan osquery.

Pertama, luncurkan shell osquery dengan perintah berikut:

osqueryi

Selanjutnya, Anda dapat memperoleh informasi tentang nama host sistem, inti cpu, dan memori fisik dengan perintah berikut:

osquery> select hostname,cpu_physical_cores,physical_memory from system_info;

Anda akan mendapatkan output berikut:

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

Untuk mendapatkan informasi tentang file ssh_config jalankan query berikut:

osquery> select * from ssh_configs;

Anda akan mendapatkan output berikut:

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> 

Untuk mendapatkan daftar semua pengguna di sistem Anda, jalankan kueri berikut:

osquery> SELECT * FROM users;

Anda akan mendapatkan output berikut:

+-------+-------+------------+------------+-----------------+------------------------------------+----------------------+-------------------+------+
| 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 |      |

Jika Anda ingin membuat daftar semua pengguna non sistem di sistem Anda, jalankan kueri berikut:

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

Anda akan mendapatkan output berikut:

+-----+-----+------------+------------+----------+-------------+-----------+-------------------+------+
| 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 |      |
+-----+-----+------------+------------+----------+-------------+-----------+-------------------+------+

Untuk mendapatkan daftar pengguna yang saat ini masuk, jalankan kueri berikut:

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

Anda akan mendapatkan output berikut:

+------+------+-------+--------------+------------+-------+
| 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 |
+------+------+-------+--------------+------------+-------+

Untuk menampilkan informasi memori sistem Anda, jalankan kueri berikut:

osquery> select * from memory_info;

Anda akan mendapatkan output berikut:

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

Untuk menemukan beban rata-rata sistem Anda, jalankan kueri berikut:

osquery> select * from load_average;

Anda akan mendapatkan output berikut:

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

Untuk mendapatkan daftar lima paket pertama di sistem Anda, jalankan kueri berikut:

osquery> select * from deb_packages top limit 5;

Anda akan mendapatkan output berikut:

+-------------------+------------+--------------+------+-------+----------+
| 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 |          |
+-------------------+------------+--------------+------+-------+----------+

Untuk mendapatkan informasi tentang proses yang berjalan di sistem Anda, jalankan kueri berikut:

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

Anda akan mendapatkan output berikut:

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

Untuk menemukan semua login sebelumnya, jalankan kueri berikut:

osquery> select * from last;

Anda akan mendapatkan output berikut:

+----------+-------+-------+------+------------+--------------+
| 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  |
+----------+-------+-------+------+------------+--------------+

Untuk membuat daftar semua pekerjaan yang dijadwalkan oleh crontab, jalankan kueri berikut:

osquery> select command, path from crontab ;

Anda akan mendapatkan output berikut:

+----------------------------------------------------------------------------------------------------------------------------------------+-------------------+
| 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 |

Untuk menemukan semua port terbuka di sistem Anda, jalankan kueri berikut:

osquery> select * from listening_ports;

Anda akan mendapatkan output berikut:

+------+------+----------+--------+------------+-----+--------+----------------------------------------+---------------+
| 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    |

Untuk membuat daftar 5 proses paling aktif, jalankan kueri berikut:

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

Anda akan mendapatkan output berikut:

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

Kesimpulan

Dalam tutorial di atas, kita mempelajari cara menginstal dan menggunakan osquery di Debian 10. osquery adalah alat yang sangat berguna untuk menemukan pintu belakang, malware, atau proses zombie apa pun di sistem Anda. Untuk informasi lebih lanjut tentang osquery, kunjungi halaman dokumentasi osquery.


Debian
  1. Cara Menginstal R di Debian 9

  2. Cara Menginstal Apache ZooKeeper di Debian 10

  3. Cara Menginstal WildFly di Debian 11

  1. Cara Menginstal R di Debian 10

  2. Cara Menginstal Kerangka Ionic di Debian 10

  3. Cara Memasang Kerangka Kerja Django di Debian 11

  1. Cara Menginstal PHP 8 di Debian 11

  2. Cara Menginstal GitLab di Debian 11

  3. Cara Menginstal Apache Spark di Debian 11