Ich konnte alle Verbindungen zu externen Netzwerken verweigern, es sei denn, meine OpenVPN-Verbindung ist mit pf.conf aktiv. Ich verliere jedoch die Wi-Fi-Verbindung, wenn die Verbindung durch Schließen und Öffnen des Laptop-Deckels oder erneutes Ein- und Ausschalten von Wi-Fi unterbrochen wird.
- Ich verwende Mac OS 10.8.1.
- Ich verbinde mich über WLAN mit dem Internet (von verschiedenen Standorten aus, einschließlich öffentlichem WLAN).
- Die OpenVPN-Verbindung wird mit Viscosity eingerichtet.
Ich habe die folgenden Paketfilterregeln in /etc/pf.conf
# Deny all packets unless they pass through the OpenVPN connection
wifi=en1
vpn=tun0
block all
set skip on lo
pass on $wifi proto udp to [OpenVPN server IP address] port 443
pass on $vpn
Ich starte den Paketfilterdienst mit sudo pfctl -e
und lade die neuen Regeln mit sudo pfctl -f /etc/pf.conf
.
Ich habe auch /System/Library/LaunchDaemons/com.apple.pfctl.plist
die Zeile bearbeitet und geändert, um <string>-f</string>
zu lesen, <string>-ef</string>
damit der Paketfilter beim Systemstart startet.
Das alles scheint auf den ersten Blick sehr gut zu funktionieren: Anwendungen können nur dann eine Verbindung zum Web herstellen, wenn die OpenVPN-Verbindung aktiv ist, sodass ich niemals Daten über eine unsichere Verbindung verliere.
Wenn ich jedoch den Laptopdeckel schließe und wieder öffne oder WLAN aus- und wieder einschalte, geht die WLAN-Verbindung verloren und in der Statusleiste wird ein Ausrufezeichen im WLAN-Symbol angezeigt. Wenn Sie auf das WLAN-Symbol klicken, wird die Meldung "Warnung: Keine Internetverbindung" angezeigt:
Um die Verbindung wiederherzustellen, muss ich das WLAN manchmal fünf- oder sechsmal trennen und erneut verbinden, bevor die Meldung "Warnung: Keine Internetverbindung" verschwindet und ich die VPN-Verbindung erneut öffnen kann. In anderen Fällen verschwindet die WLAN-Warnung von selbst, das Ausrufezeichen wird gelöscht und ich kann erneut eine Verbindung herstellen. In beiden Fällen kann es fünf Minuten oder länger dauern, bis die Verbindung wiederhergestellt ist, was frustrierend sein kann.
Durch das Entfernen der Leitung wird block all
das Problem behoben (es werden jedoch unsichere Verbindungen zugelassen), sodass anscheinend ein Dienst blockiert wird, den Apple benötigt, um eine Wi-Fi-Verbindung wiederherzustellen und zu bestätigen. Ich habe versucht:
- Aktivierung von icmp durch Hinzufügen
pass on $wifi proto icmp all
zu pf.conf - Aktivieren der DNS-Auflösung durch Hinzufügen
pass on $wifi proto udp from $wifi to any port 53
- Der Versuch , mehr zu lernen , durch die Protokollierung Pakete blockiert (durch Ändern
block all
zublock log all
), aber die Protokollierung scheint unter OS X deaktiviert werden, da dabeisudo tcpdump -n -e -ttt -i pflog0
die Log - Ergebnisse in sehen „tcpdump: pflog0: Kein solches Gerät vorhanden ist “.
Nichts davon hilft dabei, eine Wi-Fi-Verbindung schneller wiederherzustellen.
Was kann ich noch tun, um zu bestimmen, welcher Dienst verfügbar sein muss, um die Wi-Fi-Konnektivität wiederherzustellen, oder welche Regel sollte ich pf.conf hinzufügen, um die Zuverlässigkeit der Wi-Fi-Wiederverbindungen zu erhöhen?