Tun0:n ja VPN-protokollan pitäminen yhtenä asiana lähettää ihmiset väärään lokiin. Rajapinta on paikallinen raja, jossa käyttäjäavaruuden ohjelma vaihtaa IP-paketteja ytimen kanssa. Protokolla on se, mitä ohjelma tekee paketeilla saatuaan ne: kuljetus, todennus, salaus ja vastapuoli. Laitteen luominen ei valitse mitään niistä.

Kaksi komponenttia, yksi pakettireitti

Ydin kirjoittaa IP-paketin laitteeseen ja ohjelma lukee sen tiedostokahvasta. Toiseen suuntaan ohjelma kirjoittaa paketin takaisin ja ydin reitittää sen kuin se saapuisi oikealle rajapinnalle. TUN kuljettaa IP:tä, kun taas TAP kuljettaa Ethernet-kehyksiä. Paketin lukeminen tuolla rajalla näyttää kehystyksen, ja juuri sitä varten laite on.

Kaikki tuon rajan tuolla puolen on ohjelman asia. Kaksi ohjelmaa voi käyttää samaa rajapintakäsitettä ja tehdä paketeilla täysin eri asioita. Laitteella itsellään ei ole mielipidettä siitä, mitä seuraavaksi tapahtuu. Tiedostokahva on ainoa kahva, joka ohjelmalla on ytimen puolella.

Luo laite ja seuraa sitten rajaa

Luo laite tarkoituksella, kun testaat rajaa. Pysyvä laite selviää sen luoneen prosessin jälkeen, mikä on hyödyllistä kokeissa ja myöhemmin tavallinen sekavuuden lähde. Tarkista liput ja omistaja ennen kuin syytät VPN:ää.

sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9

Linkin tiedot näyttävät laitetyypin ja liitetyn omistajan. Jos mikään prosessi ei pidä sitä auki, siihen kirjoitetut paketit menevät hukkaan. Laite ilman liitettyä prosessia voi näyttää linkkilistauksessa terveeltä, vaikka se ei välitä mitään.

Mitä rajapinnan nimi ei voi luvata

Rajapinnan nimi ei kerro salauksesta tai todennuksesta mitään. Ohjelma voi kääriä paketit TLS:ään, omaan protokollaan, IPseciin tai ei mihinkään. TUN:n valitseminen TAP:n sijaan muuttaa kehystystä rajalla, ei turvasuunnittelua. Kehystyksen valinta on todellinen, ja se on paljon pienempi kuin turvallisuuskysymys.

Tunnistus toimii samalla tavalla: tarkkailija näkee johdolla ulomman protokollan, ei tarraa, joka kertoisi minkä paikallisen laitteen se tuotti. Tunneli, joka näyttää joltain muulta, tekee niin ulomman protokollansa vuoksi, ei rajapintansa nimen vuoksi. Tarkkailija ei näe, mikä paikallinen laite paketin tuotti, vain miltä paketti näyttää. Pidä nämä kaksi kysymystä erillään, kun vertailet tuotteita, sillä yksi vastaus ei koskaan edellytä toista.

Sovita korjaus epäonnistuvaan vaiheeseen

Erota epäonnistumisen vaiheet, kun jotain menee rikki. Puuttuva laite, käyttöoikeusvirhe ja hylätty kirjautuminen tuottavat erilaisia todisteita ja erilaisia korjauksia. Lue ensin paikallinen tila, sitten ohjelman oma loki, sitten vastapuolen näkymä. Lue kaikki kolme ennen kuin muutat mitään.

ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'

Jos laite on olemassa ja prosessi pitää sitä, paikallinen raja toimii ja ongelma on kauempana. Jos laite puuttuu, mikään määrä tunnistetietojen tarkistusta ei auta. Vaihe, jonka voit nimetä, on vaihe, jonka voit testata. TUN/TAP-dokumentaatio kuvaa rajan ja laitemallin.

Aiheeseen liittyvät artikkelit