適切なパケットを許可する必要がありますが、iptablesがドロップ/ログされるのはなぜですか?

適切なパケットを許可する必要がありますが、iptablesがドロップ/ログされるのはなぜですか?

私は、iptablesファイアウォール、fall2ban、openvpn、apacheなどのいくつかのアプリケーションを使用してDebian Jessieを実行するサーバーを設定しています。

iptablesファイアウォールは、ドロップされたすべてのパケットを記録するように構成されています。 iptables構成からの小さな抜粋:

...
-A INPUT -m comment --comment "003 accept related established rules IPv4" -m state --state RELATED,ESTABLISHED -j ACCEPT
...
-A INPUT -p tcp -m multiport --dports 1194 -m comment --comment "303 allow incoming OpenVPN" -m state --state NEW -j ACCEPT
...
-A INPUT -m comment --comment "900 IPv4 log dropped input chain" -j LOG --log-prefix "[IPTABLES INPUT IPv4] DROP " --log-level 6
-A INPUT -m comment --comment "910 IPv4 deny all other input requests" -j DROP

OpenVPN(ポート1194を使用)が正しく機能します。多くのデータを転送する必要があるまで接続し、接続を使用して数時間作業できます。この時点で、ログには次の行が表示されます。

Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20713 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0
Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20718 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0 
Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20719 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0 

[このログはFail2banからのものです。サーバーが自分のローカルコンピュータへの接続を切断しました。 ]

Q: これらのパケットが破棄(および記録)されるのはなぜですか?つまり、これらのパケットが「RELATED、ESTABLISHED」ルールによって処理されないのはなぜですか?

今まで私がやったことは文書を読んで、問題について考え、規則をチェックし続け、インターネットで検索しましたが、何も出ませんでした。

編集:おそらくこれは重要です:Fail2banによって生成されたDROPのリストには約500のエントリがあります。

編集:理由を知りたいです(質問で「なぜ」を使用しました)。私は解決策に興味がありません。

編集:この動作はOpenVPNに限定されず、他のプロトコル(sshなど)を使用しても同じ問題があります。

編集:印象を与えるには、Wiresharkのスクリーンショットを見てください。強調表示されたパケットは破棄/記録され、スクリーンショットの他のすべてのパケットは破棄されませんでした。

適切なログは次のとおりです。

Mar 03 10:16:23 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress>.117 DST=<ServerIPAddress>.116 LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=11550 DF PROTO=TCP SPT=63526 DPT=1194 WINDOW=32038 RES=0x00 ACK URGP=0 

IP ID(11550)を使用してWiresharkでパケットを見つけました。これはIDを持つ唯一のIPパケットです。

Wiresharkパケットの詳細ログ

編集:サーバーIPは静的IPです。動的に割り当てられたIPアドレスはテスト中に変更されませんでした。接続はローカルコンピュータからサーバーとして開始されます。設定は次のとおりです。

=================      ===================      ===============
| LocalComputer | ---- | NAT Router .117 | ---- | Server .116 |
=================      ===================      ===============
   Private IP            Dynam. Assigned            Fixed IP
                       but fixed during test

ベストアンサー1

これらのログエントリがあるがiptablesルールと一致しないため、RELATED,ESTABLISHEDConnection Trackerレポートはこれを以前とは無関係の新しいセッションの開始と見なします。必ずしもそうではありませんが、通常、これはセッションが接続トラッカータイムアウトよりも長い間アイドル状態にある場合に発生する可能性があります。エンドポイント間の他のNATデバイスがタイムアウトして新しいポート番号を作成したか、他のエンドポイントのIPアドレスが変更された可能性があるため(一部のISPのDHCPベースのネットワークでは)、必ずしもエンドポイント接続トラッカーエラーが発生したわけではありません。

3つの選択肢を考えてみましたが、

  1. 〜できるようにするPingは生き続けるOpenVPN設定で。少なくとも一度試してくださいping 10。必要に応じて、クライアント/サーバーの設定方法に応じてこれを好むこともできますkeepalive 10 60。よりマニュアルページ本当に残酷な詳細のために。 (エンドポイントのIPアドレス/ポートペアが変更されても問題は解決しません。)

  2. fail2ban1194/tcp で OpenVPN トラフィックと一致する設定を無効にします。

  3. トリガする内容がないように、iptables1194/tcp で OpenVPN トラフィックのログメッセージを印刷しないようにしてください。fail2ban

おすすめ記事