spior 0.1.0 → 0.1.5
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.tar.gz.sig +0 -0
- data/CHANGELOG.md +32 -0
- data/README.md +11 -8
- data/Rakefile +20 -0
- data/bin/spior +2 -3
- data/{conf → ext}/ipt_mod.conf +0 -0
- data/{conf → ext}/iptables.service +0 -0
- data/lib/spior.rb +42 -0
- data/lib/spior/clear.rb +14 -18
- data/lib/spior/copy.rb +57 -75
- data/lib/spior/helpers.rb +118 -0
- data/lib/spior/install.rb +21 -78
- data/lib/spior/iptables.rb +5 -192
- data/lib/spior/iptables/default.rb +38 -0
- data/lib/spior/iptables/root.rb +92 -0
- data/lib/spior/iptables/tor.rb +64 -0
- data/lib/spior/menu.rb +43 -0
- data/lib/spior/msg.rb +12 -5
- data/lib/spior/network.rb +0 -1
- data/lib/spior/options.rb +13 -19
- data/lib/spior/persist.rb +33 -21
- data/lib/spior/status.rb +30 -12
- data/lib/spior/tor.rb +4 -38
- data/lib/spior/tor/info.rb +113 -0
- data/lib/spior/{reload.rb → tor/restart.rb} +4 -4
- data/lib/spior/version.rb +3 -0
- data/spior.gemspec +19 -13
- metadata +21 -20
- metadata.gz.sig +0 -0
- data/conf/resolv.conf +0 -1
- data/conf/ssh.conf +0 -29
- data/conf/sshd.conf +0 -46
- data/conf/sshuttle.service +0 -11
- data/conf/torrc/torrc_archlinux +0 -18
- data/conf/torrc/torrc_default +0 -20
- data/lib/spior/mac.rb +0 -11
- data/lib/spior/runner.rb +0 -48
data/spior.gemspec
CHANGED
@@ -1,35 +1,41 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/lib/spior/version"
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = "spior"
|
3
|
-
|
4
|
-
s.summary = "A tool to make TOR your default gateway
|
5
|
+
s.version = Spior::VERSION
|
6
|
+
s.summary = "A tool to make TOR your default gateway"
|
5
7
|
s.description = <<-EOF
|
6
|
-
A tool to make TOR your default gateway
|
8
|
+
A tool to make TOR your default gateway
|
7
9
|
EOF
|
8
|
-
|
9
10
|
s.metadata = {
|
10
11
|
"changelog_uri" => "https://github.com/szorfein/spior/blob/master/CHANGELOG.md",
|
11
12
|
"bug_tracker_uri" => "https://github.com/szorfein/spior/issues",
|
12
13
|
"wiki_uri" => "https://github.com/szorfein/spior"
|
13
14
|
}
|
15
|
+
s.author = ['szorfein']
|
14
16
|
|
15
|
-
s.version = "0.1.0"
|
16
|
-
s.requirements << 'tor'
|
17
|
-
s.requirements << 'sudo'
|
18
|
-
s.requirements << 'iptables'
|
19
|
-
s.requirements << 'deceitmac'
|
20
17
|
s.platform = Gem::Platform::RUBY
|
21
|
-
|
22
|
-
s.
|
18
|
+
|
19
|
+
s.licenses = ['MIT']
|
23
20
|
s.email = 'szorfein@protonmail.com'
|
24
|
-
s.
|
21
|
+
s.homepage = 'https://github.com/szorfein/spior'
|
22
|
+
|
25
23
|
s.files = `git ls-files`.split(" ")
|
26
24
|
s.files.reject! { |fn| fn.include? "certs" }
|
27
25
|
s.files.reject! { |fn| fn.include? "Makefile" }
|
28
26
|
s.executables = [ 'spior' ]
|
27
|
+
|
28
|
+
s.extra_rdoc_files = Dir["README.md", "CHANGELOG.md", "LICENSE.txt"]
|
29
|
+
|
29
30
|
s.test_files = Dir["test/test_*.rb"]
|
30
|
-
s.licenses = ['MIT']
|
31
31
|
s.cert_chain = ['certs/szorfein.pem']
|
32
32
|
s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
33
|
+
|
34
|
+
s.requirements << 'tor'
|
35
|
+
s.requirements << 'iptables'
|
36
|
+
|
37
|
+
s.required_ruby_version = '>=2.4'
|
38
|
+
|
33
39
|
s.add_runtime_dependency('rainbow', '3.0.0')
|
34
40
|
s.add_runtime_dependency('interfacez', '1.0.3')
|
35
41
|
s.add_runtime_dependency('nomansland', '0.0.2')
|
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.
|
4
|
+
version: 0.1.5
|
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-
|
38
|
+
date: 2020-11-01 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rainbow
|
@@ -93,39 +93,42 @@ dependencies:
|
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: 0.4.2
|
96
|
-
description: " A tool to make TOR your default gateway
|
96
|
+
description: " A tool to make TOR your default gateway\n"
|
97
97
|
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
|
105
107
|
- LICENSE
|
106
108
|
- README.md
|
109
|
+
- Rakefile
|
107
110
|
- bin/spior
|
108
|
-
-
|
109
|
-
-
|
110
|
-
-
|
111
|
-
- conf/ssh.conf
|
112
|
-
- conf/sshd.conf
|
113
|
-
- conf/sshuttle.service
|
114
|
-
- conf/torrc/torrc_archlinux
|
115
|
-
- conf/torrc/torrc_default
|
111
|
+
- ext/ipt_mod.conf
|
112
|
+
- ext/iptables.service
|
113
|
+
- lib/spior.rb
|
116
114
|
- lib/spior/clear.rb
|
117
115
|
- lib/spior/copy.rb
|
116
|
+
- lib/spior/helpers.rb
|
118
117
|
- lib/spior/install.rb
|
119
118
|
- lib/spior/iptables.rb
|
120
|
-
- lib/spior/
|
119
|
+
- lib/spior/iptables/default.rb
|
120
|
+
- lib/spior/iptables/root.rb
|
121
|
+
- lib/spior/iptables/tor.rb
|
122
|
+
- lib/spior/menu.rb
|
121
123
|
- lib/spior/msg.rb
|
122
124
|
- lib/spior/network.rb
|
123
125
|
- lib/spior/options.rb
|
124
126
|
- lib/spior/persist.rb
|
125
|
-
- lib/spior/reload.rb
|
126
|
-
- lib/spior/runner.rb
|
127
127
|
- lib/spior/status.rb
|
128
128
|
- lib/spior/tor.rb
|
129
|
+
- lib/spior/tor/info.rb
|
130
|
+
- lib/spior/tor/restart.rb
|
131
|
+
- lib/spior/version.rb
|
129
132
|
- spior.gemspec
|
130
133
|
- test/test_install.rb
|
131
134
|
- test/test_options.rb
|
@@ -152,13 +155,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
155
|
version: '0'
|
153
156
|
requirements:
|
154
157
|
- tor
|
155
|
-
- sudo
|
156
158
|
- iptables
|
157
|
-
|
158
|
-
rubygems_version: 3.1.2
|
159
|
+
rubygems_version: 3.0.3
|
159
160
|
signing_key:
|
160
161
|
specification_version: 4
|
161
|
-
summary: A tool to make TOR your default gateway
|
162
|
+
summary: A tool to make TOR your default gateway
|
162
163
|
test_files:
|
163
|
-
- test/test_options.rb
|
164
164
|
- test/test_install.rb
|
165
|
+
- test/test_options.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/conf/resolv.conf
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
nameserver 127.0.0.1
|
data/conf/ssh.conf
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
Host *.onion
|
2
|
-
ProxyCommand socat - SOCKS4A:localhost:%h:%p,socksport=9050
|
3
|
-
|
4
|
-
Host github.com
|
5
|
-
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
|
6
|
-
Ciphers chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc
|
7
|
-
MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
|
8
|
-
|
9
|
-
Host *
|
10
|
-
Protocol 2
|
11
|
-
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|
12
|
-
|
13
|
-
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
|
14
|
-
|
15
|
-
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
|
16
|
-
|
17
|
-
PasswordAuthentication no
|
18
|
-
ChallengeResponseAuthentication no
|
19
|
-
PubkeyAuthentication yes
|
20
|
-
ForwardX11Trusted no
|
21
|
-
ForwardX11 no
|
22
|
-
ForwardAgent no
|
23
|
-
ConnectTimeout 40
|
24
|
-
|
25
|
-
# Send locale environment variables. #367017
|
26
|
-
SendEnv LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LANGUAGE LC_ADDRESS LC_IDENTIFICATION LC_MEASUREMENT LC_NAME LC_PAPER LC_TELEPHONE
|
27
|
-
|
28
|
-
# Send COLORTERM to match TERM. #658540
|
29
|
-
SendEnv COLORTERM
|
data/conf/sshd.conf
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# ref https://github.com/stribika/stribika.github.io/wiki/Secure-Secure-Shell
|
2
|
-
# ref https://github.com/jumanjihouse/devenv/blob/master/app/etc/ssh/sshd_config
|
3
|
-
# ref https://www.ssh.com/ssh/sshd_config/
|
4
|
-
|
5
|
-
# Support for curve25519 KEX and chacha20 are on the wishlist.
|
6
|
-
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|
7
|
-
|
8
|
-
hostkeyalgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256
|
9
|
-
|
10
|
-
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
|
11
|
-
|
12
|
-
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
|
13
|
-
|
14
|
-
Protocol 2
|
15
|
-
AllowGroups ssh-user
|
16
|
-
|
17
|
-
# Only allow 4096-byte RSA key
|
18
|
-
HostKey /etc/ssh/ssh_host_rsa_key
|
19
|
-
HostKey /etc/ssh/ssh_host_ed25519_key
|
20
|
-
|
21
|
-
PermitEmptyPasswords no
|
22
|
-
|
23
|
-
# Change to no to disable s/key passwords
|
24
|
-
ChallengeResponseAuthentication no
|
25
|
-
|
26
|
-
PubkeyAuthentication yes
|
27
|
-
|
28
|
-
# With TOR
|
29
|
-
#ListenAddress 127.0.0.1:22
|
30
|
-
|
31
|
-
UsePAM yes
|
32
|
-
PasswordAuthentication no
|
33
|
-
PrintMotd no
|
34
|
-
PrintLastLog no
|
35
|
-
|
36
|
-
X11Forwarding no
|
37
|
-
permitrootlogin no
|
38
|
-
|
39
|
-
# override default of no subsystems
|
40
|
-
Subsystem sftp /usr/lib64/misc/sftp-server
|
41
|
-
|
42
|
-
# Allow client to pass locale environment variables. #367017
|
43
|
-
AcceptEnv LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LANGUAGE LC_ADDRESS LC_IDENTIFICATION LC_MEASUREMENT LC_NAME LC_PAPER LC_TELEPHONE
|
44
|
-
|
45
|
-
# Allow client to pass COLORTERM to match TERM. #658540
|
46
|
-
AcceptEnv COLORTERM
|
data/conf/sshuttle.service
DELETED
data/conf/torrc/torrc_archlinux
DELETED
@@ -1,18 +0,0 @@
|
|
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
|
data/conf/torrc/torrc_default
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
User tor
|
2
|
-
PIDFile /run/tor/tor.pid
|
3
|
-
DataDirectory /var/lib/tor/data
|
4
|
-
|
5
|
-
Log notice stdout
|
6
|
-
|
7
|
-
GeoIPExcludeUnknown 1
|
8
|
-
|
9
|
-
## Torified DNS
|
10
|
-
DNSPort 127.0.0.1:9061
|
11
|
-
AutomapHostsOnResolve 1
|
12
|
-
AutomapHostsSuffixes .exit,.onion
|
13
|
-
|
14
|
-
SocksPort 9050
|
15
|
-
|
16
|
-
VirtualAddrNetworkIPv4 10.192.0.0/10
|
17
|
-
TransPort 9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
|
18
|
-
|
19
|
-
TestSocks 1
|
20
|
-
MaxCircuitDirtiness 600
|
data/lib/spior/mac.rb
DELETED
data/lib/spior/runner.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require_relative 'options'
|
2
|
-
require_relative 'install'
|
3
|
-
require_relative 'copy'
|
4
|
-
require_relative 'mac'
|
5
|
-
require_relative 'iptables'
|
6
|
-
require_relative 'network'
|
7
|
-
require_relative 'persist'
|
8
|
-
require_relative 'msg'
|
9
|
-
|
10
|
-
module Spior
|
11
|
-
class Runner
|
12
|
-
def initialize(argv)
|
13
|
-
@options = Options.new(argv)
|
14
|
-
@network = false
|
15
|
-
end
|
16
|
-
|
17
|
-
def run
|
18
|
-
if @options.install then
|
19
|
-
Msg.head
|
20
|
-
Spior::Install::dependencies
|
21
|
-
Spior::Copy::config_files
|
22
|
-
end
|
23
|
-
if @options.mac then
|
24
|
-
Msg.head
|
25
|
-
Spior::Install::check_mac
|
26
|
-
if not @network
|
27
|
-
@network = Spior::Network.new(@options.interface)
|
28
|
-
end
|
29
|
-
Spior::MAC::randomize(@network.card)
|
30
|
-
end
|
31
|
-
if @options.tor then
|
32
|
-
Msg.head
|
33
|
-
Spior::Install::check_base
|
34
|
-
Spior::Copy::config_files
|
35
|
-
if not @network
|
36
|
-
@network = Spior::Network.new(@options.interface)
|
37
|
-
end
|
38
|
-
Spior::Iptables::tor(@network.card)
|
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
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|