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


33

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

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


ユーザーがホームディレクトリでロックされていない場合の2回目の更新
Zero

1-@Marcoが言及したように、ChrootDirectory for SSHを試してみたいと思います2-これをスケーリングして「大量」のストレージを処理する必要があるので、物事の標準的な方法を超えたいと思うかもしれません... 3- SSHが最良の選択ですか?サービスでSSHが必要ですか?4-幸運
アリ

1
私も他の計画を持っています....通常のユーザーのために、私たちはMY SECURE SHELLでSFTPのみを提供します。それは非常に簡単な2ハンドル
One Zero

このjail eg(home / jail)を削除するにはどうすればよいですか?<br>また、jk_init -v -f / home / jail netutilsなどのjailセクションを追加する場合、これを削除するにはどうすればよいですか?

回答:


23

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(非常に良いヘルプ)

これも

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


+1とても良い。非常にあまりにもあなたが「撮影ヘルプ」セクションで、上記のリンクを読んでお勧めします
CWD

2
これはUbuntu 13.10では機能しません。最終的にログインしようとすると、すぐにウェルカムメッセージが表示され、その後に接続が閉じられます。
マットH 14

マットH:必ず最後の2つの手順に従ってください。bashバイナリをコピーし、/ home / jail / etc / passwdファイルを編集します。
オノズ

2
これはもう機能しないか、このチュートリアルが作成されてから何かが変更されています。私はMattHとまったく同じ問題を抱えています。
ジェームスヒールド

また、ウェルカムメッセージの直後に接続が閉じられるという問題が発生しました。ここで読むように、chroot passwdファイル内のログインシェルをjk_lshからbashに変更しましたlinuxquestions.org/questions/linux-software-2/…これは解決策ではなく、回避策です!
アッティラフロップ

6

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

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

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

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


You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etc必要だと思うファイルのリンク/コピーを妨げるものは何もありません。
user606723

1
はい、できます。ユーザー606723が示唆するように「できます」が、それはそれほど簡単ではなく、すべての潜在的なソリューションのIMOは最も実用的または簡単ではありません。chrootをビルドするかlxcを使用することもできます。バイナリをコピーしてから、libsをコピーします。多くの場合、lddでライブラリを手動で識別する必要があります。この方法では、設定に膨大な作業が必要です。そして、あなたは刑務所を最新に保つ必要があります、あなたは手動でバイナリ/ライブラリを更新(コピー)する必要があります。リンクは更新に関してはより適切に機能する可能性がありますが、それでもすべてを設定する必要があります。どういうわけか、これはOPが念頭に置いていたとは思いません。それではどうやってそれらを制限するのでしょうか?
パンサー

1
質問の全体的なポイントは、このプロセスを自動化するツールを指摘することだったと思います... jailkitOPが言及しているツールのように。
user606723

@ bodhi.zazen これについてどう思うか.. debootstrap(oneiric)そしてlxcを使用してコンテナを作成します。jailキットを使用する>ユーザーからコンテナへ>。これまでにやったことは、debbootstrap oneiric minimumを使用してからjailkitを使用した>正常に動作していること-One
Zero

このタスクにはLXCを使用できますが、LXCでは分離が不完全な場合があることに注意してください。ユーザーがコンテナ内でルートアクセス権を持っていない限り、OKである必要があり、LXCメーリングリストを購読することもできます。
パンサー

1

どのような目的を達成したいのかを推測するのは困難です。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

よく彼らにssh + sftp(filezillaを介して接続)を与えたい
ワンゼロ

0

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

man bash

RESTRICTED SHELLセクションを検索

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


3
rbashには非常に注意するだけで、非常に簡単に抜け出し、古いものと見なされます。blog.bodhizazen.net/linux/how-to-restrict-access-with-rbashを
パンサー

@ bodhi.zazenという意味rbashですか?
カールソン

はい、申し訳ありませんが修正しました。数年前に誰かが私が設定したrbash刑務所を壊したブログがありました。5分もかからなかった。誰も脱獄しませんでした。
パンサー

plzを構成する方法を教えてください..jailbash-ワンゼロ12
1

はい、男のbashは、より簡単にはbashシェルrestrited機能を使用している、ことができます
c4f4t0r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.