%20%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
ホストがインターネットにアクセスできないようにしたいです。インターネット トラフィックは VM ゲストとの間で自由にやり取りできますが、さらに重要なのは、インターネット トラフィックがホスト OS に到達できないようにしたいということです。ここでの私の質問の大部分は、これを実現するためにどのような iptables ルールが必要かということだと思います。
現在、インターネットに接続するたびに、ホスト ハード ディスク上の別のパーティションで起動しています。データ パーティションをアンマウントし、多くのサービスをシャットダウンしています。利便性のために、代わりに仮想マシンを使用して同じことを行いたいと思います。
ホスト OS を、VM ゲストとの間でやり取りされるインターネット トラフィックから完全に分離することは可能ですか? それとも、オンラインにする必要があるときに他のパーティションで再起動するという現在の方法を維持したほうがよいでしょうか。
答え1
ホストのネットワーク(またはインターネット)アクセスをブロックする:
- VM の構成で有効にします
Bridged adapter
。これにより、ゲストはホストから独立してネットワークに接続できるようになります。 iptables
次の構成でホスト上で起動します。
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
- ローカル ネットワーク (とします
192.168.0.0/24
)を維持しながらインターネット アクセスのみをブロックするには、iptables
次のようにルールを拡張します。
-A INPUT -i {your-adapter} -s 192.168.0.0/24 -j ACCEPT
-A OUTPUT -o {your-adapter} -d 192.168.0.0/24 -j ACCEPT
- がホスト上のサービスとして有効になっていることを確認してください
iptables
。たとえば、パッケージを使用して、/iptables-persistent
で有効にできるサービス スクリプトを提供できます。systemd
initscripts
ゲストに送信されるインターネット トラフィックからホストを分離する:
Bridged adapter
トラフィックはユーザー空間で分離されているため、ホストを通過するiptables
こともありません。ただし、ゲストはホスト OS 内で実行されます。ルート アクセス権を持つ攻撃者は、ゲストが送受信するデータを常に監視および偽装できます。VirtualBox では完全な分離は実現できません。