Firewalld: настройка и установка файрвола для Linux

Один из первых шагов, которые стоит предпринять для защиты сервера от сетевых атак и нежелательного доступа, – настройка брандмауэра. В данной статье мы расскажем о Firewalld – решении для управления брандмауэром, а также о том, как открыть доступ к часто используемым приложениям.

Что такое Firewalld

Firewalld – динамический управляемый файрвол, разрабатываемый Red Hat, с поддержкой задания зон для различных сетей, позволяющих разделять уровни доверия. По умолчанию в качестве бэкенда используется nftables.

Установка

Firewalld устанавливается в качестве брандмауэра по умолчанию в дистрибутивах CentOS, AlmaLinux, RockyLinux, Fedora и OpenSUSE.

Если в вашем дистрибутиве пакет не установлен, в дистрибутивах семейства RHEL выполните команду:

sudo dnf install firewalld

Для установки Firewalld в дистрибутивах на основе Debian выполните команду:

sudo apt install firewalld

После установки пакета включите сервис командой:

sudo systemctl enable --now firewalld

Настройка Firewalld

Управление включенным файрволом происходит посредством команды firewall-cmd. Для управления в выключенном состоянии можно использовать команду firewall-offline-cmd.

Большая часть команд по умолчанию изменяет только конфигурацию в рантайме, которая не будет сохранена при перезапуске. Для того чтобы конфигурация сохранялась при перезапуске, есть две опции:

  • Передавать команды с флагом --permanent. В таком случае конфигурация не будет применена до тех пор, пока сервис не будет перезапущен либо не будет передана команда --reload.
  • Изменять конфигурацию в рантайме и сохранить ее командой firewall-cmd --runtime-to-permanent.

Зоны

Зона – набор правил, которые применяются для определенного интерфейса. Чтобы получить список текущих зон Firewalld и соответствующих им интерфейсов, выполните команду:

firewall-cmd --get-active-zones

Для выполнения некоторых команд (например, добавления/удаления портов или сервисов) необходимо указать зону с помощью флага --zone=название_зоны. Если зона не указана, будет использована зона по умолчанию, узнать ее можно командой:

firewall-cmd --get-default-zone

Для изменения зоны по умолчанию используйте команду:

firewall-cmd --set-default-zone=название_зоны

Чтобы просмотреть информацию о зоне, выполните команду:

firewall-cmd --info-zone=zone_name

Для просмотра всех зон есть отдельная команда:

firewall-cmd --list-all-zones

Сервисы

Firewalld включает в себя наборы готовых правил для ряда популярных сервисов.

Получить список сервисов можно командой:

firewall-cmd --get-services

Узнать, какие правила будут добавлены для того или иного сервиса, можно следующим образом:

firewall-cmd --info-service service_name

Добавить правило для сервиса можно так:

firewall-cmd --zone=zone_name --add-service service_name

Например, для открытия доступа к серверу по https команда будет выглядеть так:

firewall-cmd --zone=public --add-service https

Для удаления правил из зоны для определенного сервиса воспользуйтесь командой:

firewall-cmd --zone=zone_name --remove-service service_name

Для сохранения изменений при перезагрузке сервера выполните команду:

firewall-cmd --runtime-to-permanent

Либо добавьте флаг --permanent при выполнении команды и перезагрузите файрвол командой:

firewall-cmd --reload

Порты

Открытые порты Firewalld разрешены в настройках и могут принимать входящие подключения.

firewall-cmd позволяет создавать правила для комбинаций портов и протоколов в следующем формате:

firewall-cmd --zone=zone_name --add-port port_num/protocol

В качестве протокола можно указать tcp либо udp. Например, чтобы разрешить tcp-трафик на порту 8080 в зоне public правило будет выглядеть так:

firewall-cmd --zone public --add-port 8080/tcp

Чтобы закрыть порт, используется команда --remove-port с указанием порта и протокола, например:

firewall-cmd --zone public --remove-port 8080/tcp

Заключение

В данной статье мы кратко рассказали, как установить и настроить Firewalld – решение для управления брандмауэром для многих дистрибутивов Linux.

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.

0
275