spior 0.0.6 → 0.0.7
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +11 -0
- data/README.md +2 -2
- data/lib/spior/clear.rb +40 -0
- data/lib/spior/copy.rb +18 -8
- data/lib/spior/install.rb +13 -10
- data/lib/spior/iptables.rb +16 -10
- data/lib/spior/msg.rb +6 -0
- data/lib/spior/options.rb +7 -8
- data/lib/spior/runner.rb +0 -3
- data/spior.gemspec +2 -1
- metadata +16 -1
- 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: 8d390bbd0a1fa448b101166b42ee255f3c1f0c27f65e188892ad2727f2dfabf8
|
4
|
+
data.tar.gz: dfeab1802b567bafd759636739f7c0717de2112fd098020434cd5393acdafb95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa1aa9c06607c26ec58db34ff6b6915ae5b0a57d9292ca563f4ef31dca2fd7e87b3c6d34139aec1dea727aca619acf2ddf23258f88d5c3994e578a5d1d880137
|
7
|
+
data.tar.gz: b0a896265a665ce3c8cb35485ee05195cac56f15668d638f1fe411a6d94e42bcbb88b210afa81d2546634aa502d933deeaffff7154f7c88eb19c4845a1bf2424
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 0.0.7, release 2020-05-05
|
2
|
+
* Execute the option -t|--tor verify if config files are present.
|
3
|
+
* Correct --copy, does not make more than one backup of the same file.
|
4
|
+
* Correct --install, do not check for reinstall package if they exist.
|
5
|
+
* --clear restore config files
|
6
|
+
* --clear tries to restore the old rules if he finds them.
|
7
|
+
* New option -c|--clear
|
8
|
+
* Remove option --copy, it is start with --install
|
9
|
+
* Change option --card with -n|--net-card
|
10
|
+
* Add the Gem tty-which as dependencies
|
11
|
+
|
1
12
|
## 0.0.6, release 2020-05-04
|
2
13
|
* README, Add examples
|
3
14
|
* lib/spior/iptables - rename var input incoming
|
data/README.md
CHANGED
@@ -24,12 +24,12 @@ Please, post an issue if your distro linux fail.
|
|
24
24
|
### Examples
|
25
25
|
To change the MAC address for eth0
|
26
26
|
|
27
|
-
$ spior -
|
27
|
+
$ spior -n eth0 -m
|
28
28
|
|
29
29
|
Redirect traffic through TOR
|
30
30
|
|
31
31
|
$ spior -t
|
32
|
-
$ spior -t -
|
32
|
+
$ spior -t -n eth0
|
33
33
|
|
34
34
|
Look informations about your current ip address
|
35
35
|
|
data/lib/spior/clear.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'tty-which'
|
2
|
+
require 'nomansland'
|
3
|
+
require_relative 'msg'
|
4
|
+
|
5
|
+
module Spior
|
6
|
+
module Clear
|
7
|
+
extend self
|
8
|
+
|
9
|
+
def all
|
10
|
+
iptables
|
11
|
+
rez_configs
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def iptables
|
17
|
+
puts "Clearing rules.."
|
18
|
+
Spior::Iptables::flush_rules
|
19
|
+
if File.exist?("/var/lib/iptables/rules-save")
|
20
|
+
ipt_restore "/var/lib/iptables/rules-save"
|
21
|
+
elsif File.exist?("/etc/iptables/rules.save")
|
22
|
+
ipt_restore "/etc/iptables/iptables.rules"
|
23
|
+
elsif File.exist?("/etc/iptables.rules")
|
24
|
+
ipt_restore "/etc/iptables.rules"
|
25
|
+
else
|
26
|
+
Msg.report "Do not known where search you previous iptables rules"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def ipt_restore(path)
|
31
|
+
puts "Restoring rules #{path}..."
|
32
|
+
system("sudo iptables-restore #{path}")
|
33
|
+
end
|
34
|
+
|
35
|
+
def rez_configs
|
36
|
+
system("sudo cp -a /etc/resolv.conf.backup-* /etc/resolv.conf")
|
37
|
+
#system("sudo cp -a /etc/tor/torrc.backup-* /etc/tor/torrc")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/spior/copy.rb
CHANGED
@@ -16,12 +16,16 @@ module Spior
|
|
16
16
|
|
17
17
|
def self.copy_file(conf, target)
|
18
18
|
@config_file = "conf/#{conf}"
|
19
|
-
return if check_hash(target)
|
19
|
+
return if check_hash(@config_file, target)
|
20
20
|
if File.exist? target then
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
if not backup_exist target
|
22
|
+
print "Target #{target} exist, backup and replace? [N/y] "
|
23
|
+
choice = gets.chomp
|
24
|
+
if choice =~ /y|Y/ then
|
25
|
+
backup_file(target)
|
26
|
+
add_file target
|
27
|
+
end
|
28
|
+
else
|
25
29
|
add_file target
|
26
30
|
end
|
27
31
|
else
|
@@ -29,18 +33,19 @@ module Spior
|
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
|
-
def self.check_hash(target)
|
36
|
+
def self.check_hash(src, target)
|
33
37
|
return unless File.exist? target
|
34
|
-
sha256conf = Digest::SHA256.file
|
38
|
+
sha256conf = Digest::SHA256.file src
|
35
39
|
sha256target = Digest::SHA256.file target
|
36
40
|
if sha256conf === sha256target then
|
37
|
-
Msg.p "File #{
|
41
|
+
Msg.p "File #{src} alrealy exist, skip"
|
38
42
|
return true
|
39
43
|
end
|
40
44
|
return false
|
41
45
|
end
|
42
46
|
|
43
47
|
def self.backup_file(target)
|
48
|
+
return if check_hash(target, target + ".backup-*")
|
44
49
|
d = DateTime.now
|
45
50
|
backup = target + ".backup-" + d.strftime('%b-%d_%I-%M')
|
46
51
|
system("sudo cp -a #{target} #{backup}")
|
@@ -51,5 +56,10 @@ module Spior
|
|
51
56
|
system("sudo cp -a #{@config_file} #{target}")
|
52
57
|
Msg.p "File #{@config_file} has been successfully copied at #{target}"
|
53
58
|
end
|
59
|
+
|
60
|
+
def self.backup_exist(target)
|
61
|
+
backup=`ls #{target}.backup-* | head -n 1`.chomp
|
62
|
+
check_hash(target, backup)
|
63
|
+
end
|
54
64
|
end
|
55
65
|
end
|
data/lib/spior/install.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'nomansland'
|
2
|
+
require 'tty-which'
|
2
3
|
require_relative 'msg'
|
3
4
|
|
4
5
|
module Spior
|
@@ -12,21 +13,23 @@ module Spior
|
|
12
13
|
private
|
13
14
|
|
14
15
|
def self.base_packages
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
if not TTY::Which.exist?('iptables') or not TTY::Which.exist?('tor')
|
17
|
+
case Nomansland::installer?
|
18
|
+
when :emerge
|
19
|
+
system('sudo emerge -av --changed-use tor iptables')
|
20
|
+
when :pacman
|
21
|
+
system('sudo pacman -S --needed tor iptables')
|
22
|
+
when :yum
|
23
|
+
system('sudo yum install tor iptables')
|
24
|
+
else
|
25
|
+
system('sudo apt-get tor iptables')
|
26
|
+
end
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
27
30
|
def self.pkg_mac
|
28
31
|
pkg_name="deceitmac"
|
29
|
-
if
|
32
|
+
if TTY::Which.exist?(pkg_name)
|
30
33
|
print "Target #{pkg_name} exist, update? [N/y] "
|
31
34
|
choice = gets.chomp
|
32
35
|
if choice =~ /y|Y/ then
|
data/lib/spior/iptables.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'interfacez'
|
2
2
|
require_relative 'tor'
|
3
|
+
require_relative 'copy'
|
3
4
|
require_relative 'msg'
|
4
5
|
|
5
6
|
module Spior
|
@@ -21,9 +22,20 @@ module Spior
|
|
21
22
|
drop_all
|
22
23
|
end
|
23
24
|
|
25
|
+
def self.flush_rules
|
26
|
+
select_cmd
|
27
|
+
ipt "-F"
|
28
|
+
ipt "-X"
|
29
|
+
ipt "-t nat -F"
|
30
|
+
ipt "-t nat -X"
|
31
|
+
ipt "-t mangle -F"
|
32
|
+
ipt "-t mangle -X"
|
33
|
+
end
|
34
|
+
|
24
35
|
private
|
25
36
|
|
26
37
|
def self.initialize(interface)
|
38
|
+
check_dep
|
27
39
|
@lo = Interfacez.loopback
|
28
40
|
@lo_addr = Interfacez.ipv4_address_of(@lo)
|
29
41
|
@tor = Spior::Tor.new
|
@@ -32,6 +44,10 @@ module Spior
|
|
32
44
|
@incoming_addr = Interfacez.ipv4_address_of(@incoming)
|
33
45
|
end
|
34
46
|
|
47
|
+
def self.check_dep
|
48
|
+
Spior::Copy::config_files
|
49
|
+
end
|
50
|
+
|
35
51
|
def self.select_cmd
|
36
52
|
id=`id -u`
|
37
53
|
if id == 0 then
|
@@ -46,16 +62,6 @@ module Spior
|
|
46
62
|
#puts "added - #{@i} #{line}"
|
47
63
|
end
|
48
64
|
|
49
|
-
def self.flush_rules
|
50
|
-
puts "flush"
|
51
|
-
ipt "-F"
|
52
|
-
ipt "-X"
|
53
|
-
ipt "-t nat -F"
|
54
|
-
ipt "-t nat -X"
|
55
|
-
ipt "-t mangle -F"
|
56
|
-
ipt "-t mangle -X"
|
57
|
-
end
|
58
|
-
|
59
65
|
def self.drop_all
|
60
66
|
ipt "-P INPUT DROP"
|
61
67
|
ipt "-P FORWARD DROP"
|
data/lib/spior/msg.rb
CHANGED
@@ -12,4 +12,10 @@ module Msg
|
|
12
12
|
def self.err(text)
|
13
13
|
puts Rainbow("[").red + Rainbow("-").white + Rainbow("]").red + " " + text
|
14
14
|
end
|
15
|
+
|
16
|
+
def self.report(text)
|
17
|
+
puts ""
|
18
|
+
self.err text
|
19
|
+
puts "Please, report this issue at https://github.com/szorfein/spior/issues"
|
20
|
+
end
|
15
21
|
end
|
data/lib/spior/options.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require_relative 'status'
|
3
|
+
require_relative 'clear'
|
3
4
|
|
4
5
|
module Spior
|
5
6
|
class Options
|
6
|
-
attr_reader :install , :
|
7
|
+
attr_reader :install , :mac , :interface , :tor
|
7
8
|
|
8
9
|
def initialize(argv)
|
9
10
|
@install = false
|
10
|
-
@copy = false
|
11
11
|
@mac = false
|
12
12
|
@tor = false
|
13
13
|
parse(argv)
|
@@ -17,16 +17,11 @@ module Spior
|
|
17
17
|
|
18
18
|
def parse(argv)
|
19
19
|
OptionParser.new do |opts|
|
20
|
-
|
21
20
|
opts.on("-i", "--install", "Install dependencies") do
|
22
21
|
@install = true
|
23
22
|
end
|
24
23
|
|
25
|
-
opts.on("-
|
26
|
-
@copy = true
|
27
|
-
end
|
28
|
-
|
29
|
-
opts.on("-c", "--card NAME", "The name of the target network card") do |net|
|
24
|
+
opts.on("-n", "--net-card NAME", "The name of the target network card") do |net|
|
30
25
|
@interface = net
|
31
26
|
end
|
32
27
|
|
@@ -38,6 +33,10 @@ module Spior
|
|
38
33
|
@tor = true
|
39
34
|
end
|
40
35
|
|
36
|
+
opts.on("-c", "--clear", "Clear iptables rules and restore files") do
|
37
|
+
Spior::Clear::all
|
38
|
+
end
|
39
|
+
|
41
40
|
opts.on("-s", "--status", "Look infos about your current ip") do
|
42
41
|
Spior::Status::info
|
43
42
|
end
|
data/lib/spior/runner.rb
CHANGED
data/spior.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
"wiki_uri" => "https://github.com/szorfein/spior"
|
13
13
|
}
|
14
14
|
|
15
|
-
s.version = "0.0.
|
15
|
+
s.version = "0.0.7"
|
16
16
|
s.requirements << 'tor'
|
17
17
|
s.requirements << 'sudo'
|
18
18
|
s.requirements << 'iptables'
|
@@ -33,4 +33,5 @@ Gem::Specification.new do |s|
|
|
33
33
|
s.add_runtime_dependency('rainbow', '3.0.0')
|
34
34
|
s.add_runtime_dependency('interfacez', '1.0.3')
|
35
35
|
s.add_runtime_dependency('nomansland', '0.0.2')
|
36
|
+
s.add_runtime_dependency('tty-which', '0.4.2')
|
36
37
|
end
|
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.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- szorfein
|
@@ -79,6 +79,20 @@ dependencies:
|
|
79
79
|
- - '='
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: 0.0.2
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: tty-which
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.4.2
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - '='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 0.4.2
|
82
96
|
description: " A tool to make TOR your default gateway and randomize your hardware.\n"
|
83
97
|
email: szorfein@protonmail.com
|
84
98
|
executables:
|
@@ -98,6 +112,7 @@ files:
|
|
98
112
|
- conf/sshd.conf
|
99
113
|
- conf/sshuttle.service
|
100
114
|
- conf/torrc
|
115
|
+
- lib/spior/clear.rb
|
101
116
|
- lib/spior/copy.rb
|
102
117
|
- lib/spior/install.rb
|
103
118
|
- lib/spior/iptables.rb
|
metadata.gz.sig
CHANGED
Binary file
|