summaryrefslogtreecommitdiff
path: root/modules/nixos/mixins/tailscale.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/mixins/tailscale.nix')
-rw-r--r--modules/nixos/mixins/tailscale.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/modules/nixos/mixins/tailscale.nix b/modules/nixos/mixins/tailscale.nix
new file mode 100644
index 0000000..177aa90
--- /dev/null
+++ b/modules/nixos/mixins/tailscale.nix
@@ -0,0 +1,34 @@
+{
+ config,
+ lib,
+ ...
+}:
+
+let
+ cfg = config.services.tailscale;
+
+ usingTailscaleSSH = lib.elem "--ssh" config.services.tailscale.extraUpFlags;
+in
+
+{
+ config = lib.mkMerge [
+ {
+ services.tailscale = {
+ openFirewall = true;
+ };
+ }
+
+ (lib.mkIf cfg.enable {
+ networking.firewall = {
+ # Trust all connections over Tailscale
+ trustedInterfaces = [ config.services.tailscale.interfaceName ];
+ };
+ })
+
+ (lib.mkIf (cfg.enable && usingTailscaleSSH) {
+ networking.firewall = {
+ allowedTCPPorts = [ 22 ];
+ };
+ })
+ ];
+}