FTP (proftpd) Server

CentOS 8にFPTサーバーを導入(proftpd)

FTPサーバーについて

FTP「File Transfer Protocol(ファイル・トランスファー・プロトコル)」はPC等のクライアントからFTPサーバーにファイルを転送するためのサービスです。

ファイルサーバーとして使うのが一般的ですが、ファイル管理はクラウドが主流のこのご時世ではあまり見かけないかもですね。

ファイルサーバーとしては使わないがWordpressのパッケージのインストでFTPを使うと便利です。
(WordPressはFTPが無くてもファイル転送は可能です。)

 

▼公式WEB
FTPのLinuxパッケージは主に「vsftp」と「proftp」の2つが有名ですが、今回は proftp を選択します。
http://www.proftpd.org/docs/

 

構築環境

  • CentOS Linux release 8.2.2004 (Core)
  • ProFTPD Version 1.3.6e

 

 

ルータのポート開放でFTP通信を受け入れる

FTPサーバーの構築を行う前に、サーバー側NWのルータのポートを開放して、外部からの通信がサーバーに届くようにします。
FTPサーバーは「通信制御用」「ファイル転送用」の2種類のポートを解放する必要があります。

ポートの設定方法はルータによって違いますが、概ね下記のような感じです。
ルータが「開始ポート」と「終了ポート」で範囲指定ができる場合は、「TCP/UDP 20~21 192.168.x.x」のように設定する事も可能です。

 

用途 プロトコル 開始ポート 終了ポート サーバーのローカルアドレス
通信制御 TCP/UDP 21 21 192.168.x.x
データ転送 TCP/UDP 20 20 192.168.x.x

 

▼通信イメージ

 

 

▼ルータの設定イメージ

 

上記ルータ設定について補足

FTPサーバーで使うポート開放の説明をしましたが、ウチの環境ではFTPはローカル内のみでの利用に限定しており外部に公開していません。
そのため、上記のルータの設定でFTPポートの開放設定はしていないのです。

 

 

proftpdのインストール

CentOS 8 では dnf コマンドを利用してパッケージ情報検索やインストール、削除を行うことができます。
パッケージファイルが管理されているダウンロードサーバーをリポジトリと呼び、新規でリポジトリを追加することで、ダウンロードできるファイルの種類を増やすことが可能です。

このパッケージはEPELリポジトリよりDLしてインストールする必要があります。
まだEPELリポジトリが追加されていない場合は こちら の手順を先に確認してください。

▼インストールパッケージの確認

 command
# dnf list | grep proftpd
proftpd.x86_64 1.3.6e-1.el8 @epel
proftpd-devel.x86_64 1.3.6e-1.el8 epel
proftpd-ldap.x86_64 1.3.6e-1.el8 epel
proftpd-mysql.x86_64 1.3.6e-1.el8 epel
proftpd-postgresql.x86_64 1.3.6e-1.el8 epel
proftpd-sqlite.x86_64 1.3.6e-1.el8 epel
proftpd-utils.x86_64 1.3.6e-1.el8 epel

 

▼インストールの実行

「-y」オプションを指定すると、インストール可否の確認で「yes」となり自動的にインストールが開始します。

 command
# dnf -y install proftpd

 

 

proftpdのコンフィグ設定

 command
# vi /etc/proftpd.conf

proftpd.conf

▼FTPにログインした際に表示されるメッセージの編集。
ServerName "HS7716-example.com. Fack you!!"

 

▼日本語のファイルが扱えるように設定を追加。
サーバー上はutf8 クライアントはcp932
UseEncoding utf8 cp932

 

▼ファイル作成時の初期パーミッションを変更
Umaskはファイル作成時は666より022を引いた644のパーミッションで作成され、ディレクトリ作成時は777から022を引いた755でファイルが作成されるという設定になります。
Umask 022

Umask 000

 

▼ドキュメントルート
admin グループに属するユーザ意外は、ホームディレクトリより上に移動不可。
DefaultRoot ~ !adm

 

▼匿名ログインを全てコメントで機能しないようにする
#
# Include /etc/proftpd/anonftp.conf
#

 

ココに注意

ドキュメントルーの設定を行わないと「/home」より上位の「/root」ディレクトリ等も操作できてしまうので、必ず設定しておきましょう。

 

 

proftpdの起動設定

▼自動起動

 command
# systemctl enable proftpd

 

▼自動起動の確認

 command
# systemctl is-enabled proftpd
enabled

enabled になっていればサーバー再起動で自動で敵にサービスが起動します。

 

▼起動

 command
# systemctl start proftpd

 

 

▼起動確認

 command
# systemctl status proftpd
● proftpd.service - ProFTPD FTP Server
Loaded: loaded (/usr/lib/systemd/system/proftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-10-05 04:35:27 JST; 5s ago

最後までエラーが無く Active: active (running) となっていればOK。

 

WinSCPで日本語が文字化けする場合

クライアントアプリとしてWindowsの「WinSCP」を利用した場合の解説です。

1.WinSCPを起動して文字化けを解消したいセッションの「設定」をクリック

WinSCPを起動して文字化けを解消したいセッションの「設定」をクリック

 

2.「環境」をクリックして「ファイル名をUTF-8でエンコード」を「オン」に設定
「環境」をクリックして「ファイル名をUTF-8でエンコード」を「オン」に設定

 

 

おすすめ

1

Windows10で構築するサーバー構成の例 知らない人も多いかと思いますが、Windows8のころからWindowsは Hyper-v(ハイパーブイ)と呼ばれるハイパーバイザ型の仮想化システムと、 ...

2

記憶域について この記事ではWindows 10 の記憶域によるストレージの作成方法について解説します。 そもそも記憶域について詳しく知りたい方は、下記の記事で解説していますので、ご覧ください。 St ...

3

概要 WordPressとAFFINGER5についての解説記事でも少し紹介しましたが、AFFINGER5には270以上のタグ機能があります。 あまりにも数が多く探すのが大変なので、効果一覧を作っておき ...

4

ディレクションを担当した世界遺産のガイドアプリより、ムービー用のBGMを1曲担当しました。 Misumi-nishikou It is BGM created for app video. sound ...

5

こちらはプライベートで作成したYoutube投稿用サイクリングムービーのBGMです。 EDM Sound-2 EDM sound for my Youtube. soundcloud.com

-FTP (proftpd), Server