pfSense Loglarının İmzalanması

Önceki yazılarımda pfSense kurulumu ve ilk yapılandırmasından bahsetmiş, squid ve squidGuard ile proxy mantığına değinmiştik. Bir sonraki durağımız TC Kimlik ve SMS Doğrulamalı Hotspot Yapılandırması olmuştu. İçerik gereği misafir kullanıcıların internet erişimlerinde 5651 sayılı kanuna ufaktan değinmiştik. Şimdi ise bu yazıları tamamlayan (yapbozun son parçası da diyebiliriz) konudan yani pfSense loglarının imzalanmasından bahsedeceğim.

Aşağıdaki işlemler pfSense üzerinde yapılmıştır. Fakat Unix / Linux sistemlerde gerekli bağımlılık paketleri yüklenerek ilgili logsigner.py dosyasında bulunan imzalama ve doğrulama fonksiyonları çalıştırılabilir.

 

Ön Hazırlık

Öncelikle github reposundan ilgili dosyayı indiriyoruz.

pfSense’de SSH ile oturum açtıktan sonra “8” ile Shell’e geçiyoruz.

pfSense Shell

pfSense Shell

 

logsigner.py, Python ve Cryptodome kütüphanesine ihtiyaç duyduğundan yüklenmesi gerekmektedir. Bunun için önce aşağıdaki conf dosyalarında bulunan  FreeBSD: { enabled: no } -> FreeBSD: { enabled: yes }  olarak değiştirilmelidir.


/usr/local/etc/pkg/repos/pfSense.conf
/usr/local/etc/pkg/repos/FreeBSD.conf

# Bu işlemden sonra aşağıdaki paketi pfSense'e kuruyoruz.
pkg install py38-pycryptodomex-3.12.0


# Hangi dizinde log imzalanacaksa logsigner.py dosyasını o dizine atıyoruz. (FileZilla, WinSCP vs uygulama ile)
# Örn: /var/log
# Son olarak sistem zamanının doğru olup olmadığını kontrol etmekte fayda var. (date)

     

     

    Hazırlık aşamasından sonra, conf dosyalarını varsayılan hale getirmeyi unutmuyoruz.  FreeBSD: { enabled: yes } -> FreeBSD: { enabled: no }  olarak değiştirilmelidir.

    
    
    /usr/local/etc/pkg/repos/pfSense.conf
    /usr/local/etc/pkg/repos/FreeBSD.conf
    
    

     

    Kullanım

     

    Tekli log imzalama

    
    
    python3.8 logsigner.py -s dosyaAdi.bz2

     

    Çoklu log imzalama

    
    
    python3.8 logsigner.py -s *.bz2

     

    Sign Command

    Sign Command

     

    İmzalanan loglar ve imza dosyaları bulunan dizinde oluşturulmuş olan signed klasörüne taşınır.

    Sign Process

    Sign Process

     

    Signed klasörünü kontrol ettiğimizde log dosyalarına tarih atandığını ve imza dosyalarının bulunduğunu gözlemleyebildik.

    Signed Folder

    Signed Folder

     

    Tekli log dosyası doğrulama

    
    
    python3.8 logsigner.py -v signed/dosyaAdi.bz2

     

     

    Çoklu log dosyası doğrulama

    
    
    python3.8 logsigner.py -v signed/*.bz2

     

    Verify Command

    Verify Command

     

     

    Verify Process

    Verify Process

     

    Eğer pfSense log dosyasında bir değişiklik olursa, verify işlemini çalıştırdığımızda hata ile karşılacağız bu da bize log dosyasında değişiklik olup olmadığını anlamamıza yaracaktır. Bunun testini yaparak gözlemleyebilirsiniz.

     

    Crontab

    Yukarıdaki işlemler elle tetiklenmiştir. İmzalama işlemlerinin otomatik olarak yapılmasını isterseniz crontab kullanabiliriz. Örneğin her gece 01:00′ de /var/log dizini altında bulunan *.bz2 uzantılı dosyaların otomatik olarak imzalanmasını isteyelim.

    
    
    # Aşağıdaki komutu çalıştırdıktan sonra
    crontab -e
    
    # Bu komutu karşımıza çıkan pencereye yapıştırıyoruz.
    0 1 * * * cd /var/log/ && /usr/local/bin/python3.8 logsigner.py -s *.bz2 >/dev/null 2>&1
    
    # Crontab listesine ulaşmak için
    crontab -l

     

    Kapanış

    Bir sonraki adım olarak log yedekliliğinin sağlanması için, imzalanan log dosyalarını belirtilen FTP sunucusuna gönderimini düşünmekteyim. Bu süre zarfında belirli aralıklarla manual olarak logların yedeklerini başka bir sunucu ya da diske alabilirsiniz.

     

    Uyarı!
    logsigner.py’i ilk çalıştırdığınızda sign.pem ve verify.pem adlı dosyalar oluşacaktır. Logların imzalanması ve doğrulaması sırasında bu dosyalar kullanılmaktadır. Lütfen bu iki dosyayı silmeyiniz!

    Abone ol
    Bildir
    guest
    0 Yorum
    Satır İçi Geri Bildirimler
    Tüm yorumları görüntüle