From 32193301cf9351c0925a0dd7eff0000bfbda04af Mon Sep 17 00:00:00 2001 From: openoms Date: Sat, 4 Jan 2020 00:02:10 +0000 Subject: [PATCH 1/4] hiddenservice: extend script --- .../config.scripts/internet.hiddenservice.sh | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/home.admin/config.scripts/internet.hiddenservice.sh b/home.admin/config.scripts/internet.hiddenservice.sh index b9c0e446b..88cb4debc 100644 --- a/home.admin/config.scripts/internet.hiddenservice.sh +++ b/home.admin/config.scripts/internet.hiddenservice.sh @@ -6,7 +6,7 @@ # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "config script to configure a Tor Hidden Service" - echo "internet.hiddenservice.sh [service] [toPort] [fromPort]" + echo "internet.hiddenservice.sh [service] [toPort] [fromPort] [optional-toPort2] [optional-fromPort2]" exit 1 fi @@ -30,21 +30,68 @@ if [ ${#fromPort} -eq 0 ]; then exit 1 fi +# not mandatory +toPort2="$4" + +# needed if $4 is given +fromPort2="$5" +if [ ${#toPort2} -gt 0 ]; then + if [ ${#fromPort2} -eq 0 ]; then + echo "ERROR:the second port to forward from is missing" + exit 1 + fi +fi + if [ "${runBehindTor}" = "on" ]; then + #check if the service is already present isHiddenService=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c $service) if [ ${isHiddenService} -eq 0 ]; then + #check if the port is already forwarded + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort) + if [ ${alreadyThere} -gt 0 ]; then + echo "The $fromPort is already forwarded. Check /etc/tor/torrc for the details" + exit 1 + fi echo " # Hidden Service for $service HiddenServiceDir /mnt/hdd/tor/$service HiddenServiceVersion 3 HiddenServicePort $toPort 127.0.0.1:$fromPort" | sudo tee -a /etc/tor/torrc +# check and insert second port pair +if [ ${#toPort2} -gt 0 ]; then + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) + if [ ${alreadyThere} -gt 0 ]; then + echo "The $fromPort2 is already forwarded. Check /etc/tor/torrc for the details" + else + echo "HiddenServicePort $toPort2 127.0.0.1:$fromPort2" | sudo tee -a /etc/tor/torrc + fi +fi + # restart tor echo "Restarting Tor to activate the Hidden Service..." sudo systemctl restart tor sleep 10 else echo "The Hidden Service is already installed" fi + # show the Hidden Service address + TOR_ADDRESS=$(sudo cat /mnt/hdd/tor/$service/hostname) + if [ -z "$TOR_ADDRESS" ]; then + echo "Waiting for the Hidden Service" + sleep 10 + TOR_ADDRESS=$(sudo cat /mnt/hdd/tor/$service/hostname) + if [ -z "$TOR_ADDRESS" ]; then + echo " FAIL - The Hidden Service address could not be found - Tor error?" + exit 1 + fi + fi + echo "The Tor Hidden Service address for $service is:" + echo "$TOR_ADDRESS" + echo "use with the port: $toPort" + if [ ${#toPort2} -gt 0 ] && [ ${alreadyThere} -eq 0 ]; then + echo "or the port: $toPort2" + fi else echo "Tor is not active" + exit 1 fi From e678364da64efbe2ca8e083ec794ab63316b08b6 Mon Sep 17 00:00:00 2001 From: openoms Date: Sat, 4 Jan 2020 00:02:54 +0000 Subject: [PATCH 2/4] electrs: use same Tor address for 50002 and 50001 --- home.admin/config.scripts/bonus.electrs.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home.admin/config.scripts/bonus.electrs.sh b/home.admin/config.scripts/bonus.electrs.sh index f4836f07c..e2a950307 100644 --- a/home.admin/config.scripts/bonus.electrs.sh +++ b/home.admin/config.scripts/bonus.electrs.sh @@ -283,8 +283,7 @@ WantedBy=multi-user.target # Hidden Service for electrs if Tor active if [ "${runBehindTor}" = "on" ]; then - /home/admin/config.scripts/internet.hiddenservice.sh electrs 50002 50002 - /home/admin/config.scripts/internet.hiddenservice.sh electrsTCP 50001 50001 + /home/admin/config.scripts/internet.hiddenservice.sh electrs 50002 50002 50001 50001 TOR_ADDRESS=$(sudo cat /mnt/hdd/tor/electrs/hostname) if [ -z "$TOR_ADDRESS" ]; then From ce4aa3cd7e871bdad62db3eddc8f60de9ac11bab Mon Sep 17 00:00:00 2001 From: openoms Date: Sun, 5 Jan 2020 10:29:04 +0000 Subject: [PATCH 3/4] hiddenservice: improve messages --- .../config.scripts/internet.hiddenservice.sh | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/home.admin/config.scripts/internet.hiddenservice.sh b/home.admin/config.scripts/internet.hiddenservice.sh index 88cb4debc..e1d6758e8 100644 --- a/home.admin/config.scripts/internet.hiddenservice.sh +++ b/home.admin/config.scripts/internet.hiddenservice.sh @@ -26,7 +26,7 @@ fi fromPort="$3" if [ ${#fromPort} -eq 0 ]; then - echo "ERROR:the port to forward from is missing" + echo "ERROR: the port to forward from is missing" exit 1 fi @@ -37,7 +37,7 @@ toPort2="$4" fromPort2="$5" if [ ${#toPort2} -gt 0 ]; then if [ ${#fromPort2} -eq 0 ]; then - echo "ERROR:the second port to forward from is missing" + echo "ERROR: the second port to forward from is missing" exit 1 fi fi @@ -49,7 +49,7 @@ if [ "${runBehindTor}" = "on" ]; then #check if the port is already forwarded alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort) if [ ${alreadyThere} -gt 0 ]; then - echo "The $fromPort is already forwarded. Check /etc/tor/torrc for the details" + echo "The port $fromPort is already forwarded. Check /etc/tor/torrc for the details." exit 1 fi echo " @@ -58,21 +58,22 @@ HiddenServiceDir /mnt/hdd/tor/$service HiddenServiceVersion 3 HiddenServicePort $toPort 127.0.0.1:$fromPort" | sudo tee -a /etc/tor/torrc -# check and insert second port pair -if [ ${#toPort2} -gt 0 ]; then - alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) - if [ ${alreadyThere} -gt 0 ]; then - echo "The $fromPort2 is already forwarded. Check /etc/tor/torrc for the details" - else - echo "HiddenServicePort $toPort2 127.0.0.1:$fromPort2" | sudo tee -a /etc/tor/torrc - fi -fi + # check and insert second port pair + if [ ${#toPort2} -gt 0 ]; then + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) + if [ ${alreadyThere} -gt 0 ]; then + echo "The port $fromPort2 is already forwarded. Check the /etc/tor/torrc for the details." + else + echo "HiddenServicePort $toPort2 127.0.0.1:$fromPort2" | sudo tee -a /etc/tor/torrc + fi + fi # restart tor + echo "" echo "Restarting Tor to activate the Hidden Service..." sudo systemctl restart tor sleep 10 else - echo "The Hidden Service is already installed" + echo "The Hidden Service for $service is already installed." fi # show the Hidden Service address TOR_ADDRESS=$(sudo cat /mnt/hdd/tor/$service/hostname) @@ -85,11 +86,18 @@ fi exit 1 fi fi + echo "" echo "The Tor Hidden Service address for $service is:" echo "$TOR_ADDRESS" echo "use with the port: $toPort" - if [ ${#toPort2} -gt 0 ] && [ ${alreadyThere} -eq 0 ]; then - echo "or the port: $toPort2" + echo "" + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) + if [ ${#toPort2} -gt 0 ]; then + if [ ${alreadyThere} -eq 0 ]; then + echo "or the port: $toPort2" + else + echo "The port $fromPort2 is forwarded for another Hidden Service. Check the /etc/tor/torrc for the details." + fi fi else echo "Tor is not active" From aa84b1da3796c094735573c22890522710c147a4 Mon Sep 17 00:00:00 2001 From: openoms Date: Sun, 5 Jan 2020 10:46:07 +0000 Subject: [PATCH 4/4] tormenu: merge hidden services for electrs --- home.admin/00torMenu.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home.admin/00torMenu.sh b/home.admin/00torMenu.sh index be4783ebb..4d19de460 100644 --- a/home.admin/00torMenu.sh +++ b/home.admin/00torMenu.sh @@ -109,8 +109,7 @@ case $CHOICE in ;; ELECTRS) clear - ./config.scripts/internet.hiddenservice.sh electrs 50002 50002 - ./config.scripts/internet.hiddenservice.sh electrsTCP 50001 50001 + ./config.scripts/internet.hiddenservice.sh electrs 50002 50002 50001 50001 TOR_ADDRESS=$(sudo cat /mnt/hdd/tor/electrs/hostname) echo "" echo "The Tor Hidden Service address for electrs is:"