Kaip užrakinti Linux išėjimą, kad VPN nukritus niekas nenutekėtų
Maršrutizavimas ir filtravimas yra atskiri sprendimai. Užrakinkite išėjimo kabliuką, tada apribokite galinio taško, DNS ir administravimo išimtis, kurių tuneliui reikia norint vėl prisijungti.
Įsivaizduokite namų linijoje esantį medijos grotuvą, kuris į internetą turėtų patekti tik per tunelį. Tuneliui nukritus programėlė turėtų sustoti, o ne tyliai toliau eiti fiziniu sąsaja. Tokio elgesio gavimas yra ugniasienės, o ne maršrutizavimo problema, ir skirtumas svarbus, nes maršrutą galima pakeisti perkraunant tarnybą, o filtras lieka ten, kur jį įdėjote. Toliau pažiūrėsime, kaip paketo kelias iš tikrųjų nusprendžia, o tada kaip apriboti išimtis, kurios leidžia tuneliui vėl prisijungti.
Vietinė išvestis yra kitas kabliukas nei persiuntimas
Paketas, paliekantis įrenginyje veikiančią programėlę, praeina išėjimo kabliuką; paketas, kurį įrenginys maršrutizuoja kitam mazgui, praeina persiuntimą. Politika, kuri mini tik forward, apriboja antrąjį ir palieka pirmąjį visiškai atvirą, todėl daugelis išėjimo užraktų atrodo teisingi ir nieko nedaro. Sąsajos sutapatinimas priklauso tai pačiai taisyklei: oifname "tun0" accept praleidžia srautą, kuris jau buvo maršrutizuotas per tunelį. Maršrutizavimas ir filtravimas taip pat lieka atskiri sprendimai, tad maršrutas į tiekėją gali egzistuoti, kol filtras atmeta paketą. Šiuo atskyrimu jūs ir remiatės.
Šliuzui, kuris persiunčia kitų įrenginių srautą, reikia abiejų kabliukų. Užrakinus tik išvestį, apsaugomas pats įrenginys, o kiekvienas žemiau esantis klientas lieka laisvas nutekėti.
Išimčių sąrašą rašykite nuo galinio taško į išorę
Pradėkite nuo tunelio galinio taško: vienas paskirties adresas arba maža patvirtinta aibė, transporto protokolas ir paskirties prievadas, pavyzdžiui udp dport 1194 ip daddr 203.0.113.7 accept. Jei klientas išsprendžia mazgo vardą, pradiniam DNS apsikeitimui reikia savo taisyklės, apribotos rezolveriu ir 53 prievadu, o ne bendro leidimo to rezolverio adresui. Kiekviena išimtis turėtų įvardyti priežastį, dėl kurios ji egzistuoja. Leidimas visam UDP srautui į VPN prievadą apima daug daugiau nei ta viena autentifikuota paslauga, kurią turėjote omenyje.
Pradinis vardų sprendimas yra vieta, kur užraktai dažniausiai supūva. Adresų aibei, atnaujinamai laikmačiu, reikia apibrėžto elgesio, kai atnaujinimas nepavyksta, ir tas elgesys negali būti linijos atidarymas, kol nepavyks. Atnaujinkite per tunelį, kol tunelis stovi, o kitu atveju grįžkite prie paskutinio žinomo sveiko galinio taško.
Vietinei administracijai reikia tokio pat požiūrio. Valdymo potinklis nėra patikimas vien todėl, kad jo adresai privatūs, o taisyklė, kuri juo pasitiki, kviečia antrą kelią aplink užraktą.
Sąsajos sutapatinimas neįrodo sveiko tunelio
Taisyklės, priimančios viską, kas išeina iš tun0, daro prielaidą, kad tos sąsajos paketas atėjo iš tunelio. Sąsajų pavadinimai kuriami iš naujo, o pavadinimas nėra kriptografinė tapatybė. Partneris taip pat gali būti dingęs, kol sąsaja lieka veikti, ir tada taisyklė tampa labai įtikinamu nieko nedarymu.
Ryšių sekimas prideda susijusį spąstą. Plati taisyklė sujungtiems ryšiams atkartoja leidimą, kurį srautas gavo anksčiau, todėl sesija, prasidėjusi prieš tunelio kritimą, veikia ir po jo. Apribokite būsena pagrįstą priėmimą tomis sąsajomis ir adresais, kuriuos tikrai turite omenyje, antraip pastatėte užraktą, kuris atsidaro pats. Įvesties ir išvesties taisyklės taip pat atsako į skirtingus klausimus, o vienos grūdinimas ignoruojant kitą palieka įrenginį pasiekiamą ta kryptimi, apie kurią negalvojote.
Kas išlieka po tarnybos strigties
Filtras, kurį įdiegia scenarijus, paleidžiamas po to, kai tunelis pakyla, dingsta kartu su tuneliu, būtent tą akimirką, kai jo prireikė. Įkelkite užraktą paleidžiant sistemą ir leiskite tarnybai valdyti tik savo išimtis.
Numatytojo maršruto trynimas taip pat ne pakaitalas. Maršrutas yra būsena, kurią tarnyba valdo ir perrašo, o jį pašalinus galima netekti kelio, reikalingo vėl prisijungti. IPv6 reikia savo plano, nes kaimynų aptikimas ir maršrutizatoriaus skelbimai yra jungties paslaugos, kurios turi veikti toliau, kol įprastas srautas blokuojamas. DHCP priklauso tai pačiai kategorijai. Užrašykite tai kaip išimtis su tikslu, o ne atraskite vėliau kaip trikdžius.
Atkūrimo kelias prieš diegimą
Išbandykite užraktą taip, kaip jis suges: paleiskite be tunelio, nuzudykite tarnybą, pakeiskite galinį tašką ir prisijunkite iš naujo. Kiekvienu atveju programėlės turėtų sustoti, o atkūrimo kanalas likti veikiantis. Darykite tai iš konsolės, nes nuotolinis apvalkalas yra sesija, kurią labiausiai tikėtina užrakins jūsų pačių taisyklė.
Tada patikrinkite, kur įprasta programėlė dar gali patekti, naudodami nekenksmingą paskirties vietą ir užklausą, kurią galite patikrinti. Norimas rezultatas yra atmetimas linijoje ir sėkmė per tunelį, o ne dviprasmis laukimo laikas, galintis reikšti bet ką. Laikykite taisyklių rinkinį pas tą patį savininką kaip ir likusią ugniasienę, o ne pakeiskite visą lentelę iš apvalkalo scenarijaus. Politika, kurioje kiekvienas leidimas gali save pateisinti, verta daugiau nei ilgas taisyklių rinkinys, kurio niekas negali paaiškinti.