7
6

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 5 years have passed since last update.

CentOS7 vsftpd

Last updated at Posted at 2018-03-31

CentOS7にvsftpdを導入してftpサーバーを構築したときのメモ。

wordpressを運用していると、プラグインやテーマを更新する際にFTPかFTPSを構築する必要がある。
今時FTPを使う機会は減っているとは思うけれども・・・
そもそもFTPは認証も含め暗号化されないし、FTPSを使うぐらいならSCPかSFTP使った方が楽だけれども・・・

#前提
CentOS7でWEBサーバーを構築し、lets encryptでhttpsを対応していること
※ftpsは証明書が必要なため
 ただのFTPだけならwebサーバーも証明書も不要

WEBサーバーとSSL(lets encryptの証明書)の構築はこちら
https://qiita.com/salt_field/items/31acb1cbb707102e0702

FTPサーバーはマルチドメインではなく、メインのドメインのみで運用することを前提とする。
同一サーバーなので、wordpressで使用する際はユーザー名とパスワードだけ変更すれば問題ない。たぶん

vsftpdの設定項目の意味はこちらを参照しました。
http://www.nina.jp/server/redhat/vsftpd/vsftpd.conf.html#log

##ドメインとかユーザーの情報

項目 メインドメイン
ドメイン main.test.com
ユーザー User1
パスワード User1Pass

##インストール

yum -y install vsftpd

##設定変更

#vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
log_ftp_protocol=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES

###ここから下は最後に追記する。###

local_root=public_html

pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
use_localtime=YES
allow_writeable_chroot=YES

pasv_enable=YES
pasv_address=main.test.com
pasv_min_port=60000
pasv_max_port=60030
pasv_addr_resolve=YES
pasv_promiscuous=YES

ssl_enable=YES
rsa_cert_file=/etc/letsencrypt/live/main.test.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/main.test.com/privkey.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH

public_html以外のディレクトリへのアクセスを許可する場合はchroot_listにユーザー名を追記する。

echo User1 >> /ect/vsftpd/chroot_list

##ポートを開放する

firewall-cmd --add-service=ftp --zone=public --permanent
firewall-cmd --add-port=60000-60030/tcp --zone=public --permanent
firewall-cmd --reload

##起動

systemctl start vsftpd
systemctl enable vsftpd

##あとがき
ffftpでアクセスするとき、ipv4、ipv6いずれかでアクセスできると認証はできるが、その後パッシブモードに(勝手に)切り替わったとき、どちらかのアドレスでしかアクセスできなくなる。(勝手に切り替わるのは設定しているからだけれども)
DNSをきちんと設定してある&サーバーに適切なIPが設定してある状態でないと、ドはまりする。
私の場合、IPv6のDNSが古いアドレスで設定されている状態だった為、ipv4でログインした後パッシブモード(ipv6)時にファイル一覧が取得できずアップロードもダウンロードもできない状態になった・・・

適切な設定がされているのに上記のような症状に悩まされたらDNS設定を見てみよう。

こんな初歩的な問題&個別すぎる問題はググっても出てこないから気を付けよう。

7
6
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
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?