настройки модуля iptables "recent"

nohup сообщает вам, что именно он делает, что он игнорирует ввод.

Если вы хотите избежать этого сообщения, перенаправьте stdin с /dev/nullследующим образом

nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
2
22.10.2019, 06:15
1 ответ

Прочитав (очень быстро )исходный код , я бы сказал, что старая запись удалена:

if (t->entries >= ip_list_tot) {
        e = list_entry(t->lru_list.next, struct recent_entry, lru_list);
        recent_entry_remove(t, e);
}

Чтобы увеличить это значение, вы можете установить параметр при загрузке модуля вручную:

~$ sudo modinfo -p xt_recent
ip_list_tot:number of IPs to remember per list (uint)
ip_list_hash_size:size of hash table used to look up IPs (uint)
ip_list_perms:permissions on /proc/net/xt_recent/* files (uint)
ip_list_uid:default owner of /proc/net/xt_recent/* files (uint)
ip_list_gid:default owning group of /proc/net/xt_recent/* files (uint)
ip_pkt_list_tot:number of packets per IP address to remember (max. 255) (uint)
~$ sudo modprobe xt_recent ip_list_tot=10000
~$ sudo cat /sys/module/xt_recent/parameters/ip_list_tot
10000

Перед выгрузкой/загрузкой убедитесь, что модуль не используется. (отключите брандмауэр или, по крайней мере, правила, использующие recentсоответствие ).

Чтобы сделать этот параметр постоянным, вы можете поместить файл в /etc/modprobe.d/xt _недавний со следующим содержимым:

options xt_recent ip_list_tot=10000

(Обратите внимание, что этот метод может не работать и может быть адаптирован в зависимости от вашего дистрибутива ).

Трудно сказать, какие проблемы с производительностью могут возникнуть при последовательном увеличении значения этого параметра. Это зависит от вашего оборудования, от других задач, запущенных в системе, и т. д.

Тем не менее, основываясь на чтении исходного кода и моем собственном опыте разработки, я бы сказал, что главное, чего вы можете бояться, — это введение задержки, если, например, в настоящее время тестируемый IP-адрес является последним в списке. или нет в списке (, что может часто встречаться):

static struct recent_table *recent_table_lookup(struct recent_net *recent_net,
                        const char *name)
{
    struct recent_table *t;

    list_for_each_entry(t, &recent_net->tables, list)
        if (!strcmp(t->name, name))
            return t;
    return NULL;
}

Учитывая xсложность list_for_each_entry() + strcmp,дополнительная «стоимость» установки `ip _list _tot̀ на огромное значение — это время просмотра списка.

Окончательная сложность может варьироваться от 1 * xдо ip_list_tot * x.

Тем не менее, я предполагаю, что связанный список в ядре хорошо реализован, производительность и скорость являются требованиями.

В заключение я бы посоветовал вам провести сравнительный анализ... если это возможно.

3
27.01.2020, 22:08

Теги

Похожие вопросы