Yapılacak Uygulamanın Özet Adımları
- Graylog üzerinde çalışan MongoDB ve Elasticsearch servislerin dışarı çıkartılması, sıkıştırılması, tarih ile damgalanması ve Elasticsearch servisinde tutulan indexli logların günlük olarak imzanlanması işlemleri anlatılacaktır.
- Crontab ile betiklerin istenilen zamanda çalıştırılması
Elasticsearch servisinin yedeklenme işlemi yapılabilmesi için aşağıdaki araçların kurulması gerekmektedir.
#apt install npm
#npm install -g elasticsearch-tools
İmzalama İşlemi Hakkında
Kullanılan aracın fiyatlandırma adresi http://www.kamusm.gov.tr/urunler/zaman_damgasi/fiyatlandirma.jsp
Yedekleme işleminden sonra imzalama yapılırken http://www.kamusm.gov.tr/urunler/zaman_damgasi/ucretsiz_zaman_damgasi_istemci_yazilimi.jsp aracı kullanılmıştır.
İmzalama işlemi için, 2. Konsol Arayüz (Zamane KS) uygulaması indirilmelidir. İndirilen dosya /usr/local/sbin/ dizine altına atılmalıdır.
İmzalama işlemi yapılmak istenmiyorsa
Yedekleri alınan logların imzalamak istemiyor veya başka araç ile devam etmek istiyorsanız, export_sh betiği içeresinden şu komutları kaldırmanız gereklidir.
cd $EXPORT_PATH
/usr/bin/java -jar /usr/local/sbin/tss-client-console-3.1.5.jar -Z $EXPORT_FILE_NAME.gz.hash http://zd.kamusm.gov.tr 80 19006 Şifre &
/usr/bin/java -jar /usr/local/sbin/tss-client-console-3.1.5.jar -K http://zd.kamusm.gov.tr 80 19006 Şifre >> kalan_kredi
cd -
Graylog Sunucusu Üzerinde Betikleri ve Gerekli Dizinleri Oluşturma
Betikler Neler Yapıyor ?
MongoDB betiği günlük olarak veritabanın dump işlemini yapar. İşlem sonucunda veritabanı dosyasını sıkıştırır.
Elasticsearch (export_sh) betiği bir önceki gün ile bugin arasında bulunan indexlenen verileri dışarı aktarır. Aktarılan log değerleri sıkıştırılır. Hashları hesaplanır ve imzalama işlemi yapılır.
Yapılan tüm işlemler /home/sgeuser yolu üzerinde gerçekleştirilmiştir. Betikler ve sorunsuz Crontab kullanımı için kullanıcının kendi dizini tercih edilmelidir. Kullanıcı dizini içeresinde Mongodb ve Elasticsearch dizinleri oluşturulmalı ve izinler verilmelidir.
Verilen betiğin çalışabilmesi için değişken değerleri değiştirilmelidir.
export.sh için
EXPORT_PATH=/home/sgeuser/elasticsearch |
export_mongo.shDEST=/home/sgeuser/mongodb_$DIR |
Oluşturulan dizinlere ve betiklere izin verilmelidir.
#chmod 755 -R mongodb
#chmod 755 -R elasticsearch
Crontab Oluşturmak
Crontab Kullanımı Hakkında
Crontab kullanımı şu şekildedir. * * * * * /yol/çalıştırılacak betik
*(yıldız) işaretinin anlamları sırasıyla Dakika, Saat, Ayın günleri, Ay, Haftanın Günleri temsil etmektedir.
Yeni bir Cron(zamanlı görev) oluşturmak için aşağıdaki komut girilmelidir.
sgeuser@graylog:~$ crontab -e
Crontab ilk açanlar için şekilde gelecektir.
no crontab for sgeuser – using an empty one
Select an editor. To change later, run ‘select-editor’. |
Açılan ekranda yeni kullanıcılar için 1 seçeneği seçilmelidir.
Satırlar sırasıyla dosya sonuna eklenir.
50 20 * * * /home/sgeuser/export_mongo.sh
52 20 * * * /home/sgeuser/export.sh
Her gün 20:50’de export_mongo.sh ve 20:52’de export.sh betiklerini çalıştırmak için Cron(zamanlı görev) oluşturulur. |
Tübitak Bilgem Siber Güvenlik Enstitüsü’nden Necati Ersen Siseci hocamın yardımlarına teşekkür ederim.
Gerekli betiğe ulaşmak için https://github.com/asim06/Graylog-Backup adresinden erişim sağlayabilirsiniz. Özgür yazılım ile güvende kalmanız dileğiyle . . .