Shtimi i një rregulli refuzimi dhe shikimi i një shkarkimi të hapur që vazhdon nuk është gabim i UFW. Rregulli që shtuat qëndron pas rregullave që e kanë pranuar tashmë këtë rrjedhë, dhe një lidhje e vendosur më parë vazhdon t'u përgjigjet atyre. Rregullimi do të thotë futje në pozicionin e duhur dhe kuptim i asaj që premtojnë rregullat e mëparshme. Versioni i ngushtë i këtij ndryshimi është ai që vijon.

Vendos radha, jo ekzistenca e rregullit

UFW është një ndërfaqe që i shkruan rregullat e netfilter-it në faza: një seksion kornize që ekzekutohet para rregullave të përdoruesit, pastaj vetë rregullat e përdoruesit, pastaj një seksion që ekzekutohet pas tyre. Rregullat standarde para pranojnë trafikun e lidhjeve të vendosura dhe të lidhura, dhe ato rregulla vlerësohen para çdo gjëje që shtoni me allow ose deny të zakonshëm. Referenca e komandave të UFW dokumenton sintaksën e futjes dhe pamjen e numëruar të gjendjes nga të cilat varet ky ndryshim.

Kjo radhë e shpjegon surprizën. Rregulli juaj i ri është i vërtetë dhe ndodhet në tabelën e duhur, por nuk është vendimi i parë që takon paketa. Një lidhje që tashmë gjurmohet si e vendosur nuk arrin kurrë deri tek ai.

Për këtë punë përdorni rregulla route, sepse paketa përçohet përmes portës në vend që t'i adresohet shërbimeve të vetë portës. Një rregull hyrjeje do të filtronte trafikun e gabuar dhe do të dukej sikur nuk bën asgjë.

Futeni mbi lejen e gjerë

Parapamjeni futjen përpara se ta zbatoni dhe konfirmoni që rregulli nuk ekziston tashmë diku tjetër në listë. Dublimi i një politike identike e bën heqjen e mëvonshme të paqartë, dhe kush heq kopjen e gabuar nuk do ta vërë re për javë të tëra.

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

Nëse parapamja tregon saktësisht një rregull në pozicionin që prisni, zbatoni të njëjtën komandë pa flamurin dry-run. Pozicioni 1 e vendos atë mbi lejet më të gjera të përdoruesit, jo mbi rregullat e kornizës të shqyrtuara më parë. Konfirmoni që emri i ndërfaqes përputhet me pajisjen e tunelit në këtë portë, sepse një rregull i lidhur me një ndërfaqe që nuk ekziston më do të qëndrojë në listë dhe do të duket i saktë pa u përputhur me asgjë. Riemërtoni referencën e pajisjes përpara zbatimit, jo pasi testi dështon.

Në atë rregull nuk shfaqet asnjë port destinacioni, prandaj ai refuzon çdo port TCP në atë adresë e jo vetëm HTTPS. Nëse qëllimi është një shërbim i vetëm, emërtoni portin; një rregull më i gjerë se politika është një incident i ardhshëm që pret lexuesin e tij të parë.

Kufizoni burimin në një adresë të vetme vetëm nëse ajo adresë është e lidhur me identitetin e synuar. Një pishinë VPN me caktim dinamik mund t'i japë të njëjtën adresë një klienti tjetër nesër, dhe refuzimi do të ndjekë adresën, jo personin.

Rrjedhat e vendosura i mbijetojnë rregullit të ri

Gjurmimi i lidhjeve është arsyeja pse sesioni ekzistues vazhdon. Pasi një rrjedhë regjistrohet si e vendosur, rregullat para pranojnë paketat e saj para se të konsultohet refuzimi juaj, dhe transferimi përfundon sikur të mos ketë ndryshuar asgjë. Prandaj testimi me një shfletues që ripërdor një lidhje të hapur nuk ju thotë asgjë për politikën e re. Një refuzim mund të duket i padobishëm minuta pas vendosjes dhe plotësisht efektiv për përdoruesin tjetër që lidhet.

Nëse kërkesa përfshin prerjen e trafikut të drejtpërdrejtë, ky ndryshim i rregullit të përdoruesit nuk mund ta ofrojë atë. Anulimi i gjendjes së gjurmuar është një veprim i veçantë me rrezen e vetë të ndikimit, dhe i përket pronarit të murit të zjarrit e jo atij që shtoi rregullin. Zbrazja e të gjitha lidhjeve në një portë që një sesion të zhduket është lloji i rregullimit që gjeneron një incident të dytë.

Mbani mend edhe kufijtë. Ky rregull nuk thotë asgjë për ICMP, UDP ose IPv6, prandaj një ping i suksesshëm nuk është provë që refuzimi dështoi. As një adresë IPv4 nuk është faqe interneti: një emër mund të zgjidhet në disa adresa, dhe është e mbuluar vetëm ajo që emërtuat.

Testoni me një rrjedhë të re

Lexoni rregullat e numëruara të përdoruesit dhe pamjen e papërpunuar efektive, pastaj hapni një lidhje të re nga klienti i zgjedhur:

sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail

Pamja e papërpunuar ka rëndësi sepse status i lë jashtë rregullat e kornizës të shkruara me dorë, prandaj radha mund të duket ndryshe nga ajo që zbaton kerneli. Krahasoni të dyja përpara se të arrini në përfundimin se një rregull është në vendin e gabuar.

Pastaj kontrolloni dy kontrollet që vërtetojnë se rregulli është i ngushtë dhe jo i gjerë: një destinacion i lejuar nga i njëjti klient funksionon ende, dhe një klient i dytë ende arrin destinacionin e refuzuar nëse politika e tij e lejon. Një refuzim që thyen të dyja testet është ndryshim politike, jo masë e synuar.

Kur testi të mbarojë, hiqni vetëm rregullin që shtuat, duke e përsëritur saktësisht. Nëse politika është e përhershme, dorëzojeni te pronari i murit të zjarrit me identitetin e klientit, pronarin e destinacionit dhe një datë rishikimi, që një adresë tuneli e ricaktuar të mos lërë pas një refuzim të vjetëruar.

Artikuj të ngjashëm