UXNET/FTPⅢ - 強化内容

MP R7.1強化  PASVコマンドサポート

強化機能イメージ

ファイアウォールとの親和性を向上

FTPは、相手ホスト上のFTPとの間で、サーバ・クライアントともに、以下の2種類のコネクションを確立して動作します。

  • 制御コネクション
    FTPプロトコルコマンドとその応答メッセージの送受信に利用
  • データコネクション
    ファイルデータそのものの転送に利用

従来、ACOS-2のFTPは、PORTコマンドによるデータコネクションの確立を行っていました。PORTコマンドを用いたFTPファイル転送では、FTPサーバ側からデータコネクションの確立を行います。

ACOS-2がFTPクライアントの場合、FTPクライアントが任意に取得したPORT番号に対して、FTPサーバ側からデータコネクションの確立を行います。この為、ファイアウォールでは、ACOS-2のFTPクライアントが取得し得る全てのPORTを開ける、もしくは、特定IPについては、宛先PORTのフィルタリング設定をしないという方法でシステム構築頂いておりました。

今回、ファイアウォールとの親和性向上を目的として、PASVコマンドによるデータコネクションの確立機能を提供します。PASVコマンドを用いたFTPファイル転送では、FTPクライアント側からデータコネクションの確立を行います。ACOS-2がFTPクライアントの場合、ファイアウォールの内から外へコネクション確立する動作となる為、FTPクライアントを動作させるために不定のPORTに対してフィルタリング設定しないという運用が必要なくなります。

ACOS-2がFTPサーバの場合は、FTPサーバ定義で事前に指定したPORTに対してFTPクライアントがデータコネクションの確立を行いますので、ファイアウォールでは、特定PORTを通過させる設定となります。

また、本コマンドをサポートすることで、これまでUXNET/FTPIIIで制限となっていたNetscape,Mozilla等のPASVコマンドの実装を必須とするFTPクライアントとのFTPファイル転送が可能となります。

PASVコマンド強化機能イメージ

強化機能概要

機能概要は以下のとおりです。

PASVコマンドサポート

FTPクライアント,FTPサーバの各々のFTPシステム定義で、PASVコマンド使用の設定を行うのみで、PASVコマンドによるデータコネクションの確立を行います。

本設定を行った場合でも、相手FTPサーバがPASVコマンドをサポートしていない場合は、自動でPORTコマンドによるデータコネクションの確立処理を行うことができます。

FTPサーバのシステム定義では、データコネクションで使用するPORTを指定可能としていますので、ファイアウォールを導入し、運用頂いているユーザにおいては、本PORTのフィルタリング解除を行う必要があります。

なお、システム定義は、クライアント,サーバで別々に定義しますので、FTPクライアントはPASVコマンド、FTPサーバはPORTコマンドでデータコネクションの確立を行う(データコネクションは全てACOS-2側から確立する)といった運用も可能です。

強化機能特長

  • FTPサーバは従来動作(PORTコマンド)させ、FTPクライアントのみPASVコマンド対応の動作が可能。この時、相手FTPサーバがPASVコマンド未対応の場合、自動的にPORTコマンド動作が可能。

強化機能導入効果

本強化機能を利用することで得られる効果を以下に記載します。

ファイアウォールとの親和性が向上することにより、基幹LANのセキュリティを向上

PASVコマンドを使用することにより、ファイアウォールで不定のPORTに対してフィルタリング設定しないという運用が必要なくなりますので、ACOS-2が位置するネットワークのセキュリティを向上します。

PASVコマンド対応のみのFTPクライアントともFTPファイル転送が可能

従来、FTP接続できなかったNetscape,MozillaといったPASVコマンドを必須とするFTPクライアントとも、ファイル転送が可能となり、FTPクライアントの選択肢が広がります。

強化機能適用リリース

ACOS-2/MP R7.1以降で利用可能

強化機能導入事例

ACOS-2がFTPクライアントの場合、ファイアウォールにてデータコネクション用に外部から内部へ通すポートの設定が不要となり、従来に比べて内部ネットワークのセキュリティを向上できます。

