0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LinuxサーバーにvsFTPdをセットアップしたときの設定ファイルメモ

Last updated at Posted at 2025-03-01

vsFTPdとは

vsFTPd (very secure FTP deamon) とは、セキュリティーに重点を置いたFTPサーバープログラムです。Arch Linuxを含め多くのLinuxディストリビューションでサポートされており、簡単にインストールできます。
ここでは、vsFTPdのインストールから、chrootの設定やTLSの有効化、パッシブモードの設定などをしていきます。

FTPユーザーの追加

FTPサーバーに接続するための、専用ユーザーを追加しておくことはよいマナーです。ということで、まずはFTP接続専用ユーザーを追加して、ftpグループに加えておきます。

$ sudo useradd -m ftp_user
$ sudo passwd ftp_user
$ sudo usermod -aG ftp ftp_user

ここではFTP接続専用ユーザーとして、ftp_userを追加しました。

vsFTPdをインストール

Arch Linuxでは、vsFTPdは標準リポジトリに入っているので、インストールは以下のコマンド一発で完了します。

$ sudo pacman -S vsftpd

基本的な設定

まずは、基本的な設定をしていきます。
/etc/vsftpd.confを編集します。

/etc/vsftpd.conf
annonymous_enable=NO
local_enable=YES
write_enable=YES
use_localtime=YES

アクセスを許可するユーザーを設定

まず、/etc/vsftpd.confに以下を追記します。

/etc/vsftpd.conf
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

つぎに、/etc/vsftpd/user_listにアクセスを許可するユーザー名を列挙します。

/etc/vsftpd/user_list
ftp_user

これで、ftp_userがFTPサーバーにアクセスできるようになります。

chrootの設定

chrootをするためには、まず以下の設定を/etc/vsftpd.confに加えます。

/etc/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_config.d

つぎに、/etc/vsftpd/chroot_listファイルにchrootするユーザー名を列挙します。

/etc/vsftpd/chroot_list
ftp_user

さらに、/etc/vsftpd/user_config.d/の中に、chrootするユーザー名と同じ名前のファイルを作成し、そこにそのユーザー固有の設定を書き加えます。

/etc/vsftpd/user_config.d/ftp_user
local_root=/srv/http/www.example.com/
write_enable=YES

これで、ftp_userは/srv/http/www.example.com/ ディレクトリをローカルルートとして、書き込み可能な状態でchrootされるようになります。

TLSの有効化

TLSを有効化するためには、以下の設定を/etc/vsftpd.confに加えます。

/etc/vsftpd.conf
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/letsencrypt/live/www.example.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/www.example.com/privkey.pem

ここでは、認証にLet's Encryptを使用する場合の例を挙げています。

パッシブモードの有効化

アクティブモードとパッシブモード

FTP接続にはアクティブモードとパッシブモードの二種類があります。
アクティブモードでは、FTPサーバーは標準で21番ポートを使用して通信を行います。このとき、FTPクライアント側も21番ポートを使ってデータのやり取りをするため、クライアント側も21番ポートを解放してある必要があります。
一方でパッシブモードでは、データのやり取りにはサーバー側であらかじめ定められた仮想ポートを使います。クライアント側は21番ポートを解放する必要はありません。
現在では、セキュリティー上の観点からもパッシブモードが主に使われています。

パッシブモードの有効化

/etc/vsftpd.conf
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=myhost.example.com
pasv_min_port=60000
pasv_max_port=60100

myhost.example.comは自身のサーバーのドメイン名に読み替えてください。
ここでは、60000番から60100番までのポートをパッシブモードの通信用のポートとして使用するように設定しています。

ポートの解放

vsFTPdが外部と通信できるように、ファイアーウォールのポートを解放します。

$ sudo ufw allow 21/tcp
$ sudo ufw allow 60000:60100/tcp

ここでは、先に指定したものと同じ60000番から60100番までのポートを解放します。
上記では、ファイアーウォールはUFWを使用していることを想定しています。他のファイアーウォールを使っている場合も、基本的にやることは同じです。

vsFTPdの開始

$ sudo systemctl start vsftpd
$ sudo systemctl enable vsftpd

これで、vsFTPdのセットアップは完了です。

まとめ

今回は、vsFTPdを使ってFTPサーバーを構築する手順をまとめてみました。参考にしていただければ幸いです。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?