Сравнение
Рассмотрим основные отличия FirewallD и iptables:
- Служба iptables хранит конфигурацию в /etc/sysconfig/iptables в то время как FirewallD хранит ее в различных XML-файлах в /usr/lib/firewalld/ и /etc/firewalld/. Интересно заметить, что файл /etc/sysconfig/iptables не будет существовать, если современную систему Linux (например, Red Hat Enterprise Linux) установить с FirewallD по умолчанию.
- Для iptables service каждое изменение означало сброс сброс старых правил и чтение всех новых из /etc/sysconfig/iptables, однако для FirewallD не существует понятия «воссоздания» правил; при конфигурации только различия в правилах учитываются и применяются. Таким образом, FirewallD может изменять настройки во время выполнения без потери старых соединений.
Основное сходство: оба iptables и FirewallD используют одинаковый инструментарий iptables (iptables tool).
Избавляемся от FirewallD
Если, являясь сторонником старой школы, мы решили избавиться от FirewallD и вернуться, к iptables, то это вполне возможно даже на CentOS 7:
# 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 может быть настроен через инструмент конфигурации firewall-config с графическим интерфейсом, через командную строку firewall-cmd или интерфейс D-BUS.
Доступ к инструмент конфигурации firewall-config с графическим интерфейсом осуществляется командой firewall-config или же запуском через меню.
После запуска будет виден список зон, о которых говорилось выше, можно выбрать любую из них и выполнить настройки в соответствии с вариантами:
- Services - trusted services that can be accessed from all hosts.
- Ports - trusted ports that will be open in this zone
- Masquerading - allows you to setup a host or router that connects your local network to the internet
- Port Forwarding - add entries to allow port forward either from one port to another or one host to another.
- ICMP Filters - trusted icmp services
- Rich rules - use rich language to add complex rules
- Interfaces - bind interfaces to the zone
- Sources - bind source address or ares to the zone
На мой взгляд, наиболее удобным инструментом настройки остаётся командная строка и, соответственно, команда 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=} | удалить проброс портов из зоны |
Конец.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux