Instal dan Atur Armada Kolide di Ubuntu 18.04

Dalam panduan ini, kita akan belajar cara menginstal dan Setup Kolide Fleet di Ubuntu 18.04. Kolide Fleet adalah manajer Osquery opensource yang memperluas kemampuan Osquery dari satu engine ke seluruh armada Anda. Ini menanyakan kumpulan host yang dinamis dan menonton aliran data untuk analisis dan penyelidikan segera.

Armada Kolide telah pensiun. Periksa pengganti baru, Armada Fleetdm.

Instal Fleet Osquery Manager di Ubuntu 20.04

Instal dan Atur Armada Kolide di Ubuntu 18.04

Jalankan pembaruan sistem

Sinkronisasi ulang paket sistem Anda ke versi terbarunya.

apt update

Download Penginstal Biner Armada Kolide

Aplikasi Kolide Fleet didistribusikan sebagai biner statis tunggal yang melayani interface web Armada, titik akhir API aplikasi Armada, dan titik akhir API server TLS osquery.

Untuk mengdownload biner Kolide Fleet terbaru, cukup jalankan perintah di bawah ini;

wget https://github.com/kolide/fleet/releases/latest/download/fleet.zip

Instal dan Atur Armada Kolide di Ubuntu 18.04

Setelah biner Fleet didownload, ekstrak biner Kolide Fleet untuk platform Linux.

unzip fleet.zip 'linux/*' -d fleet

Perintah di atas mengekstrak binari Kolide Fleet, the fleet dan fleetctl binari ke fleet/linux direktori.

ls fleet/linux/
fleet fleetctl

Oleh karena itu, penginstalan binari Kolide Fleet semudah menyalinnya ke direktori biner, mis /usr/bin.

