F ile T 転送P rotocol(FTP)は、コンピューターネットワーク上でファイルを移動するために今でも広く使用されているテクノロジーです。軽量で、セットアップと使用が簡単なことで有名です。 FTPは、パスワードとデータをプレーンテキストで送信するため、安全でないプロトコルとしての評判が良くありません。ただし、ProFTPDなどの最新のFTPサーバーはFTP over TLSをサポートしているため、接続はTLS/SSLを使用して暗号化されます。このチュートリアルでは、TLSを使用して接続が暗号化されるようにProFTPDを構成する方法を説明します。
ProFTPdはオープンソースのFTPサーバーアプリケーションであり、Linuxマシン上に独自のFTPサーバーをセットアップできます。専用サーバーまたはクラウドインスタンスの場合はさらにセットアップできます。 FocalFossaリポジトリを使用してUbuntu20.04マシンに最新バージョンのProFTPDをインストールしますが、ほとんどのDebianベースのディストリビューションでも正常に動作するはずです。 FTP接続を保護するためにTLSも設定しました。
前提条件
- Ubuntu 20.04(Focal Fossa)がインストールされた新しいサーバーインスタンス。
- アプリケーションをインストール/構成するためのsudo/root権限。
システムの更新
特に外部リポジトリからの場合は、パッケージやソフトウェアをインストールする前にシステムを更新することをお勧めします。そのために「apt-get」ユーティリティを使用します:
sudo apt-get update -y sudo apt-get upgrade -y
変更を適用するためのカーネルアップデートがある場合は、サーバーを再起動します
sudo reboot now
ProFTPDサーバーのインストール
システムが最新の状態になったので、ProFTPDのインストールを続行できます。
デフォルトでは、ProFTPDはFocal Fossaリポジトリで利用でき、次のコマンドでインストールできます。
sudo apt-get install proftpd -y
インストールが完了したら、proftpdサービスを開始して、起動時に自動的に開始できるようにすることができます。
sudo systemctl start proftpd sudo systemctl enable proftpd
サービスが実行されたので、次を使用してそのステータスを確認できます:
sudo systemctl status proftpd
アクティブ(実行中)が緑色で表示されているので、proftpdデーモンが期待どおりに機能していると安全に結論付けることができます。
ProFTPDのデフォルトの設定ファイルは、/ etc / proftpd/proftpd.confディレクトリにあります。
次のコマンドを実行すると、構成ファイルの内容を表示できます。
sudo nano /etc/proftpd/proftpd.conf
構成は、ディレクティブのいくつかのセクションに分割されます。それらのディレクティブを見てみましょう。
DefaultRootディレクティブは、デフォルトでファイルを提供する場所をFTPサーバーに指示します。 DefaultRootの値は、絶対パスまたは相対パスのいずれかです。 DefaultRootディレクティブが〜(チルダ文字)に設定されている場合、ユーザーはホームディレクトリに制限されます。たとえば、別のフォルダへのパスを変更できます。
DefaultRoot /home/Linux/Docs
さまざまなディレクティブを使用して、各ユーザーを特定のディレクトリに設定できます。例:
DefaultRoot /home/linux A
DefaultRoot / B
これらの行は、ユーザーAが / home / linuxにログインすることを示しています。 ディレクトリとユーザーBはシステム全体にログインします。
ServerNameディレクティブは、FTPサーバーの名前を定義するために使用されます。このディレクティブはログや通知で使用できるため、わかりやすい名前に設定する必要があります。
ServerName "Vitux"
Portディレクティブは、FTPサーバーが接続をリッスンするポート番号を定義します。このディレクティブのデフォルト値は21です。
ProFTPDユーザーの作成
セキュリティ上の理由から、制限された権限で、ホームディレクトリにのみアクセスできるダミーのユーザーアカウントを作成する必要があります。これは、ユーザーがFTPサーバーにファイルをアップロードまたはダウンロードできるようにする場合に従うことをお勧めします。
インストールされたバージョンのProFTPDには、事前に作成されたユーザーと設定オプションが付属していません。この目的のために、新しいユーザーを追加する必要があります。
FTPユーザーを作成しましょうlinuxways フォルダ/home / linuxways ホームフォルダとして。
sudo useradd -m linuxways
新しいユーザーの新しいパスワードを作成します。
sudo passwd linuxways
これで、ユーザー「linuxways」を使用してFTP接続をテストできます。好みのFTPクライアント(FileZilla、CoreFTPなど)を開き、IPアドレス、ユーザー名、パスワード、ポートなどの詳細を入力して、クイック接続をクリックします。 。
ご覧のとおり、新しく作成したユーザーでFTPにアクセスできます。 ProFTPdサーバーは期待どおりに実行され、機能しています。
さらにユーザーを追加する場合は、目的のユーザー名でuseraddコマンドを使用してユーザーを作成するだけです。必要に応じて、FTPユーザーにroot権限を付与することもできます。
ProFTPD用にTLSを構成する
FTP接続を保護するために、TLSを使用できます。このセクションでは、Let’s Encrypt(無料のSSLプロバイダー)からのTLS証明書を使用してProFTPDを構成し、構成ファイル内で新しく作成された証明書をアクティブ化します。
まず、OpenSSLをインストールします
sudo apt-get install openssl -y
OpenSSLがインストールされたので、SSL証明書を生成しましょう。
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
ここで何が起こっているのかを簡単に見てみましょう。 SSL証明書が作成されるディレクトリ(/ etc / ssl)を作成し、証明書要求を生成して、1年(365日)の有効性を付与します。秘密鍵ファイルと証明書ファイルも指定しています。以下のような組織に関するいくつかの質問に答える必要があります。答えを入力してEnterを押すだけです
上記のコマンドは、ProFTPDを構成するために必要なproftpd.keyとproftpd.crtの2つのファイルを作成します。
キーファイルの権限を600に変更します。
sudo chmod 600 /etc/ssl/private/proftpd.key sudo chmod 600 /etc/ssl/certs/proftpd.crt
次に、 /etc/proftpd/proftpd.confにあるメイン構成ファイルを編集する必要があります。 、新しく作成した証明書ファイルに関する情報を追加します。
sudo nano /etc/proftpd/proftpd.conf
行の先頭にある「#」を削除してSSLおよびTLSセクションのコメントを解除し、FTPoverSSLを使用できるようにします。
ファイルを保存して閉じます。それでは、tls.confファイルを構成しましょう
sudo nano /etc/proftpd/tls.conf
各行の先頭にある「#」を削除して、次の行を見つけてコメントを解除します。
ファイルを保存して閉じます。サービスを再開することを忘れないでください。
sudo systemctl restart proftpd
すべてが期待どおりに機能しているかどうかを確認する場合は、FTPクライアントを使用して、SSLを有効にしてサーバーに接続します。 FTPクライアントからTLS警告が表示されるはずです
FTPクライアントからTLS警告を受け取るのは一般的です。許可した後、または OK 警告、SSL接続が確立されている必要があり、通常どおりFTPクライアントを引き続き使用できます。
結論
このチュートリアルでは、Ubuntu 20.04サーバーにProFTPDをインストールし、FTP接続用のユーザーを作成して、その機能をテストしました。また、転送中のデータの盗聴や改ざんからFTP接続を保護するようにTLSを構成しました。 ProFTPD構成オプションの詳細が必要な場合は、公式ドキュメントを確認してください。