Linux Bash Aktivitelerinin Loglanması

Linux sunucularınızın güvenliği için kullanıcıların Bash kabuğunda yapmış olduğu hareketlerin yani çalıştırılan komutların kayıt altına alınmasını isteyebilirsiniz. Hatta sadece kayıt altına almak ile kalmayıp bu logları bir  SIEM/Syslog  sunucusuna da gönderebilirsiniz. Normalde her kullanıcının kendisine ait bir dizini olur ve genelde  /home/kullaniciadi  olarak otomatik olarak oluşturulur. Bu dizin altında zaten çalıştırılan komutlar  .bash_history  dosyasında tutulmaktadır. Fakat günün sonunda bu girdiler yeterli olmayacaktır. Aşağıdaki adımları uygulayarak bütün kullanıcıların çalıştırdığı komutlar tek bir log dosyası içinde  /var/log  dizini altında tutulacaktır.

Yapılandırma ayarlarına geçmeden önce çalışma yapılacak her dosyanın bir yedeğini almanızı tavsiye ediyorum.

 

Linux Bash Aktivitelerinin Loglanması

Linux Bash Aktivitelerinin Loglanması

Yapılandırma Ayarları

Yapılacak değişikliklerin bütün kullanıcılarda aktif olması için aşağıdaki dosyayı düzenleme modunda açıyoruz.

sudo -e /etc/bash.bashrc

 

Ve aşağıdaki satırı bash.bashrc dosyasının en sonuna ekleyip kayıt edip dosyadan çıkıyoruz.

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

 

 

Yeni bir dosyayla “local6” için log kaydı oluşturuyoruz. Böyle bir dosya olmadığı için dosyanın içinde herhangi bir girdi bulunmayacaktır.

sudo -e /etc/rsyslog.d/bash.conf

 

bash.conf dosyasının içine aşağıdaki satırı ekleyip kayıt ettikten sonra dosyadan çıkalım.

local6.*    /var/log/komutlar.log

 

Log rotasyonu için aşağıdaki dosya üzerinde düzenleme yapmamız gerekmektedir.

sudo -e /etc/logrotate.d/rsyslog

 

Dosyayı açtığımızda bazı log dosyaları için hali hazırda rotasyonunun tanımlandığını göreceğiz.

/var/log/mail.warn
/var/log/mail.err
[...]
/var/log/message

 

Aşağıdaki satırı /var/log/message satırının hemen altına ekleyip kayıt edebilirsiniz.

/var/log/komutlar.log

 

Son olarak yapılan değişikliklerin geçerli olması için rsyslog servisi yeniden başlatılmalıdır.

sudo service rsyslog restart

 

Sunucu üzerinde bir kaç komut çalıştıralım ve tail -f /var/log/komutlar.log dosyasının içeriğini kontrol edelim.

[email protected]:/var/log# tail -f komutlar.log
Dec 27 20:05:24 ubuntu-4gb-fsn1-1 root: root [22111]: cat komutlar.log  [0]
Dec 27 20:35:56 ubuntu-4gb-fsn1-1 root: root [22111]: cat komutlar.log  [0]
Dec 27 20:35:57 ubuntu-4gb-fsn1-1 root: message repeated 2 times: [ root [22111]: cat komutlar.log  [0]]
Dec 27 22:16:40 ubuntu-4gb-fsn1-1 root: root [22469]: exit [0]
Dec 27 22:16:50 ubuntu-4gb-fsn1-1 root: root [22469]: cd /var/log [0]
Dec 27 22:17:22 ubuntu-4gb-fsn1-1 root: root [22469]: tail -f komutlar.log  [130]
Dec 27 22:17:24 ubuntu-4gb-fsn1-1 root: root [22469]: ifconfig [0]
Dec 27 22:17:33 ubuntu-4gb-fsn1-1 root: root [22469]: cat /etc/ssh/sshd_config [0]
Dec 27 22:17:35 ubuntu-4gb-fsn1-1 root: message repeated 10 times: [ root [22469]: cat /etc/ssh/sshd_config [0]]
Dec 27 22:17:35 ubuntu-4gb-fsn1-1 root: root [22469]: clear [0]

 

Görüldüğü üzere yapılandırmamızda herhangi bir sorun gözükmemektedir. Çalıştırmış olduğum her komutu komutlar.log dosyasında görüntüleyebilmekteyim.

Dilerseniz ilgili log dosyasında bulunan kayıtlar SIEM / Syslog sunucusuna da gönderebilir. Çalıştırılmasını sakıncalı bulduğunuz komutlar için alarm kuralları hazırlayabilirsiniz. Bu sayede Linux sistemleriniz üzerinde farkındalığınız artmış olacaktır.

 

Ayrıca SSH bağlantılarını daha güvenli hale getirmek isterseniz önceden yazmış olduğum aşağıdaki yazılara göz atabilirsiniz.

SSH (Secure Shell) Güvenliği için Sıkılaştırma (Hardening)

İki Faktörlü Kimlik Doğrulama (2FA) ile SSH Güvenliği

 

Ubuntu


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