GNU/Linux >> Linux の 問題 >  >> Debian

Debian 9(Stretch)でJailkitを使用してJailedSSHユーザーを作成する方法

このドキュメントでは、Debian 9(Stretch)サーバーにJailkitをインストールして設定する方法について説明します。 Jailkitは、chroot()や特定のコマンドを使用してユーザーアカウントを特定のファイルに制限するためのユーティリティのセットです。 chrootシェル、特定のコマンドに限定されたシェル、またはchroot jail内のデーモンのセットアップははるかに簡単で、これらのユーティリティを使用して自動化できます。

Jailkitは、いくつかの大手ITセキュリティ会社のネットワークセキュリティアプライアンス、いくつかの大企業組織のインターネットサーバー、インターネットサービスプロバイダーのインターネットサーバー、およびcvs、sftp、shellを保護する必要のある多くの中小企業や個人ユーザーで使用されていることが知られています。またはデーモンプロセス。

1予備メモ

このチュートリアルはDebian9サーバーに基づいているため、このチュートリアルを続行する前に、基本的なDebianサーバーのインストールを設定する必要があります。システムには静的IPアドレスが必要です。このチュートリアルでは、IPアドレスとして192.168.0.100を使用し、ホスト名としてserver1.example.comを使用しています。

2Jailkitをインストール

まず、Jailkitをダウンロードしてインストールします。このガイドを書いている時点で、Jailkitの最新バージョンは2.20です。次のようにダウンロードしてインストールします:

cd /tmp    
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20

Jailkitは、インストールする前にいくつかのパッケージを必要とします。次のようにインストールします。

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python

これで、システムでJailkitをインストールする準備が整いました。次のようにインストールしてください。

echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb

DebianサーバーにJailkitがインストールされます。/tmpから余分なパッケージを削除できます:

rm -rf /tmp/jailkit*

3ユーザーを投獄する

次に、Jailkitを使用して投獄されるユーザーを次のように作成します。

adduser srijan

[メール保護]:〜#addusersrijan
ユーザー`srijan'を追加しています...
新しいグループ`srijan'(1001)を追加しています...
新しいユーザー`srijanを追加しています'(1001)with group `srijan' ...
ホームディレクトリ`/home /srijan'を作成しています...
`/ etc /skel'からファイルをコピーしています...
Enter new UNIXパスワード:<-パスワード
新しいUNIXパスワードを再入力します: <-password
passwd:パスワードが正常に更新されました
srijanのユーザー情報を変更します
新しい値を入力するか、デフォルトの場合はEnterキーを押します
フルネーム[]: <-ENTER
部屋番号[]: <-ENTER
職場の電話[]: <-ENTER
自宅の電話番号[]: <-ENTER
その他[]: <-ENTER
情報は正しいですか? [Y / n] <-Y
[メールで保護]:〜#

私の場合、ユーザーsrijanを作成していますが、任意の名前を使用できます。

次に、/ etc/passwd内のユーザーsrijanに関する情報を次のように確認します。

egrep srijan /etc/passwd
[メール保護]:/ tmp#egrep srijan / etc / passwd
srijan:x:1001:1001:,,,:/ home / srijan:/ bin / bash
[メール保護]:/ tmp #

次に、作成したユーザーをjailします。 Jail環境用のディレクトリ/jailを作成します:

mkdir /jail

次に、Jailにデフォルトのプログラム環境のいくつかを次のように提供します。

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

他の値を指定することもできます。Jail環境の完全なリストはファイルで確認できます

nano /etc/jailkit/jk_init.ini

これでJailの準備が整いました。環境内にユーザーを追加するだけです:

jk_jailuser -m -j /jail/ srijan

ユーザーsrijanの/etc/ passwdの値をもう一度確認します:

egrep srijan /etc/passwd
[メール保護]:/ tmp#egrep srijan / etc / passwd
srijan:x:1001:1001:,,,:/ jail /./ home / srijan:/ usr / sbin / jk_chrootsh
[メールで保護]:/ tmp#

これで、ユーザーがJailed環境に追加されました。 DebianサーバーをbashターミナルにIP192.168.0.100で接続します:

