Про firewalld и ipset-ы с ограниченным временем жизни элементов (RHEL8)
Slan!
Довольно забавный момент связан с "механикой" добавления/удаления ipset-элементов в ipset-списки с ограниченным временем жизни (параметр "timeout") элементов. Для краткости будем называть такие списки "temporary_ipset".
1. Создадим temporary_ipset через firewall-cmd
"firewall-cmd --permanent --new-ipset=temporary_ipset --option=timeout=6000"
"firewall-cmd --reload".
2. Добавим в ipset пару элементов
"firewall-cmd --ipset=temporary_ipset --add-entry="11.12.13.14""
"firewall-cmd --ipset=temporary_ipset --add-entry="14.13.12.11"".
3. Попытаемся посмотреть список элементов через firewall-cmd
"firewall-cmd --permanent --info-ipset=temporary_ipset".
Список элементов мы не увидим, т.к. для просмотра элементов с ограниченным временем жизни необходимо использовать команду
"ipset list temporary_ipset". Так вот не очень удобно реализовано (RHEL8).
4. Удаление элемента из temporary_ipset тоже с подвохом.
Команда "firewall-cmd --permanent --ipset=temporary_ipset --remove-entry="11.12.13.14"" не даст нужного результата и выдаст ответ вида "Error: IPSET_WITH_TIMEOUT".
Для удаления из temporary_ipset необходимо воспользоваться утилитой ipset -
"ipset del temporary_ipset 11.12.13.14".
5. Добавление элемента в temporary_ipset с таймаутом, отличным от заданного, невозможно через firewall-cmd. В этом случае нам также поможет утилита ipset -
"ipset add temporary_ipset 11.12.13.144 timeout 500".
6. Чтобы переопределить таймаут уже добавленного элемента, необходимо через утилиту ipset сначала удалить элемента, а после добавить с иным таймаутом.
(Небольшой бонус)
7. Удаление temporary_ipset осуществляется уже стандартно -
"firewall-cmd --permanent --delete-ipset=temporary_ipset".
После необходимо выполнить "firewall-cmd --reload". Если этого не сделать, то ipset всё ещё будет доступен через одноимённую утилиту.
Если по каким-то причинам нежелательно проводить reload, то исполняем команду удаления ipset-а (выше), а после удаляем temporary_ipset посредством команды
"ipset destroy temporary_ipset".
Лига Сисадминов
2.4K постов18.9K подписчика
Правила сообщества
Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.