はじめに
このチュートリアルでは、Linux システム上で Secure FTP (FTPS) を設定し、使用するための包括的なガイドを提供します。FTPS は、従来の FTP プロトコルを強化したもので、暗号化と認証を提供することにより、転送されるデータの機密性と完全性を保証する安全なファイル転送プロトコルです。FTPS の基本的な概念、従来の FTP に対する利点、FTPS サーバーの設定手順、および FTPS クライアントを使用してファイルを安全に転送する方法について説明します。
Secure FTP (FTPS) の概要
Secure FTP (FTPS) は、SSL/TLS 上の FTP とも呼ばれ、暗号化と認証を提供することにより、従来の FTP プロトコルを強化した安全なファイル転送プロトコルです。FTPS は、インターネット上でファイルを安全に転送するために広く使用されており、転送されるデータの機密性と完全性を保証します。
このセクションでは、FTPS の基本的な概念、従来の FTP に対する利点、および Linux システムで FTPS を設定して使用する方法について説明します。
FTPS とは?
FTPS は、SSL/TLS 暗号化のサポートを追加した標準 FTP プロトコルの拡張です。これは、ログイン資格情報、ファイルの内容、メタデータなど、クライアントとサーバー間で送信されるすべてのデータが暗号化されることを意味し、従来の FTP と比較して高いレベルのセキュリティを提供します。
FTPS は、2 つの主要な動作モードをサポートしています。
Explicit FTPS: このモードでは、クライアントは特定のコマンド(通常は
FTPSまたはAUTH TLS)をサーバーに送信することにより、SSL/TLS 接続を開始します。その後、サーバーは安全な接続を確立して応答します。Implicit FTPS: このモードでは、クライアントは特定のコマンドを必要とせずに、事前に決定されたポート(通常は 990)で自動的に SSL/TLS 接続を開始します。
FTPS の利点
従来の FTP よりも FTPS を使用する主な利点には、以下が含まれます。
暗号化: FTPS は、転送されるデータのエンドツーエンド暗号化を提供し、盗聴や不正アクセスから保護します。
認証: FTPS は、クライアントとサーバーの認証をサポートし、クライアントが正しいサーバーに接続していること、およびサーバーが承認されたクライアントからの接続を受け入れていることを確認します。
コンプライアンス: FTPS は、PCI-DSS、HIPAA、GLBA など、安全なファイル転送プロトコルの使用を義務付けるさまざまな業界標準および規制への準拠に必要とされることがよくあります。
セキュリティの向上: FTPS は、パスワードスニッフィング、中間者攻撃、その他のセキュリティ脆弱性のリスクを軽減するため、従来の FTP よりも一般的に安全であると考えられています。
FTPS のユースケース
FTPS は、以下を含むさまざまなシナリオで一般的に使用されています。
金融および銀行アプリケーション: 口座情報、取引記録、規制レポートなど、機密性の高い金融データを安全に転送します。
ヘルスケアおよび医療業界: HIPAA 規制に準拠して、保護された医療情報(PHI)およびその他の機密医療データを交換します。
E コマースおよびオンライン小売: ビジネスパートナーとベンダー間で、製品データ、在庫情報、および顧客データを安全に転送します。
政府および公共部門: 政府機関と承認された関係者の間で、機密情報または機密情報を安全に共有します。
一般的なファイル共有とデータ交換: ソフトウェアアップデート、コンテンツ配信、データバックアップなど、さまざまなファイル転送ニーズに対して、従来の FTP に代わる安全な方法を提供します。
次のセクションでは、Linux システムで FTPS サーバーを構成する方法について説明し、FTPS クライアントを使用してファイルを安全に転送するプロセスを説明します。
Linux での FTPS サーバーの設定
このセクションでは、Linux システム、具体的には Ubuntu 22.04 を例として、FTPS サーバーを設定するプロセスを説明します。
FTPS サーバーソフトウェアのインストール
Ubuntu 22.04 で FTPS サーバーを設定するには、人気のオープンソース FTP サーバーソフトウェアである vsftpd (Very Secure FTP Daemon) を使用します。vsftpd は、従来の FTP プロトコルと FTPS プロトコルの両方をサポートしているため、FTPS サーバー構成に適しています。
ターミナルで次のコマンドを実行して、vsftpd をインストールします。
sudo apt-get update
sudo apt-get install vsftpd
SSL/TLS証明書の生成
FTPS は、クライアントとサーバー間の安全な接続を確立するために SSL/TLS 証明書を必要とします。自己署名証明書を使用するか、信頼できる認証局(CA)から証明書を取得できます。
自己署名証明書を生成するには、次のコマンドを使用します。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
このコマンドは、自己署名証明書とキーファイルを/etc/ssl/private/ディレクトリに作成します。
FTPS サーバーの設定
次に、FTPS サポートを有効にするために、vsftpd サーバーを設定する必要があります。vsftpd 設定ファイルを編集します。
sudo nano /etc/vsftpd.conf
そして、次の行を追加または変更します。
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
この設定は、FTPS を有効にし、データ転送とログインの両方に SSL/TLS 暗号化を要求し、SSL/TLS 証明書とキーファイルの場所を指定します。
FTPS サーバーの再起動
必要な設定変更を行った後、変更を適用するために vsftpd サービスを再起動します。
sudo systemctl restart vsftpd
これで、FTPS サーバーが設定され、FTPS クライアントからの安全な接続を受け入れる準備ができました。
次のセクションでは、FTPS クライアントを使用してファイルを安全に転送する方法を説明します。
FTPS クライアントを使用した安全なファイル転送
FTPS サーバーが設定されたので、FTPS クライアントを使用してファイルを安全に転送する方法を見てみましょう。
FTPS クライアントの選択肢
コマンドラインとグラフィカルユーザーインターフェース(GUI)ベースの両方で、さまざまな FTPS クライアントアプリケーションが利用可能です。このチュートリアルでは、Ubuntu 22.04 で利用可能なコマンドライン FTPS クライアントであるlftpを使用します。
lftpをインストールするには、次のコマンドを実行します。
sudo apt-get install lftp
FTPS サーバーへの接続
FTPS サーバーに接続するには、次のlftpコマンドを使用します。
lftp ftps://username:password@ftps-server-address
usernameとpasswordを FTPS サーバーの適切な資格情報に、ftps-server-addressを FTPS サーバーの IP アドレスまたはドメイン名に置き換えます。
接続すると、lftpコマンドプロンプトが表示され、さまざまな FTPS コマンドを実行できます。
FTPS ファイル転送コマンド
lftpクライアントで使用できる一般的な FTPS コマンドをいくつか紹介します。
ls: リモート FTPS サーバー上のファイルとディレクトリを一覧表示します。cd directory: リモート FTPS サーバー上の現在のディレクトリを変更します。put local_file.txt: ローカルファイルをリモート FTPS サーバーにアップロードします。get remote_file.txt: リモート FTPS サーバーからローカルマシンにファイルをダウンロードします。mirror local_directory remote_directory: ディレクトリとその内容を再帰的にアップロードまたはダウンロードします。quit: FTPS サーバーから切断し、lftpクライアントを終了します。
たとえば、document.pdfという名前のローカルファイルを FTPS サーバーにアップロードするには、次のコマンドを使用します。
put document.pdf
そして、report.xlsxという名前のファイルを FTPS サーバーからダウンロードするには、次を使用します。
get report.xlsx
ファイル転送コマンドを発行する前に、ローカルシステムとリモートシステムの両方で適切なディレクトリに移動することを忘れないでください。
lftp FTPS クライアントを使用することにより、FTPS サーバーとの間でファイルを安全に転送し、データの機密性と完全性を確保できます。
まとめ
このチュートリアルでは、データ暗号化、認証、業界標準への準拠の向上など、従来の FTP よりも FTPS を使用する利点について学びました。また、Linux システムで FTPS サーバーを構成する方法と、FTPS クライアントを使用してファイルを安全に転送する方法についても学びました。FTPS を実装することにより、ファイル転送プロセスのセキュリティを強化し、データの機密性と完全性を確保できます。



