SSH経由で接続しているユーザーを投獄する方法

私たちの世界にはたくさんの秘密があります...正直なところ、私はそれらのほとんどを知るのに十分なことを学ぶことができないと思います。これは、Linuxが私たちに非常に多くのことを可能にするという単純な事実によって与えられますが、それらすべてを知ることは私たちにとって難しいことです。

今回は、非常に便利なこと、多くのネットワークまたはシステム管理者が行う必要のあること、そしてそれを達成するためのかなり簡単な方法を見つけられないことは難しいと感じた方法を説明します。

SSH経由で接続するユーザーをケージに入れる方法

ケージ? …WTF!

はい。何らかの理由で、自分のコンピューター(またはサーバー)への友人へのSSHアクセスを許可する必要がある場合は、コンピューターまたはサーバーのセキュリティと安定性に常に注意を払う必要があります。

最近、Perseus SSHに自分のサーバーへのアクセスを許可したかったのですが、非常に機密性の高い構成があるため(多くのものをコンパイルしたり、個別にインストールしたパッケージなど)、彼にアクセスを許可することはできません。 。)サーバーに少しでも変更を加えようとしても、すべてが無駄になる可能性があります。

その後、 非常に限られた特権で、ケージ(自宅)から出ることさえできないほど多くのユーザーを作成する方法?

ダウンロードから始めましょう ジェイルキット、これを可能にするツール:

以下のすべてのコマンドはrootとして実行されます

1. まず、JailKitサーバーをダウンロードする必要があります。

wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz

2. 次に、パッケージを解凍して、表示されたばかりのフォルダーを入力する必要があります。

tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14

3. その後、ソフトウェアのコンパイルとインストールを行いました(スクリーンショットを残します):

./configure
make
make install

。/設定

make

make installを

4. 準備ができました、これはすでにインストールされています。 次に、将来のユーザーを含むケージを作成します。私の場合は、/ opt /で作成し、「jail」と呼んだので、パスは次のようになります。 /オプト/刑務所 :

mkdir /opt/jail
chown root:root /opt/jail

5. ケージはすでに作成されていますが、そこにいる将来のユーザーが問題なく作業できるように、必要なツールがすべて揃っているわけではありません。 つまり、これまではケージが作成されていましたが、それは単なる空のボックスです。 次に、ケージに入れられたユーザーが必要とするいくつかのツールをケージに入れます。

jk_init -v /opt/jail basicshell
jk_init -v /opt/jail editors
jk_init -v /opt/jail extendedshell
jk_init -v /opt/jail netutils
jk_init -v /opt/jail ssh
jk_init -v /opt/jail sftp
jk_init -v /opt/jail jk_lsh

6. 準備ができて、ケージが存在し、ユーザーが使用するためのツールがすでにあります...今必要なのは...ユーザーだけです! ユーザーを作成しましょう キラ そしてそれをケージに入れます:

adduser kira
jk_jailuser -m -j /opt/jail kira

注:ターミナルで次のコマンドを実行すると、スクリーンショットに示されているような結果が得られるはずです。

cat /etc/passwd | grep jk_chroot

スクリーンショットのようなものが何も表示されないことに気付いた場合は、何か間違ったことをしたに違いありません。 ここにコメントを残してください。喜んでお手伝いします。

7. そして出来上がり、ユーザーはすでにケージに入れられています...しかし、彼はとてもケージに入れられているので、SSHで接続できません。サーバーに接続しようとすると、次のことが許可されないためです。

8. ユーザーが接続できるようにするには、もうXNUMXつの手順を実行する必要があります。

ケージのetc / passwdファイルを編集する必要があります。つまり、この場合は次のようになります。 / opt / jail / etc / passwd 、その中で、作成したユーザー行にコメントし、次のような新しい行を追加します。

キラ:x:1003:1003 :: /ホーム/キラ:/ビン/バッシュ

つまり、次のようなファイルになります passwd:

root:x:0:0:root:/ root:/ bin / bash
#kira:x:1003:1003:,,,:/ opt / jail /./ home / kira:/ usr / sbin / jk_lsh
キラ:x:1003:1003 :: /ホーム/キラ:/ビン/バッシュ

