]> Git — Sourcephile - julm/julm-nix.git/blob - hosts/pumpkin/networking.nix
gnupg-agent: fix option name
[julm/julm-nix.git] / hosts / pumpkin / networking.nix
1 { pkgs, lib, ... }:
2 {
3 imports = [
4 ../../nixos/profiles/dnscrypt-proxy2.nix
5 ../../nixos/profiles/networking/ssh.nix
6 ../../nixos/profiles/networking/wifi.nix
7 ../../nixos/profiles/kubo.nix
8 #../../nixos/profiles/openvpn/calyx.nix
9 networking/nftables.nix
10 ];
11 install.substituteOnDestination = false;
12 #networking.domain = "sourcephile.fr";
13 networking.useDHCP = false;
14
15 services.tor = {
16 settings = {
17 HashedControlPassword = lib.readFile tor/HashedControlPassword.clear;
18 # https://metrics.torproject.org/rs.html#search/flag:exit%20country:be%20running:true
19 # https://nusenu.github.io/OrNetStats/w/relay/58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.html
20 MapAddress = [
21 "*.gcp.cloud.es.io *.gcp.cloud.es.io.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
22 "*.redbee.live *.redbee.live.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
23 "*.rtbf.be *.rtbf.be.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
24 ];
25 StrictNodes = true;
26 };
27 };
28
29 networking.nftables.ruleset = lib.mkAfter ''
30 table inet filter {
31 chain input {
32 ip daddr 10.0.0.0/8 counter goto input-lan
33 ip daddr 172.16.0.0/12 counter goto input-lan
34 ip daddr 192.168.0.0/16 counter goto input-lan
35 ip daddr 224.0.0.0/3 counter goto input-lan
36 goto input-net
37 }
38 chain output {
39 ip daddr 10.0.0.0/8 counter goto output-lan
40 ip daddr 172.16.0.0/12 counter goto output-lan
41 ip daddr 192.168.0.0/16 counter goto output-lan
42 ip daddr 224.0.0.0/3 counter goto output-lan
43 jump output-net
44 log level warn prefix "output-net: " counter drop
45 }
46 }
47 '';
48
49 networking.hosts = {
50 #"80.67.180.129" = ["salons.sourcephile.fr"];
51 };
52
53 networking.interfaces = { };
54
55 networking.networkmanager = {
56 enable = true;
57 unmanaged = [
58 ];
59 };
60
61 systemd.services.sshd.serviceConfig.LoadCredentialEncrypted = [
62 "host.key:${ssh/host.key.cred}"
63 ];
64
65 programs.wireshark = {
66 enable = true;
67 package = pkgs.wireshark-qt;
68 };
69 }