summary refs log tree commit diff
path: root/pkgs/servers/http/apache-modules/mod_evasive/default.nix
blob: c89e4100d38b6a913224336486e22636a7dbb976 (plain) (blame)
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
{ lib, stdenv, fetchurl, apacheHttpd }:

if lib.versionAtLeast (lib.getVersion apacheHttpd) "2.4" then

  throw "mod_evasive is not supported on Apache httpd 2.4"

else

stdenv.mkDerivation {
  name = "mod_evasive-1.10.1";

  src = fetchurl {
    url = http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz;
    sha256 = "0rsnx50rjv6xygbp9r0gyss7xqdkcb0hy3wh9949jf1im8wm3i07";
  };

  buildInputs = [ apacheHttpd ];

  buildPhase = ''
    export APACHE_LIBEXECDIR=$out/modules
    export makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
    apxs -ca mod_evasive20.c
  '';

  installPhase = ''
    mkdir -p $out/modules
    cp .libs/mod_evasive20.so $out/modules
  '';

  meta = {
    homepage = "http://www.zdziarski.com/blog/?page_id=442";
    description = "Evasive maneuvers module for Apache to provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack";
    platforms = stdenv.lib.platforms.linux;
  };
}