LoginSignup
31
41

More than 3 years have passed since last update.

【初心者向け】CentOS7でFTPサーバー構築

Posted at

はじめに

今やっている案件でFTPを使用してファイルをGETするスクリプトが必要となり
検証環境でFTPサーバを立てる必要があったのでつくりました。
備忘のためもあるので、お手軽にFTPサーバ作りたいという人の参考になればと思います。

環境

今回は以下環境で作成します。
OS:CentOS7

構築

FTP接続用ユーザ作成

まずはFTPで接続するためのユーザを作成する。

# useradd ftp-user
# passwd ftp-user # パスワード設定

FTP用のディレクトリ作成

FTPでは通常chrootといって、上位のディレクトリに接続できないような設定を入れることが通常です。
なので、まずはFTPで接続したときにデフォルトでたどり着くディレクトリを作成しておきます。(今回は/var/www/ftp_dirとします。)
作成したら権限変更もしておきましょう。

# mkdir -p /var/www/ftp_dir
# chown ftp-user /var/www/ftp_dir
# chmod 755 /var/www/ftp_dir

FTPのインストール

# yum -y install vsftpd

FTPの設定

/etc/vsftpd/vsftpd.conf
# 以下を追記します。# userlist_fileで指定指定したユーザを有効にする(接続できる)
userlist_enable=YES

# アクセスファイル(/etc/hosts.allow, /etc/hosts.deny)をアクセス制御に利用しない
tcp_wrappers=NO


# パッシブモードの接続を許可する
pasv_enable=YES

# FTPサーバのIPアドレスを指定(パッシブモードで接続時)
pasv_address=[FTPサーバーのIP]
※上記のIPは固定となります。

# ポート指定 
pasv_min_port=60001
pasv_max_port=60010
※ポートはハイポートであれば特に指定はありません

# ドットから始まるファイルを含めた一覧を返す
force_dot_files=YES

# ファイル(またはディレクトリ)のタイムスタンプの表示をローカルタイムで表示する
use_localtime=YES

#ユーザー毎の設定ファイルの場所を指定する。
user_config_dir=/etc/vsftpd/user_conf

/etc/vsftpd/vsftpd.conf
# 以下のコメントを外します。

chroot_local_user=NO

#chrootを有効化する。
chroot_list_enable=YES

#chroot対象のユーザーリストファイルの場所を指定する。
chroot_list_file=/etc/vsftpd/chroot_list

FTP接続用ユーザの登録

/etc/vsftpd/chroot_list
ftp-user
# mkdir /etc/vsftpd/user_conf
# vi /etc/vsftpd/user_conf/ftp-user

以下を設定することでftp-userで接続したときのchrootは「/var/www/ftp_dir」となる。

/etc/vsftpd/user_conf/ftp-user
local_root=/var/www/ftp_dir

サービス起動

# systemctl start vsftpd

接続確認

Windowsの端末からコマンドプロンプトを起動し、接続確認を行います。

>ftp [FTPサーバーのIPアドレス]
[FTPサーバーのIPアドレス]に接続しました。
220 (vsFTPd x.0.x)
200 Always in UTF8 mode.
ユーザー ([FTPサーバーのIPアドレス]:(none)):    ←FTP接続ユーザ名
331 Please specify the password. ←パスワードを入力
パスワード:

230 Login successful. ←これがでていれば接続OK

試しにdirを打ってみると、chrootに設定したフォルダ配下のファイルが確認できる。

参考記事

FTPサーバの設定手順
centos7のvsftpdでchroot環境を作る

31
41
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
31
41