diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2023-05-18 13:39:06 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2023-05-20 20:13:45 +0200 |
| commit | 925fc182e5ea9b87c3a62e80f5a20be4e827cd3b (patch) | |
| tree | dc3772ee2a298fd6f39b8ab355aaecd8d5da593e /config/networking/services/firewall/default.nix | |
| parent | 001f53d081b78c5145cd7449f08f783bb56f35e3 (diff) | |
config: networking: hostapd: disable low-level bridging
Diffstat (limited to 'config/networking/services/firewall/default.nix')
| -rw-r--r-- | config/networking/services/firewall/default.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/config/networking/services/firewall/default.nix b/config/networking/services/firewall/default.nix new file mode 100644 index 0000000..878e7cc --- /dev/null +++ b/config/networking/services/firewall/default.nix @@ -0,0 +1,31 @@ +{ config, lib, ... }: + +let + # { any } -> (string -> any -> [ string ]) -> string + mapAttrsStrings = attrs: f: lib.concatStrings (lib.mapAttrsToList f attrs); + bracket = title: content: + '' + ${title} { + '' + content + '' + } + ''; +in { + boot.kernel.sysctl = { "net.ipv4.conf.all.forwarding" = true; }; + + networking = { + nftables = { + enable = true; + ruleset = mapAttrsStrings + (import ./ruleset.nix config.personal.networking.networks) + (family: tables: + mapAttrsStrings tables (tableName: chains: + bracket "table ${family} ${tableName}" (mapAttrsStrings chains + (chainName: chain: + bracket "chain ${chainName}" (lib.optionalString (chain ? base) + (with chain.base; '' + type ${type} hook ${hook} priority ${priority}; policy ${policy}; + '') + chain.rules))))); + }; + firewall.enable = lib.mkForce false; + }; +} |
