La sécurité et la surveillance des connexions VPN sont essentielles pour assurer que seules les personnes autorisées accèdent à vos ressources réseau. Pour améliorer cette surveillance, il est possible de configurer votre serveur OpenVPN afin d’envoyer des notifications par email chaque fois qu’une connexion VPN est établie avec le compte d’un utilisateur. Cet article explique comment mettre en place ce système en ajoutant une configuration spécifique et en utilisant un script dédié.
Configuration du Serveur OpenVPN
Pour commencer, vous devez modifier la configuration de votre serveur OpenVPN pour exécuter un script à chaque fois qu’une connexion client est établie. Ajoutez les lignes suivantes dans votre fichier de configuration du serveur OpenVPN (généralement server.conf ou openvpn.conf):
1 2 |
script-security 3 --client-connect /root/ovpn-up.sh |
- script-security 3 : Ce paramètre permet l’utilisation de scripts externes avec OpenVPN.
- –client-connect /root/ovpn-up.sh : Cette ligne spécifie le chemin du script à exécuter à chaque connexion client.
Le Script de Notification par Email
Voici le script ovpn-up.sh que vous pouvez utiliser pour envoyer un email lorsqu’une connexion VPN est établie. Ce script utilise smtp-cli pour envoyer les emails via un serveur SMTP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/bin/sh SMTP="IP-SERVEUR-SMTP:25" FROM="vpn@entreprise.fr" FROMNAME="VPN Entreprise" TO_DOMAIN="@entreprise.fr" time=$(echo $(date +"%c")) message=$(echo "<b>Connecté depuis :</b> $time<br><b>Adresse réelle :</b> $untrusted_ip<br><b>Adresse virtuelle :</b> $ifconfig_pool_remote_ip<br><b>Nom commun :</b> $common_name<br><br>") TO="$common_name$TO_DOMAIN" #TO="informatique@entreprise.fr" #Pour debug echo "Un client est connecté en <b>VPN</b> depuis votre compte." >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "Veuillez noter que ce courriel est à titre informatif, visant à vous informer qu'une connexion à votre compte VPN vient d'être réalisée. Si vous n'êtes pas à l'origine de cette connexion, veuillez contacter immédiatement le service informatique." >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "<br>$message" >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt echo "---<br>" >>/tmp/mail.txt echo "Service informatique Entreprise." >>/tmp/mail.txt echo "<br>" >>/tmp/mail.txt # Envoi du message via SMTP avec smtp-cli smtp-cli --server="$SMTP" --from="$FROM" --to="$TO" --subject="Connexion VPN depuis votre compte Entreprise" --body-html="/tmp/mail.txt" --missing-modules-ok rm /tmp/mail.txt |
Explications du Script
- Variables de Configuration :
- SMTP : Adresse IP et port de votre serveur SMTP.
- FROM : Adresse email de l’expéditeur.
- FROMNAME : Nom de l’expéditeur.
- TO_DOMAIN : Domaine des adresses email des destinataires.
- Récupération des Informations de Connexion :
- time : Heure de la connexion.
- untrusted_ip : Adresse IP réelle de l’utilisateur.
- ifconfig_pool_remote_ip : Adresse IP assignée par le VPN.
- common_name : Nom commun de l’utilisateur.
- Création du Message :
- Le script génère un message HTML contenant les détails de la connexion.
- Envoi de l’Email :
- Le script utilise smtp-cli pour envoyer l’email via le serveur SMTP configuré.
- Nettoyage :
- Le script supprime le fichier temporaire utilisé pour stocker le message.