Установка
Firewalld — это утилита для управления файерволом в linux.
Установка, запуск и включение автозапуска
yum install firewalld systemctl start firewalld systemctl enable firewalld
Чтобы любые изменения настроек вступили в силу, после правок должна быть выполнена команда
firewall-cmd --reload
Зоны
Firewalld имеет такое понятие как зоны — это наборы правил для определения уровня доверия сетевому соединению. Зоны назначаются сетевым интерфейсам. Зона может содержать несколько сетевых подключений, но сетевое соединение может входить только в одну зону.
- Есть 9 зон созданных по умолчанию:
- trusted - все сетевые соединения разрешены
- work/home/internal - максимальное доверие к компьютерам в сети, разрешается устанавливать только конкретные входящие соединения (по умолчанию SSH и DHCPv6 client, в home и internal плюс MDNS и Samba client)
- dmz - для компьютеров, находящихся в демилитаризованной зоне, доступные из Сети и с ограниченным доступом к внутренней сети. Разрешаются только указанные входящие соединения (по умолчанию SSH)
- external - правило, подходящее для роутеров, для использования во внешних сетях с разрешенным маскарадингом, с максимальным недоверием и четко установленными разрешенными входящими соединениями (по умолчанию SSH)
- public - для использования в общественных местах, с максимальным недоверием к другим компьютерам, разрешены только конкретные входящие соединения (по умолчанию SSH и DHCPv6 client)
- block - входящие сетевые соединения отклоняются с icmp-host-prohibited сообщением, разрешены только соединения, инициированные в этой системе
- drop - разрешаются только исходящие соединения, все входящие блокируются
Описания зон также представлены в XML-файлах в каталоге
/usr/lib/firewalld/zones
После установки системы, по умолчанию обычно используется зона public.
- firewall-cmd --get-zones вывод списка зон
- firewall-cmd --get-default-zone вывод зоны по умолчанию, все пакеты не попадающие под определенные зоны обрабатываются ей
- firewall-cmd --get-active-zones вывод названия активной зоны и какой интерфейс к ней привязан
- firewall-cmd --get-zone-of-interface=ens192 вывод названия зоны, к которой привязан указанный интерфейс
- firewall-cmd --zone=public --list-all вывод настроек указанной зоны
- firewall-cmd --zone=public --list-services вывод сервисов, разрешенных в указанной зоне
Управление правилами
- firewall-cmd --permanent --add-port=22/tcp разрешение соединения на указанный порт
- firewall-cmd --zone=public --permanent --add-port=22/tcp добавление правила в указанную зону, если зона не указывается правило добавляется в зону по умолчанию
- firewall-cmd --permanent --add-service=samba разрешение соединения для сервиса samba
- firewall-cmd --remove-port=22/tcp удаление из правил разрешения для порта
- firewall-cmd --remove-service=samba удаление из правил разрешения для сервиса
- firewall-cmd --zone=public --remove-service=samba удаление сервиса из правил в указанной зоне
- firewall-cmd --get-services вывод списка сервисов, для которых можно указывать названия при разрешении
- firewall-cmd --info-service=samba вывод списка настроек, применяемых к сервису
- firewall-cmd --list-ports вывод списка добавленных правил
- firewall-cmd --panic-on включение режима блокировки всех соединений
- firewall-cmd --panic-off отключение режима блокировки всех соединений
- firewall-cmd --query-panic проверка, в каком режиме находится файрвол
Все настройки firewalld хранятся в xml файлах в каталоге и подкаталогах
/usr/lib/firewalld
Параметры для сервисов лежат в , в файлах описываются порты и протоколы, задействуемые сервисом
/usr/lib/firewalld/servicesв файлах описываются порты и протоколы, используемые сервисом. Если нужно переопределить настройки или создать свой сервис, то можно скопировать файл из /usr/lib/firewalld/services в качестве шаблона в /etc/firewalld/services и изменить под свои условия.