jak bloknout kazu?

David Rohleder davro na ics.muni.cz
Úterý Říjen 29 21:42:45 CET 2002


jarda na egerius.cz (Jaroslav Jirásek) writes:

> Tak mam funkcni blok kazy.
> Snifferem jsem si zjistil, jak se lisi komunikace weboveho prohlizece
> a Kazy. Webovy prohlizec nejdrive posle kratky paket
> se syn priznakem, pak druhy (taky kratky - 60 bytu) - ma nastaveny
> priznak pouze acknowledgment a konci DLC: frame padding = 6 bytes

Obecne bych rekl, ze toto je standardni zpusob navazovani TCP
spojeni. DLC: frame padding podle mne znamena, ze IP stack vyslal
paket, ktery je po zabaleni L2 hlavickami mensi nez 64B, takze se musi
doplnit do minimalni delky.

> (vubec nevim, co znamena, vite to nekdo?). Pak posle paket s priznakem
> acknowledgment a push, ktery uz ma v sobe pozadavek GET. Komunikace
> konci paketem s nastavenym priznakem reset.

Ano, spravne, to je ukonceni TCP spojeni :-) Pouze ten push tam nemusi
byt vzdycky a IMHO zalezi na OS, jestli ho tam bude cpat nebo ne.

> Kazaa to dela stejne, ale treti paket nema v sobe GET ci HTTP, ale byty
> ruznych
> hodnot, kterym rozumi jen ona sama.
> 
> Mimochodem kazaa nepouziva zadny centralni server (IMHO, tomu jsem
> samozrejmne
> venoval ze zacatku nejvice casu, kdyby ho pouzivala, pak by blok byl
> trivialni).
> 
> Takze jsem udelal takovato pravidla:
> 
> iptables -A FORWARD -s x.x.x.0/24 -d 0/0 -p tcp --dport 80 --syn -j
> ACCEPT

citelnejsi je pouzit --state NEW

> iptables -A FORWARD -s x.x.x.0/24 -d 0/0 -p tcp --dport 80 --tcp-flags
> SYN,ACK,PSH,FIN,RST ACK -j ACCEPT

tady by asi slo pouzit --state ESTABLISHED

> iptables -A FORWARD -s x.x.x.0/24 -d 0/0 -p tcp --dport 80 --tcp-flags
> SYN,ACK,PSH,FIN,RST RST -j ACCEPT
> iptables -A FORWARD -s x.x.x.0/24 -d 0/0 -p tcp --dport 80 -m
> string --string "GET" -j ACCEPT
> iptables -A FORWARD -s x.x.x.0/24 -d 0/0 -p tcp --dport 80 -m
> string --string "HTTP" -j ACCEPT
> 

Tato pravidla by se asi nejakym sikovnym zpusobem dala obejit, ale to
ve vasem pripade asi nebude prilis urgentni.

> Je nutne pridat do jadra podporu pro filtrovani paketu dle stringu. Alespon
> do redhatu
> 7.2 a 7.3. Pro jadra redhatu 7.2 (2.4.18-17.7.x) a 7.3 (2.4.18-3) mam
> prelozeny moduly,
> ipt_string.o a libipt_string.so pro iptables, muzu je zaslat.
> 
> Pisu to proto, abych pripadne nekomu pomohl, a take aby pripadne nejaky guru
> rekl
> ze ta pravidla blokuji vice, nez by mela, coz bych samozrejmne nechtel a
> musel bych
> je prepracovat.
> 
> Jako dalsi krok chci vymezit nejakou sirku pasma pro pakety, ktere neprojdou
> pravidly.
> Nechci je tedy zahazovat, ale zpomalit je. Zatim vubec nevim, jak to budu
> delat.
> 

oznackovat pakety pomoci fw_mark a pak je strkat do spravne vystupni
CBQ fronty.


-- 
-------------------------------------------------------------------------
David Rohleder						davro na ics.muni.cz
Institute of Computer Science, Masaryk University
Brno, Czech Republic
-------------------------------------------------------------------------


Další informace o konferenci Linux