Знакомство с FirewallD
FirewallD - новая служба для динамического управления межсетевым экраном с поддержкой доверенных зон сетевых соединений или интерфейсов.
Ввиду того, что FirewallD запускается как служба, новые правила можно добавлять без перезапуска, как это было с iptables, то есть без сброса установленного фаервола и установления соединений заново. Изменения в конфигурации могут быть сделаны в любое время, причем применяются мгновенно: сохранять или применять изменения не требуется. Служба FirewallD использует инструментарий iptables (iptables tool) для взаимодействия с фильтром пакетов ядра.
Сравнение
Рассмотрим основные отличия FirewallD и iptables:
Служба iptables хранит конфигурацию в
/etc/sysconfig/iptables
в то время как FirewallD хранит ее в различных XML-файлах в/usr/lib/firewalld/
и/etc/firewalld/
. Интересно заметить, что файл/etc/sysconfig/iptables
не будет существовать, если современную систему Linux (например, Red Hat Enterprise Linux) установить с FirewallD по умолчанию.Для iptables каждое изменение означало сброс старых правил и чтение всех новых из
/etc/sysconfig/iptables
, однако для FirewallD не существует понятия «воссоздания» правил; при конфигурации только различия в правилах учитываются и применяются. Таким образом, FirewallD может изменять настройки во время выполнения без потери старых соединений.
Основное сходство: оба iptables и FirewallD используют одинаковый инструментарий iptables (iptables tool).
Отключаем FirewallD
Для тех, кому привычнее iptables, нежели чем FirewallD, его можно отключить и возобновить работу с iptables.
1 | # systemctl disable firewalld |
Если все же осталось желание разобраться с FirewallD, то проверим наличие необходимых пакетов, и если их нет, то произведем их установку.
1 | yum -y install firewalld firewall-config |
Концепция зон FirewallD
FirewallD использует сетевые зоны для определения уровня доверия сетевого соединения, соединение может являться частью только одной зоны, но одна зона может определять несколько сетевых подключений.
Для использования в общих случаях создано несколько предопределённых зон:
drop
– входящие сетевые пакеты сбрасываются, без ответа, допускаются только исходящие соединения;block
– входящие сетевые соединения отклоняются с сообщением icmp-host-prohibited, допускаются только сетевые соединения инициированные внутри нашей системы;public
– при недоверии к компьютерам, разрешается устанавливать только конкретные входящие соединения;external
– для использования во внешних сетях с разрешенным маскарадингом, особенно для роутеров, разрешается устанавливать только конкретные входящие соединения;dmz
– для компьютеров собственной demilitarized zone которые публично доступны с ограниченным доступом к нашей внутренней сети, разрешается устанавливать только конкретные входящие соединения;work/home/internal
– максимальное доверие к компьютерам, уверенность в том, что они не приченят вреда нашему компьютеру, разрешается устанавливать только конкретные входящие соединения;trusted
– все сетевые соединения разрешены.
Конфигурация FirewallD
FirewallD может быть настроен через инструмент конфигурации firewall-config
с графическим интерфейсом, через командную строку firewall-cmd
или интерфейс D-BUS
.
Доступ к инструмент конфигурации firewall-config
с графическим интерфейсом осуществляется командой firewall-config
или же запуском через меню.
После запуска будет виден список зон, о которых говорилось выше, можно выбрать любую из них и выполнить настройки.
На мой взгляд, наиболее удобным инструментом настройки остаётся командная строка и, соответственно, команда firewall-cmd
.
Рассмотрим наиболее используемые команды:
| Команда | Значение |
|:———————————————————————————————————–: |:————————————————: |
| firewall-cmd –state | Показать состояние FirewallD |
| firewall-cmd –reload | Перезагрузить FirewallD |
| firewall-cmd –get-zones | Показать список всех заданных зон |
| firewall-cmd –get-services | Список всех поддерживаемых служб |
| firewall-cmd –get-active-zones | Список всех активных зон |
| firewall-cmd [–zone=] –add-interface= | Добавить интерфейс к зоне |
| firewall-cmd [–zone=] –change-interface= | Изменить интерфейс у зоны |
| firewall-cmd [–zone=] –remove-interface= | Удалить интерфейс из зоны |
| firewall-cmd –panic-on | Режим паники, блокирующий все сетевые соединения |
| firewall-cmd –panic-off | Отмена режима паники |
| firewall-cmd [–zone=] –add-service= [–timeout=] | Добавить службу к зоне |
| firewall-cmd [–zone=] –remove-service= [–timeout=] | Удалить службу из зоны |
| firewall-cmd [–zone=] –add-port=[-]/ [–timeout=] | Добавить порт к зоне |
| firewall-cmd [–zone=] –remove-port=[-]/ [–timeout=] | Удалить порт из зоны |
| firewall-cmd [–zone=] –add-masquerade | Добавить маскарадинг к зоне |
| firewall-cmd [–zone=] –remove-masquerade | Удалить маскарадинг |
Добавить проброс портов к зоне
1 | firewall-cmd [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=| :toport=[-]:toaddr=} |
Удалить проброс портов из зоны
1 | firewall-cmd [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=| :toport=[-]:toaddr=} |