1 { pkgs, lib, config, hosts, ... }:
3 inherit (config.users) users;
6 networking.firewall.enable = false;
7 security.lockKernelModules = false;
8 systemd.services.disable-kernel-module-loading.after = [ "nftables.service" ];
9 # echo -e "$(nix eval hosts.losurdo.config.networking.nftables.ruleset)"
11 networking.nftables = {
13 ruleset = lib.mkBefore ''
15 include "${../../../networking/nftables/filter.txt}"
18 # Some .nix append rules here with: add rule inet filter net2fw ...
21 tcp dport { 80, 443 } counter accept comment "HTTP"
22 udp dport 123 skuid ${users.systemd-timesync.name} counter accept comment "NTP"
23 tcp dport 9418 counter accept comment "Git"
25 # Some .nix append rules here with: add rule inet filter fw2net ...
29 # Some .nix append rules here with: add rule inet filter lan2fw ...
33 # Some .nix append rules here with: add rule inet filter fw2lan ...
36 # Some .nix append rules here with: add rule inet filter intra2fw ...
39 # Some .nix append rules here with: add rule inet filter fw2intra ...
43 type filter hook input priority 0
52 # accept traffic already established
53 ct state { established, related } accept
54 jump accept-connectivity-input
58 tcp dport 22 counter accept comment "SSH"
59 udp dport 60000-61000 counter accept comment "Mosh"
61 # Some .nix append gotos here with: add rule inet filter input iffname ... goto ...
64 type filter hook output priority 0
69 tcp flags syn tcp option maxseg size set rt mtu
71 ct state { established, related } accept
72 jump accept-connectivity-output
74 tcp dport 22 counter accept comment "SSH"
76 # Some .nix append gotos here with: add rule inet filter output oifname ... goto ...
79 type filter hook forward priority 0
85 type nat hook prerouting priority filter
89 type nat hook postrouting priority srcnat