aboutsummaryrefslogtreecommitdiff
path: root/hosts/nyaan
diff options
context:
space:
mode:
authorIsabella Bastaja <isabella@sorre.xyz>2026-05-30 13:58:41 +0200
committerIsabella Bastaja <isabella@sorre.xyz>2026-05-30 14:04:02 +0200
commit11ed9993db51a62d5364a423e1091884365d33fc (patch)
treec2f746976407e3f8c2968d53662a22c16df22d57 /hosts/nyaan
parent9ff883faef5d22180df873ac71568ea4f48d87dd (diff)
drop nixos firewall, use nftables directly
Diffstat (limited to 'hosts/nyaan')
-rw-r--r--hosts/nyaan/network.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/hosts/nyaan/network.nix b/hosts/nyaan/network.nix
index ac08cb4..14cbfe2 100644
--- a/hosts/nyaan/network.nix
+++ b/hosts/nyaan/network.nix
@@ -18,6 +18,53 @@ in
networking = {
hostName = "nyaan";
useNetworkd = true;
+ firewall.enable = false;
+ nftables = {
+ enable = true;
+ tables.filter = {
+ enable = true;
+ family = "inet";
+ content = ''
+ set temp-ports {
+ type inet_proto . inet_service
+ flags interval
+ comment "Temporarily opened ports"
+ }
+
+ chain rpfilter {
+ type filter hook prerouting priority mangle + 10; policy drop;
+ meta nfproto ipv4 udp sport . udp dport { 68 . 67, 67 . 68 } accept comment "DHCPv4 client/server"
+ fib saddr . mark . iif check exists accept
+ jump rpfilter-allow
+ }
+
+ chain rpfilter-allow {
+ }
+
+ chain prerouting {
+ type filter hook prerouting priority mangle;
+ iifname "wg0" meta mark set 42
+ }
+
+ chain input {
+ type filter hook input priority filter; policy drop;
+ iifname "lo" accept comment "trusted interfaces"
+ icmpv6 type echo-reply accept
+ ct state vmap { invalid : drop, established : accept, related : accept, new : jump input-allow, untracked : jump input-allow }
+ }
+
+ chain input-allow {
+ # tcp dport { 22, 80, 443 } accept
+ udp dport 51820 accept
+ udp dport 5353 meta mark 42 accept comment "mDNS over wireguard"
+ meta l4proto . th dport @temp-ports accept
+ icmp type echo-request accept comment "allow ping"
+ icmpv6 type != { nd-redirect, 139 } accept comment "Accept all ICMPv6 messages except redirects and node information queries (type 139). See RFC 4890, section 4.4."
+ ip6 daddr fe80::/64 udp dport 546 accept comment "DHCPv6 client"
+ }
+ '';
+ };
+ };
wireless = {
enable = true;
secretsFile = secrets."wireless.env".path;