Graylog Kurulumu ve Yapılandırması
Graylog sistemlerin loglarını merkezi bir sunucudan izlemek için kullanılan açık kaynak bir log yönetim ürünüdür. Büyük log verilerini basit ve okunabilir bir şekilde incelemeye olanak sağlar ve genel olarak organizasyonların sistemlerinden gelen logların toplanmasını, yönetilmesini, analiz edilmesini ve görselleştirilmesini sağlar. Ekstra entegrasyonlara ve geliştirmelere uyumlu çalışabilmektedir.
Temel özellikleri şu sekildedir:
- Log Toplama ve Yönetme: Çeşitli kaynaklardan gelen log verilerini toplar ve merkezi bir yerde depolanmasını sağlar. Bu veriler, analiz edilip anlamlı bilgilere dönüştürülmek için regexs kullanılır. Pars etme, filtreleme ve düzenleme için güçlü bir regex desteğine sahiptir. Özellikle “extractors “özelliği kullanılarak loğlardan istenilen veriler alınabilir ve belirli desenler oluşturulabilir.
- Gerçek Zamanlı Arama ve Analiz: Toplanan log verilerini gerçek zamanlı olarak aramalar yapılmasına ve analiz edilmesine imkan sağlar. Bu durum olayları hızlıca tespit etmeye ve sorunları çözmeye yardımcı olur.
- Özelleştirilebilir Dashboards: Kullanıcılar için logları görselleştirmek işleminde özelleştirilebilir dashboards oluşturabilir. Bu da verilerin hızlıca anlaşılmasına imkan sağlar.
- Alerts: Belirlenmiş kurallar doğrultusunda uygun koşullar sağlandığında uyarılar oluşturabilir. Bu durum olaylara hızla müdahale etme imkanı sağlar.
- Entegrasyonlar: Graylog, Elasticsearch, MongoDB ve diğer araçlarla entegre olarak çalışır. Bu da veri depolama ve arama işlemlerinin daha verimli olmasını sağlar.
Kullanım alanlarından bazıları şunlardır:
- Güvenlik Bilgi ve Olay Yönetimi (SIEM): Güvenlik olaylarını izlemek ve analiz etmek için kullanılabilir. Birçok SIEM çözümü ile uyumlu olarak çalışabilmektedir. Bunlardan bazıları Splunk, ArcSight, Qradar’dır.
- Sorun Giderme: Uygulama ve sistem hatalarının ana nedenlerini bulmak için log verilerini analiz etmekte kullanılabilir.
- Uyumluluk ve Denetim: Log verilerini toplayarak, saklayarak ve analiz ederek, bir kuruluşun yasal gereksinimlere uygun hareket etmesine imkan sağlayabilmektedir.
- Performans İzleme: Sistem ve uygulama performansını izlemek ve performans sorunlarını çözmek kullanılabilmektedir.
Graylog’un avantajlarından bazıları şunlardır:
- Açık Kaynak: Maliyetleri düşürür ve topluluk desteği sağlar.
- Esnek Mimari: Modüler yapısı sayesinde ihtiyaçlara göre ölçeklendirilebilir.
- Kullanıcı Dostu Arayüz: Kullanıcı dostu bir web tabanlı arayüze sahiptir bu da log verilerinin yönetimini ve analizini kolaylaştırır.
Graylog Kurulumu
Graylog Ubuntu ve Centos 7 gibi işletim sistemleri üzerine kurulabildiği gibi docker üzerinde de kurulum işlemleri yapılabilmektedir. Bu dokümanda Ubuntu 20.04 sanal sunucusuna kurulum işlemi gerçekleştirilmiştir ve VmWare sanallaştırma aracı kullanılmıştır.
Yapılandırma sistem kaynakları Şekil 1 de gösterilmektedir. Kurulan sisteme göre bu veriler değişiklik gösterebilmektedir.
Şekil 1 Sistem kaynakları
Öncelikle sistem güncellemeleri kontrol edilerek bir güncelleme varsa bu işlemleri gerçekleştirilir. Bu işlemde kullanılan komut Şekil 2 ‘de gösterilmektedir.
Şekil 2 sistem güncellemeleri kontrol komutu
Güncellemeler kontrol edildikten sonra sunucu bağımlılıklarının kurulumunu gerçekleştirmek gerekmektedir.Bu işlem için kullanılacak komut Şekil 3 de gösterilmiştir. Burada kullanılacak olan:
- apt-transport-https: Apt aracılığıyla HTTPS üzerinden paket depolarına erişimi sağlar.
- gnupg2: GnuPG paketidir, şifreleme ve imza doğrulama işlemleri için kullanılan bağımlılıktır.
- uuid-runtime: UUID oluşturma ve yönetme araçlarını sağlar. UUID, sistemler arasında benzersiz kimlikler oluşturmak için kullanılan 128 bitlik bir değerdir.
- pwgen: Rastgele şifreler oluşturmak için kullanılan bir araçtır.
- curl: URL'lerden veri aktarmak için kullanılan bir komut satırı aracıdır.
- dirmngr: GnuPG'nin bir bileşeni olup, sertifikaları ve anahtarları yönetir
Şekil 3 Bağımlılıkları indirmek için kullanılan komut
Bağımlılıkların kontrolü ve indirme işlemleri sağlandıktan sonra Graylog ‘un arka planda çalışan bazı bileşenleri için Java‘nın sistemde yüklü olması gerekmektedir. Graylog Java ile yazılmış olan bir üründür. Java kontrol ve indirme komutu Şekil 4 de verilmiştir.
Şekil 4 Java sürüm kontrol ve indirme komutu
Java kurulumunu da gerçekleştirdikten sonra Elasticsearch kurulumu ve yapılandırmaları ile işlemlere devam edilmelidir. Elasticsearch Graylog yapısında gelen verileri işlemek ve analiz etmek için kullanılır. Hızlı arama, kapsamlı sorgular, Real-time veri işleme gibi işlemleri sağlamak için kullanılır. Ayrıca logların depolanma işlemleri de Elasticsearch üzerinde yapılmaktadır. Elasticsearch Ubuntu’unun varsayılan repolarında bulunmamaktadır. Bu yüzden sisteme Elasticsearch repolarının eklenmesi gerekmektedir. Öncelikle Elasticsearch’ün bütünlüğünü ve kaynağını doğrulamak adına GPG anahtarını indirip “apt-key” komutunu kullanarak yazılım kaynakları tarafından kullanılan GPG anahtarları arasına eklenmeldir. İlgili komut Şekil 5’te gösterilmektedir.
Şekil 5 Elasticsearch GPG anahtarı indirme komutu
GPG anahtarı eklendikten sonra Şekil 6’da belirtilen komutla repoyu sisteme eklememiz gerekmektedir.
Şekil 6 Elasticsearch reposunu ekleme komutu
Eklenen repoyu güncelleme ve Elasticsearch’ü sunucuya kurmak için Şekil 7 de kullanılan komutlarla işlemlere devam edilmelidir.
Şekil 7 Eklenen reposunu güncelleme ve Elasticsearch 'ün kurulum komutu
Elasticsearch kurulum işlemleri tamamlandıktan sonra isteğe bağlı olarak cluster adını değiştirebilir ve action.auto_create_index satırı ile otomatik index oluşturma özelliğini kapatma işlemi gerçekleştirilebilir. Bu işlemin nedeni belirtilen indexin adını yoksa verinin eklenmesine izin vermemek ve veri bütünlüğünü sağlamaktır.
Şekil 8 Elasticsearch konfigürasyon dosyasınaı eklenen satırlar
Konfigürasyonları gerçekleştirip kaydettikten sonra Şekil 9 da belirtilen daemon-reload komutu ile sistemde gerçkeleşen yapılandırmaların sistem tarafından görülmesini sağlayıp Elasticsearch servisini başlatma ve boot esnasında otomatik olarak başlamasını sağlayabilmek için bu işlemlerin yapılması gerekmektdir. Bu işlemleri gerçekleştirdikten sonra servisin durumu kontrol edilmiştir.
Şekil 9 Elasticsearch servisini başlatma ve boot esnasında otomatik olarak başlamasını sağlayan komutlar
Bu kontroller CLI üzerinden yapılabildiği gibi konfigürasyon dosyasında belirtilen IP adresi üzerinden browser da sorgu yapılarak da öğrenilebilmektedir. Şekil 10 da gösterilmektedir.
Şekil 10 Elasticsearch kontrolü
Elasticsearch kurulumunu gerçekleştirdikten sonra veritabanı kurulumunun yapılması gerekmektedir. Burada MongoDB kurulumunun amacı Graylog kullanıcı hesapları, rol bazlı erişim kontrolü, dashboard ayarları ve diğer yapılandırma bilgilerini saklamak için MongoDB’yi kullanır. MongoDB NoSql bir veritabanıdır ve bu Graylog için esneklik sağlamaktadır. Hızlı okuma ve yazma yeteneği sayesinde verilere daha hızlı erişilmesine olanak sağlar. MongoDB yerine MariaDB, PostqreSql gibi veritabanları da ihtiyaçlara göre kullanılabilmektedir. Kurulum komutu Şekil 11 de gösterilmektedir.
Şekil 11 MongoDB kurulum komutu
Kurulum işlemi tamamlandıktan sonra MongoDB serivisini başlatmak ve servis çalışmasını kontrol etmek için kullanılan komut Şekil 12 de gösterilmektedir.
Şekil 12 MongoDB servisini başlatma ve sistemin yeniden başlatıldığında başlamasını sağlayan komut
Bu işlemlerde tamamlandıktan sonra Graylog kurulum işlemi gerçekleştirilebilir. Bu işlemler için öncelikle repoya Graylog reposu Ubuntu’ya eklenmelidir. Graylog paketini indirme işlemi Şekil 13 de gösterilmektedir.
Şekil 13 Graylog deposunu sunucuya yükleyen komut
İndirme işlemi tamamlandıktan sonra indirilen deb uzantılı paketin kurulumu için Şekil 14 de gösterilmektedir.
Şekil 14 Graylog paketi kurulum komutu
Kurulum işlemleri gerçekleştirildikten sonra Graylog sunucusunu çalıştırmak için kullanılan komut Şekil 15 de verilmiştir.
Şekil 15 Depoyu güncelleme ve Graylog kurulum komutu
Graylog kurulumunu gerçekleştirdikten sonra Şekil 16 da ki komutu kullanarak kullanıcı şifrelerini güvence altına almak için bir secret oluşturma işlemi gerçekleştirmek gerekmektedir. Sonrasında admin kullanıcısının şifresini oluşturmak için sha256 ile şifreyi şifreleyip iki komutun çıktısını da kaydedilmelidir.
Şekil 16 Secret oluşturma ve Admin şifresi oluşturma
Sonrasında Şekil 17 verildiği üzere /etc/Graylog/server/server.conf dizininde bulunan konfigürasyon dosyası içerisine bilgileri ekleme işlemini gerçekleştirmek gerekmektedir.
Şekil 17 Şifre ve secretı konfigürasyona yazma
Graylog erişimi için konfigürasyon dosyasında bulunan # işaretli http erişim alanının # işaretini silip isteğe bağlı olarak erişim IP adresi belilenmektedir. İlgili alan Şekil 18 de gösterilmektedir.
Şekil 18 Erişim İp ve portu belirleme
İşelmeler bittiğinde diğer servislerde olduğu gibi Graylog’u yeniden başlatma ve ve boot esnasında otomatik olarak başlamasını sağlayabilmek için gerekli komutlar çalıştırmalıdır. Gerekli komutlar Şekil 19 da gösterilmektedir.
Şekil 19 servis başlatma ve kontroller
Graylog web ara yüzüne erişim sağlayabilmek için Ngnix veya Apache gibi sunucular kullanılabilmektedir. Burada işlemlere Ngnix ile devam edilmektedir. Ngnix yüksek performanslı ve ters Proxy sunucusudur. Graylog arayüzünde genellikle ters Proxy sunucu kullanılmaktadır. Bu durum Graylog arayüzüne daha güvenli ve aynı zamanda yük dengelemesi sağlayan bir erişim sağlar. Ngnix kurulumu Şekil 20 de gösterilmektedir.
Şekil 20 Ngnix kurma komutu
Ngnix servisi kurulumunu gerçekleştirdikten sonra /etc/ngnix/sites-avabile/ dizini altına graylog.conf adı altında bir konfigürasyon dosyası oluşturarak web sunucu ayarlarını ve çalıştırması gereken dosyaların konumlarını belirtmemiz gerekmektedir. Şekil 21 de gösterilmekte olan kırmızı işaretli alan HTTP için yapılmış HTTPS konfigürasyonu için ise ssl sertifika düzenlemesi yapılarak # işareti alan üzerindeki # işaretleri kaldırılıp işlemlere devam edilebilmektedir.
Şekil 21 Web erişimi için Ngnix yapılandırma dosyası
Konfigürasyon dosyası içerisinde gerekli ayarlamalar gerçekleştirildikten sonra ise ngnix –T komutu ile Şekil 22 de gösterildiği üzere servis kontrolleri yapılabilmektedir.
Şekil 22 Ngnix servisi kontrolü
Doğrulama işlemleri tamamlandıktan sonra ise Şekil 23 de bulunan ln –s komuut ile servis etkinleştirilerek servis yeniden başlatılıp servis kontrolü yapılmalıdır.
Şekil 23 Servisi başlatma ve otomatik başlama yapılandırması
Servis kontrolleri tamamlandığında dışardan erişimlere açabilmek adına Ubuntu işletim sisteminde bulunan Firewall da gerekli izinlerin yazılması gerekmektedir. Buna örnek kural dizini Şekil 24 de verilmiştir.
Şekil 24 Server Firewall erişim için izin ekleme
Bu işlemler tamamlandıktan sonra belirlenen IP adresleri üzerinde vey eğer belirlendiyse doamin üzerinden giriş sağlanabilmektedir. Domain ile giriş yapmak istenirse /etc/hosts dosyasının içerisine gerekli DNS ve doamin bilgileri yazılmalıdır. Şekil 25 de farklı giriş ekranları örnekleri ayarlanarak verilmiştir.
Şekil 25 Web arayüzü örnekleri
Arayüze erişimlerde belirlenen kullanıcı adı ve şifre ile giriş yapılmakta ve giriş yaptıktan sonra Graylog arayüzüne erişilmektedir. Şekil 26 arayüz gösterilemektedir.
Şekil 26 Search giriş ekranı