summary refs log tree commit diff
path: root/nixos/tests/iodine.nix
diff options
context:
space:
mode:
authorSymphorien Gibol <symphorien+git@xlumurb.eu>2020-02-02 12:00:00 +0000
committerSymphorien Gibol <symphorien+git@xlumurb.eu>2020-02-04 20:54:29 +0100
commitb7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65 (patch)
treec5a2f76e1f036f44f96d8dbebc9783d3fe123392 /nixos/tests/iodine.nix
parent00a91d919d6f6cdaecc67a894f372a4195fea9da (diff)
downloadnixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar.gz
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar.bz2
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar.lz
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar.xz
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.tar.zst
nixpkgs-b7f27cb61a09c76973cdeb4ed4207b7f2e6f4c65.zip
nixos/iodine: add test
Diffstat (limited to 'nixos/tests/iodine.nix')
-rw-r--r--nixos/tests/iodine.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/nixos/tests/iodine.nix b/nixos/tests/iodine.nix
new file mode 100644
index 00000000000..8bd9603a6d6
--- /dev/null
+++ b/nixos/tests/iodine.nix
@@ -0,0 +1,63 @@
+import ./make-test-python.nix (
+  { pkgs, ... }: let
+    domain = "whatever.example.com";
+  in
+    {
+      name = "iodine";
+      nodes = {
+        server =
+          { ... }:
+
+            {
+              networking.firewall = {
+                allowedUDPPorts = [ 53 ];
+                trustedInterfaces = [ "dns0" ];
+              };
+              boot.kernel.sysctl = {
+                "net.ipv4.ip_forward" = 1;
+                "net.ipv6.ip_forward" = 1;
+              };
+
+              services.iodine.server = {
+                enable = true;
+                ip = "10.53.53.1/24";
+                passwordFile = "${builtins.toFile "password" "foo"}";
+                inherit domain;
+              };
+
+              # test resource: accessible only via tunnel
+              services.openssh = {
+                enable = true;
+                openFirewall = false;
+              };
+            };
+
+        client =
+          { ... }: {
+            services.iodine.clients.testClient = {
+              # test that ProtectHome is "read-only"
+              passwordFile = "/root/pw";
+              relay = "server";
+              server = domain;
+            };
+            systemd.tmpfiles.rules = [
+              "f /root/pw 0666 root root - foo"
+            ];
+            environment.systemPackages = [
+              pkgs.nagiosPluginsOfficial
+            ];
+          };
+
+      };
+
+      testScript = ''
+        start_all()
+
+        server.wait_for_unit("sshd")
+        server.wait_for_unit("iodined")
+        client.wait_for_unit("iodine-testClient")
+
+        client.succeed("check_ssh -H 10.53.53.1")
+      '';
+    }
+)