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::ssh { tor::daemon::hidden_service { 'ssh': ports => [ "22 127.0.0.1:22" ], data_dir => "${tor::daemon::data_dir}/hidden", ensure => present, } } class onion::full inherits onion::freenode { include onion::ssh # Currently tor management just works for debian case $::operatingsystem { debian: { include tor::polipo } default: { } } }