このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7/ProFTPDのインストールから設定まで

CentOS-7にFTPサーバーのProFTPDをインストールする方法です。

ProFTPDは、CentOSの標準リポジトリに入っていないので、EPELリポジトリからインストールすることにします。

EPELリポジトリを追加していない場合は、追加します。
CentOS-7で、EPEL・REMIリポジトリを追加する


ProFTPDをインストールする

ProFTPDがリポジトリに存在するか検索します。
EPELリポジトリのProFTPDが結果に出てくるはずです。

結果に proftpd が出てこない場合は、EPELリポジトリが追加されていない可能性が高いので、EPELリポジトリを追加してください。
CentOS-7で、EPEL・REMIリポジトリを追加する

ProFTPD 検索

[root@vm ~]# yum list | grep proftpd
proftpd.x86_64                         1.3.5e-4.el7                    epel
proftpd-devel.x86_64                   1.3.5e-4.el7                    epel
proftpd-ldap.x86_64                    1.3.5e-4.el7                    epel
proftpd-mysql.x86_64                   1.3.5e-4.el7                    epel
proftpd-postgresql.x86_64              1.3.5e-4.el7                    epel
proftpd-sqlite.x86_64                  1.3.5e-4.el7                    epel
proftpd-utils.x86_64                   1.3.5e-4.el7                    epel
[root@vm ~]#

ProFTPDをyumコマンドでインストールします。

ProFTPD インストール

[root@vm ~]# yum -y install proftpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                     | 5.0 kB     00:00
 * base: mirrors.cat.net
 * epel: ftp.jaist.ac.jp
 * extras: mirrors.cat.net
 * remi-safe: ftp.riken.jp
 * updates: mirrors.cat.net
base                                                     | 3.6 kB     00:00
epel                                                     | 4.7 kB     00:00
http://fedora.cs.nctu.edu.tw/epel/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
他のミラーを試します。
epel                                                     | 4.7 kB     00:00
extras                                                   | 3.4 kB     00:00
remi-safe                                                | 3.0 kB     00:00
updates                                                  | 3.4 kB     00:00
(1/4): remi-safe/primary_db                                | 1.4 MB   00:03
(2/4): epel/x86_64/primary_db                              | 6.7 MB   00:04
(3/4): epel/x86_64/updateinfo                              | 998 kB   00:04
(4/4): updates/7/x86_64/primary_db                         | 4.2 MB   00:05
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ proftpd.x86_64 0:1.3.5e-4.el7 を インストール
--> 依存性の処理をしています: libmemcached.so.11()(64bit) のパッケージ: proftpd-1.3.5e-4.el7.x86_64
--> 依存性の処理をしています: libmemcachedutil.so.2()(64bit) のパッケージ: proftpd-1.3.5e-4.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libmemcached.x86_64 0:1.0.16-5.el7 を インストール
--> 依存性の処理をしています: libevent-2.0.so.5()(64bit) のパッケージ: libmemcached-1.0.16-5.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libevent.x86_64 0:2.0.21-4.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package              アーキテクチャー
                                     バージョン              リポジトリー  容量
================================================================================
インストール中:
 proftpd              x86_64         1.3.5e-4.el7            epel         3.7 M
依存性関連でのインストールをします:
 libevent             x86_64         2.0.21-4.el7            base         214 k
 libmemcached         x86_64         1.0.16-5.el7            base         237 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 4.1 M
インストール容量: 11 M
Downloading packages:
(1/3): libmemcached-1.0.16-5.el7.x86_64.rpm                | 237 kB   00:01
(2/3): libevent-2.0.21-4.el7.x86_64.rpm                    | 214 kB   00:01
(3/3): proftpd-1.3.5e-4.el7.x86_64.rpm                     | 3.7 MB   00:04
--------------------------------------------------------------------------------
合計                                               996 kB/s | 4.1 MB  00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libevent-2.0.21-4.el7.x86_64                    1/3
  インストール中          : libmemcached-1.0.16-5.el7.x86_64                2/3
  インストール中          : proftpd-1.3.5e-4.el7.x86_64                     3/3
  検証中                  : libmemcached-1.0.16-5.el7.x86_64                1/3
  検証中                  : libevent-2.0.21-4.el7.x86_64                    2/3
  検証中                  : proftpd-1.3.5e-4.el7.x86_64                     3/3

