spior 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '01991c016f887cb41723c10909810d4bc7c762ad844d85a3bd094653123b891f'
4
- data.tar.gz: 6df20aa83ef6b7c2201bde879f4927183476b3b35d41eec6415ca7d0c3d0c8c5
3
+ metadata.gz: 464734f8ed0ffa37558b7ef2601d91b8fb718cc77dc778cc0cb24be6f2c88da3
4
+ data.tar.gz: c47daf892c550c4d67316a576c22140d35a4897aa61cb626f7762f22b70e4ba7
5
5
  SHA512:
6
- metadata.gz: 4b0d5ab4e4ccd4a8563eaae7e1aee31f77041b5d1dd593e79719ec82cb51868b24958cd8b92973fbc03303d8e54d9f0f9d9837913af9474e3099f4c867e14902
7
- data.tar.gz: f3bf8c16db8f5d8ec3e42b65f30567921ac4b0de3fffe2615e5ad045228920eed77ca5520c77b4b776ab75cbeda9455dab5bfe715a14b351e5711b5ca7b46ec9
6
+ metadata.gz: 49ae19e3346500ef07e62bccc11697e3fb26420528ab7853aa9fdb6e1295dbba6cab69fd630d52fa1511fbb775c6bae947ffae3491d919c1d8e3c62c93f32f27
7
+ data.tar.gz: 6cb403b201d4b2cbb22cd9640477aba3c4ce87ae0219abb661c01987c41961ded3d9b444edb0154f3ca47a71c818886dc3bc3cce9acfcf6878900f3294a630a0
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.1.1, release 2020-05-09
2
+ * The tor class now check for dependencies and service start|restart
3
+ * Call Spior without arguments now display the interactive menu
4
+ * New option -m|--menu
5
+ * Reorder the spior.gemspec
6
+
1
7
  ## 0.1.0, release 2020-05-08
2
8
  * Will manage differents version of torrc, if your distro fail to start TOR, report an issue.
3
9
  * Ensure than TOR is start before proceed.
data/lib/spior/install.rb CHANGED
@@ -12,7 +12,6 @@ module Spior
12
12
 
13
13
  def self.check_base
14
14
  base_packages
15
- verify_services
16
15
  end
17
16
 
18
17
  def self.check_mac
@@ -36,12 +35,6 @@ module Spior
36
35
  end
37
36
  end
38
37
 
39
- def self.verify_services
40
- if TTY::Which.exist?('systemctl')
41
- system('if ! systemctl is-active tor ; then sudo systemctl start tor ; fi')
42
- end
43
- end
44
-
45
38
  def self.pkg_mac
46
39
  pkg_name="deceitmac"
47
40
  if not TTY::Which.exist?(pkg_name)
data/lib/spior/menu.rb ADDED
@@ -0,0 +1,62 @@
1
+ require_relative 'msg'
2
+ require_relative 'mac'
3
+ require_relative 'iptables'
4
+ require_relative 'network'
5
+ require_relative 'reload'
6
+ require_relative 'clear'
7
+ require_relative 'status'
8
+
9
+ module Spior
10
+ module Menu
11
+ extend self
12
+
13
+ def run
14
+ banner
15
+ loop do
16
+ Msg.head
17
+ puts %q{Please select an option:
18
+
19
+ 1. Forge a new MAC address
20
+ 2. Redirect traffic through tor
21
+ 3. Reload tor and change your ip
22
+ 4. Clear and restore your files
23
+ 5. Check info on your current ip
24
+ 6. Quit}
25
+
26
+ puts
27
+ print ">> "
28
+ case gets.chomp
29
+ when '1'
30
+ check_network
31
+ Spior::MAC::randomize(@network.card)
32
+ when '2'
33
+ check_network
34
+ Spior::Iptables::tor(@network.card)
35
+ when '3'
36
+ Spior::Reload::tor
37
+ when '4'
38
+ Spior::Clear::all
39
+ when '5'
40
+ Spior::Status::info
41
+ when '6'
42
+ exit
43
+ end
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def banner
50
+ puts "┏━┓┏━┓╻┏━┓┏━┓"
51
+ puts "┗━┓┣━┛┃┃ ┃┣┳┛"
52
+ puts "┗━┛╹ ╹┗━┛╹┗╸"
53
+ # generated with toilet -F crop -f future spior
54
+ end
55
+
56
+ def check_network
57
+ if not @network
58
+ @network = Spior::Network.new
59
+ end
60
+ end
61
+ end
62
+ end
data/lib/spior/msg.rb CHANGED
@@ -21,5 +21,10 @@ module Msg
21
21
  puts ""
