LoginSignup
0
1

More than 3 years have passed since last update.

【CentOS7.3】ESXiホスト上にFTPサーバを構築

Posted at

はじめに

ESXiホスト上に乗せたCentOS7.3にてFTPサーバを構築してみました。
その手順をこの記事を見ているあなたに向けてアウトプットします。

そもそもFTPサーバとは?

FTPを使用してファイルの送受信を行うサーバのこと。

※詳細は下記リンクを参照
【入門】FTPとは?通信・ソフトについて分かりやすく解説します

環境

項目 説明
Hypervisor  ESXi6.7
OS CentOS7.3
  • OS
[root@tspweb01 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@tspweb01 ~]#

※最小限のインストール&下記設定を実施済み
【Linux】CentOS7.3のOSインストール後の基本設定

構築手順

FTP接続用ユーザー作成

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

[root@tspweb01 ~]# useradd ftp-user
[root@tspweb01 ~]# passwd ftp-user
ユーザー ftp-user のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@tspweb01 ~]#

FTP用のディレクトリ作成

①FTP用ディレクトリ作成

[root@tspweb01 ~]# mkdir -p /var/www/ftp_dir

②FTP用ディレクトリの所有者変更
ftp-userをディレクトリのオーナーにする。

[root@tspweb01 ~]# chown ftp-user /var/www/ftp_dir

③FTP用ディレクトリの権限変更

[root@tspweb01 ~]# chmod 755 /var/www/ftp_dir

④FTP用ディレクトリの確認

[root@tspweb01 ~]# ls -la /var/www | grep ftp
drwxr-xr-x.  2 ftp-user root   6  6月 19 21:47 ftp_dir
[root@tspweb01 ~]#

FTPのインストール

  • vsftpdインストール
yum -y install vsftpd
  • vsftpdインストール確認
[root@tspweb01 ~]# rpm -qa | grep vsftpd
vsftpd-3.0.2-27.el7.x86_64
[root@tspweb01 ~]#

FTPの設定

  • FTP設定ファイルバックアップ
[root@tspweb01 ~]# cp -p /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_`date +'%Y%m%d'`
[root@tspweb01 ~]#
[root@tspweb01 ~]# ls -la /etc/vsftpd/
合計 40
drwxr-xr-x.  2 root root  116  6月 19 22:05 .
drwxr-xr-x. 77 root root 8192  6月 19 22:01 ..
-rw-------.  1 root root  125  4月  1 13:55 ftpusers
-rw-------.  1 root root  361  4月  1 13:55 user_list
-rw-------.  1 root root 5116  4月  1 13:55 vsftpd.conf
-rw-------.  1 root root 5116  4月  1 13:55 vsftpd.conf_20200619
-rwxr--r--.  1 root root  338  4月  1 13:55 vsftpd_conf_migrate.sh
[root@tspweb01 ~]#
  • FTP設定
/etc/vsftpd/vsftpd.conf

# 以下の記載があることを確認## userlist_fileで指定指定したユーザを有効にする(接続できる)
userlist_enable=YES

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

# 以下のコメントを外します。

## 設定したlocal_rootより上層ディレクトリへの移動を禁止
chroot_local_user=NO

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

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

## パッシブモードの接続を許可する
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

FTP接続用ユーザの登録

/etc/vsftpd/chroot_list
ftp-user

FTPユーザーログイン時のディレクトリ設定

ftp-userで接続したときのchrootが「/var/www/ftp_dir」になるように設定

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

サービス起動

systemctl start vsftpd

確認

Windowsの端末からコマンドプロンプトを起動し、接続確認を行う。
下記のようにFTPサーバーにログインできれば問題なし。

C:\Users\owner>ftp 192.168.0.41
192.168.0.41 に接続しました。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
ユーザー (192.168.0.41:(none)): ftp-user ← ユーザー名入力
331 Please specify the password. 
パスワード: ← パスワード入力
230 Login successful.
ftp>

※接続できない場合は、firewalldサービスが停止しているか確認。

ちなみに、ルートディレクトリの場所は以下となっている。

ftp> pwd
257 "/var/www/ftp_dir"
ftp>

参考記事

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

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