Kiel ŝlosi la eliron de Linux tiel, ke nenio likas kiam la VPN falas
Enkursigado kaj filtrado estas apartaj decidoj. Ŝlosu la eligan hokon, poste limigu la esceptojn pri finpunkto, DNS kaj administrado, kiujn la tunelo bezonas por rekonekti.
Imagu medialudilon sur hejma ligo, kiu devus atingi la interreton nur per tunelo. Kiam la tunelo falas, la aplikaĵo devus halti anstataŭ silente daŭrigi trans la fizika interfaco. Akiri tiun konduton estas problemo de fajroŝirmilo, ne de enkursigado, kaj la distingo gravas ĉar itineron povas anstataŭigi restartigo de demono, dum filtrilo restas tie, kie vi metis ĝin. Sekvas kiel la paketa vojo vere decidas, kaj poste kiel limigi la esceptojn, kiuj tenas la tunelon rekonektanta.
Loka eligo estas alia hoko ol plusendado
Paketo, kiu forlasas aplikaĵon sur la maŝino, trapasas la eligan hokon; paketo, kiun la maŝino enkursigas por alia gastiganto, trapasas plusendadon. Politiko, kiu mencias nur forward, limigas la duan kaj lasas la unuan tute malfermita, kaj tial tiom multaj eliraj ŝlusoj aspektas ĝustaj kaj faras nenion. Interfaca kongruigo apartenas al la sama regulo: oifname "tun0" accept pasigas trafikon, kiu jam estis enkursigita tra la tunelo. Enkursigado kaj filtrado ankaŭ restas apartaj decidoj, do suprena itinero povas ekzisti dum la filtrilo rifuzas la paketon. Tiun disigon vi fidas.
Enirejo, kiu plusendas por aliaj aparatoj, bezonas ambaŭ hokojn. Ŝlosi nur la eliron protektas la maŝinon mem kaj lasas ĉiun suban klienton libera liki.
Skribu la liston de esceptoj de la finpunkto eksteren
Komencu ĉe la tunela finpunkto: unu cela adreso aŭ malgranda aprobita aro, la transporta protokolo kaj la cela pordo, ekzemple udp dport 1194 ip daddr 203.0.113.7 accept. Se la kliento solvas gastigantan nomon, la komenca DNS-interŝanĝo bezonas propran regulon limigitan al la solvilo kaj al pordo 53, ne senkondiĉan permeson al la adreso de tiu solvilo. Ĉiu escepto devus nomi la kialon, pro kiu ĝi ekzistas. Permeso por la tuta UDP-trafiko al la VPN-pordo kovras multe pli ol la sola aŭtentigita servo, kiun vi havis en la kapo.
La komenca solvado estas kie ŝlusoj kutime putriĝas. Adresaro, kiu refreŝiĝas per tempigilo, bezonas difinitan konduton kiam la refreŝigo malsukcesas, kaj tiu konduto ne povas esti malfermi la ligon ĝis ĝi sukcesos. Refreŝigu tra la tunelo dum la tunelo staras, kaj alie revenu al la lasta konata sana finpunkto.
Loka administrado bezonas la saman traktadon. Administra subreto ne estas fidinda nur ĉar ĝiaj adresoj estas privataj, kaj regulo, kiu fidas ĝin, invitas duan vojon ĉirkaŭ la ŝluso.
Interfaca kongruigo ne pruvas sanan tunelon
Reguloj, kiuj akceptas ĉion forlasantan tun0, supozas, ke paketo sur tiu interfaco venis de la tunelo. Interfacaj nomoj estas rekreiataj, kaj nomo ne estas kriptografia identeco. La partnero ankaŭ povas esti for, dum la interfaco restas supre, kio faras la regulon tre konvinka neniofaro.
Konekta spurrado aldonas parencan kaptilon. Larĝa regulo por establitaj konektoj ripetas la permeson, kiun fluo akiris pli frue, do seanco komenciĝinta antaŭ la tunela falo daŭras poste. Limigu ŝtatan akcepton al la interfacoj kaj adresoj, kiujn vi vere celas, alie vi konstruis ŝluson, kiu malfermas sin mem. Enigaj kaj eligaj reguloj ankaŭ respondas malsamajn demandojn, kaj plifortigi unu ignorante la alian lasas la maŝinon atingebla en la direkto, kiun vi ne konsideris.
Kio postvivas kraŝon de demono
Filtrilo instalita de skripto, kiu rulas post kiam la tunelo leviĝas, malaperas kun la tunelo, ĝuste en la momento, kiam ĝi estis bezonata. Ŝargu la ŝluson ĉe lanĉo kaj lasu la demonon administri nur siajn esceptojn.
Forigi la defaŭltan itineron ankaŭ ne estas anstataŭaĵo. La itinero estas stato, kiun la demono posedas kaj reskribas, kaj forigi ĝin povas forpreni la vojon necesan por rekonekti. IPv6 bezonas propran planon, ĉar najbara malkovro kaj enkursigilaj anoncoj estas ligaj servoj, kiuj devas daŭre funkcii dum ordinara trafiko estas blokita. DHCP apartenas al la sama kategorio. Skribu ĉi tion kiel esceptojn kun celo, anstataŭ malkovri ilin poste kiel paneojn.
Restaŭra vojo antaŭ deplojo
Testu la ŝluson tiel, kiel ĝi malsukcesos: lanĉu sen tunelo, mortigu la demonon, ŝanĝu la finpunkton kaj rekonektu. Ĉiu kazo devus haltigi la aplikaĵojn kaj lasi la restaŭran kanalon funkcianta. Faru tion de konzolo, ĉar fora ŝelo estas la seanco plej verŝajne ŝlosota fare de via propra regulo.
Poste kontrolu, kion ordinara aplikaĵo ankoraŭ povas atingi, per sendanĝera celo kaj peto, kiun vi povas kontroli. La rezulto, kiun vi volas, estas rifuzo sur la ligo kaj sukceso tra la tunelo, ne ambigua tempolimo, kiu povus signifi ambaŭ. Tenu la regulan aron sub la sama posedanto kiel la resto de la fajroŝirmilo, anstataŭ anstataŭigi la tutan tabelon el ŝela skripto. Politiko, en kiu ĉiu permeso povas pravigi sin, valoras pli ol longa regularo, kiun neniu povas klarigi.