【新感覚Study】FTPをマスターしよう!【応用情報/わかりやすく】

FTP

アバンタイトル

IT分野は範囲がとても広いです。そのため、過去問を解いていると1ページに何個も理解できない単語が出てきます。それを一気に理解しようとするのはとても骨が折れるし、やる気も続きません。

しかし、そんな時は1周まわって1つのことに徹底集中してみるのはどうでしょうか?覚えなきゃいけないことが沢山あると、終わりが見えずモチベーションが続きません。

でも、「今日はこの1つをマスターしよう!」と1つにフォーカスすればゴールが見えて、集中力も続くようになります。また、一点集中型なので理解力も深まり応用も効くようになります。

ということで、当サイトでは1点集中をコンセプトに解説を展開しています。勉強法が定まっていなかったり悩んでいる方は是非、続きをご覧になってみてはいかかでしょうか?

はじめに

今回は、前回に引き続き応用情報の対策としてポート番号をStudyしていきます!
前回はポート番号とは何なのか?なぜ必要なのか?IPアドレスとの違いはなんなのか?などの様々な疑問を深堀ながら解決していきました。

そして、本日は具体的なポート番号をStudyしていきます。ピックアップするのは、20,21番ポート番号として知られるFTP(ファイル転送プロトコル)です。これは、出題頻度の高いポート番号の一つなのでしっかりStudyしてマスターしていきましょう!

前回のポート番号解説

【ここで取り扱う・解決するFTPへの疑問点】

では、早速やっていきましょう!

FTP(File Transfer Protocol)ってなに?

FTP(ファイル転送プロトコル)は、ファイルをインターネット上で転送するためのプロトコルです。ポート番号20番,21番を使用します。

FTPはファイルを転送するだけじゃない!

FTPを直訳するとファイル転送プロトコルになります。そのため、転送するだけがFTPの役割だと勘違いをしてしまいます。しかし、実際は他のタスクも実施しているのです。それを紹介します。

  1. ファイルのアップロード: クライアントからサーバーへファイルを送信することです。
  2. ファイルのダウンロード: サーバーからクライアントへファイルを取得することです。
  3. ファイルの削除: サーバー上のファイルを削除することです。
  4. ファイルのリネーム: サーバー上のファイルの名前を変更することです。
  5. ディレクトリのリスト表示: サーバー上のディレクトリの内容を表示することです。

これらの機能を使って、FTPを介してファイルの管理を行うことができます。

FTPはセキュリティ上の脆弱性がある!

FTPセキュリティ上の脆弱性が指摘されることがあり、セキュアな通信を行うためには、代わりにSFTPFTPSなどのセキュアなFTPプロトコルを使用することが推奨されます。

p.s.SFTPやFTPSについては、下の方で解説しているので、慌てずに読み進めていってください。

Q.なんでFTPは脆弱性があるの?

クエスチョン

先ほど、FTPにはセキュリティ上の脆弱性があると説明しました。それはFTPのどのような特徴から言われていることなのか?それを紐解いていきましょう!

A.FTPは暗号化をしない….

Answer
  • 平文での認証: 通常、FTPはユーザー名やパスワードを平文で送信します。つまり、ユーザー名やパスワードが暗号化されずにネットワーク上を送信されるため、盗聴される可能性があります。

これらの脆弱性は、FTPがデータの送信に暗号化や認証の強化を提供しないことが主な原因です。そのため、セキュアなファイル転送を必要とする環境では、代わりにSFTP(SSH File Transfer Protocol)やFTPS(FTP over SSL/TLS)などのセキュアなプロトコルを使用することが推奨されます。

Q.なんでFTPは2つのポートを使ってるの?

クエスチョン

ふと、疑問に浮かびませんか?なんでFTPはポート番号を2つも使ってるの?そんな贅沢していいの?そんな疑問を解決していきましょう!

A.転送用(20番)と制御用(21番)に分けられている

Answer

