web-dev-qa-db-ja.com

FTPSを使用する場合、どのファイアウォールポートを開く必要がありますか?

ベンダーのサイトにあるFTPSサーバー(vsftpd)にアクセスする必要があります。ベンダーのftpsサーバーの前にファイアウォールがあります。 FTPSクライアントの前にファイアウォールがあります。

制御トラフィック用にポート990、991、および多分989を開く必要があることを理解しています。

いくつか質問があります。

  1. ベンダーのファイアウォールの観点からそれを見るとき、これらのポートはインバウンドとアウトバウンドの両方のトラフィックのために開かれるべきですか?
  2. DATAチャネルのポートはどうですか?
  3. 1000を超えるすべてのポートを開く必要がありますか?
  4. インバウンドとアウトバウンドの両方のトラフィックにそれを行うべきですか?
33
user3293

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チャネルを狭い範囲またはポートにロックしましたか?

これらの答えがあれば、ファイアウォールの構成を開始できます。

19
pcapademic

私は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のみが開いています。

29
David

ただし、これは非常に古いスレッドであることは知っています。

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の範囲から開く必要があることに注意してください。

11
Marin

ファイアウォール管理者に恥ずかしい要求を出す必要があるため、基本的にftpsはほとんど役に立ちません。ポートを10に制限することをお勧めします。はるかに、それは哀れになります。

sftpは理論的にははるかに優れています。ただし、実行可能なsftpサーバーが必要です。クライアントを自分のホームディレクトリに制限するもの。

アプリケーションに応じて、HTTPSを検討してください。ファイルのアップロードは本当に簡単で、ダウンロードももちろん簡単です。とにかくFTPをスクリプト化している場合は、HTTPSファイルのアップロードをスクリプト化する方がおそらく簡単です。

自動FTPは、設計上の問題の兆候です。私が自動FTPを実行するために働いた場所を「必要とする」合計で約12のベンダーを扱ったときに(非常に重要なことのために)、そして何十人もの顧客に同じショップでそれを行わせたとき(約の設計失敗)にこれに気付きました私が目にした20の異なる用途)。ほとんどのアプリの人にHTTPSを使用するように説得するのは簡単でした(通常、言及では、「待って、私たちがすでにデータを提供しているWebサーバーからHTTPSで取得するだけではないのです。」 )、「ええ、私たちには既に機能しているように見えるスクリプトがあります。私たちのチームの誰もスクリプトを本当に上手に使っていないため、実際に変更を加えることはできません」(5〜10人のプログラマーのチーム、簡単なプログラムを最初から作成する方法がわからないため、選択した言語で記述できることを理解していないふりをします。

2
carlito

ベンダーがDATA接続ポートの狭いポート範囲を構成していない場合は、構成できる場合があります。次に、そのようなアクセスを必要とするホストのために、あなたの側で同じ範囲を開くことができます。 PASVモードを使用する必要があります。

1
Chris W. Rea

UNIXのSSHデーモンにはSFTPモジュールがあり、基本的に明示的なSFTPサーバーを作成できるため、ポート22が標準です。 Filezillaで暗黙のFTPサーバーを実行する場合は、任意のポートで実行できますが、注意点があります。FileZillaクライアントを使用する場合、ftpサイトのURLをftps://mysite.com:8086として指定する必要があります。 FileZillaクライアントが提供する個別のポートフィールドにポートを配置するのではなく、.

明示的なオプションの場合、必要なポートは1つだけです。22。暗黙的なオプションの場合、ファイアウォールを制御ポート8086(filezillaサーバーのポート21に内部転送する)に対して開くだけで済みます。

0
djangofan