aboutsummaryrefslogtreecommitdiff
path: root/manifests/subsystems/onion.pp
blob: 2b03839460331af6baf2565dc8ea15805c2f518d (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
class onion {
  class { '::tor::daemon': }

  # It's important to use a subdir from the tor datadir
  # to ease backup/restore procedures as we don't mix
  # hidden service data with other tor files.
  if !defined(File["${tor::daemon::data_dir}/hidden"]) {
    file { "${tor::daemon::data_dir}/hidden":
      ensure => directory, 
      owner  => 'debian-tor',
      group  => 'debian-tor',
      mode   => 0700,
    }
  }
}

class onion::socks inherits onion {
  # Default tor daemon configuration
  tor::daemon::socks { 'socks':
    port             => 9050,
    listen_addresses => [ '127.0.0.1' ],
  }
}

class onion::freenode inherits onion::socks {
  # Freenode via Tor
  # http://freenode.net/irc_servers.shtml
  # http://pthree.org/2010/01/31/freenode-ssl-and-sasl-authentication-with-irssi/
  # http://freenode.net/sasl/sasl-irssi.shtml
  # https://wiki.archlinux.org/index.php/Tor
  tor::daemon::map_address { 'freenode':
    address    => '10.40.40.40',
    newaddress => 'p4fsi4ockecnea7l.onion',
  }
}

class onion::full inherits onion::freenode {

  # Currently tor management just works for debian
  case $::operatingsystem {
    debian: {
      include tor::polipo
    }
    default: { }
  }

}