summaryrefslogtreecommitdiff
path: root/puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp
diff options
context:
space:
mode:
authorMicah <micah@leap.se>2016-07-12 16:45:51 -0400
committerMicah <micah@leap.se>2016-07-12 16:45:51 -0400
commit6209061fd112fed1715676abb7b6ae4697f21d83 (patch)
tree72dfcb4c96d32b14504761a229a097784b3fc8a0 /puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp
parent6083b23278927189de58c11bbb5bc7d93ccced24 (diff)
git subrepo clone https://leap.se/git/puppet_shorewall puppet/modules/shorewall
subrepo: subdir: "puppet/modules/shorewall" merged: "06e89ed" upstream: origin: "https://leap.se/git/puppet_shorewall" branch: "master" commit: "06e89ed" git-subrepo: version: "0.3.0" origin: "https://github.com/ingydotnet/git-subrepo" commit: "1e79595" Change-Id: Ief531c1b951e9a1573d31bd9718cc5df11706af5
Diffstat (limited to 'puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp')
-rw-r--r--puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp40
1 files changed, 40 insertions, 0 deletions
diff --git a/puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp b/puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp
new file mode 100644
index 00000000..2bee6584
--- /dev/null
+++ b/puppet/modules/shorewall/manifests/rules/torify/redirect_tcp_to_tor.pp
@@ -0,0 +1,40 @@
+define shorewall::rules::torify::redirect_tcp_to_tor(
+ $user = '-',
+ $originaldest = '-'
+){
+
+ # hash the destination as it may contain slashes
+ $originaldest_sha1 = sha1($originaldest)
+ $rule = "redirect-to-tor-user=${user}-to=${originaldest_sha1}"
+
+ if !defined(Shorewall::Rule["$rule"]) {
+
+ $originaldest_real = $originaldest ? {
+ '-' => '!127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16',
+ default => $originaldest,
+ }
+
+ $user_real = $user ? {
+ '-' => "!${shorewall::tor_user}",
+ default => $user,
+ }
+
+ $destzone = $shorewall::tor_transparent_proxy_host ? {
+ '127.0.0.1' => '$FW',
+ default => 'net'
+ }
+
+ shorewall::rule {
+ "$rule":
+ source => '$FW',
+ destination => "${destzone}:${shorewall::tor_transparent_proxy_host}:${shorewall::tor_transparent_proxy_port}",
+ proto => 'tcp:syn',
+ originaldest => $originaldest_real,
+ user => $user_real,
+ order => 110,
+ action => 'DNAT';
+ }
+
+ }
+
+}