FTP接続の設定

サーバー情報

【さくらのVPS】
メモリ:8GB
ストレージ:SSD 400GB
CPU:6コア

OS

CentOS7 x86_64

インストール

Python:
pip:
git:
psql:
PostgreSQL:
Nginx:

3.6.8
9.0.3
1.8.3.1
9.2.24
9.2.24
1.16.1

仮想環境

Django:
Gunicorn:

3.1.4
20.0.4

FTP接続を行うために、サーバー内にvsftpdをインストールします。

sudo yum install vsftpd

vsftpdのインストールを行います

1.FTPの設定

変更を行う前に、バックアップファイルの作成を行います。

設定ファイルのコピー

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup

sudo vi /etc/vsftpd/vsftpd.conf

設定ファイルの変更を実施します。

※匿名ユーザーのFTPログインを許可しない

anonymous_enable=YES

anonymous_enable=NO

※ディレクトリメッセージを表示しない

dirmessage_enable=YES

dirmessage_enable=NO

※ログの取得形式を変更

xferlog_std_format=YES

xferlog_std_format=NO

※vsftpd形式ログのファイル名を指定する

(新規追加)

vsftpd_log_file=/var/log/vsftpd.log

※ASCIIモードによるアップロードを許可する

#ascii_upload_enable=YES

ascii_upload_enable=YES

※ASCIIモードによるダウンロードを許可する

#ascii_download_enable=YES

ascii_download_enable=YES

※ユーザールートディレクトリを制御する

#chroot_local_user=YES

chroot_local_user=YES

※リストアップユーザのファイル(chroot_list_file)を有効にする

#chroot_list_enable=YES

chroot_list_enable=YES

※書き込み権限があるとchroot出来ない機能を無効にする

(新規追加)

allow_writeable_chroot=YES

※chroot制御の除外ユーザをリストアップしたファイル名を指定

#chroot_list_file=/etc/vsftpd/chroot_list

chroot_list_file=/etc/vsftpd/chroot_list

※リストアップユーザーのアクセス拒否を制御する

(新規追加)

userlist_deny=NO

※参照するファイルを指定

(新規追加)

userlist_file=/etc/vsftpd/user_list

※ホストアクセスファイルをアクセス制御に利用しない

tcp_wrappers=YES

tcp_wrappers=NO

※ローカルタイムを使用する

(新規追加)

use_localtime=YES

※ファイル一覧要求の応答にドットファイルを含める

(新規追加)

force_dot_files=YES

※Passive mode の使用を許可する

(新規追加)

pasv_enable=YES

※パーミッション変更コマンドを許可する

(新規追加)

chmod_enable=YES

※vsftpdのルートディレクトリを設定

(新規追加)

local_root=/var/www/html

2.ユーザーの変更

リストアップユーザーに”root”権限以外に新規追加したユーザーを追加します。

sudo vi /etc/vsftpd/chroot_list

vsftpdを利用するために登録ユーザーの追加が必要

ユーザーリストに”root”権限以外に新規追加したユーザーを追加します。

sudo vi /etc/vsftpd/user_list

vsftpdを利用するために登録ユーザーの追加が必要

FTPユーザーとして”root”権限のユーザーを削除します。

sudo vi /etc/vsftpd/ftpusers

FTP接続を許可されているユーザーから

“root”権限のユーザーを削除(コメントアウト)

3.サービスの起動設定

FTPを利用するために、vsftpdの起動設定を行います。

sudo systemctl enable vsftpd.service

vsftpdの自動起動設定を行います。

ポイント

≪ファイアウォールの設定を行っている場合≫

FTP通信を行うためのポートを開放しないと接続できないため、下記コマンドを実施してFTPポートの開放を行ってください。

sudo firewall-cmd --add-service=ftp

上記コマンドを実施し、「success」が表示されることを確認します。

sudo firewall-cmd --list-services

上記コマンドを実施し、設定されているクライアント情報を確認します。

準備が整ったらvsftpdを再起動させ、FTP接続させるための設定内容を反映させます。

sudo systemctl restart vsftpd.service

vsftpdを再起動させます。