Один из первых шагов, которые стоит предпринять для защиты сервера от сетевых атак и нежелательного доступа, – настройка брандмауэра. В данной статье мы расскажем о 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.