Sur ma version actuelle d'OS X (Sierra 10.12.6) et FortiClient 5.6.1, il semble que si ServerAddresses a plus de 2 adresses, alors l'appel "set" ne persiste rien (si vous "obtenez", rien n'aura été actualisé). Pour contourner ce problème, j'ai décidé de ne conserver que la première adresse DNS FortiClient et de la fusionner avec mon adresse DNS publique (8.8.8.8).
De plus, je suggère d'exécuter automatiquement le script bash sur FortiClient connect: cela peut être fait en exportant le script de configuration FortiClient puis en le réimportant
Guide complet ci-dessous:
1 / Créez le script bash suivant et stockez-le quelque part (dans mon cas, c'était dans ~/bashscripts/update-forticlient-dns.sh
) et n'oubliez pas de remplacer le <FIRST IP ADDRESS FOR FORTICLIENT DNS>
par le résultat scutil --dns | grep "nameserver\[0\]"
pendant que votre connexion FortiClient est établie
#!/bin/bash
ROOT_PASSWORD=$1
# Uncomment this if you want to log everything happening during this script execution into a dedicated log file
# exec >/tmp/forticlient-log 2>&1
# Ensuring we did a sudo correctly once
# Because we cannot both use a pipe and an stdin redirection at the same time
# (or at least, my bash knowledge is not wide enough for that :-))
echo "$ROOT_PASSWORD" | sudo -S ls /dev/null
sudo scutil <<EOF
get State:/Network/Service/forticlientsslvpn/DNS
d.add ServerAddresses 8.8.8.8 <FIRST IP ADDRESS FOR FORTICLIENT DNS>
set State:/Network/Service/forticlientsslvpn/DNS
quit
EOF
2 / Exécutez FortiClient, puis allez dans Préférences > Général et cliquez sur le bouton Sauvegarder qui exportera votre configuration FortiClient dans un fichier
3 / Dans ce fichier, recherchez et modifiez le / forticlient_configuration / vpn / sslvpn / connections / connection [name = "YOUR CONNECTION"] / on_connect / script / script node et appelez votre script à l'intérieur:
<on_connect>
<script>
<os>mac</os>
<script>/Users/fcamblor/bashscripts/update-forticlient-dns.sh "your_secret_root_password_here"</script>
</script>
</on_connect>
4 / Revenez à la console FortiClient, cliquez sur le verrou dans le coin inférieur gauche, puis allez dans Préférences > Général et cliquez sur le bouton Restaurer : localisez votre fichier de configuration mis à jour et c'est tout, votre configuration DNS sera mise à jour à la volée à chaque fois que vous connectez-vous au VPN.