Ik heb thuis een Wireguard VPN server draaien. Tevens heb ik op mijn iPhone een werkend Wireguard profile. Dit werkt uitstekend.
Nu wil ik graag voor een (lokale) surveillance url, dat de iPhone automatisch verbinding gaat maken naar Wireguard server, zodat wanneer ik de surveillance app opstart, op de achtergrond de Wireguard verbinding wordt opgezet en ik vervolgens de beelden zie. Ik wil niet continu de VPN verbinding open hebben staan om de accu van de telefoon te sparen. Ik weet dat Wireguard al ingebouwde functies heeft om voor wifi en cellular de verbinding op te zetten maar dit is dus iets wat ik liever niet doe vanwege bovenstaande reden. De VPN verbinding zou dan altijd open blijven staan als ik van huis ben.
Nu heb ik wat documentatie van Apple doorgenomen: https://developer.apple.c...ion-Profile-Reference.pdf
En behoorlijk wat online resources geraadpleegd. Tevens veel testen uitgevoerd.
Wat mij opviel is dat het aan- en uitzetten van de VPN verbinding goed werkt op basis van WiFi SSID filters en schakelen naar 4G verbindingen.
Ik wil echter graag schakelen op basis van de domeinnaam die wordt opgevraagd. Na zeer veel testen lukt me dat niet. Ook niet naar een L2TP VPN verbinding. Ik vermoed dat er iets mis is in mijn config. Wellicht heeft iemand een idee waarom deze filters niet werken.
Ik heb hieronder een voorbeeld van hoe ik het zou willen:
Ik zou verwachten dat de VPN verbinding maakt wanneer het domein 'local.example.com' in Safari of een App wordt benaderd.
Tevens heb ik testen zoals dit:
Bronnen die ik al geraadpleegd heb:
- https://developer.apple.c...ion-Profile-Reference.pdf
- https://nerd.one/vpn-on-d...-ios-and-macos-explained/
- https://www.derman.com/blogs/Example-iOS-VPN-OnDemand-Rules
Ik weet dat de PayloadUUID bij iedere nieuwe import uniek dient te zijn omdat anders het profiel niet vervangen wordt.
Heeft iemand een idee waarom dit niet werkt?
Nu wil ik graag voor een (lokale) surveillance url, dat de iPhone automatisch verbinding gaat maken naar Wireguard server, zodat wanneer ik de surveillance app opstart, op de achtergrond de Wireguard verbinding wordt opgezet en ik vervolgens de beelden zie. Ik wil niet continu de VPN verbinding open hebben staan om de accu van de telefoon te sparen. Ik weet dat Wireguard al ingebouwde functies heeft om voor wifi en cellular de verbinding op te zetten maar dit is dus iets wat ik liever niet doe vanwege bovenstaande reden. De VPN verbinding zou dan altijd open blijven staan als ik van huis ben.
Nu heb ik wat documentatie van Apple doorgenomen: https://developer.apple.c...ion-Profile-Reference.pdf
En behoorlijk wat online resources geraadpleegd. Tevens veel testen uitgevoerd.
Wat mij opviel is dat het aan- en uitzetten van de VPN verbinding goed werkt op basis van WiFi SSID filters en schakelen naar 4G verbindingen.
Ik wil echter graag schakelen op basis van de domeinnaam die wordt opgevraagd. Na zeer veel testen lukt me dat niet. Ook niet naar een L2TP VPN verbinding. Ik vermoed dat er iets mis is in mijn config. Wellicht heeft iemand een idee waarom deze filters niet werken.
Ik heb hieronder een voorbeeld van hoe ik het zou willen:
XML:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| <?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>PayloadDisplayName</key> <string>ThuisVPN</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.example.test.FCC9BF80-C540-44C1-B243-521FDD1B2405</string> <key>PayloadUUID</key> <string>F346AAF4-53A2-4FA1-ACA3-EEE74DBED043</string> <key>PayloadContent</key> <array> <dict> <key>PayloadDisplayName</key> <string>VPN</string> <key>PayloadType</key> <string>com.apple.vpn.managed</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.example.test.tunnel</string> <key>PayloadUUID</key> <string>44CDFE9F-4DC7-472A-956F-61C68055117Q</string> <key>UserDefinedName</key> <string>VPN Scott</string> <key>VPNType</key> <string>VPN</string> <key>VPNSubType</key> <string>com.wireguard.ios</string> <key>OnDemandEnabled</key> <integer>1</integer> <key>OnDemandRules</key> <array> <dict> <key>Action</key> <string>Connect</string> <key>DNSDomainMatch</key> <array> <string>local.example.com</string> </array> </dict> </array> <key>VendorConfig</key> <dict> <key>WgQuickConfig</key> <string> [Interface] PrivateKey = privatekey Address = 10.11.0.20/32 DNS = 1.1.1.1, 8.8.8.8 [Peer] PublicKey = publickey Endpoint = endpoint.example.com:45486 AllowedIPs = 0.0.0.0/0 </string> </dict> <key>VPN</key> <dict> <key>RemoteAddress</key> <string>endpoint.example.com:45486</string> <key>AuthenticationMethod</key> <string>Password</string> </dict> </dict> </array> </dict> </plist> |
Ik zou verwachten dat de VPN verbinding maakt wanneer het domein 'local.example.com' in Safari of een App wordt benaderd.
Tevens heb ik testen zoals dit:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <array> <dict> <key>Action</key> <string>EvaluateConnection</string> <key>ActionParameters</key> <array> <dict> <key>Domains</key> <array> <string>my-site.com</string> <string>*.my-site.com</string> </array> <key>RequiredURLStringProbe</key> <string>http://my-site.com/nonexistentURL</string> <key>DomainAction</key> <string>ConnectIfNeeded</string> </dict> </array> </dict> </array> |
Bronnen die ik al geraadpleegd heb:
- https://developer.apple.c...ion-Profile-Reference.pdf
- https://nerd.one/vpn-on-d...-ios-and-macos-explained/
- https://www.derman.com/blogs/Example-iOS-VPN-OnDemand-Rules
Ik weet dat de PayloadUUID bij iedere nieuwe import uniek dient te zijn omdat anders het profiel niet vervangen wordt.
Heeft iemand een idee waarom dit niet werkt?