RHEL8でSSL / TLSを使用した安全なFTPファイル転送のセットアップ


前回の記事では、RHEL 8LinuxにFTPサーバーをインストールして構成する方法について詳しく説明しました。この記事では、SSL/TLSを使用してFTPサーバーを保護し、システム間の安全なファイル転送のためのデータ暗号化サービスを有効にする方法について説明します。

FTPサーバーがすでにインストールされ、正しく実行されていることを願っています。そうでない場合は、次のガイドを使用してシステムにインストールしてください。

  1. How to Install, Configure and Secure FTP Server in RHEL 8

手順1.SSL / TLS証明書と秘密鍵の生成

1.次のディレクトリを作成してSSL/TLS証明書とキーファイルを保存します。

# mkdir -p /etc/ssl/vsftpd

2.次に、次のコマンドを使用して、自己署名SSL/TLS証明書と秘密鍵を生成します。

# openssl req -x509 -nodes -keyout /etc/ssl/vsftpd/vsftpd.pem -out /etc/ssl/vsftpd/vsftpd.pem -days 365 -newkey rsa:2048

以下は、上記のコマンドで使用される各フラグの説明です。

  1. req – is a command for X.509 Certificate Signing Request (CSR) management.
  2. x509 – means X.509 certificate data management.
  3. days – defines a number of days certificate is valid for.
  4. newkey – specifies certificate key processor.
  5. rsa:2048 – RSA key processor, will generate a 2048 bit private key.
  6. keyout – sets the key storage file.
  7. out – sets the certificate storage file, note that both certificate and key are stored in the same file: /etc/ssl/vsftpd/vsftpd.pem.

上記のコマンドは、以下の質問に答えるように促します。シナリオに適用される値を使用することを忘れないでください。

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email protected]

ステップ2.SSL / TLSを使用するようにVSFTPDを構成する

3.お好みのコマンドラインエディターを使用して編集するために、VSFTPD構成ファイルを開きます。

# vi /etc/vsftpd/vsftpd.conf

次の構成パラメーターを追加してSSLを有効にし、ファイルの最後で使用するSSLとTLSのバージョンを選択します。

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

4.次に、rsa_cert_fileオプションとrsa_private_key_fileオプションを追加して、SSL証明書とキーファイルの場所をそれぞれ指定します。

rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.pem

5.次に、これらのパラメーターを追加して、匿名接続によるSSLの使用を無効にし、SSLを介したすべての非匿名接続を強制します。

allow_anon_ssl=NO			# disable anonymous users from using SSL
force_local_data_ssl=YES		# force all non-anonymous logins to use a secure SSL connection for data transfer
force_local_logins_ssl=YES		# force all non-anonymous logins  to send the password over SSL

6.次に、これらのオプションを追加して、SSLデータ接続のすべての再利用を無効にし、SSL暗号をHIGHに設定して、暗号化されたSSL接続を許可します。

require_ssl_reuse=NO
ssl_ciphers=HIGH

7.また、pasv_min_portパラメーターとpasv_max_portパラメーターをそれぞれ使用して、安全な接続のためにvsftpdが使用するパッシブポートのポート範囲(最小ポートと最大ポート)を指定する必要があります。さらに、オプションで、debug_sslオプションを使用して、トラブルシューティングの目的でSSLデバッグを有効にすることができます。

pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES

8.最後に、ファイルを保存し、vsftpdサービスを再起動して、上記の変更を有効にします。

# systemctl restart vsftpd

9. FTPサーバーに安全にアクセスする前に実行するもう1つの重要なタスクは、システムファイアウォールのポート990および40000-50000を開くことです。これにより、次のように、vsftpdサービスへのTLS接続が可能になり、VSFTPD構成ファイルで定義されているパッシブポートのポート範囲がそれぞれ開かれます。

# firewall-cmd --zone=public --permanent –add-port=990/tcp
# firewall-cmd --zone=public --permanent –add-port=40000-50000/tcp
# firewall-cmd --reload

ステップ3:FTPサーバーに安全に接続するためにFileZillaをインストールする

10. FTPサーバーに安全に接続するには、FileZillaなどのSSL/TLS接続をサポートするFTPクライアントが必要です。これは、SSL/TLS接続をサポートするオープンソースの広く使用されているクロスプラットフォームFTP、SFTP、およびFTPSクライアントです。デフォルトでは。

次のように、デフォルトのパッケージマネージャーを使用してLinuxにFileZillaをインストールします。

$ sudo apt-get install filezilla   		#Debian/Ubuntu
# yum install epel-release filezilla		#On CentOS/RHEL
# dnf install filezilla			        #Fedora 22+
$ sudo zypper install filezilla			#openSUSE

11. Filezillaパッケージをインストールしたら、システムメニューで検索して開きます。メインインターフェイスからリモートFTPサーバーにすばやく接続するには、ホストIPアドレス、ユーザー名、およびユーザーのパスワードを入力します。次に、QuickConnectをクリックします。

12.次に、アプリケーションは、不明な自己署名証明書を使用して安全な接続を許可するように要求します。 [OK]をクリックして続行します。

サーバーでの構成に問題がない場合は、次のスクリーンショットに示すように接続が成功するはずです。

13.最後に、次のスクリーンショットに示すように、マシンからサーバーにファイルをアップロードして、FTPの安全な接続ステータスをテストします。

それで全部です!この記事では、SSL/TLSを使用してFTPサーバーを保護し、RHEL 8でファイルを安全に転送する方法を示しました。これは、RHEL 8でFTPサーバーをインストール、構成、保護するための包括的なガイドの第2部です。クエリを共有するにはまたは考えについては、以下のフィードバックフォームを使用してください。