Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ネットワーク (Network)

FTP・FTPS・SFTPの違いや特徴について

投稿日:2021年2月22日 更新日:

FTP・FTPS・SFTPの違いや特徴について

<目次>

(1) FTPについて
 (1-1) FTPの概要と仕組み
 (1-2) FTPのセキュリティ面について
 (1-3) ファイアウォール設定
(2) FTPSについて
 (2-1) FTPSの概要と仕組み
 (2-2) ファイアウォール設定
(3) SFTPについて
 (3-1) SFTPの概要と仕組み
 (3-2) SFTPのセキュリティ面について

(1) FTPについて

(1-1) FTPの概要と仕組み

FTPは「File Transfer Protocol」の略で、データの送受信に使われている非常に重要なプロトコルです。FTPは「■コマンドチャネル」と「■データチャネル」と呼ばれる2つのプロトコルを使って通信をします。

■コマンドチャネル
「コマンドチャネル」は別名「制御チャネル」とも呼ばれ、一般的にはFTPサーバ(接続される側)のサーバの「21番ポート」で動作しており、クライアントからの接続を許可したり、FTPのクライアント←→サーバ間の簡単なコマンドの交換や応答を担当しています。

一例として、FTPのユーザ認証をする際の「USER」や「PASS」コマンドはコマンドチャネルにより受け渡しされます。コマンドチャネルは、基本的にはクライアント側から「QUIT」コマンドが送信されるか、それ以外の何らかの理由で切断されるまでは存続し続けます。

■データチャネル
「データチャネル」には2つのモードがあり、「アクティブモード」と「パッシブモード」があります。概要について別記事(⇒アクティブとパッシブの違い)でご紹介していますので、もしよければご覧ください。

(図111)データチャネル=アクティブモードの図

(図113)データチャネル=パッシブモードの図

「パッシブモード」の場合はFTPクライアント(ランダムなポート)⇒FTPサーバ(ランダムなポート)へとアクセスします。
 
「アクティブモード」の場合は、FTPサーバ(一般的には20番ポート)⇒FTPクライアント(指定のポート)へとアクセスします。
 
そしてこの「データチャネル」は実際のデータのやり取りを担当しています。コマンドチャネルとは異なり、データチャネルは送受信が完了するとクローズされます。
 

目次にもどる

(1-2) FTPのセキュリティ面について

FTPのコマンドチャネルやデータチャネルは「暗号化」をしていないため、傍受されて読み取られるリスクがあります。この脆弱性を利用した攻撃を「man-in-the-middle attack」と呼ばれています。

目次にもどる

(1-3) ファイアウォール設定

■サーバ側
・21番ポートの受信を許可する
・パッシブモード用のランダムポート範囲(例:3000~3500)の受信を許可する

■クライアント側
・21番ポートへの送信を許可する
・パッシブモード用のランダムポート範囲(例:3000~3500)への送信を許可する

FW設定を「アクティブモード」と「パッシブモード」で分けて見ると次のようになります。

(図112)

(図114)

目次にもどる

(2) 実施手順

(2-1) FTPSの概要と仕組み

FTPSはFTPの通信をSSL(⇒SSLとは?)を使って暗号化し、セキュリティを強化した技術です。

データの送受信に関しては基本的にFTPと同じです。FTPSには大きく2つの種類があります。
・Explicit(明示的)モード
・Implicit(暗黙的)モード

■暗黙的モード
「暗黙的モード」では、データの受け渡しをする前に必ずSSLのセッションを確立する方式です。一般的に990ポートで作動しており、SSLは全ての接続要求で必要となっています。SSLを使用していない場合はサーバへのアクセスを拒否する仕組みになっています。
 
ただし、後述する「明示的モード」が基本的に採用される事が多く、暗黙的モードは殆ど使われていない状況です。
 
■明示的モード

「明示的モード」ではサーバとクライアントが「どこまでセキュアにするか?」を調節する事ができます。この機能の大きなメリットとして、FTPもFTPSも両方同じポートで扱える点が挙げられます。

明示的モードではまず始めに暗号化していないセッションを確立します。そして認証情報を送付する前に、クライアントはサーバに対して「コマンドチャネル」をSSLで暗号化するようリクエストします。暗号化のリクエストは「AUTH TLS」や「AUTH SSL」コマンドを送る事で行います。

このSSLで暗号化した接続が確立されて、初めてFTPクライアントはFTPサーバに対して認証情報を送付します。

目次にもどる

(2-2) ファイアウォール設定

■サーバ側
・21番ポート+990番ポート(SSL用)の受信を許可する
・パッシブモード用のランダムポート範囲(例:3000~3500)の受信を許可する
 
■クライアント側
・21番ポートへの送信を許可する

・パッシブモード用のランダムポート範囲(例:3000~3500)への送信を許可する

目次にもどる

(3) 実施手順

(3-1) SFTPの概要と仕組み

FTPSと混同しやすいですが、完全に別物になります。

SFTPは「SSH」と呼ばれる、ネットワーク上の機器の遠隔操作するための仕組みをベースにしています。SSHの良く目にする例として「TeraTerm」からサーバに対してリモートでログインする時などが挙げられます。

データ転送の仕組みについて、FTP/FTPSとは完全に異なり、「コマンドチャネル」や「データチャネル」といった別々のチャネルを使用せず、データもコマンドも両方1つの接続を通じて、特殊なパケットの形式でやり取りされます。
 

(3-2) SFTPのセキュリティ面について

クライアントとサーバの間でやり取りされるデータは全て暗号化されます。加えて、SFTPは「公開鍵」や「秘密鍵」によって「公開鍵認証」と呼ばれる認証方式を利用する事もできます(従来方式との併用も可)。

目次にもどる

(3-3) ファイアウォール設定

■サーバ側
・22番ポートの受信を許可する

■クライアント側
・22番ポートからの送信を許可する

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-ネットワーク (Network)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Proxyの基本知識と確認コマンド~OSやブラウザ別の設定について

(0)目次&概説 (1) 記事の目的 (2) プロキシの基礎知識  (2-1) プロキシとは?  (2-2) なぜプロキシが必要?   (2-2-1) 特定コンテンツの許可(OUT)   (2-2-2 …

SOAP通信の仕組みやHTTPプロトコルとの違いなど

  <目次> (1) SOAP通信の仕組みやHTTPプロトコルとの違いなど  (1-1) SOAPとは?  (1-2) SOAPを構成する要素  (1-3) SOAPの通信の仕組み&HTTP …

SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)

  <目次> (1) SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)  (1-1) SOAP通信とは?  (1-2) SOAP …

パブリックIPとプライベートIPの違いとは?

  <目次> (1) パブリックIPとプライベートIPの違いとは?  (1-1) パブリックIPアドレスとは?  (1-2) プライベートIPアドレスとは?  (1-3) 比較表 (1) パ …

DNATとSNATの違いやそれぞれの特徴について

  <目次> (1) DNATとSNATの違いやそれぞれの特徴について  (1-1) NATとは?  (1-2) SNATとは?  (1-3) DNATとは?  (1-4) 両者の違い(比較 …

  • English (United States)
  • 日本語
Top