vpn-connect.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. # Script per connessione VPN Cisco AnyConnect
  3. # Posizionare in: storage/scripts/vpn-connect.sh
  4. # Legge le credenziali da file di configurazione
  5. source "$(dirname "$0")/vpn-config.conf"
  6. # Log file
  7. LOG_FILE="$(dirname "$0")/../logs/vpn-connection.log"
  8. # Funzione di logging
  9. log_message() {
  10. echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
  11. }
  12. # Verifica se le credenziali sono configurate
  13. if [[ -z "$VPN_USERNAME" || -z "$VPN_PASSWORD" || -z "$VPN_SERVER" ]]; then
  14. log_message "ERROR: Credenziali VPN non configurate correttamente"
  15. exit 1
  16. fi
  17. # Controlla se AnyConnect è installato
  18. if [[ ! -f "/opt/cisco/anyconnect/bin/vpn" ]]; then
  19. log_message "ERROR: Cisco AnyConnect non trovato"
  20. exit 1
  21. fi
  22. log_message "INFO: Avvio connessione VPN..."
  23. # Esegue la connessione VPN
  24. printf "${VPN_USERNAME}\n${VPN_PASSWORD}\ny" | /opt/cisco/anyconnect/bin/vpn -s connect "$VPN_SERVER"
  25. # Controlla il risultato
  26. if [[ $? -eq 0 ]]; then
  27. log_message "SUCCESS: Connessione VPN stabilita"
  28. # Aggiorna timestamp ultimo successo nel database Laravel
  29. php "$(dirname "$0")/../../artisan" vpn:update-status connected
  30. else
  31. log_message "ERROR: Connessione VPN fallita"
  32. php "$(dirname "$0")/../../artisan" vpn:update-status failed
  33. fi