VPN On Demand – Etäyhteys automaattisesti

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ä.

VPN On Demand
VPN On Demand

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *