OpenBSD PF better than iptables. Iptables must die.
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
Reply to: