Open Source

Osquery Nedir? Kolide Fleet Kurulumu – Bölüm-2

Bir önceki yazıda Osquery ve Kolide Fleet hakkında genel bilgiler vermiştim. Şimdi ise Osquery yüklü cihazlarımızı yönetmek için kullanacağımız Kolide Fleet uygulamasının kurulumu ve serinin ikinci yazısını paylaşmak istiyorum. Yazının birinci bölümünü buraya tıklayarak okuyabilirsiniz. Kurulum ile ilgili altyapı gereksinimleri ve yüklü olması gereken ara uygulamaları belirterek başlamak istiyorum, kurulum yapmaya başlamadan önce yüklemeniz işinizi kolaylaştıracaktır.

Kurulum için Altyapı Gereksinimleri: İşletim sistemi olarak CentOS 7.5 kullanacağız. Aşağıdaki kaynaklara sahip bir sunucu yeterli olacaktır. İleride yapınız büyürse kaynaklarınızı buna paralel arttırmanızı öneririm.

  • 2 Core Vcpu
  • 4 GB Memory
  • 50 GB disk alanı

Diğer Ön Gereksinimler: CentOS kurulumu yaptıktan sonra aşağıdaki komutları çalıştırarak kurulum sırasında kullanacağımız uygulamaları yüklemeniz gerekiyor.

$ yum install wget
$ yum install unzip

Ayrıca sunucu üzerinde Firewall ve Selinux disable durumda olmalı. Selinux ‘ü Disable ettikten sonra muhakkak sunucuyu Restart edin.

Fleet Kurulumu

İlk olarak aşağıdaki komutları çalıştırarak Fleet uygulamasını download edip, sıkıştırılmış dosya içerisinden açıktan sonra /usr/bin altına kopyalıyoruz.

