CiscoASA5505ファイアウォールを介してNFSサービスのテストを行いました。
通常のインターフェイスのデフォルトACLでは、内部インターフェイス(レベル100)では「permitip any any」、外部インターフェイス(レベル0)では「denyipanyany」です。NFSサーバーは外部インターフェイスに接続されています。すべてがうまく機能します。パケットが通過するのを見ると、PCがNFSサーバーの111ポートを呼び出し、ポートマップを使用してポートをネゴシエートしていることがわかります。このTCP接続を終了しました。次に、NFSサーバー(PCの外部)はネゴシエートされたポートを使用してPCの内部に接続し、データを転送します。Cisco ASAファイアウォールはTCP状態を非常に良好に保ち、ネゴシエートされたポートを「記憶」します。したがって、外部ACLが「denyip any any」であっても、このポートを使用して外部PCが内部PCと通信できるようにします。ファイアウォールは完全にステートフルであり、これまでのところすべてが素晴らしいです。
ただし、VPNを使用してNFSサーバ(PCの外部)をCiscoASAファイアウォールに接続している限り。すべてが変わった。パケットを見ると、NFSはファイアウォールを通過し、ポートマップによってポートをネゴシエートできます。このTCPセッションが終了した後。ファイアウォールはネゴシエートされたポートを忘れ、ネゴシエートされたポートを使用して外部PCをブロックし、内部PCと通信します。
VPNの有無にかかわらず、唯一の変更点です。インターフェイス内にACLが1つだけあり、ipanyanyを許可します。NFSサーバーは、任意のサブネットからアクセスできるように設定されています。このファイアウォールにはNATやサービスポリシーの設定はありません。
CiscoファイアウォールルールがVPN上で「ステートフル」ではなくなった理由を誰かが説明できますか?設計されていますか?外部インターフェイスで一連の動的ポートを開かずに、NFSをVPN上で機能させるための最良の方法は何ですか?