![Linux アプリのネットワーク アクセスをロックダウンする](https://rvso.com/image/1638105/Linux%20%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B.png)
Linux VM (ホストは VirtualBox を実行している Windows 10) で信頼できないアプリケーションを 1 つ実行したいと考えています。LAN 上の別のサーバーにアクセスする必要がありますが、1 つの IP 上のこの 1 つのポート以外のネットワーク アクセスはすべてブロックしたいと考えています。
AppArmor では、このようなきめ細かいネットワーク制限は許可されないようです。
たとえば、 を実行できるようにしたいので、ゲスト OS のネットワーク アクセス全体をブロックしたくありませんsudo apt-get update
が、それが最善の方法であれば、受け入れられます。
最善の解決策は何でしょうか? このプログラムを起動する前に、一時的なシステム全体のファイアウォール ルールを設定するスクリプトでしょうか?
答え1
VMはLinuxなので、Linuxを活用します名前空間そのアプリをサンドボックス化された環境、例えばファイアージェイルあなたの場合、1つの可能なアプローチは、仮想ネットワークインターフェース範囲が限定されており、LAN 上の他のサーバーにのみアクセスできます。
次に、Firejail を使用してアプリを起動し、制限された 1 つのネットワーク インターフェイスのみを「認識」できるようにします。
コマンドラインからの結果のコマンドは次のようになります。
firejail --net=veth0 yourapp
ただし、カスタム プロファイルを作成することもできます。