Firewalld представляет собой управляемый динамический брандмауэр, с поддержкой сетевых зон для определения уровня доверия к сетям или интерфейсам, которые вы используете для подключения. Он поддерживает конфигурации IPv4, IPv6 и мосты Ethernet.
Кроме того, брандмауэр поддерживает текущую конфигурацию и постоянную конфигурацию отдельно. Таким образом, firewalld также предоставляет приложениям удобный интерфейс для добавления правил в брандмауэр.
Код firewalld написан на Python и выпущен под лицензией GPLv2.
firewalld не требует перезапуска службы для применения новой конфигурации. Поэтому нет необходимости перезагружать модули ядра. Единственным недостатком является то, что для корректной работы всего этого, настройка брандмауэра должна производиться через firewalld и его инструменты настройки (firewall-cmd или firewall-config). Firewalld может добавлять правила, используя тот же синтаксис, что и команды {ip,ip6,eb}tables (прямые правила).
Обслуживание также предоставляет информацию о текущей конфигурации брандмауэра через DBus, и таким же образом можно добавить новые правила, используя PolicyKit для процесса аутентификации.
Firewalld работает как фоновый процесс, который позволяет динамически изменять правила фильтрации пакетов через D-Bus без перезагрузки правил фильтрации пакетов и без разрыва установленных соединений.
Для управления брандмауэром используется утилита firewall-cmd который при создании правил опирается не на IP-адреса, сетевые интерфейсы и номера портов, а на имена сервисов (например, чтобы открыть доступ по SSH, нужно запустить «firewall-cmd — add — service=ssh» , чтобы закрыть SSH — «firewall-cmd —remove —service=ssh»).
Примечания и советы
- Чтобы получить список всех служб, о которых знает firewalld, в удобном для чтения формате, используйте команду firewall-cmd –get-services | tr ” “n”
- Файлы .xml служб firewalld по умолчанию можно найти в каталоге /usr/lib/firewalld/services.
- Для всех команд, поддерживающих опцию –zone=, если зона не указана, будет использоваться зона по умолчанию.
- Чтобы сделать изменения постоянными, добавьте опцию –permanent к вашим командам.
- После внесения изменений вы должны выполнить команду firewall-cmd –reload, чтобы изменения были загружены.
КОМАНДА | ОПИСАНИЕ |
---|---|
firewall-cmd --get-default-zone | Показать зону по умолчанию |
firewall-cmd --set-default-zone=zone | Установить зону по умолчанию |
firewall-cmd --get-zones | Перечислить все доступные зоны. |
firewall-cmd --get-active-zones | Список всех активных зон |
firewall-cmd --get-services | Перечислить все службы, о которых знает firewalld |
firewall-cmd --add-source=CIDR [--zone=zone] | Направить весь трафик, поступающий с IP-адреса или сети/маски сети, в указанную зону. |
firewall-cmd --remove-source=CIDR [--zone=zone] | Удалить правило, маршрутизирующее весь трафик из зоны, исходящий из IP-адреса или сети/сетевой маски. |
firewall-cmd --add-interface=interface [--zone=zone] | Направить весь трафик, поступающий с интерфейса, в указанную зону. |
firewall-cmd --change-interface=interface [--zone=zone] | Ассоциировать интерфейс с зоной вместо его текущей зоны. |
firewall-cmd --list-all [--zone=zone] | Список всех настроенных интерфейсов, источников, служб и портов для зоны. |
firewall-cmd --list-all-zones | Получение всей информации для всех зон (интерфейсы, источники, порты, службы). |
firewall-cmd --add-service=service [--zone=zone] | Разрешить трафик для сервисов. |
firewall-cmd --add-port=port/protocol [--zone=zone] | Разрешить трафик на порт/протокольный порт. |
firewall-cmd --remove-service=service [--zone=zone] | Удалить службу из списка разрешенных для зоны. |
firewall-cmd --remove-port=port/protocol [--zone=zone] | Удалить порт/протокольные порты из списка разрешенных для зоны. |
firewall-cmd --reload | Отменить конфигурацию времени выполнения и примените постоянную конфигурацию. |
Исходный код по ссылке ниже.
Руководства пользователя, Могу порекомендовать следующее.