ファイアウォールが転送したポートへの接続をどのようにリストしますか?

ファイアウォールが転送したポートへの接続をどのようにリストしますか?

Firewalldを使用してポートを転送しましたが、すべてがうまくいきます。ただし、「netstat」および「ss」コマンドは、Firewalldによって開かれたポートや接続を表示しません。転送はカーネルレベルで処理されるため、「netstat」と「ss」には接続またはポートのステータスは表示されません。 「nmap」に依存せずに接続を一覧表示し、ポートが開いていることを確認する方法を知りたいです。説明していただきありがとうございます。

ベストアンサー1

一般的なネットワークスタックの観点からは、関連するローカル接続がないため、接続されたソケットはなく(したがってss何も報告されません)、パスには接続状態が必要ないため、知る必要もありません。

ただし、NATを実行するには、すべての後続のパケットが同じ変換(「未変換」応答パケットを含む)を取得するようにこれらの状態を覚えておく必要があります。これは次のために発生します。Webフィルタそしてそのつながるそのような接続状態を追跡する機能を担う施設です。つながるの一部ですWebフィルタ双方が使用する施設ですiptablesそしてnftables:どのバックエンドを使用しても関係ありませんファイアウォールNATは常に追跡されます。つながる

このコマンド(通常、ほとんどのLinuxディストリビューションではパッケージに付属conntrack)はクエリ(カーネルメモリ)を実行できます。conntrack-toolsconntrackつながるテーブル。十分なフィルタを使用してください。--dst-nat、DNATに変換された接続(応答元がクエリの対象とは異なる項目)のみが表示されます。

現在使用中のすべてのトレース接続を表示します(次に実行)。):

conntrack -L --dst-nat

ステータス変更のイベントを監視するには、次の手順を実行します。

conntrack -E --dst-nat

このコマンドは、そのような変換を生成するルール自体ではないため、表示できません。つながる状態ですが、その状態の将来の動作を定義します。これらのルールは、NATフックされたチェーンのファイアウォールルールの一部です。 ~によるとファイアウォールバックエンド(iptablesまたはnftables)、デフォルト設定でこのコマンドを実行した結果:

firewall-cmd --add-forward-port=port=5555:proto=tcp:toport=6666:toaddr=10.3.3.2

見ることができる

  • そしてiptablesNATテーブルのチェーンバックエンド:

    # iptables -t nat -S | grep -w 5555
    -A PRE_public_allow -p tcp -m tcp --dport 5555 -j DNAT --to-destination 10.3.3.2:6666
    
  • そしてnftablesバックエンドにも同様の名前のチェーンがあります。INETファイアウォールnat型に関連付けられた基本チェーンから呼び出されるテーブル:

    # nft list chain inet firewalld nat_PRE_public_allow
    table inet firewalld {
      chain nat_PRE_public_allow {
          meta nfproto ipv4 tcp dport 5555 dnat ip to 10.3.3.2:6666
      }
    }
    

実際に「オン」であるという事実は、確認するのがより難しいでしょう。信じなければなりません。ファイアウォールこれで必要な作業が完了しました。現在実装済みファイアウォールクエリを介して一般的な方法でこれを行います。つながる施設:

  • そしてiptablesバックエンドは、DROPルールを持つ各組み込みチェーンの許可された状態にDNAT状態を追加することによってこれを行います。したがって、これは(他の許可された状態で)次のようになります。

    -A <built-in> -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
    
  • 通常nftablesバックエンドでは、以下を含むすべての基本チェーンを使用して実行されます。減らすルール:

    ct status dnat accept
    

どちらの場合も同じ効果があります。つまり、パケット(他の可能性のうち)がDNAT変換を受ける場合(これはルールセットの結果としてのみ発生する可能性があるため)ファイアウォール)そしてそれを受け入れます。どの特定のポートが許可されているかを再度繰り返す必要はありません。

長老ファイアウォールバージョンが使用されている可能性があります。ファイアウォールタグ変えるつながる状態は同じことをするメモリとして機能します。

おすすめ記事