Hey,
first of all thank you for a great product, which I've been using happily for about three years now in a home setting.
I've really enjoyed using the proxmox firewall which is configurable outside of the guest systems.
I'm also using local firewalls on the guest systems ('host based' sounds confusing in this context) to have multiple layers of defense in my firewall setup and have the layers reside in different attack planes. Ansible takes some of the boring out of that for me.
Having worked with vmware nsx in a commercial setting I'm very curious if there has been any thought or work around an implementation of the pve distributed firewall that uses attribute based access control (ABAC) with policies, implemented on the level of workloads that have a list of 'tags' (which are an attribute) attached to them.
these tags, when set on the vm configuration as metadata, will then be translated to the iptables implementation on the host.
This will allow the writing of 'policies' against these attributes that together constitute a simpler expression of the isolation you want to achieve between workloads.
It allows you to express intent of communication through policies and more natural language rather than (but not excluding) layer3/layer4 rules. Since an ip address or a port or a vm number, or a name is also an attribute of the workload, this can also be used in writing these policies
For example: tag three machines with [debian] and another with [repository] and yet another one with [git] and in the poiicy you can use {source:[debian,dmz], destination:[repository,git], action:allow, type: in-out} and have it translated to iptables implementation (or nftables? )
And voila, you now have three debian based linux machines that can now talk to their local apt mirror repository server for their software updates and also with a machine for git version control while other machines cannot (explicity deny).
Or, when you detect strange things happening coming from a system (eg via an IDS) you provision a tag on that machine of [sandbox] with a policy of {source: [sandbox], destination: *, action:deny, type:in-out} and there you go, the system is isolated from all machines and the internet.
I'm curious if there are any efforts ongoing. Or how I can possibly contribute here.. what is needed (general approach on how to solve/implement this)?
thanks
first of all thank you for a great product, which I've been using happily for about three years now in a home setting.
I've really enjoyed using the proxmox firewall which is configurable outside of the guest systems.
I'm also using local firewalls on the guest systems ('host based' sounds confusing in this context) to have multiple layers of defense in my firewall setup and have the layers reside in different attack planes. Ansible takes some of the boring out of that for me.
Having worked with vmware nsx in a commercial setting I'm very curious if there has been any thought or work around an implementation of the pve distributed firewall that uses attribute based access control (ABAC) with policies, implemented on the level of workloads that have a list of 'tags' (which are an attribute) attached to them.
these tags, when set on the vm configuration as metadata, will then be translated to the iptables implementation on the host.
This will allow the writing of 'policies' against these attributes that together constitute a simpler expression of the isolation you want to achieve between workloads.
It allows you to express intent of communication through policies and more natural language rather than (but not excluding) layer3/layer4 rules. Since an ip address or a port or a vm number, or a name is also an attribute of the workload, this can also be used in writing these policies
For example: tag three machines with [debian] and another with [repository] and yet another one with [git] and in the poiicy you can use {source:[debian,dmz], destination:[repository,git], action:allow, type: in-out} and have it translated to iptables implementation (or nftables? )
And voila, you now have three debian based linux machines that can now talk to their local apt mirror repository server for their software updates and also with a machine for git version control while other machines cannot (explicity deny).
Or, when you detect strange things happening coming from a system (eg via an IDS) you provision a tag on that machine of [sandbox] with a policy of {source: [sandbox], destination: *, action:deny, type:in-out} and there you go, the system is isolated from all machines and the internet.
I'm curious if there are any efforts ongoing. Or how I can possibly contribute here.. what is needed (general approach on how to solve/implement this)?
thanks