| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/bin/bash
- # Script per connessione VPN Cisco AnyConnect
- # Posizionare in: storage/scripts/vpn-connect.sh
- # Legge le credenziali da file di configurazione
- source "$(dirname "$0")/vpn-config.conf"
- # Log file
- LOG_FILE="$(dirname "$0")/../logs/vpn-connection.log"
- # Funzione di logging
- log_message() {
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
- }
- # Verifica se le credenziali sono configurate
- if [[ -z "$VPN_USERNAME" || -z "$VPN_PASSWORD" || -z "$VPN_SERVER" ]]; then
- log_message "ERROR: Credenziali VPN non configurate correttamente"
- exit 1
- fi
- # Controlla se AnyConnect è installato
- if [[ ! -f "/opt/cisco/anyconnect/bin/vpn" ]]; then
- log_message "ERROR: Cisco AnyConnect non trovato"
- exit 1
- fi
- log_message "INFO: Avvio connessione VPN..."
- # Esegue la connessione VPN
- printf "${VPN_USERNAME}\n${VPN_PASSWORD}\ny" | /opt/cisco/anyconnect/bin/vpn -s connect "$VPN_SERVER"
- # Controlla il risultato
- if [[ $? -eq 0 ]]; then
- log_message "SUCCESS: Connessione VPN stabilita"
- # Aggiorna timestamp ultimo successo nel database Laravel
- php "$(dirname "$0")/../../artisan" vpn:update-status connected
- else
- log_message "ERROR: Connessione VPN fallita"
- php "$(dirname "$0")/../../artisan" vpn:update-status failed
- fi
|