新しいvsftpdユーザーを作成し、ホーム/ログインディレクトリにロック(指定)します


31

vsftpがインストールされているCentOS linuxサーバー上のさまざまなディレクトリへの一時的かつ制限されたアクセスを定期的に与える必要があります。

を使用してユーザーを作成し、を使用useradd [user_name]してパスワードを付与しましたpasswd [password]

ディレクトリを作成し、/var/ftpアクセスを制限したいディレクトリにバインドします。

このユーザーがFTPにログインするときに、このディレクトリにのみアクセスできるようにするには、他に何をする必要がありますか?


申し訳ありませんが、vsftpd.confの確認を検討したことがありますか?
ジリブ

はい。私が持っています。特定のユーザーに特定のディレクトリにログインするように指示する方法を教えてくれません...?
ジゴジャコ

1
いい?chroot_list_enableオプション...または、$ HOMEとは異なるディレクトリをオーバーライドしますか?
ジリブ

1
特定のユーザーの特定のホームディレクトリを宣言する方法を知りたいです。を有効にchroot_list_enableして作成しました/etc/vsftpd/chroot_list。私は次に何をすべきか知らなかった。
ジゴジャコ

次に、usermodでユーザーのhomedirを変更します。
ジリブ

回答:


44

ステップバイステップのチュートリアルの後の他の人のために私の質問を解決した完全な答え...

これをガイドとしてvsftpd使用してインストールします

  • でユーザーを作成しますuseradd [user_name]
  • でユーザーのパスワードを作成しますpasswd [user_name]。(パスワードを指定するように求められます)。
  • FTPディレクトリを作成し/var/ftp、このユーザーに指定する「ホーム」ディレクトリにバインドしますmount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
  • ユーザーのホームディレクトリを変更する usermod -d /var/ftp/custom_name/ user_name

    /etc/vsftpd/vsftpd.conf、次のすべてのすべてを確実に設定されています-

    • chroot_local_user = YES
    • chroot_list_enable = YES
    • chroot_list_file = / etc / vsftpd.chroot_list

vsftpd.chroot_listサーバー上の任意の場所へのフルアクセスを許可する場合にのみ、ファイルにユーザーをリストします。このファイルにそれらをリストしないということは、すべてのvsftpdユーザーを指定されたホームディレクトリに制限することを意味しています。

言い換えると(参照用):-

  1. デフォルトでは、ファイル内のユーザーを除くすべてのユーザーがchrootされることを意味します...
    • chroot_local_user = YES
    • chroot_list_enable = YES
  2. デフォルトでは、ファイル内のユーザーのみがchrootされます...
    • chroot_local_user = NO
    • chroot_list_enable = YES

そのユーザーのホームディレクトリを直接に設定しないのはなぜ/var/www/vhosts/domain.com/ですか?それに何らかの問題がありますか(潜在的なリスクなど)?
リーム14

2
セキュリティ上の理由から、vsftpがftpユーザーにchroot最上位レベルの書き込み許可を与えることを禁止しているように見えました(しかし、100%確信はありません)。そのため、兄弟ユーザーのフォルダーを表示することを許可せずに、特定のフォルダーへの書き込みアクセスをftpユーザーに許可するために、この「間接化」が必要になる場合があります(ホームを1レベル上に設定する場合上記の問題を回避します)。(参照ubuntuforums.org/...を
leemes

2
@zigojackoは、ユーザーに割り当てられたホームディレクトリのみを表示しますか?私にとって、これはユーザーをデフォルトで割り当てられたディレクトリに設定しますが、他のフォルダーを見ることができ、読み取りアクセスのみであるにもかかわらず、ルートまでずっとスヌープできます。
グレアムF

1
この答えは、unix.stackexchange.com / questions / 208960 /…と組み合わせて、私にとって完全な答えでした。最終的にグループ内にユーザーを作成し、グループアクセスを目的のディレクトリに制限しました。
グレアムF

10

私にとっては、上記の後でも機能しませんでした。すでにディレクトリに設定されているlocal_rootがあり、私が何をしても、ユーザーのディレクトリは投獄されていません。最後に変更された後にのみ動作します

chroot_local_user = YES

そして、次の手順

  1. vi /etc/vsftpd.conf
  2. 行 'user_config_dir = / etc / vsftpd_user_conf'を追加します(引用符なし)
  3. mkdir / etc / vsftpd_user_conf;
  4. cd / etc / vsftpd_user_conf
  5. vi user_name;
  6. 「local_root = / srv / ftp / user_name」という行を入力します

他の誰かが同じ問題を抱えていれば、ちょうど2セントです。


この手順に従って、gnaanaaによる追加手順を含めて、vsftpdのルートディレクトリを変更しました。残念ながら、まだ機能していません。Filezillaは530ログインが正しくないと報告します。ユーザーとパスワードは、上記の手順(user_name)に従っています。テストユーザーftp2を作成し、そのパスワードを設定しました。Filezillaの通常のログオンでは、そのユーザー名とパスワードが使用されます。また、ルートディレクトリを読み取り専用に設定し、Ubuntu 16.04を使用しているこの投稿に従って、書き込み権限を持つ下位レベルのディレクトリを作成します。
tim11g

@gnaanaaという違いがあれば、Ubuntu 16.04を使用しています。また、/ varにftpディレクトリがないのは奇妙だと思いました。したがって、/ var / ftpを作成し、次に/ var / ftp / user_nameを作成する必要がありました。code<br/>応答:220(vsFTPd 3.0.3)<br/>コマンド:USER ftp2 <br/>応答:331パスワードを指定してください。<br/>コマンド:PASS ***** <br/>応答:530ログインが正しくありません。<br/>エラー:重大なエラー:サーバーに接続できませんでした<br/>code
tim11g

まず、サーバーにログインできなかった理由を見てください。ログインに成功した後にのみ、jailingで問題をデバッグできます。乾杯。
gnaanaa

vsftpは、マシン上のアカウントとは異なるユーザー/パスワードを使用しますか?smbpasswd -aを使用して、smbパスワードを個別に設定する必要があることを発見しました。vsftpdは同じように機能しますか?
tim11g

いいえ、それはシステムユーザーアカウントです。この回答を確認してください:askubuntu.com/questions/413677/vsftpd-530-login-incorrect
gnaanaa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.