Ubuntu20.04にSSL / TLSを使用してVsftpdをインストールします

Vsftpd (つまり、非常に安全なFTPデーモン)は、Linuxおよびその他のUnixライクなシステム用のFTPサーバーソフトウェアです。 FTPサーバーソフトウェアは、クライアントコンピューターからサーバーへのファイルの転送とその逆の転送を容易にします。

このチュートリアルでは、 Vsftpdをインストールします の上 Ubuntu 20.04 SSL / TLSを介したセキュアファイル転送(FTPS)を有効にします。

前提条件

  • Ubuntu 20.04Linuxシステム
  • のユーザー sudo 容量
  • FileZillaなどのSSL対応FTPクライアント

UbuntuにVsftpdをインストールする

Vsftpdは、デフォルトのUbuntuパッケージリポジトリで利用できます。 以下のコマンドを使用して、利用可能なパッケージを更新することから始めることができます。

$ sudo aptアップデート

次に、次のコマンドを実行してVsftpdをインストールします。

$ sudo apt install vsftpd

Enter Y インストールを続行するように求められた場合。

Vsftpdが正常にインストールされたら、以下のコマンドでバージョンを確認できます。

$ vsftpd -v

また、Vsftpdサーバーのステータスを次のように確認します。

$ sudo systemctl status vsftpd

Vsftpdサーバーのステータスを確認する

The vsftpd サービスはすでにアクティブになっているはずです。 押す q コマンドプロンプトに戻ります。

vsftpdサービスがまだアクティブになっていない場合は、次のコマンドで開始できます。

$ sudo systemctl start vsftpd

Vsftpdを構成する

vsftpd用に構成できるオプションはたくさんありますが、このチュートリアルでは基本的なことだけを検討します。 次のコマンドを使用して、vsftpd構成ファイルを開きます。

$ sudo nano /etc/vsftpd.conf

さまざまなvsftpdオプションが構成ファイルで十分に説明されていることがわかります。 何を有効または無効にするかを理解するには、手順を読むだけです。 以下はいくつかの例です。

匿名FTPアクセスを構成する

デフォルトでは、匿名FTPは無効になっています。 このデフォルト設定はそのままにしておくことをお勧めします。 ただし、何らかの理由でテスト目的で匿名FTPアクセスを有効にする場合は、の値を変更します。 analog_enable NOからYESまでのオプション。

今のところ、そのままにしておきます。

vsftpdの匿名FTPアクセスを構成するvsftpdの匿名FTPアクセスを構成する

ローカルユーザーにログインを許可する

ローカルユーザーはデフォルトでログインできます。 ローカルユーザーがVsftpdサーバーにログインできないようにする場合は、次の値を変更します。 local_enable はいからいいえへ。

ローカルユーザーがVsftpdサーバーにログインできるようにするローカルユーザーがVsftpdサーバーにログインできるようにする

特定のローカルユーザーのみにVsftpdサーバーへのログインを許可することもできます。 そのためには、次のことを確認してください local_enable YESに設定します。

その後、下に次の行を追加します。

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Save と close vsftpd.confファイル。

次に、nextコマンドを使用してユーザーリストファイルを作成し、許可されたユーザーを1行に1つずつ入力します。

$ sudo nano /etc/vsftpd.userlist

Save と close ユーザーリストファイル。

次のコマンドでvsftpdを再起動します。

$ sudo systemctl restart vsftpd

FTP書き込みコマンドを有効にする

FTPユーザーがファイルを作成、削除、名前変更、および保存できるようにするには、コメントを解除します。 write_enable オプションを選択し、YESに設定されていることを確認します。

FTP書き込みコマンドを有効にするFTP書き込みコマンドを有効にする

先に進む前に、Vsftpdサーバーにログインして、サーバーが機能していることを確認しましょう。 今のところ、変更を保存して close vsftpd構成ファイル。

Vsftpdサーバーにログインします

このために、テストユーザーを作成し、次のようにパスワードを割り当てます。

$ sudo useradd -m myftpuser $ sudo passwd myftpuser

ノート: vsftpdを有効にした場合 ユーザーリスト 以前は、それに応じてftpユーザーを/etc/vsftpd.userlistに追加することを忘れないでください。 デフォルトでは、ユーザーはsshアクセスを使用できますが、FTPユーザーのシェルアクセスを無効にすることをお勧めします。

次に、FileZillaなどのSSL対応のFTPクライアントを起動し、新しく作成したテストユーザーを使用してログインします。

私の場合、FileZillaは、FTP over TLSをサポートしていないため、サーバーが安全でないことを通知しました。

安全でないFTPサーバーの通知安全でないFTPサーバーの通知

接続をキャンセルします。 次のセクションでこれを修正しましょう。

安全なファイル転送のためにSSL / TLSを有効にする

TLSを介した安全なファイル転送を有効にするには、次の手順に従います。

まず、以下のコマンドでvsftpd設定ファイルを開きます。

$ sudo nano /etc/vsftpd.conf

次に、 rsa_cert_filersa_private_key_file オプションを選択し、以下に示すように値を更新します。

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

また、探してください ssl_enable 値をYESに変更します。

ssl_enable=YES

VsftpdのTLS / SSLを有効にするVsftpdのTLS / SSLを有効にする

Save と close vsftpd構成ファイル。

秘密鍵と証明書を生成する

ここで、秘密鍵を作成し、opensslを使用してTLS / SSL証明書を生成する必要があります。 FTPサーバーを指すドメインがある場合は、Let’sEncryptの無料SSL証明書を使用できます。

秘密鍵を生成するには、次のコマンドを実行します。

$ sudo openssl genrsa -out /etc/ssl/private/vsftpd.key

次に、以下のコマンドを使用して証明書署名要求を生成します。 国、都市、電子メールアドレスなどの情報を提供するように求められます。指示を注意深くお読みください。

$ sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

次に、次のように365日間有効な証明書を生成して署名します。

$ sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

次のコマンドでvsftpdを再起動します。

$ sudo systemctl restart vsftpd

Vsftpdサーバーへの接続を再試行してください。

TLSを介した安全なFTP接続TLSを介した安全なFTP接続

確かに、今回はFileZillaがTLS経由で安全に接続できました。 今後のセッションでこの証明書を常に信頼するオプションを安全に選択できます。 次に、をクリックします わかった 接続を続行します。

自己署名証明書を信頼する自己署名証明書を信頼する

FTP over TLSをサポートしていないコマンドラインを介してFTPサーバーに接続しようとすると、エラーが発生します。 にとって example:

$ ftp 192.168.100.168

TLSなしのFTPエラーTLSなしのFTPエラー

これは、VsftpdサーバーがTLSを介した安全なファイル転送に対して実際に有効になっていることのもう1つの証拠です。

結論

このチュートリアルでは、Ubuntu20.04にVsftpdサーバーをインストールする方法を説明しました。 また、TLSプロトコルを介した安全なファイル転送を有効にする方法についても説明しました。 この記事では基本的なVsftpdオプションについてのみ説明しましたが、 vsftpd構成オプション マニュアルページ。