カーネルログの表示方法は?

カーネルログの表示方法は?

Ubuntu 16.04を実行しています。

Linuxカーネルには、パケットフィルタ条件に関するいくつかのログステートメントがあり、実際にトリガされていることを確認したいと思います。

例は次のとおりです。

/* Smaller that minimal TCP header? */
th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
if (th == NULL) {
    if (LOG_INVALID(net, IPPROTO_TCP))
        nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
            "nf_ct_tcp: short packet ");
    return -NF_ACCEPT;
}

https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c 760番国道

nf_log_packet() 出力をどこかに表示できるようにLinuxシステムをどのように設定しますか?おそらく/var/log/syslogや他の目的地にいるでしょう。

どこに記録されていますか?ロギングを有効にするには?

答え1

したがって、次のステップが機能します。

カーネルのロギング出力をキャプチャするために、一部のプラグインと対話するUlogをインストールします。

sudo apt インストール ulog2

次に、sudo echo "255"> /proc/sys/net/netfilter/nf_conntrack_log_invalidを介してステータスIN​​VALIDロギングを有効にします。

255 に関する追加ドキュメントはここにあります。 https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

/etc/ulog.confでデバッグするUlogキャプチャレベルを設定します。

その後、ログをトリガーすると、/var/log/ulog/syslogemu.log に保存されます。

関連情報