mauvehed's dotfiles for personal and work environments
at main 109 lines 3.5 kB view raw
1#!/bin/bash 2 3# Define variables for paths 4OPENVPN_PATH="/usr/sbin/openvpn" 5OPENVPN_CONFIG_DIR="/etc/openvpn" 6OPENVPN_LOG_DIR="/var/log/openvpn" 7 8# Check if the script is run as root 9if [[ $EUID -ne 0 ]]; then 10 echo "Error: This script must be run as root." 11 exit 1 12fi 13 14# Function to get the PID of OpenVPN process 15get_pid() { 16 sleep 2 17 local pid=$(pidof openvpn) 18 if [[ -z "$pid" ]]; then 19 echo "OpenVPN is not running." 20 else 21 echo "The PID of OpenVPN is: $pid" 22 fi 23} 24 25# Main script starts here 26echo "" 27echo "Please choose an option:" 28echo "" 29echo " 1) GPN, UDP, No Default Route" 30echo " 2) GPN, UDP, Default Route" 31echo " 3) GPN, TCP, No Default Route" 32echo " 4) GPN, TCP, Default Route" 33echo " 5) Disconnect OpenVPN" 34echo " 6) Exit" 35echo "" 36read -p "Selection: " selection 37 38case $selection in 39 1) 40 $OPENVPN_PATH --config "${OPENVPN_CONFIG_DIR}/gpn-nate-laptop-main-udp.ovpn" \ 41 --log-append "${OPENVPN_LOG_DIR}/openvpn.log" \ 42 --status "${OPENVPN_LOG_DIR}/openvpn-status.log" \ 43 > /dev/null 2>&1 & 44 if [[ $? -eq 0 ]]; then 45 echo "Started GPN with UDP and No Default Route." 46 else 47 echo "Failed to start OpenVPN with UDP and No Default Route." 48 fi 49 get_pid 50 ;; 51 2) 52 $OPENVPN_PATH --config "${OPENVPN_CONFIG_DIR}/gpn-nate-laptop-main-udp-default.ovpn" \ 53 --log-append "${OPENVPN_LOG_DIR}/openvpn.log" \ 54 --status "${OPENVPN_LOG_DIR}/openvpn-status.log" \ 55 > /dev/null 2>&1 & 56 if [[ $? -eq 0 ]]; then 57 echo "Started GPN with UDP using Default Route." 58 else 59 echo "Failed to start OpenVPN with UDP using Default Route." 60 fi 61 get_pid 62 ;; 63 3) 64 $OPENVPN_PATH --config "${OPENVPN_CONFIG_DIR}/gpn-nate-laptop-main-tcp.ovpn" \ 65 --log-append "${OPENVPN_LOG_DIR}/openvpn.log" \ 66 --status "${OPENVPN_LOG_DIR}/openvpn-status.log" \ 67 > /dev/null 2>&1 & 68 if [[ $? -eq 0 ]]; then 69 echo "Started GPN with TCP and No Default Route." 70 else 71 echo "Failed to start OpenVPN with TCP and No Default Route." 72 fi 73 get_pid 74 ;; 75 4) 76 $OPENVPN_PATH --config "${OPENVPN_CONFIG_DIR}/gpn-nate-laptop-main-tcp-default.ovpn" \ 77 --log-append "${OPENVPN_LOG_DIR}/openvpn.log" \ 78 --status "${OPENVPN_LOG_DIR}/openvpn-status.log" \ 79 > /dev/null 2>&1 & 80 if [[ $? -eq 0 ]]; then 81 echo "Started GPN with TCP using Default Route." 82 else 83 echo "Failed to start OpenVPN with TCP using Default Route." 84 fi 85 get_pid 86 ;; 87 5) 88 if pidof openvpn > /dev/null; then 89 echo "Stopping OpenVPN processes..." 90 killall openvpn 91 if [[ $? -eq 0 ]]; then 92 echo "Successfully stopped all OpenVPN processes." 93 else 94 echo "Failed to stop OpenVPN processes." 95 fi 96 else 97 echo "No running OpenVPN processes found to stop." 98 fi 99 get_pid 100 ;; 101 6) 102 echo "" 103 echo "Why did you run the script if you're just going to exit?" 104 exit 105 ;; 106 *) 107 echo "Invalid selection. Please enter a number between 1 and 6." 108 ;; 109esac