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.
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
İmzalanan loglar ve imza dosyaları bulunan dizinde oluşturulmuş olan signed klasörüne taşınır.
Signed klasörünü kontrol ettiğimizde log dosyalarına tarih atandığını ve imza dosyalarının bulunduğunu gözlemleyebildik.
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
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.