他のユーザーでQEMUを起動する

他のユーザーでQEMUを起動する

現在、QEMUはゲストの特定の要求を傍受またはブロックしようとしています。
これによると質問、最も簡単な方法は、QEMUを別のユーザーとして実行して、iptablesがホストトラフィックとゲストトラフィックを区別できるようにすることです。

ただし、他のユーザーでQEMUを起動すると、常に失敗します。

❯ sudo -u qemu-user qemu-system-x86_64 -enable-kvm ...
Authorization required, but no authorization protocol specified

gtk initialization failed

この問題を解決する方法、またはゲストトラフィック(特定のポートなど)をブロックするために使用できる他の方法についてご存知ですか?

答え1

ローカルX11サーバーに接続しようとしましたが、アクセス権がありません。以下を使用してこれを変更できますxhost

❯ xhost +
access control disabled, clients can connect from any host
❯ export DISPLAY=:0

sudo -E -u root qemu-system-x86_64 -enable-kvm -serial mon:stdio -m 8g -smp 4 -hda ~/Downloads/debian-12-generic-amd64.qcow2 -nic user,model=virtio-net-pci

私に役立つエラーはXサーバーに接続しようとしましたが、ユーザーを許可し、場所を環境変数(デフォルト)GTK initialization failedとして指定する必要があるため、接続できません。DISPLAY=:0

xhostコマンドのマニュアルページとxhost +ユーザー名を指定しない場合は、何が起こるかを確認してください(すべてのユーザー名を許可)。一般的にこれは大丈夫ですが、私はあなたがこれを理解したことを確認したいと思います。

OPTIONS
       Xhost accepts the following command line options described below.  For security, the options that af‐
       fect  access control may only be run from the "controlling host".  For workstations, this is the same
       machine as the server.  For X terminals, it is the login host.

       -help   Prints a usage message.

       [+]name The given name (the plus sign is optional) is added to the list allowed to connect to  the  X
               server.  The name can be a host name or a complete name (See NAMES for more details).

       -name   The given name is removed from the list of allowed to connect to the server.  The name can be
               a host name or a complete name (See NAMES for more details).  Existing  connections  are  not
               broken, but new connection attempts will be denied.  Note that the current machine is allowed
               to be removed; however, further connections (including attempts to add it back) will  not  be
               permitted.   Resetting the server (thereby breaking all connections) is the only way to allow
               local connections again.

       +       Access is granted to everyone, even if they aren't on  the  list  (i.e.,  access  control  is
               turned off).

       -       Access is restricted to only those on the list (i.e., access control is turned on).

       nothing If no command line arguments are given, a message indicating whether or not access control is
               currently enabled is printed, followed by the list of those allowed to connect.  This is  the
               only option that may be used from machines other than the controlling host.

編集する**

ゲストトラフィックが特定のポートに到達しないようにブロックします。たとえば、ユーザーモードネットワーキングを使用すると、ゲスト分離ネットワークが提供され、qemuモニタを介して-nic user,model=virtio-net-pciポート転送を制御できます(有効になっている場合は-serial mon:stdioシリアルモードとqemuモニタモードを切り替えることができますcontrol-a-chostfwd_add

追加情報:https://wiki.qemu.org/Documentation/Networking#User_Networking_(SLIRP)

https://github.com/paigeadelethompson/docker-solaris#networking

関連情報