セッションは確立され、ユーザ名・パスワードも通るのですが、その後ファイルリストの取得などが出来ません。
恐らく 12345 ポート以外での通信があるんだろうと思い
http://www.atmarkit.co.jp/fwin2k/win2ktips/649ftpport/ftpport.html
↑ここを読んだのですが、
「ファイアウォールのFTP処理に対して、ポート番号を明示的に指示する」という部分の解釈に困っています。
FTP 以外の通信をすべて閉じたいため、上記の条件で開けるべきファイアウォールの設定を教えてください。
ちなみに、ファイアウォールを完全開放してテストしたところ問題なく FTP 通信が出来ました。
ftpでは21/tcp(今回は12345/tcpですね)以外にもポートを使用します。ファイルリストの取得やデータの転送は別のポートで行われますので、今回のような事象になります。しかもこのポートは通常、ランダムに決定されるのでファイアウォールには優しくないです。
http://support.microsoft.com/default.aspx?scid=kb;ja;283679
こちらを参考にすると、ポートの範囲はデフォルトで 1024 ~ 5000を使うようですので、セキュリティ的に問題がないのであればこれらのポートも開けてみてください。うまく行かないようであれば、FTPクライアントをpassiveモードにして試してみてください(使用するポートをサーバが指示するモードです)。
製品次第ですが、賢いftpはサーバとクライアントのやりとりを見張っていて、アクティブに開くべきポートを判断してくれるものもあります。一度お使いのファイアウォール製品の仕様も確認することをおすすめします。
http://y-kit.jp/inet/page/port.htm
FTPではポートを二つ使います。
20番はあいてますでしょうか?
20 ftp-data ファイル転送(データ本体)
21 ftp ファイル転送(コントロール)
21 番ポート以外で立てていても 20 番は開けなければいけないのでしょうか
@ITの記事を見ると制御ポートの変更を行っているようですね。
しかし、FTPは制御ポートのほかにデータポートとして20/TCPを使用しています。
TCPの20番がファイアウォールでふさがれていないかチェックしてみてください。
20番を空けてみましたが、通信が出来ません。
クライアントソフトはとりあえず FFFTP を使用しています。
FTPは20と21を使います。
それぞれ実データとヘッダや細かいやり取りですが、両方とものポートを変更して12345と12346などにしないとだめでしょう。
IIS の FTP サーバですが、このような設定が可能な方法が見当たりません。
(ftp-data用のポートをどこで変更するのかが分からない)
最後の部分で、FireWallを完全開放すればOKだったとのことですが、IPアドレスでのフィルタ(FTPサーバ~FTPクライアンツ間)は適用されているということですよね?
IPアドレスのフィルタルールで引っかかっているのではなく、ポート番号のフィルタルールで引っかかっているというところまで確認できているのであれば、FireWallのRejectログを確認することで、該当の通信が、どのポート番号を使用して引っかかったのかがわかると思います。
FTPサーバー側、FTPクライアント側、それぞれで双方向のポート番号の組み合わせがあるため、4つの定義が必要となります。
またPassiveモードも考慮するかにもよります。
具体的には、こちらのサイト(ルーターのフィルタ設定)が参考になると思います。
http://www.bcom.nec.co.jp/comstarz/router/appnote/filter.htm#FTP
ルータのフィルタ設定で色々なものを試そうと思います。ありがとうございます。
ftpでは21/tcp(今回は12345/tcpですね)以外にもポートを使用します。ファイルリストの取得やデータの転送は別のポートで行われますので、今回のような事象になります。しかもこのポートは通常、ランダムに決定されるのでファイアウォールには優しくないです。
http://support.microsoft.com/default.aspx?scid=kb;ja;283679
こちらを参考にすると、ポートの範囲はデフォルトで 1024 ~ 5000を使うようですので、セキュリティ的に問題がないのであればこれらのポートも開けてみてください。うまく行かないようであれば、FTPクライアントをpassiveモードにして試してみてください(使用するポートをサーバが指示するモードです)。
製品次第ですが、賢いftpはサーバとクライアントのやりとりを見張っていて、アクティブに開くべきポートを判断してくれるものもあります。一度お使いのファイアウォール製品の仕様も確認することをおすすめします。
1024~5000を解放することでうまく行きました。
なるほど、FTP自体が一般的にこのような仕様なのですね。
20番ポートを空けてもうまく行かない理由が分かりました。ありがとうございます。
この回答を参考に
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000460....
このページを引き出すことが出来ました!!
ありがとうございます。
Port20-21 の固定概念がパッシブモードだと通用しないのが良く理解できました。
原因は、FTPのモードの違いによります。
http://www.atmarkit.co.jp/fwin2k/win2ktips/118ftpmode/118ftpmode...
http://support.microsoft.com/?scid=kb;ja;323446&spid=2073&am...
FTP IISサーバ側
Listen *:21 <-------------- Connect *:21 Client PC
<-------------- PORT XXX
Connect *:20 --------------> Listen *:XXX
http://members.jcom.home.ne.jp/j-klein/security/network-proto-ft...
IIS 側からpassiveモードに使用するポートを明示することは可能なのでしょうか
RFC 959 ファイル転送プロトコル(FTP)
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
データポート:標準: 20
制御ポート :標準: 21
IIS
制御ポートが 12345の場合データポートは制御ポート-1
が一般的
*:12345 <-------- Client PC
<---------- Port XXX
*:12344 ---------> *:XXXX
なるほど、本来であればこのような動きになるはずなんですね。。。ありがとうございます。
ただ、IISの動きを見ていると20番だけでは明らかに不足しています。RFCに準拠しているとは思えません。
>passiveモード
PORT/PASVモードの制御はクライアントが手動で
行います。
FFFTPを利用している場合、
接続プロパティーに PASVモードの設定があります。
1.92a よりディフォルトがPASVモードになっています。
ありがとうございます。
5番の方の回答をヒントに目的までたどり着けましたので、終了いたします。
ありがとうございました。
1024~5000を解放することでうまく行きました。
なるほど、FTP自体が一般的にこのような仕様なのですね。
20番ポートを空けてもうまく行かない理由が分かりました。ありがとうございます。
この回答を参考に
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000460....
このページを引き出すことが出来ました!!
ありがとうございます。
Port20-21 の固定概念がパッシブモードだと通用しないのが良く理解できました。