DEV Community

Cover image for Rsyslog ile Kullanıcıların Bash History Bilgilerinin Log Sunucusuna Yönelendirilmesi
Doğukan Eren for Açıklab

Posted on

Rsyslog ile Kullanıcıların Bash History Bilgilerinin Log Sunucusuna Yönelendirilmesi

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
Enter fullscreen mode Exit fullscreen mode

RPM tabanlı sistemler için

yum install rsyslog
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
  1. Servisi Yeniden Başlatma ve Kontrol Sağlanması
systemctl restart rsyslog
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

UDP için ise

nc -vzu <log_sunucusu> <port>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)