2023-10-08 10:20:24 +02:00
|
|
|
{ config, lib, pkgs, ... }: {
|
2023-12-02 14:43:53 +01:00
|
|
|
networking.firewall.allowedUDPPorts = [
|
|
|
|
3478 # Headscale DERP UDP
|
|
|
|
10000 # Jitsi
|
|
|
|
];
|
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
|
|
80 # HTTP
|
|
|
|
443 # HTTPS
|
|
|
|
25 # SMTP (explicit TLS => STARTTLS)
|
|
|
|
465 # ESMTP (implicit TLS)
|
|
|
|
587 # ESMTP (explicit TLS => STARTTLS)
|
|
|
|
143 # IMAP4 (explicit TLS => STARTTLS)
|
|
|
|
993 # IMAP4 (implicit TLS)
|
|
|
|
4190 # Sieve support
|
|
|
|
42420 # Vintage Story
|
|
|
|
25565 # Minecraft
|
|
|
|
1443 # Headscale DERP
|
|
|
|
4443 # jitsi-jvb
|
2023-12-03 02:26:04 +01:00
|
|
|
5222 # Jitsi
|
|
|
|
5347 # Jitsi
|
|
|
|
5280 # Jitsi
|
2023-12-02 14:43:53 +01:00
|
|
|
];
|
2023-12-03 05:11:57 +01:00
|
|
|
|
2023-12-03 04:44:38 +01:00
|
|
|
networking.firewall.extraCommands = ''
|
2023-12-03 05:58:49 +01:00
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 64.176.54.57:80
|
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A OUTPUT -d 10.100.0.2 -p tcp --dport 80 -j DNAT --to 64.176.54.57:80
|
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 64.176.54.57:443
|
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A OUTPUT -d 10.100.0.2 -p tcp --dport 443 -j DNAT --to 64.176.54.57:443
|
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000 -j DNAT --to 64.176.54.57:10000
|
|
|
|
${pkgs.iptables}/bin/iptables -t nat -A OUTPUT -d 10.100.0.2 -p udp --dport 10000 -j DNAT --to 64.176.54.57:10000
|
2023-12-03 04:44:38 +01:00
|
|
|
'';
|
2023-12-03 03:13:23 +01:00
|
|
|
|
2023-10-08 10:20:24 +02:00
|
|
|
services.xinetd = {
|
2023-12-03 04:14:42 +01:00
|
|
|
enable = false;
|
2023-10-08 10:20:24 +02:00
|
|
|
services = [
|
|
|
|
{
|
|
|
|
name = "http";
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 80";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "https";
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 443";
|
|
|
|
}
|
2023-12-02 14:37:50 +01:00
|
|
|
{
|
|
|
|
name = "jitsi-jvb 4443 tcp";
|
|
|
|
port = 4443;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 4443";
|
|
|
|
}
|
2023-12-03 02:26:04 +01:00
|
|
|
{
|
|
|
|
name = "jitsi-jvb 5222 tcp";
|
|
|
|
port = 5222;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 5222";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "jitsi-jvb 5347 tcp";
|
|
|
|
port = 5347;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 5347";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "jitsi-jvb 5280 tcp";
|
|
|
|
port = 5280;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 5280";
|
|
|
|
}
|
2023-12-02 14:37:50 +01:00
|
|
|
{
|
|
|
|
name = "minecraft";
|
|
|
|
port = 25565;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 25565";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "vintage-story";
|
|
|
|
port = 42420;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 42420";
|
|
|
|
}
|
|
|
|
|
|
|
|
################################################ mail
|
|
|
|
{
|
|
|
|
name = "mail 25";
|
|
|
|
port = 25;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 25";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "mail 465";
|
|
|
|
port = 465;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 465";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "mail 587";
|
|
|
|
port = 587;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 587";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "mail 143";
|
|
|
|
port = 143;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 143";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "mail 993";
|
|
|
|
port = 993;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 993";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "mail 4190";
|
|
|
|
port = 4190;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 4190";
|
|
|
|
}
|
|
|
|
################################################ mail
|
|
|
|
################################################ headscale-derp
|
|
|
|
{
|
|
|
|
name = "headscale-derp 3478 udp";
|
|
|
|
port = 3478;
|
|
|
|
protocol = "udp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 3478";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "headscale-derp 1443 tcp";
|
|
|
|
port = 1443;
|
|
|
|
protocol = "tcp";
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = 10.100.0.2 1443";
|
|
|
|
}
|
2023-10-09 01:26:16 +02:00
|
|
|
{
|
2023-12-01 14:05:09 +01:00
|
|
|
name = "piaware";
|
2023-10-09 01:26:16 +02:00
|
|
|
port = 8080;
|
|
|
|
unlisted = true;
|
|
|
|
server = "/usr/bin/env"; # Placeholder.
|
|
|
|
extraConfig = "redirect = piaware-rpi4 8080";
|
|
|
|
}
|
2023-10-08 10:20:24 +02:00
|
|
|
# {
|
|
|
|
# name = "ssh";
|
|
|
|
# port = 2282;
|
|
|
|
# unlisted = true;
|
|
|
|
# server = "/usr/bin/env"; # Placeholder.
|
|
|
|
# extraConfig = "redirect = 10.100.0.2 22";
|
|
|
|
# }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|