Vsftpd (つまり、非常に安全なFTPデーモン)は、Linuxおよびその他のUnixライクなシステム用のFTPサーバーソフトウェアです。 FTPサーバーソフトウェアは、クライアントコンピューターからサーバーへのファイル転送とその逆のファイル転送を容易にします。
このチュートリアルでは、Vsftpdをインストールする方法を学習します。 Ubuntu 20.04 SSL / TLSを介したセキュアファイル転送(FTPS)を有効にします。
前提条件
- Ubuntu20.04Linuxシステム
- sudo機能を持つユーザー
- FileZillaなどのSSL対応のFTPクライアント
UbuntuにVsftpdをインストールする
Vsftpdは、デフォルトのUbuntuパッケージリポジトリで利用できます。以下のコマンドを使用して、利用可能なパッケージを更新することから始めることができます。
$ sudo apt update
次に、次のコマンドを実行してVsftpdをインストールします。
$ sudo apt install vsftpd
yと入力します インストールを続行するように求められた場合。
Vsftpdが正常にインストールされたら、以下のコマンドでバージョンを確認できます。
$ vsftpd -v
また、次のようにVsftpdサーバーのステータスを確認します。
$ sudo systemctl status vsftpd
vsftpd サービスはすでにアクティブになっているはずです。 qを押します コマンドプロンプトに戻ります。
vsftpdサービスがまだアクティブになっていない場合は、次のコマンドで開始できます。
$ sudo systemctl start vsftpd
Vsftpdを構成する
vsftpd用に構成できるオプションはたくさんありますが、このチュートリアルでは基本的なことだけを検討します。次のコマンドを使用して、vsftpd構成ファイルを開きます。
$ sudo nano /etc/vsftpd.conf
さまざまなvsftpdオプションが構成ファイルで十分に説明されていることがわかります。何を有効または無効にするかを理解するには、手順を読むだけです。以下にいくつかの例を示します。
匿名FTPアクセスを構成する
デフォルトでは、匿名FTPは無効になっています。このデフォルト設定はそのままにしておくことをお勧めします。ただし、何らかの理由でテスト目的で匿名FTPアクセスを有効にする場合は、 anonymous_enableの値を変更してください。 NOからYESまでのオプション。
今のところ、そのままにしておきます。
ローカルユーザーにログインを許可する
ローカルユーザーはデフォルトでログインできます。ローカルユーザーがVsftpdサーバーにログインできないようにする場合は、 local_enableの値を変更します。 はいからいいえへ。
特定のローカルユーザーのみにVsftpdサーバーへのログインを許可することもできます。そのためには、 local_enable は YESに設定します。
その後、下に次の行を追加します。
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
vsftpd.confファイルを保存して閉じます。
次に、nextコマンドを使用してユーザーリストファイルを作成し、許可されたユーザーを1行に1つずつ入力します。
$ sudo nano /etc/vsftpd.userlist
ユーザーリストファイルを保存して閉じます。
次のコマンドでvsftpdを再起動します:
$ sudo systemctl restart vsftpd
FTP書き込みコマンドを有効にする
FTPユーザーがファイルを作成、削除、名前変更、保存できるようにするには、 write_enableのコメントを解除します。 オプションを選択し、YESに設定されていることを確認してください。
先に進む前に、Vsftpdサーバーにログインして、サーバーが機能していることを確認しましょう。今のところ、変更を保存して、vsftpd構成ファイルを閉じます。
Vsftpdサーバーにログイン
このために、テストユーザーを作成し、次のようにパスワードを割り当てましょう。
$ sudo useradd -m myftpuser
$ sudo passwd myftpuser
注: vsftpdユーザーリストを有効にした場合 以前は、それに応じてftpユーザーを/etc/vsftpd.userlistに追加することを忘れないでください。デフォルトでは、ユーザーはsshアクセスを使用できますが、FTPユーザーのシェルアクセスを無効にすることをお勧めします。
次に、FileZillaなどのSSL対応のFTPクライアントを起動し、新しく作成したテストユーザーを使用してログインします。
私の場合、FileZillaは、FTP over TLSをサポートしていないため、サーバーが安全でないことを通知しました。
接続をキャンセルします。次のセクションでこれを修正しましょう。
安全なファイル転送のためにSSL/TLSを有効にする
TLSを介した安全なファイル転送を有効にするには、次の手順に従います。
まず、以下のコマンドでvsftpd構成ファイルを開きます。
$ sudo nano /etc/vsftpd.conf
次に、 rsa_cert_fileを探します およびrsa_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構成ファイルを保存して閉じます。
秘密鍵と証明書を生成する
ここで、秘密鍵を作成し、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サーバーへの接続を再試行してください。
確かに、今回はFileZillaがTLS経由で安全に接続できました。今後のセッションでこの証明書を常に信頼するオプションを安全に選択できます。次に、[ OK]をクリックします 接続を続行します。
FTP over TLSをサポートしていないコマンドラインを介してFTPサーバーに接続しようとすると、エラーが発生します。例:
$ ftp 192.168.100.168
これは、VsftpdサーバーがTLSを介した安全なファイル転送に対して実際に有効になっていることのもう1つの証拠です。
結論
このチュートリアルでは、Ubuntu20.04にVsftpdサーバーをインストールする方法を説明しました。また、TLSプロトコルを介した安全なファイル転送を有効にする方法についても説明しました。この記事では基本的なVsftpdオプションについてのみ説明しましたが、vsftpd構成オプションのマニュアルページで他のオプションを調べることができます。