summary refs log tree commit diff
path: root/pkgs/servers/kippo
diff options
context:
space:
mode:
authorThomas Bereknyei <tomberek@gmail.com>2014-01-11 17:15:11 -0500
committerRok Garbas <rok@garbas.si>2014-01-14 10:32:26 +0000
commit57e3feda74abb925210919347f34fcceadfd0b26 (patch)
tree40f36847d34633acd0ce0d57c728134900d7d11c /pkgs/servers/kippo
parent1343ce97cb545a68cfe6aab547d794c5faa544ea (diff)
downloadnixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar.gz
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar.bz2
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar.lz
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar.xz
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.tar.zst
nixlib-57e3feda74abb925210919347f34fcceadfd0b26.zip
Adds kippo SSH honeypot
Diffstat (limited to 'pkgs/servers/kippo')
-rw-r--r--pkgs/servers/kippo/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/servers/kippo/default.nix b/pkgs/servers/kippo/default.nix
new file mode 100644
index 000000000000..cadf6e716917
--- /dev/null
+++ b/pkgs/servers/kippo/default.nix
@@ -0,0 +1,65 @@
+# This is the installation portion of kippo.
+# This is somewhat jumbled together. There is no "easy_install" for kippo,
+# and there isn't a way to regenerate the twistd plugin cache.
+#
+# Use the services.kippo options to properly configure if on NixOS.
+# On other platforms there is a problem with hardcoded paths.
+# Your best bet is to change kippo source to customise
+# or manually copy the proper filesystems.
+# At a minimum the following are required in  /var/lib/kippo:
+#     honeyfs/
+#     fs.pickle
+#     data/
+#     txtcmds/
+#
+# There is also benefit in preparing /var/log/kippo
+#     tty/
+#     dl/
+#
+# Most of these files need read/write permissions.
+#
+# Read only files: kippo.tac and kippo.cfg
+#
+# Execution may look like this:
+# twistd -y kippo.tac --syslog --pidfile=kippo.pid
+#
+# Use this package at your own risk.
+
+{stdenv, pkgs, config, fetchurl, ... }:
+
+stdenv.mkDerivation rec {
+    name = "kippo-${version}";
+    version = "0.8";
+    src = fetchurl {
+      url = "https://kippo.googlecode.com/files/kippo-${version}.tar.gz";
+      sha1 = "f57a5cf88171cb005afe44a4b33cb16f825c33d6";
+    };
+    buildInputs = with pkgs.pythonPackages; [ pycrypto pyasn1 twisted ];
+    installPhase = ''
+        substituteInPlace ./kippo.tac --replace "kippo.cfg" "$out/src/kippo.cfg"
+        substituteInPlace ./kippo.cfg --replace "log_path = log" "log_path = /var/log/kippo" \
+            --replace "download_path = dl" "download_path = /var/log/kippo/dl" \
+            --replace "contents_path = honeyfs" "filesystem_file = /var/lib/kippo/honeyfs" \
+            --replace "filesystem_file = fs.pickle" "filesystem_file = /var/lib/kippo/fs.pickle" \
+            --replace "data_path = data" "data_path = /var/lib/kippo/data" \
+            --replace "txtcmds_path = txtcmds" "txtcmds_path = /var/lib/kippo/txtcmds" \
+            --replace "public_key = public.key" "public_key = /var/lib/kippo/keys/public.key" \
+            --replace "private_key = private.key" "private_key = /var/lib/kippo/keys/private.key" 
+        mkdir -p $out/bin
+        mkdir -p $out/src
+        mv ./* $out/src 
+        mv $out/src/utils/* $out/bin
+        '';
+
+    meta = {
+      homepage = https://code.google.com/p/kippo;
+      description = "SSH Honeypot";
+      longDescription = ''
+        Default port is 2222. Recommend using something like this for port redirection to default SSH port:
+        networking.firewall.extraCommands = '''
+        iptables -t nat -A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT --to-port 2222''' '';
+      license = stdenv.lib.licenses.bsd3;
+      platforms = pkgs.stdenv.lib.platforms.linux;
+      maintainers = pkgs.stdenv.lib.maintainers.tomberek;
+    };
+}