Есть вот такое правило:ipfw add pass ip from table(1) to any via xl0
В table 1 добавляются разные IP адреса и всё работает нормально.
Проблема состоит в том что, когда я удаляю IP адрес из table 1 - ipfw продолжает пропускать пакеты на уже установленные соединяния для этого IP адреса, при этом новые соединения невозможны.
Вопрос как убивать действующие соединения на адреса которые не присутствуют в table 1?
Спасибо
>[оверквотинг удален]
>ipfw add pass ip from table(1) to any via xl0
>
>В table 1 добавляются разные IP адреса и всё работает нормально.
>
>Проблема состоит в том что, когда я удаляю IP адрес из table
>1 - ipfw продолжает пропускать пакеты на уже установленные соединяния для
>этого IP адреса, при этом новые соединения невозможны.
>
>Вопрос как убивать действующие соединения на адреса которые не присутствуют в table
>1?Если правило действительно такое как у вас написано, то обмен с этим адресом должен прекращаться. По крайней мере, с его стороны точно. Если вам хочется прекратить передачу и в его сторону, то добавьте правило:
ipfw add pass ip from any to table(1) via xl0Тогда при удалении адреса из таблицы обмен будет прекращаться в обе стороны (конечно, если после этих правил стоит запрещающее правило).
Тогда уж скорееipfw add DENY ip from any to table(1) без via
Но в этом случае заблокируются все кто находится в table(1), а мне это не нужно.
>Если правило действительно такое как у вас написано, то обмен с этим
>адресом должен прекращаться. По крайней мере, с его стороны точно. Если
>вам хочется прекратить передачу и в его сторону, то добавьте правило:
>
>ipfw add pass ip from any to table(1) via xl0
>
>Тогда при удалении адреса из таблицы обмен будет прекращаться в обе стороны
>(конечно, если после этих правил стоит запрещающее правило).
>[оверквотинг удален]
>В table 1 добавляются разные IP адреса и всё работает нормально.
>
>Проблема состоит в том что, когда я удаляю IP адрес из table
>1 - ipfw продолжает пропускать пакеты на уже установленные соединяния для
>этого IP адреса, при этом новые соединения невозможны.
>
>Вопрос как убивать действующие соединения на адреса которые не присутствуют в table
>1?
>
>СпасибоДоброго дня.
Попробуйте tcpdrop
tcpdrop требует номера портов, которых я не знаю, мне просто надо убить все established соединения на указанный IP адрес>Попробуйте tcpdrop
скорей всего ранее идет правило которое например разрешает все established или типа того
проще всего ПЕРЕД этим парвилом, а лучше в начали заводимipfw add DENY ip from table(2) to any via xl0
и сразу после удаления заносим айпи в таблицу номер 2
сработает гарантированно и tcp connect по таймауты порвется
Попробовал.После того как удаляешь IP из table 2 - все его предыдущие соединения восстанавливаются (ICQ, Skype).
Постоянно держать айпи в бане - невозможно.Я ищу аналог pfctl -K
Неужели ipfw такой тупой? =))
Не хотелось менять правила с established, а наверное придётся.
>скорей всего ранее идет правило которое например разрешает все established или типа
>того
>проще всего ПЕРЕД этим парвилом, а лучше в начали заводим
>
>ipfw add DENY ip from table(2) to any via xl0
>
>и сразу после удаления заносим айпи в таблицу номер 2
>сработает гарантированно и tcp connect по таймауты порвется
Пришлось всё-таки заменить:${fwcmd} add pass tcp from any to any established
На целый ряд правил:
${fwcmd} add pass tcp from me to any established
${fwcmd} add pass tcp from any to me established${fwcmd} add pass tcp from table(1) to any established via $int_if
${fwcmd} add pass tcp from any to table(1) established#${fwcmd} add pass tcp from not table(1) to $me_int established via $int_if
#${fwcmd} add pass tcp from me to not table(1) established via $int_ifПроблема решена.