all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Hannes Dürr" <h.duerr@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Stefan Hanreich <s.hanreich@proxmox.com>
Subject: Re: [pve-devel] [PATCH proxmox-firewall 3/4] security groups: skip in forward chain when interface is specified
Date: Fri, 24 Jan 2025 15:35:03 +0100	[thread overview]
Message-ID: <2ca39c79-14ac-4394-b2e6-2fe9c049829b@proxmox.com> (raw)
In-Reply-To: <20250123101300.72647-3-s.hanreich@proxmox.com>

Tested this:
* enable nftables firewall
* create a security group
* insert the security group to host firewall with interface vmbr0
* enable vm firewall
* insert the security group to vm firewall with interface net0
* check for errors with journalctl -f

no more errors occur, please consider this

Tested-by: Hannes Duerr <h.duerr@proxmox.com>

On 1/23/25 11:12, Stefan Hanreich wrote:
> Security groups can be bound to a specific interface. The notion of
> this breaks down when considering the forward direction, since there
> are two interfaces involved: incoming and outgoing, which can be
> different depending on the kind of traffic.
>
> With the current implementation, the firewall refuses to generate
> rulesets with security groups that are bound to specific interfaces.
> Check for this case explicitly and skip creating rules in the forward
> chain when a security group bound to a specific interface is
> encountered.
>
> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
> ---
>   proxmox-firewall/src/rule.rs | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/proxmox-firewall/src/rule.rs b/proxmox-firewall/src/rule.rs
> index b20a9c5..14ee544 100644
> --- a/proxmox-firewall/src/rule.rs
> +++ b/proxmox-firewall/src/rule.rs
> @@ -201,6 +201,10 @@ fn handle_iface(rules: &mut [NftRule], env: &NftRuleEnv, name: &str) -> Result<(
>   
>   impl ToNftRules for RuleGroup {
>       fn to_nft_rules(&self, rules: &mut Vec<NftRule>, env: &NftRuleEnv) -> Result<(), Error> {
> +        if env.direction == Direction::Forward && self.iface().is_some() {
> +            return Ok(());
> +        }
> +
>           let chain_name = format!("group-{}-{}", self.group(), env.direction);
>   
>           rules.push(NftRule::new(Statement::jump(chain_name)));


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2025-01-24 14:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-23 10:12 [pve-devel] [PATCH proxmox-firewall 1/4] cargo: bump dependencies Stefan Hanreich
2025-01-23 10:12 ` [pve-devel] [PATCH proxmox-firewall 2/4] debian: remove dependency on proxmox-schema Stefan Hanreich
2025-01-24 14:06   ` Hannes Dürr
2025-01-24 14:23     ` Stefan Hanreich
2025-01-23 10:12 ` [pve-devel] [PATCH proxmox-firewall 3/4] security groups: skip in forward chain when interface is specified Stefan Hanreich
2025-01-24 14:35   ` Hannes Dürr [this message]
2025-01-23 10:13 ` [pve-devel] [PATCH proxmox-firewall 4/4] tests: add test for security groups in cluster config Stefan Hanreich
2025-03-13 12:50 ` [pve-devel] superseded: [PATCH proxmox-firewall 1/4] cargo: bump dependencies Stefan Hanreich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2ca39c79-14ac-4394-b2e6-2fe9c049829b@proxmox.com \
    --to=h.duerr@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=s.hanreich@proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal