From e1cca214bf4ea2c88ea2ecd05958a5ee396a2f18 Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@freedombone.net> Date: Wed, 21 Dec 2016 16:35:50 +0000 Subject: [PATCH] Tor bridges accessible from control panel --- src/freedombone-sec | 63 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/src/freedombone-sec b/src/freedombone-sec index cf65c0a12..c807abb63 100755 --- a/src/freedombone-sec +++ b/src/freedombone-sec @@ -752,15 +752,72 @@ function store_passwords { } function show_tor_bridges { - echo -n '' + if ! grep "bridge " /etc/tor/torrc; then + echo $'No Tor bridges have been added' + return + fi + clear + grep "bridge " /etc/tor/torrc } function add_tor_bridge { - echo -n '' + data=$(tempfile 2>/dev/null) + trap "rm -f $data" 0 1 2 5 15 + dialog --backtitle $"Freedombone Control Panel" \ + --title $"Add obfs4 Tor bridge" \ + --form "\n" 9 60 4 \ + $"IP address:" 1 1 " . . . " 1 15 16 16 \ + $"Port: " 2 1 "" 2 15 5 5 \ + $"Key: " 3 1 "" 3 15 250 250 \ + 2> $data + sel=$? + case $sel in + 1) return;; + 255) return;; + esac + bridge_ip_address=$(cat $data | sed -n 1p) + bridge_port=$(cat $data | sed -n 2p) + bridge_key=$(cat $data | sed -n 3p) + if [[ "${bridge_ip_address}" == *" "* ]]; then + return + fi + if [[ "${bridge_ip_address}" != *"."* ]]; then + return + fi + if [ ${#bridge_port} -eq 0 ]; then + return + fi + if [ ${#bridge_key} -eq 0 ]; then + return + fi + tor_add_bridge "${bridge_ip_address}" "${bridge_port}" "${bridge_key}" + dialog --title $"Add obfs4 Tor bridge" \ + --msgbox $"Bridge added" 6 40 } function remove_tor_bridge { - echo -n '' + data=$(tempfile 2>/dev/null) + trap "rm -f $data" 0 1 2 5 15 + dialog --backtitle $"Freedombone Control Panel" \ + --title $"Remove obfs4 Tor bridge" \ + --form "\n" 7 60 1 \ + $"IP address:" 1 1 " . . . " 1 15 16 16 \ + 2> $data + sel=$? + case $sel in + 1) return;; + 255) return;; + esac + bridge_ip_address=$(cat $data | sed -n 1p) + if [[ "${bridge_ip_address}" == *" "* ]]; then + return + fi + if [[ "${bridge_ip_address}" != *"."* ]]; then + return + fi + tor_remove_bridge "${bridge_ip_address}" + dialog --title $"Remove obfs4 Tor bridge" \ + --msgbox $"Bridge removed" 6 40 } function menu_security_settings { -- GitLab