vsftpdを利用したFTPサーバの構築方法
必要なパッケージのインストール
ターミナル
sudo apt install vsftpd
設定ファイルの編集
ターミナル
sudo nano /etc/vsftpd.conf
エディタ
# /etc/vsftpd.conf
# アノニマス(匿名)ユーザを許可する。
anonymous_enable=YES
# ローカルユーザアカウントによるログインを許可する。
local_enable=YES
# ファイルに変更を加える FTP コマンドの使用を、許可するかどうかを指定する。
write_enable=YES
# (システム規定値)∩ (~(umask値))をする。
# 今回はシステム規定値 : 777, umask値 : 022なので、755を適用する。
local_umask=022
# ディレクトリメッセージを表示する。
dirmessage_enable=YES
# ログの取得を行う。
xferlog_enable=YES
# ftp_data_portで指定するポートを使用する。
connect_from_port_20=YES
# 取得するログの形式を指定する。(今回はデフォルト)
xferlog_std_format=YES
# IPv4有効化。
listen=YES
# IPv6無効化。
listen_ipv6=NO
# サービス名指定する。
pam_service_name=vsftpd
# denyファイル(/etc/hosts.allow, /etc/hosts.deny)を利用しない。
tcp_wrappers=NO
# userlist_fileを使用しない。
userlist_enable=NO
# パッシブモードの接続を許可する。
# ※パッシブモード : データ転送用・制御用の線の両方をクライアント側から接続する方式
pasv_enable=YES
# FTPサーバのIPアドレスを指定する。
pasv_address=192.168.10.97
# データ転送用ポートを指定する。
pasv_min_port=60001
pasv_max_port=60010
# 「.」から始まるファイルを含めた一覧を返す。
force_dot_files=YES
# ファイル (ディレクトリ) のタイムスタンプ表示をローカルタイムで行う。
use_localtime=YES
# アクセスするユーザの設定ファイルの場所を指定する。
user_config_dir=/etc/vsftpd/user_conf
# ユーザはログインディレクトリの外側にアクセスできなくなる。
chroot_local_user=NO
# 指定ファイルに記載されたユーザをchroot_local_userの設定に基づいて制御する。
chroot_list_enable=YES
# chroot_list_enableがYESの場合に参照するファイルを指定する。
chroot_list_file=/etc/vsftpd/chroot_list
# 書き込み許可をする。
allow_writeable_chroot=YES
設定の変更
アクセスするユーザの設定
ターミナル
mkdir -p [path]/ftp # FTPで使うフォルダを作成する。
sudo chmod 777 [path]/ftp # 権限を変更する。(読み書き実行出来るようにする。)
sudo mkdir -p /etc/vsftpd
sudo nano /etc/vsftpd/chroot_list # アクセスするユーザのリストを作成する。
エディタ
[ユーザ名]
アクセスするフォルダの設定
ターミナル
mkdir /etc/vsftpd/user_conf
sudo nano /etc/vsftpd/user_conf/[ユーザ名]
エディタ
local_root=[path]/ftp
FTPサーバを起動する。
ターミナル
sudo systemctl enable vsftpd
sudo systemctl restart vsftpd