RHEL 8 で FTP サーバーをインストール、構成、保護する方法
FTP (「ファイル転送プロトコル 」の略) は、コンピュータ ネットワーク上のクライアントとサーバー間のファイル転送に使用される標準的な古いネットワーク プロトコルです。これは、クライアント/サーバー モデル アーキテクチャに基づいて構築されており、FTP クライアント経由でファイルやディレクトリにアクセスし、サーバーにファイルをアップロードしたり、サーバーからファイルをダウンロードしたりすることができます。
前回の記事では、コンピューター ネットワーク上のクライアントとサーバー間でコンピューター ファイルを転送するために、CentOS/RHEL 7 に FTP サーバーをインストール、構成、保護する方法を説明しました。
この記事では、コンピュータ間で基本的なファイル共有を行うために、RHEL 8 に FTP サーバーをインストール、構成、保護する方法について説明します。
RHEL 8 に FTP サーバーをインストールする
1. 安全な FTP パッケージをインストールするには、次の dnf コマンドを使用します。
dnf install vsftpd
2. インストールが完了したら、一時的に vsftpd サービスを開始し、システム起動時に自動的に開始されるように有効にし、次の systemctl コマンドを使用してステータスを確認する必要があります。
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd
3. 次に、システム ファイアウォールで FTP ポート 21 を開き、外部システムから FTP サービスへのアクセスを許可する必要があります。
firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload
RHEL 8 での FTP サーバーの構成
4. FTP サーバーを設定するには、次の copy コマンドを使用して、メイン FTP 設定ファイル /etc/vsftpd/vsftpd.conf
のバックアップを作成する必要があります。
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
5. 次に、お気に入りのコマンド ライン エディタを使用して構成ファイルを開きます。
vi /etc/vsftpd/vsftpd.conf
次のパラメータに対応する値を設定します (設定パラメータの意味については、man 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
6. 次に、ユーザー リスト ファイル /etc/vsftpd.userlist に基づいてユーザーの FTP サービスへのアクセスを許可または拒否するように FTP を設定する必要があります。
デフォルトでは、/etc/vsftpd.userlist
ファイルにリストされているユーザーは、userlist_enable の場合、
の場合、アクセスが有効になります。userlist_deny
オプションが YES
に設定されているとアクセスを拒否されます。 =YES
ただし、パラメータ userlist_deny=NO
を設定すると設定が変更され、userlist_file=/etc/vsftpd.userlist
に明示的にリストされているユーザーのみがログインを許可されます。
したがって、vsftpd.conf
構成ファイルに次の行を追加します (または、既に存在する場合は、それらのコメントを解除して、示されているように値を設定します)。
userlist_enable=YES # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist # stores usernames.
userlist_deny=NO
7. 次に、vsftpd.conf
構成ファイルに次の行を追加して、FTP ユーザーをホーム ディレクトリに制限します。
chroot_local_user=YES #means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER
local_root=/home/$USER/ftp
ファイルの変更を保存して閉じます。
8. 次の SELinux ブール ルールを設定して、FTP によるユーザーのホーム ディレクトリのファイルの読み取り/書き込みを有効にします。
semanage boolean -m ftpd_full_access --on
9. 最後に、vsftpd サービスを再起動して、これまでに行ったすべての変更を反映させます。
systemctl restart vsftpd
RHEL 8 での FTP サーバーのテスト
10. 上記の FTP セットアップが正常に実行されているかどうかをテストするには、まず useradd コマンドを使用して FTP ユーザーを作成し、そのユーザーのパスワードを作成します。
useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint
11. 次に、次のように echo コマンドを使用して、ユーザー tecmint をファイル /etc/vsftpd.userlist に追加します。
echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist
12. 次に、ユーザーの代替ローカル ルート ディレクトリ (tecmint、実際のディレクトリは異なる可能性があります) を作成し、このディレクトリに適切なアクセス許可を設定します。
mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp
13. 次に、ローカル ルートの場所内に、ユーザーが自分のファイルを保存するディレクトリを作成します。
mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/
14. 次に、次のように任意の FTP クライアントを使用して FTP サーバーに接続します。
ftp [email
サンプル出力
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
それでおしまい!この記事では、RHEL 8 で FTP サーバーをインストール、構成し、セキュリティで保護する方法について説明しました。次回の記事では、SSL/TLS 接続を使用して FTP サーバーを保護する方法を説明します。それまで、私たちと一緒にいてください。