SSH ユーザーが /home/%u のコンテンツのみを閲覧するように制限する方法

SSH ユーザーが /home/%u のコンテンツのみを閲覧するように制限する方法

OpenSSH設定のみを使用してユーザーを/ home / % uディレクトリに制限できますか?インターネット上で見つけた指示に従ってSSHサーバーを停止し、以下をファイルに追加しましたsshd_config

Match group sftpusers
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no

その後、SSHサーバーを再起動しました。

sftpusers参考までにユーザーをグループに追加しました

私のユーザーはまだIEを閲覧でき、catコマンドを使用して自分のシステムのファイル構造全体にあるファイルの内容を一覧cd /表示できます()。cat /usr/bin/test.sh

私はUbuntu Server 12.04 LTSを実行しています。

答え1

まず、ではなくても、ユーザーの家のための拡張としてChrootDirectory %h代わりに使用することをお勧めします。/home/%u%h/home/$USER

それでは、実際の問題を見てみましょう。internal-sftpコマンドを強制的に実行する必要があります。次の設定は私に適しており、あなたにも適しています。

Match group sftp
    ForceCommand internal-sftp
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no

ユーザーの家はroot所有し、上記の755権限を持っている必要があります。

drwxr-xr-x 22 root root 4.0K Nov 24  2011 /home/testuser

答え2

使用fakechroot

  1. SSHに使用するユーザーとディレクトリを準備します。たとえば、/bin特定のコマンドをディレクトリからユーザーディレクトリにコピーできますbin。ユーザー名はtest、ユーザーディレクトリはと仮定します/home/test

  2. インストールfakechrootパッケージ

    # Debian-based distros
    sudo apt install fakechroot
    
  3. 編集するOpenSSHサーバー構成ファイル(たとえば/etc/ssh/sshd_config)を開きます。

  4. 構成ファイルに次の行を追加します(既存の行がある場合は置き換えます)。

    # Replace test with your user of choice
    Match User test
        ForceCommand fakechroot chroot /home/test
        # Other options
    
  5. 文書を保存します。目的の特定のポートでOpenSSHサーバーを起動します。それではSSH経由でログインしてみてください。すべてが期待どおりに機能するはずです。

役に立ったことを願っています!

答え3

私はこの質問が古くなったことを知っていますが、これは私に役立ちました。

chmod o-x /home/*

sudoで上記のコマンドを実行すると、ユーザーは自分のホームディレクトリに制限されます。

関連情報