NetscreenをNATなルーターにして、内側にPASSIVEのFTPサーバーを立てる場合のメモ

以前、Netscreen内側にPASSIVEのFTPサーバーを立てて外部から接続するようにしたことがあり、今回、同様作業をすることになったのだが、以前の設定メモが見つからなくて、試行錯誤してしまった。以下、試行錯誤結果メモ。
なお、JuniperサイトにDoes NetScreen allow passive and active FTP?なんて記事があっって、passiveでもportでもFTP OKととは書いてあるが、具体的な設定方法が書いていないので役に立たない。

前提

  • Netscreen 5GT を使用。
  • Untrust側のIPをaa.bb.cc.dd、Trust側に置くFTPサーバーのIPを192.168.0.254、PASSIVEで受けるポートを11000〜11010とする*1

手順

  1. Netscreenで以下のように設定する。
    1. Objects->Services->Custom で以下のように設定する。
    2. 前項同様の設定をポート 11001〜11010 についても行う。
    3. Untrust側からポート21と11000〜11010への接続時、VIPを使ってTrust側の192.168.0.254につなげるために、こちらを参照する。このページは、ポート80を使ったHTTPサーバー設置例を示しているが、同様のことをポート21と11000〜11010について行う。
  2. FTPサーバーを以下のように設定する。
    • PASSIVEコマンドへの返答時、IPとして、aa.bb.cc.ddを返す設定にする。
    • ポートとして11000〜11010を返すように設定する。
    • 具体的な設定箇所は、FTPサーバーによって違う。例えば、Proftpdなら、proftpd.conf に、以下の行を入れる。
MasqueradeAddress    aa.bb.cc.dd
PassivePorts         11000 11010

以上。

2008.12.21追記

上記はNetscreennのVIP機能を使い、PASVで使うポートを開ける場合に、1ポートにつきService1つ+VIP1つ+Policy1つを設定している。なので、PASV用ポートを50個開ける場合には、Service50個、VIP51個、Policy51個を設定する必要があり、大変だ。
こういう場合、JuniperForum.comのSetting up FTP access on netscreen 5xp (passive mode)?という記事ののやり方の方が良さげ。この記事を参照し、Netscreen5GT(Screen OS 4.0.0r5.3)でPASV用ポートを50個開けるようにし、今のところ、うまく動いている。
そういうわけで、このエントリは、後でまとめ直すかも。

2010.09.01追記

以下、JuniperForum.comのSetting up FTP access on netscreen 5xp (passive mode)?という記事の解説。この方法だと、FTPのPASSIVE(50ポート)をService1つ+VIP2つ+Policy2つで設定できる。前提は、最初の記事と同じ。

  1. NetscreenのConsoleにログインする。
  2. 以下を3行を入力する。入力後、Netscreenが再起動する。
    • set vip multi-port
    • save
    • reset
  3. NetscreenのWEBの設定画面にログインする。
  4. Objects->Services->Custom で以下のように設定する。
  5. Untrust側からポート21と11000〜11010への接続時、VIPを使ってTrust側の192.168.0.254につなげるために、こちらを参照する。このページは、ポート80を使ったHTTPサーバー設置例を示しているが、同様のことをポート21と11000〜11010について行う。
    • VIPは以下の2つを作る。
      • Virtual Port=21、Map To Service=「FTP(21)」、Map To IP=「192.168.0.254」
      • Virtual Port=11000、Map To Service=Objects->Services->Customで設定したサービス、Map To IP=「192.168.0.254」
    • Policyは以下の2つを作る。
      • Service=「FTP(21)」
      • Service=Objects->Services->Customで設定したサービス
  6. FTPサーバーの設定は、最初の記事と同じ。

*1:実際に使っているのとは違うけど、実際に使っているIPとかポートを書きたくないし