Mit tesz a TUN, és mit kell még tennie a VPN-protokollnak
A TUN IP-csomagokat mozgat a kernel és egy program között. A szállítás, a hitelesítés és a titkosítás ahhoz a protokollhoz tartozik, amelyet az a program beszél.
A tun0 és a VPN-protokoll egyetlen dologként kezelése rossz naplóhoz vezeti az embereket. A felület helyi határ, ahol egy felhasználói térben futó program IP-csomagokat cserél a kernellel. A protokoll az, amit a program a csomagokkal tesz, miután megkapta őket: szállítás, hitelesítés, titkosítás és egy partner. Az eszköz létrehozása ezek közül egyiket sem választja ki.
Két komponens, egy csomagútvonal
A kernel IP-csomagot ír az eszközbe, a program pedig fájlleíróból olvassa ki. A másik irányban a program visszaír egy csomagot, és a kernel úgy irányítja, mintha valódi interfészen érkezett volna. A TUN IP-t szállít, a TAP viszont Ethernet-kereteket. A csomag olvasása ezen a határon megmutatja a keretezést, és az eszköz pontosan erre való.
Minden, ami e határon túl van, a program dolga. Két program ugyanazt az interfészfogalmat használhatja, és teljesen különböző dolgokat tehet a csomagokkal. Magának az eszköznek nincs véleménye arról, mi történik ezután. A fájlleíró az egyetlen fogantyú, amellyel a program a kernel oldalán rendelkezik.
Hozza létre az eszközt, aztán figyelje a határt
Szándékosan hozzon létre eszközt, amikor a határt teszteli. A tartós eszköz túléli a létrehozó folyamatot, ami hasznos a kísérletekhez, és később gyakori zavarforrás. Ellenőrizze a jelzőket és a tulajdonost, mielőtt a VPN-t hibáztatná.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9A kapcsolat részletei megmutatják az eszköz típusát és a hozzá tartozó tulajdonost. Ha egyetlen folyamat sem tartja nyitva, a beleírt csomagok sehová nem jutnak. A folyamat nélküli eszköz egészségesnek tűnhet egy kapcsolatlistában, miközben semmit nem továbbít.
Amit az interfész neve nem ígérhet
Az interfész neve semmit nem mond a titkosításról vagy a hitelesítésről. Egy program becsomagolhatja a csomagokat TLS-be, saját protokolljába, IPsecbe vagy semmibe. A TAP helyett a TUN választása a határon lévő keretezést változtatja meg, nem a biztonsági tervet. A keretezés választása valós, és sokkal kisebb a biztonsági kérdésnél.
Az észlelés ugyanígy működik: egy megfigyelő a külső protokollt látja a vezetéken, nem egy címkét, amely megmondaná, melyik helyi eszköz állította elő. Egy másnak látszó alagút a külső protokollja miatt ilyen, nem az interfésze neve miatt. A megfigyelő nem láthatja, melyik helyi eszköz állította elő a csomagot, csak azt, hogyan néz ki a csomag. Tartsa külön ezt a két kérdést, amikor termékeket hasonlít össze, mert az egyik válasz soha nem jelenti a másikat.
A javítást a meghiúsuló szakaszhoz igazítsa
Amikor valami elromlik, válassza szét a hiba szakaszait. A hiányzó eszköz, a jogosultsági hiba és az elutasított bejelentkezés különböző bizonyítékokat és különböző javításokat ad. Először a helyi állapotot olvassa, aztán a program saját naplóját, aztán a partner nézetét. Mindhármat olvassa el, mielőtt bármit megváltoztat.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Ha az eszköz létezik, és egy folyamat tartja, a helyi határ működik, és a probléma távolabb van. Ha az eszköz hiányzik, a hitelesítő adatok bármilyen ellenőrzése sem segít. Az a szakasz, amelyet meg tud nevezni, tesztelhető szakasz. A TUN/TAP dokumentáció leírja a határt és az eszközmodellt.