15 сент. 2020, вторник, в 21:38 NOVT, Ruslan Suleimanov написал(а):
RS> с правилами выше что я скинул показывает чудесные результаты,
RS> tcp.blackhole в
RS> значении 2 вообще крутая вещь ! :)
Да, крутая, пока ты не столкнёшься с софтом, писанным людьми,
которые понятия не имеют о системном администрировании
(это почти все программисты), типа веб-фреймворка, который работает
в связке с базой данных и автор которого свято уверен,
что подключаться к MySQL надо обязательно по TCP на 127.0.0.1,
а уж если это не выходит, то так уж и быть, можно поглядеть
в собственные настройки.
Пока tcp.blackhole не выставлено в 2, это даже работает,
потому что отлуп (TCP RST) при подключении к несуществующему сокету
на
127.0.0.1:3306 приходит моментально и веб-юзер не ощущает
задержки перед второй попыткой подключения к правильному
адресу базы. Hо если ты выставил tcp.blackhole=2,
то фреймворк отвалится от первой попытки только по долгому
таймауту, достаточному, чтобы юзеровский браузер бросил ждать раньше.
RS> единственное както неправильно работает allow ip from any to any setup
RS> limit
RS> src-addr 10 при том что у меня по умолчанию ipfw allow для всего.
RS> Подскажи пжлст как правильно перестроить правило чтобы разрешать с одного
RS> IP
RS> делать не больше 10 подключений ?
Во-первых, не забывай добавлять направление (in или out) и имя интерфейса,
тобы самого себя не резать, во-вторых, слово "setup" осмыслено
не для любых IP-пакетов, а только для TCP. В UDP, GRE и прочих ESP
нету никакого setup.
В третьих, ставь такое правило с limit src-addr 10 в начало, типа такого:
ipfw add 2000 skipto 2100 tcp from any to any setup in recv $extif limit
src-addr 10
ipfw add 2010 reset tcp from any to any setup in recv $extif
остальные правила с номера 2100 и далее, включая "allow для всего".
Это позволяет в дополнение к лимиту на количество соединений
ещё какие-нибудь фильтры применять при необходимости.
Eugene