blob: 9b3beef60984332eceb79c3ee2f940fd5ccdb76a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
{ config, lib, ... }:
let
baseTCP = [
20
22
25
80
443
config.services.grafana.settings.server.http_port
config.services.prometheus.port
config.services.mysql.settings.mysqld.port
]
++ lib.mapAttrsToList (_: opt: opt.port) (
lib.filterAttrs (
_: e:
let
evaluated = builtins.tryEval e;
in
evaluated.success && e ? enable && e.enable
) config.services.prometheus.exporters
);
baseUDP = [
];
baseTCPRanges = [ ];
baseUDPRanges = [ ];
in
{
systemd.network = {
enable = true;
networks."10-uplink" = {
matchConfig.Type = "ether";
networkConfig = {
DHCP = "ipv4";
IPv6AcceptRA = "yes";
};
linkConfig = {
RequiredForOnline = "yes";
};
ipv6AcceptRAConfig = {
UseDNS = "yes";
UseDomains = "yes";
};
dns = [
"192.168.88.1"
"1.1.1.1"
"2606:4700:4700:0000:0000:0000:0000:1002"
];
};
};
wilkuu.firewall = {
enable = true;
defaultLayer = "internal";
layers.internal = {
allowedTCPPorts = baseTCP;
allowedUDPPorts = baseUDP;
allowedUDPPortRanges = baseUDPRanges;
allowedTCPPortRanges = baseTCPRanges;
};
};
networking = {
useNetworkd = true;
nftables.enable = true;
useDHCP = true;
};
}
|