web-dev-qa-db-ja.com

ユーザーを投獄するシンプルで簡単な方法

Oneiricのホームディレクトリでユーザーを投獄するシンプルで簡単な方法が必要です。ジェイルユーザーのためのシンプルな構成、完全なヘルプ、または適切なWebリンクがありますか?

10〜20 GBの空き容量を持つオンラインの無料公開サーバーを提供します。ユーザー数がわかりません。 FileZillaを介して接続できるように、SSHとSFTPを提供したいと思います。

33
One Zero

Jailkitは、ユーザーアカウントを特定のディレクトリツリーおよび特定のコマンドに制限できるユーティリティのセットです。刑務所のセットアップは、「手作業」で行うJailkitユーティリティを使用する方がはるかに簡単です。刑務所は、ファイルシステム内に作成するディレクトリツリーです。ユーザーは、jailディレクトリの外部にあるディレクトリまたはファイルを見ることができません。ユーザーはそのディレクトリとそのサブディレクトリで投獄されます。

ダウンロードとインストール:

http://olivier.sessink.nl/jailkit/index.html#download

VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install

刑務所のセットアップ

次に、jailディレクトリを設定します。投獄されたユーザーには、このディレクトリがサーバーのルートディレクトリとして表示されます。/home/jailを使用することにしました:

mkdir /home/jail
chown root:root /home/jail

jk_initを使用して、特定のタスクまたはプロファイルに必要な複数のファイルまたはディレクトリを含むジェイルをすばやく作成できます(クリックして詳細を確認します)。

jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh

ユーザーを追加する

ホームディレクトリとbashシェルを持つ新しいユーザーを追加し、パスワードを設定します。

useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest

今、このユーザーを投獄する時間です

次のコマンドを使用します。

jk_jailuser -m -j /home/jail jailtest

/etc/passwdには次のようになります:

jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh

Bashを有効にする

jk_cp を使用すると、bashライブラリがjailにコピーされます。

jk_cp -v -f /home/jail /bin/bash

編集/home/jail/etc/passwd

次の行を置き換えます。

jailtest:x:1001:1001::test:/usr/sbin/jk_lsh

これとともに:

jailtest:x:1001:1001::/home/jailtest:/bin/bash

メンテナンス

jk_updateを使用することにより、実システムの更新を刑務所で更新できます。

予行演習では何が起こっているかが示されます。

jk_update -j /home/jail -d

-d引数なしで、実際の更新が実行されます。その他のメンテナンス操作については、こちらをご覧ください。

/home/jail/optが欠落している場合は、mkdir -p /home/jail/opt/で作成し、jk_update -j /home/jailを再度実行します)

他のディレクトリへのアクセスを許可する

Jailユーザーがアクセスできる特別なフォルダーをマウントできます。例えば。:

mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/

助けて

http://olivier.sessink.nl/jailkit/howtos_chroot_Shell.html

http://olivier.sessink.nl/jailkit/index.html#intro (非常に良い助け)

これも

これはチェックおよび検証され、正常に動作しています

22
One Zero

システムのバイナリ、bash、および/ etc内の構成ファイルにアクセスする必要があるため、それらを/ homeに限定することはできません。

IMOでユーザーを保護する最も簡単な方法は、apparmorを使用することです。

ハードリンクを作成します

ln /bin/bash /usr/local/bin/jailbash

/ etc/shellsにjailbashを追加します

次に、jailbashをユーザーのシェルに割り当て、最小限のアクセスを許可するjailbashのapparmorプロファイルを作成します。

Sudo chsh -s /usr/local/bin/jailbash user_to_confine

自分で防具プロファイルを作成する必要がありますが、私はあなたが潜在的にで始めることができるプロファイルを持っています

http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash

6
Panther

どのような目的を達成したいのかを推測するのは困難です。 FTP経由で投獄されたアクセスを提供しながらssh/sftpを拒否する場合...簡単:

/ etc/shellsに新しいシェルを追加します。

Sudo -e /etc/shells

1行追加します。

/bin/false

セーブ。 ssh/sftpを拒否するユーザーごとに、ユーザーのシェルを変更します。

Sudo chsh -s /bin/false userx

現在、userxはssh/sftp経由でログインできません。

Vsftpdをインストールします。

Sudo apt-get install vsftpd

構成ファイルを編集します。

Sudo -e /etc/vsftpd.conf

そして、いくつかの変更....

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

セーブ。 vsftpdを再起動します。

Sudo /etc/init.d/vsftpd restart
1
user8290

ユーザーのシェルとしてrbashをチェックアウトできます。

man bash

RESTRICTED Shellセクションを検索

または、このページをご覧ください http://linux.die.net/man/1/bash

0
Karlson