SFTPユーザーのためのchroot

SFTPユーザーのためのchroot

私は、ユーザーが自分のホームディレクトリの外でファイルを変更/表示できないように制限する方法について、インターネット上のいくつかのガイドに従いました。

だから私はユーザーを作成しました。ジョンと呼びます。そして彼の基本グループであるsftpというグループも作りました。私も彼のホームディレクトリを私が収監したいディレクトリに更新しました。 (この場合/var/www/)その後、いくつかの設定行を追加しました。/etc/ssh/sshd_config

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcoForwarding no

これを使ったことがありません。 Johnは自分のホームディレクトリの外にあるディレクトリにアクセスできます。それからそれを具体化しようとします。

Match User john
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

やはり動作しません。 Johnはまだすべてのファイルにアクセスできます。だから、両方の設定を試してみましたが、どちらも機能しませんでした。

Johnsシェルはいくつかのガイドでまたは/bin/bashに設定すると言われていますが、もちろんFilezillaと接続することはできません。/bin/false/bin/nologin

ディストリビューションはUbuntu 14.04です。

ベストアンサー1

ブロックの次の行を変更しますMatch Group sftp

ChrootDirectory /var/www/%u

ディレクトリ名にユーザー名を指定して/var/wwwにディレクトリを作成すると、複数のユーザーをその/var/www/user-ディレクトリにchrootできます。

また、権限を確認する必要があります。 /var/www/user-name ディレクトリーには、ユーザーとグループが root で、755 権限が必要です。そのディレクトリ内のユーザーを所有者として、グループsftpをグループとして含める必要があるいくつかのディレクトリまたは必要なディレクトリ(入力および出力ディレクトリなど)を作成する必要があります。 700権限または権限に適していると思われるすべての権限をお勧めします。その後、ユーザーはルートディレクトリまたは/var/www/userツリーの外に何も書き込むことなくログインしてディレクトリにアクセスできる必要があります。

シェルを/bin/falseまたは/bin/nologinに設定すると、sftp接続のみが許可されます。これはsftpアクセスのみが必要な場合は面白いです。そうしないと、ユーザーはシステムにSSHを介して接続できますが、おそらく望ましくありません。 。

編集:ところで、AllowTcoForwarding nosftpブロックの行が間違っています。正しい行に変更してください(AllowTcForwarding)ここではただのタイプミスではない場合に備えて申し上げます。

おすすめ記事