ACOS-2がFTPサーバの場合に、PASV対応のみのFTPクライアントの接続が可能となります。その際のファイアウォールの設定については、ACOS-2のFTPサーバ用に21と7050~7079 (PSPORTの値からPSRANGの範囲だけ)のポートを通すように設定しています。

なお、FTPのソフトウェア構成は、下記のとおりです。

  • FTPC(FTPクライアントジョブ)
    制御コネクションとデータコネクションを確立します。
  • FTPD(FTPサーバ 制御ジョブ)
    ユーザ認証を行うジョブであり、制御コネクションを確立します。
  • FTPS(FTPサーバ データ転送ジョブ)
    ファイル転送を行うジョブであり、データコネクションを確立します。
PASVコマンド強化導入事例

MP R10.1強化

強化機能イメージ

ディレクティブコマンド作成ツールの提供

FTPクライアントのバッチ処理では、ログイン,ファイル送信等の一連の実行処理を、専用のディレクティブコマンドを使って記述します。FTPクライアントは、このディレクティブコマンドをコマンドファイル等より読み込み、処理を行います。

ディレクティブコマンド記述では、一部のパラメータを除いて、基本的に固定の値を指定する必要がありました。

よって、ユーザAPの処理結果に応じて、FTPクライアントに動的な処理を指示する場合、以下の2通りの方法となります。

  • ユーザAPがコマンドファイルにディレクティブコマンドを書き込む
  • ユーザAPがFTP/API機能を利用してFTPを制御する

このため、相手FTPサーバのファイル名等を動的に変更するような運用や、固定値の一部が変更になった場合、ユーザAPを改造する必要がありました。

今回の機能強化では、ディレクティブコマンドを動的に作成するツールを提供します。ユーザが作成する入力コマンドファイルよりコマンドを読み込み、入力コマンドの指定に合わせて情報を埋め込んだコマンドを作成し、出力コマンドファイルに書き込みます。これにより、「ユーザAPの処理結果により、相手ファイル名を決定する」という運用を容易に実現することができます。

また、ディレクティブコマンド作成ツールでは、ファイル転送時の日時(年月日時分秒)を相手ファイル名に埋め込むといった指定も可能となります。

さらに、相手ファイル名・ディレクトリ名に、漢字などの2バイトコードも指定することができます。

ディレクティブコマンド作成ツール

接続可能なFTPサーバの拡大

FTPの規約では、STRUコマンド(ファイルの構造を指定するコマンド)は、FTPサーバとして最低限対応しなければならないコマンドとして定義されています。このため、従来のFTPクライアントでは、STRUコマンドを必ず送信します。

しかし、STRUコマンドに対応していないFTPサーバソフトが増えてきており、ファイル転送業務を実現できないケースがあります。

今回の機能強化では、FTPクライアントにSTRUコマンドを送信する/しないを選択可能とすることにより、STRUコマンドに対応していないFTPサーバと連携した、ファイル転送業務を実現することができます。

これまでのFTPクライアントでは、パスワードを最大8バイトまでしか指定できないため、セキュリティレベルの高い8バイトを超えるパスワードを要求するFTPサーバの場合、ファイル転送業務を実現できないケースがあります。

今回の機能強化では、ユーザシステムのセキュリティポリシーに合わせたファイル転送業務を構築可能とするため、最大32バイトのパスワードを指定可能としています。

接続可能なFTPサーバの拡大

RUNJOB機能導入の簡易化

FTPサーバのRUNJOB機能では、特定のファイルが転送された場合、指定したAP起動JCLマクロにより、ジョブを起動することができます。

このRUNJOB機能で起動されたジョブは、COM-XEに起動応答を行う必要があります。このため、RUNJOB機能で起動されたジョブがFILEMTN等のシステムユーティリティの場合は、COM-XEに起動応答を行うAPを作成する必要があります。

今回の機能強化では、COM-XEに起動応答を行うAPをシステムAPとして用意し、このAPを実行するためのシステムマクロ(\DCFRJRSP)を提供します。利用者はシステムユーティリティやユーザAPに先だって、このシステムAPを起動することで、ユーザAPを作成することなく、容易にRUNJOB機能を導入することができます。

RUNJOB機能導入の簡易化

強化機能概要

