On Tue, Oct 17, 2006 at 09:00:15PM +0400, Ed wrote:
> Artem Chuprina wrote:
> 
> >MG> tcp syn proxy проверка валидности (досягаемости начального узла /
> >MG> инструмент при проверке на спуф).
> >
> >Не понял...  Насколько я представляю себе устройство современных NAT'ов,
> >если к тебе прилетел TCP SYN, единственное, как ты можешь проверить
> >досягаемость узла - это (вообще говоря, неоднократно) отправить обратно
> >SYN+ACK и подождать, что пришлют в ответ - продолжение сессии, ICMP
> >чего-нибудь-unreacheable, TCP RST или вообще проигнорируют.  Причем
> >отправить SYN+ACK может только тот сервис, который там висит - у
> >файрвола этот номер не пройдет.
> > 
> >
> 
> я специально посмотрел - единственное правильное, что сказал однофамилец 
> джона. в openbsd pf действиттельно может принимать соединения и отдавать 
> их дальше только после установки соединения.

Да вы начинаете сечь фишку :)

> 
> в принципе интересно, хотя проц должно грузить - но всё равно 
> производительнее будет, чем аналогичное userspace решение. с другой 
> стороны непонятно чем syncookies не нравится - при хорошем флуде 
> syn-пакетами сервер будет работать в общем-то нормально, а synproxy 
> съест процессор и устроит dos.

P.S. проц не грузит. скорее вы просядете по прерываниям к сетевой карте
но! :) в режиме поллинга да еще и с pfsync + carp есть маза разрулить 
гигантские объемы агрессивного трафа кластером PF. (Кстати вот еще о чем можно
поговорить - пример такой реализации синхронизации стейтов между 10ю фаерволами
аля pfsync в линуксе в студию!!!! :) )

при хорошей атаке синкуки вам не помогут
достаточно вспомнить принцип их работы и сколько лажи уже с ними отрыли.

когда очередь syn забита предлагается хешировать новые сины и отправлять синаки
пройдет немало времени пока валидизированному таким механизмом запросу 
удастся прорвется через забитую очередь к приложению а то и при потере ака
со стороны клиента запрос вообще перейдет в 5тое измерение.

кроме того откройте ман tcp - синкуки нарушение протокола и **не** 
рекомендуются.

       tcp_syncookies
              Enable  TCP syncookies.  The kernel must be compiled with 
CONFIG_SYN_COOKIES.  Send out syncookies when the
              syn backlog queue of a socket overflows.  The syncookies feature 
attempts to protect a socket  from  a  SYN
              flood  attack.   This should be used as a last resort, if at all. 
 This is a violation of the TCP protocol,
              and conflicts with other areas of TCP such as TCP extensions.   
It  can  cause  problems  for  clients  and
              relays.   It is not recommended as a tuning mechanism for heavily 
loaded servers to help with overloaded or
              misconfigured  conditions.   For  recommended  alternatives  see  
tcp_max_syn_backlog,  tcp_synack_retries,
              tcp_abort_on_overflow.


**проверьте на практике**.

sysctl -a |grep tcp
net.ipv4.tcp_max_syn_backlog покажет вам ничтожный размер вашей очереди которую 
бесполезно увеличивать. 

Use PF!
OpenBSD PF is your familly's **only** line of deffence. :)

-- 
Matvey Gladkikh


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить