На странице руководства по модулю «Recent» iptables объясняется, что сам модуль принимает параметры. Как установить эти параметры? Я бы предположил, что они будут установлены где-то там, где загружен модуль. Я не знаю, где это.
У кого-нибудь есть идеи?
Если вы загружаете модуль вручную, вы просто добавляете его в командную строку modprobe:
modprobe ipt_recent param1=val1 param2=val2
В противном случае, если он загружается автоматически, вы можете создать файл в /etc/modprobe.d
, сказать /etc/modprobe.d/ipt_recent
, с содержанием:
options ipt_recent param1=val1 param2=val2
Что будет делать то же самое, что и строка modprobe выше.
У меня нет репутации, чтобы отвечать на ответ TopQ, но я зарегистрировал учетную запись, чтобы сказать людям не делать то, что он предлагает. Исходный код модуля (http://lxr.linux.no/linux+v3.9/net/netfilter/xt_recent.c) не имеет возможности обнаруживать изменения этого параметра и перераспределять буфер ядра, отвечающий за отслеживание последних совпадений.
Следовательно, если вы измените этот параметр chmod на запись и впоследствии измените его, последующие записи в существующие журналы недавних обращений будут переполнять ранее выделенные буферы ядра и вызывать панику ядра.
Предупреждение: Поймите, что изменение этого параметра влияет на использование памяти машиной, поскольку эти данные хранятся в памяти, а iptables требует больших ресурсов для хранения больших объемов данных.
Настройте файл конфигурации xt_recent
Создайте файл /etc/modprobe.d/xt_recent.conf и включите такую строку:
options xt_recent ip_list_tot=50 ip_pkt_list_tot=150
Не забудьте добавить несколько комментариев о том, что вы делаете. Будущее тебе скажет спасибо.
Подготовьтесь к повторной инициализации xt_recent
Прежде чем мы удалим какие-либо правила в вашем брандмауэре, который в настоящее время использует последний модуль, или просто отключите брандмауэр. Вы можете сохранить свои правила, прежде чем делать это с помощью sudo iptables-save > somefile.txt
или, может быть sudo service iptables save
если ваш дистрибутив это поддерживает.
Выберите один из этих двух в зависимости от вашей ситуации. Вы также можете просто перезагрузить компьютер на этом этапе и перейти к добавлению правил.
Чтобы выключить iptables
sudo service iptables stop
Чтобы удалить определенные правила:
iptables -L --line-numbers
чтобы перечислить правила и найти в них «недавнее:».iptables -D INPUT #
где # - номер строки для удаления правил.Повторно инициализировать xt_recent
Снимите модуль с sudo modprobe -r xt_recent
. Добавьте его обратно с помощью sudo modprobe xt_recent
.
Убедитесь, что ваши параметры были применены с sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot
.
Добавьте правила, которые вы не могли
Если вы остановили iptables sudo service iptables start
вернуть его.
Добавьте свои правила обратно с более высокими значениями, которые вы хотели.
Бонус:
sudo watch 'iptables -nvL'
позволит вам смотреть, как все попадает в правила xt_recent.
Если модуль уже загружен, вы все равно можете изменить параметр, манипулируя значением в / sys / module / ipt_recent / parameters /.
Например, чтобы изменить значение ip_pkt_list_tot, вы можете:
эхо 200> / sys / module / ipt_recent / parameters / ip_pkt_list_tot
Конечно, у вас должно быть разрешение.