I’ve found the built in nix firewall to be somewhat lacking (can’t have different ports open on different networks for instance, I would rather reduce my attack surface while out on other people’s/public WiFi)
Is it possible to use other firewall software on NixOS declaratively?
The nixos firewall can in fact be configured per interface. https://search.nixos.org/options?channel=23.05&show=networking.firewall.interfaces.<name>.allowedTCPPorts&from=0&size=50&sort=relevance&type=packages&query=Networking.Firewall.Interfaces
It can be configured per interface, but not per access point
This does actually help as I can just open ports over tailscale and exclusively use that for connections though the ideal is to be able to open ports only when connected to home WiFi
You want firewalld. Not declarative (probably?), but the only option that can dynamically change firewall rules based on the network you are connected to.
Look into firewalld zones.
Well if that link doesn’t work,
networking.firewall.interfaces..allowedTCPPorts