spior 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +8 -1
- data/conf/torrc/torrc_archlinux +18 -0
- data/conf/{torrc → torrc/torrc_default} +0 -0
- data/lib/spior/clear.rb +1 -1
- data/lib/spior/copy.rb +34 -5
- data/lib/spior/install.rb +8 -1
- data/lib/spior/mac.rb +1 -13
- data/lib/spior/msg.rb +5 -1
- data/lib/spior/options.rb +6 -1
- data/lib/spior/persist.rb +39 -0
- data/lib/spior/runner.rb +7 -0
- data/spior.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +5 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '01991c016f887cb41723c10909810d4bc7c762ad844d85a3bd094653123b891f'
|
4
|
+
data.tar.gz: 6df20aa83ef6b7c2201bde879f4927183476b3b35d41eec6415ca7d0c3d0c8c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b0d5ab4e4ccd4a8563eaae7e1aee31f77041b5d1dd593e79719ec82cb51868b24958cd8b92973fbc03303d8e54d9f0f9d9837913af9474e3099f4c867e14902
|
7
|
+
data.tar.gz: f3bf8c16db8f5d8ec3e42b65f30567921ac4b0de3fffe2615e5ad045228920eed77ca5520c77b4b776ab75cbeda9455dab5bfe715a14b351e5711b5ca7b46ec9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
## 0.0
|
1
|
+
## 0.1.0, release 2020-05-08
|
2
|
+
* Will manage differents version of torrc, if your distro fail to start TOR, report an issue.
|
3
|
+
* Ensure than TOR is start before proceed.
|
4
|
+
* New option -p|--persist, work with systemd for now.
|
5
|
+
* Remove duplicate code at lib/spior/mac.rb.
|
6
|
+
* Correct apt-get install.
|
7
|
+
|
8
|
+
## 0.0.9, release 2020-05-07
|
2
9
|
* Add an option to reload TOR -r|--reload
|
3
10
|
* Cleanup few characters from -s|--status
|
4
11
|
* Correct path for search config files
|
@@ -0,0 +1,18 @@
|
|
1
|
+
DataDirectory /var/lib/tor/data
|
2
|
+
|
3
|
+
Log notice stdout
|
4
|
+
|
5
|
+
GeoIPExcludeUnknown 1
|
6
|
+
|
7
|
+
## Torified DNS
|
8
|
+
DNSPort 127.0.0.1:9061
|
9
|
+
AutomapHostsOnResolve 1
|
10
|
+
AutomapHostsSuffixes .exit,.onion
|
11
|
+
|
12
|
+
SocksPort 9050
|
13
|
+
|
14
|
+
VirtualAddrNetworkIPv4 10.192.0.0/10
|
15
|
+
TransPort 9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
|
16
|
+
|
17
|
+
TestSocks 1
|
18
|
+
MaxCircuitDirtiness 600
|
File without changes
|
data/lib/spior/clear.rb
CHANGED
@@ -24,7 +24,7 @@ module Spior
|
|
24
24
|
elsif File.exist?("/etc/iptables.rules")
|
25
25
|
ipt_restore "/etc/iptables.rules"
|
26
26
|
else
|
27
|
-
Msg.
|
27
|
+
Msg.p "I couldn't find any old rules for iptables to restore, skipping..."
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
data/lib/spior/copy.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'nomansland'
|
2
2
|
require 'date'
|
3
3
|
require 'digest'
|
4
4
|
require_relative 'msg'
|
@@ -8,7 +8,7 @@ module Spior
|
|
8
8
|
|
9
9
|
def self.config_files
|
10
10
|
@conf_dir = File.expand_path('../..' + '/conf', __dir__)
|
11
|
-
|
11
|
+
copy_torrc
|
12
12
|
copy_file(@conf_dir + "/resolv.conf", "/etc/resolv.conf")
|
13
13
|
copy_file(@conf_dir + "/ipt_mod.conf", "/etc/modules-load.d/ipt_mod.conf")
|
14
14
|
end
|
@@ -18,6 +18,26 @@ module Spior
|
|
18
18
|
backup_exist("/etc/resolv.conf")
|
19
19
|
end
|
20
20
|
|
21
|
+
def self.search_systemd_dir
|
22
|
+
if Dir.exist?("/usr/lib/systemd/system")
|
23
|
+
@systemd_dir = '/usr/lib/systemd/system'
|
24
|
+
elsif Dir.exist?("/lib/systemd/system")
|
25
|
+
@systemd_dir = '/lib/systemd/system'
|
26
|
+
else
|
27
|
+
Msg.report "Directory systemd/system is no found on your system."
|
28
|
+
exit(-1)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.systemd_services
|
33
|
+
search_systemd_dir
|
34
|
+
case Nomansland::installer?
|
35
|
+
when :gentoo
|
36
|
+
Msg.p "Copy #{@conf_dir}/iptables.service"
|
37
|
+
copy_file(@conf_dir + "/iptables.service", @systemd_dir + "/iptables.service")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
21
41
|
private
|
22
42
|
|
23
43
|
def self.copy_file(conf, target)
|
@@ -26,14 +46,23 @@ module Spior
|
|
26
46
|
if File.exist? target then
|
27
47
|
if ! previous_copy target
|
28
48
|
backup_file(target)
|
29
|
-
|
30
|
-
|
31
|
-
end
|
49
|
+
end
|
50
|
+
add_file target
|
32
51
|
else
|
33
52
|
add_file target
|
34
53
|
end
|
35
54
|
end
|
36
55
|
|
56
|
+
def self.copy_torrc
|
57
|
+
case Nomansland::distro?
|
58
|
+
when :archlinux
|
59
|
+
copy_file(@conf_dir + "/torrc/torrc_archlinux", "/etc/tor/torrc")
|
60
|
+
else
|
61
|
+
copy_file(@conf_dir + "/torrc/torrc_default", "/etc/tor/torrc")
|
62
|
+
Msg.report "If tor fail to start with the default torrc"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
37
66
|
def self.previous_copy(target)
|
38
67
|
backup=`ls #{target}.backup-* | head -n 1`.chomp
|
39
68
|
return false if !File.exist?(backup)
|
data/lib/spior/install.rb
CHANGED
@@ -12,6 +12,7 @@ module Spior
|
|
12
12
|
|
13
13
|
def self.check_base
|
14
14
|
base_packages
|
15
|
+
verify_services
|
15
16
|
end
|
16
17
|
|
17
18
|
def self.check_mac
|
@@ -30,11 +31,17 @@ module Spior
|
|
30
31
|
when :yum
|
31
32
|
system('sudo yum install tor iptables')
|
32
33
|
else
|
33
|
-
system('sudo apt-get tor iptables')
|
34
|
+
system('sudo apt-get install tor iptables')
|
34
35
|
end
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
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
|
+
|
38
45
|
def self.pkg_mac
|
39
46
|
pkg_name="deceitmac"
|
40
47
|
if not TTY::Which.exist?(pkg_name)
|
data/lib/spior/mac.rb
CHANGED
@@ -3,21 +3,9 @@ require_relative "msg"
|
|
3
3
|
|
4
4
|
module Spior
|
5
5
|
module MAC
|
6
|
-
|
7
|
-
|
8
|
-
def randomize(interface)
|
6
|
+
def self.randomize(interface)
|
9
7
|
@network_int = interface
|
10
|
-
check_dep
|
11
8
|
system("deceitmac --interface #{@network_int} --random --dhcpcd --tor --no-banner")
|
12
9
|
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def check_dep
|
17
|
-
if ! Pathname.new("/usr/local/bin/deceitmac") then
|
18
|
-
Msg.error "deceitmac is not installed, please, exec spior --install"
|
19
|
-
exit(-1)
|
20
|
-
end
|
21
|
-
end
|
22
10
|
end
|
23
11
|
end
|
data/lib/spior/msg.rb
CHANGED
@@ -13,9 +13,13 @@ module Msg
|
|
13
13
|
puts Rainbow("[").red + Rainbow("-").white + Rainbow("]").red + " " + text
|
14
14
|
end
|
15
15
|
|
16
|
+
def self.info(text)
|
17
|
+
puts Rainbow("-").blue + Rainbow("-").white + Rainbow("-").blue + " " + text + " " + Rainbow("-").blue + Rainbow("-").white + Rainbow("-").blue
|
18
|
+
end
|
19
|
+
|
16
20
|
def self.report(text)
|
17
21
|
puts ""
|
18
|
-
|
22
|
+
info text
|
19
23
|
puts "Please, report this issue at https://github.com/szorfein/spior/issues"
|
20
24
|
end
|
21
25
|
end
|
data/lib/spior/options.rb
CHANGED
@@ -5,12 +5,13 @@ require_relative 'clear'
|
|
5
5
|
|
6
6
|
module Spior
|
7
7
|
class Options
|
8
|
-
attr_reader :install , :mac , :interface , :tor
|
8
|
+
attr_reader :install , :mac , :interface , :tor , :persist
|
9
9
|
|
10
10
|
def initialize(argv)
|
11
11
|
@install = false
|
12
12
|
@mac = false
|
13
13
|
@tor = false
|
14
|
+
@persist = false
|
14
15
|
parse(argv)
|
15
16
|
end
|
16
17
|
|
@@ -46,6 +47,10 @@ module Spior
|
|
46
47
|
Spior::Status::info
|
47
48
|
end
|
48
49
|
|
50
|
+
opts.on("-p", "--persist", "Active Spior at every boot.") do
|
51
|
+
@persist = true
|
52
|
+
end
|
53
|
+
|
49
54
|
opts.on("-h", "--help", "Show this message") do
|
50
55
|
puts opts
|
51
56
|
exit
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'nomansland'
|
2
|
+
require 'tty-which'
|
3
|
+
require_relative 'copy'
|
4
|
+
require_relative 'msg'
|
5
|
+
|
6
|
+
module Spior
|
7
|
+
module Persist
|
8
|
+
extend self
|
9
|
+
|
10
|
+
def all(card_name)
|
11
|
+
@card_name = card_name
|
12
|
+
@services=[ "tor", "iptables", "deceitmac@" + @card_name ]
|
13
|
+
search_for_systemd
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def search_for_systemd
|
19
|
+
return if !TTY::Which.exist?('systemctl')
|
20
|
+
Spior::Copy::systemd_services
|
21
|
+
@services.each do |service|
|
22
|
+
Msg.p "Search for service #{service}..."
|
23
|
+
system("if ! systemctl is-enabled #{service} ; then sudo systemctl enable #{service} ; fi")
|
24
|
+
end
|
25
|
+
iptables_systemd
|
26
|
+
end
|
27
|
+
|
28
|
+
def iptables_systemd
|
29
|
+
case Nomansland::installer?
|
30
|
+
when :pacman
|
31
|
+
system('sudo iptables-save -f /etc/iptables/iptables.rules')
|
32
|
+
when :emerge
|
33
|
+
system('sudo systemctl start iptables-store')
|
34
|
+
else
|
35
|
+
Msg.report "Fail for save iptables-rule, your system is not yet supported"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/spior/runner.rb
CHANGED
@@ -4,6 +4,7 @@ require_relative 'copy'
|
|
4
4
|
require_relative 'mac'
|
5
5
|
require_relative 'iptables'
|
6
6
|
require_relative 'network'
|
7
|
+
require_relative 'persist'
|
7
8
|
require_relative 'msg'
|
8
9
|
|
9
10
|
module Spior
|
@@ -36,6 +37,12 @@ module Spior
|
|
36
37
|
end
|
37
38
|
Spior::Iptables::tor(@network.card)
|
38
39
|
end
|
40
|
+
if @options.persist then
|
41
|
+
if not @network
|
42
|
+
@network = Spior::Network.new(@options.interface)
|
43
|
+
end
|
44
|
+
Spior::Persist::all(@network.card)
|
45
|
+
end
|
39
46
|
end
|
40
47
|
end
|
41
48
|
end
|
data/spior.gemspec
CHANGED
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.0
|
4
|
+
version: 0.1.0
|
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-
|
38
|
+
date: 2020-05-08 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rainbow
|
@@ -111,7 +111,8 @@ files:
|
|
111
111
|
- conf/ssh.conf
|
112
112
|
- conf/sshd.conf
|
113
113
|
- conf/sshuttle.service
|
114
|
-
- conf/torrc
|
114
|
+
- conf/torrc/torrc_archlinux
|
115
|
+
- conf/torrc/torrc_default
|
115
116
|
- lib/spior/clear.rb
|
116
117
|
- lib/spior/copy.rb
|
117
118
|
- lib/spior/install.rb
|
@@ -120,6 +121,7 @@ files:
|
|
120
121
|
- lib/spior/msg.rb
|
121
122
|
- lib/spior/network.rb
|
122
123
|
- lib/spior/options.rb
|
124
|
+
- lib/spior/persist.rb
|
123
125
|
- lib/spior/reload.rb
|
124
126
|
- lib/spior/runner.rb
|
125
127
|
- lib/spior/status.rb
|
metadata.gz.sig
CHANGED
Binary file
|