class Spior::Tor::Info

Attributes

dns[RW]
trans_port[RW]
uid[RW]
virt_addr[RW]

Public Class Methods

new() click to toggle source
# File lib/spior/tor/info.rb, line 10
def initialize
  @systemctl = Helpers::Exec.new("systemctl")
  check_deps
  @dns = search_dns
  @uid = search_uid
  @trans_port = search_trans_port
  @virt_addr = search_virt_addr
end

Private Class Methods

grep?(file, regex) click to toggle source
# File lib/spior/tor/info.rb, line 36
def self.grep?(file, regex)
  is_found = false
  return is_found if ! File.exist? file
  File.open(file) do |f|
    f.each do |line|
      is_found = true if line.match(regex)
    end
  end
  is_found
end

Private Instance Methods

add_resolv() click to toggle source
# File lib/spior/tor/info.rb, line 29
def add_resolv
  string = "nameserver 127.0.0.1"
  new_file = Helpers::NewFile.new(string, "resolv.conf", "/etc")
  new_file.add
  new_file.perm("root", "644")
end
add_torrc() click to toggle source
# File lib/spior/tor/info.rb, line 47
      def add_torrc
        user = ""
        pid = ""
        dir = "DataDirectory /var/lib/tor/data"
        case Nomansland::distro?
        when :gentoo
          user = "User tor"
          pid = "PIDFile /run/tor/tor.pid"
        end
        string = <<EOF
# Generated by Spior
#{user}
#{pid}
#{dir}
GeoIPExcludeUnknown 1
DNSPort 127.0.0.1:9061
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
SocksPort 9050
VirtualAddrNetworkIPv4 10.192.0.0/10
TransPort 9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
TestSocks 1
MaxCircuitDirtiness 600
EOF
        new_file = Helpers::NewFile.new(string, "torrc", "/etc/tor")
        new_file.add
        new_file.perm("root", "644")
      end
check_deps() click to toggle source
# File lib/spior/tor/info.rb, line 21
def check_deps
  Spior::Install::check_deps
  Spior::Copy.new.save
  add_resolv
  add_torrc
  verify_service
end
search_dns() click to toggle source
# File lib/spior/tor/info.rb, line 76
def search_dns
  9061
end
search_trans_port() click to toggle source
# File lib/spior/tor/info.rb, line 91
def search_trans_port
  9040
end
search_uid() click to toggle source
# File lib/spior/tor/info.rb, line 80
def search_uid
  case Nomansland::distro?
  when :debian
    `id -u debian-tor`.chomp
  when :ubuntu
    `id -u debian-tor`.chomp
  else
    `id -u tor`.chomp
  end
end
search_virt_addr() click to toggle source
# File lib/spior/tor/info.rb, line 95
def search_virt_addr
  "10.192.0.0/10"
end
verify_service() click to toggle source
# File lib/spior/tor/info.rb, line 99
def verify_service
  if TTY::Which.exist?('systemctl')
    state = `systemctl is-active tor`.chomp
    if state == 'active'
      @systemctl.run('restart tor')
    else
      @systemctl.run('start tor')
    end
  else
    Msg.for_no_systemd
  end
end