Lüüs majutab oma halduslehte: sisemine või avalik aadress
VPN-lüüsil endal asuv teenus vajab sisemist sissepääsu, milleni tunnel ulatub. Avaldage see privaatselt ja kinnitage seejärel, et avalik kuulaja pole enam avatud.
Haldusleht vastab mobiilse andmeside telefonist ja aegub VPN-iga liitunud sülearvutist. Tunnelis pole midagi katki, sest päring ei jõua kunagi sellesse. Hosti nimi lahendatakse lüüsi avalikuks aadressiks ja see aadress on kättesaadav ainult väljastpoolt tunnelit, mille see lõpetab. Selle parandamine tähendab teenusele privaatse sissepääsu andmist, mitte välimise lõpp-punkti liigutamist.
Leht laaditakse väljast, mitte tunneli kaudu
Võrreldakse kahte erinevat päringut. Mobiilse andmeside kaudu jõuab brauser avaliku aadressini otse. Tunneli seest lahendatakse sama nimi samaks avalikuks aadressiks ja pakett peab nüüd tunnelist välja minema, et jõuda aadressini tunneli enda kaugemal küljel. Sama nimi, sama aadress, kaks väga erinevat asukohta.
Sihtkohta marsruut valib aadressi, mitte porti. Marsruutimistabelis ei tea miski, et port 443 on haldamiseks ja port 1194 on transport, seega koheldakse mõlemat sama sihtkohana.
Seepärast leht mõnikord töötab ja mõnikord mitte, sõltuvalt sellest, millist nime ja millist võrku klient kasutas. See on tee probleem, mitte autentimise probleem. Mõlemad kliendid autentivad täiesti korralikult.
Hoidke välimine lõpp-punkt kättesaadav
Täistunneli profiilid vajavad VPN-i lõpp-punkti jaoks erandmarsruuti ja OpenVPN-i redirect-gateway valik dokumenteerib täpselt seda: kauglõpp-punkt hoiab marsruudi läbi varem olemasoleva lüüsi, et tunnel ei marsruudiks iseendasse. Eemaldage see erand ja krüptitud transport järgib tunnelit, mis lõpetab seansi silmus. Just see erand on põhjus, miks lõpp-punkti aadress jääb tunneli seest kättesaadavaks.
Tagajärg on see, et avalik aadress jääb kliendist kättesaadavaks, mistõttu brauseri päring sellele aadressile võib järgida sama erandit ja väljuda ilma tunnelisse sisenemata. Erand teeb oma tööd ja nimi teeb kahju.
Enne millegi muutmist lugege marsruudi otsust, mitte liideste loendit. Allolevad käsud trükivad otsuse, mitte inventuuri. Käivitage need kliendist, mis ebaõnnestus.
ip -4 route get 203.0.113.77
ip -4 rule show
ip -4 route show table allKui otsing näitab lõpp-punkti marsruuti läbi füüsilise lüüsi, on käitumine õige ja haldusleht saadetakse lihtsalt vale teed. See on punkt, kus nimelahendusest saab parandus.
Andke teenusele privaatne nimi
Teenus vajab nime, mis lahendatakse tunneli sees lüüsi aadressiks, säilitades samal ajal sertifikaadi ja hostinime semantika, mida rakendus ootab. Privaatne tsoonikirje haldusnime jaoks on tavaline vastus, ja see jätab transpordi nime puutumata.
Ärge suunake transpordi nime sisemisele aadressile, sest järgmine tunneli loomine üritaks siis jõuda aadressini, mis eksisteerib ainult tunneli sees. See viga annab VPN-i, mis töötab täpselt üks kord.
Kontrollige ka mõlemat aadressipere, sest maha jäetud AAAA-kirje võib saata brauseri sinna, kuhu privaatne plaan kunagi ei ulatunud.
dig +short admin.hq.internal
dig +short -t AAAA admin.hq.internal
curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://admin.hq.internal/Sobitage poliitika sellega, kus protsess töötab
Lüüsil kuulavat natiivset protsessi saab kätte kohaliku sisendi tee kaudu, seega otsustavad sisendiahel ja soketi sidumine, kas päring võetakse vastu. Edastusreeglid ja IP-edastus ei pane kohalikku kuulajat vastama. Lubage tunneli allikad sisendipoliitikas ja kinnitage, et protsess on seotud aadressiga, milleni tunnel ulatub.
Hostipordil avaldatud konteiner järgib teist teed, sest pakett tõlgitakse sihtkoha järgi ja edastatakse. See päring kohtab hosti edastuspoliitikat ja Dockeri enda reegleid, mistõttu töötav natiivne kuulaja võib eksisteerida kõrvuti konteineriga, mis sama porti keeldub.
Käivitamise järjekord on oluline mõlemal juhul, sest sidumine aadressiga, mis ilmub alles pärast tunneli tõusmist, ebaõnnestub alglaadimisel vaikselt.
Kontrollige privaatset juurdepääsu ja keelatud avalikku teed
Tehke värske nimega päring volitatud kliendist, jättes rakenduse enda identiteedikontrollid puutumata. Seejärel proovige sama teenust väljastpoolt tunnelit ja kinnitage, et see ei vasta. Privaatne nimi on mugavus, mitte piirang, ja avaliku aadressiga veel seotud kuulaja on endiselt paljastatud. Just selle viimase kontrolli jätavad enamik ülevaateid vahele.
Lugege sidumisi ja filtri olekut, mitte hostinime, mille kasutajad said. Paljastatus on soketi omadus, mitte nime oma. See erinevus elab üle iga DNS-i muudatuse.
ss -lntp | grep ':443'
nft list ruleset | grep -n 443
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://203.0.113.77/Kui sisemine päring tagastab lehe ja välimine päring aegub, on teenusel üks sihilik privaatne tee ja transport jääb kättesaadavaks. Kui välimine päring vastab endiselt, tuleb kuulajat või avaldatud konteineri kirjet kitsendada, enne kui keegi kirjeldab teenust ainult sisemisena.