Puncte:0

Cum să blocați punctele "." într-o regulă iptables?

drapel vn

Am această regulă în iptables-ul meu pentru a bloca domeniile care se termină cu .ceas:

sudo iptables -A OUTPUT -j DROP -m string --string ".watch" --algo kmp

Dar problema este că . nu poate fi egalat. Deci linia de mai sus nu se potrivește cu nimic. Dar dacă scot punctul din .ceas la ceas merge bine.

Cum pot bloca punctele "." în regulile iptables?

drapel us
Acesta nu este modul potrivit de a face acest lucru. Dacă vă așteptați să blocați interogările DNS pentru domeniu, nu există puncte care să se potrivească în pachetele de interogări din cauza modului în care este implementat protocolul DNS.
light9876 avatar
drapel vn
Mulțumesc @Tero. Știți o modalitate mai bună de a face acest lucru decât să utilizați „Dnsmasq”?
Puncte:3
drapel jp

Sintactic, acest lucru pare corect, dar abordarea dumneavoastră nu este potrivită pentru acest scop. The petic de sfoară se potrivește cu un șir oriunde în pachet:

  • Arunci orice pachet care are ceas sau .ceas oriunde. Acest lucru este probabil să provoace fals pozitive și chiar să introducă un nou vector pentru atacurile de denial of service.
  • Nu poate gestiona traficul criptat. Nu se poate bloca majoritatea traficului web.
  • Deși aveți opțiuni relativ bune pentru algoritmul de potrivire (bm BoyerâMoore & kmp KnuthâPrattâMorris), utilizarea filtrului de șiruri poate fi încă intensivă în calcul.

Documentația avertizează în mod explicit și împotriva acestui lucru:

Vă rugăm să utilizați această potrivire cu prudență. Mulți oameni doresc să folosească acest meci pentru a opri viermii, împreună cu ținta DROP. Acesta este un major greşeală. Ar fi învins prin orice metodă de evaziune IDS.

Într-o manieră similară, mulți oameni au folosit acest meci ca a înseamnă a opri anumite funcții în HTTP, cum ar fi POST sau GET, prin eliminarea orice pachet HTTP care conține șirul POST. Vă rog să înțelegeți asta această lucrare este mai bine făcută de un proxy de filtrare. În plus, orice HTML conținutul cu cuvântul POST ar fi eliminat cu metoda anterioară. Această potrivire a fost concepută pentru a putea fi pusă în coadă la userland pachete interesante pentru o analiză mai bună, asta-i tot. Aruncarea pachetului pe baza acestui lucru ar fi învins prin orice metodă de evaziune IDS.

Există alternative mai bune pentru ceea ce încercați să realizați:

  • Filtrare bazată pe DNS. Orice server DNS poate face asta. De exemplu., Dnsmasq este un forwarder DNS ușor obișnuit: puteți doar să adăugați adresa=/watch/0.0.0.0 la configurația sa.
  • Filtrare bazată pe proxy web.
light9876 avatar
drapel vn
Mulțumesc. Ceea ce încerc cu adevărat să spun este că `.` nu poate fi blocat. De exemplu, blocarea șirului `"com"` blochează `serverfault.com`; dar utilizarea „".com"` nu blochează același site web.
drapel jp
Pot să înțeleg că.Ceea ce încerc să spun este că ar trebui să încetați să vă îmbunătățiți ciocanul pentru înșurubare și să folosiți în schimb o șurubelniță. :)
light9876 avatar
drapel vn
S-a dovedit că `/etc/hosts.deny` este depreciat. https://askubuntu.com/a/23225
drapel jp
Mulțumiri! Am eliminat asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.