vpn.sh
von swirlen- SNIPPET_TEXT:
-
- #!/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.
- 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
- echo -e "vpn_status=$VPN_ARGUMENT\n" > $LOG_ID1
- $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
- echo -e "vpn_status=$SELECT\n" > $LOG_ID1
- $MENU_LESS_START_ID1 "less +F $LOG_ID1" $START
- break
- ;;
- 2|hop2)
- clear
- echo -e "vpn_status=$SELECT\n" > $LOG_ID2
- $MENU_LESS_START_ID2 "less +F $LOG_ID2" $START
- break
- ;;
- 3|hop3)
- clear
- echo -e "vpn_status=$SELECT\n" > $LOG_ID3
- $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
- echo -e "vpn_status=Offline\n" > $LOG_ID1
- ;;
- 92)
- $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_2 $STOP
- echo -e "vpn_status=Offline\n" > $LOG_ID2
- ;;
- 93)
- $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP
- 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
- echo -e "vpn_status=Offline\n" > $LOG_ID2
- $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP
- echo -e "vpn_status=Offline\n" > $LOG_ID3
- ;;
- 943|934)
- $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP
- 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
- echo -e "vpn_status=Offline\n" > $LOG_ID2
- $SESSION send-keys -t $SESSION_NAME:$FENSTER_ID_3 $STOP
- 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_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 "Falsche Eingabe"
- ;;
- esac
- done
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN