Блок УСТАНОВЛЕННЫЕ соединения с firewalld / iptables

Я запускаю firewalld на моем сервере, и я пытаюсь настроить fail2ban (используя firewalld), чтобы улучшить безопасность. Проблема в том, что я не могу заставить его убить установленные соединения.

Firewalld имеет конфигурацию по умолчанию только с некоторыми добавленными сервисами (ssh и т. Д.).

Я думаю, я знаю, где проблема: iptables -L INPUT дает мне следующее:

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere INPUT_direct all -- anywhere anywhere INPUT_ZONES_SOURCE all -- anywhere anywhere INPUT_ZONES all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere REJECT all -- anywhere anywhere reject-with icmp-host-prohibited 

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

Я попытался удалить первое правило iptables -D INPUT 1 но это оставило меня с системой, в которой не было сети, ни внутри нее, ни исходящей. Поэтому я снова добавил правило, но второй. iptables -I INPUT 7 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT .

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere INPUT_direct all -- anywhere anywhere INPUT_ZONES_SOURCE all -- anywhere anywhere INPUT_ZONES all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED REJECT all -- anywhere anywhere reject-with icmp-host-prohibited 

Это похоже на желаемый эффект. Установленные соединения теперь убиты, когда записи fail2ban сделаны, и остальная часть сети работает.

Вопрос : Как я сохраняю это с помощью firewalld? Я знаю, что могу делать постоянные изменения в firewalld через firewall-cmd --permanent и я знаю, что могу делать некоторые более низкоуровневые вещи через --direct и --xxx-rich-rule но я не нашел способ двигаться, как как манипуляция цепочкой INPUT.

EDIT: Я узнал, что вы можете использовать --passthrough , чтобы управлять цепочкой INPUT. Однако, если я попытаюсь сделать это постоянным:

 firewall-cmd --direct --passthrough ipv4 -I INPUT 7 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT firewall-cmd --direct --passthrough ipv4 -D INPUT 1 systemctl restart firewalld 

Вставка работает, но удаление не выполняется. После этого iptables -L INPUT дает:

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere INPUT_direct all -- anywhere anywhere INPUT_ZONES_SOURCE all -- anywhere anywhere INPUT_ZONES all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED REJECT all -- anywhere anywhere reject-with icmp-host-prohibited 

РЕДАКТИРОВАТЬ:

Я все еще не нашел способ сделать эту работу с firewalld действием fail2ban, поэтому на этом этапе я предполагаю, что это невозможно.

Если я использую действие iptables для fail2ban, хотя это работает, я буду придерживаться этого.