Rsyslog ile Kullanıcıların Bash History Bilgilerinin Log Sunucusuna Yönelendirilmesi
Doğukan Eren
Posted on October 3, 2024
1- Rsyslog Paketinin Kurulması
Log paylaşımı yapması istenen linux sunucuda rsyslog paketinin kurulu olup olamdığını kontrol edelim, yoksa kuralım.
Debian sistemler için:
apt install rsyslog
RPM tabanlı sistemler için
yum install rsyslog
2- Rsyslog Yapılandırmasının Yapılaması
Standart rsyslog kurulumunda yapılandırma bilgileri /etc/rsyslog.conf içinde ve /etc/rsyslog.d/ klasörünün altında .conf uzantılı dosyaların içinde yer almaktadır.
Kullanıcıların komut geçmişlerine erişmek ve yönlendirmek için birkaç konfigürasyonu yapılandırma dosyasına eklememiz gerekmektedir.
$ModLoad imfile
$InputFileName /home/*/.bash_history
$InputFileTag bash_history
$InputFileFacility local0
$InputRunFileMonitor
local0.* @<hedep-ip>:<hedep-port>
InputFileName alanı yönlendireilecek dosya veya logu ifade etmektedir ve wildcard kullanarak tüm kulanıcıların geçmiş bilgilerini kendi ev dizinlerinin altında tutan dosya olan .bash_history dosyasının içeriğini aktarmış olacağız.
Mevcut konfigürasyon TCP olarak yönlendirme yapmak üzerine ayarladık. Sonda yazdığımız @ yerine @@ olacak şekilde biçimlendirerek UDP olarak yönlendirme yapabiliriz.
Bu aşamada rsyslog servisi kullanıcıların home dizinini okumak isteyecek ancak yetkisi olamdığı için başarısız olacaktır.
/etc/rsyslog.conf dosyası içinde bulunan aşağıdaki alanları bu şekilde değiştirerek veya mevcut servis kullanıcısının kullanıcılarım ev dizinine ve geçmiş dosyasına erişim izni vererek sorun giderilebilir.
$FileOwner root
$FileGroup root
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser root
$PrivDropToGroup root
- Servisi Yeniden Başlatma ve Kontrol Sağlanması
systemctl restart rsyslog
Kontrol etmek için de log sunucunuzun loglarını kontrol edebliirsiniz.
Not: Log sunucunuzun logları dinlediği porta log yönlendirecek olan sunucunuzun ağ olarak erişimi olması gerekmektedir, bunun kontrolünü tcp için aşağıdaki şekilde gerçekleştirebilirsiniz.
telnet <log_sunucu_ip>:<port>
UDP için ise
nc -vzu <log_sunucusu> <port>
Ek Bilgi
Log sunucunuz yok ise bir sunucuya rsyslog paketini kurup aşağıdaki gibi konfigürasyonu /etc/rsyslog.conf içine kaydedip servisi yeniden başlatıp test işlemini gerçekleştirebilirsiniz.
module(load="imudp")
input(type="imudp" port="514")
$AllowedSender UDP, <sender ip adresi>
$template histor,"/tmp/test"
*.* ?test
Posted on October 3, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
October 3, 2024