インストール:
  proftpd.x86_64 0:1.3.5e-4.el7

依存性関連をインストールしました:
  libevent.x86_64 0:2.0.21-4.el7       libmemcached.x86_64 0:1.0.16-5.el7

完了しました!
[root@vm ~]#


xinetdをインストールする

ProFTPDの起動をスーパーサーバーである xinetd で管理するのて、xinetdをインストールします。

xinetd 検索

[root@vm ~]# yum list | grep xinetd
xinetd.x86_64                          2:2.3.15-13.el7                 base
[root@vm ~]#

xinetd インストール

[root@vm ~]# yum -y install xinetd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cat.net
 * epel: ftp.riken.jp
 * extras: mirrors.cat.net
 * remi-safe: ftp.riken.jp
 * updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ xinetd.x86_64 2:2.3.15-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package         アーキテクチャー
                                 バージョン                 リポジトリー   容量
================================================================================
インストール中:
 xinetd          x86_64          2:2.3.15-13.el7            base          128 k

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 128 k
インストール容量: 261 k
Downloading packages:
xinetd-2.3.15-13.el7.x86_64.rpm                            | 128 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 2:xinetd-2.3.15-13.el7.x86_64                   1/1
  検証中                  : 2:xinetd-2.3.15-13.el7.x86_64                   1/1

インストール:
  xinetd.x86_64 2:2.3.15-13.el7

完了しました!
[root@vm ~]#

xinetdが起動しているか否か確認します。

xinetd 起動状態確認

[root@vm ~]# systemctl status xinetd
● xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
[root@vm ~]#

xinetdが起動していないようなので、起動させます。

xinetd 起動

[root@vm ~]# systemctl start xinetd.service
[root@vm ~]#

再度、xinetdの起動状態を確認します。
Active: active (running) となっているので、起動しているようです。

xinetd 起動状態 確認

[root@vm ~]# systemctl status xinetd
● xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
   Active: active (running) since 火 YYYY-MM-DD 00:00:00 JST; 2s ago
  Process: 5277 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 5278 (xinetd)
   CGroup: /system.slice/xinetd.service
           └─5278 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid

 ~ 中略 ~

 ?月 00 00:00:00 vm.lan xinetd[5278]: Started working: 0 available services
Hint: Some lines were ellipsized, use -l to show in full.
[root@vm ~]#


設定

ProFTPDのインストールが完了したら、設定します。
SSLの設定をする場合は、証明書が必要です。
自己証明書の作成ですが、下記ページを参考にSSL/TLS証明書をインストールします。

SSL/TLS証明書を指定する

ProFTPDを設定する

ProFTPDの設定ファイル proftpd.conf を/root/etc/ 内にコピーします。

ProFTPD 設定ファイル バックアップ

[root@vm ~]# cp -a -P /etc/proftpd.conf /root/etc/
[root@vm ~]#

ProFTPD 設定ファイル 編集

[root@vm ~]# vi /etc/proftpd.conf

#--------------------------------------------------
DefaultRoot                    ~ !adm
 ↓ 変更する
DefaultRoot                     ~ !wheel



###▼ 以下、最終行に追記する
##★ サーバータイプ : スーパーサーバーモード(xinetd)での起動
ServerType                  inetd

##★ 追記する | PASVモード用のポート番号を指定 今回は、50010~50030 を指定
PassivePorts                50010 50030

##★ 追記する | アクセスログを記録する
ExtendedLog                 /var/log/proftpd/access.log WRITE,READ default

##★ 追記する | 認証ログを記録する
ExtendedLog                 /var/log/proftpd/auth.log AUTH auth

##★ 追記する | タイムゾーンを日本時間に設定
TimesGMT                     off
SetEnv                      TZ :/etc/localtime

