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 https://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 https://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 http://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. https://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 https://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