1 votes

pfctl config pour n'autoriser que les connexions OpenVPN

J'ai trouvé ce qui semble être un guide approprié aquí Mais pfctl se plaint d'une erreur de syntaxe et "no IP address found for en3" qui est mon interface principale. J'ai eu d'autres règles pf qui ont fonctionné avec succès pour transférer des ports, etc. mais je n'arrive pas à comprendre cela.

Je suis sur 10.11.4 et j'utilise Tunnelblick connecté à un serveur OpenVPN que j'ai installé moi-même sur un VPS.

Pourrait-on avoir des instructions sur la configuration correcte de pfctl sur El Capitan ? J'ai besoin de garder un accès ouvert à des réseaux privés comme 10.0.0.0 et 168.1.0.0.

Gracias.

1voto

Matt McClellan Points 751

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X