Traktuoti tun0 ir VPN protokolą kaip vieną dalyką žmones nuveda prie netinkamo žurnalo. Sąsaja yra vietinė riba, kur vartotojo erdvės programa apsikeičia IP paketais su branduoliu. Protokolas yra tai, ką ta programa daro su paketais juos gavusi: pervežimas, autentifikavimas, šifravimas ir partneris. Įrenginio sukūrimas nepasirenka nė vieno iš jų.

Du komponentai, vienas paketų kelias

Branduolys įrašo IP paketą į įrenginį, o programa jį nuskaito iš failo deskriptoriaus. Priešinga kryptimi programa įrašo paketą atgal, o branduolys jį maršrutizuoja taip, tarsi jis būtų atėjęs tikra sąsaja. TUN perduoda IP, o TAP – Ethernet kadrus. Paketo skaitymas ties ta riba parodo kadravimą, ir įrenginys būtent tam ir skirtas.

Viskas už tos ribos yra programos reikalas. Dvi programos gali naudoti tą pačią sąsajos sąvoką ir su paketais daryti visiškai skirtingus dalykus. Pats įrenginys neturi nuomonės, kas bus toliau. Failo deskriptorius yra vienintelė rankena, kurią programa turi branduolio pusėje.

Sukurkite įrenginį, tada stebėkite ribą

Kai tikrinate ribą, sąmoningai sukurkite įrenginį. Ilgalaikis įrenginys išlieka po jį sukūrusio proceso, o tai naudinga eksperimentams ir vėliau tampa dažnu painiavos šaltiniu. Prieš kaltindami VPN patikrinkite vėliavėles ir savininką.

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

Nuorodos informacija rodo įrenginio tipą ir prijungtą savininką. Jei joks procesas jo neatidaręs, į jį įrašyti paketai niekur nenueina. Įrenginys be prijungto proceso gali atrodyti sveikas nuorodų sąraše, nors nieko nepraleidžia.

Ko negali pažadėti sąsajos pavadinimas

Sąsajos pavadinimas nieko nesako apie šifravimą ar autentifikavimą. Programa gali apvynioti paketus į TLS, į savo protokolą, į IPsec arba į nieką. Pasirinkus TUN vietoj TAP, keičiasi kadravimas ties riba, o ne saugumo dizainas. Kadravimo pasirinkimas yra realus, ir jis daug mažesnis už saugumo klausimą.

Aptikimas veikia taip pat: stebėtojas mato išorinį protokolą laide, o ne etiketę, sakydama, kuris vietinis įrenginys jį sukūrė. Tunelis, kuris atrodo kaip kažkas kita, toks yra dėl savo išorinio protokolo, o ne dėl sąsajos pavadinimo. Stebėtojas negali pamatyti, kuris vietinis įrenginys sukūrė paketą, tik kaip paketas atrodo. Laikykite šiuos du klausimus atskirai, kai lyginate produktus, nes vienas atsakymas niekada neimplikuoja kito.

Pritaikykite taisymą prie nepavykusio etapo

Kai kažkas sugenda, atskirkite gedimo etapus. Trūkstamas įrenginys, teisių klaida ir atmestas prisijungimas duoda skirtingus įrodymus ir skirtingus taisymus. Pirmiausia skaitykite vietinę būseną, tada pačios programos žurnalą, tada partnerio požiūrį. Perskaitykite visus tris prieš ką nors keisdami.

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

Jei įrenginys egzistuoja ir procesas jį laiko, vietinė riba veikia, o problema yra toliau. Jei įrenginio nėra, joks prisijungimo duomenų tikrinimas nepadės. Etapas, kurį galite įvardyti, yra etapas, kurį galite išbandyti. TUN/TAP dokumentacija aprašo ribą ir įrenginio modelį.

Susiję straipsniai