skeletor Posted May 17, 2012 Posted May 17, 2012 Всем привет. Есть связка ipfw+ipnat (используется только для NAT). Захотелось ввести ограничения на количество исходящих\входящих подключений в интернет. Собираю такую конструкцию: ipfw add check state ipfw add allow all from 10.10.10.15 to any limit dst-addr 20 ipfw add deny all from 10.10.10.15 to any По счётчикам ipfw show вижу, что правило срабатывает. Так же смотрю ipfw -d show и считаю, сколько динамических правил создалось для 10.10.10.15 и вижу, что их количество превышает 20. Так же смотрю сессии NAT через ipnat -l и тоже их количество превышает 20 для данного ИПа. Делаю заключение, что ограничение может и работает, но неправильно, так как у юзера более 1000 подключений. Поскольку фактически у меня 2 файервола (ipfw и ipfilter), то нужно смотреть ещё и порядок прохождения пакета через файерволы. Нашёл статью http://www.opennet.ru/tips/info/1431.shtml , если верить которой на вход: ipfilter, pf, ipfwна выход: ipfw, pf, ipfilter То есть иными словами подключения юзера 10.10.10.15 в инет НАТятся раньше, чем они доходят до правила ipfw add allow all from 10.10.10.15 to any limit dst-addr 20 ? Попробовал по другому (пробовал с in/out и без них): ipfw add check state ipfw add allow all from 10.10.10.15 to any via $int_if limit dst-addr 20 ipfw add deny all from 10.10.10.15 to any но ограничения так и не срабатывают. То есть по идее они хоть как должны сначала пройти через это правило, так как оно написано для внутреннего интерфейса, а потом уже будут НАТится на внешнем. Ещё как вариант - это писать ограничения непосредственно в ipfilter (не тестировал) Подскажите, где я ошибся и как всё-таки заставить работать ограничения? ПС. FreeBSD Release 8.1 amd64 Сейчас этот сервер в работе, поэтому что-то кардинальное смогу сделать только вечером. Заранее спасибо. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.