Kolide Fleet Kurulumu

Mockup image

Bir önceki yazımda osquery ve kolide fleet hakkında bilgiler vermiştim. Bu yazıda ise osquery yüklü olan cihazlarınızı yönetebileceğiniz Kolide Fleet uygulamasının kurulumu üzerine olacaktır. Bir önceki yazıyı Buraya tıklayarak okuyabilirsiniz.

Kolide Fleet uygulamasını kurulum yapılacak olan makine için ben Centos 7.5 kullandım, sistem özellikleri aşağıdadır.

  • 2 Core cpu
  • 4 GB Memory
  • 75 GB disk alanı

Kurulum

Öncelikle Fleet uygulamasını indiriyoruz ve daha sonra sırasıyla aşağıdaki adımları gerçekleştiriyoruz.

1
wget https://github.com/kolide/fleet/releases/latest/download/fleet.zip
1
unzip fleet.zip 'linux/*' -d fleet $ sudo cp fleet/linux/fleet* /usr/bin/

Mockup image

MySQL Kurulumu

MySQL repo’sunu ekleyerek aşağıdaki komutları çalıştırıyoruz.

1
wget https://repo.mysql.com/mysql57-community-release-el7.rpm
1
sudo rpm -i mysql57-community-release-el7.rpm
1
sudo yum update
1
sudo yum install mysql-server

Mockup image

Mockup image

Daha sonra mysql servisini başlatıyoruz.

1
sudo systemctl start mysqld

MySQL kurulum sonrası root şifresini /var/log/mysqld.log altında saklar. CAT komutu ile dosya içerisine bakılarak şifreyi öğreniyoruz.

Mockup image

MySQL servisini check ediyoruz ediyoruz.

Mockup image

Daha sonra MySQL’e giriş yapıyoruz.

1
mysql -u root -p

Mockup image

İlk olarak mevcut MySQL parolasını değiştiriyoruz, aşağıdaki komutları yazarak parolayı değiştirip değişiklikleri kaydedip çıkış yapıyoruz. MySQL 5.7.6 veya daha yeni sürümler için;

1
ALTER USER "root"@"localhost" IDENTIFIED BY "password123"

MySQL 5.7.5 veya daha eski sürümleri için;

1
SET PASSWORD FOR "root"@"localhost" = PASSWORD("password123")

Daha sonra değişiklikleri kayıt edip çıkış yapıyoruz.

1
flush privileges;

Mockup image

MySQL servisini tekrar çalıştırıyoruz.

1
sudo mysqld stop $ sudo systemctl start mysqld

Şimdi ise MySQL üzerinde fleet uygulamasının kurulumu için kullanacağımız veri tabanını oluşturmak kaldı.

1
echo 'CREATE DATABASE kolide;' | mysql -u root -p

Mockup image

Bu komut yazdıktan sonra değiştirmiş olduğumuz parolanızı girmeyi unutmayın.

Redis Kurulumu

Redis kurulumu için aşağıdaki komutları takip edin.

1
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm sudo yum install redis

Kurulum işlemi bittikten sonra arka planda redis servisini çalıştırmak için,

1
sudo service redis start

Kurulumlar tamamlandı, fleet’i çalıştırmadan önce veritabanımızı hazırlamakta sıra. Aşağıdaki komutları komple kopyalayıp yapıştırın. İşlem sonunda, “Migration Completed” yazısını görmeniz gerekiyor.

1
2
3
4
5
/usr/bin/fleet prepare db \
--mysql_address=127.0.0.1:3306 \
--mysql_database=kolide \
--mysql_username=root \
--mysql_password=password123

Mockup image

Fleet uygulaması için geçerli SSL sertifikası gerekmektedir. Bunu biz kendimiz oluşturacağız, sizin bu işlem için kullandığınız araçlar var ise bu yöntem yerine onları kullanmanız daha sağlıklı olabilir. Sertifika oluşturmak için aşağıdaki komut setini sırasıyla çalıştırabilirsiniz.

1
openssl genrsa -out /tmp/server.key 4096 $ openssl req -new -key /tmp/server.key -out /tmp/server.csr $ openssl x509 -req -days 366 -in /tmp/server.csr -signkey /tmp/server.key -out /tmp/server.cert

Mockup image

Mockup image

