{ config, lib, pkgs, ... }: { boot = { kernel.sysctl = { "net.ipv4.icmp_ignore_bogus_error_responses" = 1; "net.ipv4.conf.default.rp_filter" = 1; "net.ipv4.conf.all.rp_filter" = 1; "net.ipv4.conf.all.accept_source_route" = 0; "net.ipv6.conf.all.accept_source_route" = 0; "net.ipv4.conf.all.send_redirects" = 0; "net.ipv4.conf.default.send_redirects" = 0; "net.ipv4.conf.all.accept_redirects" = 0; "net.ipv4.conf.default.accept_redirects" = 0; "net.ipv4.conf.all.secure_redirects" = 0; "net.ipv4.conf.default.secure_redirects" = 0; "net.ipv6.conf.all.accept_redirects" = 0; "net.ipv6.conf.default.accept_redirects" = 0; "net.ipv4.tcp_syncookies" = 1; "net.ipv4.tcp_rfc1337" = 1; "net.ipv4.tcp_fastopen" = 3; }; # otherwise /tmp is on disk. This *may* be problematic as nix # builds in /tmp but I think my swap is large enough... tmp.useTmpfs = lib.mkDefault true; tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs); }; security = { protectKernelImage = true; sudo.enable = false; doas = { enable = true; extraRules = [ { groups = [ "wheel" ]; persist = true; keepEnv = true; } ]; }; }; }