• logging with iptables

    From fxkl47BF@protonmail.com@21:1/5 to All on Thu Sep 19 16:40:01 2024
    in my iptables i have tcp LOG flags 0 level 4 prefix "REJECT: "
    this does what i want but how to direct the logging
    it gets written to multiple file in /var/log
    syslog, messages, kern, debug
    can i restrict this to a single file

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andy Smith@21:1/5 to fxkl47BF@protonmail.com on Thu Sep 19 17:10:01 2024
    Hi,

    On Thu, Sep 19, 2024 at 02:35:24PM +0000, fxkl47BF@protonmail.com wrote:
    in my iptables i have tcp LOG flags 0 level 4 prefix "REJECT: "
    this does what i want but how to direct the logging
    it gets written to multiple file in /var/log
    syslog, messages, kern, debug
    can i restrict this to a single file

    If you install a more flexible logging system than journald, such as
    rsyslog or syslog-ng, you can match by regex in order to direct log
    lines to different places.

    I also use ulogd2 to direct iptables logging to different places. I
    haven't yet written up what I do for nftables but here is soemthing
    I wrote up years ago for iptables and it wasn't hard to adapt for
    nftables:

    https://strugglers.net/posts/2021/keeping-firewall-logs-out-of-linuxs-kernel-log-with-ulogd2/

    There are of course many other resources online for using ulogd2.

    Thanks,
    Andy

    --
    https://bitfolk.com/ -- No-nonsense VPS hosting

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Tim Woodall@21:1/5 to fxkl47BF@protonmail.com on Fri Sep 20 04:20:01 2024
    On Thu, 19 Sep 2024, fxkl47BF@protonmail.com wrote:

    in my iptables i have tcp LOG flags 0 level 4 prefix "REJECT: "
    this does what i want but how to direct the logging
    it gets written to multiple file in /var/log
    syslog, messages, kern, debug
    can i restrict this to a single file


    *.*;auth,authpriv.none;kern.none -/var/log/syslog

    Add kern.none to the ones you don't want kernel messages in.

    That will, of course stop all logging, not just iptables.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Karl Vogel@21:1/5 to All on Fri Sep 20 12:20:01 2024
    On Thu, 19 Sep 2024, fxkl47BF@protonmail.com wrote:
    in my iptables i have tcp LOG flags 0 level 4 prefix "REJECT: "
    this does what i want but how to direct the logging
    it gets written to multiple file in /var/log
    syslog, messages, kern, debug
    can i restrict this to a single file

    You might have better luck if you used rsyslog. I've appended the
    rsyslog.conf file I used on my last Linux box. Features:

    * I still use the short date format in typical syslog files -- I don't
    need the full year because each logfile is linked to a dated version in
    a subdirectory. This also makes log rotation vastly simpler. See the
    "TEMPLATES" section:

    /var/log/cron -> /var/log/YYYY/MMDD/cron
    etc.

    * You can weed out crap messages that fill up logs. See the "FILTERS"
    section for more.

    * The first entry in the "RULES" section shows how to put iptables
    stuff in its own "firewall" log.

    --
    Karl Vogel I don't speak for anyone but myself

    Photographing a volcano is just about the most miserable thing you can do.
    --Robert B. Goodman, who has clearly never tried to use a PDP-10

    # -------------------------------------------------------------------------
    # rsyslog v5 configuration file
    #
    # $Revision: 1.4 $ $Date: 2020-08-31 01:07:59-04 $
    # $Source: /doc/sitelog/linuxwks/vcs/etc/rsyslog.conf,v $
    # $Host: linuxwks $
    # $UUID: 0aac27dd-1bdd-3c91-92e8-857140e878db $
    #
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # Problems? http://www.rsyslog.com/doc/troubleshoot.html

    #### MODULES =====================================================

    # provides support for local system logging (e.g. via logger command)
    $ModLoad imuxsock

    # provides kernel logging support (previously done by rklogd)
    $ModLoad imklog

    # provides --MARK-- message capability
    #$ModLoad immark

    # Provides UDP syslog reception
    #$ModLoad imudp
    #$UDPServerRun 514

    # Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    #
    #### GLOBAL DIRECTIVES ===========================================

    # Use short timestamp format
    ## $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $ActionFileDefaultTemplate ShortForm

    # Use high-precision timestamps and timezone information.
    ## $ActionFileDefaultTemplate RSYSLOG_FileFormat

    # File syncing capability is disabled by default. This feature is
    # usually not required, not useful and an extreme performance hit
    ## $ActionFileEnableSync on

    # Include all config files in /etc/rsyslog.d/
    $IncludeConfig /etc/rsyslog.d/*.conf

    #### TEMPLATES ===================================================

    $template DYNauth,"/var/log/%$YEAR%/%$MONTH%%$DAY%/secure"
    $template DYNcron,"/var/log/%$YEAR%/%$MONTH%%$DAY%/cron"
    $template DYNfirewall,"/var/log/%$YEAR%/%$MONTH%%$DAY%/firewall"
    $template DYNkern,"/var/log/%$YEAR%/%$MONTH%%$DAY%/kernlog"
    $template DYNmail,"/var/log/%$YEAR%/%$MONTH%%$DAY%/maillog"
    $template DYNmessages,"/var/log/%$YEAR%/%$MONTH%%$DAY%/messages"

    # This is identical to traditional format, without the hostname.
    $template ShortForm,"%timegenerated% %syslogtag%%msg%\n"

    #### FILTERS =====================================================

    # This apparently comes from Radeon fence code in the kernel: ignore.
    #:msg, contains, " armed on ring " ~
    #:msg, contains, " signaled from irq context" ~
    #:msg, contains, " pending" ~
    #:msg, contains, "alloc_contig_range:" ~

    #### RULES =======================================================

    # Log iptables drops to firewall log using discard action.
    if \
    $syslogfacility-text == 'kern' \
    and $msg contains 'Denied' \
    then ?DYNfirewall
    & ~
    kern.* ?DYNkern

    # ----------------------------------------------------------------
    # Log all the mail messages in one place. Postfix stuff must be ID'd
    # by looking at the message contents; this has to come before general
    # processing so we can discard the message, or postfix entries are
    # also logged to "messages".
    if \
    $msg contains 'postfix/' \
    or \
    $syslogfacility-text == 'mail' \
    then ?DYNmail
    & ~

    # ----------------------------------------------------------------
    # Log anything of level info or higher.
    # Don't log private authentication messages!
    ## authpriv.none;auth.none;kern.none;cron.none;local5.none;*.info
    ## /var/log/messages

    if \
    $syslogseverity <= '6' \
    and ( \
    $syslogfacility-text != 'auth' \
    and \
    $syslogfacility-text != 'authpriv' \
    and \
    $syslogfacility-text != 'cron' \
    and \
    $syslogfacility-text != 'kern' \
    and \
    $syslogfacility-text != 'mail' \
    ) \
    then ?DYNmessages

    # ----------------------------------------------------------------
    # The authpriv file has restricted access.
    ## authpriv.* /var/log/secure
    ## auth.* /var/log/secure

    if \
    $syslogseverity <= '6' \
    and ( \
    $syslogfacility-text == 'auth' \
    or \
    $syslogfacility-text == 'authpriv' \
    ) \
    then ?DYNauth

    # ----------------------------------------------------------------
    # Log cron stuff
    ## cron.* /var/log/cron

    if \
    $syslogseverity <= '6' \
    and \
    $syslogfacility-text == 'cron' \
    then ?DYNcron

    # ----------------------------------------------------------------
    # Everybody gets emergency messages
    *.emerg *

    # ----------------------------------------------------------------
    # Local logs; save boot messages to boot.log
    local0.* /var/log/local0log
    local1.* /var/log/local1log
    local2.* /var/log/local2log
    local3.* /var/log/local3log
    local4.* /var/log/local4log
    local5.* /var/log/local5log
    local6.* /var/log/local6log
    local7.* /var/log/boot.log

    #### EOF =========================================================

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)