Nova regulo de UFW, malnova konekto: la establita stato venkas
Tempe limigita malpermesa itinregulo de UFW preterlasas trafikon, kiun la antaŭaj reguloj jam akceptis. Vidu, kie enmeti ĝin kaj kion la establita stato ankoraŭ lasas trairi.
Aldoni malpermesan regulon kaj vidi malfermitan elŝuton daŭri ne estas cimo de UFW. La regulo, kiun vi aldonis, staras post reguloj, kiuj jam akceptis la fluon, kaj konekto establita pli frue daŭre kongruas kun ili. Ripari tion signifas enmeti ĝin en la ĝustan pozicion kaj kompreni, kion promesas la pli fruaj reguloj. La mallarĝa versio de tiu ŝanĝo sekvas.
La ordo decidas, ne la ekzisto de la regulo
UFW estas fasado, kiu skribas netfilter-regulojn laŭ etapoj: kadra sekcio, kiu ruliĝas antaŭ la uzantaj reguloj, poste la uzantaj reguloj mem, poste sekcio, kiu ruliĝas post ili. La antaŭaj normaj reguloj akceptas trafikon de establitaj kaj rilataj konektoj, kaj tiuj reguloj estas taksataj antaŭ ĉio, kion vi aldonas per ordinara allow aŭ deny. La komanda referenco de UFW dokumentas la enmetan sintakson kaj la numeritan statusan vidon, de kiuj dependas ĉi tiu ŝanĝo.
Tiu ordo klarigas la surprizon. Via nova regulo estas reala kaj ĝi estas en la ĝusta tabelo, sed ĝi ne estas la unua decido, kiun renkontas la pako. Konekto jam spurita kiel establita neniam atingas ĝin.
Uzu route-regulojn por ĉi tiu tasko, ĉar la pako estas plusendata tra la enirejo anstataŭ adresita al la propraj servoj de la enirejo. Enira regulo filtros la malĝustan trafikon kaj ŝajnos fari nenion.
Enmetu super la vastan permeson
Antaŭrigardu la enmeton antaŭ ol apliki ĝin kaj konfirmu, ke la regulo ne jam ekzistas aliloke en la listo. Duobligi identan politikon igas postan forigon ambigua, kaj la persono, kiu forigos la malĝustan kopion, rimarkos tion nur post semajnoj.
sudo ufw --dry-run route insert 1 deny in on tun0 proto tcp from 10.88.0.55/32 to 192.0.2.88/32
Se la antaŭrigardo montras ekzakte unu regulon en la pozicio, kiun vi atendas, apliku la saman komandon sen la dry-run-flago. Pozicio 1 metas ĝin super la pli vastaj uzantaj permesoj, ne super la kadraj reguloj pritraktitaj pli frue. Konfirmu, ke la interfaca nomo kongruas kun la tunela aparato ĉe ĉi tiu enirejo, ĉar regulo limigita al interfaco, kiu ne plu ekzistas, restos en la listo kaj aspektos ĝusta dum ĝi kongruas kun nenio. Renomu la aparatan referencon antaŭ ol apliki, ne post kiam la testo malsukcesas.
Neniu celloka haveno aperas en tiu regulo, do ĝi malpermesas ĉiun TCP-havenon ĉe tiu adreso anstataŭ nur HTTPS. Se la intenco estas unu servo, nomu la havenon; regulo pli vasta ol la politiko estas estonta okazaĵo atendanta sian unuan leganton.
Limigu la fonton al unu sola adreso nur se tiu adreso estas ligita al la intencita identeco. VPN-baseno kun dinamika asigno povas morgaŭ doni la saman adreson al alia kliento, kaj la malpermeso sekvus la adreson anstataŭ la personon.
Establitaj fluoj postvivas la novan regulon
Konekta spurdo estas la kialo, ke la ekzistanta seanco daŭras. Post kiam fluo estas registrita kiel establita, la antaŭaj reguloj akceptas ĝiajn pakojn antaŭ ol via malpermeso estos konsultita, kaj la transigo finiĝas kvazaŭ nenio ŝanĝiĝis. Tial testado per retumilo, kiu reuzas malfermitan konekton, diras al vi nenion pri la nova politiko. Malpermeso povas aspekti senutila minutojn post lanĉo kaj tute efika por la sekva uzanto, kiu konektiĝas.
Se la postulo inkluzivas tranĉi vivan trafikon, ĉi tiu uzanta-regula ŝanĝo ne povas liveri ĝin. Revoki spuritan staton estas aparta ago kun propra efikradiuso, kaj ĝi apartenas al la posedanto de la fajroŝirmilo, ne al tiu, kiu aldonis la regulon. Forigi ĉiun konekton sur enirejo, por ke unu seanco malaperu, estas la speco de ripeto, kiu generas duan okazaĵon.
Memoru ankaŭ la limojn. Ĉi tiu regulo diras nenion pri ICMP, UDP aŭ IPv6, do sukcesa ping ne estas pruvo, ke la malpermeso malsukcesis. Unu IPv4-adreso ankaŭ ne estas retejo: nomo povas solviĝi al pluraj adresoj, kaj nur la nomita estas kovrita.
Testu per freŝa fluo
Legu la numeritajn uzantajn regulojn kaj la efikan krudan vidon, poste malfermu novan konekton de la elektita kliento:
sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail
La kruda vido gravas, ĉar status preterlasas permane skribitajn kadrajn regulojn, do ĝi povas igi la ordon aspekti alie ol tio, kion la kerno efektivigas. Komparu la du antaŭ ol konkludi, ke regulo estas en la malĝusta loko.
Poste kontrolu la du kontrolojn, kiuj pruvas, ke la regulo estas limigita kaj ne vasta: permesita celloko de la sama kliento ankoraŭ funkcias, kaj dua kliento ankoraŭ atingas la malpermesitan cellokon, se ĝia politiko tion permesas. Malpermeso, kiu rompas ambaŭ testojn, estas politika ŝanĝo, ne celita.
Kiam la testo finiĝos, forigu nur la regulon, kiun vi aldonis, per ekzakta ripeto. Se la politiko estas daŭra, transdonu ĝin al la posedanto de la fajroŝirmilo kun la klienta identeco, la posedanto de la celloko kaj revizidato, por ke reasignita tunela adreso ne lasu malnoviĝintan malpermeson.