summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorRyan Trinkle <ryan.trinkle@gmail.com>2017-12-06 11:17:38 -0500
committerRyan Trinkle <ryan.trinkle@gmail.com>2017-12-06 11:17:38 -0500
commitab2b3a5d0ab682388a39e267705e2f838199b179 (patch)
tree0673d6d83bbb9922ad741a379451e773b4a52d59 /nixos/modules
parent7fcdd34d1732cd7582529b336e7009982644059e (diff)
downloadnixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar.gz
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar.bz2
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar.lz
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar.xz
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.tar.zst
nixlib-ab2b3a5d0ab682388a39e267705e2f838199b179.zip
nat: add extraCommands and extraStopCommands options
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/networking/nat.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix
index bfaf30c11783..df4246d216d8 100644
--- a/nixos/modules/services/networking/nat.nix
+++ b/nixos/modules/services/networking/nat.nix
@@ -19,6 +19,8 @@ let
     iptables -w -t nat -D POSTROUTING -j nixos-nat-post 2>/dev/null || true
     iptables -w -t nat -F nixos-nat-post 2>/dev/null || true
     iptables -w -t nat -X nixos-nat-post 2>/dev/null || true
+
+    ${cfg.extraStopCommands}
   '';
 
   setupNat = ''
@@ -59,6 +61,8 @@ let
 	--to-destination ${cfg.dmzHost}
     ''}
 
+    ${cfg.extraCommands}
+
     # Append our chains to the nat tables
     iptables -w -t nat -A PREROUTING -j nixos-nat-pre
     iptables -w -t nat -A POSTROUTING -j nixos-nat-post
@@ -170,6 +174,28 @@ in
         '';
     };
 
+    networking.nat.extraCommands = mkOption {
+      type = types.lines;
+      default = "";
+      example = "iptables -A INPUT -p icmp -j ACCEPT";
+      description =
+        ''
+          Additional shell commands executed as part of the nat
+          initialisation script.
+        '';
+    };
+
+    networking.nat.extraStopCommands = mkOption {
+      type = types.lines;
+      default = "";
+      example = "iptables -D INPUT -p icmp -j ACCEPT || true";
+      description =
+        ''
+          Additional shell commands executed as part of the nat
+          teardown script.
+        '';
+    };
+
   };