#!/bin/bash clear VPN_ARGUMENT="Nuremberg" # VPN über das Script mit einem Argument starten, VPN-Namen angeben. SCRIPT_DIR="/root" # Ort des VPN Scripts. OPENVPN_DIR="/etc/openvpn" # openvpn Verzeichnis mit pp Configs. SESSION="tmux" # Program tmux. SESSION_NAME="openvpn-pp" FENSTER_ID_1="1" # tmux.conf - 1 bei meiner config, 0 bei unveränderter / anderer config, oder so... FENSTER_ID_2="2" # Je nachdem, wie euer tmux configuriert ist. FENSTER_ID_3="3" # Entsprechend anpassen, zb.: 0 1 2 3 4 bei unveränderter tmux.conf. FENSTER_ID_4="4" # SEND_KEYS_ID1="$SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_1" SEND_KEYS_ID2="$SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2" SEND_KEYS_ID3="$SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3" #SEND_KEYS_ID4="$SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4" VPN_ID1="$SEND_KEYS_ID1 openvpn " VPN_ID2="$SEND_KEYS_ID2 openvpn " VPN_ID3="$SEND_KEYS_ID3 openvpn " #VPN_ID4="$SEND_KEYS_ID4 openvpn " VPN_OPTION1="--config" # Auskommentieren wenn updown.sh nicht genutzt wird, hop funktioniert dann nicht. VPN_OPTION2="--script-security 2 --route remote_host --persist-tun --up updown.sh --down updown.sh --route-noexec" # Auskommentieren wenn updown.sh nicht genutzt wird. START="Enter" STOP="C-c Enter" LOG_ID1="/tmp/.openvpn-pp-1.log" LOG_ID2="/tmp/.openvpn-pp-2.log" LOG_ID3="/tmp/.openvpn-pp-3.log" #LOG_ID4="/tmp/.openvpn-pp-4.log" LOGGING_ID1=" | tee $LOG_ID1" LOGGING_ID2=" | tee $LOG_ID2" LOGGING_ID3=" | tee $LOG_ID3" #LOGGING_ID4=" | tee $LOG_ID4" MENU_LESS_START_ID1="$SESSION send-keys -t vpn:$FENSTER_ID_2" MENU_LESS_START_ID2="$SESSION send-keys -t vpn:$FENSTER_ID_3" MENU_LESS_START_ID3="$SESSION send-keys -t vpn:$FENSTER_ID_4" #MENU_LESS_START_ID4="$SESSION send-keys -t vpn:$FENSTER_ID_5" MENU_LESS_KILL_ID1="$SESSION send-keys -t vpn:$FENSTER_ID_2 C-c q clear Enter" MENU_LESS_KILL_ID2="$SESSION send-keys -t vpn:$FENSTER_ID_3 C-c q clear Enter" MENU_LESS_KILL_ID3="$SESSION send-keys -t vpn:$FENSTER_ID_4 C-c q clear Enter" #MENU_LESS_KILL_ID4="$SESSION send-keys -t vpn:$FENSTER_ID_5 C-c q clear Enter" find $LOG_ID1 || echo -e "vpn_status=Offline\n" > $LOG_ID1 find $LOG_ID2 || echo -e "vpn_status=Offline\n" > $LOG_ID2 find $LOG_ID3 || echo -e "vpn_status=Offline\n" > $LOG_ID3 #find $LOG_ID4 || echo -e "vpn_status=Offline\n" > $LOG_ID4 cd $SCRIPT_DIR $SESSION has-session -t vpn || { $SESSION new -d -s vpn && $SESSION rename-window -t vpn:$FENSTER_ID_1 "menu" $SESSION new-window -t vpn:$FENSTER_ID_2 && $SESSION rename-window -t vpn:$FENSTER_ID_2 "hop1" $SESSION new-window -t vpn:$FENSTER_ID_3 && $SESSION rename-window -t vpn:$FENSTER_ID_3 "hop2" $SESSION new-window -t vpn:$FENSTER_ID_4 && $SESSION rename-window -t vpn:$FENSTER_ID_4 "hop3" #$SESSION new-window -t vpn:$FENSTER_ID_5 && $SESSION rename-window -t vpn:$FENSTER_ID_5 "hop4" $SESSION select-window -t vpn:$FENSTER_ID_1 } echo echo $(tmux ls | grep vpn:) echo $(tmux ls | grep $SESSION_NAME:) echo cd $OPENVPN_DIR TAIL_SLEEP="sleep 2" $SESSION has-session -t $SESSION_NAME if [ $? -eq 0 ] then echo "$SESSION_NAME aktiv." else echo "$SESSION_NAME wird gestartet" sleep 1 $SESSION new -d -s $SESSION_NAME && $SESSION rename-window -t $SESSION_NAME:$FENSTER_ID_1 "hopID1" $SESSION new-window -t $SESSION_NAME:$FENSTER_ID_2 && $SESSION rename-window -t $SESSION_NAME:$FENSTER_ID_2 "hopID2" $SESSION new-window -t $SESSION_NAME:$FENSTER_ID_3 && $SESSION rename-window -t $SESSION_NAME:$FENSTER_ID_3 "hopID3" # $SESSION new-window -t $SESSION_NAME:$FENSTER_ID_4 && $SESSION rename-window -t $SESSION_NAME:$FENSTER_ID_4 "hopID4" fi while [[ $# > 0 ]] do case "$1" in -t|-tmux) tmux send-keys -t vpn:$FENSTER_ID_1 C-c sleep 0.2 tmux send-keys -t vpn:$FENSTER_ID_1 ./vpn.sh Enter sleep 0.2 tmux a -t vpn:$FENSTER_ID_1 exit 0 ;; -v|-vpn) clear $MENU_LESS_KILL_ID1 ; sleep 0.1 echo -e "vpn_status=$VPN_ARGUMENT\n" > $LOG_ID1 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_1 $STOP ;sleep 0.5 $VPN_ID1 \ $VPN_OPTION1 \ "$VPN_ARGUMENT.conf $VPN_OPTION2 >> $LOG_ID1" $START ; sleep 0.2 $MENU_LESS_START_ID1 $START ; sleep 0.1 $MENU_LESS_START_ID1 "less +F $LOG_ID1" $START echo "$VPN_ARGUMENT" exit 0 ;; -s|-status) clear HOPID1=$(grep "openvpn --config" $LOG_ID1 | cut -c 150-250) HOPID2=$(grep "openvpn --config" $LOG_ID2 | cut -c 150-250) HOPID3=$(grep "openvpn --config" $LOG_ID3 | cut -c 150-250) # HOPID4=$(grep "openvpn --config" $LOG_ID4 | cut -c 150-250) VPN_STATUS_ID1=$(grep "vpn_status=" $LOG_ID1 | cut -c 12-50) VPN_STATUS_ID2=$(grep "vpn_status=" $LOG_ID2 | cut -c 12-50) VPN_STATUS_ID3=$(grep "vpn_status=" $LOG_ID3 | cut -c 12-50) # VPN_STATUS_ID4=$(grep "vpn_status=" $LOG_ID4 | cut -c 12-50) SEQUENCE_ID1=$(grep "Sequence" $LOG_ID1) SEQUENCE_ID2=$(grep "Sequence" $LOG_ID2) SEQUENCE_ID3=$(grep "Sequence" $LOG_ID3) # SEQUENCE_ID4=$(grep "Sequence" $LOG_ID4) echo "hop1: $VPN_STATUS_ID1 $HOPID1" echo "hop1 Sequence: $SEQUENCE_ID1" echo echo "hop2: $VPN_STATUS_ID2 $HOPID2" echo "hop2 Sequence: $SEQUENCE_ID2" echo echo "hop3: $VPN_STATUS_ID3 $HOPID3" echo "hop3 Sequence: $SEQUENCE_ID3" echo # echo "hop4: $VPN_STATUS_ID4 $HOPID4" # echo "hop4 Sequence: $SEQUENCE_ID4" exit 0 ;; *) clear echo echo "-t | Uum im tmux zu starten, kein Argument um tmux im Hintergrund zu starten" echo "-v | Für VPN $VPN_ARGUMENT" echo "-s | Für Status" echo "-tail | Führt \"tail -f\" für die Live Überwachung aus" exit 0 ;; esac done echo echo "######################" echo "# STRG+C zum Beenden #" echo "######################" echo sleep 2 while true do clear HOPID1=$(grep "openvpn --config" $LOG_ID1 | cut -c 150-250) HOPID2=$(grep "openvpn --config" $LOG_ID2 | cut -c 150-250) HOPID3=$(grep "openvpn --config" $LOG_ID3 | cut -c 150-250) #HOPID4=$(grep "openvpn --config" $LOG_ID4 | cut -c 150-250) VPN_STATUS_ID1=$(grep "vpn_status=" $LOG_ID1 | cut -c 12-50) VPN_STATUS_ID2=$(grep "vpn_status=" $LOG_ID2 | cut -c 12-50) VPN_STATUS_ID3=$(grep "vpn_status=" $LOG_ID3 | cut -c 12-50) #VPN_STATUS_ID4=$(grep "vpn_status=" $LOG_ID4 | cut -c 12-50) SEQUENCE_ID1=$(grep "Sequence" $LOG_ID1) SEQUENCE_ID2=$(grep "Sequence" $LOG_ID2) SEQUENCE_ID3=$(grep "Sequence" $LOG_ID3) #SEQUENCE_ID4=$(grep "Sequence" $LOG_ID4) echo "hop1: $VPN_STATUS_ID1 $HOPID1" echo "hop1 Sequence: $SEQUENCE_ID1" echo echo "hop2: $VPN_STATUS_ID2 $HOPID2" echo "hop2 Sequence: $SEQUENCE_ID2" echo echo "hop3: $VPN_STATUS_ID3 $HOPID3" echo "hop3 Sequence: $SEQUENCE_ID3" echo #echo "hop4: $VPN_STATUS_ID4 $HOPID4" #echo "hop4 Sequence: $SEQUENCE_ID4" echo echo "1) VPN" echo echo "l1-3|less1-3) t1-3|tail1-3) t|tail) Rundgang" echo echo "91) 92) 93) Stop VPN1-3" echo "99) Stopt alle VPN" echo read MENU clear case $MENU in 1|vpn|VPN) select SELECT in "[DEU] Berlin" "[DEU] Erfurt" "[DEU] Hamburg" "[DEU] Frankfurt" "[DEU] Nuremberg" "[NLD] Amsterdam" "[NLD] Rotterdam" "[CHE] Basel" "[CHE] Zurich" "[AUT] Vienna" "[DNK] Copenhagen" "[SWE] Malmoe" "[SWE] Stockholm" "[NOR] Oslo" "[ISL] Reykjavik" "[POL] Warsaw" "[SRB] Belgrade" "[ROU] Bucharest" "[FRA] Calais" "[FRA] Paris" "[GBR] London" "[GBR] Manchester" "[ESP] Madrid" "[CZE] Prague" "[LVA] Riga" "[RUS] Moscow" "[USA] Chicago" "[USA] Dallas" "[USA] LosAngeles" "[USA] Miami" "[USA] NewYork" "[ITA] Milan" "[SGP]Singapore" "[ISR] Jerusalem" "[AUS] Sydney" "[JPN] Tokyo" "[CAN] Montreal" "[CHN] Hongkong" "[###] hop Anzeigen 90" "[###] Zurück 00" do if [[ "$SELECT" ]] then echo -e "\n\"$SELECT\" wurde ausgewählt" SELECT_1=$(echo "$SELECT" | cut -c 7-50) else echo -e "\n\"$REPLY\" wurde ausgewählt" SELECT=$REPLY REPLY=$SELECT_1 fi case "$SELECT" in *Berlin|*Erfurt|*Hamburg|*Frankfurt|*Nuremberg|*Amsterdam|*Rotterdam|*Basel|*Zurich|*Vienna|*Copenhagen|*Malmoe|*Stockholm|*Oslo|*Reykjavik|*Warsaw|*Belgrade|*Bucharest|*Calais|*Paris|*London|*Manchester|*Madrid|*Prague|*Riga|*Moscow|*Chicago|*Dallas|*LosAngeles|*Miami|*NewYork|*Milan|*Singapore|*Jerusalem|*Sydney|*Tokyo|*Montreal|*Hongkong) echo "" while true do HOPID1=$(grep "openvpn --config" $LOG_ID1 | cut -c 150-250) HOPID2=$(grep "openvpn --config" $LOG_ID2 | cut -c 150-250) HOPID3=$(grep "openvpn --config" $LOG_ID3 | cut -c 150-250) # HOPID4=$(grep "openvpn --config" $LOG_ID4 | cut -c 150-250) VPN_STATUS_ID1=$(grep "vpn_status=" $LOG_ID1 | cut -c 12-50) VPN_STATUS_ID2=$(grep "vpn_status=" $LOG_ID2 | cut -c 12-50) VPN_STATUS_ID3=$(grep "vpn_status=" $LOG_ID3 | cut -c 12-50) # VPN_STATUS_ID4=$(grep "vpn_status=" $LOG_ID4 | cut -c 12-50) SEQUENCE_ID1=$(grep "Sequence" $LOG_ID1) SEQUENCE_ID2=$(grep "Sequence" $LOG_ID2) SEQUENCE_ID3=$(grep "Sequence" $LOG_ID3) # SEQUENCE_ID4=$(grep "Sequence" $LOG_ID4) clear echo "hop1: $VPN_STATUS_ID1 $HOPID1" echo "hop1 Sequence: $SEQUENCE_ID1" echo echo "hop2: $VPN_STATUS_ID2 $HOPID2" echo "hop2 Sequence: $SEQUENCE_ID2" echo echo "hop3: $VPN_STATUS_ID3 $HOPID3" echo "hop3 Sequence: $SEQUENCE_ID3" echo # echo "hop4: $VPN_STATUS_ID4 $HOPID4" # echo "hop4 Sequence: $SEQUENCE_ID4" echo echo "1) hop1 2) hop2 3) hop3 " #"4) hop4" echo "00 Zurück" echo "$SELECT" read STADT case $STADT in 1|hop1) clear $MENU_LESS_KILL_ID1 ; sleep 0.1 echo -e "vpn_status=$SELECT\n" > $LOG_ID1 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_1 $STOP ;sleep 0.5 $VPN_ID1 \ $VPN_OPTION1 \ "$SELECT_1.conf $VPN_OPTION2 >> $LOG_ID1" $START ; sleep 0.2 $MENU_LESS_START_ID1 $START ; sleep 0.1 $MENU_LESS_START_ID1 "less +F $LOG_ID1" $START break ;; 2|hop2) clear $MENU_LESS_KILL_ID2 ; sleep 0.1 echo -e "vpn_status=$SELECT\n" > $LOG_ID2 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP ; sleep 0.5 $VPN_ID2 \ $VPN_OPTION1 \ "$SELECT_1.conf $VPN_OPTION2 $HOPID1 >> $LOG_ID2" $START ; sleep 0.2 $MENU_LESS_START_ID2 $START ; sleep 0.1 $MENU_LESS_START_ID2 "less +F $LOG_ID2" $START break ;; 3|hop3) clear $MENU_LESS_KILL_ID3 ; sleep 0.1 echo -e "vpn_status=$SELECT\n" > $LOG_ID3 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP ; sleep 0.5 $VPN_ID3 \ $VPN_OPTION1 \ "$SELECT_1.conf $VPN_OPTION2 $HOPID2 >> $LOG_ID3" $START ; sleep 0.2 $MENU_LESS_START_ID3 $START ; sleep 0.1 $MENU_LESS_START_ID3 "less +F $LOG_ID3" $START break ;; # 4|hop4) # clear # $MENU_LESS_KILL_ID4 ; sleep 0.1 # echo -e "vpn_status=$SELECT\n" > $LOG_ID4 # $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4 $STOP ; sleep 0.5 # $VPN_ID4 \ $VPN_OPTION1 \ "$SELECT_1.conf $VPN_OPTION2 $HOPID3 >> $LOG_ID4" $START ; sleep 0.2 # $MENU_LESS_START_ID4 $START ; sleep 0.1 # $MENU_LESS_START_ID4 "less +F $LOG_ID4" $START # break # ;; 00) break ;; *) echo "Falsche Eingabe" ;; esac done ;; *90) clear HOPID1=$(grep "openvpn --config" $LOG_ID1 | cut -c 150-250) HOPID2=$(grep "openvpn --config" $LOG_ID2 | cut -c 150-250) HOPID3=$(grep "openvpn --config" $LOG_ID3 | cut -c 150-250) # HOPID4=$(grep "openvpn --config" $LOG_ID4 | cut -c 150-250) VPN_STATUS_ID1=$(grep "vpn_status=" $LOG_ID1 | cut -c 12-50) VPN_STATUS_ID2=$(grep "vpn_status=" $LOG_ID2 | cut -c 12-50) VPN_STATUS_ID3=$(grep "vpn_status=" $LOG_ID3 | cut -c 12-50) # VPN_STATUS_ID4=$(grep "vpn_status=" $LOG_ID4 | cut -c 12-50) SEQUENCE_ID1=$(grep "Sequence" $LOG_ID1) SEQUENCE_ID2=$(grep "Sequence" $LOG_ID2) SEQUENCE_ID3=$(grep "Sequence" $LOG_ID3) # SEQUENCE_ID4=$(grep "Sequence" $LOG_ID4) echo "hop1: $VPN_STATUS_ID1 $HOPID1" echo "hop1 Sequence: $SEQUENCE_ID1" echo echo "hop2: $VPN_STATUS_ID2 $HOPID2" echo "hop2 Sequence: $SEQUENCE_ID2" echo echo "hop3: $VPN_STATUS_ID3 $HOPID3" echo "hop3 Sequence: $SEQUENCE_ID3" echo # echo "hop4: $VPN_STATUS_ID4 $HOPID4" # echo "hop4 Sequence: $SEQUENCE_ID4" ;; *00) break ;; *) echo "Falsche Eingabe" ;; esac done ;; t|tail) clear tail -n 20 $LOG_ID1 echo "# hop1" $TAIL_SLEEP clear tail -n 20 $LOG_ID2 echo "# hop2" $TAIL_SLEEP clear tail -n 20 $LOG_ID3 echo "# hop3" $TAIL_SLEEP # clear # tail -n 20 $LOG_ID4 # echo "# hop4" # $TAIL_SLEEP ;; t1|tail1) tail -n 20 $LOG_ID1 $TAIL_SLEEP ;; t2|tail2) tail -n 20 $LOG_ID2 $TAIL_SLEEP ;; t3|tail3) tail -n 20 $LOG_ID3 $TAIL_SLEEP ;; # t4|tail4) # tail -n 20 $LOG_ID4 # $TAIL_SLEEP # ;; l1|less1) less +F $LOG_ID1 ;; l2|less2) less +F $LOG_ID2 ;; l3|less3) less +F $LOG_ID3 ;; # l4|less4) # less +F $LOG_ID4 # ;; 91) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_1 $STOP $MENU_LESS_KILL_ID1 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID1 ;; 92) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP $MENU_LESS_KILL_ID2 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID2 ;; 93) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP $MENU_LESS_KILL_ID3 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID3 ;; # 94) # $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4 $STOP # $MENU_LESS_KILL_ID4 ; sleep 0.2 # echo -e "vpn_status=Offline\n" > $LOG_ID4 # ;; 932|923) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP $MENU_LESS_KILL_ID2 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID2 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP $MENU_LESS_KILL_ID3 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID3 ;; 943|934) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP $MENU_LESS_KILL_ID3 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID3 # $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4 $STOP # $MENU_LESS_KILL_ID4 ; sleep 0.2 # echo -e "vpn_status=Offline\n" > $LOG_ID4 ;; 9432|9234|9423|9342|9324|9243) $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP $MENU_LESS_KILL_ID2 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID2 $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP $MENU_LESS_KILL_ID3 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID3 # $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4 $STOP # $MENU_LESS_KILL_ID4 ; sleep 0.2 # echo -e "vpn_status=Offline\n" > $LOG_ID4 ;; 99) echo -e "\n" clear $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_1 $STOP $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP # $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_4 $STOP $MENU_LESS_KILL_ID1 ; sleep 0.2 $MENU_LESS_KILL_ID2 ; sleep 0.2 $MENU_LESS_KILL_ID3 ; sleep 0.2 # $MENU_LESS_KILL_ID4 ; sleep 0.2 echo -e "vpn_status=Offline\n" > $LOG_ID1 echo -e "vpn_status=Offline\n" > $LOG_ID2 echo -e "vpn_status=Offline\n" > $LOG_ID3 # echo -e "vpn_status=Offline\n" > $LOG_ID4 echo "VPN sollte jetzt tot sein" ; sleep 0.5 ;; *) echo "Falsche Eingabe" ;; esac done