ssh [email protected]
[メール保護]:〜$ ssh[メール保護]
ホスト「192.168.0.100(192.168.0.100)」の信頼性を確立できません。
ECDSAキーのフィンガープリントは3d:ca:91:です。 67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7。
接続を続行してもよろしいですか(はい/いいえ)?はい
[メール保護]のパスワード:
Linux server1 3.2.0-4-amd64#1 SMP Debian 3.2.60-1 + deb7u3 x86_64

に含まれるプログラムDebian GNU /Linuxシステムはフリーソフトウェアです。
各プログラムの正確な配布条件は、
/ usr / share / doc / */copyrightの個々のファイルに記載されています。

Debian GNU / Linuxには、適用法で許可されている範囲で、まったく保証がありません。
192.168.0.100への接続は閉じられています。
[メール保護]:〜$

ユーザーがロギングシェルを持っていないため、接続が閉じられています。Jailの構成ファイルに追加しましょう:

nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash

投獄されたユーザーsrijanのbashプロンプトが追加されます。ここで、srijanユーザーでsshログインを再試行すると、ログインできるようになります:

ssh [email protected]

ルートディレクトリの内容を確認すると、次のような内容になっていることがわかります。

ls /
[メール保護]:〜$ ls /
bin dev etc home lib lib64 usr
[メール保護]:〜$

4投獄された環境でのサービスとコマンドの実行

Jailは、Jailed環境でサービスを実行するために使用できます。 Jailed環境でサービスを実行したい場合は、そのためにjk_chrootlaunchコマンドを使用します。

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'

ここでApacheのサービスを開始します。同様に、Jailed環境で任意のサービスまたはデーモンを実行できます。

Jail環境で特定のコマンドを実行する場合は、jk_cpを使用します。 calを実行するときに、Jailed環境でテストしてみましょう。次のように表示されます。

cal
[メール保護]:〜$ cal
bash:cal:コマンドが見つかりません
[メール保護]:〜$

これは、Jail環境がcalコマンドを認識していないことを意味します。次に、次のようにDebianサーバーに追加します。

jk_cp  -v -j /jail/ /usr/bin/cal
[メール保護]:〜#jk_cp -v -j / jail / / usr / bin / cal
symlink / jail / usr / bin/calをncalに作成
/usr / bin/ncalを/にコピーjail / usr / bin / ncal
symlink/jail/lib/x86_64-linux-gnu/libncurses.so.5をlibncurses.so.5.9に作成
/lib/x86_64-linux-gnu/libncursesをコピー.so.5.9から/jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5はすでに存在し、触れません
/jail/lib/x86_64-linux-gnu/libc.so.6はすでに存在し、それに触れません
/jail/lib/x86_64-linux-gnu/libdl.so.2はすでに存在し、しませんタッチする
/jail/lib64/ld-linux-x86-64.so.2はすでに存在し、タッチしない
/jail/lib/x86_64-linux-gnu/libtinfo.so.5存在し、触れない
/jail/lib/x86_64-linux-gnu/libc.so.6はすでに存在し、触れない
/jail/lib/x86_64-linux-gnu/libdl so.2はすでに存在し、触れない
/jail/lib64/ld-linux-x86-64.so.2はすでに存在し、触れない

再びJailed環境でcalコマンドを実行します:

cal
[メール保護]:〜$ cal
2019年4月
SuMo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

[メール保護]:〜$


そこで、Jailed環境用のコマンドを追加しました。おめでとう!これで、Debian9でJail環境を正常に構成できました:)

  • Debian:https://www.debian.org/
  • ジェイルキット:https://olivier.sessink.nl/jailkit/

Debian
  1. CentOS、Ubuntu、DebianでSudoユーザーを作成する方法

  2. Debian8をDebian9Stretchにアップグレードする方法

  3. DebianでSudoユーザーを作成する方法

  1. Debian 9StretchLinuxでEncFSを使用してディレクトリを暗号化する方法

  2. Debian9でユーザーを作成および削除する方法

  3. Debian で SSH キーを設定する方法

  1. DebianでSudoユーザーを作成する方法

  2. Debian 9StretchLinuxでFTPサーバーを構成する方法

  3. Sshアクセスで新しいユーザーを作成する方法は?