summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: 1d4b5f5e27a901b4b68904cf3e7bb0e41ac41d48 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class tor {
  package { "privoxy":
    ensure => absent,
  }

  package { [ "tor", "polipo", "torsocks" ]:
    ensure => installed,
  }

  service { "tor":
    ensure  => running,
    require => [ Package['tor'], Service["polipo"] ],
  }

  service { "polipo":
    ensure  => running,
    require => Package["polipo"],
  }

  file { "/etc/polipo":
    ensure => directory,
    owner  => root,
    group  => root,
    mode   => 0755,
  }

  file { "/etc/polipo/config":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 0644,
    source  => "puppet://$server/modules/tor/polipo.conf",
    notify  => Service["polipo"],
    require => File["/etc/polipo"],
  }

  # TODO: restore file to original state after the following bug is solved:
  # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580434
  file { "/etc/cron.daily/polipo":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 0755,
    source  => "puppet://$server/modules/tor/polipo.cron",
  }

  define config( $socks_port = 9050,
                 $socks_listen_addresses = [ '127.0.0.1' ],
                 $socks_policies = [ 'accept 127.0.0.1/16', 'reject *' ],
                 $log_rules = [ 'notice file /var/log/tor/notices.log' ],
                 $data_directory = '/var/tor',
                 $control_port = false,
                 $hashed_control_password = '',
                 $hidden_services = [],
                 $or_port = 443,
                 $or_listen_address = '0.0.0.0:9090',
                 $nickname = '',
                 $address = $hostname,
                 $relay_bandwith_rate = 0,  # KB/s, 0 for no limit.
                 $relay_bandwith_burst = 0, # KB/s, 0 for no limit.
                 $accounting_max = 0,       # GB, 0 for no limit.
                 $accounting_start = [],
                 $contact_info = '',
                 $dir_port = 0,
                 $dir_listen_address = '',
                 $dir_front_page = '',
                 $my_family = '',
                 $exit_policies = [],
                 ) {
    file { "/etc/tor/torrc":
      ensure  => present,
      content => template('tor/torrc.erb'),
      owner   => root,
      group   => root,
      mode    => 0644,
    }
  }
}