このローカルネットワークサービスと、それにアクセスする必要のあるこのクライアントプログラムがあります。私は両方を非特権ユーザーとして実行しています。
ローカルホストを除いて(またはそのサービスを除いてさらに良い)ネットワークにアクセスできない方法で、firejailを使用してクライアントをサンドボックス化する方法を探しています。私が最初に試したのはもちろんでした
firejail --net=lo program
しかし、それはうまくいきませんでした。
Error: cannot attach to lo device
Veth0やveth1などの仮想ネットワークインターフェイスを作成し、veth1をサービスを実行する新しいネットワーク名前空間に移動し、firejailを使用してクライアントをveth0に制限することで、この問題を回避できると思います。
ファイアジェイルプロファイルでこの設定を実際に自動化して、これらのインターフェイスをすべて作成し、入力するとveth1が移動する方法はありますか
firejail server
(rootとして何も実行する必要はありません)?
または、この問題を解決する簡単な方法はありますか? (サービスはネットワークにアクセスする必要があるため、同じ名前空間でクライアントとサービスの両方を実行することはできません)
私は次のようなオプションを使用します:
firejail --interface=eth0.vlan100 --ip=someipaddress someprogram
Ipvlanドライバーのサポートは、Linuxカーネル3.19で導入されました。
ここで見つかりました: man firejail | Firejail