Syslog.conf dosyasını iptables mesajlarını ayrı bir dosyaya kaydedecek şekilde nasıl yapılandırabilirim?


10

Belirli bir dosyadaki /etc/syslog.confgünlük bilgilerini kaydetmek için dosyayı nasıl yapılandırabilirim iptables.

Bu bilgileri ayrı ayrı kaydetmek istiyorum, böylece istediğimi kolayca ve hızlı bir şekilde çıkarabiliyorum.


Syslog.conf veya rsyslog.conf mu kullanıyorsunuz?
slm

Yanıtlar:


13

syslog

İçin man sayfasına bir göz atın iptables. İstediğiniz LOGşeyi yapabilen bir hedef gösterir .

Misal

  1. Günlük kaydı düzeyini LOG4 olarak ayarlayın .

    # DROP everything and Log it
    iptables -A INPUT -j LOG --log-level 4
    iptables -A INPUT -j DROP
    
  2. syslog.confBu iletileri ayrı bir dosyaya yazacak şekilde yapılandırın .

    # /etc/syslog.conf
    kern.warning     /var/log/iptables.log
    
  3. Sistem günlüğünü yeniden başlatın.

    Debian / Ubuntu

    $ sudo /etc/init.d/sysklogd restart
    

    Fedora / CentOS / RHEL

    $ sudo /etc/init.d/syslog restart
    

NOT: Bu günlük kaydı yöntemine sabit öncelikler denir. Sayılar veya adlar (1,2,3,4, ..) veya (HATA AYIKLA, UYARI, BİLGİ vb.).

rsyslog

Şans eseri kullanıyorsanız rsyslog, şu şekilde mülke dayalı bir filtre oluşturabilirsiniz:

# /etc/rsyslog.conf
:msg, contains, "NETFILTER"       /var/log/iptables.log
:msg, contains, "NETFILTER"     ~

Ardından, günlüğe kaydetmek istediğiniz iptables kurallarınıza thils anahtarını ekleyin:

–log-prefix NETFILTER

Alternatif olarak, bu tür özellik filtresini kullanarak iletileri günlüğe kaydedebilirsiniz:

:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log
& ~

NOT: Bu 2. yöntemde herhangi bir değişiklik yapılması gerekmez iptables.

Referanslar


Bu durumda inforamtion içine /var/log/iptablesve içine kaydedilir /var/log/messages. Bu verilerden sadece bir kopya istiyorumiptables.log
Abid

1
Abid'in sorusunu ve eksik logrotate yapılandırmasını da kapsayacak şekilde kendi cevabımı ekledim. "durdur" veya "& ~", / var / log / messages dizinine ulaşmak için iletilerin rsyslog kurallarına devam etmesini engeller.
Peter

6

Bu, güvenlik duvarınızın herhangi bir aklı başında güvenlik duvarında olduğu gibi zaten günlükler oluşturduğunu varsayar. Bazı örnekler için slm örneğindeki "NETFILTER" gibi tanımlanabilir bir mesaj gerektirir.

rsyslog.d'de dosya oluşturma

vim /etc/rsyslog.d/10-firewall.conf

Bu CentOS 7'de çalışır. IN ve OUT aramaktan başka güvenlik duvarından geldiğini nasıl doğrulayacağımı bilmiyorum ... CentOS garip. Bir sonraki sürüm çalışmadığı sürece bunu kullanmayın.

# into separate file and stop their further processing
if  ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    & ~
}

Bu, CentOS 7'de çalışır ve ileti içeriğini de denetler ("Shorewall" yerine -j LOG kuralınızın iletisinde bulunanlarla değiştirin):

# into separate file and stop their further processing
if  ($msg contains 'Shorewall') and \
    ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    & ~
}

Bu diğerlerinde de çalışır (Ubuntu, Debian, openSUSE). Ve bunu yapmanın en iyi yolu bu. Mesajda dize aranmaz:

# into separate file and stop their further processing
if  ($syslogfacility-text == 'kern') and \\
($msg contains 'IN=' and $msg contains 'OUT=') \\
then    -/var/log/firewall
    &   ~

Ve burada varsayılan bir openSUSE makinesinin sahip olduğu (ki her dağıtımın sahip olması ve eksik olması gerektiğini düşünüyorum) (fark "& ~" yerine sadece "dur" gibi görünüyor; tüm sistemler her iki sözdizimini desteklemiyor):

if  ($syslogfacility-text == 'kern') and \
    ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    stop
}

Yukarıdakilerin tümü için bir logrotate.d dosyasını da unutmayın:

vim /etc/logrotate.d/firewall

kapsamak:

/var/log/firewall {
    rotate 7
    size 500k
    postrotate
        # before using this, run the command yourself to make sure 
        # it is right... the daemon name may vary
        /usr/bin/killall -HUP rsyslogd
    endscript
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.