File tree Expand file tree Collapse file tree 4 files changed +108
-0
lines changed Expand file tree Collapse file tree 4 files changed +108
-0
lines changed Original file line number Diff line number Diff line change 4
4
../hydra.nix
5
5
../hydra-proxy.nix
6
6
./boot.nix
7
+ ./firewall.nix
7
8
./network.nix
8
9
] ;
9
10
Original file line number Diff line number Diff line change
1
+ {
2
+ pkgs ,
3
+ lib ,
4
+ inputs ,
5
+ ...
6
+ } :
7
+
8
+ let
9
+ blockedAutNums = [
10
+ 45102 # ALIBABA-CN-NET
11
+ 132203 # TENCENT-NET-AP-CN
12
+ ] ;
13
+ in
14
+
15
+ {
16
+ networking . nftables = {
17
+ tables . "abuse" = {
18
+ family = "inet" ;
19
+ content = ''
20
+ set ipv4blocks {
21
+ type ipv4_addr;
22
+ flags interval;
23
+ auto-merge;
24
+ }
25
+ set ipv6blocks {
26
+ type ipv6_addr;
27
+ auto-merge;
28
+ flags interval;
29
+ }
30
+ chain input-abuse {
31
+ type filter hook input priority filter - 5;
32
+
33
+ ip saddr @ipv4blocks tcp dport 443 counter drop;
34
+ ip6 saddr @ipv6blocks tcp dport 443 counter drop;
35
+ }
36
+ '' ;
37
+ } ;
38
+ } ;
39
+
40
+ systemd . services . nft-prefix-import = {
41
+ wants = [ "network-online.target" ] ;
42
+ after = [ "network-online.target" ] ;
43
+ wantedBy = [ "multi-user.target" ] ;
44
+ path = with pkgs ; [ nftables ] ;
45
+ environment . USER_AGENT = "NixOS.org Infrastructure - [email protected] " ;
46
+ serviceConfig = {
47
+ Type = "oneshot" ;
48
+ AmbientCapabilities = [ "CAP_NET_ADMIN" ] ;
49
+ DynamicUser = true ;
50
+ User = "nft-asblock" ;
51
+ Group = "nft-asblock" ;
52
+ ExecStart = toString (
53
+ [
54
+ ( lib . getExe inputs . nft-prefix-import . packages . ${ pkgs . hostPlatform . system } . default )
55
+ "--table"
56
+ "abuse"
57
+ "--ipv4set"
58
+ "ipv4blocks"
59
+ "--ipv6set"
60
+ "ipv6blocks"
61
+ ]
62
+ ++ blockedAutNums
63
+ ) ;
64
+ RestrictAddressFamilies = [
65
+ "AF_NETLINK"
66
+ "AF_INET"
67
+ "AF_INET6"
68
+ ] ;
69
+ StateDirectory = "nft-prefix-import" ;
70
+ WorkingDirectory = "/var/lib/nft-prefix-import" ;
71
+ } ;
72
+ } ;
73
+
74
+ systemd . timers . nft-prefix-import = {
75
+ wantedBy = [ "timers.target" ] ;
76
+ timerConfig = {
77
+ OnCalendar = "0/6:00" ;
78
+ RandomizedDelaySec = 3600 ;
79
+ } ;
80
+ } ;
81
+ }
Original file line number Diff line number Diff line change 70
70
inputs . nixpkgs . follows = "nixpkgs" ;
71
71
} ;
72
72
73
+ nft-prefix-import = {
74
+ url = "github:mweinelt/nft-prefix-import" ;
75
+ inputs . nixpkgs . follows = "nixpkgs-unstable" ;
76
+ } ;
77
+
73
78
srvos = {
74
79
url = "github:numtide/srvos" ;
75
80
inputs . nixpkgs . follows = "nixpkgs" ;
You can’t perform that action at this time.
0 commit comments