I’m thinking about a general firewall solution, working between local qubes only.
task
I want to be able to implement a client-server model like DB-Server-VM / DB-Client-VM with default network communication mechanisms.
nice
As far as possible, I want to stay on the default Qubes’ way.
idea
creating a virtual network interface in dom0
connecting a vm-net-local to this device
connecting a vm-firewall-local to vm-net-local
connecting DB-Server-VM and DB-Client-VM to that firewall
creating the needed firewall rules in vm-firewall-local
I’m not very familiar with Xen:
Is it possible to create the interface in dom0 using the dummy kernel module, so that Xen accepts it as a normal network interface?
In that case it would show up in vm-net-local and all following tasks would go the normal Qubes’ way.
Isn’t that what virtual bridge (virbr) literally is?
But regardless of that I believe you would want to connect server to netvm and client to firewall, not both to firewall if I understand what you are trying to do correctly.
You simply create another firewall - which is just an Appvm that ‘provides network’ - but do not connect it to any netvm.
This way you will have a completely separated ‘internal network’ where whatever VM you connects to this custom firewall, those can be communicating with eachother - once applied the custom firewall rules linked above
I don’t know the details, but I think it’s different.
On a normal Xen-Server the interfaces are all in dom0 and there exist things like virtual bridges and so on. I’m not sure what happens in the background, when you define them with the Xen Orchestrator.
In Qubes-OS I don’t know, how to create them and what will happen to the security.
Therefore the idea with the virtual interface in dom0. It’s only one thing not the Qubes’ way, but at least done with secure tools we have already in dom0.
Maybe I’m wrong, but I think of this virtual network interface as if it would be a physical card, not plugged in, but with a static address.
If you just want to play with firewall, zrubi’s suggestion is better and much easier to do. What I said is closer to fully simulating how qubes would talk to an external host.
(and you don’t need to configure virtual bridge yourself)