22
22
  info text
23
23
  puts "Please, report this issue at https://github.com/szorfein/spior/issues"
24
+ puts ""
25
+ end
26
+
27
+ def self.for_no_systemd
28
+ puts "Init system is not yet supported. You can contribute to add it."
24
29
  end
25
30
  end
data/lib/spior/options.rb CHANGED
@@ -2,6 +2,7 @@ require 'optparse'
2
2
  require_relative 'reload'
3
3
  require_relative 'status'
4
4
  require_relative 'clear'
5
+ require_relative 'menu'
5
6
 
6
7
  module Spior
7
8
  class Options
@@ -51,13 +52,17 @@ module Spior
51
52
  @persist = true
52
53
  end
53
54
 
55
+ opts.on("-m", "--menu", "Display an interactive menu") do
56
+ Spior::Menu::run
57
+ end
58
+
54
59
  opts.on("-h", "--help", "Show this message") do
55
60
  puts opts
56
61
  exit
57
62
  end
58
63
 
59
64
  begin
60
- argv = ["-h"] if argv.empty?
65
+ argv = ["-m"] if argv.empty?
61
66
  opts.parse!(argv)
62
67
  rescue OptionParser::ParseError => e
63
68
  STDERR.puts e.message, "\n", opts
data/lib/spior/runner.rb CHANGED
@@ -30,8 +30,6 @@ module Spior
30
30
  end
31
31
  if @options.tor then
32
32
  Msg.head
33
- Spior::Install::check_base
34
- Spior::Copy::config_files
35
33
  if not @network
36
34
  @network = Spior::Network.new(@options.interface)
37
35
  end
data/lib/spior/tor.rb CHANGED
@@ -1,12 +1,16 @@
1
1
  require 'pathname'
2
2
  require 'nomansland'
3
+ require 'tty-which'
3
4
  require_relative 'msg'
5
+ require_relative 'install'
6
+ require_relative 'copy'
4
7
 
5
8
  module Spior
6
9
  class Tor
7
10
  attr_accessor :dns, :uid, :trans_port, :virt_addr
8
11
 
9
12
  def initialize
13
+ check_deps
10
14
  @dns = search_dns
11
15
  @uid = search_uid
12
16
  @trans_port = search_trans_port
@@ -15,6 +19,12 @@ module Spior
15
19
 
16
20
  private
17
21
 
22
+ def check_deps
23
+ Spior::Install::check_base
24
+ Spior::Copy::config_files
25
+ verify_service
26
+ end
27
+
18
28
  def search_dns
19
29
  9061
20
30
  end
@@ -37,5 +47,20 @@ module Spior
37
47
  def search_virt_addr
38
48
  "10.192.0.0/10"
39
49
  end
50
+
51
+ def verify_service
52
+ if TTY::Which.exist?('systemctl')
53
+ state = `systemctl is-active tor`.chomp
54
+ if state == 'active'
55
+ #puts "Restart tor"
56
+ system('sudo systemctl restart tor')
57
+ else
58
+ #puts "Start tor"
59
+ system('sudo systemctl start tor')
60
+ end
61
+ else
62
+ Msg.for_no_systemd
63
+ end
64
+ end
40
65
  end
