node_exporter on hel1-a
This commit is contained in:
@@ -4,7 +4,13 @@
|
||||
myData,
|
||||
...
|
||||
}: {
|
||||
options.mj.services.friendlyport = with lib.types; {
|
||||
options.mj.services.friendlyport.motiejus = with lib.types; {
|
||||
ports = lib.mkOption {
|
||||
type = listOf int;
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
options.mj.services.friendlyport.vpn = with lib.types; {
|
||||
ports = lib.mkOption {
|
||||
type = listOf int;
|
||||
default = [];
|
||||
@@ -12,15 +18,33 @@
|
||||
};
|
||||
|
||||
config = let
|
||||
ports = builtins.concatStringsSep "," (map builtins.toString config.mj.services.friendlyport.ports);
|
||||
portsM = config.mj.services.friendlyport.motiejus.ports;
|
||||
portsV = config.mj.services.friendlyport.vpn.ports;
|
||||
portsMStr = builtins.concatStringsSep "," (map builtins.toString config.mj.services.friendlyport.motiejus.ports);
|
||||
portsVStr = builtins.concatStringsSep "," (map builtins.toString config.mj.services.friendlyport.vpn.ports);
|
||||
hosts = lib.attrVals ["mxp10.motiejus.jakst" "fwmine.motiejus.jakst"] myData.hosts;
|
||||
ips = lib.catAttrs "jakstIP" hosts;
|
||||
startLines = map (ip: "iptables -A INPUT -p tcp --match multiport --dports ${ports} --source ${ip} -j ACCEPT") ips;
|
||||
startLinesM =
|
||||
if builtins.length portsM > 0
|
||||
then map (ip: "iptables -A INPUT -p tcp --match multiport --dports ${portsMStr} --source ${ip} -j ACCEPT") ips
|
||||
else [];
|
||||
startLinesV =
|
||||
if builtins.length portsV > 0
|
||||
then "iptables -A INPUT -p tcp --match multiport --dports ${portsVStr} --source ${myData.tailscale_subnet.cidr} -j ACCEPT"
|
||||
else "";
|
||||
|
||||
# TODO: when stopping the firewall, systemd uses the old ports. So this is a two-phase process.
|
||||
# How to stop the old one and start the new one?
|
||||
stopLines = map (ip: "iptables -D INPUT -p tcp --match multiport --dports ${ports} --source ${ip} -j ACCEPT || :") ips;
|
||||
stopLinesM =
|
||||
if builtins.length portsM > 0
|
||||
then map (ip: "iptables -D INPUT -p tcp --match multiport --dports ${portsMStr} --source ${ip} -j ACCEPT || :") ips
|
||||
else [];
|
||||
stopLinesV =
|
||||
if builtins.length portsV > 0
|
||||
then "iptables -D INPUT -p tcp --match multiport --dports ${portsVStr} --source ${myData.tailscale_subnet.cidr} -j ACCEPT || :"
|
||||
else "";
|
||||
in {
|
||||
networking.firewall.extraCommands = lib.concatLines startLines;
|
||||
networking.firewall.extraStopCommands = lib.concatLines stopLines;
|
||||
networking.firewall.extraCommands = lib.concatLines (startLinesM ++ [startLinesV]);
|
||||
networking.firewall.extraStopCommands = lib.concatLines (stopLinesM ++ [stopLinesV]);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mj.services.syncthing.enable {
|
||||
mj.services.friendlyport.ports = [8384];
|
||||
mj.services.friendlyport.motiejus.ports = [8384];
|
||||
|
||||
services.syncthing = {
|
||||
enable = config.mj.services.syncthing.enable;
|
||||
|
||||
Reference in New Issue
Block a user