強化機能概要は以下のとおりです。

  • ディレクティブコマンド作成ツールの提供
  • 接続可能なFTPサーバの拡大
    ・STRUコマンド未対応サーバとの接続対応
    ・最大32バイトのパスワードに対応
  • RUNJOB機能導入の簡易化

強化機能特長

今回の強化の特長は以下のとおりです。

  • ディレクティブコマンドの自動生成
    ディレクティブコマンド作成ツールにパラメータ(制御変数)の値を指定するだけで、主要なディレクティブコマンドを自動的に生成できます。
  • ファイル名への日時の埋め込み/2バイトコード対応
    ファイル転送時の日時(年月日時分秒)を相手ファイル名に埋め込むことができます。埋め込み形式に制限はなく、例えばファイル名の一部に「月」だけ埋め込むことや、ファイル名の先頭に「年月」、最後に「時分」を埋め込むというようなことも可能です。
    また、相手ファイル名・ディレクトリ名を2バイトコードで指定することができます。シフトJIS/EUCコードに対応しています。
  • 相手FTPサーバ毎にSTRUコマンド設定可能
    相手ホスト登録ファイルとFTPシステム定義ファイルの両方に、STRUコマンド送信の有無を定義することができます。相手ホスト登録ファイルでは、相手FTPサーバ毎にSTRUコマンド送信の有無を指定可能です。
  • 最大32バイトのパスワードに対応
    セキュリティポリシーに合わせて、最大32バイトまでのパスワードを指定することができます。
  • RUNJOB機能簡易化対応のシステムマクロ提供
    システムユーティリティやユーザAPに先だってCOM-XEに起動応答を行うためのシステムマクロを提供します。

強化機能導入効果

導入効果は、以下のとおりです

  • ファイル転送業務におけるコスト削減
    新規にファイル転送業務を構築する場合や、業務の変更が必要となった場合、今回の強化機能を活用することにより、COM-XE起動応答AP作成や、ユーザAPの改造が不要となるため、業務構築におけるコストを削減することができます。
    また、転送するディレクトリ・ファイル名の自由度があがることや、転送可能なオープンサーバ上のFTPサーバが拡大することによる、オープンシステムとの柔軟な連携で、業務構築コストを削減できます。
  • セキュリティの向上
    パスワード長の拡大により、ユーザシステムのセキュリティポリシーに合わせて、ACOS-2のファイル転送業務を構築することができ、システム全体としてのセキュリティを確保することができます。

強化機能適用リリース

ACOS-2/MP R10.1以降で利用可能

強化機能導入事例

この適用例は、ユーザAPが動的に決定したファイル名で相手ホスト(FTPサーバ)へファイルを送信/格納する例です。相手ファイル名以外は、固定の値で運用します。

ユーザAPは動的に相手ファイル名を決定します。例では「PROCLOG」です。この名前をディレクティブ作成ツールにパラメータの値(JCLの制御変数)として渡します。この時、ツールの入力となるコマンドファイルのファイル名とボリューム通し番号も渡します。例ではコマンドファイル「COMMIN」です。

ディレクティブコマンド作成ツールは、コマンドファイル「COMMIN」を読み込みます。ディレクティブコマンドのパラメータ値が「*」の場合は、パラメータとして渡された値に書き直します。例では、%COPYOTディレクティブコマンドのREMOTEパラメータの値が「*」ですので、これを「PROCLOG」に変更します。このようにしてFTPクライアントのバッチ処理を指定するコマンドファイルを作成します。例ではコマンドファイル「COMMOUT」です。

FTPクライアントはコマンドファイル「COMMOUT」を読み込み、記述されているディレクティブコマンド通りに処理を行います。その結果、相手ホストに「proclog」という名前でファイルを作成します。

相手ファイル名以外の「固定値」を変更する場合は、ユーザAPの改造は不要です。コマンドファイルの内容を変更するだけで済みます。

例では、8バイトを超える長さのパスワード(最大32バイトまで)を定期的に変更する運用を行う場合です。LOGINコマンドをコマンドファイル内に定義しておきます。これにより、コマンドファイル「COMMIN」の該当部分を変更するだけで良く、ユーザAPの改造は必要有りません。

ディレクティブコマンド作成ツールと接続可能なFTPサーバの拡大事例