Subscribe on YouTube

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

# systemctl disable firewalld
# systemctl stop firewalld
# yum install iptables-services
# touch /etc/sysconfig/iptables
# touch /etc/sysconfig/ip6tables
# systemctl start iptables
# systemctl start ip6tables
# systemctl enable iptables
# systemctl enable ip6tables

Если все же осталось желание разобраться с FirewallD, то проверим наличие необходимых пакетов, и если их нет, то произведем их установку.

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 Удалить маскарадинг

Добавить проброс портов к зоне

firewall-cmd [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=| :toport=[-]:toaddr=}

Удалить проброс портов из зоны

firewall-cmd [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=| :toport=[-]:toaddr=}
Поделиться Комментарии