Занимаясь сетевым программированием выявил неприятное обстоятельство - 90% серверов, что идут по-умолчанию в дистрибах линухов и бсдей, валятся при самой тупой атаке- syn flood. Не совсем syn, правда, а именно полному установлению соединения (syn-(ack,syn)-ack). Особенно валятся те, которые форкаются на каждое соединение.
Выход есть. Нужно пересобирать софт с поддержкой событий.
Для линухов - это ядро 2.6.9+ (2.6.15 я использовал) и epoll.
Для бсдей- это 4.8+ (я 5.1 юзал) и kqueue.
SQUID 3.x - рулит!!!
Вот конфиг, что я юзал для 3-го squid'а (не помню где его нашел, на каком-то забугорном форуме). Младше 3-го не работает.
Linux:
./configure --prefix=/home/squidepoll --enable-epoll --with-aufs-threads=32 --with-descriptors=32768 --with-pthreads --enable-storeio=null,ufs,aufs --disable-poll --disable-select --disable-kqueue
FreeBSD:
./configure --prefix=/home/squidepoll --disable-epoll --with-aufs-threads=32 --with-descriptors=32768 --with-pthreads --enable-storeio=null,ufs,aufs --disable-poll --disable-select --enable-kqueue
В линухах 10000 соединений держит на "ура".