FTPがポート番号20番と21番の2つを使用する理由は、FTPプロトコルの設計に起因します。

  1. 効率的な通信: 制御用のポートとデータ転送用のポートを分離することで、FTPサーバーは同時に複数のデータ転送を処理できます。制御用のポートとデータ転送用のポートが別々になっているため、並行して多くのクライアントと通信することが可能です。これにより、FTPサーバーの効率が向上し、スケーラビリティが高まります。
  2. 標準化されたプロトコル: FTPの設計では、ポート21番とポート20番の組み合わせが標準化されており、これに従って多くのFTPクライアントやサーバーが実装されています。この標準化により、異なるネットワーク環境での互換性が確保されます。

以上の理由から、FTPはポート番号20番と21番の2つを使用しています。これにより、効率的なデータ転送や標準化されたプロトコルの実装が可能になります。

要するに、FTPは役割がとても多いのでポートを二つ使う必要があるということです。
他のポートが単一の役割を果たすのに対して、FTPは制御情報とデータ転送などのカバーする領域が広いです。そのため、2つのポートが必要になるってことです。

Q.転送用ポート(20番)と制御用ポート(21番)の違いは?

クエスチョン

じゃあ、具体的にデータ転送用のポート(20番)と制御用のポート(21番)は何が違うのか?その役割を具体的に知りたいと思いませんか?それを見ていきましょう!

A.大別すると転送と制御

Answer

これは名前の通りなんですが、2つのポートの役割の違いは転送or制御かということです。その役割の詳細を確認していきましょう!

【データ転送用のポート(ポート20)】
データ転送用のポート(20番)は、実際のファイルの送受信に使用されます。ファイルの転送中に大きなデータブロックを送信する必要がある場合、このポートが使用されます。ポート20は、データ転送時に使用されますが、FTPサーバーとクライアントの間で直接通信するわけではなく、データ転送が開始された場合にサーバーからクライアントに通知されます。

【制御用のポート(ポート21)】
制御用のポート(21番)は、FTPクライアントとサーバーの間で制御情報を交換するために使用されます。制御情報には、ユーザー認証、ディレクトリの移動、ファイルのリスト表示などが含まれます。ポート21は、FTPセッションの確立と制御コマンドの送受信に使用されます。

つまり、ファイルのアップロードやダウンロードなどの実際のデータ転送は、ポート20番で行われますが、制御情報の交換や認証などはポート21番で行われます。操作の種類によっては、ポート21番とポート20番の両方が使用される場合もあります。

Q.SFTPってFTPと何が違うの?

クエスチョン

先ほど、FTPにはセキュリティ上の脆弱性があると解説しました。そこで代替案として紹介したのがSFTP(SSH File Transfer Protocol)とFTPSです。これらはいったいFTP何が変わったのでしょうか?それを見ていきましょう!

A.SFTPとFTPの相違点は認証方法、ポート番号..etc

Answer

ここでは、SFTPFTPを相違点を挙げつつ、SFTPの内情を深堀ぼっていきましょう!

  • セキュリティ: SFTPは、SSH(Secure Shell)プロトコルを使用してデータを暗号化します。これにより、データの送受信が暗号化され、盗聴されるリスクが低減されます。一方、FTPはデータを平文で送信するため、ユーザー名やパスワード、ファイルの内容が盗聴される危険性があります。
  • 認証: SFTPはSSHに基づいており、SSHの認証メカニズムを使用してセキュアな認証を提供します。これに対して、FTPは通常、平文でユーザー名とパスワードを送信するため、認証情報が盗聴されるリスクがあります。
  • ポート: SFTPは通常、SSHのポートであるポート22番を使用します。一方、FTPはポート20番(転送)とポート21番(制御)を使用します。

総じて、SFTPはFTPよりもセキュアであり、データの送受信が暗号化されるため、機密性の高いデータの転送に適しています。セキュリティが重要なシステムやデータの場合、SFTPを使用することが推奨されます。

22番ポート

22番ポートはSSHのポート番号です。しかし、SFTPはSSHを利用しているためSSHと同じポート番号である22番を利用するという形式になっています。

Q.SFTPとFPTSの違いは?

クエスチョン

