Du įrenginiai turi galiojančius VPN prisijungimo duomenis ir dalijasi vienu sujungtu Ethernet segmentu. Tik vienas iš jų turėtų atsakyti už biuro portalą, o kitas vis dar gali pretenduoti į portalo adresą tame segmente. Tunelis atliko savo darbą: jis autentifikavo abu partnerius ir užšifravo kiekvieną kelią iki serverio. Ko jis nepadarė – nepatvirtino, kuris iš jų valdo paslaugos vardą, ir būtent ši spraga yra priežastis, kodėl portalui vis dar reikia galiojančio sertifikato.

Ką VPN iš tikrųjų autentifikuoja

VPN rankos paspaudimas atsako į vieną klausimą: kuris partneris užbaigė šį tunelį ir su kokia raktų medžiaga. Šis atsakymas galioja kiekvienam partneriui ir kiekvienam ryšiui, ir jis nieko nesako apie paslaugas, kurias tas partneris vėliau teikia. TAP segmente partneris net nėra vienas adresas, nes jis gali pateikti bet kokį MAC ir bet kokį IP, kurį tiltas pasirengęs išmokti. Autentifikavimas sustoja tunelio pabaigoje, o ne programoje.

Atskirkite tris klausimus, o ne sujunkite juos į vieną. Kiekvienas turi savo mechanizmą ir savo gedimo būdą.

QuestionAnswered by
Which peer sent this packet?VPN transport authentication
Which device owns this IPv4 address?ARP, trusted only as far as the segment
Which service am I talking to?Application TLS and hostname validation

Diegimas gali turėti visiškai autentifikuotą tunelį ir visiškai neautentifikuotą paslaugą už jo. Jis taip pat gali turėti patvirtintą sertifikatą priegloboje, kurios antrojo sluoksnio adresą pretenduoja kitas partneris, todėl abi kontrolės turi būti dizaine, o ne viena vietoj kitos. Lentelė yra visas argumentas trijose eilutėse.

ARP bendrame segmente nėra adresų knyga

ARP susieja IPv4 adresą su MAC vietinėje jungtyje ir priima atsakymus iš bet ko toje jungtyje. Leidžiančiame sujungtame segmente partneris gali pretenduoti į adresą, priklausantį kitam įrenginiui, o tiltas perduoda kadrus tam, kas atsakė paskutinis. Kiekvieno kliento kelio iki serverio šifravimas to nekeičia, nes kadrai iššifruojami prieš pasiekiant tiltą. ARP pasitikėjimo riba yra segmentas, o ne tunelis.

Pažiūrėkite, ko priegloba iš tikrųjų išmoko: ip neigh show išvardija dabartinius susiejimus ir jų būseną, o įrašas, kuris normalaus darbo metu kaitaliojasi tarp dviejų MAC adresų, yra simptomas, kurį verta ištirti, o ne ignoruoti. Sveikame mažame segmente tokie įrašai ilgai išlieka stabilūs.

Partnerių izoliavimas ir tilto politika egzistuoja būtent šiam atvejui. Maršrutizuotas dizainas paprastai yra geresnis atsakymas, kai paslauga yra tik IP, o įrenginiai neturi jokios priežasties matyti vienas kito kadrus.

Palikite sertifikato tikrinimą ten, kur yra paslauga

Programos TLS atsako į klausimą, į kurį tunelis negali: ar tai ta paslauga, kurią norėjau pasiekti. Naršyklė tikrina prieglobos vardą pagal sertifikatą, ir šis patikrinimas yra vienintelė grandinės dalis, kuri įvardija portalą, o ne partnerį.

Patikrinkite, ką serveris pateikia, prieš nuspręsdami, kad įspėjimas yra kosmetinis. openssl s_client -connect portal.example.internal:443 -servername portal.example.internal išspausdina grandinę ir subjekto alternatyvius vardus. Jei įvesto vardo šiame sąraše nėra, įspėjimas teisingas ir taisyti reikia sertifikatą. Mokyti naudotojus jį praleisti reiškia veikiančią kontrolę paversti dekoracija.

OpenVPN sujungimo vadovas aprašo Ethernet modelį ir politikos parinktis aplink jį, ir tai yra tinkama nuoroda, ką segmentas turėtų leisti. Perskaitykite jį prieš atlaisvindami tilto taisyklę, nes aprašytas modelis yra tai, ką daro prielaidą kiekvienas aukščiau esantis patikrinimas.

Nuspręskite, ar tie partneriai apskritai turėtų dalytis segmentu

Pigiausias sprendimas paprastai yra nustoti dalytis antruoju sluoksniu, kai reikalavimas yra tik IP pasiekiamumas. Maršrutizuotas VPN suteikia kiekvienam klientui savo adresą, pašalina bendrą transliacijos domeną ir paverčia srautą tarp partnerių politikos sprendimu, o ne numatytuoju. Tada portalas turi vieną adresą, kurį reikia apsaugoti, ir jokių kaimynų, galinčių į jį pretenduoti.

Jei segmentas turi likti, patikrinkite serverio pusės nustatymą, leidžiantį klientams pasiekti vienas kitą: grep -n client-to-client /etc/openvpn/server.conf. Kai jis išjungtas, klientų srautas eina per serverį ir ten gali būti filtruojamas. Kai jis įjungtas, partneriai keičiasi kadrais tiesiogiai per tiltą, o jūsų filtravimo taškai yra tiltas ir prieglobos užkarda.

Užsirašykite, kokiomis apsaugomis kiekviena priegloba iš tikrųjų remiasi: tunelio autentifikavimu, segmento izoliavimu ar programos TLS. Priegloba, kuri remiasi visomis trimis, yra tvarkinga. Priegloba, kuri remiasi pirmąja ir daro prielaidą, kad kitos dvi atėjo su ja, yra ta, kuri galiausiai pateikia neteisingą turinį.

Susiję straipsniai