CONTENTS
FTPサーバーについて
FTP「File Transfer Protocol(ファイル・トランスファー・プロトコル)」はPC等のクライアントからFTPサーバーにファイルを転送するためのサービスです。
ファイルサーバーとして使うのが一般的ですが、ファイル管理はクラウドが主流のこのご時世ではあまり見かけないかもですね。
ファイルサーバーとしては使わないがWordpressのパッケージのインストでFTPを使うと便利です。
(WordPressはFTPが無くてもファイル転送は可能です。)
▼公式WEB
FTPのLinuxパッケージは主に「vsftp」と「proftp」の2つが有名ですが、今回は proftp を選択します。
- 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のインストール
▼インストールパッケージの確認
1 2 3 4 5 6 7 8 |
# 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 |
▼インストールの実行
1 |
# dnf -y install proftpd |
proftpdのコンフィグ設定
1 |
# vi /etc/proftpd.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 |
▼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の起動設定
▼自動起動
1 |
# systemctl enable proftpd |
▼自動起動の確認
1 2 |
# systemctl is-enabled proftpd enabled |
「enabled」になっていればOK。
▼起動
1 |
# systemctl start proftpd |
▼起動確認
1 2 3 4 |
# 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 20 |
「Active: active (running) 」になっていればOK。
20-10-05 04:35:27 JST; 5s ago
WinSCPで日本語が文字化けする場合
クライアントアプリとしてWindowsの「WinSCP」を利用した場合の解説です。
1.WinSCPを起動して文字化けを解消したいセッションの「設定」をクリック
2.「環境」をクリックして「ファイル名をUTF-8でエンコード」を「オン」に設定