Как УДАЛИТЬ трафик, 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
.ИЛИ
способ использования наследования в объявлениях зон.