Вопрос или проблема
Я только что обновил систему с RHEL 8.5 до RHEL 8.10, что также обновило firewalld с 0.9.3 до 0.9.11. В firewalld у нас есть зона postfix для подключений на порту 25, и единственными разрешенными устройствами там являются 2 прямых соединения и 2 соединения от балансировщика нагрузки F5. Прямые соединения работают, но соединения от балансировщика нагрузки нет. Мне пришлось на время отключить firewalld, чтобы все продолжало работать, но, очевидно, я хочу решить эту проблему, чтобы мы могли снова его использовать. Ошибка, получаемая в балансировщике нагрузки: “недоступен – запрещенный фильтр администрацией”
Ответ или решение
Проблема, с которой вы столкнулись, связана с обновлением вашей системы и правами доступа, настроенными в firewalld. Рассмотрим это подробнее для определения коренной причины и ее решения.
Фоновые сведения о firewalld и обновлении системы
Firewalld является мощным инструментом управления сетевыми фильтрами, который позволяет динамически изменять правила фильтрации, не прерывая сетевых подключений. Ваша система обновилась с RHEL 8.5 до RHEL 8.10, что привело к обновлению firewalld с версии 0.9.3 до 0.9.11. В процессе обновления могли измениться или сбиться некоторые конфигурации, что и могло вызвать блокировку подключений через F5 Load Balancer.
Исходные условия
В вашей конфигурации firewalld используется зона postfix
, которая разрешает соединения по порту 25. Доступ имеют две прямые (direct) связи и две связи через F5 Load Balancer. Из приведенных вами данных видно, что прямые соединения работают, тогда как запросы с загрузочного балансировщика блокируются, и вы получаете сообщение "unreachable – admin prohibited filter". Это указывает на то, что правила фильтрации блокируют доступ от загрузочного балансировщика.
Пошаговое руководство по устранению проблемы
-
Проверка текущих зон и правил:
Чтобы понять, как настроены правила в firewalld, выполните команду:firewall-cmd --list-all --zone=postfix
Это даст вам представление обо всех разрешенных адресах и правилах в данной зоне.
-
Проверка IP-адресов загрузочного балансировщика:
Убедитесь, что IP-адреса F5 Load Balancer указаны корректно в настройках зоныpostfix
. Это можно сделать с помощью следующей команды:firewall-cmd --zone=postfix --list-sources
Если IP-адреса отсутствуют, добавьте их:
firewall-cmd --zone=postfix --add-source=<IP-адрес> --permanent
Не забудьте выполнить команду
firewall-cmd --reload
для применения изменений. -
Логи системы:
Проверьте системные логи (например,/var/log/messages
или/var/log/audit/audit.log
), чтобы обнаружить сообщения, связанные с блокировкой соединений. Они предоставят дополнительную информацию о том, почему соединения от F5 были отклонены. -
Настройки ICMP:
Убедитесь, что не нарушены настройки ICMP (пинг), так как это может повлиять на определение доступности сервера и его способности принимать соединения. -
Проверка наличия конфликтов:
Иногда могут возникать конфликты между различными правилами или зонами. Зафиксируйте все активные зоны и их правила для анализа. Проверьте, нет ли правил, которые могут блокировать маршруты от F5 Load Balancer. -
Тестирование:
После внесения изменений протестируйте соединение снова через F5 Load Balancer. Это можно сделать с помощью простых telnet-команд или других сетевых утилит (например, curl или nc). -
Состояние и ведение журнала:
Включите ведение журнала для firewalld, чтобы отследить блокируемые соединения в будущем:firewall-cmd --set-log-denied=all
Это поможет вам видеть, какие соединения заблокированы, и позволит быстрее реагировать на аналогичные инциденты в дальнейшем.
Заключение
После проведения вышеперечисленных шагов вы должны восстановить подключение от вашего F5 Load Balancer к серверу. Убедитесь, что после всех изменений система firewalld перезагружена, и проверьте, что все необходимые правила применены успешно. В случае продолжающихся проблем рассмотрите возможность взаимодействия с поддержкой F5 или дополнительными инструментами мониторинга для диагностики сетевых проблем.