From: yilmaz kemal yüce (ykyuce@hotmail.com)
Date: Sun 30 Mar 2003 - 13:49:11 EEST
Herkese iyi çalışmalar,
ben IP Multicast üzerinde çalışıyorum ve uygulama seviyesi katmanında IP
Multicast'a güvenilirlik kazandırarak bir yerel ağ çoklu yayın protokolü
hazirlamaya uğraşıyorum. Detaylara girmeme gerek yok. Stream tipi soketler
de kullandığım için benim SYN floodunu önlemek amacı ile bir teknik bulmam
gerekli. Mesele daha açık şekilde şöyle : bir sunucu accept ( ) sistem
çağrısı ile bloklanmiş I/O modundaki bir soket ile istemci bağlantısı
bekliyor. accept ( ) ilk gelen ( veya queueda bekleyen bir sonraki ) isteği
kabaca şöyle handle ediyor : ( a ) istemciye SYN_ACK gönderiyor, ( b )
istemci ile aradaki iletişim için yeni soket yaratıyor ve ( 3 ) yeni soket
descriptorunu ve istemcinin host adresini uygulama seviyesine gonderiyor.
Bundan sonra mevcut bir host IP look up tabloma bakıp gelen isteğin beklenen
istemcilerden birinden gelip gelmediğini kontrol etmeliyim. Zira her
bağlantı isteği beklenen istemcilerden birinden gelmeyebilir. Böyle olunca
SYN_ACK'in gönderilmesi, yeni soketin yaratılması ve bunların ardından
kontrol sonucu istemcinin beklenen istemciler listesinde olmamasının sonucu
bir de yaratılan soketin kapatılması işlemi gerekiyor ki bütün bunlar extra
ağ( yaklaşık 10 TCP paketi) ve sistem kaynağı harcaması(CPU ve memory)
anlamına geliyor. Uzatmayayım. FreeBSD'de bir soket opsiyonu ile (
SO_ACCEPTFILTER ) sunucu, gelen bağlantı isteğini gönderen istemcinin host
adres bilgilerine ulaşabiliyor. Böylelikle SYN_ACK göndermeden, soket
yaratmadan ve yaratılan soketin kapatılması işlemine gerek kalmadan istemci
adresi denetlenip uygunsuz ise cevap verilmiyor. Böylelikle SYN flood
engellenmiş oluyor. Linux'te böyle bir opsiyon veya bunu başarmamı
sağlayabilecek bir teknik biliyor musunuz? Yardımlarınız için şimdiden çok
teşekkürler. İyi çalışmalar...
/* Yilmaz Kemal YUCE */
_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE*
http://join.msn.com/?page=features/junkmail