このチュートリアルでは、特にDebianChroot環境を扱います。 chroot環境内でLinuxシステムを実行すると、システム管理者は、サーバーが危険にさらされた場合の本番サーバーへの影響を減らすことができます。
ルートを変更する ルートディレクトリを現在実行中のすべてのプロセスに変更し、その子をchrootjailに変更します。 chrootされた環境でのさまざまなパッケージのインストールとサーバー構成のテストは、chrootjailを利用するもう1つの便利な方法です。
このチュートリアルでは、DebianLinuxでchrootをセットアップするためのステップバイステップの手順を説明します。この手順は、他のDebianベースのシステムでも機能します。
このチュートリアルでは、次のことを学びます。
- デブートストラップのインストール方法
- DebianLinuxでchrootを設定する方法
- chroot刑務所にSSHで接続する方法
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
システム | Debian Linux |
ソフトウェア | debootstrap |
その他 | rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 |
コンベンション | # –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
デブートストラップをインストールする
最初に行う必要があるのは、 debootstrapをインストールすることです。 Debianのパッケージ。このソフトウェアを使用すると、chroot環境を作成できます。次のコマンドを使用して、Debianのパッケージマネージャーでパッケージをインストールします。
$ sudo apt update $ sudo apt install debootstrap
chroot環境をインストールする
次に、chroot環境をインストールします。以下の手順に従ってセットアップしてください。
- まず、chroot環境を配置するディレクトリを作成します。シンプルに保ち、
/mnt/chroot
を使用します このチュートリアルでは。$ sudo mkdir -p /mnt/chroot
- 新しいchrootディレクトリの準備ができたら、debootstrapを使用してchroot環境内に新しいDebianシステムファイルをインストールします。 debootstrapはコアパッケージをダウンロードしてインストールする必要があるため、インストールには時間がかかる場合があります。
$ sudo debootstrap stable /mnt/chroot http://deb.debian.org/debian/
ターミナルには多くの出力が表示されますが、「I:ベースシステムが正常にインストールされました」というテキストで終了する必要があります。これは、終了したことを意味します。
- 最後に、chrootディレクトリ内にマウントして、ホストprocシステムをchroot環境に接続します。これにより、chrootがホストシステムのハードウェアにアクセスできるようになります。
$ sudo mount -t proc proc /mnt/chroot/proc $ sudo mount -t devpts devpts /mnt/chroot/dev/pts
ChrootDebian設定
これで、chrootにログインして、いくつかの基本的な構成を行う準備ができました。ホスト環境とchroot環境の間の混乱を避けるために、rootのPS1変数をchroot#
のシェルプロンプトに変更できます。 。この手順はオプションですが、お勧めします。
- まず、chrootにログインします。
$ sudo chroot /mnt/chroot /bin/bash --login
- 次のLinuxコマンドを実行して、rootのシェルプロンプトを永続的に変更して終了します。
# echo 'PS1="chroot:\w# "' >> ~/.bashrc # exit
- 次にchroot環境に入ると、新しいシェルプロンプトが表示されます。
# chroot /mnt/chroot /bin/bash --login
- 次に、ロケールをインストールして再構成します。
chroot:/# apt install locales
- ここでロケールを再構成し、メニューからロケールを選択します。
chroot:/# dpkg-reconfigure locales
chrootsshデーモンをインストールします
これで、chroot環境内にサービスをインストールする準備が整いました。 LANまたはWANからのssh接続を使用してchrootにログインできるようになるため、sshから始めましょう。
- 次のコマンドを使用してSSHサーバーをインストールします。
chroot:/# apt install ssh
- 22とは異なるポートでリッスンするようにchrootedsshサービスを構成します。これは、ホストシステムによってすでに占有されている可能性が高いためです。
chroot:/# nano /etc/ssh/sshd_config
- そして行
#Port 22
を変更します 、リモートルートログインを追加する行も追加します:Port 2222 PermitRootLogin yes
- 変更を有効にするためにSSHサービスを再起動します。
chroot:/# /etc/init.d/ssh restart Restarting OpenBSD Secure Shell server: sshd.
- 最後に、chrootされたrootユーザーのパスワードを変更します:
chroot:/# passwd
chrootにリモートでログイン
すべてがうまくいけば、sshを使用して新しいchroot環境にログインできるようになります:
$ ssh root@localhost -p 2222
微調整chroot
ホストオペレーティングシステムの電源を入れても、chrootsshデーモンは自動的に起動しません。したがって、そのタスクを実行するための単純なシェルスクリプトを作成します。
#!/bin/bash mount -t devpts devpts /mnt/chroot/dev/pts mount -t proc proc /mnt/chroot/proc chroot /mnt/chroot /etc/init.d/ssh start
最後のステップとして、/etc/rc2.d/
へのシンボリックリンクを作成します :
# ln -s /etc/init.d/chroot.sh /etc/rc2.d/S98chroot
これで、完全に機能するchroot環境ができました。追加のサービスを自由に探索してインストールしてください。
まとめ
このチュートリアルでは、Debianchroot環境をインストールする方法を見ました。また、SSH経由でchroot環境にログインする方法も学びました。これにより、chroot環境の管理と、テスト用のパッケージのインストールが簡単になります。 chroot環境を持つことは、ソフトウェアをテストし、それをホストオペレーティングシステムから分離しておくための優れた方法です。