summaryrefslogtreecommitdiffstats
path: root/lass/1systems/shodan/config.nix
blob: a68471aa0101a5ea840822e71e2c0f7d0908dcec (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{ config, pkgs, ... }:

with import <stockholm/lib>;
{
  imports = [
    <stockholm/lass>
    <stockholm/lass/2configs/retiolum.nix>
    <stockholm/lass/2configs/hw/tp-x220.nix>
    <stockholm/lass/2configs/baseX.nix>
    <stockholm/lass/2configs/git.nix>
    <stockholm/lass/2configs/exim-retiolum.nix>
    <stockholm/lass/2configs/browsers.nix>
    <stockholm/lass/2configs/programs.nix>
    <stockholm/lass/2configs/fetchWallpaper.nix>
    <stockholm/lass/2configs/backups.nix>
    <stockholm/lass/2configs/wine.nix>
    #{
    #  users.extraUsers = {
    #    root = {
    #      openssh.authorizedKeys.keys = map readFile [
    #        ../../krebs/Zpubkeys/uriel.ssh.pub
    #      ];
    #    };
    #  };
    #}
    {
      users.users.sokratess = {
        uid = genid "sokratess";
        home = "/home/sokratess";
        group = "users";
        createHome = true;
        extraGroups = [
         "audio"
          "networkmanager"
        ];
        useDefaultShell = true;
        password = "aidsballs";
      };
      krebs.per-user.sokratess.packages = [
        pkgs.firefox
        pkgs.python27Packages.virtualenv
        pkgs.python27Packages.ipython
        pkgs.python27Packages.python
      ];
    }
    {
      krebs.monit = let
        echoToIrc = msg:
          pkgs.writeDash "echo_irc" ''
            set -euf
            export LOGNAME=prism-alarm
            ${pkgs.irc-announce}/bin/irc-announce \
              ni.r 6667 ${config.networking.hostName}-alarm \#noise "${msg}" >/dev/null
          '';
      in {
        enable = true;
        http.enable = true;
        alarms = {
          hfos = {
            test = "${pkgs.curl}/bin/curl -sf --insecure 'https://hfos.hackerfleet.de'";
            alarm = echoToIrc "test hfos failed";
          };
        };
      };
      krebs.iptables.tables.filter.INPUT.rules = [
        { predicate = "-p tcp -i retiolum --dport 9093"; target = "ACCEPT"; }
      ];
    }
  ];

  krebs.build.host = config.krebs.hosts.shodan;

  boot = {
    loader.grub.enable = true;
    loader.grub.version = 2;
    loader.grub.device = "/dev/sda";

    initrd.luks.devices = [ { name = "luksroot"; device = "/dev/sda2"; } ];
    initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ];
    initrd.availableKernelModules = [ "xhci_hcd" "ehci_pci" "ahci" "usb_storage" ];
    #kernelModules = [ "kvm-intel" "msr" ];
  };
  fileSystems = {
    "/" = {
      device = "/dev/pool/nix";
      fsType = "btrfs";
    };

    "/boot" = {
      device = "/dev/sda1";
    };

    "/tmp" = {
      device = "tmpfs";
      fsType = "tmpfs";
      options = ["nosuid" "nodev" "noatime"];
    };
    "/bku" = {
      device = "/dev/pool/bku";
      fsType = "btrfs";
    };
  };

  services.udev.extraRules = ''
    SUBSYSTEM=="net", ATTR{address}=="a0:88:b4:29:26:bc", NAME="wl0"
    SUBSYSTEM=="net", ATTR{address}=="f0:de:f1:0c:a7:63", NAME="et0"
  '';
}