Знакомство с 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=} |