Les travaux suivants portent sur la Sierra.
Ajoutez les lignes suivantes à la fin de /etc/pf.conf
anchor "org.vpnonly.pf"
load anchor "org.vpnonly.pf" from "/etc/pf.anchors/org.vpnonly.pf.rules"
Créer ce fichier de configuration dans /etc/pf.anchors/org.vpnonly.pf.rules
# Options
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
# Interfaces
vpn_intf = "{ utun0 utun1 utun2 utun3 }"
# Ports
allowed_vpn_ports = "{ 1:65535 }"
# Table with allowed IPs
table <allowed_vpn_ips> persist file "/etc/pf.anchors/vpn.list" file "/etc/pf.anchors/custom.list"
# Block all outgoing packets
block out all
# Antispoof protection
#had to disable this to avoid error
#antispoof for $vpn_intf inet
# Allow outgoing packets to specified IPs only
pass out proto icmp from any to <allowed_vpn_ips>
pass out proto {tcp udp} from any to <allowed_vpn_ips> port $allowed_vpn_ports
# Allow traffic for VPN interfaces
pass out on $vpn_intf all
Créer /etc/pf.anchors/vpn.list et /etc/pf.anchors/custom.list
sudo touch /etc/pf.anchors/vpn.list /etc/pf.anchors/custom.list
Ajouter une liste d'adresses IP autorisées (adresses de serveurs VPN) à /etc/pf.anchors/vpn.list
41.xxx.xxx.xxx
42.xxx.xxx.xxx
Ajouter google DNS à la liste personnalisée /etc/pf.anchors/custom.list 8.8.8.8 8.8.4.4
sudo pfctl -e -f /etc/pf.conf
et vérifier s'il y a des erreurs
Pour le charger au démarrage, modifiez la valeur par défaut de pfctl à /System/Library/LaunchDaemons/com.apple.pfctl.plist
pour définir <key>Disabled</key>
<true/>
s'assurer que le mode sans racine est désactivé. (démarrer sur le terminal de récupération avec Command+R à l'heure du carillon et exécutez csrutil disable
exécutez ces commandes, puis revenez au terminal de récupération pour réactiver la fonction sans racine à l'aide de la commande csrutil enable
Créez votre LaunchDaemon à l'adresse suivante /Library/LaunchDaemons/com.apple.pfctl.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.pfctl</string>
<key>ProgramArguments</key>
<array>
<string>pfctl</string>
<string>-e</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
terminer par sudo chmod 644 /Library/LaunchDaemons/com.apple.pfctl.plist
redémarrez avec le mode sans racine activé et vous êtes prêt.