【CentOS7】FTPサーバーインストール設定!ファイルアップロードをダウンロードを手軽に構築!

IT関連のお仕事をしていると、サーバーを良く作ることが増えますよね。
特に最近では仮想基盤を構築するうえで、VM関連、特にNSXなどはFTPサーバを利用したバックアップが必要となります。

FTPサーバーは簡単に言うと、ファイルのアップロードやダウンロードが簡単にできるようにする技術です。
特にバックアップファイルなどを定期的に溜め込んだり、ダウンロードしたりといろんな要素で利用できます。

今回は、CentOS7でFTPサーバーをインストール、構築までの手順を紹介します。

【CentOS7】FTPサーバーのインストールと構築の手順

ということで、FTPサーバーを構築するうえで下準備をします。
もちろんCentOS7はインストールしている状態から始めます。

まずは、下準備から始めていきます。

FTPサーバーアクセス用のユーザーを作成

初めにFTPサーバーへアクセスする際のユーザー名とパスワードを設定します。

#
# useradd test
# passwd test
ユーザー test のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
#

FTPサーバ用のディレクトリ作成

FTPサーバはではデフォルトで/home のディレクトリ内に接続ができるようになっています。
ここでは、とりあえず一番簡単なhome配下にディレクトリを作成します。

あとは、ログインできるユーザーと、書き込み権限を付与してあげればOKですね。

#
# mkdir /home/test-dr/
# chown test:test /home/test-dr/
# chmod 755 /home/test-dr/
#

FTPサーバ vsftpd をインストール

以下で、FTPサーバーをyumインストールします。

#
# yum -y install vsftpd
#

yumインストールはサーバー自体がネット環境につながっていないとパッケージダウンロードができずにインストールができません。

オフライン環境下でパッケージインストールを実施したい場合は以下の記事を参考にしてください。

FTPサーバーインストール後設定ファイルの編集を実施

FTPサーバーが正常にインストールできた後は以下のコンフィグファイルを編集します。
また、chrootを利用する際の設定も載せているので参考にしてください。
※今回はデフォルトの/homeで実施します。

# vi /etc/vsftpd/vsftpd.conf
~中略~
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO      ⇒NOへ変更
#
~中略~
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES    ⇒コメント(#)解除
ascii_download_enable=YES   ⇒コメント(#)解除
#
~中略~
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=NO      ⇒コメント(#)解除/chroot有効
chroot_list_enable=YES     ⇒コメント(#)解除/chroot有効
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list  ⇒コメント(#)解除/chroot有効
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES      ⇒コメント(#)解除/ディレクトリごと一括での転送有効
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES            ⇒YESへ変更/IPv4許可
#
~中略~
# Make sure, that one of the listen options is commented !!
listen_ipv6=NO         ⇒IPv6を使用しないのであればNOで

#以下は最終行へ追記
#ルートディレクトリ指定。指定しない場合はデフォルト/homeとなる
local_root=/home/
#ローカルタイムを使用
use_localtime=YES
#FTPサーバーへのログインに失敗する際は以下seccomp filter をオフにする
seccomp_sandbox=NO
#

FTPサーバーを起動する

以下、コマンドでFTPサーバーを起動します。

#
# systemctl start vsftpd
# systemctl enable vsftpd
#

FWを有効にしている場合は以下コマンドでFTPサービスを許可するようにしましょう。

#
# systemctl status firewalldfirewall-cmd --reloadadd-service=ftp --permanentsystemctl start firewalldfirewall-cmd --add-service=ftp --permanent
Warning: ALREADY_ENABLED: ftp
success
#

クライアントからFTPサーバーへアクセス

ここまで来たら、FTPサーバーへのアクセスが可能になります。
簡単な確認方法は、以下サイトからFFFTPをダウンロードしインストールしましょう。
https://forest.watch.impress.co.jp/library/software/ffftp/

アクセスは簡単で、

  • 接続先のIP
  • ユーザーID/パスワード ※ここではtest/test

を設定するだけです。
接続できたら、ファイルのアップロード・ダウンロードを試してみましょう!




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!