web-dev-qa-db-ja.com

Debian SqueezeでIPtables TRACEターゲットを有効にする方法(6)

IPtablesのTRACEターゲットを使用しようとしていますが、ログに記録されているトレース情報を取得できません。ここで説明されているものを使用したい Iptablesのデバッガー

TRACEのiptables manから:

   This target marks packes so that the kernel will log every  rule  which
   match  the  packets  as  those traverse the tables, chains, rules. (The
   ipt_LOG or ip6t_LOG module is required for the  logging.)  The  packets
   are   logged   with   the   string   prefix:  "TRACE:  tablename:chain-
   name:type:rulenum " where type can be "rule" for plain  rule,  "return"
   for  implicit  rule at the end of a user defined chain and "policy" for
   the policy of the built in chains.
   It can only be used in the raw table.

私は次のルールを使用します:iptables -A PREROUTING -t raw -p tcp -j TRACEですが、/ var/log/syslogまたは/var/log/kern.logには何も追加されていません。

別のステップが欠けていますか?間違った場所を探していますか?

編集する

ログエントリが見つからない場合でも、パケットカウンタが増加するため、TRACEターゲットは正しく設定されているようです。

# iptables -L -v -t raw
Chain PREROUTING (policy ACCEPT 193 packets, 63701 bytes)
 pkts bytes target     prot opt in     out     source               destination
  193 63701 TRACE      tcp  --  any    any     anywhere             anywhere

Chain OUTPUT (policy ACCEPT 178 packets, 65277 bytes)
 pkts bytes target     prot opt in     out     source               destination

編集2

ルール iptables -A PREROUTING -t raw -p tcp -j LOGdoesパケット情報を/ var/log/syslogに出力します... TRACEが機能しないのはなぜですか?

11
bernie

実行:

modprobe ipt_LOG

それで解決しました。

8
Gido Bruno

新しいカーネルでは(IPv4の場合)これが必要である(つまり私にとってはうまくいく)ようです:

modprobe nf_log_ipv4
sysctl net.netfilter.nf_log.2=nf_log_ipv4

クレジット:

14
akostadinov

上記の両方の回答を次の順序で実行する必要があることがわかりました。

Sudo modprobe ipt_LOG
Sudo sysctl net.netfilter.nf_log.2=ipt_LOG

途中で発見したことがいくつかあります。

次のようにして、有効なロガーのリストを(現在選択されているロガーとともに)取得できます。

cat /proc/net/netfilter/nf_log

ここでの番号は、/usr/include/bits/socket.hで定義されているプロトコルファミリ番号を表します。 2はAF_INET(IPv4)、10はAF_INET6(IPv6)です。

8
mavit

これは私にとってうまくいきましたSudo sysctl net.netfilter.nf_log.2=ipt_LOG

2
Nikolay Bryskin