
VPN On Demand – Etäyhteys automaattisesti
Käytän VPN-yhteyttä iPhonessa kun haluan päästä kiinni kotiverkossa oleviin laitteisiin esimerkiksi Home Assistantiin. Tavallisesti tämä vaatii VPN-yhteyden käynnistämistä manuaalisesti VPN-sovelluksesta tai puhelimen asetuksista.
VPN On Demand -tekniikalla VPN-yhteys käynnistyy automaattisesti esimerkiksi kun puhelin on kodin WiFi-verkon ulkopuolella ja yrittää muodostaa yhteyttä kotiverkon IP-osoitteeseen. VPN-yhteys katkaistaan heti kun puhelin liittyy takaisin kodin WiFi-verkkoon.
Alla oleva VPN-profiili on riippuvainen käytetyistä laitteista: puhelimesta ja VPN-palvelimesta. eikä se sovellu sellaisenaan kuin pohjaksi oman VPN-profiilin tekoon. Vähintään punaisella korostetut kohdat on vaihdettava:
<?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>PayloadContent</key>
<array>
<dict>
<key>IKEv2</key>
<dict>
<key>RemoteAddress</key>
<string>kotiverkko.dy.fi</string>
<key>RemoteIdentifier</key>
<string>kotiverkko.dy.fi</string>
<key>LocalIdentifier</key>
<string>käyttäjätunnus</string>
<key>AuthenticationMethod</key>
<string>None</string>
<key>ExtendedAuthEnabled</key>
<integer>1</integer>
<key>AuthName</key>
<string>käyttäjätunnus</string>
<key>AuthPassword</key>
<string>salasana</string>
<key>ServerCertificateIssuerCommonName</key>
<string>Root CA:n myöntäjä</string>
<key>EnablePFS</key>
<integer>1</integer>
<key>UseConfigurationAttributeInternalIPSubnet</key>
<integer>1</integer>
<key>DisconnectOnSleep</key>
<integer>0</integer>
<key>DeadPeerDetectionRate</key>
<string>Medium</string>
<key>NATKeepAliveInterval</key>
<integer>20</integer>
<key>ChildSecurityAssociationParameters</key>
<dict>
<key>EncryptionAlgorithm</key>
<string>AES-256</string>
<key>IntegrityAlgorithm</key>
<string>SHA2-256</string>
<key>DiffieHellmanGroup</key>
<integer>14</integer>
<key>LifeTimeInMinutes</key>
<integer>1440</integer>
</dict>
</dict>
<key>IPv4</key>
<dict>
<key>OverridePrimary</key>
<integer>1</integer>
</dict>
<key>DNS</key>
<dict>
<key>ServerAddresses</key>
<array>
<string>8.8.8.8</string>
<string>1.1.1.1</string>
</array>
<key>SearchDomains</key>
<array>
<string>local</string>
<string>home</string>
</array>
<key>SupplementalMatchDomains</key>
<array>
<string>local</string>
<string>home</string>
</array>
</dict>
<key>VPNType</key>
<string>IKEv2</string>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Disconnect</string>
<key>SSIDMatch</key>
<array>
<string>Kotiverkon WiFI SSID</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>Connect</string>
<key>IPAddressMatch</key>
<array>
<string>192.168.1.0/24</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>Disconnect</string>
</dict>
</array>
<key>PayloadDescription</key>
<string>Kotiverkko On Demand</string>
<key>PayloadDisplayName</key>
<string>Kotiverkko On Demand</string>
<key>PayloadIdentifier</key>
<string>com.kotiverkko.vpn.ikev2</string>
<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>PayloadUUID</key>
<string>D3A24929-F57B-4A8C-B31D-7E26494CF61A</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Kotiverkko On Demand</string>
<key>PayloadIdentifier</key>
<string>com.kotiverkko.vpn.ikev2.config</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>C5B1F1D8-9D7E-4E6A-9D3F-C972C984EA03</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
Varsinaiset säännöt VPN-yhteyden käynnistämiseksi ja sammuttamiseksi tehdään profiilin OnDemandRules -osiossa. Ensimmäinen sääntö katkaisee VPN-yhteyden jos käytetyn verkon SSID on kotiverkon SSID. Seuraava sääntö käynnistää yhteyden jos tavoiteltu IP-osoite vastaa aluetta 192.168.1.0/24. Kolmannen säännön mukaan muissa tilanteissa VPN-yhteys katkaistaan.
Kyseinen koodi tallennetaan tiedostoon vpn.mobileconfig. Tiedosto lähetetään iPhoneen esimerkiksi sähköpostilla ja liite avataan. Profiili asennetaan valikossa Asetukset -> Yleiset -> VPN ja laitehallinta. Tämän jälkeen VPN-profiili on käytettävissä.