cp fleet/linux/* /usr/bin/

Armada Kolide sekarang diinstal;

ls /usr/bin/fleet*
/usr/bin/fleet /usr/bin/fleetctl

Instal dan Atur Ketergantungan Armada Kolide di Ubuntu 18.04

Kolide Fleet memerlukan MySQL/MariaDB untuk databasenya dan server Redis untuk mencerna dan mengantrekan hasil kueri terdistribusi, data cache, dll.

Instal Database MariaDB 10.4 di Ubuntu 18.04

Buat repositori APT MariaDB 10.4

apt install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu bionic main'

Perbarui cache paket Anda.

apt update

Jalankan perintah install MariaDB server.

apt install mariadb-server mariadb-client

Menjalankan MariaDB

Server MariaDB dimulai dan diaktifkan untuk dijalankan pada boot sistem saat instalasi. Anda dapat memeriksa statusnya;

systemctl status mariadb
systemctl is-enabled mariadb

Jalankan skrip keamanan MySQL awal, mysql_secure_installation, untuk menghapus user database anonim, uji tabel, nonaktifkan login root jarak jauh.

mysql_secure_installation

Buat Basis Data Armada Kolide dan Pengguna Basis Data

Secara default, MariaDB 10.4 menggunakan unix_socket untuk otentikasi secara default dan karenanya, dapat masuk hanya dengan menjalankan,  mysql -u root. Namun jika telah mengaktifkan otentikasi password, jalankan saja;

mysql -u root -p

Selanjutnya, buat database Kolide.

Note: the database database names used here are not standard. Choose any name of your preference.

create database kolide;

Buat user basis data Kollide Fleet dengan semua hibah pada Kolide DB yang dibuat di atas.

grant all on kolide.* to [email protected] identified by '[email protected]';

Reload tabel hak istimewa dan keluar dari database;

flush privileges;exit

Instal Redis di Ubuntu 18.04

Jalankan perintah di bawah ini untuk menginstal Redis di Ubuntu 18.04.

apt install redis

Redis diatur untuk memulai dan diaktifkan pada boot sistem saat instalasi.

Menjalankan Kolide Fleet Server di Ubuntu 18.04

Inisialisasi Basis Data Armada Kolide

Untuk menginisialisasi infrastruktur Armada setelah menginstal dan menyiapkan semua persyaratan di atas, gunakan yang  fleet prepare db berikut ini;

fleet prepare db --mysql_address=127.0.0.1:3306 --mysql_database=kolide --mysql_username=kolideadmin [email protected]

Jika inisialisasi selesai, Anda harus mendapatkan output,

Migrations completed.

Hasilkan Sertifikat SSL/TLS

Fleet serve digunakan untuk menjalankan server HTTPS utama. Oleh karena itu, jalankan perintah di bawah ini untuk membuat sertifikat yang ditandatangani sendiri.

CATATAN: If you are using Self Signed Certificates as in this demo, DO NOT use wildcards or enrollment of hosts won’t work.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/kolide.key -out /etc/ssl/certs/kolide.cert -subj "/CN=kolide.kifarunix-demo.com/"

If you can, use the commercial TLS certificates from your preferred trusted CA.

Hasilkan Token Web Json

Hasilkan Json Web Token (JWT) kunci acak  untuk menandatangani dan memverifikasi token sesi. Ini akan diperlukan saat menjalankan fleet serve perintah untuk digunakan dengan –auth_jwt_key pilihan. Fleet server won’t start without this option.

Untuk membantu membuat token secara otomatis, cukup jalankan perintah server armada tanpa opsi ini.

fleet serve --mysql_address=127.0.0.1:3306  --mysql_database=kolide --mysql_username=kolideadmin [email protected]  --server_cert=/etc/ssl/certs/kolide.cert --server_key=/etc/ssl/private/kolide.key  --logging_json

Perintah gagal dan otomatis menghasilkan kunci acak untuk Anda;

################################################################################ # ERROR: # A value must be supplied for --auth_jwt_key. This value is used to create # session tokens for users. # # Consider using the following randomly generated key: # WS+Q2v6RyJdZgJDCHFWgak5HtxzPDhH8 ################################################################################

Menguji Armada Kolide

Setelah Anda mendapatkan kunci acak, jalankan kembali perintah dengan opsi dan kunci yang disediakan.

Armada Kolide sudah diatur dan karenanya Anda perlu menjalankan perintah di bawah ini untuk memverifikasi bahwa itu dapat berjalan dengan sukses menggunakan fleet serve perintah seperti gambar di bawah ini.

fleet serve --mysql_address=127.0.0.1:3306  --mysql_database=kolide --mysql_username=kolideadmin [email protected]  --server_cert=/etc/ssl/certs/kolide.cert --server_key=/etc/ssl/private/kolide.key  --logging_json --auth_jwt_key=WS+Q2v6RyJdZgJDCHFWgak5HtxzPDhH8

Jika semuanya baik-baik saja, Anda akan melihat bahwa server Armada sekarang sedang berjalan 0.0.0.0:8080 dan karenanya dapat diakses di https://<server-IP>:8080.

{"component":"service","err":null,"method":"ListUsers","took":"921.991µs","ts":"2020-04-12T07:06:41.184166743Z","user":"none"} {"address":"0.0.0.0:8080","msg":"listening","transport":"https","ts":"2020-04-12T07:06:41.185827799Z"}

Tekan Ctrl+c untuk menghentikan server Kolide Fleet.

Buat Unit Layanan Sistem Armada Kolide di Ubuntu 18.04

Setelah Anda memverifikasi bahwa Kolide Fleet berjalan dengan baik, buat file service systemd.

vim /etc/systemd/system/kolide-fleet.service
[Unit] Description=Kolide Fleet Osquery Fleet Manager After=network.target [Service] LimitNOFILE=8192 ExecStart=/usr/bin/fleet serve  --mysql_address=127.0.0.1:3306  --mysql_databas
e=kolide  --mysql_username=kolideadmin  [email protected]  --redis_address=127.0.0.1:6379  --server_cert=/etc/ssl/certs/kolide.cert  --server_key=/etc/ssl/private/kolide.key  --auth_jwt_key=WS+Q2v6RyJdZgJDCHFWgak5HtxzPDhH8  --logging_json ExecStop=/bin/kill -15 $(ps aux | grep "fleet serve" | grep -v grep | awk '{print$2}') [Install] WantedBy=multi-user.target

Simpan dan keluar dari file.

Reload konfigurasi systemd.

systemctl daemon-reload

Mulai dan aktifkan service Kolide Fleet.

systemctl enable --now kolide-fleet

Periksa statusnya;

systemctl status kolide-fleet
● kolide-fleet.service - Kolide Fleet Osquery Fleet Manager Loaded: loaded (/etc/systemd/system/kolide-fleet.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-12 10:23:44 EAT; 3s ago Main PID: 6777 (fleet) Tasks: 6 (limit: 1108) CGroup: /system.slice/kolide-fleet.service └─6777 /usr/bin/fleet serve --mysql_address=127.0.0.1:3306 --mysql_database=kolide --mysql_username=kolideadmin [email protected] Apr 12 10:23:44 u18 systemd[1]: Started Kolide Fleet Osquery Fleet Manager. Apr 12 10:23:44 u18 fleet[6777]: {"component":"service","err":null,"method":"ListUsers","took":"218.912µs","ts":"2020-04-12T07:23:44.414494933Z","user" Apr 12 10:23:44 u18 fleet[6777]: {"address":"0.0.0.0:8080","msg":"listening","transport":"https","ts":"2020-04-12T07:23:44.418368662Z"}

Akses Interface Web Armada Kolide

Armada Kolide dapat diakses di browser menggunakan URL https://<server-IP_OR_hostname>:8080.

Atur nama user, password, email, detail organisasi Anda dan lanjutkan ke interface Web Kollide.

Menambahkan Host Baru ke Armada Kolide

Selanjutnya, instal osquery pada server host yang ingin Anda daftarkan. Kami telah membahas instalasi osquery pada Debian 10 dan Ubuntu 18.04 di panduan kami sebelumnya, lihat tautan di bawah ini;

Cara Menginstal Osquery di Ubuntu 18.04

Instal Osquery di Debian 10 Buster

Setelah osquery diinstal, tambahkan host Anda ke Kolide dengan menavigasi ke Hosts > Add New Hosts.

Ketika Anda mengklik Add new host, wizard seperti di bawah ini muncul dengan petunjuk tentang cara menambahkan host ke instance armada.

Untuk mendaftarkan host osquery Anda, Anda memerlukan kunci rahasia dan sertifikat TLS. Karenanya, Copy kunci rahasia dan klik Fetch Fleet Certificate untuk mengdownload.

Pada host untuk mendaftar ke Armada Kolide, instal kunci rahasia dan sertifikat sebagai berikut;

echo "qzAJao+jKVsoZi6Ck1OgheS5VPhfqPRc" > /var/osquery/secret

Copy sertifikat TLS ke host yang terdaftar di Kolide Fleet. Ganti host-address dengan host IP/address.

scp kolide.kifarunix-demo.com_8080.pem [email protected]host-address:kolide.kifarunix-demo.com.pem
sudo cp kolide.kifarunix-demo.com.pem /var/osquery/

Pada host yang didaftarkan, verifikasi sertifikat server TLS;

openssl s_client -connect kolide.kifarunix-demo.com:8080 -CAfile /var/osquery/kolide.kifarunix-demo.com.pem
--- SSL handshake has read 1353 bytes and written 391 bytes Verification: OK ---

Selanjutnya, hentikan osquerydjika sedang berjalan;

systemctl stop osqueryd

Jalankan osqueryd dengan opsi berikut pada host yang didaftarkan, menggantikan –enroll_secret_path dan –tls_server_certs demikian.

/usr/bin/osqueryd --enroll_secret_path=/var/osquery/secret  --tls_server_certs=/var/osquery/kolide.kifarunix-demo.com.pem  --tls_hostname=kolide.kifarunix-demo.com:8080  --host_identifier=uuid  --enroll_tls_endpoint=/api/v1/osquery/enroll  --config_plugin=tls  --config_tls_endpoint=/api/v1/osquery/config  --config_refresh=10  --disable_distributed=false  --distributed_plugin=tls  --distributed_interval=3  --distributed_tls_max_attempts=3  --distributed_tls_read_endpoint=/api/v1/osquery/distributed/read  --distributed_tls_write_endpoint=/api/v1/osquery/distributed/write  --logger_plugin=tls  --logger_tls_endpoint=/api/v1/osquery/log  --logger_tls_period=10

Jika semuanya berjalan dengan baik, Anda akan melihat beberapa keluaran yang mirip dengan;

I0412 12:13:40.467630 15162 events.cpp:863] Event publisher not enabled: auditeventpublisher: Publisher disabled via configuration I0412 12:13:40.467813 15162 events.cpp:863] Event publisher not enabled: syslog: Publisher disabled via configuration I0412 12:13:40.498387 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_network_interface: select ia.interface, address, mask, broadcast, point_to_point, id.interface, mac, id.type, mtu, metric, ipackets, opackets, ibytes, obytes, ierrors, oerrors, idrops, odrops, last_change from interface_details id join interface_addresses ia on ia.interface = id.interface where length(mac) > 0 order by (ibytes + obytes) desc I0412 12:13:40.501811 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_os_version: select * from os_version limit 1 I0412 12:13:40.503866 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_osquery_flags: select name, value from osquery_flags where name in ("distributed_interval", "config_tls_refresh", "config_refresh", "logger_tls_period") I0412 12:13:40.506964 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_osquery_info: select * from osquery_info limit 1 I0412 12:13:40.509542 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_system_info: select * from system_info limit 1 I0412 12:13:40.518357 15175 distributed.cpp:117] Executing distributed query: kolide_detail_query_uptime: select * from uptime limit 1 I0412 12:13:40.522809 15175 distributed.cpp:117] Executing distributed query: kolide_label_query_6: select 1; I0412 12:13:40.526031 15175 distributed.cpp:117] Executing distributed query: kolide_label_query_8: select 1 from os_version where platform = 'ubuntu'; I0412 12:13:40.528300 15175 distributed.cpp:117] Executing distributed query: kolide_label_query_9: select 1 from os_version where platform = 'centos' or name like '%centos%'

Tuan rumah Anda sekarang harus terdaftar di Server Armada Kolide Anda.

Untuk menjalankan Osquery dengan rincian detail pendaftaran di atas, edit file servicenya sehingga terlihat seperti di bawah ini;

vim /etc/systemd/system/osqueryd.service
[Unit] Description=osquery Daemon After=network.service syslog.service [Service] TimeoutStartSec=0 EnvironmentFile=/etc/default/osqueryd ExecStartPre=/bin/sh -c "if [ ! -f $FLAG_FILE ]; then touch $FLAG_FILE; fi" ExecStartPre=/bin/sh -c "if [ -f $LOCAL_PIDFILE ]; then mv $LOCAL_PIDFILE $PIDFILE; fi" ExecStart=/usr/bin/osqueryd  --flagfile $FLAG_FILE  --config_path $CONFIG_FILE  --enroll_secret_path=/var/osquery/secret  --tls_server_certs=/var/osquery/server.pem  --tls_hostname=kolide.kifarunix-demo.com:8080  --host_identifier=uuid  --enroll_tls_endpoint=/api/v1/osquery/enroll  --config_plugin=tls  --config_tls_endpoint=/api/v1/osquery/config  --config_refresh=10  --disable_distributed=false  --distributed_plugin=tls  --distributed_interval=3  --distributed_tls_max_attempts=3  --distributed_tls_read_endpoint=/api/v1/osquery/distributed/read  --distributed_tls_write_endpoint=/api/v1/osquery/distributed/write  -logger_plugin=tls  --logger_tls_endpoint=/api/v1/osquery/log  --logger_tls_period=10 Restart=on-failure KillMode=process KillSignal=SIGTERM [Install] WantedBy=multi-user.target

Reload daemon sistem.

systemctl daemon-reload

Mulai osqueryd.

systemctl start osqueryd

Periksa statusnya;

systemctl status osqueryd
● osqueryd.service - osquery Daemon Loaded: loaded (/etc/systemd/system/osqueryd.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-12 12:31:14 EAT; 9s ago Process: 15281 ExecStartPre=/bin/sh -c if [ -f $LOCAL_PIDFILE ]; then mv $LOCAL_PIDFILE $PIDFILE; fi (code=exited, status=0/SUCCESS) Process: 15279 ExecStartPre=/bin/sh -c if [ ! -f $FLAG_FILE ]; then touch $FLAG_FILE; fi (code=exited, status=0/SUCCESS) Main PID: 15282 (osqueryd) Tasks: 18 (limit: 2315) CGroup: /system.slice/osqueryd.service ├─15282 /usr/bin/osqueryd --flagfile /etc/osquery/osquery.flags --config_path /etc/osquery/osquery.conf --enroll_secret_path=/var/osquery/se └─15284 /usr/bin/osqueryd...

Meminta Host dari Kolide Fleet Osquery Manager

Setelah tuan rumah terdaftar, Anda dapat menanyakannya langsung dari Kolide Fleet.

Misalnya, untuk meminta user non sistem dengan kueri:

select username,directory,uid,gid,shell from users where uid >= 1000;

Klik Kueri di panel kiri > Buat kueri baru. Tentukan Nama Kueri, kueri itu sendiri, Deskripsi, host target.

Klik RUN untuk menjalankan kueri. Anda dapat menyimpan kueri jika Anda mau.

Dan Boom!!! Anda membuat Kolide Fleet bekerja di Ubuntu 18.04 dan dapat menanyakan host jarak jauh yang menjalankan Osquery. Itu menandai akhir dari panduan Anda tentang cara menginstal dan mengatur Kolide Fleet di Ubuntu 18.04.

Tutorial Terkait

Instal Kolide Fleet Osquery Fleet Manager di Debian 10

Instal Alat GLPI ITSM di CentOS 8

Instal Agen OSSEC di CentOS 8

Instal Inventaris OCS-NG di CentOS 8