句読点の重複などに注意してください。句読点を削除しないことが重要です🙂

これを行った後、ユーザーは問題なく入ることができます😀

そしてそれがすべてです。

このすべてに使用するツール(ジェイルキット)バックエンドでの使用 chroot、これは実際にはほとんどすべてのチュートリアルで使用されているものです。 ただし、JailKitを使用すると、ケージに入れるのが簡単になります😉

重要!:これはでテストされています Debian Squeeze(6) y CentOSの そしてそれはうまくいった 100%で、Debian Wheezy(7)でテストされ、詳細はわかりますが、ユーザーのニックネームがsshに表示されないことも機能しましたが、機能が失われることはありません。

誰かが問題を提示したり、何かがうまくいかない場合は、できるだけ詳細を残してください。私は自分自身を専門家とは見なしませんが、できる限りお手伝いします。


50コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   v3on

    それならFTPのパーミッションのようなものでしょうか? 面白い

    mysql xDのユーザーのように、存在すら知らなかったすべてのものを常に思い付く

    1.    KZKG ^我愛羅

      SSHはFTPと同じではないため、正確ではありません。 SSHはシェル、つまりターミナルです...別のコンピューターまたはサーバーのターミナルにいて、コマンドを実行したり、プロセスを開始したりできます...サーバー管理者が許可する限りのことを行います😉

      hahahahahaha nahさあ、私はもっと技術的なものを公開するということです...つまり、あまり人気がなく面白くない小さなものを公開するのが好きです。 たとえば、私は個人的に新しいUbuntuがリリースされた日に何かを公開する予定はありません。なぜなら、多くの人がすでにそれについて話していると信じているからです...しかし、ここの投稿で読んだことは、毎回読まれるものではありません。日かどうか? 😀

      1.    ダミアンリベラ

        非常に良い貢献ありがとうございます

        ftpとSecureShellを組み合わせたsftpというプロトコルもありますが、FTP overSSHを実行するのと同じではありません。\

        よろしく

        1.    KZKG ^我愛羅

          はいはい確かに、しかしSSHをケージに入れることで、SFTPを使用して接続する人を自動的にケージに入れます。あなたが言うように、SFTPは実際にはSSH + FTPです😀

          よろしく

  2.   ギスカード

    画像が見えません!!! 🙁

    1.    KZKG ^我愛羅

      私のちょっとした間違い、今教えてください😀

      1.    ギスカード

        準備ができました。 ありがとう😀

  3.   rots87

    とても良いです、私はそれが必要なときにそれを利用できるようにするために私のお気に入りを指します笑

    1.    KZKG ^我愛羅

      ありがとう、質問や問題があれば私たちはあなたを助けるためにここにいます🙂

  4.   マヌエルデラフエンテ

    彼らは檻の中にペルセウスを持っています。 http://i.imgur.com/YjVv9.png

    1.    適切な


      xD

  5.   ヨルゲマンジャレスレルマ

    お元気ですか。

    ご存知のとおり、これは私があまりよく知らないトピックであり、BSD(PC-BSDおよびGhost BSD)でチェックしていたことであり、非常に興味深く、非常に便利な機能を備えていると思います。

    参照用に保管し、BSDドキュメントと照合します。 情報のおかげで。

    1.    KZKG ^我愛羅

      誰かにSSHアクセスを許可することを考えたことがなかったので、私もこれに精通していませんでしたが、そうする必要があると思ったとき、アクセスを許可したかったのですが、誰かが誤って何かをする可能性はありませんそれはする必要はありませんでした😀

      私はこれをBSDシステムで試したことがないので、うまくいくとは言えませんが、BSDでchrootする方法を探しているなら、何かが出てくるはずです😉

      コメントの友達をありがとう🙂

      1.    ダミアンリベラ

        こんにちは、私はFreeBSDを使用していますが、もちろんjailkitは実際にはこれをポートで機能させます

        このコマンドでインストールします

        cd / usr / ports / shells / jailkit / &&インストールをクリーンにする

        またはftpパケットで

        pkg_add -r ジェイルキット

        構成のみ(kira:x:1003:1003 :: / home / kira:/ bin / bash)

        bashをインストールしてこのパスを追加していない限り、tcshまたはshを追加する必要があります

        / usr / local / bin / bash

        さらにいくつかの詳細は、Ghost BSDでは、FreeBSDに基づいているため、同様のプロセスがさらに単純になるはずです。

        よろしく

  6.   adiazc87

    素晴らしい、私はそれを探していました。 Centosで動作するかどうか知っていますか? ありがとう。

    1.    KZKG ^我愛羅

      Centosでテストしたことはありませんが、動作するはずです:)
      実際、CentosサーバーとRedHatサーバーで同じツールを使用した人がいることを覚えています😉

  7.   サイバーアレホ17

    どうもありがとう。 ブックマークに直接移動します。

    1.    KZKG ^我愛羅

      コメントありがとうございます🙂

  8.   MVアルタミラノ

    非常に優れた「トリック」であり、sys管理者にとって非常に便利です。 しかし、さらに良く、非常によく書かれています。 これ以上何が欲しいですか。
    貢献をありがとうございました。

    1.    KZKG ^我愛羅

      ありがとう、コメントありがとうございます😀
      よろしく

  9.   リグヌクセロ

    SSHハハを称賛
    私はかつてssh用のケージを作ろうとしましたが、伝統的なスタイルで、真実はそれが正しく出てこなかったということです。 ケージが実行されている場合は、bashもありませんでした。つまり、接続されていて、何も残っていませんでした。シェルが実行されている場合は、ディレクトリ階層に上がる可能性があり、さらに多くのキロンボがあります。このジェイルキットはメイスです、それはそれらすべてのものを自動化します...強くお勧めします

    1.    KZKG ^我愛羅

      ハハありがとう。
      はい、実際にはSSHは、SSHが私たちに許可していることのすべてに驚異的です。これは、システムが許可していること以上のものではありません。 …はは。

  10.   nwt_lazaro

    こんにちは、質問です!
    なぜ家を(1)/ opt / jail /./ home / kiraから(2)/ home / kiraに変更するのか

    ケージのファイルetc / passwdを編集する必要があります。つまり、この場合は/ opt / jail / etc / passwdになり、作成したユーザー行にコメントを付けて、次のような新しいものを追加します。

    キラ:x:1003:1003 :: /ホーム/キラ:/ビン/バッシュ

    つまり、passwdファイルは次のようになります。

    root:x:0:0:root:/ root:/ bin / bash
    (1)#kira:x:1003:1003:,,,:/ opt / jail /./ home / kira:/ usr / sbin / jk_lsh
    (2)kira:x:1003:1003 :: / home / kira:/ bin / bash

    1.    KZKG ^我愛羅

      こんにちは🙂
      それが設定されていない場合、SSHアクセスは機能せず、ユーザーは接続を試みますが、自動的に追い出されます... JailKitがもたらすインタープリターのバグまたは問題のようです。この変更を行うと、システムの通常のbash、すべてが機能します。

      1.    オマールラミレス

        私はまだsshセッションを閉じます:C
        SUSE 10.1 x64

  11.   alexitu

    こんにちは私はこれをインストールしました、そしてそれはcentos = Dで非常にうまく機能します

    しかし、私のドゥアは、たとえば刑務所のユーザーにコマンドを追加する前のようなものです
    svncoコマンドを実行できません http://pagina.com/carpeta

    つまり、この場合、以前のようにjailユーザーがこれらのコマンドをjailに追加するためのこのコマンドは存在せず、追加する必要のあるコマンドは他にもたくさんあります。

    1.    KZKG ^我愛羅

      こんにちはお元気ですか🙂
      刑務所でコマンド«svn»を有効にしたい場合は、コマンドjk_cpがあります。
      あれは:
      jk_cp / opt / jail / / bin / svn

      これは、svnバイナリまたは実行可能ファイルが次のとおりであると想定しています:/ bin / svn
      そして、ケージ/刑務所を次のようにします:/ opt / jail /

      他の人に依存するコマンドが見つかります。つまり、コマンド«pepe»を追加すると、«federico»も追加する必要があることがわかります。«pepe»は実行する«federico»に依存しているためです。あなたは必要なコマンドを追加し、すでに😉

      1.    alexitu

        それは素晴らしいです、私は今それをテストしています、そして私はそれが起こったことをあなたに言います、どうもありがとう= D

        1.    KZKG ^我愛羅

          運😀

  12.   alexitu

    私はあなたが私に言ったことをなんとかすることができました、しかしこのようにしてそして自動的にそれは問題なくそれを検出しました。これは私がsubverisionを使うことができたのに使用したコマンドでした。

    jk_cp -j / home / jaul svn

    私はcentosxPを使用していますが、おそらくそれは異なりますが、良いです
    ここで、svnのようなライブラリはどれか知りたいのですが、次のようなコマンドを使用する必要があるとしましょう。

    ./configure and mark error

    ./configure.lineno:行434:expr:コマンドが見つかりません

    jauiの内部ではなく、jailの外部でコンパイルする場合、mysqlなどをインストールしたライブラリがどれであるかわかりません。

    ご不便おかけしてすみません。

    ps:centos =)greetingsで使用されるコマンドについて私があなたに言ったことをガイドに入れるべきです。

    1.    KZKG ^我愛羅

      ほら、(ここのように)コマンドが見つからないと言ったら、最初にコマンドを見つけることです。

      whereis expr

      見つかったら(/ usr / bin / exprおよび/ usr / bin / X11 / expr)、jk_cpを使用してJailにコピーします😉
      これを試してみてください。

      はい、私はすでに投稿を編集して、Centosで機能することを追加しました😀

  13.   adiazc87

    どうもありがとうございました(:

  14.   イエス

    入力ありがとうございます…

  15.   カルマ

    こんにちは、元気ですか?

  16.   ジェフェニクチリ

    男をファック! チリからのご挨拶。 あなたは私と同じくらいおならです! 笑!。 抱擁。 あなたの投稿は私にとって大きな助けになりました!

    1.    KZKG ^我愛羅

      コメントありがとうございます😀

  17.   ダニエルPZ

    投稿ありがとうございました。とても助かりましたが、残念ながら

    ////////////////////////////////////////////////// //// ////////////////////////////////////////////// //////// //////////////////////
    ケージのファイルetc / passwdを編集する必要があります。つまり、この場合は/ opt / jail / etc / passwdになり、作成したユーザー行にコメントを付けて、次のような新しいものを追加します。

    キラ:x:1003:1003 :: /ホーム/キラ:/ビン/バッシュ

    つまり、passwdファイルは次のようになります。

    root:x:0:0:root:/ root:/ bin / bash
    #kira:x:1003:1003:,,,:/ opt / jail /./ home / kira:/ usr / sbin / jk_lsh
    キラ:x:1003:1003 :: /ホーム/キラ:/ビン/バッシュ
    ////////////////////////////////////////////////// //// //////////////////////////////////////////

    それは私に同じエラーを引き起こします、つまり、私はそれをそのままにしておき、接続時に端末から私を起動します、、、 ..、私は行にコメントし、あなたが示すようにそれを変更するもうXNUMXつ追加します、そしてそれはまた私を起動します…。

    最新バージョン「jailkit-2.16.tar」をインストールし、時間を節約するためのスクリプトを作成します。以下は次のとおりです。

    ////////////////////////////////////////////////// // //////////////////////////////////////////////
    #!/ bin / bashに
    wgetの http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tar -zxvf ジェイルキット-2.16.tar.gz
    cdjailkit-2.16
    。/設定
    make
    make installを
    終了する
    ////////////////////////////////////////////////// ///////////////////////////

    明らかに、最初に「root」としてログインします...

    どうすればエラーフレンドを解決できますか????

    1.    ダニエルPZ

      申し訳ありませんが、私はすでにそれを取得しました、私はホームフォルダを間違えました、しかし私は大きな疑問を持っています、どうすれば「screen」コマンドを実行させることができますか、私はそれを使用しようとします(ケージユーザーで) 、しかしそれは機能しません...別のことは、このケージのユーザーに、自宅に置いたばかりのexeファイルでワインプログラムを実行させるにはどうすればよいですか?

  18.   レオネル

    こんにちは、とても良いツト! 私はこれらの環境に不慣れです、私は質問があります...
    セキュリティに関しては、ルートにたくさんのフォルダがあるようですが、それらは必要ですか? アプリケーションを実行するために、彼に自分のフォルダー(ftp-uploadおよびssh-execute)へのアクセス権を持たせたいだけです。ルートからどのフォルダーを削除できますか? それとも私にとって危険ではありませんか? よろしくお願いします!

  19.   キューバレッド

    @ KZKG ^我愛羅、wheezyエラーを入れてくれてありがとう、でもjailkit-2.16.tar.gzのバージョンで修正を提案してくれた

    http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

  20.   アルガベ

    私はそれをPDFに渡すと思います、ジョジョ..ケージにそしてありがとうwn😀

  21.   サミュエル

    友人の皆さん、質問があります。

    「test」という名前のユーザーがいるとします。

    問題は、そのユーザーのホームにあるファイル/home/test/.ssh/known_hostsは、これと同じファイルであるか、ユーザーをケージに入れていないかということです。

  22.   リッチアート

    これを試して。 この方法を使用すると、ナビゲーションを他のユーザーの他のホームに制限できます。

  23.   TZBKR

    まず、投稿ありがとうございます! それは私にとって非常に役に立ちます。 しかし、私にはXNUMXつの疑問があり、これらは私が持っているシナリオから生じます。

    自宅への独立したプライベートアクセス権を持つN人のユーザーを作成する必要があります。各ユーザーは、他のユーザーに移動することなく、自宅にアクセスしてそこに含まれるファイルを保存、変更、削除することしかできません(私はすでにこの点を持っています)。 ssh経由でアクセスする必要はありません。

    1.ユーザーごとにケージを作成する必要がありますか、それとも同じケージに異なるユーザーを配置する方法はありますが、それぞれに「プライベート」ディレクトリがありますか?

    2.ツールによって作成されたすべてのディレクトリに(FTPクライアントを介して)アクセスすると表示されますが、フォルダーをきれいに表示する方法はありますか? それとも、途中で何か間違ったことをしましたか?

  24.   エドワード

    素晴らしいチュートリアル! これは私にとって大きな助けになりました。Ubuntu2.17のバージョン14.04でテストしており、非常にうまく機能しています。 ここで、次の課題があります。ユーザーがどのパスにも移動できないようにケージに入れられたら、別のパスにあるファイルのコンテンツのみを表示できるようにします。 シンボリックリンクを試してみましたが、このファイルに尻尾や猫を作成しようとすると、存在しないと表示されますが、ユーザーでアクセスすると、ケージのホームにそのファイルを一覧表示できます。

    よろしければ、よろしくお願いします。よろしくお願いします。

  25.   ヤス

    こんにちは、私はマニュアル全体に従いました。sshでログインすると、自動的に閉じます。トレースします。

    4月19日20:09:27701toby sshd [172.16.60.22]:62009ポート2sshXNUMXからのテスト用に受け入れられたパスワード
    4月19日20:09:27701toby sshd [0]:pam_unix(sshd:セッション):ユーザーテストのためにセッションが開かれました(uid = XNUMX)
    4月19日20:09:27864toby jk_chrootsh [1004]:引数付きのユーザーテスト(XNUMX)にjail / opt / jailを入力するようになりました
    4月19日20:09:27701toby sshd [XNUMX]:pam_unix(sshd:セッション):ユーザーテストのためにセッションが閉じられました

    感謝

  26.   オマールラミレス

    ユーザーにsshアクセスを許可する最後のステップを実行しても、接続は閉じられません🙁

  27.   ベンジ

    この作成されたユーザーからrootに変更することは可能ですか? あなたのルート? それは私をさせません。 どうですか?助けてくれてありがとう

  28.   Slevin

    チュートリアルをありがとうございました。clonezillaを使用してイメージを作成し、それを外部サーバーにコピーできるが、どこにでも群がることができないユーザーを作成するために必要でした。

  29.   マウロ

    良い! 私は何かを知る必要があるでしょう。

    FTPを使用してこれらの権限を持ってROOTとして入力し、SSHではなくFTPで管理することは可能ですか? 接続やトンネルスタイルなどを作成するようなものだとしましょう。それはどのように行われますか? VSFTPDファイルを設定しますか?

    どうもありがとう!