Как УДАЛИТЬ трафик, IP-адрес источника которого находится в ipset черного списка, если только источник не находится в ipset белого списка в firewalld?

У меня есть 2 ipset: (белый список) иenemies(блок-лист).

Моя зона по умолчанию () ОТКАЗЫВАЕТ весь трафик, кроме определенных сервисов (напримерhttp).

Я отредактировал зону, поставляемую с firewalld, добавивipset:enemiesв качестве источника.

      firewall-cmd --permanent --new-ipset=enemies --type='hash:net'
firewall-cmd --permanent --zone=drop --add-source=ipset:enemies

Firewalld просматривает зоны в алфавитном порядке и идет перед , поэтому будет рассматриваться в первую очередь.

Если исходный IP-адрес совпадает, будет выполнено УДАЛЕНИЕ. Отлично.

Но я хочу также иметьfriendsсписок, включающий адреса, которые никогда не следует блокировать. Итак, я подумал, что мне нужно что-то вроде:

firewall-cmd --permanent --zone=drop --add-source=NOT ipset:friends

Вещи, которые я пробовал.

Я думал, что ответ может быть «Богатые правила», поскольку в них вы можете указать НЕ для источника. Но я не мог понять, каким должен быть «элемент» или «действие».

Ответы, которые я читал в блогах и т. д., предлагают создать новую зону, например, с помощью--add-source=ipset:friendsи--set-target=ACCEPT. Однако я не хочу исключать трафик ACCEPT из этого списка разрешений; Я все еще хочу, чтобы он использовал правила моей зоны.

Я мог бы решить эту проблему, продублировав все детали из файлаa_zone_before_blockно добавлениеsource=ipset:friends, но это выглядит запутанно - при дублировании возникает проблема, заключающаяся в том, что они не синхронизированы. Поэтому я надеюсь, что есть лучший способ.

Итак, что мне нужно:

  • способ сказать, что трафик должен быть помещен в зону, если его источник находится в ipset:enemies, если только его источник не находится в ipset:friends.

    ИЛИ

  • способ сказать, находится ли трафик в зоне, но находится его источник, а затем измените зону на

    ИЛИ

  • способ создания зоны000_firstэто соответствуетipset:friendsи если оно совпадает, оно переходит наpublic, пропуская 2-ю зонуblock.

    ИЛИ

  • способ использования наследования в объявлениях зон.

0 ответов

Другие вопросы по тегам