Pridėti draudimo taisyklę ir matyti, kad atsisiuntimas tęsiasi, nėra UFW klaida. Jūsų pridėta taisyklė stovi po taisyklių, kurios jau priėmė tą srautą, o anksčiau užmegztas ryšys ir toliau joms atitinka. Tai pataisyti reiškia įterpti tinkamoje vietoje ir suprasti, ką žada ankstesnės taisyklės. Siauresnė to pakeitimo versija pateikiama toliau.

Sprendžia tvarka, o ne taisyklės egzistavimas

UFW yra sąsaja, kuri netfilter taisykles rašo etapais: karkaso sekcija, paleidžiama prieš naudotojo taisykles, tada pačios naudotojo taisyklės, tada sekcija, paleidžiama po jų. Standartinės ankstesnės taisyklės priima nusistovėjusių ir susijusių ryšių srautą, ir tos taisyklės vertinamos prieš bet ką, ką pridedate įprastu allow arba deny. UFW komandų žinynas dokumentuoja įterpimo sintaksę ir numeruotą būsenos rodinį, nuo kurių priklauso šis pakeitimas.

Ši tvarka paaiškina netikėtumą. Jūsų nauja taisyklė yra tikra ir yra teisingoje lentelėje, bet ji nėra pirmasis sprendimas, kurį sutinka paketas. Ryšys, jau sekamas kaip nusistovėjęs, niekada jos nepasiekia.

Šiam darbui naudokite route taisykles, nes paketas perduodamas per tinklų sietuvą, o ne adresuojamas jo paties paslaugoms. Įvesties taisyklė filtruotų netinkamą srautą ir atrodytų nieko nedaranti.

Įterpkite virš plataus leidimo

Peržiūrėkite įterpimą prieš jį taikydami ir patikrinkite, ar taisyklės jau nėra kur nors kitur sąraše. Vienodos politikos dubliavimas vėlesnį pašalinimą padaro dviprasmišką, o neteisingą kopiją pašalinęs žmogus to nepastebės savaitėmis.

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

Jei peržiūra rodo tiksliai vieną taisyklę laukiamoje vietoje, taikykite tą pačią komandą be dry-run vėliavėlės. 1 pozicija ją padeda virš platesnių naudotojo leidimų, o ne virš anksčiau aptartų karkaso taisyklių. Patikrinkite, ar sąsajos pavadinimas atitinka šio tinklų sietuvo tunelio įrenginį, nes taisyklė, susieta su sąsaja, kurios nebėra, liks sąraše ir atrodys teisinga, tačiau nieko neatitiks. Pervadinkite įrenginio nuorodą prieš taikydami, o ne po to, kai testas nepavyksta.

Šioje taisyklėje nėra paskirties prievado, todėl ji draudžia visus TCP prievadus nurodytu adresu, o ne tik HTTPS. Jei ketinimas yra viena paslauga, įvardykite prievadą; taisyklė platesnė už politiką yra būsimas incidentas, laukiantis pirmojo skaitytojo.

Apribokite šaltinį vienu adresu tik jei tas adresas susietas su numatytu tapatumu. VPN telkinys su dinaminiu priskyrimu rytoj gali duoti tą patį adresą kitam klientui, ir draudimas seks adresą, o ne asmenį.

Nusistovėję srautai išgyvena naują taisyklę

Ryšių sekimas yra priežastis, kodėl esama sesija tęsiasi. Kai srautas užregistruojamas kaip nusistovėjęs, ankstesnės taisyklės priima jo paketus dar prieš patikrinant jūsų draudimą, ir perdavimas baigiasi taip, tarsi niekas nepasikeitė. Todėl bandymas naršykle, kuri pakartotinai naudoja atvirą ryšį, nieko nepasako apie naują politiką. Draudimas gali atrodyti bevertis praėjus minutėms po įdiegimo ir būti visiškai veiksmingas kitam besijungiančiam naudotojui.

Jei reikalavimas apima gyvo srauto nutraukimą, šis naudotojo taisyklės pakeitimas to negali užtikrinti. Sekamos būsenos atšaukimas yra atskiras veiksmas su savo poveikio spinduliu, ir jis priklauso ugniasienės savininkui, o ne tam, kas pridėjo taisyklę. Visų ryšių išvalymas tinklų sietuve, kad viena sesija išnyktų, yra tas taisymas, kuris sukuria antrą incidentą.

Nepamirškite ir ribų. Ši taisyklė nieko nesako apie ICMP, UDP ar IPv6, todėl sėkmingas ping neįrodo, kad draudimas nepavyko. Vienas IPv4 adresas taip pat nėra svetainė: vardas gali išspręsti į kelis adresus, ir apimtas tik tas, kurį įvardijote.

Išbandykite su nauju srautu

Perskaitykite numeruotas naudotojo taisykles ir veiksmingą neapdorotą rodinį, tada atidarykite naują ryšį iš pasirinkto 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

Neapdorotas rodinys svarbus, nes status praleidžia ranka rašytas karkaso taisykles, todėl tvarka gali atrodyti kitaip nei tai, ką vykdo branduolys. Palyginkite abu prieš darydami išvadą, kad taisyklė yra netinkamoje vietoje.

Tada patikrinkite du valdiklius, įrodančius, kad taisyklė yra siaura, o ne plati: leista paskirtis iš to paties kliento vis dar veikia, o antras klientas vis dar pasiekia uždraustą paskirtį, jei jo politika tai leidžia. Draudimas, sugriaunantis abu bandymus, yra politikos pakeitimas, o ne tikslinga priemonė.

Kai bandymas baigsis, pašalinkite tik tą taisyklę, kurią pridėjote, tiksliai ją pakartodami. Jei politika yra nuolatinė, perduokite ją ugniasienės savininkui su kliento tapatumu, paskirties savininku ir peržiūros data, kad iš naujo priskirtas tunelio adresas nepaliktų pasenusio draudimo.

Susiję straipsniai