firewalld предоставляет динамически управляемый брандмауэр с поддержкой зон сети или брандмауэра для определения уровня доверия сетевых подключений или интерфейсов. Он поддерживает настройки брандмауэра IPv4, IPv6 и мосты Ethernet, а также разделение параметров времени выполнения и постоянной конфигурации. Он также предоставляет интерфейс для служб и приложений для непосредственного добавления правил ip*tables и ebtables.
Чтобы проверить исходный репозиторий, вы можете использовать:
git-клон https://github.com/firewalld/firewalld.git
Это создаст локальную копию репозитория.
Кодекс поведения участника можно найти в CODE_OF_CONDUCT.md.
Firewalld использует GNU gettext для поддержки локализации. Переводы можно выполнить с помощью экземпляра Weblate Fedora. Переводы периодически объединяются в основной репозиторий firewalld.
Это зависимости времени выполнения:
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
Примечание . Python2 не поддерживается.
Эти зависимости могут улучшить функциональность firewalld, но они не являются обязательными.
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
В дополнение к зависимостям времени выполнения для сборки из исходного кода необходимы некоторые другие:
desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units pytest
Чтобы иметь возможность создавать страницы руководства и документацию из файлов docbook:
docbook-style-xsl libxslt
Используйте обычное заклинание autoconf/automake для создания make-файлов.
./autogen.sh ./настроить
Вы можете использовать конкретный интерпретатор Python, передав переменную PYTHON. Это также используется набором тестов.
./configure PYTHON=/путь/к/python3
Использовать
делать
для создания документации и обновления po-файлов.
Использовать
сделать чек
для запуска набора тестов. Тесты выполняются внутри сетевых пространств имен и не мешают работе firewalld на хосте. Их также можно запускать параллельно, передавая флаги автотесту.
сделать проверку TESTSUITEFLAGS="-j4"
В наборе тестов также используются ключевые слова, позволяющие запускать подмножество тестов, проверяющих определенную область. Например:
сделать проверку TESTSUITEFLAGS="-k rich -j4"
Выход:
24: аудит расширенных правил ок 25: приоритет расширенных правил ок 26: богатые правила плохо ок 53: аудит расширенных правил ок 23: богатые правила хорошо ок 55: богатые правила плохо ок 74: удалить переадресованный порт после перезагрузки, ок
Вы можете получить список тестов и ключевых слов
сделать -C src/tests проверить TESTSUITEFLAGS="-l"
Или просто ключевые слова
make -C src/tests check TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; напечатайте $0}' |tr ' ' 'n' |sort |uniq
Есть интеграционные тесты. В настоящее время сюда входит NetworkManager. Они могут быть разрушительными для хозяина. Запустите их на одноразовой виртуальной машине или контейнере.
сделать проверку-интеграцию
Существует также целевой контейнер проверки, который будет запускать набор тестов внутри различных контейнеров podman/docker. Это полезно для покрытия нескольких дистрибутивов. Он также запускает тесты, которые могут быть разрушительными для хоста, например интеграционные тесты.
сделать чек-контейнер TESTSUITEFLAGS="-j4"
В рамках цели сборки dist
создается образ контейнера OCI. Он распространяется вместе с архивом обычного выпуска. Его можно использовать для запуска firewalld из контейнера. Контейнерный firewalld не будет интегрироваться с хостом (например, podman, libvirt, NetworkManager).
Чтобы вручную загрузить образ контейнера в вашу среду:
podman load -i .../путь/к/firewalld-oci-<ver>.tar
Чтобы получить изображение с quay.io:
podman pull quay.io/firewalld/firewalld:<ver>
где <ver>
является необязательным, будет использоваться последняя версия, если она опущена.
Чтобы запустить демон/контейнер:
podman run -d --network хост --privileged --name my-firewalld firewalld
Конфигурация Firewalld будет находиться внутри контейнера. Поэтому пользователи могут захотеть время от времени podman commit
.
Использование CLI firewalld должно выполняться через podman exec после запуска демона/контейнера:
podman exec my-firewalld firewall-cmd ...
Тот же образ контейнера можно использовать для интеграции с запущенным на хосте NetworkManager, podman, libvirt и т. д. Для этого на хосте должна быть политика dbus для firewalld.
Политику dbus можно получить из дерева исходного кода firewalld по адресу config/FirewallD.conf
.
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
Как только политика dbus будет установлена, контейнер можно будет запустить следующим образом:
podman run -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --сетевой хост --privileged --name my-firewalld firewalld firewalld --nofork --nopid
Единственное дополнение: монтирование тома, явный CMD.
Некоторые подходы можно использовать для хранения файлов конфигурации firewalld на хосте.
podman run -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --сетевой хост --privileged --name my-firewalld firewalld firewalld --nofork --nopid
Для дистрибутивов на основе Fedora и RHEL в исходном репозитории есть файл спецификации с именем firewalld.spec. Это должно быть пригодно для версий Fedora >= 16 и RHEL >= 7.
Домашняя страница: http://firewalld.org
Сообщить об ошибке: https://github.com/firewalld/firewalld/issues.
Браузер репозитория Git: https://github.com/firewalld/firewalld.
Репозиторий Git: https://github.com/firewalld/firewalld.git.
Документация: http://firewalld.org/documentation/.
Для использования: https://lists.fedorahosted.org/archives/list/[email protected]/
Для разработки: https://lists.fedorahosted.org/archives/list/[email protected]/
Каталог | Содержание |
---|---|
конфигурация/ | Конфигурационные файлы |
конфигурация/icmptypes/ | Предопределенные типы ICMP |
конфигурация/услуги/ | Предопределенные услуги |
конфигурация/xmlschema/ | XML-схема проверяет файлы конфигурации |
конфигурация/зоны/ | Предопределенные зоны |
конфигурация/ipsets/ | Предопределенные IP-наборы |
док/ | Документация |
док/человек/ | Базовый каталог для man-страниц |
док/человек/человек1/ | Справочник(1) страниц |
док/человек/man5/ | Справочник(5) страниц |
по/ | Переводы |
завершение оболочки/ | Базовый каталог для скриптов автозаполнения |
источник/ | Исходное дерево |
источник/брандмауэр/ | Импорт дерева для сервиса и всех приложений |
источник/значки/ | Иконки в размерах: 16, 22, 24, 32, 48 и масштабируемые. |
источник/тесты/ | Тестовый набор |