Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string

[es] :: Linux/UNIX serveri i servisi :: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string

[ Pregleda: 2153 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nothingman

Član broj: 31375
Poruke: 308
*.static.ikomline.net.



+112 Profil

icon Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string19.04.2008. u 17:47 - pre 195 meseci
Kao prvo, izvinjavam se sto ovo postavljam u cekaonicu, ali ne znam na koji bih forum postavio. Tema bi najbolje "legla" u "Network programming" (nevezano za bilo koji programski jezik) ali takva ne postoji trenutno. Takodje mozda postoje vec gotova softverska resenja, pa onda tema ne mora da bude vezana za programiranje, vec za upotrebu softvera.

Problem je sledeci:

Rec je o klijent/server aplikaciji koja u sebi sadrzi i jednostavni chat. Korisnici se putem klijenta konektuju na server iz raznih delova sveta, i izmedju ostalog tamo i chatuju. Chat je u aplikaciji lose odradjen, tako da ako posaljete tacno odredjeni string serveru svi klijenti koji ga prime dozive neku vrstu buffer overflow-a koja zamrzne klijentsku aplikaciju. Klijent i server komuniciraju putem TCP protokola.
Mene interesuje najbolji nacin da se "zakacim" izmedju svog klijenta i servera (da osluskujem odredjeni port) i u paketima koji mi stizu trazim dati string (ili neki pattern). Ako paket u sebi ne sadrzi string (ili pattern) onda propustim paket klijentu, a ako ga sadrzi onda da uradim nesto sa njim (npr. da javim serveru da je primljen, a da sam paket odbacim, ili da izmenim string u paketu i propustim ga klijentu).

Nemam mnogo iskustva sa mreznim programiranjem, ali poznajem neke osnove. Svi saveti i linkovi odakle mogu da saznam vise o ovoj temi su dobrodosli. Takodje ako postoje gotova resenja za ovakve stvari ona bi bila vise nego pozeljna.

Hvala unapred.

Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
 
Odgovor na temu

Nothingman

Član broj: 31375
Poruke: 308
*.static.ikomline.net.



+112 Profil

icon Re: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string19.04.2008. u 19:51 - pre 195 meseci
Evo, mislim da sam uspeo da nadjem jedno resenje vezano za linux.

http://wiztelsys.com/Article_iptables_bob2.html

Nisam probao jos, ali to mi daje najprostiju opciju, tj. da eliminisem sve pakete sa zelejenim stringom vec na nivou kernela.
Sada me zanimaju i resenja koja mi omogucavaju da specifiram zeljenu akciju ako je pronadjen dati string u paketu. Npr. da prepravim paket i pustim ga da prodje, ili da dam odredjeni odgovor serveru (npr. da posaljem komandu koja kikuje usera koji je poslao maliciozni string, a podrazumeva se da imam moderatorske privilegije u tom trenutku).
Nadam se da nisam previse zakomplikovao :)
Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string19.04.2008. u 20:31 - pre 195 meseci
Kao sto si i sam rekao, iptables radi na sistemskom nivou. Ako mozes mjenjati pakete sa iptables-om (nisam to nikad radio, mozda je moguce) - to je ono sto ti treba.
Sve ostalo je komplikovano, tj trebao bi imati aplikaciju koja bi se uvalila prije servera (znaci opet na sistemskom nivou) i koja bi za odredjene vrste paketa radila njihovu modifikaciju. Nije to ni malo jednostavno, a ne znam da postoji nesto gotovo.
Pokusaj sa iptables, ali najbolje ti je da jednostavno dropujes taj paket i to je to. Pusti osvetu :)

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

Nothingman

Član broj: 31375
Poruke: 308
*.static.ikomline.net.



+112 Profil

icon Re: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string20.04.2008. u 13:40 - pre 194 meseci
Hvala na odgovoru. Drug mi sinoc reche da iptables osim dropa moze i da forwarduje pakete kada nadje odredjeni string. Tako da cu da ga podesim da umesto da dropuje pakete, da ih posalje mojoj aplikaciji, koja ce iz istih da izvuce user id i da posalje serveru paket koji ga kikuje. :)

Pozdrav.
Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string20.04.2008. u 17:01 - pre 194 meseci
Super rjesenje, nadam se da ces uspjeti. Jedini problem koji vidim tu je da li ces moci da identifikujes korisnika na osnovu sadrzaja paketa. Nemoj se bazirati na IP adresi jer moze vishe korisnika da je ima istu. Javi sta si napravio.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

[es] :: Linux/UNIX serveri i servisi :: Filtriranje TCP/IP paketa koji u podacima imaju odredjeni string

[ Pregleda: 2153 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.