ここから本文です

FTPサーバーの接続に関して

may********さん

2008/8/712:50:33

FTPサーバーの接続に関して

FTPサーバーを構築途中なのですが、ポート開放の所で詰まってしまいました。
設定(ルータ・ファイアウォール)を見直したのですがポートが開放できなくて困っています。
httpサーバーを構築した際には、80番ポートは開放できました。以下の環境でFTPサーバを構築しました。
【OS】Windows XP
【CPU】Pentium3
【メモリー】512MB
【FTPサーバーソフト】Tiny FTP Daemon
【FTPクライアントソフト】FFFTP・コマンドプロンプトのFTPコマンド
【ルータ】BBR-4HG(バッファロー)
【ファイアウォール】WindowsXPについているもの
【試したこと】
・ルータ、ファイアウォールの設定
・パソコンの再起動
・プライベートアドレス、127.0.0.1での接続(ちゃんと接続できました)

自分では、必要事項は書いたつもりですが記入漏れがあればご指摘ください。
検索で調べてみたのですが、解決できませんでした。お知恵をお貸しください。
よろしくお願いいたします。

補足TCP21番を開放できたのですが、相変わらず20番が開放できません。
21番を開放した時と同じ手順をふんでいるのですが、どうしてでしょうか?

FTPクライアント(FFFTP)ので接続を押すと「接続しました」が表示された後に、「接続できません」と表示されます。

閲覧数:
15,075
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

gro********さん

2008/8/723:39:39

FTPは、古典ですが少々特殊なプロトコルで、コマンドのやりとりをする制御用ポートと、実際にデータを転送するデータ転送用ポートの2つが必要で、その両方がルータで開放されていないとファイルの転送はできません。

制御用のポートは、通常サーバ側の21番を使用するので、ルータでサーバ宛の21番ポートを開放してやればコマンドのやりとりだけは行うことができます(lsすらできないので意味がないですが)
問題はデータ転送用のポートで、ややこしいことに、これにはアクティブFTPとパッシブFTPの2種類が存在します。

アクティブFTPは、データ転送用にサーバ側の20番ポートを使用します。しかしこれは、クライアントからサーバの20番に接続しに行くのではなく、サーバ側の20番「から」クライアントの1024以上のポートへ接続をしに来ます。つまり、制御コネクションとは逆向きの通信となっているわけです(通常クライアントからサーバへ接続しに行くのに対して逆向きの接続を行うので、バックコネクションと呼んだりします)。

それに対しパッシブFTPは、制御コネクションと同じように、クライアントからサーバへの接続となります。

手持ちのBBR-4HGで確認してみたのですが、FTPを指定すると自動的に20,21番ポートを開放するようです。ということは、アクティブFTPに対応していると思われます。なので、使用するクライアントでは、アクティブFTPを使用するように指定してください(ただしファイル転送するにはクライアント側のルータの設定が必要。詳細は下記の箇条書きで)。FFFTPでももちろん指定できます。ちなみに、DOS窓のFTPコマンドはアクティブFTPしか使用できません。

ただし、FTPは古典の割にかなり難解な上セキュアなプロトコルではないので、それなりのセキュリティホールを抱えることになる覚悟はしておいてください。それぞれのFTPの特徴を箇条書きにしてみます。

・アクティブFTP
・データコネクションは、サーバ側の20番から、クライアント側の1024以上の任意のポートに接続される。
・クライアント側で、FTPサーバからのコネクションに対応できるよう1024以上のポートを開放しておかないといけない(開けるポートは複数あり、それはFTPサーバの仕様により異なり、固定するにはそれなりの知識が必要)
・サーバ側は、21番の受けと、20番からの発信のみを許可するればよいので、サーバ側のセキュリティが上がる。
・クライアント側は、不特定のポートを常に開放する必要があるので、セキュリティレベルが下がる。

・パッシブftp
・データコネクションは、クライアント側から、サーバ側の1024以上の任意のポートに接続する。
・サーバ側では、クライアントからのデータコネクションに対応できるよう、1024以上のポートを開放しておかないといけない。
・クライアント側ルータでは特に設定は必要ないので、クライアントのセキュリティレベルが下がる心配はない。
・サーバ側で不特定のポートを開放しておかなければいけないので、サーバ側のセキュリティはかなり下がる。

どっちを取るかは難しいところですが、常に電源の入っているサーバ側のセキュリティを重視したほうがよいと思うならばアクティブFTPを使用するとよいでしょう。
パッシブFTPのサーバをBBR-4HGで使用する場合は、DMZにサーバを置いてiptablesで防御を固めるか、がんばってチューニングしてクライアントが接続しにくるポートを限定してポート開放するかしないと、いい攻撃の的になります。

余計なお世話ですが、民生機のブロードバンドルータでFTPサーバを公開するのは、今の時代非常に危険だと思います。業務用のファイアーウォールには、クライアントの接続の仕方で自動的にポートを開け閉めするALGといったような機能が備わっているのであまり気にかけることはないのですが。

ファイル転送がしたいのであれば、webDAVのような、特定のポートのみを使用するサーバアプリを使った方がよいかと思います。
どうしてもFTPを使用したい場合は、業務で使用されるようなファイアーウォール専用機をお薦めします。100Mbps対応でも3万程度で買えます(Netscreen5XT等)。

蛇足ですが、自宅サーバをインターネットに公開される方は多いようですが、大変なリスクを背負っていることを忘れないようにしてください。何らかの手段でサーバが乗っ取られた場合、様々な攻撃の踏み台になって多数の人に甚大な迷惑をかける恐れがあることを、忘れずに。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

tok********さん

2008/8/714:15:03

TCPの21番ポートを開放する。
FTPクライアントからはPASVモードでデータの転送を行う。
ftp じゃあ passwd 付きにしてもネットに生で passwd がながれるのであまりよろしくありません。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる