diff --git a/VPN_Forticlient/Installation_vpn.sh b/VPN_Forticlient/Installation_vpn.sh new file mode 100644 index 0000000..9c2a697 --- /dev/null +++ b/VPN_Forticlient/Installation_vpn.sh @@ -0,0 +1,71 @@ +#!/usr/bin/bash +#======================================================================= +# FILE: ~installation_vpn.sh +# USAGE: ./~installation_vpn.sh +# DESCRIPTION: Installation et paramétrage du vpn-ssl forticlient sur +# les postes Utilisateurs Debian +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Maxime Tertrais +# COMPANY: Operis +# CREATED: 15/10/2024 +# REVISION: --- +#======================================================================= +##Définition des variables +folder=$(pwd) ##dossier local +log_erreurs="$folder/err_log.log" +script_conf="$folder/VPN_Forticlient/configuration_vpn.sh" +CERT_PATH1="$folder/VPN_Forticlient/client.pfx" +CERT_PATH2="/opt/forticlient/client.pfx" + +#======================================================================= +##Définition des fonctions +func_dependances(){ + apt-get update + apt-get install -y expect +} + +func_installation(){ + wget -O - https://repo.fortinet.com/repo/7.0/ubuntu/DEB-GPG-KEY | apt-key add - #ajout de la clé du dépôt fortinet + printf "deb [arch=amd64 signed-by=/usr/share/keyrings/repo.fortinet.com.gpg] https://repo.fortinet.com/repo/7.0/ubuntu xenial multiverse\n" | tee /etc/apt/sources.list.d/repo.fortinet.com.list + apt-get update + apt install -y forticlient + mv $CERT_PATH1 $CERT_PATH2 + chown root:root $CERT_PATH2 +} + +#======================================================================= +##Script +echo "Mise a jour dependances pour l'installation du vpn" + if func_dependances 2>> $log_erreurs; then + echo "Mise a jour dependances nécessaire à l'installation du vpn réussie" + else + echo "Erreur lors de la mise a jour dependances nécessaire à l'installation du vpn" + echo "logs d'erreurs disponibles dans le fichier: $log_erreurs" + exit 1 + fi + sleep 2 + +echo "Installation du vpn" + if func_installation 2>> $log_erreurs; then + echo "Installation du vpn réussie" + else + echo "Erreur lors de l'installation du vpn" + echo "logs d'erreurs disponibles dans le fichier: $log_erreurs" + exit 1 + fi + sleep 2 + +echo "Configuration du vpn" + chmod +x $script_conf + if script_conf 2>> $log_erreurs; then + echo "Configuration du vpn réussie" + else + echo "Erreur lors de la configuration du vpn" + echo "logs d'erreurs disponibles dans le fichier: $log_erreurs" + exit 1 + fi + sleep 2 diff --git a/VPN_Forticlient/client.pfx b/VPN_Forticlient/client.pfx new file mode 100644 index 0000000..1b48bd6 Binary files /dev/null and b/VPN_Forticlient/client.pfx differ diff --git a/VPN_Forticlient/configuration_vpn.sh b/VPN_Forticlient/configuration_vpn.sh new file mode 100644 index 0000000..acf8794 --- /dev/null +++ b/VPN_Forticlient/configuration_vpn.sh @@ -0,0 +1,63 @@ +#!/usr/bin/expect +#======================================================================= +# FILE: ~configuration_vpn.sh +# USAGE: ./~configuration_vpn.sh +# DESCRIPTION: Installation et paramétrage du vpn-ssl forticlient sur +# les postes Utilisateurs Debian +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Maxime Tertrais +# COMPANY: Operis +# CREATED: 15/10/2024 +# REVISION: --- +#======================================================================= +##Définition des variables +NOM_CONNEXION="VPN-Operis" +SERVER_VPN="champlan.operis.fr" #serveur à joindre +PORT_VPN="10443" #port du vpn à joindre +AUTH_TYPE="1" #demande de saisir les Id de l'AD +CERT_PATH="/opt/forticlient/client.pfx" +CERT_PSWD="Operis123" +#======================================================================= +##Définition des fonctions + +#======================================================================= +##Script + +set timeout -1 + +# Lancer le script fortivpn +spawn fortivpn edit $NOM_CONNEXION + +# Fournir l'adresse du serveur +expect "Remote Gateway" # Le texte exact affiché par le script +sleep 1 +send "$SERVER_VPN\r" + +# Fournir le n° de port +expect "Port" +sleep 1 +send "$PORT_VPN\r" + +# Fournir la méthode d'identification +expect "Authentication" +sleep 1 +send "$AUTH_TYPE\r" + +# Fournir le certificat client +expect "Client Certificate" +sleep 1 +send "$CERT_PATH\r" + +# Fournir le certificat client +expect "Client Certificate password" +sleep 1 +send "$CERT_PSWD\r" + +# Attendre la fin +expect eof + +} \ No newline at end of file