GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS8にSSL/TLSを使用してvsftpdFTPサーバーをインストールする方法

FTPは、サーバーとクライアント間でファイルを転送するために広く使用されているプロトコルです。 FTPD、VSFTPD、PROFTPD、pureftpdなど、現在利用可能なオープンソースFTPサーバーはたくさんあります。その中でも、VSFTPDは、世界中で安全で高速かつ最も広く使用されているプロトコルです。 「非常に安全なファイル転送プロトコルデーモン」とも呼ばれます。また、SSL、IPv6、明示的および暗黙的なFTPSもサポートしています。

このチュートリアルでは、CentOS 8サーバーにVSFTPDをインストールし、SSL/TLSで保護する方法を示します。

前提条件
  • CentOS8を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。

VSFTPDをインストール

デフォルトでは、VSFTPDはCentOS8のデフォルトリポジトリで利用できます。次のコマンドを実行してインストールできます:

dnf install vsftpd -y

インストールが完了したら、VSFTPDサービスを開始し、次のコマンドを使用してシステムの再起動後にサービスを開始できるようにします。

systemctl start vsftpd
systemctl enable vsftpd

この時点で、VSFTPDサーバーがインストールされて実行されています。これで、次のステップに進むことができます。

VSFTPDのユーザーを作成する

次に、VSFTPDの新しいユーザーを作成する必要があります。したがって、このユーザーを使用してFTPサーバーにアクセスできます。

次のコマンドを実行して、以下に示すようにvyomという新しいユーザーを作成します。

adduser vyom

次に、次のコマンドを使用してユーザーvyomのパスワードを設定します。

passwd vyom

完了したら、次のステップに進むことができます。

VSFTPDを構成する

次に、以下に示すように、/ etc/vsftpdディレクトリにあるVSFTPDのデフォルト設定ファイルを開きます。

nano /etc/vsftpd/vsftpd.conf

次の行を変更します:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO

終了したら、ファイルを保存して閉じます。次に、VSFTPDサービスを再起動し、次のコマンドを使用してサービスのステータスを確認します。

systemctl restart vsftpd
systemctl status vsftpd

次の出力が表示されます。

? vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-21 00:43:57 EST; 6s ago
  Process: 2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 2699 (vsftpd)
    Tasks: 1 (limit: 6102)
   Memory: 1020.0K
   CGroup: /system.slice/vsftpd.service
           ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Feb 21 00:43:57 centos8 systemd[1]: Stopped Vsftpd ftp daemon.
Feb 21 00:43:57 centos8 systemd[1]: Starting Vsftpd ftp daemon...
Feb 21 00:43:57 centos8 systemd[1]: Started Vsftpd ftp daemon.

この時点で、VSFTPDサーバーが構成されています。これで、SELinuxとファイアウォールを介してすべてのVSFTPDに進むことができます。

ファイアウォールとSELInuxを設定する

デフォルトでは、SELinuxはCentOS 8で有効になっているため、VSFTPD用にSELinuxを構成する必要があります。

次のコマンドを使用して、FTPアクセスを許可するようにSELinuxを構成できます。

setsebool -P allow_ftpd_full_access=1

次に、firewalldを介したFTPサービスを許可する必要があります。次のコマンドで許可できます:

firewall-cmd --zone=public --permanent --add-service=ftp

次に、firewalldサービスをリロードして、ファイアウォール構成の変更を適用します。

firewall-cmd --reload

この時点で、ファイアウォールとSELinuxは、リモートシステムからの着信FTP接続を許可するように構成されています。これで、FTP接続のテストに進むことができます。

VSFTPDサーバーに接続

これで、VSFTPDサーバーがインストールおよび構成されました。次に、クライアントシステムからFTPサーバーに接続します。

これを行うには、クライアントシステムに移動し、次のコマンドを実行してFTPサーバーに接続します。

ftp 172.20.10.3

以下に示すように、FTPユーザーとパスワードを入力するように求められます。

Connected to 172.20.10.3.
220 (vsFTPd 3.0.3)
Name (172.20.10.3:root): vyom
331 Please specify the password.
Password:
230 Login successful.

接続が正常に確立されると、次の出力が表示されます。

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

ここで、exitと入力し、Enterボタンを押してFTPセッションを終了します。

