about summary refs log tree commit diff
path: root/nixos/modules/services/security/haka.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/security/haka.nix')
-rw-r--r--nixos/modules/services/security/haka.nix149
1 files changed, 0 insertions, 149 deletions
diff --git a/nixos/modules/services/security/haka.nix b/nixos/modules/services/security/haka.nix
deleted file mode 100644
index 66666a57fd8e..000000000000
--- a/nixos/modules/services/security/haka.nix
+++ /dev/null
@@ -1,149 +0,0 @@
-# This module defines global configuration for Haka.
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.haka;
-
-  haka = cfg.package;
-
-  hakaConf = pkgs.writeText "haka.conf"
-  ''
-    [general]
-    configuration = ${if lib.strings.hasPrefix "/" cfg.configFile
-      then "${cfg.configFile}"
-      else "${haka}/share/haka/sample/${cfg.configFile}"}
-    ${optionalString (builtins.lessThan 0 cfg.threads) "thread = ${cfg.threads}"}
-
-    [packet]
-    ${optionalString cfg.pcap ''module = "packet/pcap"''}
-    ${optionalString cfg.nfqueue ''module = "packet/nqueue"''}
-    ${optionalString cfg.dump.enable ''dump = "yes"''}
-    ${optionalString cfg.dump.enable ''dump_input = "${cfg.dump.input}"''}
-    ${optionalString cfg.dump.enable ''dump_output = "${cfg.dump.output}"''}
-
-    interfaces = "${lib.strings.concatStringsSep "," cfg.interfaces}"
-
-    [log]
-    # Select the log module
-    module = "log/syslog"
-
-    # Set the default logging level
-    #level = "info,packet=debug"
-
-    [alert]
-    # Select the alert module
-    module = "alert/syslog"
-
-    # Disable alert on standard output
-    #alert_on_stdout = no
-
-    # alert/file module option
-    #file = "/dev/null"
-  '';
-
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.haka = {
-
-      enable = mkEnableOption "Haka";
-
-      package = mkPackageOption pkgs "haka" { };
-
-      configFile = mkOption {
-        default = "empty.lua";
-        example = "/srv/haka/myfilter.lua";
-        type = types.str;
-        description = ''
-          Specify which configuration file Haka uses.
-          It can be absolute path or a path relative to the sample directory of
-          the haka git repo.
-        '';
-      };
-
-      interfaces = mkOption {
-        default = [ "eth0" ];
-        example = [ "any" ];
-        type = with types; listOf str;
-        description = ''
-          Specify which interface(s) Haka listens to.
-          Use 'any' to listen to all interfaces.
-        '';
-      };
-
-      threads = mkOption {
-        default = 0;
-        example = 4;
-        type = types.int;
-        description = ''
-          The number of threads that will be used.
-          All system threads are used by default.
-        '';
-      };
-
-      pcap = mkOption {
-        default = true;
-        type = types.bool;
-        description = "Whether to enable pcap";
-      };
-
-      nfqueue = mkEnableOption "nfqueue";
-
-      dump.enable = mkEnableOption "dump";
-      dump.input  = mkOption {
-        default = "/tmp/input.pcap";
-        example = "/path/to/file.pcap";
-        type = types.path;
-        description = "Path to file where incoming packets are dumped";
-      };
-
-      dump.output  = mkOption {
-        default = "/tmp/output.pcap";
-        example = "/path/to/file.pcap";
-        type = types.path;
-        description = "Path to file where outgoing packets are dumped";
-      };
-    };
-  };
-
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-
-    assertions = [
-      { assertion = cfg.pcap != cfg.nfqueue;
-        message = "either pcap or nfqueue can be enabled, not both.";
-      }
-      { assertion = cfg.nfqueue -> !dump.enable;
-        message = "dump can only be used with nfqueue.";
-      }
-      { assertion = cfg.interfaces != [];
-        message = "at least one interface must be specified.";
-      }];
-
-
-    environment.systemPackages = [ haka ];
-
-    systemd.services.haka = {
-      description = "Haka";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        ExecStart = "${haka}/bin/haka -c ${hakaConf}";
-        ExecStop = "${haka}/bin/hakactl stop";
-        User = "root";
-        Type = "forking";
-      };
-    };
-  };
-}