ファイル転送プロトコル(FTP) は、インターネットなどのTCPベースのネットワークを介して1つのホストから別のホストにファイルをコピーするために使用される標準のネットワークプロトコルです。 FTPはクライアントサーバーアーキテクチャに基づいて構築されており、クライアントとサーバー間の個別の制御およびデータ接続を利用します。 FTPユーザーは、クリアテキストのサインインプロトコルを使用して自分自身を認証できますが、サーバーがそれを許可するように構成されている場合は匿名で接続できます。
最初のFTPクライアントアプリケーションは、標準のコマンドと構文を実装するインタラクティブなコマンドラインツールでした。それ以来、グラフィカルユーザーインターフェイスクライアントは、今日使用されている人気のあるデスクトップオペレーティングシステムの多くのために開発されてきました。
FTPサーバーのインストール
vsftpdをインストールする前に、サーバーがインターネットにアクセスできることを確認してください。ない場合は、ローカルYUMリポジトリを構成します vsftpdインストールの場合。
次のコマンドを使用してvsftpdサーバーをインストールします。
# yum -y install vsftpd
FTPサーバーの構成
設定ファイルは/etc/vsftpフォルダにあります。 Vsftpd.confは、FTPサーバーの構成ファイルです。
# vi /etc/vsftpd/vsftpd.conf
このファイルには、FTPサーバーのセキュリティを強化するのに役立つ多くのディレクティブが含まれています。以下は、ファイルにすでに配置されている重要なディレクティブです。
ディレクティブ
| Vsftpd.conf内 | 用途 |
anonymous_enable | はい | 匿名ログインを許可するかどうかを制御します。有効になっている場合、ユーザー名ftpとanonymousの両方が匿名ログインとして認識されます。 |
local_enable | はい | ローカルログインを許可するかどうかを制御します。有効にすると、/ etc / passwd(またはPAM構成参照)の通常のユーザーアカウントを使用してログインできます。これにより、仮想ユーザーを含む匿名以外のログインが機能するようになります。 |
write_enable | はい | これは、ファイルシステムを変更するFTPコマンドを許可するかどうかを制御します。これらのコマンドは、STOR、DELE、RNFR、RNTO、MKD、RMD、APPE、SITEです。 |
local_umask | 022 | ファイル作成用のumaskがローカル用に設定されている値 ユーザー。 |
anon_upload_enable | はい
ただし、ファイルにコメントしているので、コメントを解除する必要があります。 | YESに設定すると、匿名ユーザーは特定の条件下でファイルをアップロードできます。これを機能させるには、オプションwrite_enableを有効にする必要があり、匿名のftpユーザーが目的のアップロード場所への書き込み権限を持っている必要があります。この設定は、アップロードする必要があるか、仮想ユーザーでもあります。デフォルトでは、仮想ユーザーは匿名の(つまり、最大限に制限された)特権で扱われます。 |
anon_mkdir_write_enable | はい
ただし、ファイルにコメントしているので、コメントを解除する必要があります。 | [はい]に設定すると、匿名ユーザーは特定の条件下で新しいディレクトリを作成できます。これを機能させるには、オプションwrite_enableをアクティブにし、匿名のftpユーザーが親ディレクトリへの書き込み権限を持っている必要があります。 |
聞く | はい
| 有効にすると、vsftpdはスタンドアロンモードで実行されます。これは、Vsftpdをある種のinetdから実行してはならないことを意味します。代わりに、 Vsftpd実行可能ファイルは1回直接実行されます。 Vsftpd自体が、着信接続のリッスンと処理を処理します。 |
以下は、セキュリティを強化するためにファイルに追加できるその他のオプションです。
ディレクティブ | オプション | 説明 |
userlist_enable | はい/いいえ | 有効にすると、vsftpdはuserlist_fileで指定されたファイル名からユーザー名のリストをロードします。ユーザーがこのファイルの名前を使用してログインしようとすると、パスワードの入力を求められる前に拒否されます。これは、クリアテキストのパスワードが送信されるのを防ぐのに役立つ場合があります。 userlist_denyも参照してください。 |
chroot_local_user | はい/いいえ | YESに設定すると、ローカルユーザーは(デフォルトで)ログイン後にホームディレクトリのchroot()jailに配置されます。警告:このオプションには、特にユーザーがアップロード権限またはシェルアクセスを持っている場合にセキュリティ上の問題があります。自分が何をしているかを知っている場合にのみ有効にしてください。これらのセキュリティへの影響はvsftpd固有ではないことに注意してください。これらは、ローカルユーザーをchroot()jailに入れることを提供するすべてのFTPデーモンに適用されます。 |
local_max_rate | kb単位 例: local_max_rate =1000 | ローカルで認証されたユーザーに許可される最大データ転送速度(バイト/秒)。デフォルト:0(無制限) |
anon_max_rate | kb単位 例: anon_max_rate =1000 | 匿名クライアントに許可される最大データ転送速度(バイト/秒)。デフォルト:0(無制限) |
no_anon_password | はい/いいえ | 有効にすると、vsftpdが匿名のパスワードを要求するのを防ぎます。匿名ユーザーは直接ログインします。 |
ここでは、要件のみを調べます。構成ファイルの次のエントリを編集して、匿名ログインを無効にしましょう。
anonymous_enable=NO
ローカルユーザーがvsftpdにログインできるようにします。
local_enable=YES
ローカルユーザーへの書き込みアクセスを有効にします。
write_enable=YES
ローカルユーザーを「chrootjailed」に入れて、システムファイルのどの部分にもアクセスできないようにします
chroot_local_user=YES
chrootユーザーに書き込みを許可します。
allow_writeable_chroot=YES
vsftpdサービスを再起動します。
# systemctl restart vsftpd.service
システムの起動時に開始するようにvsftpdを設定します。
# systemctl enable vsftpd.service
ファイアウォール
ファイアウォールでポート21を許可して、vsftpにネットワーク経由でアクセスできるようにします。
# firewall-cmd --permanent --zone=public --add-port=21/tcp # firewall-cmd --reload
SELinux
次のコマンドを発行して、ホームディレクトリへの書き込み権限を有効にします。
# setsebool -P ftp_home_dir 1
それで全部です。 FileZillaまたはWinSCPを使用するには、vsftpでパッシブモードを有効にする必要があります。 。