私はトラフィックを監視していて、いくつかのことに気づいたTCP (ACK、PSH) ルーターの入力チェーンでの接続試行はファイアウォールによってドロップされます。
ログは次のようになります:
Dropping input: src-mac 9c:80:df:a0:8a:dd, proto TCP (ACK,PSH), 172.217.16.78:443 (google ip) ->192.168.1.2:40382 (my router IP), len 115
明らかに、入力チェーンの最後のルールはパケットをドロップすることなので、これはドロップされます。
TCP プロトコルを十分に理解していないので、少し素朴な質問で申し訳ありませんが、なぜリクエストがルーターに送信されるのでしょうか?
私はGoogleサービスやサードパーティのソフトウェアも使用するさまざまなデバイスを持っていますが、パケットが実際に送信される理由は非常に混乱しています。にルーターではなくnat'edネットワーク内のデバイスへ(これはフォワードチェーンですよね?)。
Google 製品に関して、デバイスでの操作性が低下したという印象はまだありません。ソフトウェアの更新、プッシュ通知などはすべて正常に動作しているようです。
答え1
この現象はやや複雑です。私は対応するログを調査し、同じように疑問に思っているすべての人のために私の推測をここで共有したいと思います。
ACK
関連するログ エントリは、TCP フラグと(push)を持つ入力チェーンのドロップを示していますPSH
。これは、ネットワーク内の一部のサービスが Google サーバーからのメッセージを待機していることを示しています (push 経由)。しかし、待ってください。なぜパッケージが入力チェーンに記録されているのでしょうか。これは簡単に説明できます。ルーター (または @chexum が既に述べたように、conntrack) にNAT
ed/ PAT
ed トラフィックに関する接続情報がない場合、パッケージはルーターのトラフィックのように見え、その背後にあるデバイスのトラフィックのように見えません。そのため、「Google がルーターにトラフィックを送信している」理由が説明できます。
しかし、問題は、なぜルーターにこれらのパッケージの接続情報がないのかということです。そして、ここでは今のところ推測することしかできません。ドロップは、ほとんどのユーザーがインターネットを使用しているときに発生します。私の推測では、Google の応答に時間がかかりすぎたため (おそらく、他のものよりもトラフィックを低くプッシュしたため)、接続がタイムアウトしたと考えられます。この特定のルーターのタイムアウトは、TCP パッケージの場合は約 10 秒、5 秒ですSYN
。さらにしばらくすると、conntrack は古い「無効な」トラフィックに関するメモリを削除し、それ以降、この接続からのすべてのトラフィックは入力トラフィックのように見えます。これは、無効なルールがトリガーされない理由の 1 つでもあります。
@samuel はもう少し観察して、パターンが認識できるかどうかを確認する必要があると思います。しかし、一般的には、これらのドロップは無視できるという @chexum の意見に同意します。
答え2
送信元ポートが 443 の Google IP から受信したパケットが明確に表示されています。
もちろん、誰かがGoogleのIPアドレスを使って中間者攻撃をしたり、Googleの誰か(または侵入者)がパケットを送信したりする可能性はありますが、これは非常に、とてもありそうにない。
おそらく、パケット フィルターや conntrack サブシステム (またはルーターや ISP の同様の機能) が、google:443 と yourip:40382 間のパケット フローからのパケットをすでに確認しており、接続がすでに閉じられていることを示していると考えられます。
通常、ユーザーが開始した接続はパケット フィルターによってログに記録されませんが、これは確立された接続にのみ当てはまります。
FIN
両側またはどちらか一方からで接続が閉じられるとRST
、その接続は とはみなされなくなりますESTABLISHED
。どちらか一方によって遅延または再送されたパケットは、特に削除された conntrack エントリによってパケットが適切な宛先にデネートされない場合は、パケット フィルタによって新規とみなされ、ログに記録する価値があるものになります。
これは非常に一般的なことであり、心配する必要はまったくありません。通常、ログに記録されたパケットは無視しても問題ありません。
何らかのパターンが見つかり、調査したい場合は、tcpdump
システム上で を実行し、類似の IP アドレスからのすべてのパケットをログに記録し、類似のログがもう 1 つ見つかったら、tcpdump を停止し、ローカル ポートをフィルタリングして、イベントのほんの数秒前に実際に接続が開いていたかどうかを確認できます。
上記のサンプル tcpdump は次のようになります。
tcpdump -ieth0 -s0 -w /var/tmp/allssl.cap port 443