「sshd」タグアーカイブ

一般ユーザにホームディレクトリ以外を見せなくする。

表題があまり正確ではないので、正確に。

Linux(CentOS 6.x)ですが、sshでログインしたユーザが/を見えたりする状態って嬉しくない時があります。

そういう時に、自分のホームディレクトリ以下のフォルダーやファイル以外を見えなくしてしまおうというのが今回の説明です。

本当は、sshでrootにログイン出来なくした上で、他のユーザからsu -でrootにスイッチしたいと考えました。
その時、他のユーザにおいてホームディレクトリ以下しか見えない設定にしたかったのですが、思うように出来なさそうなので・・・諦めました。

なので、実のところ副産物に過ぎず、あまり問題も気にせず、一応出来たよ・・・ということで書きますね。

まず、前回sshでrootアカウントのログインを出来なくしました。
その続きで見ている人がいたら要注意です。
これから作成するユーザをrootの代わりに作ったユーザIDには設定しないでください。
これから作成するユーザはsu コマンドを利用してrootにスイッチすることは出来ません。

あまり利用される機会は少ないと思いますが・・・

順序を説明します。

まず、新たにユーザを作成します。

一応、フォルダーも作成されて.bashrcなんかも入れてくれています。
useraddコマンドで作成するとちょっと違った感じになっちゃいますので、必ずadduserコマンドで作成してください。

出来上がったホームディレクトを確認します。

chrootするだけなら、この時点で特に設定を変更する必要はないのですが、最終目的はsshでログインまでさせることを考えているので、ここで設定を少し変更します。

理由は、sshでログインして移動させることが出来るディレクトリはroot権限になっている必要があるようです。
更に、オーナーをrootにしてしまうと、パーミッションを変えてやらないと一般ユーザが何も出来ない状態になってしまうからです。

では先程作ったabcユーザのフォルダーに対し設定変更を行います。

ここから必要最小限のファイルをコピーします。
と言いながら、面倒なのでがっつりと(^^ゞ

これで、chroot出来る環境が整ったはずです。
確認します。

これで成功です。

CTRL+Dで一度抜けます。

ここから、今度は作成したユーザ(abc)にsshでログインします。

入れることを確認したら、これも一旦抜けます。
このままでは、cd ..とすると/homeへ移動できてしまうはずです

sshdの設定を変更します。sshd_configファイルに以下の設定を追加します。最後に追加すれば良いはずです。

sshdの設定を再読み込みします。

こんな感じになっていればOKです。

仕上げの確認です。

cd ..で上位のディレクトリへ移動しようとしても移動できていないことが判ると思います。

設定は以上なのですが・・・ここで問題です。

そうです。ファイルを作ることが出来ないんです!

入れるけど、何も作成することが出来ない状態なのです。

そこで、ファイルが作れる環境を準備します。

何度も済みませんが、また抜けてください。
root権限で作業を行う必要があります。

rootアカウントに戻ったら、以下の操作を行います。
作成するディレクトリは任意の名称で構いません。

これで、/home/abc/user_spaceでabcユーザが自由に使えるスペースが出来ました。

先程と同じようにsshでログインしても大丈夫です。

今回この資料を残したのは、chrootで以下のエラーが発生したためです。

この問題を解決する方法が他のサイトにも記載されてはいたのですが、私が調べたサイトでコピーしているフォルダーの内容などをチェックしても失敗してしまったので、それらしきフォルダーをコピーして動くようにした経緯を残したかったからです。

誰かの参考になるかな?
正直、あまり使い道が無い結果になっているのですが・・・

私の最終目的は、ここからsu コマンドでrootユーザにスイッチ出来るところまでだったのですが、それには/etc/passwdをコピーするなど、本来隠しておきたいファイルが公になってしまうことが解りました。
まあ、それでも良かったのかも知れませんが・・・取りあえず、この段階でやる気が尽きましたのでご勘弁ください。

どなたかフォローのコメントを頂ければ幸いです。

P.S.ほとんど見られていないだろうから、コメント無いよな~寂しいなぁ~(8_8)