!VhzbGHamdfMiGxpXyg:robins.wtf

NixOS LXC

33 Members
lxc, lxd, incus discussions related to NixOS14 Servers

Load older messages


SenderMessageTime
18 Mar 2024
@mkg20001:mkg20001.iomkg20001i'm thinking if there is a good way to make incus work by default13:53:23
@mkg20001:mkg20001.iomkg20001I've seen your paste aswell with the nftables rules, but I feel like the real fix is just adding a hook to lxd that it adds the trusted interface dynamically, as otherwise we end up trying to allow everything lxd wants, while lxd may or may not require something extra depending on it's settings... we could use named sets to achive the trusted interface change dynamically and temporarly13:53:50
@mkg20001:mkg20001.iomkg20001https://wiki.nftables.org/wiki-nftables/index.php/Sets#Named_sets_specifications13:54:28
@mkg20001:mkg20001.iomkg20001This. Also tables can be flushed in such a way that all sets remain with their values.13:54:53
@mkg20001:mkg20001.iomkg20001this would not only be useful for incus, but also for virsh, etc.13:55:43
@mkg20001:mkg20001.iomkg20001s/lxd/incus/13:56:14
@adam:robins.wtfadamcstephens

since we're enforcing nftables now, we could also do something like

    networking.nftables = {
      enable = true;
      tables.allow-forward = {
        family = "inet";
        content = ''
          chain forward {
            type filter hook forward priority 0;
            accept
          }
        '';
      };
    };
13:56:27
@adam:robins.wtfadamcstephensthough i guess that doesn't help for dnsmasq13:57:16
@mkg20001:mkg20001.iomkg20001that allows all forward traffic. for all interfaces. now i need to go and deny by default any forwards from interfaces that aren't part of incus.13:57:58
@mkg20001:mkg20001.iomkg20001 * that allows all forward traffic. for all interfaces. now i need to go and deny by default any forward traffic from interfaces that aren't part of incus.13:58:04
@mkg20001:mkg20001.iomkg20001if i have, say, a vpn or something else on that server13:58:21
@adam:robins.wtfadamcstephensyeah13:58:36
@adam:robins.wtfadamcstephensthis is the problem with defaulting firewall rules :)13:58:44
@mkg20001:mkg20001.iomkg20001what do you think of the named set? should i go implement that?13:59:08
@adam:robins.wtfadamcstephensso what does that look like? a table that allows a named set of interfaces for trusting, and what updates that set/13:59:47
@adam:robins.wtfadamcstephens * so what does that look like? a table that allows a named set of interfaces for trusting, and what updates that set?13:59:49
@adam:robins.wtfadamcstephenshow would you hook into incus/lxd?14:01:06
@mkg20001:mkg20001.iomkg20001 nft add element inet nixos-fw trustedintfs { incusbr0 } is the command to add to the set 14:02:23
@mkg20001:mkg20001.iomkg20001 incus could support an INTERFACE_UP_HOOK / INTERFACE_DOWN_HOOK where the host os could supply the command to open the firewall for the interface, there we could use something like nft add element inet nixos-fw trustedintfs { $INTERFACE } 14:03:15
@adam:robins.wtfadamcstephensi wonder if this should really be handled by incus directly. they're spinning up dnsmasq on interfaces, why aren't they creating rules to allow access to it?14:03:51
@mkg20001:mkg20001.iomkg20001the problem is that in nftables an accept in one table doesn't mean the package is accepted, only that it will go to the next chain with lower priority, i think14:04:43
@mkg20001:mkg20001.iomkg20001that's why all the incus rules have policy accept set14:05:21
@adam:robins.wtfadamcstephensyeah i think that's right14:05:26
@adam:robins.wtfadamcstephens
In reply to @mkg20001:mkg20001.io
incus could support an INTERFACE_UP_HOOK / INTERFACE_DOWN_HOOK where the host os could supply the command to open the firewall for the interface, there we could use something like nft add element inet nixos-fw trustedintfs { $INTERFACE }
does this hook already exist?
14:06:36
@mkg20001:mkg20001.iomkg20001no. it would need to be added to incus.14:06:54
@adam:robins.wtfadamcstephensmaybe that's the first step then. without a hook there's not a great dynamic way for us to handle networks coming and going14:08:16
@adam:robins.wtfadamcstephensalso it should be flexible enough to know when dhcp is enabled on a network, because if not then we likely don't need this firewall rule14:11:43
@mkg20001:mkg20001.iomkg20001we still need to allow forward traffic and in such a way that only incus interfaces are allowed. which trustedInterface also handles.14:17:46
@mkg20001:mkg20001.iomkg20001so we'll need it always14:17:52
@adam:robins.wtfadamcstephenstrusted interface isn't setting a forwarding rule on my laptop 14:22:50

Show newer messages


Back to Room ListRoom Version: 10