[arch-general] ulogd fails to start - cannot find key `oob.in'

Wayne S linux at zuik.net
Mon Oct 21 10:17:45 EDT 2013


At 10/19/2013 09:55 AM, you wrote:
>I did a system update the other day with shorewall and ulogd installed. Now ulogd fails to start:
>
>Sat Oct 19 08:26:01 2013 <5> ulogd.c:375 registering plugin `NFLOG'
>Sat Oct 19 08:26:01 2013 <5> ulogd.c:375 registering plugin `BASE'
>Sat Oct 19 08:26:01 2013 <5> ulogd.c:375 registering plugin `IP2STR'
>Sat Oct 19 08:26:01 2013 <5> ulogd.c:375 registering plugin `PRINTPKT'
>Sat Oct 19 08:26:01 2013 <5> ulogd.c:375 registering plugin `LOGEMU'
>Sat Oct 19 08:26:01 2013 <7> ulogd.c:741 cannot find key `oob.in' in stack
>Sat Oct 19 08:26:01 2013 <8> ulogd.c:1234 not even a single working plugin stack
>
>Looking at ulogd package changes shows:
>
>-plugin="/usr/lib/ulogd/ulogd_inppkt_ULOG.so"
>+plugin="/usr/lib/ulogd/ulogd_inppkt_NFLOG.so"
>
>Comparing the difference between ULOG.so and NFLOG.so indicates that the 'oob.in' key does not exist in NFLOG but does exist in ULOG, for example:
>
># ulogd --info /usr/lib/ulogd/ulogd_inppkt_ULOG.so
>Name: ULOG
>Config options:
>        Var: bufsize (Integer, Default: 150000)
>        Var: nlgroup (Integer, Default: 32)
>        Var: rmem (Integer, Default: 131071)
>        Var: numeric_label (Integer, Default: 0)
>Input keys:
>        Input plugin, No keys
>Output keys:
>        Key: raw.mac (raw data)
>        Key: raw.pkt (raw data)
>        Key: raw.pktlen (unsigned int 32)
>        Key: raw.pktcount (unsigned int 32)
>        Key: oob.prefix (string)
>        Key: oob.time.sec (unsigned int 32)
>        Key: oob.time.usec (unsigned int 32)
>        Key: oob.mark (unsigned int 32)
>        Key: oob.in (string)
>        Key: oob.out (string)
>        Key: oob.hook (unsigned int 8)
>        Key: raw.mac_len (unsigned int 16)
>        Key: oob.family (unsigned int 8)
>        Key: oob.protocol (unsigned int 16)
>        Key: raw.label (unsigned int 8)
>
>
># ulogd --info /usr/lib/ulogd/ulogd_inppkt_NFLOG.so
>Name: NFLOG
>Config options:
>        Var: bufsize (Integer, Default: 150000)
>        Var: group (Integer, Default: 0)
>        Var: unbind (Integer, Default: 1)
>        Var: bind (Integer, Default: 0)
>        Var: seq_local (Integer, Default: 0)
>        Var: seq_global (Integer, Default: 0)
>        Var: numeric_label (Integer, Default: 0)
>        Var: netlink_socket_buffer_size (Integer, Default: 0)
>        Var: netlink_socket_buffer_maxsize (Integer, Default: 0)
>        Var: netlink_qthreshold (Integer, Default: 0)
>        Var: netlink_qtimeout (Integer, Default: 0)
>Input keys:
>        Input plugin, No keys
>Output keys:
>        Key: raw.mac (raw data)
>        Key: raw.pkt (raw data)
>        Key: raw.pktlen (unsigned int 32)
>        Key: raw.pktcount (unsigned int 32)
>        Key: oob.prefix (string)
>        Key: oob.time.sec (unsigned int 32)
>        Key: oob.time.usec (unsigned int 32)
>        Key: oob.mark (unsigned int 32)
>        Key: oob.ifindex_in (unsigned int 32)
>        Key: oob.ifindex_out (unsigned int 32)
>        Key: oob.hook (unsigned int 8)
>        Key: raw.mac_len (unsigned int 16)
>        Key: oob.seq.local (unsigned int 32)
>        Key: oob.seq.global (unsigned int 32)
>        Key: oob.family (unsigned int 8)
>        Key: oob.protocol (unsigned int 16)
>        Key: oob.uid (unsigned int 32)
>        Key: oob.gid (unsigned int 32)
>        Key: raw.label (unsigned int 8)
>        Key: raw.type (unsigned int 16)
>        Key: raw.mac.saddr (raw data)
>        Key: raw.mac.addrlen (unsigned int 16)
>        Key: raw (raw data)
>
>Reverting ulogd.conf file to use ULOG instead of NFLOG, allows ulogd to run, but NFLOG is probably what is in the kernel, hence this change does log anything.
>
>Any suggestions on getting NFLOG to work?
>
>Wayne

I found the problem with ulogd not starting. Reading through the example config:

/usr/share/doc/ulogd/ulogd.conf

I noticed that the /etc/ulogd.conf file from the recent system upgrade is incorrect.
Here is the corrected ulogd.conf, which was missing the IFINDEX plugin in the stack:

[global]
logfile="/var/log/ulogd.log"
loglevel=5
rmem=131071
bufsize=150000

plugin="/usr/lib/ulogd/ulogd_inppkt_NFLOG.so"
plugin="/usr/lib/ulogd/ulogd_raw2packet_BASE.so"
plugin="/usr/lib/ulogd/ulogd_filter_IFINDEX.so"
plugin="/usr/lib/ulogd/ulogd_filter_IP2STR.so"
plugin="/usr/lib/ulogd/ulogd_filter_PRINTPKT.so"
plugin="/usr/lib/ulogd/ulogd_output_LOGEMU.so"

#stack=log1:NFLOG,base1:BASE,ip2str1:IP2STR,print1:PRINTPKT,emu1:LOGEMU
stack=log1:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu1:LOGEMU

[log1]
group=1

[emu1]
file=/var/log/ulogd.syslogemu

Wayne S


More information about the arch-general mailing list