##★ SSL/TLS の設定を追記

  LoadModule mod_tls.c


  TLSEngine                 on

  ##★ SSL/TLS接続を強制する場合のみ on にする
  #TLSRequired               on

  ##★ SSL/TLSプロトコル・バージョンを指定する。ここでは、SSLv3およびTLSv1の両方を許可する互換性モード(SSLv23)を指定
  TLSProtocol               SSLv23

  ##★ SSL/TLS証明書を指定する
  TLSRSACertificateFile     /etc/pki/tls/certs/server.crt

  ##★ SSL/TLS秘密鍵を指定する
  TLSRSACertificateKeyFile  /etc/pki/tls/private/server.key

  ##★ 利用可能な暗号を指定する (ADHキー交換を含まないすべての利用可能な暗号を指定した)
  TLSCipherSuite            ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

  ##★ 証明書の警告をださない、SSLセッションの再利用を許可しない
  TLSOptions                NoCertRequest NoSessionReuseRequired

  ##★ クライアント証明書を無視するには off
  TLSVerifyClient           off

  ##★ ログを記録する
  TLSLog                    /var/log/proftpd/tls.log

#--------------------------------------------------

#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#

Xinetdを設定する


Xinetdの設定ファイルをバックアップしてから、編集します。

Xinetd 設定ファイル バックアップ

[root@vm ~]# cp -a -P /etc/xinetd.d/xproftpd /root/etc/
[root@vm ~]#

xinetd 設定ファイル 編集

[root@vm ~]# vi /etc/xinetd.d/xproftpd

#--------------------------------------------------
# default: off
# description: The ProFTPD FTP server serves FTP connections. It uses \
#       normal, unencrypted usernames and passwords for authentication.
service ftp
{
 flags           = REUSE
 socket_type     = stream
 wait            = no
 user            = root
 server          = /usr/sbin/in.proftpd

 ##★ log_on_success
 log_on_success  += DURATION
          ↓ 変更する
 log_on_success  += DURATION HOST PID
 log_on_success  += HOST USERID PID      <-- :wq="" code="" disable="no" host="" log_on_failure="" nice="10" root="" userid="" vm="">


ProFTPDの起動設定はxproftpd

ProFTPDの自動起動の設定を ON にします。

自動起動の設定 ON

[root@vm ~]# chkconfig xproftpd on
[root@vm ~]#

自動起動 設定再確認

[root@vm ~]# chkconfig --list xproftpd

注記: この出力に含まれるのは SysV サービスのみです。ネイティブな
      systemd サービスは含まれません。SysV の設定データはネイティブな
        systemd 設定で上書きされる場合があります。
      systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
      特定のターゲットで有効になっているサービスを確認する場合は
      'systemctl list-dependencies [target]'を使用します。

xproftpd        on
[root@vm ~]#

xinetd デーモン再起動

[root@vm ~]# systemctl restart xinetd.service
[root@vm ~]#


ProFTPD用FireWallを設定する

ProFTPD用FireWall(ファイアウォール)のファイルを新規作成します。

Firewallファイル 新規作成

[root@vm ~]# vi /etc/firewalld/services/proftp.xml

#--------------------------------------------------


  ProFTP
  ProFTP
  
  

#--------------------------------------------------

#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#

パーミッション 変更

[root@vm ~]# chmod 0640 /etc/firewalld/services/proftp.xml
[root@vm ~]#


恒久的にサービスをFireWall(ファイアウォール)に追加する

サービス 恒久的追加

[root@vm ~]# firewall-cmd --zone=public --add-service=proftp --permanent
success
[root@vm ~]#

設定 再読込

[root@vm ~]# firewall-cmd --reload
success
[root@vm ~]#

設定 確認

[root@vm ~]# firewall-cmd --list-services
ssh dhcpv6-client http https proftp
[root@vm ~]#

これで、ポート番号:21で接続できるはずですが
クライアントPCの環境によっては、接続できなかったり、ディレクトリ一覧でリスト取得ができなかったりするようです。
うまく接続できない場合は、FTPクライアントソフトを変更して試してください。

私の環境はWindowsですが、最も難なく接続できたFTPクライアントは、FileZillaでした。

以上、CentOS-7にProFTPDをインストール・設定する方法でした。



0 件のコメント:

人気記事

ページ

このブログを検索