前節で、FTPとSFTPの違いを明確にしました。しかし、もう一つFTPの脆弱対策としてSFTPというのがありましたよね?では、以下ではその、FTPとSFTPの違いを明確にしていきましょう!

A.SFTPとFPTSの違いは暗号化方式、ポート番号..etc

Answer

SFTPFTPSは、どちらもセキュアなファイル転送を提供するプロトコルですが、異なる技術を使用しています。それを詳しく見ていきましょう!

  1. 暗号化の方式:
    • SFTP(SSH File Transfer Protocol): SFTPはSSH(Secure Shell)プロトコルを使用してデータを暗号化します。SSHは公開鍵暗号化や対称鍵暗号化などの暗号化技術を使用しており、セキュアな通信を提供します。
    • FTPS(FTP over SSL/TLS): FTPSはFTPプロトコルを使用しており、SSL(Secure Sockets Layer)またはTLS(Transport Layer Security)プロトコルを使用してデータを暗号化します。
  2. ポート番号:
    • SFTP: 通常、SSHのポートであるポート22番を使用します。
    • FTPS: 暗号化されたデータ転送用のポートとしてポート990番を使用しますが、制御用のポートとしては通常ポート21番を使用します。

      p.s.制御用のポート21番はFTPと同じ
  3. 認証:
    • SFTP: SSHの認証メカニズムを使用しています。
    • FTPS: SSL/TLSの認証メカニズムを使用します。FTPSでは、通常、TLS証明書を使用してサーバーとクライアントの間で相互認証が行われます。
  4. ポートフォワーディング:
    • SFTP: SSHを使用するため、SSHのポートフォワーディング機能を利用してセキュアなトンネルを作成できます。
    • FTPS: FTPSは通常、特定のポート番号を使用するため、ファイアウォールの設定が必要になる場合があります。

総じて、SFTPとFTPSはどちらもセキュアなファイル転送を提供しますが、それぞれ異なる技術を使用しています。SFTPはSSHをベースにしており、FTPSはSSL/TLSをベースにしています。どちらを選択するかは、システムの要件やセキュリティポリシーによって異なります。

Q.ポートフォワーディングって何?

クエスチョン

先ほど、説明の中でヌルっとポートフォワーディングという単語が出てきました。ん?なにそれ?って思いましたよね?ここでそれを紐解いていきましょう!

A.ポートフォワーディングはルーティングの一種

Answer

ポートフォワーディングは、ネットワーク通信において、外部からのアクセスを内部のネットワークに転送する技術です。

【ポートフォワーディングの具体例】

例えば、外部からポート20番に到着したデータがFTPサーバーにルーティングされるようにポートフォワーディングを設定することで、FTPサーバーにアクセスできるようになります。同様に、ポート21番に到着したデータがFTPサーバーの制御用にルーティングされるようにも設定します。

【ポートフォワーディングのメリット】

ポートフォワーディングのメリットは、外部からのアクセスを内部の特定のサービスに効率的にルーティングできることです。これにより、外部からのアクセスを容易に管理したり、セキュリティを強化したりすることが可能になります。

FTPまとめ

FTP(File Transfer Protocol)は、インターネット上でファイルを転送するためのプロトコルです。クライアントとサーバーの間で通信を行い、ファイルのアップロード、ダウンロード、削除、リネームなどの操作を可能にします。通常、データ転送用のポート20番と制御用のポート21番とを使用します。FTPはセキュリティ上の脆弱性があるため、セキュアなバージョンであるSFTPやFTPSが利用されることもあります。

キーワード:ファイル転送、ポート20番、ポート21番、セキュリティ上の脆弱性

おわりに

いかがだったでしょうか?今回は、FTP(File Transfer Protocol)についてStudyしてきました。やっぱり、疑問を抱き、それを解決していくっていうスタイルの方が頭に入りますよね?(そーでもなかったらすんません(笑))

…..うん….なんか…おわりの言葉が全然浮かばないので、今日はこの辺で締めさせていただきます。お疲れさまでした!これからも一緒に頑張っていきましょう!では、さらばじゃ!

【この記事も一緒に読まれています】

タイトルとURLをコピーしました