$ wget //dl.kolide.co/bin/fleet_latest.zip
$ unzip fleet_latest.zip ‘linux/*’ -d fleet
$ sudo cp fleet/linux/fleet* /usr/bin/

Resim 3

MySQL ve Redis Kurulumu

MySQL reposunu ekleyerek kurulum yapmak için aşağıdaki komutları çalıştırıyoruz.

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

MySQL Servisini start ediyoruz

$ sudo systemctl start mysqld

MySQL ilk kurulum sonrası root şifresini otomatik olarak oluşturarak /var/log/mysqld.log altında saklıyor.CAT ile dosyayı görüntüleyip şifreyi kaydediyoruz.

$ cat /var/log/mysqld.log

MySQL servisinin çalıştığını kontrol ediyoruz.

$ systemctl status mysqld

Resim 4

Aşağıdaki komutu çalıştırarak biraz önce /var/log/mysqld.log içerisinden aldığımız root şifresini girerek MySQL e login oluyoruz.

$ mysql -u root -p

Öncelikli olarak şifremizi değiştiriyoruz. Tırnak işaretleri içerisine ilgili şifreyi yazarak mysql satırında aşağıdaki komutu çalıştırmanız yeterli. Sonrasında yaptığımız değişikliği güncelleyerek çıkış yapalım.

$ ALTER USER “root”@”localhost” IDENTIFIED BY “Password123!”;
$ flush privileges;
$ exit

Resim 5

MySQL i restart ediyoruz

$ sudo mysqld stop
$ sudo systemctl start mysqld

Artık aşağıdaki komutu çalıştırarak Kolide kurulumu için kullanacağımız database imizi oluşturabiliriz. Komutu çalıştırdıktan sonra biraz önce değiştirdiğimiz root şifremizi yeniden giriyoruz.

$ echo ‘CREATE DATABASE kolide;’ | mysql -u root -p

Resim 6

Redis kurulumu yaparak devam ediyoruz ve servisi start ediyoruz.

$ sudo rpm -Uvh //dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ sudo yum install redis
$ sudo service redis start

Resim 7

Kurumları tamamladık. Şimdi sıra Fleet uygulamasını çalıştırmadan önce oluşturduğumuz Database’imizi uygulamayı çalıştırmadan önce hazırlamakta. Aşağıdaki blok komut setini komple kopyalayarak çalıştırın. İşlem sonunda ” Migration Completed” yazısını görmeniz gerekiyor

$ /usr/bin/fleet prepare db \
–mysql_address=127.0.0.1:3306 \
–mysql_database=kolide \
–mysql_username=root \
–mysql_password=Password123!

Resim 8

Fleet kullabilmek için geçerli bir SSL sertifikası gerekiyor. Biz OpenSSL ile kendimiz üreteceğiz.

$ 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


Resim 9

Kolide Fleet uygulamasını konsol üzerinden direk olarak çalıştırabiliyoruz fakat ben arka planda servis olarak çalışmasını ve sunucu Restart olsa bile otomatik olarak başlamasını istiyorum. Bu yüzden systemd ile yeni bir servis oluşturarak kaydedeceğiz.

Aşağıdakı komut setini çalıştırarak Randomly oluşturulan anahtarı kaydedin.

$ /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

Resim 10

Fleet.service isimli bir Unit file oluşturup sonrasında /etc/systemd/ System altına kopyalayıp Start etmemiz gerekiyor. İlk önce dosyayı oluşturalım.

$ vi fleet.service

Dedikten sonra; aşağıdaki kodu dosya içerisine yapıştırın.

[Unit]

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 \
–logging_json

[Install] WantedBy=multi-user.target

Aşağıdaki şekilde gözükmesi gerekli. Ayrıca “– auth_jwt_key= “ kısmına biraz önce kaydettiğimiz KEY i girmeyi unutmuyoruz.

Resim 11

Aşağıdaki komutları çalıştırarak fleet.service dosyasımız ilgili dizin altına kopyalıp start ediyoruz.

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

Artık uygulamamız kullanmaya hazır.  //localhost:8080/setup ( localhost kısmına kendi ip adresinizi yazın) diyerek kullanıcımızı oluşturmaya başlayabiliriz. Eğer yazının başında belirtildiği gibi sunucu üzerindeki Firewall ı durdurarak Disable etmediyseniz erişim ile ilgili problem yaşayabilirsiniz.

Kullanıcı adı ve şifre belirledikten sonra E-mail adresinizi yazarak Submit butonuna basın.

Resim 12

Organizasyon adınızı yazarak devam edin.


Resim 13

Web adresimizi onaylıyoruz.


Resim14

Finish diyerek Kurulumu tamamlanıyoruz.

Resim 15

Artık uygulmaya Login olabiliriz.

Resim 16

Osquery Management için kullanacağımız platformumuz kullanıma hazır. Sıra Osquery yüklediğimiz bir sunucu üzerinde Management Portal üzerinden sorgu çekebileceğimiz şekilde konfigürasyon yaparak ilk Host umuzu eklemede. Bunun için en iyi örnek üzerinde Kolide Fleet kurulumuzu yaptığımız CentOS sunucumuz.

Ilk olarak CentOS sunucumuz üzerine aşağıdaki komutları girerek Osquery kurulumu yapıyoruz.

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

Self Signed bir sertifika kullandığımız için Fleet üzerinde kullanılan sertifikayı sunucuya yüklememiz gerekiyor. Eğer bilinen bir otorite tarafından issue edilmiş hazır bir sertifikanız var ve onu kullanırsanız bu adıma gerek yok. Add host diyerek karşımıza gelen ekranda “Fetch Kolide Certifiacte” diyerek indirilen PEM dosyasınının adını ” Server.pem” olarak değiştirdikten sonra /var/osquery/server.pem olarak kopyalıyoruz.

Resim 17

“Reveal Secret” butona basarak aldığınız KEY i aşağıdaki komut seti içerisindei ‘-‘ işaretleri arasındaki alana girerek komutu çalıştırın.

$ echo ‘6jQeHOIKexkKbZKWSOP10uKDe6ifEI/b’ | sudo tee /var/osquery/enroll_secret

Artık Osquery iyi Start etmeye hazırız. Aşağıdaki kod setini direk çalıştırabilirsiniz.

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

Resim 18

Host menüsüne tıkladığımızda, sunucunun başarılı bir şekilde Host listesinde gözüktüğünü görebiliriz. Bir sonraki yazıda Windows sunucu ve Client lar için installation package oluşturma ve dağıtma ayrıca Fleet kullanımı üzerine bilgiler paylaşacağım. Bu sayede kolay bir şekilde bütün cihazlarınıza dağıtım yapabilirsiniz. Cihazlarınız eklendikçe Host menüsü altında listelenecek.

Resim 19

TAGs: Osquery, Osquery Nedir?,Kolide Fleet Kurulumu, Open Source, Facebook, Osquery Manager, Güvenlik ,Performans Analizi, Uzaktan Sorgu Çalıştırma

About the author

Faruk TERZIOGLU

Faruk TERZIOGLU - 2003 senesinden beri aktif olarak bilgi teknolojileri sektöründe çalıyor. Uzmanlık alanları BT altyapı çözümleri ve yazılım tanımlı veri merkezi teknolojileri, Microsoft ailesi ürünleri, Açık kaynak kodlu sanallaştırma platformları ve uygulamaları olup bulut teknolojileri öncelikli ilgilendiği alanlar arasındadır. 2018 yılında Alibaba Cloud tarafından Bulut Teknolojileri Çözümleri alanında MVP olarak ilan edilmiştir.

Leave a Comment