41
66
  end
data/spior.gemspec CHANGED
@@ -1,35 +1,40 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "spior"
3
-
3
+ s.version = "0.1.1"
4
4
  s.summary = "A tool to make TOR your default gateway and randomize your hardware"
5
5
  s.description = <<-EOF
6
6
  A tool to make TOR your default gateway and randomize your hardware.
7
7
  EOF
8
-
9
8
  s.metadata = {
10
9
  "changelog_uri" => "https://github.com/szorfein/spior/blob/master/CHANGELOG.md",
11
10
  "bug_tracker_uri" => "https://github.com/szorfein/spior/issues",
12
11
  "wiki_uri" => "https://github.com/szorfein/spior"
13
12
  }
13
+ s.author = ['szorfein']
14
14
 
15
- s.version = "0.1.0"
16
- s.requirements << 'tor'
17
- s.requirements << 'sudo'
18
- s.requirements << 'iptables'
19
- s.requirements << 'deceitmac'
20
15
  s.platform = Gem::Platform::RUBY
21
- s.author = ['szorfein']
22
- s.homepage = 'https://github.com/szorfein/spior'
16
+
17
+ s.licenses = ['MIT']
23
18
  s.email = 'szorfein@protonmail.com'
24
- s.required_ruby_version = '>=2.4'
19
+ s.homepage = 'https://github.com/szorfein/spior'
20
+
25
21
  s.files = `git ls-files`.split(" ")
26
22
  s.files.reject! { |fn| fn.include? "certs" }
27
23
  s.files.reject! { |fn| fn.include? "Makefile" }
28
24
  s.executables = [ 'spior' ]
25
+
26
+ s.extra_rdoc_files = Dir["README.md", "CHANGELOG.md", "LICENSE.txt"]
27
+
29
28
  s.test_files = Dir["test/test_*.rb"]
30
- s.licenses = ['MIT']
31
29
  s.cert_chain = ['certs/szorfein.pem']
32
30
  s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
31
+
32
+ s.requirements << 'tor'
33
+ s.requirements << 'sudo'
34
+ s.requirements << 'iptables'
35
+
36
+ s.required_ruby_version = '>=2.4'
37
+
33
38
  s.add_runtime_dependency('rainbow', '3.0.0')
34
39
  s.add_runtime_dependency('interfacez', '1.0.3')
35
40
  s.add_runtime_dependency('nomansland', '0.0.2')
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spior
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -35,7 +35,7 @@ cert_chain:
35
35
  J/zT/q2Ac7BWpSLbv6p9lChBiEnD9j24x463LR5QQjDNS5SsjzRQfFuprsa9Nqf2
36
36
  Tw==
37
37
  -----END CERTIFICATE-----
38
- date: 2020-05-08 00:00:00.000000000 Z
38
+ date: 2020-05-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rainbow
@@ -98,7 +98,9 @@ email: szorfein@protonmail.com
98
98
  executables:
99
99
  - spior
100
100
  extensions: []
101
- extra_rdoc_files: []
101
+ extra_rdoc_files:
102
+ - README.md
103
+ - CHANGELOG.md
102
104
  files:
103
105
  - ".gitignore"
104
106
  - CHANGELOG.md
@@ -118,6 +120,7 @@ files:
118
120
  - lib/spior/install.rb
119
121
  - lib/spior/iptables.rb
120
122
  - lib/spior/mac.rb
123
+ - lib/spior/menu.rb
121
124
  - lib/spior/msg.rb
122
125
  - lib/spior/network.rb
123
126
  - lib/spior/options.rb
@@ -154,7 +157,6 @@ requirements:
154
157
  - tor
155
158
  - sudo
156
159
  - iptables
157
- - deceitmac
158
160
  rubygems_version: 3.1.2
159
161
  signing_key:
160
162
  specification_version: 4
metadata.gz.sig CHANGED
Binary file