Open Source Olarak Kullanılan ELK Yapısında Güvenlik Nasıl Sağlanır?

Birol EMEKLİ
Devops Türkiye☁️ 🐧 🐳 ☸️

--

Merhabalar,

Bu yazımda open source olarak kullanılan ELK yapısının güvenliğini nasıl sağlayabiliriz bundan bahsediyor olacağım.

Bilindiği üzere Elastic Stack X-Pack ürünü ile bir çok özelliğe kavuşuyor. Ama siz eğer ki open source olarak bu ürünü kullanıyorsanız size herhangi bir güvenlik önlemi sunmuyor. Peki siz verilerinizin güvenliğini nasıl sağlayacaksınız? En basit kibana arayüzüne girişleri nasıl engelleyeceksiniz?

İşte burada ya bir proxy kullanacaksınız ya da bahsedeceğim Search Guard open source ailesinden bir ürünle basic auth yaparak girişleri engelleyebilirsiniz. Gelin şimdi beraber bu konfigürasyonların nasıl yapıldığına geçelim.

Şuan da Search Guard Elastic Stack 7.4.2 ve altı sürümlerini desteklemektedir.

xpack.security.enabled: false

İlk olarak elasticseearch.yml ve kibana.yml dosyalarına yukarıdaki satırı ekleyerek xpack false yapıyoruz ve servisleri yeniden başlatıyoruz.

Elasticsearch Search Guard Kurulumu

Elasticsearch veriyonumuzu öğreniyoruz.

Yukarıdaki resimde de gözüktüğü üzere elasticsearch 7.1.0 versiyonu kurulu. Şimdi elasticearch-plugin ile search-guard kurulumunu gerçekleştirelim. Burada dikkat edilmesi gereken nokta elasticsearch versiyonuna uygun search guardı yüklemek olacak. Eğer farklı versiyon yüklemeye çalışırsanız zaten hata verecektir. Search guard versionlarına buradan ulaşabilirsiniz.

/usr/share/elasticsearch/bin/elasticsearch-plugin install -b com.floragunn:search-guard-7:7.1.0–37.0.0

Yukarıdaki komutla search guard kurulumumuzu başlatıyoruz. Kurulum bittikten sonra default olarak gelen ayarlarla devam edebiliriz.

# Aşağıdaki dizine gidiyoruz
cd /usr/share/elasticsearch/plugins/search-guard-7/tools/
# Dizindeki shelli çalıştırılabilir hale getiriyoruz
$ chmod a+x install_demo_configuration.sh
# Shell ile default kuruluma başlıyoruz
./install_demo_configuration.sh
Install demo certificates? [y/N] y
Initialize Search Guard? [y/N] y
Enable cluster mode? [y/N] y

Bu aşamadan sonra elasticsearch restart ediyoruz ve elasticsearch için kurulumumuzu tamamlıyoruz.

systemctl restart elasticsearch
curl -k -u admin:admin https://localhost:9200/_searchguard/authinfo?pretty

Yukarıdaki komutla search guardın çalışıp çalışmadığını kontrol edebiliriz. admin:admin default kullanıcı adı ve paroladır.

Kibana Search Guard Kurulumu

Kibana versiyonumuzu öğreniyoruz.

Yukardaki search guard versiyon sayfasından kibana versiyonuna uygun olan hedefin adresini kopyalıyoruz ve aşağıdaki komutu giriyoruz.

sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://releases.floragunn.com/search-guard-kibana-plugin/7.1.0-36.1.0/search-guard-kibana-plugin-7.1.0-36.1.0.zip

Bu aşamalardan sonra kibana için kurulum da gerçekleşmiş oluyor ve Kibana.yml dosyasında aşağıdaki konfigürasyon değişikliğini yapmamız gerekiyor.

# elasticsearch hostun ip adresi
elasticsearch.hosts: ["https://localhost:9200"]

# Default oluşturduğumuz için admin admin kalıyor. Değiştirdiyseniz onu buraya yazmamız gerekiyor. Değişiklik işlemini sonrada yapabiliriz.
elasticsearch.username: "admin"
elasticsearch.password: "admin"

# Search guard kullandığımız için ssl devre dışı bırakıyoruz
elasticsearch.ssl.verificationMode: none

# Search guard için white list eklemesini yapıyoruz
elasticsearch.requestHeadersWhitelist: [ "authorization" , "sgtenant" ]

Bu aşamalardan sonra artık konfigürasyonlarımız tamam oluyor.

Kibana arayüzüne eriştiğimizde bizi search guard login sayfası karşılıyor. Artık kibanaya direk erişimi engellemiş olduk ve güvenlik adımını bir aşama ileriye taşıdık. Bu sayfada istediğiniz gibi değişiklik yapabilirizsiniz. Basitten bir değişiklik yapıp bu yazıma burada sonra veriyorum.

Evet gözüktüğü gibi login sayfasında istediğim değişikliği yapabiliyoruz. :) Search guard open source olarak kullanmak için şu konfigürasyonu girmeyi unutmayınız!…


#Elasticsearch.yml dosyasına bu satırı ekleyiniz
searchguard.enterprise_modules_enabled: false

Şimdilik benden bu kadar :) Hoşçakalın

--

--