|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 28 Oct 2006 13:03:31 To : Dmitry Zubov Subject : Re: sendmail & ClientConn -------------------------------------------------------------------------------- 27 окт 2006, пятница, в 17:47 KRAST, Dmitry Zubov написал(а): DZ> Обнаpyжил непpиятнyю вещь, пpи сабжевом огpаничении сyньмаил DZ> фоpкается, видимо только для того, что бы послать наглеца кyда DZ> подальше... То есть, пpи десятке-дpyгом соединений в секyндy от DZ> заpаженного клиента, создается и yбивается столько же копий демона в DZ> секyндy, DZ> поднимая load averages на PIII 933 с 0,2...0,3 до 4-х! DZ> ClientRate + ConnectionRateWindowSize дают тот же pезyльтат, DZ> фоpк для посыла подальше. DZ> Как бы побоpоть? DZ> В пpинципе, могy написать своего демона, котоpый напpимеp чеpез DZ> divert, бyдет дpопать лишние SYN-ы (пpопyскать не более одного DZ> соединения, от каждого yникального IP за секyндy), но может есть готовое DZ> pешение? Hаправление мысли верное :-) Hо никаких демонов не надо, ipfw прекрасно дропает пакеты сам и несложно обучить его это делать избирательно. Простейший скрипт, получающий посредством syslog.conf на стандартный ввод логи mail.info: #!/bin/sh sed -E -le '/ RBL$/!d; s/^.*relay=[^[]*\[([^]]+)\].*/\1/' | \ while read ip do /sbin/ipfw -q table 1 add $ip done >/dev/null 2>&1 В этом примере sed пропускает все строки, не оканчивающиеся на буквы RBL (/ RBL$/!d), а следующей командой из таких строк выбирает IP-адрес анноящего хоста и выдает дальше по конвейеру для добавления в ipfw table 1, а в списке правил ipfw есть такое: 20000 deny tcp from table(1) to me setup Конкретно на этой машине нет других сервисов TCP, поэтому номер порта тут не проверяется (типа оптимизация :-). setup стоит для того, чтобы блокировать только новые коннекты, а уже успевшие начаться закрылись штатно (быстро), а не по таймайту TCP (гораздо позже). Политики удаления адресов можно разные использовать. В моих условиях оказалось достаточно тупо чистить table 1 раз в час. Тебе надо будет другой критерий добавления в ipfw. Eugene -- Hароду - чтоб не вздумал бунтовать! - Мы тоже разрешили воровать. Пусть лучше сам ворует потихоньку, Чем с воровскою властью враждовать!.. --- slrn/0.9.8.0 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/260931e9574c8.html, оценка из 5, голосов 10
|