2012年4月2日月曜日

FTPをファイアウォール・フレンドリ・モードに変更する方法 − @IT


Windows TIPS
[User Interface]

FTPをファイアウォール・フレンドリ・モードに変更する方法

デジタルアドバンテージ
2001/05/15

 Windows 2000では、FTPプロトコルを使ったファイル転送用のプログラムとして、Internet ExplorerやエクスプローラのFTPフォルダ機能が用意されている。現在でもFTPは、ファイル転送のための主要なプロトコルとして活用されている。しかしネットワークやファイアウォールの環境によっては、FTPのデフォルトのままの動作モードではインターネット上のFTPサーバへアクセスすることができない場合がある。ここではFTPプロトコルの仕組みや、その動作モードの設定方法について解説する。

 FTPサービスには、ファイルの転送方法に関して2つの動作モードがあり、その用途に応じて使い分けられている。この違いは、FTPのデータ転送用コネクションの確立方法の違いによる。

 FTPでは、「制御用コネクション」と「データ転送用コネクション」の2つのTCPコネクションを使用しながら動作している。ユーザーがFTPコマンドを起動してFTPサーバに接続するという場合、プロトコル的には、クライアント(の任意のポート番号)側からFTPサーバの21番ポート(FTPサービス・ポート)へ向けて、TCPコネクションをオープンする。これが制御用コネクションであり、ユーザーの認証や各種コマンドのやり取りなどはここで行われる(最後にQUITコマンドを送ると、制御用コネクションがクローズされ、FTPの全セッションが終了する)。これとは別にもう1つ、ファイルの内容をやり取りしたり(putやgetコマンド)、ディレクトリのリストを表示したり(dirコマンド)するたびに、「データ転送用コネクション」のためのTCP接� �も新規に作られる。このデータ用のコネクションは、FTPの動作モードによってどちらの方からオープンするかが変わり、これによってファイアウォールの設定などに影響が出てくる。

 FTPの動作モードとしては、以下の2通りがある。


Windows Meでネットワークへのログオンを無効にする方法

■PORTモード/ノーマル・モード/アクティブ・モード
 呼び方がいくつかあるようだが、こちらはFTPの標準的なデフォルトのファイル転送モードである。もともとデフォルトの動作なので特に決まった呼び方はないのだが、次に述べる「PASVモード」という用語と対比して、PORTモードとかアクティブ・モードなどと呼ばれることがある。「PORT」とは、FTPプロトコルでやり取りされるコマンドの1つで、データ転送用のポートの番号をやり取りするために使われている(注:ユーザーが指定するputやgetコマンドは、これらの低レベルなFTPプロトコルのコマンドを組み合わせて実現されており、プロトコル・レベルではPUTやGETというコマンドがあるわけではない)。

 データ転送用のTCPコネクションは、FTPサーバの20番ポート(FTPデータ・ポート)からFTPクライアントに向けてオープンされる。つまり、FTPのクライアント・プログラムを実行しているほうが、FTPサーバからのTCPコネクションのオープンを待ち受けしているのである。これは、制御用コネクションの向きとは逆であることに注意されたい。この場合、待ち受けするポート番号はランダムだが、サーバ側のポート番号は(一般的なFTPサーバでは)20番を使っている。よって、このようなコネクションがファイアウォールを通過するためには、サーバ側からクライアント側に向けて、「ソースポート番号=20番、宛先ポート番号=任意」という着信パケットが通過するようにパケット・フィルタを開けておく必要がある。

■PASVモード/パッシブ・モード/ファイアウォール(フレンドリ)モード/Proxyモード
 以上の方法とは逆に、FTPのクライアント側からFTPサーバの側へ向けてデータ転送用のTCPコネクションをオープンするのがこのPASVモードである(ポート番号は双方とも任意)。ネットワークの途中にファイアウォールが介在する場合でも、内部のネットワークからインターネット側へ向けたコネクションになるので、通常は(大抵のファイアウォール設定では、この方向は制限をかけていないので)何の制約もなく利用することができるだろう。そのため、「ファイアウォール(フレンドリ)モード」とか「PASVモード」などと呼ばれる。PASV(Passive、受身)もFTPプロトコルのコマンドの1つであるが、PORTが自分の待ち受けしているポート情報� ��相手に通知するコマンドであるのに対して、PASVでは相手に対して、待ち受けモードになるように指示するためのコマンドである。PASVコマンドを受け取ったFTPサーバは、待ち受けモードでスタンバイして、クライアントからのデータ転送コネクションのオープン要求が届くのを待つことになる。


あなたは、ルータを教えて何を伝えることができます

 もともとPASVコマンドは、2つのFTPサーバ間でファイルを転送する場合に、片方のサーバをPORTでオープンし、もう片方をPASVでオープンするために用意されていた機能であるが(FTPには、1つのFTPクライアントから同時に2つのFTPサーバに接続して、両者の間でファイルを転送するという機能が用意されていたが、一般的にはほとんど使われていない)、現在ではこのように単に転送の向きを反対にするためのコマンドとして利用されている。

 FTPにおける以上2つの転送モードは、たいていの場合は特に意識しなくても問題はないだろうが、ファイアウォールの設定ポリシーによっては、どちらか一方しか使えない場合がある。一般的には、たいていのルータ(ダイヤルアップルータやNATをサポートしたブロードバンドルータなども含む)では(デフォルトでは)どちらのモードでも使えるようになっているが、インターネット側からの不正なアクセスなどを防ぐために、制限をきつく設定したファイアウォール(やルータ)では、インターネット側からのTCPコネクションのオープンを許さないようにすることがあり(内部からインターネット側は許可する)、そのせいでPORTモードを使ったデータ転送ができなくなってしまうのである。つまり、上記の2つの転送方法のうち、PASV モードならばパケットは通過するが、PORTモードのデータ転送ができなくなるのである。データ転送コネクションがオープンできなくなると、FTPサイトへ接続してログインすることはできるが(ログインは制御用コネクションでやり取りされる)、その後のファイル名の一覧表示やファイルの送信/受信が一切できなくなる(注意:ファイル一覧の表示にも、個別のデータ転送コネクションが必要)。


アクティブデスクトップを復元する方法

 逆にいうと、FTPをPASVモードでのみ運用するようにすれば、ファイアウォールにおけるパケット・フィルタの制限をより強くすることができ(外部からの接続要求を認める必要がなくなる)、より安全性が増すことになる。別稿「常時接続時代のパーソナル・セキュリティ対策(第2回)――Routing and Remote Accessサービスのパケット・フィルタリング機能――」では、世の中のほとんどのFTPクライアントのデフォルトがPORTモードであることに考慮して、ソース・ポート番号として20番を持つ、インターネット側からのTCPの接続要求をわざと通すように設定する方法を紹介した(「5.パケット・フィルタの設定(1)」の設定ポリシーの解説を参照)。しかしこの設定方法では、FTP以外でも、「ソースポート番号=20番」のパケットは、パケット・フィルタを通過してしまうという問題点があった。つまり、ソース・ポート番号が20番で、宛先ポート番号に特定のサービスのポート番号を持つパケットを作成すれば、このフィルタをすり抜けて、サーバ内部のサービスへアクセスが可能となってしまうのである。実際にはこのタイプのクラッキング� �非常にまれであり(手間がかかるので、もっと脆弱なマシンを狙うほうが簡単だから)、実用上はほぼ問題はないのだが、理想的にはこのようなパケットもすべて禁止しておきたいところだ。そのためには、クライアント側でFTPを使うなら、PASVモードだけに限定してもらう必要がある。

 Windows 9x/Me/2000では、FTPクライアントとして、(1)エクスプローラのFTPフォルダ機能、(2)Internet Explorerのftpアクセス機能、(3)コマンド プロンプトのftp.exe機能、の3つがある。しかし最後のftp.exeは残念ながらPASVモードはサポートしていないのでPASVモードが必要な場合は、エクスプローラかInternet Explorer、もしくはその他の高機能なFTPクライアント・アプリケーションなどを利用するべきだろう。

 ところで、(1)と(2)は、実体は同じものであり、オプションの設定も共通となっているので、以下でまとめて解説する。ただし実際にはIEのバージョンによってインプリメント方法が異なっているので、ここではIE 5.5(IE 5.5 SP1も含む)が導入された環境について解説するにとどめる。それ以前のバージョンのIEが導入されているケースについては、マイクロソフトのサポート技術情報にある「[IE] FTP サイトへのデータ転送モードについて」を参照されたい。


動作モードの設定

 FTPの転送モードを設定するには、Internet Explorerの[ツール]−[インターネット オプション]−[詳細設定]にある、2つのオプションを設定する必要がある。IE 5.0までは[FTP サイト用のフォルダ ビューを使用する]の方しかなく、IE 5.5になって新しく[ファイヤウォールおよび DSL モデムとの互換性を保つために PASV モードをサポートする]の方が追加されたので、やや面倒になっている。

 2つのオプションの組み合わせによる効果は以下のとおりである。PORTモードになるかPASVモードになるかは、だけではなく、の設定の影響も受ける。はファイルの表示の方法を変えるだけでなく、転送モードの変更も伴っているのである。

オプションによる表示方法の違い

 [FTPサイト用のフォルダ ビューを使用する]というオプションを変更すると、転送モードが変わるだけでなく、表示の方法も変わることになる。

 このチェックボックスはデフォルトでオンとなっており、FTPの表示は、エクスプローラと同様に、ツリー・ビューとファイルの一覧が表示される。一般的にはこのツリー・ビュー形式で、PASVモードにしておけばよいだろう。

 次の画面は、[FTPサイト用のフォルダ ビューを使用する]オプションをオフにして、Webベースの表示形式にしたところ。従来のIE 5.0までは、このモードにするとFTPがPASVモードに変更されることになっていた。従来との互換性が高いモードであるが、ファイルの送信(アップロード)はできない。ファイアウォール環境でも利用しやすいモードだが、送信が行えないのでやや用途が限定されることになる。


 
この記事と関連性の高い別のWindows TIPS

更新履歴
【2001/06/22】■PORTモード/ノーマル・モード/アクティブ・モード」の見出し部分において「データ転送用のTCPコネクションは、FTPサーバの側からFTPクライアントの20番ポートに向けてオープンされる。」としていましたが、正しくは、「データ転送用のTCPコネクションは、FTPサーバの20番ポート(FTPデータ・ポート)からFTPクライアントに向けてオープンされる。」の誤りでした。お詫びして訂正させていただきます。
 

TechTargetジャパン

Windows Server Insider フォーラム 新着記事



キャリアアップ



These are our most popular posts:

Firewall And Proxy Server HOWTO Mark Grennan, mark@grennan ...

ファイアウォールを理解する 2.1 ファイアウォールのポリシー 2.1.1 セキュリティポリシー の作成方法 2.2 ファイアウォールの ... ファイアウォールは、今までインターネット上での 究極のセキュリティとして の地位を得て来ました。 ... もし、あなたの ファイアウォールの 知識の全てがこの文書に基づくものであるならば、仕事を ファイアウォールに賭けない で .... プライベートネットワークからインターネットへ到達するには、 ファイアウォール ( Unix) サーバにログオンしなければなりませんでした。 ..... 内側の IP 番号を割り当て ます。 read more

ソケット入門(上)

当時、ソケットプログラミングを1から学習しなければならない状況になってしまった 時には、すでに仕事を受注した後で、納期も迫っている状態でした。そこで、急いで ... このように、現在インターネット上で通信アプリを作成する際にソケットは不可欠なもの です。 read more

2006年12月 - りょーちの駄文と書評

2006年12月28日 ... で、最も簡単な方法とは PukiWiki に付属しているproxy.phpを利用することである。 ... また、ファイアウオールの内側からインターネット上のデータを取得するために用いる WebサーバはWindows系PCで設置が最も簡単な .... そのマリアの元にポール・ダラム という保険会社を経営する老人がやってきて意外な仕事を依頼した。 read more

Linuxで作るファイアウォール[パケットフィルタリング設定編](1/2)

2001年12月18日 ... しっかりと不要なパケットをブロックできれば、ファイアウォールの内側の安全度はより 向上する。パケットの ... 前回はNATの設定方法を説明しました。これで ... 必要な パケットだけにDMZ上の目的のホストやサービスへアクセスを許可する( ファイアウォールを通過させる)のが、このFORWARDチェインの仕事です。 ... インターネット上のホストから、Webサーバへのアクセスを許可するには次のコマンドを 実行します。 read more

Related Posts



0 コメント:

コメントを投稿