FTPなどを使用すると20.21のポートを使用しますが、
セキュリティの関係で20,21を閉じている場合は
パッシブモードにすれば大丈夫というのを聞きました。
パッシブモードを調べてみたのですが通信などは
クライアントの指定したものでいけるみたいですが
それまでの通信の確立などは21番を使っているように思われます。
20,21番が閉じている状態でFTPを行うにはパッシブモードでOKといわれたのですが
解釈がまちがっているでしょうか。
http://www.aconus.com/~oyaji/router/ftp.htm
21番が閉じていると通信の確立ができないためパッシブモードでも接続できません。
"20番が閉じている状態でFTPを行うにはパッシブモードでOK" かと思います。
「ftpサーバで20番から外部の任意のポートへの接続」が閉じられている場合はパッシブモードにするとOKになる「ことがある」・・・くらいが正確かと。
ありがとうございます。
外部から接続するのか内側から接続するのかの違いですね。
参考にさせていただきます。
yoshihi6 さんの示されている URL にも解説されていますが、FTP の本来の動きとしては、
・サーバの 21 番ポートへ接続する。
・実際にデータを転送するときに、クライアントが PORT コマンドで
指定したポート番号へ、サーバの 20 番ポートから接続する。
ということになります。ポイントは TCP の接続が「サーバ→クライアント」になる点です。
これだと、Firewall を構築する時に厄介だ、ということでパッシブモードというものが使われるようになったのですが、確かにデータ転送に使う TCP のコネクションが「クライアント→サーバ」にはなったのですが、そのときのポート番号は「不定」です。FTP プロトコルの中で、サーバが返してきたポート番号に接続する、という動きになります。
なので、初期のパケットフィルタ型 Firewall では、「内側から外側への接続はすべて OK」としないと、パッシブモードでも繋がりませんでした。
近頃の Firewall では、FTP の中身をチェックして、必要なポートを自動的に開けてくれる、という機能を持っていたりします。この場合、ポート番号を直接指定して許可するのではなく、「FTP を許可」といった指定になることが多いです。
基本的にはポートなどはかわらないけど
どちらからコネクションを張るかという違いなわけですね。
とても参考になります。
ありがとうございました。
なるほど。
双方向で開いている必要はないけど
最低でも21番が外向きに空いている必要があるわけですね。
参考にさせていただきます。