Можно ли одновременно применять правила nftables и iptables/ip6tables? Если да :, каков порядок приоритета?

Я бы предположил, что ваши комбинации флагов (правило 6 и последующие)почти все подпадают под действие правила 2, --state INVALID.

Я применяю довольно строгий набор правил на одном из моих общедоступных -серверов, а настраиваемый fail2banсидит прямо там, вверху. (Я провожу три страйка и ты вылетаешь на пару часов, а три аута — бан на месяц. С парой исключений на основе IP-адреса -, чтобы предотвратить полную блокировку.)

Это (урезанная )версия моего rules.v4набора

-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
...
# Exceptions to allow suitably authorised traffic
...
-A INPUT -j LOG --log-level info --log-prefix "firewall: REJECT "
-A INPUT -j REJECT

Количество соответствующих пакетов от iptables --line-numbers -nvL INPUTс начала месяца

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target            prot opt in     out     source               destination
1    97753   26M f2b-recidive      tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
2    94046   26M f2b-XXXXXXXXXXXX  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
3    94046   26M f2b-XXXXXXXXXXXX  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
4    88576   26M f2b-sshd          tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
5     902K  333M ACCEPT            all  --  lo     *       0.0.0.0/0            0.0.0.0/0
6    2463M 2399G ACCEPT            all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
7     1152 52453 DROP              all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
...
19    417K   13M ACCEPT            icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
20   56921 4276K LOG               all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "firewall: REJECT "
21   56921 4276K REJECT            all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Как видите, мы получаем довольно много пакетов с неверными данными, но в основном это простые проверки TCP/IP. И большинство из них запускают правила fail2ban, как и должны.

2
03.07.2020, 11:57
1 ответ

Возможно одновременное использование iptablesи nftablesядра, помимо NAT, но это требует некоторого внимания. Порядок применения правил определяется приоритетом хука; legacy iptablesпо умолчанию равен 0, поэтому хуку nftможно установить приоритет -1, если он должен применяться до iptables, или 1, если он должен применяться позже.

iptables-nftпредназначен для облегчения перехода на nft. Установка этого вместе с nftпозволит программам, ожидающим интерфейс iptables/ ip6tables, продолжать работу, используя nftablesв ядре.

Этот подход используется в современных контейнерных средах, таких как Kubernetes. :Предполагается, что контейнеры определяют, какой набор таблиц используется хостом, и используют соответствующий iptablesинтерфейс (, загружая устаревшие таблицы илиnftables). Подробнее см. Kubernetes issue #71305 .

Основной проблемой является сочетание iptables-nftи iptables-legacy:: они используют один и тот же приоритет, поэтому пакеты проходят через обе цепочки и нигде не заканчиваются.

См. Когда и как использовать приоритеты цепочки в nftables для получения подробной информации о приоритетах nftables.

8
18.03.2021, 23:22

Теги

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