FTPとは何ですか?
FTP(File Transfer Protocol)は、ユーザーがリモートコンピュータとの間でファイルを交換できるようにするクライアントサーバネットワークプロトコルです。
FTPはプレーンテキストを使用してデータを転送し、データにアクセスします。 Linuxオペレーティングシステムのプラットフォームで利用可能ないくつかの異なるオープンソースのFTPサーバがあります。 最も一般的に使用されるFTPサーバーは、VSFTPD、ProFTPD、およびPureFTPDです。 FTPプロトコルは、接続にポート番号21を使用し、データ転送にポート20を使用します。 パッシブモードでは、追加のポートが使用されます。
このチュートリアルでは、VSFTPDの設定と設定の方法を学びます。 これは非常に安全で安定しており、CentOS8パッケージリポジトリで利用できます。CentOS8にVSFTPDパッケージをインストールするには、ターミナルを開くか、ROOTユーザーとしてSSHでサーバーに接続し、次のコマンドを入力します:
# dnf install –y vsftpd
パッケージがインストールされたら、次のコマンドを使用してVSFTPDサービスを起動して有効にします:
# systemctl enable vsftpd# systemctl start vsftpd
元の設定ファイル/etc/vsftpd/vsftpdのコピーを取ります。次のコマンドを入力してconfを実行します:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
のバックアップコピーを作成し、次のコマンドを使用して設定ファイルを編集します:
# vim /etc/vsftpd/vsftpd.conf
以下のディレクティブを見つけて設定します:
anonymous_enable=NO # disable anonymous users(Unknown users)local_enable=YES # allow local userswrite_enable=YES # allow ftp write commandslocal_umask=022 # set default umaskdirmessage_enable=YES # enable messages on change directoryxferlog_enable=YES # enable logging of uploads and downloadsconnect_from_port_20=YES # ensure PORT transfer connections from port 20 xferlog_std_format=YES # keep standard log formatlisten=NO # prevent vsftpd run in stand-alone modelisten_ipv6=YES # allow vsftpd to listen on IPv6 socketpam_service_name=vsftpd # set PAM Service name to vsftpd
デフォルトでは、/etc/vsftpd/user_listにあるuser_listファイルにあるすべてのユーザーがFTPサービスの使用を許可されています。
chroot環境でユーザーを制限するには、次のディレクティブを使用します:Advertisement
chroot_local_user=YES # Create chrooted environment for usersallow_writeable_chroot=YES # Allow write permission to a user on chroot jail directory
ユーザーがホームディレクトリにrestrictを保持するには、次のディレクティブを使用します:
userlist_enable=YES # enable vsftpd to load usernamesuserlist_deny=NO # allow access to users in the user list
システムへの全体的なアクセスを提供したい場合は、このディレクティブを設定ファイルに追加します:
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list #users in this file list have an overall access
設定ファイルを保存して閉じます。
次に、次のコマンドを使用して、/etc/vsftpd/ディレクトリの下にchroot_listを作成します:
# touch /etc/vsftpd/chroot_list
システム上の全体的なアクセス権を提供したいユーザーのみをそのリストに追加します。
FTPサービスにアクセスするためのユーザーの作成
FTPサービスを使用するためのユーザーを作成するには、次のコマンドを使用します:
# useradd user1# passwd user1
user_listファイルにそのユーザーを追加して、ユーザーをホームディレクトリに制限するには、次のコマンドを使用します:
# vim /etc/vsftpd/user_list
図に示すように、insertに”i”と入力し、そのユーザー名を入力します:
ESCキーを押して、次のように入力します。 ファイルを保存します。
特定のユーザーにシステムへの全体的なアクセス権を提供したい場合は、そのユーザーを/etc/vsftpd/chroot_listに追加します。
VSFTPDサービスを再起動します。:
# systemctl restart vsftpd
次のコマンドを使用してFTPサービスの状態を確認します:
# systemctl status vsftpd
FTPのファイアウォールを設定する
ファイアウォールを介してFTPサービスを許可するには、次のコマンドを使用します:
# firewall-cmd - - add-service = ftp - - permanent# firewall-cmd - - reload
WindowsマシンからFTPサーバーをテストする
FTPサーバーに接続するには、クライアントソフトウェアが必要です。 FTPで最も一般的に使用されるソフトウェアはFileZilla、WINSCPなどです。 接続にFileZillaを使用しています。
FTPクライアントソフトウェアを開き、接続するには次の詳細を入力します。
ホスト—>IPアドレスまたはホスト名。
ユーザー名:FTPユーザー名(私の場合はuser1です)
パスワード
ポート: 21
正常に接続した後、必要に応じてファイルをアップロード/ダウンロードできます。
結論
このチュートリアルでは、Centos8でFTPサーバーをセットアップする方法、ユーザーをホームディレクトリに制限する方法、 また、特定のユーザーにシステムへの一般的なアクセス権を与える方法についても説明しました。