Команда iptables Ubuntu 22.04 не работает
Я разместил тот же вопрос на другом форуме SE, позже посчитал, что этот форум более уместен, учитывая дистрибутив Linux, с которым я имею дело.
Совершенно новый для netfilter, в настоящее время я запускаю приложение, которое использует три интерфейса eth0/eth1/eth2, мое приложение будет работать на двух серверах, и оба они могут взаимодействовать между собой через свои собственные интерфейсы (eth0/eth1/eth2).
В Ubuntu 18.04 (версия ядра 4.*) я просто использовал команды iptables, чтобы разорвать связь между ними.
В версии 22.04 (версия ядра 6.2.*) я использую те же команды iptable, чтобы разорвать связь между двумя серверами, но все работает не так, как ожидалось (код моего приложения остается неизменным) - мое приложение имеет механизм, сообщающий, является ли соседний сервер доступен или нет - в 22.04 с примененными правилами iptables он все равно сообщает, что другой сервер доступен (в 18.04 это не так).
Я заметил, что многое изменилось в том, как фильтровать сетевой трафик между двумя версиями ядра (в последней версии больше инструментов).
Я удалил ufw, чтобы избежать конфликтов с nftables. Одно наблюдение: когда я применил правило, мое приложение на короткое время сообщило, что соседний сервер недоступен, и внезапно он изменится на доступный, что-то переопределяет правило, я не уверен.
Теперь ищу помощи здесь, чтобы увидеть, что я пропустил...
-A INPUT -s x.x.x.x/32 -d y.y.y.y/32 -i eth2 -j DROP
-A INPUT -s x.x.x.y/32 -d y.y.y.x/32 -i eth1 -j DROP
-A INPUT -s x.x.y.y/32 -d y.y.x.x/32 -i eth0 -j DROP
-A OUTPUT -s y.y.y.y/32 -d x.x.x.x/32 -o eth2 -j DROP
-A OUTPUT -s y.y.y.x/32 -d x.x.x.y/32 -o eth1 -j DROP
-A OUTPUT -s y.y.x.x/32 -d x.x.y.y/32 -o eth0 -j DROP
Примечание. Все мои правила добавляются в цепочку, чтобы гарантировать, что они имеют приоритет над всем остальным.
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- xxxx yyyy
DROP all -- zzzz AAAA
DROP all -- BBBB CCCC