Neljä protokollaperhettä kattaa lähes jokaisen laitteen, joka vielä seisoo räkissä, ja jokainen niistä epäonnistuu Linuxissa eri tavalla. Vastapuolen julkaisemat portit ja määritetyt ehdotukset ratkaisevat pakettisi, eivät ne jakelut, joita satut ajamaan. Sen asentaminen, mitä foorumiviesti mainitsee, ja sen jälkeen muokkaaminen kunnes jokin yhdistyy, on tapa, jolla iltapäivä katoaa. Lue laite, asenna toisena, varmista kolmantena.

Kirjaa, mitä vastapuoli julkaisee

Kirjoita ylös protokolla, portit ja todennus, joita laite odottaa, ennen kuin avaat paketinhallinnan. Neljä perhettä kattaa suurimman osan vanhasta laitteistosta, ja alla oleva taulukko on koko päätös yhdellä näytöllä.

FamilyPortsLinux side
PPTPTCP 1723 plus GRE, IP protocol 47pppd with a peer file
L2TP/IPsecUDP 500, 4500, 1701NetworkManager plugin over strongSwan
IKEv1 aggressive with XAuthUDP 500native strongSwan connection
AnyConnect-style portalTCP 443openconnect with a TUN device

Käsikirja ja laitteen omat palomuurisäännöt ovat luotettavampia kuin protokollan nimi sen kirjautumissivulla. IPsec:iä mainostava laite saattaa puhua vain IKEv1:tä, ja laiteohjelmistojulkaisu, jota kukaan ei asentanut, saattaa olla se, joka lopulta lisää IKEv2:n. Varmista sekä datapolku että asennusportti, sillä juuri siinä vanha laitteisto ja nykyaikaiset verkot eroavat. Tässä vaiheessa erehtyminen tarkoittaa asiakasohjelman virheenetsintää ominaisuutta vastaan, jota toisella puolella ei koskaan ollut.

PPTP: todista GRE ennen kuin muokkaat pppd:tä

PPTP Linuxissa ei ole käynnistettävä taustapalvelu vaan pppd:n kutsu, ja yhteyden parametrit elävät nimeltä mainitussa peer-tiedostossa, jonka pppd lukee kutsuttaessa. Jakelut paketoivat sitä edelleen, vaikka protokollan tunnetut heikkoudet tekevät siitä sopimattoman mihinkään arkaluontoiseen, joten pidä se tiukasti laitteelle, joka ei tarjoa mitään muuta. Tarkkaile GRE:tä asiakasohjelman neuvotellessa lyhyellä kaappauksella arvauksen sijaan. Eniten aikaa tuhlaava epäonnistuminen ei ole todennus vaan puuttuva datapolku.

pppd call branch-office
tcpdump -ni any proto gre -c 5

Jos asennus valmistuu eikä linkki koskaan kuljeta liikennettä, epäile GRE-polkua ennen kuin kosket tunnistetietoihin. Pilven suojausryhmät tarvitsevat nimenomaisen säännön protokollalle 47, ja jotkin verkot estävät sen kokonaan ilman näkyvää virhettä. Testaa verkosta, jota todella käytät, älä laboratoriosta, joka sallii kaiken.

L2TP/IPsec: yksi sopiva ehdotus voittaa kymmenen yritystä

Lue taustapalvelun loki työpöytävalintaikkunan sijaan, sillä valintaikkuna tiivistää useat erilliset epäonnistumiset yhdeksi viestiksi. Virhe NO_PROPOSAL_CHOSEN kuuluu ensimmäiseen vaiheeseen: asiakasohjelma tarjosi salausta, hashia tai Diffie-Hellman-ryhmää, jota palvelin ei hyväksy. Luettele, mitä laite tukee, ja kirjoita yksi sitä vastaava ehdotus, sillä satunnaiset yhdistelmät tuottavat yleensä saman virheen hitaammin. Työpöydällä käytännöllinen asiakasohjelma on NetworkManagerin L2TP-liitännäinen, jonka alla on strongSwan tai Libreswan.

Ehdotusmerkkijono, joka tarkoittaa työpöytäliitännäiselle yhtä, voi tarkoittaa toista taustapalvelulle, jolle se antaa työn, joten pidä syntaksi muokattavalle kerrokselle sopivana. Jos laite vaatii myös tunnelisalaisuuden, se on erillinen vaihe IPsec-avaimesta. Varmista, kumpaa käyttöliittymä kysyy, ennen kuin kirjoitat siihen mitään.

Aggressiivinen IKEv1 XAuthin kanssa ja portaalin tapaus

FortiGate-tyylinen päätepiste haluaa yleensä aggressiivisen tilan XAuthin kanssa ja osoitteen määritetyssä tilassa, jota graafinen liitännäinen ei välttämättä paljasta lainkaan. Natiivi taustapalvelu hoitaa sen, ja alla oleva lohko on tuon määrityksen muoto eikä täydellinen tiedosto. Tarkista valmistajan ajantasainen dokumentaatio ehdotuksen arvoille.

conn branch
    keyexchange=ikev1
    aggressive=yes
    leftauth=psk
    leftauth2=xauth
    leftsourceip=%config
    right=203.0.113.10

Vanhemmat strongSwan-julkaisut käyttivät xauth=client:ää siellä, missä versio 5 käyttää leftauth2=xauth:ttä, joten kopioitu katkelma voi epäonnistua pelkän syntaksin takia. TLS-portaalille openconnect, joka puhuu AnyConnect-protokollaa, hoitaa Ciscon ja useimmat uudelleenbrändätyt laitteet, ja se tarvitsee TUN-laitteen sekä oikeudet sen määrittämiseen. Anna portaaliosoite täsmälleen niin kuin selain sen näyttää, mukaan lukien mahdollinen polku, jota laite odottaa, ja tarkista sitten jaettu osoite ennen kuin testaat mitään sen takana. Käyttöliittymän luominen etukäteen poistaa yhden yllätysten luokan asennuksen aikana.

sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com

Yhdistä ja varmista sitten kiinteässä järjestyksessä

Aja täsmälleen yhtä VPN-hallintaa kerrallaan, sillä NetworkManager-profiili ja käsin käynnistetty taustapalvelu taistelevat reiteistä ja DNS:stä. Laske profiili alas ennen manuaalisen yhteyden testaamista ja varmista, ettei vanhaa tunneliliittymää jää eloon. Varmista sitten tässä järjestyksessä: tunneliosoite, reitti ainoaan sisäiseen isäntään, jota tarvitset, nimien ratkaisu ja lopuksi varsinainen pyyntö. Vihreä kuvake todistaa todennuksen eikä mitään muuta.

ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal

Jos jokin vaihe epäonnistuu, pysähdy siihen sen sijaan, että testaat seuraavaa, sillä rikkinäisen reitin alavirrassa oleva DNS-virhe ei opeta sinulle mitään. Tallenna kopio toimivasta profiilista ennen kokeilua, sillä poistettu yhteystiedosto katoaa helposti ja on työläs rakentaa uudelleen. Pidä ehdotuksen arvot samassa muistiinpanossa kuin laitteen malli ja laiteohjelmistoversio, sillä se muistiinpano on ero migraation ja arkeologiaprojektin välillä, kun laatikko vaihdetaan.

Aiheeseen liittyvät artikkelit