CentOS7でFTPサーバを構築した時の覚書です。
インストール
yumでサクッとインストール
# yum -y install vsftpd
インストールできたか確認
# rpm -q vsftpd
vsftpd-3.0.2-21.el7.x86_64
無事にvsftpd-3.0.2がインストールできました。
初期設定
FTPサーバの設定ファイルvsftpd.confを設定します。
設定は下記のサイトを参考にさせていただきました。
# gedit /etc/vsftpd/vsftpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# 12行目:匿名ログインの禁止
anonymous_enable=NO
# 82、83行目:アスキーモードでの転送を許可
ascii_upload_enable=YES
ascii_download_enable=YES
# 100、101行目:chroot有効
chroot_local_user=YES
chroot_list_enable=YES
# 103行目:chrootリストの場所を指定
chroot_list_file=/etc/vsftpd/chroot_list
# 109行目:ディレクトリ毎の一括転送を許可
ls_recurse_enable=YES
# 114行目:IPv4のソケットを使うのでYESに変更
listen=YES
# 123行目:IPv4のソケットは使わないのでNO
listen_ipv6=NO
# 以下は追加
# ルートディレクトリを指定
local_root=public_html
# seccomp filter をオフにする ( ログインに失敗する場合はオフにする )
# カーネルのバージョンが3.5以上のときはONにしないといけないらしい。
seccomp_sandbox=NO
# 日本時間を使う
use_localtime=YES
|
# gedit /etc/vsftpd/chroot_list
ルートディレクトリの変更が出来るユーザー名を入力
(1行に1ユーザ)
SElinuxと Firewallの設定
# firewall-cmd –add-service=ftp –permanent
# firewall-cmd –add-port=21/tcp –permanent 上でサービスとしてftpを登録したのでポートは開ける必要はないかもしれませんが一応開ける。
# firewall-cmd –reload 設定を適用
# setsebool -P ftpd_full_access on
サービスの起動
# systemctl start vsftpd 起動
# systemctl enable vsftpd 自動起動に設定
これでFTPサーバ構築完了のはずでしたが・・・
# systemctl start vsftpd
Job for vsftpd.service failed because the control process exited with error code. See “systemctl status vsftpd.service” and “journalctl -xe” for details.
起動しない・・・
詳細を見ろと言われるのでとりあえずステータスを確認すると、
vsftpd.confがおかしいようだ。
# systemctl status vsftpd.service
Process: 11832 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)
・
・
・
起動できない原因は?
起動できない原因をいろいろ調べた結果、vsftpd.confの文末に追加した
local_root=public_html
seccomp_sandbox=NO
use_localtime=YES
の後ろにスペースが入っていただけでした。
追加した3文はWebで見つけてコピーしてきたものを貼りつけていたので、
後ろのスペースが入っていたことに全く気付きませんでした。
横着はよくないです。