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を介してステータスINVALIDロギングを有効にします。
255 に関する追加ドキュメントはここにあります。 https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt
/etc/ulog.confでデバッグするUlogキャプチャレベルを設定します。
その後、ログをトリガーすると、/var/log/ulog/syslogemu.log に保存されます。