Страница 1 из 1

ipfw как проверить на существующее правило?

Добавлено: 2009-10-07 17:47:25
imroot
собственно есть прога которая при успешной авторизации юзера добавляет правило в фаервол.
но вот если разлогирование не корректно произошло и он снова авторизуется то в фаерволле появляется идентичная запись

Код: Выделить всё

10601    22        231 allow ip from 192.168.1.99 to any
10601    0        0 allow ip from 192.168.1.99 to any
как-то некравиво получается (и скорее всего начинает лагать инет), как бы организовать проверку тем-же скриптом на существование такой записи в таблице?

Заранее благодарен!

Re: ipfw как проверить на существующее правило?

Добавлено: 2009-10-07 17:53:26
Laa

Код: Выделить всё

_n=`ipfw show|grep "allow ip from 192.168.1.99 to any"|awk '{print $1}'`;
if [-n $_n ]; then ipfw delete $_n; fi
Ну как-то так. ;)
Можно еще привязывать номера правил к юзерам и удалять правило (есть оно или нет) перед включением юзера по номеру.
Да вообще масса способов.

И еще, при больших нагрузках и кол-вах юзеров, лучше когда в файерволе указано направление прохождения пакета (in recv fxp0, out xmit rl0), так ему легче работать.

Re: ipfw как проверить на существующее правило?

Добавлено: 2009-10-07 18:35:47
hizel
а еще такие вещи лучше делать через table :]

Re: ipfw как проверить на существующее правило?

Добавлено: 2009-10-07 20:09:05
imroot
ткните пальцем :oops:
или покажите. ПОЖАЛУСТА :sorry:

Re: ipfw как проверить на существующее правило?

Добавлено: 2009-10-08 16:10:19
Laa

Код: Выделить всё

ipfw table 41 add 10.0.1.3
ipfw table 41 add 10.0.1.45
...
ipfw table 41 delete 10.0.1.91