シェルがすぐに閉じないようにユーザーを刑務所に置く正しい方法

シェルがすぐに閉じないようにユーザーを刑務所に置く正しい方法

Centos7でJailkitを使用しようとしています。ソースからインストールし、RPMも使用しました。http://dries.eu/rpms/jailkit/jailkit、同じ結果を得る。私の主な関心事はhttps://olivier.sessink.nl/jailkit/howtos_chroot_shell.htmlしかし、他の多くの文書も閲覧されています。

ステップ1:刑務所を作る。それでもこれを含めるべきですかjk_lsh?これについては後で詳しく説明します。また、大きな問題ではありませんが、-kリンクをコピーする代わりにリンクを作成するオプションを使用することをお勧めします。複数のファイルが存在しません。

[root@mybox ~]# jk_init -v -j /home/jail basicshell editors extendedshell netutils ssh sftp scp | grep 'do not exist'
Source file(s) /lib/libnsl.so.1 do not exist
Source file(s) /lib/libnss*.so.2 do not exist
Source file(s) /etc/bash.bashrc do not exist
Source file(s) /usr/lib/locale/en_US.utf8 do not exist
Source file(s) /etc/vimrc do not exist
Source file(s) /etc/joe do not exist
Source file(s) /etc/bash.bashrc do not exist
Source file(s) /usr/lib/locale/en_US.utf8 do not exist
Source file(s) /usr/share/mc do not exist
Source file(s) /etc/vimrc do not exist
Source file(s) /etc/joe do not exist
Source file(s) /lib/libnss_dns.so.2 do not exist
Source file(s) /usr/lib/sftp-server do not exist
Source file(s) /usr/lib/misc/sftp-server do not exist
Source file(s) /usr/libexec/sftp-server do not exist
Source file(s) /usr/lib/openssh/sftp-server do not exist
Source file(s) /usr/lib/sftp-server do not exist
Source file(s) /usr/lib/misc/sftp-server do not exist
Source file(s) /usr/libexec/sftp-server do not exist
Source file(s) /usr/lib/openssh/sftp-server do not exist
[root@mybox ~]#

ステップ2:ユーザーを刑務所に追加します。ユーザーが/usr/sbin/jk_lsh追加されていないため、追加できません。を使用して追加したり、jk_initユーザーのシェルを指定したりできます-s /bin/bash(後で変更する必要があるため適切です)。私は両方とも試しました。

[root@mybox ~]# jk_jailuser -m -v -j /home/jail testuser1
invalid shell, /home/jail/usr/sbin/jk_lsh does not exist
enter jail directory: /home/jail
invalid shell, /home/jail/usr/sbin/jk_lsh does not exist
enter jail directory: ^C
aborted..
[root@mybox ~]#
# add jk_lsh and jail users...
[root@mybox ~]# cat /etc/passwd | grep testuser
testuser1:x:1002:1002::/home/jail/./home/testuser1:/usr/sbin/jk_chrootsh
testuser2:x:1003:1003::/home/jail/./home/testuser2:/usr/sbin/jk_chrootsh
[root@mybox ~]# cat /home/jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
testuser1:x:1002:1002::/home/testuser1:/usr/sbin/jk_lsh
testuser2:x:1003:1003::/home/testuser2:/bin/bash
[root@mybox ~]#

ステップ3: 新しいユーザーとしてログインしてください。 testuser1 または testuser2 でログインしようとすると、シェルはすぐに閉じます。

[root@mybox ~]# tail -6 /var/log/secure
Sep  7 14:12:24 mybox sshd[2615]: Accepted password for testuser1 from 11.22.333.444 port 62008 ssh2
Sep  7 14:12:24 mybox sshd[2615]: pam_unix(sshd:session): session opened for user testuser1 by (uid=0)
Sep  7 14:12:24 mybox sshd[2615]: pam_unix(sshd:session): session closed for user testuser1
Sep  7 14:12:36 mybox sshd[2623]: Accepted password for testuser2 from 11.22.333.444 port 62009 ssh2
Sep  7 14:12:36 mybox sshd[2623]: pam_unix(sshd:session): session opened for user testuser2 by (uid=0)
Sep  7 14:12:37 mybox sshd[2623]: pam_unix(sshd:session): session closed for user testuser2
[root@mybox ~]#

私のハッキーソリューション: ソースからインストールして使用する場合は、ユーザーを追加する前に実行するため、jk_init -k ..シェルjk_cp -v -f -j /home/jail /bin/bashはすぐに閉じられません。これがなぜ必要なのか、または-kフラグまたはソースで実行する必要性が変更されたのかはわかりません。それにもかかわらず、このステップを要求するのはおそらく悪い解決策だと思います。

最後の質問: あまり問題ではありませんが、更新すると次のエラーも発生します。

[root@mybox ~]# jk_update -j /home/jail -d
ERROR:  while scannign dir /home/jail/lib/: No such file or directory
ERROR:  while scannign dir /home/jail/opt/: No such file or directory
[root@mybox ~]#

私の質問: シェルがすぐに閉じないように、ユーザーを刑務所に閉じ込める正しい方法は何ですか?

ベストアンサー1

これを試してみてください。使い方はとても簡単です。

3つのステップだけを経て、ユーザーを刑務所に送ることができます。

1. add user to system
2. create a jail with jail-shell command.
3. set user into jail with jail-shell command.

ツールは次のとおりです。https://github.com/pymumu/jail-shell

メモ:私はこのツールの開発者なので、これは少し自己宣伝です。

ペニク=フィムム

おすすめ記事