TLSサポートを使用してVSFTPDを構成する

セキュリティ上の理由から、FTP送信をSSL/TLSで暗号化することをお勧めします。そのためには、SSL証明書を生成し、それを使用するようにVSFTPDサーバーを構成する必要があります。

まず、システムにOpenSSLパッケージをインストールする必要があります。次のコマンドでインストールできます:

dnf install openssl -y

インストールしたら、SSL証明書を保存するための新しいディレクトリを作成します。

mkdir /etc/ssl/private

次に、次のコマンドを使用して自己署名証明書を生成します。

openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/vsftpd.key -x509 -days 365 -out /etc/ssl/private/vsftpd.crt

以下に示すように、必要なすべての情報を提供します。

Generating a RSA private key
...+++++
...........+++++
writing new private key to '/etc/ssl/private/vsftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:GUJ
Locality Name (eg, city) [Default City]:JUN
Organization Name (eg, company) [Default Company Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:ftpserver
Email Address []:[email protected]

SSL証明書を生成した後、この証明書を使用するようにVSFTPDを構成する必要があります。

以下に示すように、VSFTPDのデフォルト構成ファイルを開きます。

nano /etc/vsftpd/vsftpd.conf

ファイルの最後に次の行を追加します。

#Path of the SSL certificate
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
#Enable the SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
#TSL is more secure than SSL so enable ssl_tlsv1_2.
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
#Enable SSL debugging to store all VSFTPD log.
debug_ssl=YES

終了したら、ファイルを保存して閉じます。次に、VSFTPDサービスを再起動して、変更を適用します。

systemctl restart vsftpd

この時点で、VSFTPDサーバーはSSL証明書を使用するように構成されています。これで、次のステップに進むことができます。

VSFTPDTLS接続を確認する

これで、VSFTPDサーバーがSSL/TLSサポートで保護されました。次に、以下に示すように、コマンドラインからFTPサーバーに接続してみます。

ftp 172.20.10.3

次の出力にエラーが表示されるはずです:

Connected to 172.20.10.3.
220 (vsFTPd 3.0.2)
Name (172.20.10.3:root): vyom
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp> 

コマンドラインクライアントからVSFTPサーバーに接続することはできません。 SSL/TLSサポートをサポートしていないためです。

そのため、TLS接続をサポートするFTPクライアントを使用してVSFTPD接続をダウンロードしてテストする必要があります。

これを行うには、クライアントシステムに移動し、FileZillaクライアントパッケージをインストールします。

FileZillaをインストールした後、以下に示すようにFileZillaソフトウェアを開きます。

次に、以下に示すようにサイトマネージャを開きます。

新しいサイトをクリックします 以下に示すように、ボタンをクリックして新しいFTP接続を追加します。

FTPサーバーのIPを入力し、FTPプロトコルを選択し、[TLSを介した明示的なFTPを使用する]を選択し、パスワードの要求を選択し、FTPサーバーのユーザー名を入力して、接続をクリックします。 ボタン。以下に示すように、FTPユーザーのパスワードを入力するように求められます。

FTPパスワードを入力し、 OKをクリックします ボタン。以下に示すように、SSL/TLS接続に使用されている証明書を確認するように求められます。

OKをクリックします ボタンをクリックして証明書を確認します。接続が正常に確立されると、次の画面が表示されます。

結論

上記のガイドでは、CentOS8にVSFTPDサーバーをインストールしました。SSL/TLS証明書を使用するようにVSFTPDサーバーも構成しました。これで、FTPサーバーが保護されました。ご不明な点がございましたら、お気軽にお問い合わせください。


Cent OS
  1. Ubuntu20.04でSSL/TLSを使用してFTPサーバー(vsftpd)をインストールおよび構成する方法

  2. vsftpd FTPサーバーをインストールし、Debian11でTLSを使用して保護する方法

  3. CentOS7にFTPサーバーをインストールする方法

  1. VSFTPDを使用してCentOS7にFTPサーバーをインストールする方法

  2. Ubuntu20.04にSSL/TLSを使用してVsftpdをインストールします

  3. CentOS 7 に FTP サーバーをインストールする方法

  1. vsftpdを使用してUbuntuにFTPサーバーをインストールする方法

  2. RHEL 8 /CentOS8にvsftpdをインストールする方法

  3. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法