rp_filter = 1によってドロップされたパケットログを取得する方法

rp_filter = 1によってドロップされたパケットログを取得する方法

rp_filterによってドロップされたパケットログが必須です...このロギングはどうすればよいですか?

有効にする方法を記録します。

答え1

私が知る限り、これらのどれも文書化されていません。他の人が私が間違っていることを証明しない限り、ここに別のアプローチがあります。

次の 1+2 または 1+3 の手順を実行できます。

  1. 障害を負うrp_フィルタ完全に。

  2. iptablesを使うフィルター一致するモジュール、一度丸太単純なログ宛先またはニューラルネットワークログ(でもNFキュー(意図された目的ではありませんが)完全なパケットダンプに使用され、実際のフィルタリングにはDROP宛先を使用します。

    使用ニューラルネットワークログどうやら別の質問が必要になると思いますが、特別な道具がなくてもtcpdump聞くことができると申し上げます。ウェブログnetlinkソケットは、まるでインターフェースのように動作します。通常は最初に行われます。

    # tcpdump -D
    

    正しいインターフェース索引を検索してください。たとえば、

    [...]

    12.nflog (Linux netfilter log (NFLOG) interface)
    13.nfqueue (Linux netfilter queue (NFQUEUE) interface)
    

    [...]

    # tcpdump -n -i 12
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on nflog, link-type NFLOG (Linux netfilter log messages), capture size 262144 bytes
    

    ファイルに書き込むこともできます(-w dump.cap)。

  3. または使用CMS~の嘘をつく(十分に新しい)一致する同等の方法を使用してください。nftables変えるiptables、同等のものがあります丸太方法。

使用Webフィルタファイアウォール層はIPv6への唯一のアプローチであり、これをサポートしていません。rp_フィルタLinuxのルーティングスタックにあります。

ARPまたはポリシールーティングに関連するいくつかの特別なケースの動作は、フィルタリングが後で実行される可能性があるため、100%同じではない可能性があります。

答え2

sysctlを有効にしたnet.ipv4.conf.default.log_martians後にsyslogファイルを確認すると、次のような内容が必要です。

[8270435.701764] ll header: 00000000: ce 47 b8 a3 39 62 de 2e 40 0c a0 0c 08 00        .G..9b..@.....
[8270435.702460] IPv4: martian source 51.247.240.165 from 10.138.86.16, on dev tap12

関連情報