nixos/teamspeak: add openFirewall, openFirewallServerQuery

Also set default address to v6 as v6-any always enables v4-any, not always other way
main
Maciej Krüger 3 years ago
parent 83c93c8e1c
commit dd4a34019a
No known key found for this signature in database
GPG Key ID: 0D948CE19CF49C5F
  1. 22
      nixos/modules/services/networking/teamspeak3.nix

@ -43,7 +43,7 @@ in
voiceIP = mkOption {
type = types.nullOr types.str;
default = null;
example = "0.0.0.0";
example = "[::]";
description = ''
IP on which the server instance will listen for incoming voice connections. Defaults to any IP.
'';
@ -60,7 +60,7 @@ in
fileTransferIP = mkOption {
type = types.nullOr types.str;
default = null;
example = "0.0.0.0";
example = "[::]";
description = ''
IP on which the server instance will listen for incoming file transfer connections. Defaults to any IP.
'';
@ -91,6 +91,18 @@ in
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = "Open ports in the firewall for the TeamSpeak3 server.";
};
openFirewallServerQuery = mkOption {
type = types.bool;
default = false;
description = "Open ports in the firewall for the TeamSpeak3 serverquery (administration) system. Requires openFirewall.";
};
};
};
@ -115,6 +127,12 @@ in
"d '${cfg.logPath}' - ${user} ${group} - -"
];
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.fileTransferPort ] ++ optionals (cfg.openFirewallServerQuery) [ cfg.queryPort (cfg.queryPort + 11) ];
# subsequent vServers will use the incremented voice port, let's just open the next 10
allowedUDPPortRanges = [ { from = cfg.defaultVoicePort; to = cfg.defaultVoicePort + 10; } ];
};
systemd.services.teamspeak3-server = {
description = "Teamspeak3 voice communication server daemon";
after = [ "network.target" ];

Loading…
Cancel
Save