mirror of
https://github.com/edu4rdshl/tor-router.git
synced 2026-07-17 23:24:48 +00:00
Service improvements
* Created start/stop methods to make service management easier * Added start/stop functions. Added iptables-save/restore functionality. --------- Co-authored-by: strepsil <hm@bitlabs.co.za>
This commit is contained in:
parent
34738887a0
commit
d0734de5c0
2 changed files with 71 additions and 41 deletions
|
|
@ -1,32 +1,42 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Executable file to create rules for transparent proxy
|
|
||||||
# Destinations you do not want routed through Tor
|
RULES="/var/tmp/tor-router.save"
|
||||||
NON_TOR="192.168.1.0/24 192.168.0.0/24"
|
|
||||||
# the UID Tor runs as, actually only support for Debian, ArchLinux and Fedora as been added.
|
|
||||||
if command -v pacman > /dev/null; then
|
|
||||||
TOR_UID=$(id -u tor)
|
|
||||||
elif command -v apt > /dev/null; then
|
|
||||||
TOR_UID=$(id -u debian-tor)
|
|
||||||
elif command -v dnf > /dev/null; then
|
|
||||||
TOR_UID=$(id -u toranon)
|
|
||||||
else
|
|
||||||
echo "Unknown distro, please create report the issue to https://github.com/edu4rdshl/tor-router/issues"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Tor's TransPort
|
# Tor's TransPort
|
||||||
TRANS_PORT="9040"
|
TRANS_PORT="9040"
|
||||||
|
|
||||||
if ! command -v tor > /dev/null; then
|
case "$1" in
|
||||||
|
start)
|
||||||
|
if test -f "$RULES"; then
|
||||||
|
echo "$RULES exists. Either delete it, or stop tor-router first."
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
iptables-save > $RULES
|
||||||
|
# Executable file to create rules for transparent proxy
|
||||||
|
# Destinations you do not want routed through Tor
|
||||||
|
NON_TOR="192.168.1.0/24 192.168.0.0/24"
|
||||||
|
# the UID Tor runs as, actually only support for Debian, ArchLinux and Fedora as been added.
|
||||||
|
if command -v pacman > /dev/null; then
|
||||||
|
TOR_UID=$(id -u tor)
|
||||||
|
elif command -v apt > /dev/null; then
|
||||||
|
TOR_UID=$(id -u debian-tor)
|
||||||
|
elif command -v dnf > /dev/null; then
|
||||||
|
TOR_UID=$(id -u toranon)
|
||||||
|
else
|
||||||
|
echo "Unknown distro, please create report the issue to https://github.com/edu4rdshl/tor-router/issues"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v tor > /dev/null; then
|
||||||
echo "You need to install the tor package."
|
echo "You need to install the tor package."
|
||||||
exit
|
exit
|
||||||
elif ! systemctl is-active tor.service > /dev/null; then
|
elif ! systemctl is-active tor.service > /dev/null; then
|
||||||
echo "The tor service is not active, please start the tor service before running the script."
|
echo "The tor service is not active, please start the tor service before running the script."
|
||||||
exit
|
exit
|
||||||
elif ! command -v iptables > /dev/null; then
|
elif ! command -v iptables > /dev/null; then
|
||||||
echo "You need to install the iptables package."
|
echo "You need to install the iptables package."
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
iptables -F
|
iptables -F
|
||||||
iptables -t nat -F
|
iptables -t nat -F
|
||||||
iptables -t nat -A OUTPUT -m owner --uid-owner $TOR_UID -j RETURN
|
iptables -t nat -A OUTPUT -m owner --uid-owner $TOR_UID -j RETURN
|
||||||
|
|
@ -45,4 +55,24 @@ else
|
||||||
|
|
||||||
iptables -A OUTPUT -m owner --uid-owner $TOR_UID -j ACCEPT
|
iptables -A OUTPUT -m owner --uid-owner $TOR_UID -j ACCEPT
|
||||||
iptables -A OUTPUT -j ACCEPT
|
iptables -A OUTPUT -j ACCEPT
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
if ! -f "$RULES"; then
|
||||||
|
echo "$RULES does not exist. Not doing anything."
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
iptables -t nat -F
|
||||||
|
iptables-restore < $RULES
|
||||||
|
rm $RULES
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
sleep 2
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart}"
|
||||||
|
esac
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStart=/usr/bin/tor-router
|
ExecStart=/usr/bin/tor-router start
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStop=/usr/bin/iptables -F OUTPUT
|
ExecStop=/usr/bin/tor-router stop
|
||||||
TimeoutStopSec=180
|
TimeoutStopSec=180
|
||||||
KillMode=process
|
KillMode=process
|
||||||
KillSignal=SIGINT
|
KillSignal=SIGINT
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue