ベンダーのサイトにあるFTPSサーバー(vsftpd)にアクセスする必要があります。ベンダーのftpsサーバーの前にファイアウォールがあります。 FTPSクライアントの前にファイアウォールがあります。
制御トラフィック用にポート990、991、および多分989を開く必要があることを理解しています。
いくつか質問があります。
FTP over SSL(ftps)についての私の理解は、ファイアウォールやNATではうまく機能しないことです。通常のFTPセッションでは、ファイアウォールが必要なポートを動的に開くために、データ接続に関する情報がファイアウォールによって読み取られ、NAT変更されます。その情報がSSLによって保護されている場合、ファイアウォールはそれを読み取ることも変更することもできません。
SFTP(scp)を使用すると、ネットワーク管理者の作業がはるかに簡単になります。すべてがサーバーのポート22で行われ、トランザクションは通常のクライアント/サーバーモデルに従います。
言及されていないことの1つは、ファイアウォールがNATを実行しているかどうか、およびそれが静的であるかどうかNATまたは動的NATです。クライアントマシンに静的アドレスまたは静的にNAT処理されている場合、すべての送信トラフィックを許可し、サーバーがパッシブモード(PASV)でのみ動作すると仮定すると、ファイアウォールを変更する必要がない場合があります。
開く必要があるポートを正確に知るには、次のいずれかを行う必要があります。
a)ベンダーに相談して、システムの構成方法の詳細を入手します。
b)tcpdumpやWiresharkなどのプロトコルアナライザーを使用して、ファイアウォールの外側と内側の両方からトラフィックを確認します。
コントロール接続であるポートを見つける必要があります。あなたは3をリストします、それは私には奇妙に思えます。サーバーがPASV(パッシブ)モードでのみ機能すると仮定すると、割り当てられたDATAポートにサーバーがどのように構成されているかを理解する必要があります。 DATAチャネルを単一の受信ポートにロックしましたか? DATAチャネルを狭い範囲またはポートにロックしましたか?
これらの答えがあれば、ファイアウォールの構成を開始できます。
私は990あたりのポートが暗黙のSSL用だったと思います。これはFTP/SSLを行う古い非標準的な方法でした。最近の「正しい」方法は明示的なSSLです。つまり、ポート21に接続し、SSLをネゴシエートしてからグッズを送信します。ファイアウォール経由の接続をサポートするには、PASVモードを使用し、使用するデータポートをハードセットする必要があります。
サポートしたいデータ接続ごとに少なくとも1つのポートが必要だと思います。それがあなただけの場合、おそらくいくつかの追加ポートを開くだけで問題ありません。具体的には、21000〜21010を使用します。
Vsftpd.confには、次の2行があります(SSLをサポートするための他のすべてのものとともに):
pasv_min_port=21000
pasv_max_port=21010
私のファイアウォールでは、内部静的IPに対して1対1 /静的NATのパブリック静的IPがあり、tcpポート21、21000-21010のみが開いています。
ただし、これは非常に古いスレッドであることは知っています。
SFTPはFTPSとは完全に異なることに注意してください。 (SSH vs SSL)
FTPSは2つの方法で動作します。明示的および暗黙的。最初のハンドシェイクの後、データ転送中に暗号化をスキップするため、明示的では安全性が低くなります(データ暗号化が維持されている場合、PROT Pを使用してサーバー側で構成可能)。デフォルトのExplicit FTPSポートは21です。デフォルトのImplicitポートは990です(ハンドシェイク後、別の方法で構成されていない場合、データ送信用に自動的に989に切り替わります)。通常、ポート21はEXPLICIT FTPSとして受け入れられ、990はIMPLICIT FTPSとして受け入れられますが、実際には、990/989を除いて、構成するどのポートでもEXPLICIT FTPSになり、990/989のみがIMPLICIT FTPSとして受け入れられます。
したがって、あなたの質問に答えるには:-FTPSサーバーの設定に応じて、ポート21または990/989を開く必要があります。ただし、念のため、FTPSサーバー管理者に連絡して指示を求める必要があります。また、パッシブモードでは、他のすべてのFTPソフトウェアと同様に、追加のポート(TCP/UDP)を通常64000〜65000の範囲から開く必要があることに注意してください。
ファイアウォール管理者に恥ずかしい要求を出す必要があるため、基本的にftpsはほとんど役に立ちません。ポートを10に制限することをお勧めします。はるかに、それは哀れになります。
sftpは理論的にははるかに優れています。ただし、実行可能なsftpサーバーが必要です。クライアントを自分のホームディレクトリに制限するもの。
アプリケーションに応じて、HTTPSを検討してください。ファイルのアップロードは本当に簡単で、ダウンロードももちろん簡単です。とにかくFTPをスクリプト化している場合は、HTTPSファイルのアップロードをスクリプト化する方がおそらく簡単です。
自動FTPは、設計上の問題の兆候です。私が自動FTPを実行するために働いた場所を「必要とする」合計で約12のベンダーを扱ったときに(非常に重要なことのために)、そして何十人もの顧客に同じショップでそれを行わせたとき(約の設計失敗)にこれに気付きました私が目にした20の異なる用途)。ほとんどのアプリの人にHTTPSを使用するように説得するのは簡単でした(通常、言及では、「待って、私たちがすでにデータを提供しているWebサーバーからHTTPSで取得するだけではないのです。」 )、「ええ、私たちには既に機能しているように見えるスクリプトがあります。私たちのチームの誰もスクリプトを本当に上手に使っていないため、実際に変更を加えることはできません」(5〜10人のプログラマーのチーム、簡単なプログラムを最初から作成する方法がわからないため、選択した言語で記述できることを理解していないふりをします。
ベンダーがDATA接続ポートの狭いポート範囲を構成していない場合は、構成できる場合があります。次に、そのようなアクセスを必要とするホストのために、あなたの側で同じ範囲を開くことができます。 PASVモードを使用する必要があります。
UNIXのSSHデーモンにはSFTPモジュールがあり、基本的に明示的なSFTPサーバーを作成できるため、ポート22が標準です。 Filezillaで暗黙のFTPサーバーを実行する場合は、任意のポートで実行できますが、注意点があります。FileZillaクライアントを使用する場合、ftpサイトのURLをftps://mysite.com:8086として指定する必要があります。 FileZillaクライアントが提供する個別のポートフィールドにポートを配置するのではなく、.
明示的なオプションの場合、必要なポートは1つだけです。22。暗黙的なオプションの場合、ファイアウォールを制御ポート8086(filezillaサーバーのポート21に内部転送する)に対して開くだけで済みます。