Sıra geldi Fleet servisini çalıştırmaya. Kolide Fleet uygulamasını konsol üzerinden direkt olarak çalıştırabiliriz ama ben arka planda servis olarak çalışmasını istiyorum bu yüzden systemd ile yeni bir servis oluşturacağım. Aşağıdaki komut bloğunu alarak çalıştırın daha sonra çıkan random anahtarı bir yere kaydedin.

1
/usr/bin/fleet serve \ --mysql_address=127.0.0.1:3306 \ --mysql_database=kolide \ --mysql_username=root \ --mysql_password=password123\ --redis_address=127.0.0.1:6379 \ --server_cert=/tmp/server.cert \ --server_key=/tmp/server.key \ --logging_json

Mockup image

Daha sonra ise fleet.service adlı bir dosya oluşturarak /etc/systemd/system altına taşımamız gerekiyor ama ondan önce dosyanın içerine yazmamız gereken şeyler var. diyerek dosyayı oluşturuyoruz ardından ise,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Description=Kolide Fleet
After=network.target
[Service]
ExecStart=/usr/bin/fleet serve \
-mysql_address=127.0.0.1:3306 \
-mysql_database=kolide \
-mysql_username=root \
-mysql_password=Password123! \
-redis_address=127.0.0.1:6379 \
-server_cert=/tmp/server.cert \
-server_key=/tmp/server.key \
-auth_jwt_key=l2mepCTjTx0puatuIoFrtAajpXAdSM1A \

Ek olarak auth_jwt_key kısmına az önce kayıt ettiğimiz KEY’i giriyoruz. Daha sonra dosyamızı kaydediyoruz ve ilgili dizin altına kopyalıyoruz.

1
2
3
$ sudo mv fleet.service /etc/systemd/system/fleet.service
$ sudo systemctl start fleet.service
$ sudo systemctl status fleet.service

Artık Fleet uygulamamız kullanıma hazır. Tarayıcı üzerinde https://localhost:8080 adresine giderek kullanıcıyı oluşturabiliriz. Erişim problemleri yaşayanlar Firewall’ı kapatıp tekrar deneyebilirler.

Mockup image

Kullanıcı adı ve şifre belirledikten sonra submit butonu ile devam ediyoruz.

Mockup image

Mockup image

Organizasyon ve diğer yerler doldurulduktan sonra web adresini onaylıyoruz.

Mockup image

Artık Osquery Management için kullanacağımız Kolide Fleet uygulaması hazır. Sırada Osquery yüklediğimiz bir sunucu da Fleet üzerinde sorgular çekebileceğimiz şekilde hazırlamak kaldı. Bunun için kurulumları yaptığım Centos ideal bir sunucudur. Centos üzerinde önce Osquery kurulumu yapmamız gerekiyor bunun için şu komutları çalıştırıyoruz,

1
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
1
sudo yum install osquery

Kurul bittikten sonra Fleet üzerinde sağ üst köşede bulunan Add New Host butonuna tıklıyoruız.

Mockup image

Burada “Fetch Kolide Certifiacte” diyerek, bizim oluşturmuş olduğumuz sertifikayı indirmeye başlıyoruz. Daha sonra inen dosyası /var/osquery/server.pem altına taşıyoruz. “ Reveal Secret” butonuna basarak çıkan KEY’i kopyalıyoruz ve aşağıdaki gibi bir komut setine içerisine yazıyoruz.

Mockup image

Artık her şey tamam Osqeury’i çalıştırmaya hazırız. Aşağıda bulunan komutları komple kopyala yapıştır yaparak çalıştırdığınız da yerel makinemiz Fleet üzerinde bağlanmış olacaktır.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
sudo /usr/bin/osqueryd \
--enroll_secret_path=/var/osquery/enroll_secret \
--tls_server_certs=/var/osquery/server.pem \
--tls_hostname=localhost: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

Mockup image

Daha sonra Host bölümüne baktığınız zaman cihazın bağlanmış olduğunu göreceksiniz. Artık Fleet üzerinde Query kısmından ekli olan bütün makineler üzerinde SQL sorguları ile bilgiler öğrenebilirsiniz. Seriniz 2. Yazısı bu kadardı bir sonraki yazıda, Sunucu ve İstemciler üzerinde Osquery kurulumu ve Fleet uygulamasına bağlanmaları ve Fleet kullanımı üzerine olacaktır.