chroot環境に追加のIP /ホスト名を割り当てる方法は?

chroot環境に追加のIP /ホスト名を割り当てる方法は?

たとえば、環境(「chrootenv」)を親環境(「parentenv」)とは異なるポートでリッスンさせることもできますが、sshd環境に追加のIPおよびホスト名があり、リッスンすることがchrootより便利です。sshdそれIPポート22. だから、基本的にchrootネットワーク上の別のホストのように動作するように環境を設定したいと思います。これはどのように達成できますか?それともこれは何ですか?LXCそれとも、ユーザーモードのLinux(私の経験の欠如)がより適していますか?

ベストアンサー1

通常、chroot はユーザーに自分の IF を付与するのではなく、「権限を制限する」ことです。

しかし、とにかく何かをしたい場合は、新しいネットワークネームスペースでchroot環境を起動できます。紹介を探すここ。次に、上記のガイドで新しいネットワーク名前空間に配置する最後のコマンドは次のとおりです。

 ip netns exec NAME_OF_THE_NET_NS /bin/bash

一般的なコマンドセットに従うことができます。

sudo mount -o bind /proc /pathtochroot/proc
sudo mount -o bind /dev /pathtochroot/dev
sudo mount -o bind /dev/pts /pathtochroot/dev/pts
sudo mount -o bind /sys /pathtochroot/sys
sudo chroot /pathtochroot /bin/bash

これでIFを使ったchrootができました。

しかし、提起される質問は次のとおりです。 Linuxコンテナ(LXC、OpenVZ、VServer)を使用する方が高速で簡単になると思いませんか?インタフェースを持つchrootはLinuxコンテナと同じではありませんか?通常、これはセキュリティが問題にならないときに行うことです。

編集する:

さて、あなたのジレンマを知っています。それでも可能性はあります。同じカードに 2 つの仮想インターフェイスを作成し、両方とも DHCP から IP アドレスを取得することを確認します。次に、そのいずれかにバインドするようにsshを設定します。 SSHクライアントとSSHサーバーの両方に対してこれを行うことができます。クライアントの場合、指示は次のとおりです。

 ssh -b ip.address.tobin.to

そしてサーバーの場合は、ディレクティブを使用する必要があります。

 ListenAddress ip.address.tobind.to

/etc/ssh/sshd_config ファイルにあります。これにより、ホストが1つのインターフェイスのみを使用するように強制できます。それからchroot刑務所に入り、それを使用してください。その他相互作用。私はbusyboxの機能についてよくわからないので、これがうまくいくとは確かに言うことはできません。しかし、これが通常のコンピュータのchroot刑務所であればうまくいくでしょう。

おすすめ記事