この記事では、CentOS7サーバーでTLSセッションを受け入れるようにPureFTPdを構成する方法について説明します。プレーンFTPは、すべてのパスワードとすべてのデータがクリアテキストで転送されるため、安全でないプロトコルです。 TLSを使用することにより、通信全体を暗号化できるため、FTPの安全性が大幅に向上します。
1予備メモ
CentOS7サーバーでPureFTPdセットアップが機能している必要があります。このチュートリアルに示されているように:CentOS 7でのPureFTPdとMySQL(クォータと帯域幅の管理を含む)を使用した仮想ホスティング
2OpenSSLのインストール
TLSにはOpenSSLが必要です。 OpenSSLをインストールするには、次のコマンドを実行するだけです。
yum install openssl
3PureFTPdの構成
/etc/pure-ftpd/pure-ftpd.confを開きます...
nano /etc/pure-ftpd/pure-ftpd.conf
FTPをおよび許可する場合 TLSセッション、TLSを1に設定:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 1 [...]
TLSセッションのみ(FTPなし)を受け入れる場合は、TLSを2に設定します:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 2 [...]
TLSをまったく許可しない(FTPのみ)には、TLSを0に設定します:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 0 [...]
次に、次の2行の前にある#を削除します。
TLSCipherSuite HIGH
CertFile /etc/ssl/private/pure-ftpd.pem
変更した構成ファイルを保存します。
4TLS用のSSL証明書の作成
TLSを使用するには、SSL証明書を作成する必要があります。 / etc / ssl / private /に作成するので、最初にそのディレクトリを作成します:
mkdir -p /etc/ssl/private/
その後、次のようにSSL証明書を生成できます。
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
国名(2文字のコード)[XX]:<-国名を入力します(例:「DE」)。
州名または州名(フルネーム)[]:<-州名または州名を入力します。
地域名(例:都市)[デフォルトの都市]:<-都市を入力します。
組織名(例:会社)[デフォルトの会社株式会社]:<-組織名を入力します(例: 、会社名)。
組織単位名(例:セクション)[]:<-組織単位名(例:「IT部門」)を入力します。
一般名(例:名前またはサーバーのホスト名)[]:<-システムの完全修飾ドメイン名を入力します(例: "server1.example.com")。
メールアドレス[]:<-メールアドレスを入力します。
SSL証明書の権限を変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pem
最後に、PureFTPdを再起動します:
systemctl restart pure-ftpd.service
それでおしまい。これで、FTPクライアントを使用して接続を試みることができます。ただし、TLSを使用するようにFTPクライアントを構成する必要があります。FileZillaでこれを行う方法については、次の章を参照してください。
5TLS用のFileZillaの構成
FTPをTLSで使用するには、FileZillaやFirefoxのFireFTPプラグインなど、TLSをサポートするFTPクライアントが必要です。
FileZillaで、サイトマネージャーを開きます:
TLSでPureFTPdを使用するサーバーを選択します。 [サーバーの種類]ドロップダウンメニューで、[TLSを介した明示的なFTPを要求する]を選択します。 通常のFTPの代わりに:
これで、サーバーに接続できます。これを初めて行う場合は、サーバーの新しいSSL証明書を受け入れる必要があります。
すべてがうまくいけば、サーバーにログインする必要があります:
6つのリンク
- PureFTPd:http://www.pureftpd.org/
- FileZilla:http://filezilla-project.org/
- CentOS:http://www.centos.org/