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?

More than 3 years have passed since last update.

vagrant環境でvsftpdを使ってテスト用FTP/FTPSサーバーを構築する

Last updated at Posted at 2020-09-08

現場でFTP関連の開発を行った際に、ローカル環境(vagrant)でFTPのアップロード・ダウンロードのテストを行いたかったため、テスト用のFTPサーバーを構築しました。

ftp専用のユーザーを作成しログインできるようにしたかったが、ftpのログイン時のパスワードで530エラーになってしまい、原因がわからず、仕方なくvagrantユーザーをそのまま使うことに(ローカル環境でテストできればいいので今回は良しとする。。)

FTPサーバーの構築

vsftpdのインストール

$ vagrant ssh

$ sudo yum -y install vsftpd

vsftpd.confの設定

# 下記に設定ファイルがある
$ ls /etc/vsftpd

$ cd /etc/vsftpd
$ cp vsftpd.conf vsftpd.conf.bk #念の為バックアップを取っておく

$ sudo vi /etc/vsftpd/vsftpd.conf

下記で設定。

/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES

pam_service_name=vsftpd
tcp_wrappers=YES

# passiveモードで使いたいので
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100

# 特定のユーザーだけログインできるように
user_config_dir=/etc/vsftpd/vsftpd_user_conf
userlist_enable=YES
userlist_deny=NO

# 特定のユーザーにchrootを設定する
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

vsftpd_user_confの設定

$ cd /etc/vsftpd
$ sudo mkdir vsftpd_user_conf

$ sudo vi vsftpd_user_conf/vagrant
/etc/vsftpd/vsftpd_user_conf/vagrant
local_root=/home/vagrant #追加

user_listの設定

$ cd /etc/vsftpd

$ sudo vi user_list
/etc/vsftpd/user_list
vagrant #追加

chroot_listの設定

$ cd /etc/vsftpd

$ sudo vi chroot_list
/etc/vsftpd/chroot_list
vagrant #追加

vsftpdの起動

$ sudo service start vsftpd  #起動

停止、再起動する場合は下記。

$ service stop vsftpd  #停止
$ service restart vsftpd  #再起動

FTPで接続できるかテスト

FTPコマンドが入ってなかったのでインストール。

$ sudo yum -y install ftp

接続できるか確認してみる。

$ ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:vagrant): vagrant
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

接続できました。

FTPSサーバーの構築

FTPSのテストを行いたい場合。

こちらの解説がわかりやすかったです。
http://ossfan.net/setup/vsftpd-02.html

vsftpdの再起動

$ sudo service vsftpd restart

FTPSで接続できるかテスト

再起動後、先ほどのFTPコマンドでログインしようとすると、530 Non-anonymous sessions must use encryption.でエラーになるはずです。FTPSで接続するためにlftpコマンドを使います。

lftpコマンドのインストール

$ sudo yum -y install lftp

接続のテスト。

$ lftp vagrant@localhost
Password:
lftp vagrant@localhost:~>

接続できました。

0
1
0

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?