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


33

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

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

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

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

回答:


19

FTP over SSL(ftps)についての私の理解は、ファイアウォールとNATではうまく機能しないということです。通常のFTPセッションでは、ファイアウォールが必要なポートを動的に開くために、データ接続に関する情報が読み込まれ、NATがファイアウォールによって変更されます。その情報がSSLで保護されている場合、ファイアウォールはそれを読み取ったり変更したりできません。

SFTP、またはscpを使用すると、ネットワーク管理者の仕事がはるかに簡単になります。すべてがサーバーのポート22で行われ、トランザクションは通常のクライアント/サーバーモデルに従います。

言及されていないことの1つは、ファイアウォールがNATを実行しているかどうか、およびそれが静的NATまたは動的NATであるかどうかです。クライアントマシンが静的アドレスを持っている場合、または静的にNATされている場合、すべての送信トラフィックを許可し、サーバーがパッシブモード(PASV)でのみ動作する場合、ファイアウォールを変更する必要はありません。

開く必要があるポートを正確に知るには、次のいずれかを行う必要があります。

a)ベンダーに相談して、システムの構成方法に関する詳細を入手します。

b)tcpdumpやwiresharkなどのプロトコルアナライザーを使用して、ファイアウォールの外側とファイアウォールの内側の両方からのトラフィックを調べます

どのポートが制御接続であるかを調べる必要があります。3をリストしますが、これは私には奇妙に思えます。サーバーがPASV(パッシブ)モードでのみ動作すると仮定すると、割り当てられたDATAポートに対してサーバーがどのように構成されているかを把握する必要があります。データチャネルを単一のインバウンドポートにロックダウンしましたか?データチャネルを小さな範囲またはポートにロックダウンしましたか?

これらの回答により、ファイアウォールの構成を開始できます。


3
パッシブモードのFTPSは、ポート番号1024で制御ポートを使用するため、非パッシブよりもファイアウォールの方が適切に機能します。クライアントはポート21にどの上位バインドポートを開くかを指示するため、クライアントが「制御はポート2000または2001にある」と言うように構成でき、サーバーは送信ポート2000または2001を開きます。ほとんどのFTPクライアントは特定の範囲の定義をサポートします「制御」用のポートの数。これにより、ファイアウォールの定義が容易になります。
djangofan 09

27

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を使用し、tcpポート21、21000-21010のみを開いたパブリック静的IPを持っています。


10

ただし、これは非常に古いスレッドであることがわかります。

SFTPはFTPSとは完全に異なることに注意してください。(SSHとSSL)

FTPSは2つの方法で動作します。明示的および暗黙的。明示的は、最初のハンドシェイクがデータ転送中に暗号化をスキップした後(データ暗号化が維持される場合、PROT Pでサーバー側で設定可能)、暗黙的はハンドシェイク後もデータの暗号化を保持するためです。デフォルトのExplicit FTPSポートは21です。デフォルトのImplicitポートは990です(ハンドシェイク後に、異なる設定がされていない場合、データ送信のために自動的に989に切り替わります)。通常、ポート21はEXPLICIT FTPSとして受け入れられ、990はIMPLICIT FTPSとして受け入れられますが、実際には、990/989を除く990/989のみがIMPLICIT FTPSとして受け入れられますが、設定するポートは990/989を除きます。

したがって、あなたの質問に答えるには:-FTPSサーバーの構成に応じて、ポート21または990/989を開く必要があります。ただし、念のため、FTPSサーバー管理者に連絡して指示を求める必要があります。また、他のすべてのFTPソフトウェアと同様に、パッシブモードでは、通常64000〜65000の範囲の追加ポート(TCP / UDP)を開く必要があることに注意してください。


2

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

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

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

自動FTPは設計上の問題の兆候です。これは、自動FTP(非常に重要なことのために)を行うために作業した場所を「必要とする」合計約12のベンダーと取引するとき、およびその同じショップで何十もの顧客がそれを行うとき(約私が目撃した20の明確な用途)。ほとんどのアプリ担当者にHTTPSを使用するように説得するのは簡単でした(通常は、「データを提供しているWebサーバーからHTTPSで取得するだけではないという理由はありませんか?」 )、「まあ、すでに動作していると思われるこれらのスクリプトがあり、私たちのチームの誰もスクリプティングが得意ではないので、実際に変更を加えることはできません」(5-10プログラマのチーム、


1

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


-1

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

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


6
質問はSFTPではなくFTPSについて尋ねました。
マイケルラング

-7

ftpsがsftpと同じ場合、ベンダーのサイトのポート22にアクセスする必要があるだけです。

最後に、ポート22の発信および関連する着信トラフィックを許可するようにファイアウォールを構成する必要があります。これにより、ポート22での最初の発信接続に関連する着信ポートでの通信が可能になります。


11
SFTPはftps(codeguru.com/csharp/.net/net_general/internet/article.php/…)とは異なります。SFTPは、SSHで使用されるファイル転送プロトコルです。FTPSはSSLを使用したFTPであり、FTPSは新しいランダムポートで新しいDATA接続を開始するため、ファイアウォールの背後に展開するのが困難になりますが、この状況ではファイアウォールを削除できません。

2
ごめんなさい 他の人が同じ混乱を持っている場合に備えて、この投稿は残しておきます。
ブレント

これは非常に一般的な混乱です。ファイアウォール側から見ると、sftpはログインアクセスを目的としたプロトコル上に構築されていることを除いて、許可するのがはるかに簡単です。重要な独立した検証なしで許可する独立したセキュリティグループ向けのネグリジェント。システム管理者が信頼できないクライアントのために妥当なsftpサーバーを見つけて構成するのが難しい。混乱が非常に一般的であるため、sftpまたはftpsの説明では、他のプロトコルについて言及する必要があります。
カリート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.