From bd94feb26d54ca9a3a801f67695de25c04add691 Mon Sep 17 00:00:00 2001 From: Jeremy Andrews Date: Fri, 9 Jun 2017 13:15:13 +1200 Subject: [PATCH] Integrated tinyproxy to allow private trackers to see us browsing from the same ip address --- tinyproxy/run.sh | 121 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100755 tinyproxy/run.sh diff --git a/tinyproxy/run.sh b/tinyproxy/run.sh new file mode 100755 index 000000000..76eb34171 --- /dev/null +++ b/tinyproxy/run.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +# Global vars +PROG_NAME='DockerTinyproxy' +PROXY_CONF='/etc/tinyproxy.conf' +TAIL_LOG='/var/log/tinyproxy/tinyproxy.log' + +# Usage: screenOut STATUS message +screenOut() { + timestamp=$(date +"%H:%M:%S") + + if [ "$#" -ne 2 ]; then + status='INFO' + message="$1" + else + status="$1" + message="$2" + fi + + echo -e "[$PROG_NAME][$status][$timestamp]: $message" +} + +# Usage: checkStatus $? "Error message" "Success message" +checkStatus() { + case $1 in + 0) + screenOut "SUCCESS" "$3" + ;; + 1) + screenOut "ERROR" "$2 - Exiting..." + exit 1 + ;; + *) + screenOut "ERROR" "Unrecognised return code." + ;; + esac +} + +stopService() { + screenOut "Checking for running Tinyproxy service..." + if [ "$(pidof tinyproxy)" ]; then + screenOut "Found. Stopping Tinyproxy service for pre-configuration..." + killall tinyproxy + checkStatus $? "Could not stop Tinyproxy service." \ + "Tinyproxy service stopped successfully." + else + screenOut "Tinyproxy service not running." + fi +} + +parseAccessRules() { + list='' + for ARG in $@; do + line="Allow\t$ARG\n" + list+=$line + done + echo "$list" | sed 's/.\{2\}$//' +} + +setMiscConfig() { + sed -i -e"s,^MinSpareServers ,MinSpareServers\t1 ," $PROXY_CONF + checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \ + "Set MinSpareServers - Edited $PROXY_CONF successfully." + + sed -i -e"s,^MaxSpareServers ,MaxSpareServers\t1 ," $PROXY_CONF + checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \ + "Set MinSpareServers - Edited $PROXY_CONF successfully." + + sed -i -e"s,^StartServers ,StartServers\t1 ," $PROXY_CONF + checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \ + "Set MinSpareServers - Edited $PROXY_CONF successfully." +} + +enableLogFile() { + touch /var/log/tinyproxy/tinyproxy.log + sed -i -e"s,^#LogFile,LogFile," $PROXY_CONF +} + +setAccess() { + if [[ "$1" == *ANY* ]]; then + sed -i -e"s/^Allow /#Allow /" $PROXY_CONF + checkStatus $? "Allowing ANY - Could not edit $PROXY_CONF" \ + "Allowed ANY - Edited $PROXY_CONF successfully." + else + sed -i "s,^Allow 127.0.0.1,$1," $PROXY_CONF + checkStatus $? "Allowing IPs - Could not edit $PROXY_CONF" \ + "Allowed IPs - Edited $PROXY_CONF successfully." + fi +} + +startService() { + screenOut "Starting Tinyproxy service..." + /usr/sbin/tinyproxy + checkStatus $? "Could not start Tinyproxy service." \ + "Tinyproxy service started successfully." +} + +tailLog() { + screenOut "Tailing Tinyproxy log..." + tail -f $TAIL_LOG + checkStatus $? "Could not tail $TAIL_LOG" \ + "Stopped tailing $TAIL_LOG" +} + +# Start script +echo && screenOut "$PROG_NAME script started..." +# Stop Tinyproxy if running +stopService +# Parse ACL from args +export rawRules="$@" && parsedRules=$(parseAccessRules $rawRules) && unset rawRules +# Set ACL in Tinyproxy config +setAccess $parsedRules +# Enable log to file +#enableLogFile +# Start Tinyproxy +startService +# Tail Tinyproxy log +#tailLog +# End +screenOut "$PROG_NAME script ended." && echo +exit 0