Mida TUN teeb ja mida VPN-protokoll peab veel tegema
TUN liigutab IP-pakette kerneli ja programmi vahel. Transport, autentimine ja krüpteerimine kuuluvad protokollile, mida see programm räägib.
tun0 ja VPN-protokolli üheks asjaks pidamine saadab inimesed vale logi juurde. Liides on lokaalne piir, kus kasutajaruumi programm vahetab kerneliga IP-pakette. Protokoll on see, mida programm pakettidega teeb, kui need käes on: transport, autentimine, krüpteerimine ja partner. Seadme loomine ei vali neist ühtegi.
Kaks komponenti, üks paketitee
Kernel kirjutab IP-paketi seadmesse ja programm loeb selle failideskriptorist. Vastassuunas kirjutab programm paketi tagasi ja kernel suunab selle edasi, nagu oleks see saabunud päris liidesele. TUN kannab IP-d, TAP aga Etherneti kaadreid. Paketi lugemine sellel piiril näitab raamimist ja just selleks seade mõeldud ongi.
Kõik, mis on sellest piirist kaugemal, on programmi asi. Kaks programmi võivad kasutada sama liidese kontseptsiooni ja teha pakettidega täiesti erinevaid asju. Seadmel endal pole mingit arvamust selle kohta, mis järgmisena juhtub. Failideskriptor on ainus käepide, mis programmil kerneli poolel on.
Loo seade ja jälgi siis piiri
Loo seade teadlikult siis, kui piiri testid. Püsiv seade elab üle protsessi, mis selle lõi, mis on kasulik katseteks ja hiljem tavaline segaduse allikas. Kontrolli lippe ja omanikku enne, kui VPN-i süüdistad.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Lingi üksikasjad näitavad seadme tüüpi ja sellega seotud omanikku. Kui ükski protsess ei hoia seda avatuna, lähevad sinna kirjutatud paketid mitte kuhugi. Protsessita seade võib lingiloendis terve välja näha, samal ajal kui see midagi läbi ei lase.
Mida liidese nimi lubada ei saa
Liidese nimi ei ütle krüpteerimise ega autentimise kohta midagi. Programm võib paketid mähkida TLS-i, omaenda protokolli, IPseci või üldse mitte millessegi. TUN-i valimine TAP-i asemel muudab raamimist piiril, mitte turvadisaini. Raamimise valik on tegelik ja see on turvaküsimusest palju väiksem.
Tuvastamine toimib samamoodi: vaatleja näeb juhtmel välist protokolli, mitte silti, mis ütleks, milline lokaalne seade selle tekitas. Tunnel, mis näeb välja nagu midagi muud, teeb seda oma välise protokolli, mitte liidese nime tõttu. Vaatleja ei näe, milline lokaalne seade paketi tekitas, vaid ainult seda, kuidas pakett välja näeb. Hoia need kaks küsimust lahus, kui tooteid võrdled, sest üks vastus ei eelda kunagi teist.
Sobita parandus ebaõnnestuva etapiga
Kui midagi katki läheb, eralda tõrkeetapid. Puuduv seade, õiguste viga ja tagasilükatud sisselogimine annavad erinevaid tõendeid ja erinevaid parandusi. Loe kõigepealt kohalikku olekut, siis programmi enda logi, siis partneri vaadet. Loe kõiki kolme enne, kui midagi muudad.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Kui seade on olemas ja protsess hoiab seda, töötab lokaalne piir ja probleem on kaugemal. Kui seade puudub, ei aita mingi kogus mandaatide kontrolli. Etapp, mida saad nimetada, on etapp, mida saad testida. TUN/TAP dokumentatsioon kirjeldab piiri ja seadme mudelit.